新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于CH365芯片的PCI總線接口卡的設(shè)計(jì)與實(shí)現(xiàn)

基于CH365芯片的PCI總線接口卡的設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2012-02-01 來源:網(wǎng)絡(luò) 收藏
1 引 言

ISA(InduSTry Standard Architecture,工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu))總線是上世紀(jì)八十年代中期出現(xiàn)的工業(yè)現(xiàn)場控制總線。

數(shù)據(jù)傳輸速率較低,又不能動(dòng)態(tài)地分配系統(tǒng)資源,且對CPU占用率高,相應(yīng)的插卡數(shù)量有限,并且如果幾個(gè)設(shè)備同時(shí)調(diào)用共享的系統(tǒng)資源,很容易出現(xiàn)沖突現(xiàn)象。所以為代表的新一代計(jì)算機(jī)總線替代成為必然。與相比,32位的速度更快(數(shù)據(jù)傳輸率為133 Mb/s)、實(shí)時(shí)性更好、可控性更佳,更易于實(shí)現(xiàn)高速實(shí)時(shí)的I/O口控制卡、通信接口卡、數(shù)據(jù)采集卡等。但也因其32位地址與數(shù)據(jù)復(fù)用、控制總線及時(shí)序較復(fù)雜等原因?qū)е乱訤PGA實(shí)現(xiàn)比較困難。本文所述通過芯片可以快速實(shí)現(xiàn)PCI接口電路的設(shè)計(jì),支持ISA總線接口向PCI總線接口的升級,并且由芯片的本地硬件地址功能可以實(shí)現(xiàn)原系統(tǒng)軟件無需修改就可使用,大大降低了板卡升級的時(shí)間周期和開發(fā)難度,具有較高的實(shí)用價(jià)值和推廣價(jià)值。

2 PCI總線的特點(diǎn)

PCI是先進(jìn)的高性能局部總線,可同時(shí)支持多組外圍設(shè)備。其特點(diǎn)是:總線操作與處理器一存儲(chǔ)器子系統(tǒng)操作并行;線性突發(fā)傳輸;極小的存取延誤;不受處理器限制;基于PCI卡設(shè)備信息,全自動(dòng)配置與資源分配,實(shí)現(xiàn)即插即用。

PCI的地址空間有3類:存儲(chǔ)器、I/O和配置地址空間。存儲(chǔ)器空間和I/O空間同以前的ISA總線規(guī)范相同,而配置空間是PCI所特有的。配置空間使系統(tǒng)處理器能夠枚舉PCI總線上的各種設(shè)備,并根據(jù)設(shè)備要求自動(dòng)配置存儲(chǔ)器和I/O的地址空間。操作系統(tǒng)在自檢的過程中檢測所有PCI設(shè)備,讀取設(shè)備的配置信息,并給每一設(shè)備分配系統(tǒng)資源,如中斷、I/O空間、存儲(chǔ)器空間等。在PCI系統(tǒng)結(jié)構(gòu)中,為每個(gè)PCI都提供了256個(gè)字節(jié)(至少是前64個(gè)字節(jié))的配置空間,這256個(gè)字節(jié)的配置空間中前64個(gè)字節(jié)稱為頭區(qū)域,是每一個(gè)PCI設(shè)備都應(yīng)該實(shí)現(xiàn)的,他的主要功能是識(shí)別PCI接口設(shè)備,以及PC訪問板卡的方式等。其余的192個(gè)字節(jié)根據(jù)不同的PCI設(shè)備有所不同。

3 PCI接口芯片的選擇

PCI接口電路至少實(shí)現(xiàn)如下功能:

(1) 高速的地址產(chǎn)生單元;

(2) 地址譯碼及命令譯碼單元;

(3) 標(biāo)準(zhǔn)配置寄存器(64個(gè)字節(jié))、PCI總線邏輯接口單元、用戶設(shè)備邏輯接口、數(shù)據(jù)緩沖區(qū)等。

所以若用FPGA芯片直接設(shè)計(jì)PCI接口則難度大且開發(fā)周期長,而專用的PCI接口芯片可以實(shí)現(xiàn)完整的PCI主控模塊和目標(biāo)模塊接口功能,將復(fù)雜的PCI總線接口轉(zhuǎn)換為相對簡單的接口。

