基于PCI總線多通道數(shù)據(jù)采集系統(tǒng)的設計
摘 要:基于PCI總線的高速數(shù)據(jù)采集系統(tǒng)是近年來數(shù)據(jù)采集及其傳輸技術的一個發(fā)展方向。文中圍繞PCI總線接口控制器PCI9054,給出系統(tǒng)硬件設計方案,并闡明各個模塊的具體實現(xiàn)。設計出的采集卡具有體積小、速度快、支持突發(fā)性大數(shù)據(jù)量傳輸和抗干擾性強等特點,主要應用在圖像數(shù)據(jù)采集領域。
?
關鍵詞:數(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ù)命令通過驅動程序啟動模數(shù)轉換,模擬信號通過信號調理后進入A/D芯片,模數(shù)轉換后的數(shù)據(jù)存入FIFO(先進先出)存儲器緩存,在數(shù)據(jù)存儲器中存滿一幀時,硬件向主機發(fā)中斷,主機響應中斷后通過PCI9054芯片用DMA方式讀出存放在數(shù)據(jù)存儲器中的采樣數(shù)據(jù),然后進行后續(xù)處理(如計算、存儲)并將結果顯示于屏幕。
DSP實時處理模塊是在邏輯控制模塊的控制下與計算機通過LOCAL總線接口進行通訊,以便交換數(shù)據(jù),執(zhí)行命令。?
2 系統(tǒng)硬件設計?
數(shù)據(jù)采集系統(tǒng)硬件由兩大部分組成:一是基于PCI總線的數(shù)據(jù)采集模塊,二是基于DSP擴展實時處理模塊。下面將分別敘述,系統(tǒng)總體硬件框圖如圖1所示。?
2.1 模擬通道及模數(shù)轉換?
本設計的模擬通道只對模擬信號進行簡單處理,使模擬信號符合A/D轉換芯片的要求即可。針對該數(shù)據(jù)采集卡的應用領域信號具有信號相關性強的特點,應采用多通道的同步采樣芯片,經過比較,選擇了ADS8364。ADS8364是一款高速、低功耗,具有6通道同步采樣轉換,16位高速并行接口的高性能模數(shù)轉換芯片。ADS8364的6個模擬輸入分為3組(A,B和C),每個輸入端都有一個ADC保持信號HOLDX#以用來保證幾個通道能同時進行采樣和轉換。實際上,每片ADS8364由?3個?轉換速率為250 ksps(當外部時鐘為5 MHz)的ADC構成,每個ADC有2個模擬輸入通道,每個通道都有采樣保持器,3個ADC組成3對模擬輸入端,可同時對其中的1~2對輸入信號同時采樣保持,然后逐個轉換。由于6個通道可以同時采樣,很適合用于需同時采集多種信號的場合。?
在設計的采集卡上,采用2片ADS8364,每片設計成6路單端輸入,共12路模擬輸入。用相同的外部時鐘來控制轉換,每片ADS8364輸出16位數(shù)據(jù),兩片的輸出拼接成32位數(shù)據(jù),以提高PCI總線的傳輸效率。數(shù)據(jù)傳輸?shù)接嬎銠C后,再進行分路處理。另外,在PCI總線傳輸速度允許范圍內,還可以通過擴展接口進行擴展,以處理更多的模擬輸入。?
2.2 數(shù)據(jù)緩存?
因為PCI總線接口數(shù)據(jù)傳輸效率非常高而A/D采集數(shù)據(jù)效率較低,所以為了實現(xiàn)數(shù)據(jù)的高速傳輸,采樣后的數(shù)據(jù)必須經過緩存,再由PCI總線接口控制器讀取,這樣才能處理更多的模擬信號輸入。緩存的設計方案一般有3種:共享RAM方式,雙口RAM方式,F(xiàn)IFO緩存方式。第一種方式因為涉及到RAM的同時訪問,邏輯比較復雜;第二種方式芯片價格昂貴;第三種既簡單性價比又高。?
設計中FIFO采用TI公司生產的SN74V3690芯片是一款具有大深度、高速GMOS工藝的先進先出存儲器,有讀寫控制和可變的總線匹配*36*18*9數(shù)據(jù)流。時鐘頻率最高可達166 MHz,6 ns讀寫周期,帶有FIFO狀態(tài)標志信號Empty,Full,Half-Full,可編程的標志信號Almost-Empty和Almost-Full。?
系統(tǒng)FIFO的輸入輸出均被配置為32位,在啟動?A/D?采樣后,由邏輯控制部分控制數(shù)據(jù)寫入FIFO,當FIFO達到半滿時,半滿標志信號HF#翻轉(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;支持復用/非復用的32位地址/數(shù)據(jù);本地總線可為3種模式:M模式、C模式和J模式,可利用模式選擇引腳加以選擇。?
(4) 內部有6種可編程的FIFO,以實現(xiàn)零等待突發(fā)傳輸及本地總線和PCI總線之間的異步操作。?
(5) 提供了一個串行E?2PROM配置接口,容量2 kB。在配置存儲器中存放了廠家標示、設備標示以及本地總線的基地址空間、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的接口設計?
PCI9054的串行E?2PROM配置接口包含以下3個信號:EECS片選;EESK串行數(shù)據(jù)時鐘;EEDI/EEDO數(shù)據(jù)輸入/輸出。設計選用了PLX公司推薦兼容的串行?E?2PROM?芯片NM93CS56N芯片,他是National Semiconductor公司生產的低電壓串行電可擦除存儲器,采用CMOS工藝制成,容量為2 048位(128*16位),8引腳,支持三線制MicroWare串行總線的E?2PROM,其引腳如下:?
本文原文
CS:片選信號;?
SK:串行時鐘輸入信號,同時也是微處理器與?E?2PROM?之間通信的同步信號,數(shù)據(jù)在他的上升沿鎖定有效;?
DI:數(shù)據(jù)輸入;?
D數(shù)據(jù)輸出。?
PCI9054與E?2PROM的接口設計如圖2所示。?
2.3.2 PCI9054局部總線設計?
由于PCI9054與PCI總線之間實現(xiàn)了無縫連接,系統(tǒng)與計算機接口的大部分信號直接連接即可。PCI9054 Local總線部分信號時序比較復雜,因此用邏輯控制部分來實現(xiàn)PCI9054 Local端的控制。將PCI9054局部數(shù)據(jù)總線高5位數(shù)據(jù)線接到CPLD引腳上,這5根數(shù)據(jù)線可以接收和發(fā)送數(shù)據(jù),根據(jù)接收到的數(shù)據(jù)對其譯碼產生控制信息,還可以發(fā)出數(shù)據(jù)使PCI9054產生門鈴中斷和MailBox中斷。PCI總線框圖如圖3所示。?
PCI9054局部總線支持50 MHz時鐘,為配合A/D工作,選用40 MHz時鐘。PCI9054的所有地址線和控制信號都只邏輯控制部分連接,產生邏輯控制的工作狀態(tài)和各種控制信息。?
2.4 實時處理模塊?
在數(shù)字信號處理領域,很多情況下,模擬輸入數(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芯片,他的配置程序固化在芯片內的?E?2PROM?中,所以該器件不需要專用的配置存儲器,所有MAX7000A系列產品都由ALTERA公司提供的編程硬件和軟件進行編程。
利用EPM7256A內部邏輯單元設計實現(xiàn)局部總線控制器,用于實現(xiàn)局部總線的狀態(tài)控制,同時利用其內部邏輯編程形成存儲陣列構成SRAM,存放發(fā)往各端口的操作指令。?
2.5.1 狀態(tài)機設計?
在PCI目標和DMA傳輸模式下,PCI9054是局部總線的主設備,通過設置PCI9054內部配置寄存器可以使能或禁止外部等待輸入控制信號READY#,以使PCI9054工作于內部等待或外部等待狀態(tài)。若READY#信號被禁止,則在每次傳輸?shù)牡刂泛蛿?shù)據(jù)間插入等待狀態(tài),其數(shù)目由內部等待狀態(tài)計數(shù)器決定。若READY#信號使能,則READY#信號的持續(xù)時鐘周期數(shù)目決定了PCI9054所附加的等待狀態(tài)。系統(tǒng)采用外部READY#信號,以決定等待狀態(tài)。圖5為局部總線狀態(tài)機轉換圖。?
從狀態(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)機設計的一般方法。通過實際測試,在用戶模式下,查詢方式DMA傳輸速度可以穩(wěn)定達到68 MB/s。?
2.5.2 改進的狀態(tài)機設計?
PCI總線峰值速率為132 MB/s,在上述狀態(tài)機和傳輸狀態(tài)下,DMA速率只有68 MB/s,說明其中存在漏洞。
對比PCI9054技術資料給出的DMA時序圖發(fā)現(xiàn),由于狀態(tài)機設有3個狀態(tài),每次啟動傳輸都需要有一個等待狀態(tài)來配置各種信號線,所以每次傳輸都要浪費1個時鐘周期時間,這在高速數(shù)據(jù)傳輸過程中特別是DMA傳輸中是非常浪費的。?
在LOCAL總線擴展器件的速度滿足要求的情況下,PCI9054標準DMA傳輸并不需要等待周期,所以等待周期可以省略,這樣狀態(tài)機轉換過程得以簡化。改進的狀態(tài)機狀態(tài)轉換圖如圖6所示。?
通過實際測試,在同一臺計算機同種情況下,改進的狀態(tài)機速率可以比原狀態(tài)機速率高出10 MB以上,實際測得新狀態(tài)機在用戶模式下,查詢方式DMA傳輸速度可以穩(wěn)定達到88 MB/s。?
3 結 語?
計算機總線擴展技術使得基于計算機的數(shù)據(jù)采集技術迅速得到應用,基于計算機PCI總線的數(shù)據(jù)采集系統(tǒng)結合先進的數(shù)字信號處理技術得到了最為廣泛的應用,是科研人員的重要工具,不但廣泛應用于電力設備監(jiān)控、遙測遙感等測控領域,在圖像采集、雷達、通訊、地質、醫(yī)療器械等領域中也有著重要的應用。?
評論