* 需要設(shè)計參考資料(光盤資料可以參考FILELIST.TXT文檔,網(wǎng)上資料更新) 下載CH365評估板資料CH365EVT.ZIP,有PDF文檔和例子程序,例如ISA轉(zhuǎn)換的說明CH365EVT/CH365ISA /CH365MEM,中斷的說明CH365INT,與單片機連接說明CH365M4B/CH365SPI,讀寫速度的說明SPEED365, I/O地址的16V8程序,調(diào)試工具DEBUG365,PCB設(shè)計說明CH365PCB,設(shè)置PCI-ID的例子,VC/VB/BC的例子 * 原理圖和PCB中的PCI引腳號和ISA引腳號是如何定義的 可以參考CH365的PCB設(shè)計說明CH365PCB,我們針對32位PCI總線,我們圖中引腳計數(shù)是從元件面(B側(cè)) 的左邊(小)向右邊(大),然后接著到焊接面(A側(cè))的右邊(大),再到左邊(?。覀儓D中的 PIN1-PIN62對應(yīng)于B側(cè)的PIN1-PIN62,PIN63-PIN121對應(yīng)于A側(cè)的PIN62-PIN1。保留引腳,一般不連接。 * 有些PCI卡工作不正常 1、如果是全自動布線的PCB,信號線比較亂,容易相互干擾,那么就有可能在個別主板上不工作, 自動布線的長度不符合PCI規(guī)范,并且抗干擾能力差。請參考PCB布線說明CH365PCB。 強烈建議全板PCB鋪銅,并且接地,減少干擾 2、初次做PCI卡有可能對物理尺寸把握不準(zhǔn),容易出現(xiàn)接觸不良的情況,在PCI規(guī)范中有精確尺寸說明 3、焊接導(dǎo)致的問題,包括引腳虛焊、金手指不干凈導(dǎo)致接觸不好等。 4、用了一段時間后搬動計算機導(dǎo)致PCI卡工作不正常通常是接觸不好導(dǎo)致,PCI卡PCB的厚度是1.6mm 5、PCI信號線通常只能帶一個負(fù)載,例如CLK只能接CH365,不能接其它IC,如果一定需要輸出,那么建 議:縮短CLK走線長度,就近用一個高速的CMOS電路緩沖后,提供給其它電路,不能用TTL電路緩沖 6、如果是接雙口RAM時數(shù)據(jù)不正常,那么要檢查速度是否匹配,可以參考SPEED365程序中的說明, 使用60nS脈沖60nS間隔試試,因為有些雙口RAM的速度達(dá)不到30nS,或者改為全字節(jié)方式讀寫 * 插了PCI卡后開不了計算機? 通常是PCI信號線短路,例如焊接導(dǎo)致PCI信號線間短路,或者PCI卡的尺寸不準(zhǔn)導(dǎo)致插偏了引腳而短路。 也可能是CH365的數(shù)據(jù)線D1被下拉,導(dǎo)致進(jìn)入外部ID的方式,但是卻沒提供外部ID。 * 在WINDOWS下找到新硬件但是無法安裝驅(qū)動 四種情況,1是PCI引腳接觸不良,2是CH365的PCI信號引腳虛焊,3是自定義的外部ID錯誤,4是修改INF 產(chǎn)生錯誤。前兩種結(jié)果導(dǎo)致計算機從CH365獲得的PCI-ID中部分位始終為1(斷開后默認(rèn)為高電平),相 當(dāng)于修改了PCI-ID,由于與驅(qū)動程序文件INF中的PCI-ID不一致,使WINDOWS認(rèn)為與驅(qū)動程序不匹配。 后兩種情況中,ID錯誤可能是自行定義了PCI-ID,但是未同步修改INF文件中的ID,或者外部電路無意 中將CH365的數(shù)據(jù)線D1下拉,導(dǎo)致CH365進(jìn)入外部ID的方式。 * 關(guān)于WINDOWS下PCI中斷共享 PCI中斷在硬件上是多個中斷請求線“邏輯或”,PCI中斷是電平中斷。假定PCI卡A和PCI卡B共用一個中 斷號12,那么,卡A產(chǎn)生中斷或者卡B產(chǎn)生中斷時,CPU都會收到12號中斷請求,CPU的12號中斷描述符只 有一個,不過,為了支持中斷共享,操作系統(tǒng)會建立一個鏈表,分別是卡A的中斷服務(wù)程序和卡B的中斷 服務(wù)程序。當(dāng)12號中斷產(chǎn)生時,CPU先調(diào)用卡A的中斷服務(wù)程序,卡A的中斷程序檢查卡A自身的中斷標(biāo)志 (PCI卡硬件要自己記住中斷),如果是卡A的中斷,那么卡A的程序就清除卡A硬件寄存器中所記憶的中 斷標(biāo)志,并且讓卡A的硬件撤消中斷請求,(PCI是電平中斷,所以要記憶直到進(jìn)入中斷服務(wù),完成后要 撤消),然后執(zhí)行中斷服務(wù),完成后退出卡A的中斷服務(wù),并通知操作系統(tǒng)“這是卡A的中斷”,操作系 統(tǒng)收到卡A的通知,則結(jié)束本次12號中斷服務(wù)。如果卡A的程序檢查自身的中斷記憶標(biāo)志,發(fā)現(xiàn)不是自己 產(chǎn)生的中斷,那么直接退出卡A的中斷服務(wù),并通知操作系統(tǒng)“這不是卡A的中斷”,所以操作系統(tǒng)將在 鏈表中,繼續(xù)調(diào)用卡B的中斷服務(wù)程序,如果卡B的程序檢查卡B自身的中斷記憶標(biāo)志,發(fā)現(xiàn)是自己產(chǎn)生 的中斷,那么就會讓卡B的硬件撤消中斷請求以及清除記憶標(biāo)志,執(zhí)行中斷服務(wù)...。這是WINDOWS下的 大致中斷處理過程,并非所有中斷號支持共享,也并非所有PCI卡都支持中斷共享,Windows也允許個別 PCI卡獨立占用中斷。CH365的芯片控制寄存器中的中斷激活標(biāo)志位就是中斷的記憶標(biāo)志。 * 關(guān)于應(yīng)用層中斷服務(wù)的特點 CH365的動態(tài)錠接庫DLL提供了偽中斷服務(wù),實際的中斷服務(wù)仍然是在驅(qū)動程序庫完成的,只是在完成后 向DLL發(fā)了個通知,由DLL再調(diào)用偽中斷服務(wù)子程序。由于涉及到系統(tǒng)層與應(yīng)用層切換以及線程切換, 所以中斷頻率不能太高,如果太高,雖然驅(qū)動程序能夠收到中斷,但是等到通知到應(yīng)用層,再調(diào)用客戶 的偽中斷服務(wù)程序,最慢可能需要10毫秒,從而在應(yīng)用層丟失中斷。如果產(chǎn)品的中斷頻率大于幾百次每 秒,那么建議自己寫驅(qū)動程序或者改寫我們的驅(qū)動,在驅(qū)動程序中實現(xiàn)中斷服務(wù)。 * 如何做WINDOWS驅(qū)動程序,WINDOWS DDK如何獲得 我們的驅(qū)動程序全部使用WINDOWS 98/2000/XP DDK編譯,同時支持WINDOWS 98/ME/2000/XP。DDK可以從 微軟官方網(wǎng)站免費下載(訂購芯片時如果需要我們也可以提供刻錄光盤),除此之外,只需VC 5.0或者 VC 6.0編譯器,完全不需要額外軟件支持。這樣做出的驅(qū)動程序代碼效率高并且文件短小,通常我們用 INF安裝信息文件而不是SETUP可執(zhí)行程序,可以算是綠色軟件。用戶如果希望有更友好或者更簡單的編 譯方法,那么可以使用第三方的驅(qū)動程序生成工具,當(dāng)然,那些軟件通常都不便宜。 * 在WINDOWS進(jìn)行I/O操作,如何確定I/O地址 其實在WINDOWS下通過CH365的動態(tài)鏈接庫執(zhí)行I/O操作,完全不需要了解I/O地址,因為如果當(dāng)您只輸入 偏移地址(偏移地址的值在0到0xFF之間),那么DLL會自動替您加上I/O基址得到實際地址再進(jìn)行操作 * 如何實現(xiàn)簡單的I/O輸入輸出 使用一個74LS244,其G端接IOP_RD,可以輸入8位數(shù)字信號,使用一個74LS273,其CLR接PCI-RESET,其 CLK接IOP_WR,可以輸出8位數(shù)字信號,另外,在不使用存儲器功能時,CH365的A10-A15也可以作為數(shù)字 信號輸出,其中A15還可以由工作模式設(shè)置其默認(rèn)電平。需要更多I/O可以用82C55A或者地址譯碼后擴展 * 老的ISA卡都能升級嗎 如果可以修改軟件,那么都能升級。如果要求完全不改軟件,那么,只使用I/O的ISA卡基本上都能直接 升級,如果使用存儲器MEM,那么可以參考CH365MEM工具處理升級,如果使用中斷,那么必須修改軟件。 對于使用I/O的ISA卡,支持I/O塊地址100H-3FFH,每塊16個字節(jié),在CH365評估板資料中有16V8程序。 * 使用CH365評估板以本地定址功能直接升級老的ISA卡,原軟件無法顯示數(shù)據(jù)有誤 1、檢查本地定址功能是否啟用:J3的D4必須短路(D3、D2、D1斷開),J5必須短路 2、檢查I/O地址是否匹配:CH365評估板的本地定址的I/O地址由U3(16V8芯片)決定,默認(rèn)情況下,具 體I/O地址由J4選擇,24XH、25XH、一直到2BXH,請確認(rèn)原ISA的地址是否匹配,如果不匹配,可以 將CH365/EVT/PUB/IOP_HIT或者IOP_HITX目錄下的其它I/O地址的16V8程序用編程器寫入U3后再試。 3、如果I/O地址確定匹配,還可以用下述方法檢查,去掉原ISA卡,用DOS的DEBUG或者WINDOWS下CH365 調(diào)試工具讀取指定的I/O地址,默認(rèn)應(yīng)該是0EFH(位4因為被下拉而呈低電平,其余默認(rèn)為高電平), 而插入原ISA卡后應(yīng)該是原ISA卡輸出的數(shù)據(jù)。例如,CH365本地定址260H-26FH,那么不插ISA卡讀取 260H應(yīng)該返回0EFH,插入ISA卡并且該卡地址為260H,那么返回值將來自該ISA卡。否則,如果默認(rèn) 值是0FFH,那么說明CH365本地定址功能未啟用或者I/O地址沒有選正確。
為什么:對于使用I/O的ISA卡,支持I/O塊地址100H-3FFH?? 為什么是100h-3ffh?
多數(shù)ISA卡只用10位地址譯碼000h-3ffh,ISA主板自用000h-0ffh,剩下0100h-03ffh
如果原先的ISA永樂12位地址譯碼,升級為PCI咋辦呢?
我的CH365 連了一個FPGA ,剛開始還可以啟動機子,也能進(jìn)入中斷,現(xiàn)在老是開機啟不動,換了一個插槽,可以啟動,也能獲得中斷號,但就是進(jìn)不了中斷.現(xiàn)在我把FPGA里的程序改了一下,可以啟動,但不能獲得中斷號.請問這是什么原因,多謝你的指點.謝謝!
我有一塊ISA式的控制卡,現(xiàn)在加入CH365后,將它轉(zhuǎn)換為PCI式的,請想,我的CH365需要燒程序嗎?
為什么在WIN98里運行正常,在WIN2000里就不行了,為什么,用什么方法可以改進(jìn)嗎?
借此我也問一下,對于插好的雕刻機控制PCI卡,有幾個問題: (1)如何才能知道它此刻的I/O基址(沒有定址)?若用DOS下的DEBUG命令符該如何操作?除此外還有什么辦法? (2)如何用DEBUG365調(diào)試,我從網(wǎng)上載下的無法用,顯示:無法打開ch365設(shè)備,在測試前,我都該做什么? (3)CH365的中斷響應(yīng),介紹一下 求教斑竹!??! 謝謝..
1.I/O基址是系統(tǒng)自動分配的,具體操作在INT1A中有。 2.無法打開設(shè)備,是 不是驅(qū)動程序就沒有安裝好。 3。 您想知道中斷的那一部分呢?
INT1A是什么意思?我也遇到和xiaoxiao同樣的問題。主要是想知道怎樣獲得地址。有沒有現(xiàn)成的源程序?請求給予,以便研究。不勝感激。
中斷 1A是 PCI的功能調(diào)用,獲得基址的程序在CH365DOS.C里面有。
好的。謝謝,我去看看。
怎么查找我的ISA卡的基地址呀,我不知怎么做
我要定址轉(zhuǎn)換,但不知我的ISA卡的基地址,請高手指點下
請教版主,我要做一個ch365評估板的驅(qū)動,主要實現(xiàn)i/o讀寫和中斷功能,驅(qū)動程序中要用的你們提供的那個CH365DLL.DLL嗎? (在驅(qū)動方面我還是個菜鳥,我要用你們的評估板搭電路,用的是引出的PCI針腳)
請問那位大哥有CH365CAN.ZIP里Demo的CanDLL的源碼啊?給我發(fā)一份吧,謝謝了.28111760@QQ.com