基于PCI總線多通道數(shù)據(jù)采集系統(tǒng)的設(shè)計
摘 要:基于PCI總線的高速數(shù)據(jù)采集系統(tǒng)是近年來數(shù)據(jù)采集及其傳輸技術(shù)的一個發(fā)展方向。文中圍繞PCI總線接口控制器PCI9054,給出系統(tǒng)硬件設(shè)計方案,并闡明各個模塊的具體實現(xiàn)。設(shè)計出的采集卡具有體積小、速度快、支持突發(fā)性大數(shù)據(jù)量傳輸和抗干擾性強等特點,主要應(yīng)用在圖像數(shù)據(jù)采集領(lǐng)域。
?
關(guān)鍵詞:數(shù)據(jù)采集;PCI9054;CPLD;DSP?
Design of a Multi-channel Data Acquisition System Based on PCI
?
LI Runqiu,HE Zhanzhuang?
(No.771 InstituteofChinaAerospace TimesElectronics Corp.,Xi′an,710065,China)
??
Abstract:In recent years,based on PCI bus high speed data collecting system is a developing direction of data gather and transmission technology.This paper encircle with PCI bus interface controller PCI9054,presents the hardware system design scheme,and respectively discusses the modules.The card which we designed have the characteristic of less capacity,high speed,back up the burst transmission of a great number of data,and have strong performance of anti jamming,the mostly application domain of this card is image manipulation.
?
Keywords:data acquisition;PCI9054;CPLD;DSP
1 引 言?
基于PCI總線的多通道數(shù)據(jù)采集卡的工作流程是:計算機應(yīng)用程序根據(jù)命令通過驅(qū)動程序啟動模數(shù)轉(zhuǎn)換,模擬信號通過信號調(diào)理后進入A/D芯片,模數(shù)轉(zhuǎn)換后的數(shù)據(jù)存入FIFO(先進先出)存儲器緩存,在數(shù)據(jù)存儲器中存滿一幀時,硬件向主機發(fā)中斷,主機響應(yīng)中斷后通過PCI9054芯片用DMA方式讀出存放在數(shù)據(jù)存儲器中的采樣數(shù)據(jù),然后進行后續(xù)處理(如計算、存儲)并將結(jié)果顯示于屏幕。
DSP實時處理模塊是在邏輯控制模塊的控制下與計算機通過LOCAL總線接口進行通訊,以便交換數(shù)據(jù),執(zhí)行命令。?
2 系統(tǒng)硬件設(shè)計?
數(shù)據(jù)采集系統(tǒng)硬件由兩大部分組成:一是基于PCI總線的數(shù)據(jù)采集模塊,二是基于DSP擴展實時處理模塊。下面將分別敘述,系統(tǒng)總體硬件框圖如圖1所示。?
2.1 模擬通道及模數(shù)轉(zhuǎn)換?
本設(shè)計的模擬通道只對模擬信號進行簡單處理,使模擬信號符合A/D轉(zhuǎn)換芯片的要求即可。針對該數(shù)據(jù)采集卡的應(yīng)用領(lǐng)域信號具有信號相關(guān)性強的特點,應(yīng)采用多通道的同步采樣芯片,經(jīng)過比較,選擇了ADS8364。ADS8364是一款高速、低功耗,具有6通道同步采樣轉(zhuǎn)換,16位高速并行接口的高性能模數(shù)轉(zhuǎn)換芯片。ADS8364的6個模擬輸入分為3組(A,B和C),每個輸入端都有一個ADC保持信號HOLDX#以用來保證幾個通道能同時進行采樣和轉(zhuǎn)換。實際上,每片ADS8364由?3個?轉(zhuǎn)換速率為250 ksps(當(dāng)外部時鐘為5 MHz)的ADC構(gòu)成,每個ADC有2個模擬輸入通道,每個通道都有采樣保持器,3個ADC組成3對模擬輸入端,可同時對其中的1~2對輸入信號同時采樣保持,然后逐個轉(zhuǎn)換。由于6個通道可以同時采樣,很適合用于需同時采集多種信號的場合。?
在設(shè)計的采集卡上,采用2片ADS8364,每片設(shè)計成6路單端輸入,共12路模擬輸入。用相同的外部時鐘來控制轉(zhuǎn)換,每片ADS8364輸出16位數(shù)據(jù),兩片的輸出拼接成32位數(shù)據(jù),以提高PCI總線的傳輸效率。數(shù)據(jù)傳輸?shù)接嬎銠C后,再進行分路處理。另外,在PCI總線傳輸速度允許范圍內(nèi),還可以通過擴展接口進行擴展,以處理更多的模擬輸入。?
2.2 數(shù)據(jù)緩存?
因為PCI總線接口數(shù)據(jù)傳輸效率非常高而A/D采集數(shù)據(jù)效率較低,所以為了實現(xiàn)數(shù)據(jù)的高速傳輸,采樣后的數(shù)據(jù)必須經(jīng)過緩存,再由PCI總線接口控制器讀取,這樣才能處理更多的模擬信號輸入。緩存的設(shè)計方案一般有3種:共享RAM方式,雙口RAM方式,F(xiàn)IFO緩存方式。第一種方式因為涉及到RAM的同時訪問,邏輯比較復(fù)雜;第二種方式芯片價格昂貴;第三種既簡單性價比又高。?
設(shè)計中FIFO采用TI公司生產(chǎn)的SN74V3690芯片是一款具有大深度、高速GMOS工藝的先進先出存儲器,有讀寫控制和可變的總線匹配*36*18*9數(shù)據(jù)流。時鐘頻率最高可達166 MHz,6 ns讀寫周期,帶有FIFO狀態(tài)標(biāo)志信號Empty,Full,Half-Full,可編程的標(biāo)志信號Almost-Empty和Almost-Full。?
系統(tǒng)FIFO的輸入輸出均被配置為32位,在啟動?A/D?采樣后,由邏輯控制部分控制數(shù)據(jù)寫入FIFO,當(dāng)FIFO達到半滿時,半滿標(biāo)志信號HF#翻轉(zhuǎn)(1變成0),邏輯控制部分根據(jù)他向PCI接口控制器發(fā)出中斷,通知計算機啟動數(shù)據(jù)傳輸。?
2.3 PCI總線接口?
考慮到硬件的通用性、可升級性和可擴展性,主從處理器方式都可能被用到,所以選用了用主/從控制器PCI9054作為總線接口芯片。他符合PCI V2.2規(guī)范,主要特點為:?
(1) 提供了2個獨立的可編程DMA控制器,每個通道均支持塊和Scatter/Gather的DMA方式,DMA通道0支持請求DMA方式。?
(2) PCI和Local Bus的數(shù)據(jù)傳送速率高達?132 MB/s?。?
(3) 本地總線速率高達50 MHz;支持復(fù)用/非復(fù)用的32位地址/數(shù)據(jù);本地總線可為3種模式:M模式、C模式和J模式,可利用模式選擇引腳加以選擇。?
(4) 內(nèi)部有6種可編程的FIFO,以實現(xiàn)零等待突發(fā)傳輸及本地總線和PCI總線之間的異步操作。?
(5) 提供了一個串行E?2PROM配置接口,容量2 kB。在配置存儲器中存放了廠家標(biāo)示、設(shè)備標(biāo)示以及本地總線的基地址空間、I/O空間、中斷控制信號等信息。?
選用的PCI 9054工作在C模式,為便于訪問,配置PCI9054寄存器,將S2映射在20000000H單元,將S3映射在30000000H單元。將局部地址空間分成3部分,地址高4位為0000時為FIFO空間,用于DMA傳輸;為0010時為S2空間,用于FIFO控制為0011時為S3空間,用于A/D控制;其余空間保留。?
2.3.1 PCI9054與E?2PROM的接口設(shè)計?
PCI9054的串行E?2PROM配置接口包含以下3個信號:EECS片選;EESK串行數(shù)據(jù)時鐘;EEDI/EEDO數(shù)據(jù)輸入/輸出。設(shè)計選用了PLX公司推薦兼容的串行?E?2PROM?芯片NM93CS56N芯片,他是National Semiconductor公司生產(chǎn)的低電壓串行電可擦除存儲器,采用CMOS工藝制成,容量為2 048位(128*16位),8引腳,支持三線制MicroWare串行總線的E?2PROM,其引腳如下:?
本文原文
CS:片選信號;?
SK:串行時鐘輸入信號,同時也是微處理器與?E?2PROM?之間通信的同步信號,數(shù)據(jù)在他的上升沿鎖定有效;?
DI:數(shù)據(jù)輸入;?
D數(shù)據(jù)輸出。?
PCI9054與E?2PROM的接口設(shè)計如圖2所示。?
2.3.2 PCI9054局部總線設(shè)計?
由于PCI9054與PCI總線之間實現(xiàn)了無縫連接,系統(tǒng)與計算機接口的大部分信號直接連接即可。PCI9054 Local總線部分信號時序比較復(fù)雜,因此用邏輯控制部分來實現(xiàn)PCI9054 Local端的控制。將PCI9054局部數(shù)據(jù)總線高5位數(shù)據(jù)線接到CPLD引腳上,這5根數(shù)據(jù)線可以接收和發(fā)送數(shù)據(jù),根據(jù)接收到的數(shù)據(jù)對其譯碼產(chǎn)生控制信息,還可以發(fā)出數(shù)據(jù)使PCI9054產(chǎn)生門鈴中斷和MailBox中斷。PCI總線框圖如圖3所示。?
PCI9054局部總線支持50 MHz時鐘,為配合A/D工作,選用40 MHz時鐘。PCI9054的所有地址線和控制信號都只邏輯控制部分連接,產(chǎn)生邏輯控制的工作狀態(tài)和各種控制信息。?
2.4 實時處理模塊?
在數(shù)字信號處理領(lǐng)域,很多情況下,模擬輸入數(shù)字化后需要進行實時處理,同時需要計算機的參與(參數(shù)控制、數(shù)據(jù)傳輸?shù)?。這就需要實時性很強的DSP參與處理,這里選用TMS320C5416作為DSP處理芯片,他具有一般DSP的特點,這里不在贅述。?至于DSP與PCI9054間的接口,考慮到充分發(fā)揮他們的高速優(yōu)勢,采用FIFO緩沖器在二者之間交換數(shù)據(jù),而控制邏輯由CPLD完成,如圖4所示。?
2.5 CPLD邏輯控制?
系統(tǒng)采用ALTERA公司MAX7000A系列的EPM7256A芯片,他的配置程序固化在芯片內(nèi)的?E?2PROM?中,所以該器件不需要專用的配置存儲器,所有MAX7000A系列產(chǎn)品都由ALTERA公司提供的編程硬件和軟件進行編程。
利用EPM7256A內(nèi)部邏輯單元設(shè)計實現(xiàn)局部總線控制器,用于實現(xiàn)局部總線的狀態(tài)控制,同時利用其內(nèi)部邏輯編程形成存儲陣列構(gòu)成SRAM,存放發(fā)往各端口的操作指令。?
2.5.1 狀態(tài)機設(shè)計?
在PCI目標(biāo)和DMA傳輸模式下,PCI9054是局部總線的主設(shè)備,通過設(shè)置PCI9054內(nèi)部配置寄存器可以使能或禁止外部等待輸入控制信號READY#,以使PCI9054工作于內(nèi)部等待或外部等待狀態(tài)。若READY#信號被禁止,則在每次傳輸?shù)牡刂泛蛿?shù)據(jù)間插入等待狀態(tài),其數(shù)目由內(nèi)部等待狀態(tài)計數(shù)器決定。若READY#信號使能,則READY#信號的持續(xù)時鐘周期數(shù)目決定了PCI9054所附加的等待狀態(tài)。系統(tǒng)采用外部READY#信號,以決定等待狀態(tài)。圖5為局部總線狀態(tài)機轉(zhuǎn)換圖。?
從狀態(tài)圖可以看出,該狀態(tài)機有3種傳輸狀態(tài),空閑狀態(tài)、等待狀態(tài)和傳輸狀態(tài)。狀態(tài)機能成功與PCI9054配合完成數(shù)據(jù)傳輸,傳輸性能穩(wěn)定,效果較好,是現(xiàn)在PCI9054局部總線狀態(tài)機設(shè)計的一般方法。通過實際測試,在用戶模式下,查詢方式DMA傳輸速度可以穩(wěn)定達到68 MB/s。?
2.5.2 改進的狀態(tài)機設(shè)計?
PCI總線峰值速率為132 MB/s,在上述狀態(tài)機和傳輸狀態(tài)下,DMA速率只有68 MB/s,說明其中存在漏洞。
對比PCI9054技術(shù)資料給出的DMA時序圖發(fā)現(xiàn),由于狀態(tài)機設(shè)有3個狀態(tài),每次啟動傳輸都需要有一個等待狀態(tài)來配置各種信號線,所以每次傳輸都要浪費1個時鐘周期時間,這在高速數(shù)據(jù)傳輸過程中特別是DMA傳輸中是非常浪費的。?
在LOCAL總線擴展器件的速度滿足要求的情況下,PCI9054標(biāo)準(zhǔn)DMA傳輸并不需要等待周期,所以等待周期可以省略,這樣狀態(tài)機轉(zhuǎn)換過程得以簡化。改進的狀態(tài)機狀態(tài)轉(zhuǎn)換圖如圖6所示。?
通過實際測試,在同一臺計算機同種情況下,改進的狀態(tài)機速率可以比原狀態(tài)機速率高出10 MB以上,實際測得新狀態(tài)機在用戶模式下,查詢方式DMA傳輸速度可以穩(wěn)定達到88 MB/s。?
3 結(jié) 語?
計算機總線擴展技術(shù)使得基于計算機的數(shù)據(jù)采集技術(shù)迅速得到應(yīng)用,基于計算機PCI總線的數(shù)據(jù)采集系統(tǒng)結(jié)合先進的數(shù)字信號處理技術(shù)得到了最為廣泛的應(yīng)用,是科研人員的重要工具,不但廣泛應(yīng)用于電力設(shè)備監(jiān)控、遙測遙感等測控領(lǐng)域,在圖像采集、雷達、通訊、地質(zhì)、醫(yī)療器械等領(lǐng)域中也有著重要的應(yīng)用。?
評論
查看更多