基于CH365的PIC通信卡的設(shè)計
pci是先進的高性能局部總線,可同時支持多組外圍設(shè)備。pci局部總線不受制于處理器,為中央處理器及高速外圍設(shè)備提供數(shù)據(jù)傳輸通道,進行總線之間數(shù)據(jù)傳輸?shù)恼{(diào)度管理,pci采用高度綜合化的局部總線結(jié)構(gòu),以確保計算機中各部件、附加卡及系統(tǒng)之間的可靠運行?;诂F(xiàn)在市場上pci芯片有plx公司及amcc公司的器件,他們在硬件設(shè)計周期以及驅(qū)動程序開發(fā)上對于初學者來講都存在一定困難。ch365是一個連接pci總線的通用接口芯片,支持i/o端口映射、存儲器映射、擴展rom以及中斷。ch365將32位高速pci總線轉(zhuǎn)換為簡便易用的類似于isa總線的8位主動并行接口,用于制作低成本的基
于pci總線的計算機板卡、以及將原先基于isa總線的板卡升級到pci總線上。另外ch365不論在設(shè)計難度、開發(fā)周期、isa移植,還是在價格上都有其自身優(yōu)越性,所以ch365應(yīng)用非常廣泛,例如適用于高速實時的i/o控制卡、通訊接口卡、數(shù)據(jù)采集卡、電子盤、擴展rom卡等。
1 ch365的特點
(1)可以設(shè)定pci板卡的設(shè)備標識(vendor id,device id,class code等)。
(2)支持以字節(jié)、字或雙字為單位對i/o端口或者存儲器進行讀寫。
(3)自動分配i/o基址,支持長達240b的i/o端口。
(4)支持本地硬件定址功能,自由選擇i/o地址,在指定地址實現(xiàn)i/o端口。
(5)直接升級isa的i/o板卡到pci總線,完全不需要修改原isa卡的相關(guān)軟件。
(6)直接映射支持容量為32kb的存儲器sram或者擴展rom(boot rom)。
(7)無需外接元器件擴容支持容量為64kb以及128kb的存儲器或者擴展rom。
(8)支持擴展rom無硬盤引導,支持閃存flash memory在線升級。
(9)可以提供擴展rom應(yīng)用的子程序庫brm,用于bios環(huán)境下用戶界面顯示及數(shù)據(jù)處理。
(10)支持低電平有效的本地中斷請求,支持中斷共享。
(11)提供兩線串行主機接口,可以掛接類似24c0x的兩線串口e2prom器件。
(12)內(nèi)置4μs-1ms的硬件計時單元,用于軟件運行過程中作為延時參考。
(13)芯片本身無需驅(qū)動程序即可工作,升級isa板卡可以不需要驅(qū)動程序。
2 空間映射
pc機中包括3種空間:存儲器空間、i/o空間、配置空間。存儲器空間主要包括內(nèi)存、顯存、擴展rom、設(shè)備緩沖區(qū)等,一般用于存放大量數(shù)據(jù)和進行數(shù)據(jù)塊交換。i/o空間主要包括設(shè)備的控制寄存器和狀態(tài)寄存器,一般用于控制和查詢設(shè)備的工作狀態(tài)以及少量數(shù)據(jù)的交換。配置空間主要用于向系統(tǒng)提供設(shè)備自身的基本信息,并接受系統(tǒng)對設(shè)備全局狀態(tài)的控制和查詢。為了避免地址沖突,pci總線要求各個設(shè)備所占用的地址能夠重定位。重定位是由設(shè)備的配置空間的基址寄存器實現(xiàn)的,通常情況下,各個設(shè)備的基址寄存器總是被bios或者操作系統(tǒng)分配為不同的基址,從而將各個設(shè)備分別映射到不同的地址范圍。在需要時,應(yīng)用程序也可以自行修改基址。ch365的存儲器空間占用32kb,偏移地址是0000h-7fffh,可以全部提供給外部設(shè)備使用,實際地址是存儲器基址加上偏移地址。ch365的i/o空間占用256kb,去掉ch365自用寄存器,還可以提供240b給外部設(shè)備使用,偏移地址是00h-efh,實際地址是i/o基址加上偏移地址。
3 本地端信號線引腳
本地端信號線引腳如表1所示。
4 基于ch365的pci通信卡原理框圖
基于ch365的pci通信卡由pci接口部分、ch365接口芯片、譯碼電路、本地總線4部分構(gòu)成,如圖1所示。
4.1 譯碼電路產(chǎn)生
在設(shè)計中采用傳統(tǒng)74ls138產(chǎn)生本地8位總線地址,使用ch365地址a0,a1,a2以及讀寫控制信號參加譯碼。74ls138將地址譯碼輸出2路讀控制和2路寫控制,經(jīng)過74ls245或74ls574來控制輸入和輸出,如圖2所示。
4.2 pci卡制作及pcb圖設(shè)計注意事項
pci總線工作在高頻環(huán)境中,傳送線在信號線上驅(qū)動電壓變化時會出現(xiàn)阻抗,信號線的寬度和到接地的距離都會影響其阻抗,所以在設(shè)計pcb時需要參考pci總線規(guī)范,特別要注意考慮信號阻抗匹配,具體有以下幾點作為參考:
(1)在32位pci總線中,除了信號線外,還有2個卡存在信號:prsnt1#和prsnt2#。pci板卡設(shè)計者在卡存在信號上對卡的最大電源需求進行編碼,當卡被插在pci插槽中時,他將其中至少一個或所有兩個卡存在信號接地。
(2)對于32位pci總線的所有信號,其最大電路長度限定在1.5in(約38mm)以內(nèi)。建議在設(shè)計pcb時,pci信號線的長度都小于25mm,盡量走弧線或者45°線,避免走直角或者銳角走線,并且盡量將走線布在元件面,而pcb背面保留大面積的接地覆銅,以降低傳送線的阻抗。
(3)pci總線的clk信號線的長度要求是2.5in(約83mm)左右,并且只能與卡上一個負載連接。建議clk信號線的長度盡量保持在50-85mm之間,并且不宜靠近其他信號線,為減少周邊信號線的干擾,在clk兩側(cè)及pcb背面布置接地線或者覆銅。
(4)ch365有3對電源引腳,至少需要3個電源退耦電容。
(5)與pci插槽連接的電源線引腳可以自由選擇,但數(shù)量不宜少于4對。當板卡的電源消耗較大時,可以多增加幾對電源線,通過多點接觸提供穩(wěn)定的大電流。
4.3 硬件中斷功能介紹
ch365芯片具有軟件和硬件中斷功能,與中斷功能有關(guān)的2個引腳分別是pci_inta和sys_ex。如果ch365的數(shù)據(jù)線d3連接了下拉電阻,則工作模式設(shè)定為啟用中斷功能,sys_ex引腳自動復(fù)用為int_req,作為本地中斷請求輸入引腳,低電平有效,外部電路需要請求計算機中斷時只要向該引腳提供低電平脈沖。pci_inta總是作為pci中斷三態(tài)輸出引腳,不用中斷功能時可以懸空不接,需要中斷功能時可以與pci總線的inta相連接,低電平有效,中斷激活時輸出低電平,中斷未激活時輸出高阻。
5 應(yīng)用程序介紹
(1)接收數(shù)據(jù)子程序
ch365opendevice(true,true);
mpch365_io_reg miobase;
ch365getiobaseaddr(&miobase);
//ch365writeiobyte(&miobase->mch365ioport
[0x0fa],71);//* * * * * * * * * *
uchar data1;
ch365readiobyte(&miobase->mch365ioport[m_portnumr],&data1);m_datar=data1;
(2)發(fā)送數(shù)據(jù)子程序
ch365opendevice(true,true);
mpch365_io_reg miobase;
ch365getiobaseaddr(&miobase);
ch365writeiobyte(&miobase->mch365ioport[m_portnumw],m_dataw);
本文采用南京沁恒公司提供的pci接口芯片ch365實現(xiàn)了pci通信卡的設(shè)計,在使用中測的實際傳輸率為10mb/s左右,工作穩(wěn)定可靠,完全可以滿足一般數(shù)據(jù)量傳輸不是非??斓膱龊稀?br>
評論