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