目前常用的PCI專用接口芯片有PLX公司PCI90XX系列,AMCC公司S59XX系列,南京沁恒公司的通用PCI接口芯片。其中南京沁恒公司的CH365是國內(nèi)自主開發(fā)的PCI總線接口芯片,CH365將32位高速PCI總線轉(zhuǎn)換為簡便易用的類似于ISA總線的8位主動(dòng)并行接口,并提供獨(dú)有的本地硬件地址請求功能,適合制作低成本的基于PCI總線的計(jì)算機(jī)板卡,以及將原先基于ISA總線的板卡升級到PCI總線上。另外CH365價(jià)格便宜、使用方法簡單,非常適合用于短周期、低成本PCI接口卡的制作。

CH365是一個(gè)連接PCI總線的通用接口芯片,可將32位高速PCI總線轉(zhuǎn)換為主動(dòng)8位并行接口并提供16位地址,可以進(jìn)行I/O及存儲(chǔ)器的讀和寫,可以設(shè)定PCI板卡的設(shè)備標(biāo)識(shí)。

CH365非突發(fā)存取的實(shí)測速度可達(dá)7 MB/s,寫脈沖的寬度從30~240 ns可選;自動(dòng)分配I/O基址,I/O空間占用256個(gè),其中偏移00~EFH共240 B的標(biāo)準(zhǔn)的本地I/O端口,而F0~FF為CH365內(nèi)部使用的寄存器,對I/O端口操作只須I/O基址加上偏移量;通過該接口直接升級ISA的I/O板卡到PCI總線,完全不需要修改原ISA卡的相關(guān)軟件;直接映射支持容量為32 kB的存儲(chǔ)器SRAM或者擴(kuò)展ROM(BootROM),偏移地址0000~7FFFH;提供兩線串行主機(jī)接口,可以掛接類似24C0X的兩線串口E2PROM器件;支持Windows 98/ME/2000/XP,通過DLL提供應(yīng)用層API。

CH365的地址引腳A15~A0用于提供相對于基址的偏移地址,引腳D7~D0為雙向數(shù)據(jù)引腳,與設(shè)備相連。IOP_RD用于提供I/O讀選通信號(hào),IOP_WR用于提供I/O寫選通信號(hào),MEM_RD用于提供存儲(chǔ)器讀選通信號(hào),MEM_WR用于提供存儲(chǔ)器寫選通信號(hào),上述引腳均為低電平有效。與PCI總線相連的引腳直接與PCI總線對應(yīng)。

4 PCI接口卡的設(shè)計(jì)和實(shí)現(xiàn)

4.1 原ISA接口卡簡介

原ISA總線接口卡是一個(gè)多路數(shù)據(jù)采集板,接口卡所采集數(shù)據(jù)由板上單片機(jī)與ISA總線通過雙口RAM進(jìn)行數(shù)據(jù)交換。雙口RAM的11位地址線與ISA總線的低口位地址線相連作為局部地址;ISA總線接口板的高位地址與GAL168V芯片相連,由預(yù)先設(shè)置在GAL168V芯片中的地址作為接口板基址;雙口RAM的左數(shù)據(jù)線通過一個(gè)8路總線收發(fā)器隔離后與ISA總線數(shù)據(jù)線相連,右地址線、數(shù)據(jù)線與單片機(jī)相連。

4.2 PCI接口卡的設(shè)計(jì)和實(shí)現(xiàn)

為了實(shí)現(xiàn)PCI總線接口需在原ISA接口板上加上CH365芯片及其周邊電路。CH365芯片與PCI總線的連接符合PCI總線規(guī)范,而CH365芯片提供的本地總線接口端與ISA總線接口類似。為了減少總線接口改變帶來的改動(dòng),本文利用CH365芯片的本地硬件地址功能設(shè)定接口卡的本地硬件地址。

4.2.1 本地硬件地址功能的實(shí)現(xiàn)

CH365提供一種可以由板卡制造商選定PCI設(shè)備I/O口地址的方法,即本地硬件定址,其原理是將PCI設(shè)備的部分I/O口地址譯碼,通過外圍的二級譯碼電路來實(shí)現(xiàn)。外圍的二級譯碼電路比較簡單,與ISA總線的I/O譯碼電路類似,CH365將PCI總線I/O操作地址同步提供給外圍電路,當(dāng)外圍電路對地址譯碼匹配后,向CH365請求本地硬件定址,再由CH365請求PCI總線在該特定I/O口地址范圍內(nèi)進(jìn)行讀寫操作。

