基于PCI總線多通道數(shù)據(jù)采集系統(tǒng)的設(shè)計
摘 要:基于PCI總線的高速數(shù)據(jù)采集系統(tǒng)是近年來數(shù)據(jù)采集及其傳輸技術(shù)的一個發(fā)展方向。文中圍繞PCI總線接口控制器PCI9054,給出系統(tǒng)硬件設(shè)計方案,并闡明各個模塊的具體實(shí)現(xiàn)。設(shè)計出的采集卡具有體積小、速度快、支持突發(fā)性大數(shù)據(jù)量傳輸和抗干擾性強(qiáng)等特點(diǎn),主要應(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ù)采集卡的工作流程是:計算機(jī)應(yīng)用程序根據(jù)命令通過驅(qū)動程序啟動模數(shù)轉(zhuǎn)換,模擬信號通過信號調(diào)理后進(jìn)入A/D芯片,模數(shù)轉(zhuǎn)換后的數(shù)據(jù)存入FIFO(先進(jìn)先出)存儲器緩存,在數(shù)據(jù)存儲器中存滿一幀時,硬件向主機(jī)發(fā)中斷,主機(jī)響應(yīng)中斷后通過PCI9054芯片用DMA方式讀出存放在數(shù)據(jù)存儲器中的采樣數(shù)據(jù),然后進(jìn)行后續(xù)處理(如計算、存儲)并將結(jié)果顯示于屏幕。
DSP實(shí)時處理模塊是在邏輯控制模塊的控制下與計算機(jī)通過LOCAL總線接口進(jìn)行通訊,以便交換數(shù)據(jù),執(zhí)行命令。?
2 系統(tǒng)硬件設(shè)計?
數(shù)據(jù)采集系統(tǒng)硬件由兩大部分組成:一是基于PCI總線的數(shù)據(jù)采集模塊,二是基于DSP擴(kuò)展實(shí)時處理模塊。下面將分別敘述,系統(tǒng)總體硬件框圖如圖1所示。?
2.1 模擬通道及模數(shù)轉(zhuǎn)換?
本設(shè)計的模擬通道只對模擬信號進(jìn)行簡單處理,使模擬信號符合A/D轉(zhuǎn)換芯片的要求即可。針對該數(shù)據(jù)采集卡的應(yīng)用領(lǐng)域信號具有信號相關(guān)性強(qiáng)的特點(diǎn),應(yīng)采用多通道的同步采樣芯片,經(jīng)過比較,選擇了ADS8364。ADS8364是一款高速、低功耗,具有6通道同步采樣轉(zhuǎn)換,16位高速并行接口的高性能模數(shù)轉(zhuǎn)換芯片。ADS8364的6個模擬輸入分為3組(A,B和C),每個輸入端都有一個ADC保持信號HOLDX#以用來保證幾個通道能同時進(jìn)行采樣和轉(zhuǎn)換。實(shí)際上,每片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(jī)后,再進(jìn)行分路處理。另外,在PCI總線傳輸速度允許范圍內(nèi),還可以通過擴(kuò)展接口進(jìn)行擴(kuò)展,以處理更多的模擬輸入。?
2.2 數(shù)據(jù)緩存?
因?yàn)镻CI總線接口數(shù)據(jù)傳輸效率非常高而A/D采集數(shù)據(jù)效率較低,所以為了實(shí)現(xiàn)數(shù)據(jù)的高速傳輸,采樣后的數(shù)據(jù)必須經(jīng)過緩存,再由PCI總線接口控制器讀取,這樣才能處理更多的模擬信號輸入。緩存的設(shè)計方案一般有3種:共享RAM方式,雙口RAM方式,F(xiàn)IFO緩存方式。第一種方式因?yàn)樯婕暗絉AM的同時訪問,邏輯比較復(fù)雜;第二種方式芯片價格昂貴;第三種既簡單性價比又高。?
設(shè)計中FIFO采用TI公司生產(chǎn)的SN74V3690芯片是一款具有大深度、高速GMOS工藝的先進(jìn)先出存儲器,有讀寫控制和可變的總線匹配*36*18*9數(shù)據(jù)流。時鐘頻率最高可達(dá)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達(dá)到半滿時,半滿標(biāo)志信號HF#翻轉(zhuǎn)(1變成0),邏輯控制部分根據(jù)他向PCI接口控制器發(fā)出中斷,通知計算機(jī)啟動數(shù)據(jù)傳輸。?
2.3 PCI總線接口?
考慮到硬件的通用性、可升級性和可擴(kuò)展性,主從處理器方式都可能被用到,所以選用了用主/從控制器PCI9054作為總線接口芯片。他符合PCI V2.2規(guī)范,主要特點(diǎn)為:?
(1) 提供了2個獨(dú)立的可編程DMA控制器,每個通道均支持塊和Scatter/Gather的DMA方式,DMA通道0支持請求DMA方式。?
(2) PCI和Local Bus的數(shù)據(jù)傳送速率高達(dá)?132 MB/s?。?
(3) 本地總線速率高達(dá)50 MHz;支持復(fù)用/非復(fù)用的32位地址/數(shù)據(jù);本地總線可為3種模式:M模式、C模式和J模式,可利用模式選擇引腳加以選擇。?
(4) 內(nèi)部有6種可編程的FIFO,以實(shí)現(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總線之間實(shí)現(xiàn)了無縫連接,系統(tǒng)與計算機(jī)接口的大部分信號直接連接即可。PCI9054 Local總線部分信號時序比較復(fù)雜,因此用邏輯控制部分來實(shí)現(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í)時處理模塊?
在數(shù)字信號處理領(lǐng)域,很多情況下,模擬輸入數(shù)字化后需要進(jìn)行實(shí)時處理,同時需要計算機(jī)的參與(參數(shù)控制、數(shù)據(jù)傳輸?shù)?。這就需要實(shí)時性很強(qiáng)的DSP參與處理,這里選用TMS320C5416作為DSP處理芯片,他具有一般DSP的特點(diǎn),這里不在贅述。?至于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公司提供的編程硬件和軟件進(jìn)行編程。
利用EPM7256A內(nèi)部邏輯單元設(shè)計實(shí)現(xiàn)局部總線控制器,用于實(shí)現(xiàn)局部總線的狀態(tài)控制,同時利用其內(nèi)部邏輯編程形成存儲陣列構(gòu)成SRAM,存放發(fā)往各端口的操作指令。?
2.5.1 狀態(tài)機(jī)設(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)機(jī)轉(zhuǎn)換圖。?
從狀態(tài)圖可以看出,該狀態(tài)機(jī)有3種傳輸狀態(tài),空閑狀態(tài)、等待狀態(tài)和傳輸狀態(tài)。狀態(tài)機(jī)能成功與PCI9054配合完成數(shù)據(jù)傳輸,傳輸性能穩(wěn)定,效果較好,是現(xiàn)在PCI9054局部總線狀態(tài)機(jī)設(shè)計的一般方法。通過實(shí)際測試,在用戶模式下,查詢方式DMA傳輸速度可以穩(wěn)定達(dá)到68 MB/s。?
2.5.2 改進(jìn)的狀態(tài)機(jī)設(shè)計?
PCI總線峰值速率為132 MB/s,在上述狀態(tài)機(jī)和傳輸狀態(tài)下,DMA速率只有68 MB/s,說明其中存在漏洞。
對比PCI9054技術(shù)資料給出的DMA時序圖發(fā)現(xiàn),由于狀態(tài)機(jī)設(shè)有3個狀態(tài),每次啟動傳輸都需要有一個等待狀態(tài)來配置各種信號線,所以每次傳輸都要浪費(fèi)1個時鐘周期時間,這在高速數(shù)據(jù)傳輸過程中特別是DMA傳輸中是非常浪費(fèi)的。?
在LOCAL總線擴(kuò)展器件的速度滿足要求的情況下,PCI9054標(biāo)準(zhǔn)DMA傳輸并不需要等待周期,所以等待周期可以省略,這樣狀態(tài)機(jī)轉(zhuǎn)換過程得以簡化。改進(jìn)的狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換圖如圖6所示。?
通過實(shí)際測試,在同一臺計算機(jī)同種情況下,改進(jìn)的狀態(tài)機(jī)速率可以比原狀態(tài)機(jī)速率高出10 MB以上,實(shí)際測得新狀態(tài)機(jī)在用戶模式下,查詢方式DMA傳輸速度可以穩(wěn)定達(dá)到88 MB/s。?
3 結(jié) 語?
計算機(jī)總線擴(kuò)展技術(shù)使得基于計算機(jī)的數(shù)據(jù)采集技術(shù)迅速得到應(yīng)用,基于計算機(jī)PCI總線的數(shù)據(jù)采集系統(tǒng)結(jié)合先進(jìn)的數(shù)字信號處理技術(shù)得到了最為廣泛的應(yīng)用,是科研人員的重要工具,不但廣泛應(yīng)用于電力設(shè)備監(jiān)控、遙測遙感等測控領(lǐng)域,在圖像采集、雷達(dá)、通訊、地質(zhì)、醫(yī)療器械等領(lǐng)域中也有著重要的應(yīng)用。?
評論
查看更多