為啟用CH365提供的本地硬件定址功能,需將CH365局部數(shù)據(jù)總線端中D4線弱下拉接地(即設(shè)定值=0),以設(shè)置CH365工作于本地硬件定址模式。外圍二級譯碼電路可由GAL16V8實(shí)現(xiàn)。

4.2.2 雙口RAM的讀寫

CH365的本地地址線和數(shù)據(jù)線端與雙口RAM相連。雙口RAM允許2個(gè)CPU同時(shí)讀取任何存儲(chǔ)單元(包括同時(shí)讀同一地址單元),但不允許同時(shí)寫或一讀一寫同一地址單元,否則就會(huì)出現(xiàn)寫入值和讀出值不是期望值的混亂狀態(tài)。雖然雙口RAM本身帶有BUSY控制信號(hào)來協(xié)調(diào)兩端的訪問,但BUSY信號(hào)腳要求與兩側(cè)CPU的READY線相連,而CH365并不具有READY信號(hào)線,因此,需要引入仲裁邏輯控制模塊。常用的雙口RAM解決地址競爭的途徑有:令牌傳遞法、基于郵箱機(jī)制的INT中斷法以及插入等待周期的BUSY法等。在本系統(tǒng)中采用第二種方法。

基于郵箱機(jī)制的INT中斷法的基本思想是:給每個(gè)端口分配一個(gè)地址作為郵箱,比如本系統(tǒng)可以令CH365使用00H,單片機(jī)使用8000H,這兩個(gè)地址用來裝載作為分配兩端口RAM使用權(quán)的依據(jù)數(shù)據(jù)。具體約定為:當(dāng)左端口CH365寫地址單元00H時(shí),通過邏輯器件可實(shí)現(xiàn)右中斷DSP INT(DSP中斷)為低,向DSP發(fā)出中斷清求,DSP讀地址單元00H時(shí),DSP INT為高,復(fù)位CH365發(fā)出的中斷請求。同理,當(dāng)右端口寫地址單元8000H時(shí),左中斷INT REQ(CH365中斷)為低,可向左端口發(fā)出中斷請求;而當(dāng)左端口讀地址8000H時(shí),INT_REQ為高,復(fù)位DSP發(fā)出的中斷請求。當(dāng)信箱內(nèi)容為00時(shí),表示正在使用該方端口;當(dāng)信箱內(nèi)容為FFH時(shí),表示結(jié)束使用該端口。因此,雙方在對端口的其他單元進(jìn)行讀寫操作開始時(shí),需要向郵箱中寫入00H,操作結(jié)束,寫入FFH。如果沒有發(fā)生爭用,則直接進(jìn)行讀寫操作,否則,慢的一方產(chǎn)生中斷,并查詢對方郵箱,直到對方郵箱內(nèi)容為FFH。具體實(shí)現(xiàn)可借助CPLD來完成。

4.2.3 PCI接口卡設(shè)計(jì)中應(yīng)注意的問題

PCI接口作為高頻數(shù)字電路,電磁兼容設(shè)計(jì)尤為重要,在設(shè)計(jì)PCB板時(shí)需要參考PCI總線規(guī)范。CH365的PCI信號(hào)的走線長度應(yīng)小于35 mm,盡量走弧線或者45°線,信號(hào)布線盡量在元件面,在PCB背面保留大面積接地覆銅。CH365芯片有3對電源引腳,在制作印制板時(shí),應(yīng)在每對電源附近放置高頻消磁退耦電容。

5 結(jié) 語

本文所述,通過增加一片CH365芯片,采用硬件地址方式所設(shè)計(jì)的PCI接口卡,可獲得和原ISA卡完全相同的性能。而用戶計(jì)算機(jī)控制程序不用作任何修改,僅僅在PCI板卡插入計(jì)算機(jī)過程中,添加CH365芯片的驅(qū)動(dòng)程序而已,從而避開繁雜的PCI總線接口規(guī)范標(biāo)準(zhǔn),大大簡化了PCI接口卡設(shè)計(jì)的難度,同時(shí)也極大地降低了PCI卡開發(fā)和制造的成本,具有較好的市場前景。本文所升級的PCI接口卡已經(jīng)實(shí)際使用,功能正常,取得了很好的效果。



關(guān)鍵詞: CH365 PCI總線 ISA總線

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