基于PCI總線的高速實時數(shù)據(jù)采集系統(tǒng)
摘 要:本文介紹了一種基于PCI總線的高速實時數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)方法,主要討論了高速數(shù)據(jù)采集的存儲與傳輸?shù)挠布鉀Q方案,以及該系統(tǒng)的控制邏輯的實現(xiàn),最后給出了控制邏輯仿真波形。
關(guān)鍵詞:PCI總線;CPCI總線;高速實時數(shù)據(jù)采集;FIFO;CPLD
引言
目前的大多數(shù)雷達信號處理機都是采用自定義總線,不具有通用性,每進行一些系統(tǒng)功能的改變就需要大量的硬件改動。而CPCI總線作為一種新興的工業(yè)總線,其采用了PCI總線的電氣特性以及VME總線的物理特性,兼具了二者的優(yōu)點,正在不斷的推廣應(yīng)用。由于PCI總線接口比較容易實現(xiàn),因此我們采用了基于CPCI總線的工控機來實現(xiàn)雷達信號處理。作為雷達信號處理的前端,數(shù)據(jù)采集板是通用雷達信號處理機的不可缺少的一部分。本文就是根據(jù)某通用雷達信號處理機的要求而設(shè)計的。實踐表明,該系統(tǒng)可以有效的解決數(shù)據(jù)的實時傳輸和存儲問題,為信號的實時處理提供了方便。
數(shù)據(jù)采集系統(tǒng)的硬件結(jié)構(gòu)
在某通用雷達信號處理機中,我們需要對雷達輸入信號的I和Q兩個通道的信號進行中頻采樣,采樣精度為12位,最高采樣頻率為20MHz,數(shù)據(jù)采集卡采集到的數(shù)據(jù)要通過PCI總線實時的傳輸給數(shù)字信號處理板。每路數(shù)字信號字長采用16位,兩路合并為32位數(shù)據(jù),通過PCI總線進行傳輸。
根據(jù)以上要求,采用圖1的設(shè)計方案。系統(tǒng)設(shè)計以PCI總線控制器為基礎(chǔ),通過主控寫方式將采集到的I、Q兩路數(shù)據(jù)實時傳送給數(shù)字信號處理板。系統(tǒng)的主要功能模塊有:ADC(AD9042)、PCI總線控制器(PCI9054)、FIFO緩沖器(IDT72V3660)、系統(tǒng)邏輯控制芯片CPLD(EPM7128)等。
其中ADC采用美國ADI公司生產(chǎn)的一種高速度、高性能、低功耗的12位AD9042。它片內(nèi)帶有跟蹤/保持放大器和基準(zhǔn)電源,只需單+5V電源即能工作,并能以最高41MHz的速率提供與CMOS兼容的邏輯數(shù)據(jù)輸出。而PCI9054是PLX公司的一種功能強大、使用靈活的PCI/CPCI系統(tǒng)總線的橋接芯片。它支持32位數(shù)據(jù)、33MHz速率的PCI總線,符合V2.1和V2.2版的PCI規(guī)范;既可以工作于從模式,又可以工作于PCI主模式下。
本系統(tǒng)采用PCI9054的主模式傳送。當(dāng)FIFO輸出的半滿標(biāo)志位(/HF)有效時,啟動PCI9054的主模式寫操作,把數(shù)據(jù)從FIFO由PCI總線傳送到信號處理板。數(shù)據(jù)傳送時,局部總線控制邏輯應(yīng)驅(qū)動地址總線、數(shù)據(jù)總線、讀寫信號線及地址選通信號,控制PCI局部總線的數(shù)據(jù)傳輸。PCI一直監(jiān)控局部總線,當(dāng)PCI9054檢測到地址選通信號有效,并且地址線被驅(qū)動為有效的地址信號時,表明局部總線有數(shù)據(jù)傳送。此時,PCI9054會直接將局部總線數(shù)據(jù)存入其內(nèi)部主控寫FIFO,隨后會向CPCI/PCI系統(tǒng)申請PCI總線控制權(quán)。在得到總線控制權(quán)后,根據(jù)映射地址自行完成本次主控寫操作。局部總線控制器只需將數(shù)據(jù)寫入PCI9054內(nèi)部FIFO,其后的操作不需要CPLD的參與。
由于PCI9054內(nèi)部的主控寫FIFO只有32級深度,實時傳送高速數(shù)據(jù)時,PCI9054的內(nèi)部FIFO會很快存滿,而外界的數(shù)據(jù)仍會源源不斷的傳送過來,可能會造成數(shù)據(jù)的丟失,因此必須要擴展外部FIFO。同時,AD9042的數(shù)據(jù)輸出需要與CMOS邏輯的接口器件相連接,因此我們采用CMOS器件IDT72V3660來擴展系統(tǒng)的FIFO。
CPLD控制芯片主要完成系統(tǒng)的控制邏輯,包括數(shù)據(jù)采集控制邏輯、FIFO控制邏輯和PCI接口控制邏輯三部分。我們采用Altera公司的EPM7128來實現(xiàn)系統(tǒng)的邏輯控制,并利用MaxPlusII軟件進行設(shè)計、仿真和調(diào)試。實驗表明,EPM7128完全可以滿足系統(tǒng)的設(shè)計要求,大大提高了系統(tǒng)控制電路的集成度。
數(shù)據(jù)采集系統(tǒng)控制和CPLD設(shè)計
CPLD對系統(tǒng)的控制包括對AD9042的控制、對FIFO的控制以及對PCI9054的控制。其中,對PCI9054的邏輯控制是設(shè)計的重點。
對于AD9042,只需要提供20MHz的編碼信號ENCODE,它就會在每一個ENCODE信號的上升沿觸發(fā)A/D轉(zhuǎn)換。同時,IDT72V3660在寫允許信號有效時,也是在WCLK信號的上升沿把FIFO輸入數(shù)據(jù)線上的數(shù)據(jù)存入FIFO。因此,可以把40MHz的時鐘信號二分頻,得到的20MHz時鐘信號直接提供給AD9042和IDT72V3660,啟動AD9042的模數(shù)轉(zhuǎn)換以及進行采樣數(shù)據(jù)的存儲。同時注意,由于AD9042的采集數(shù)據(jù)輸出需要3個時鐘延遲,系統(tǒng)剛啟動時讀取的3個數(shù)據(jù)是無效數(shù)據(jù)。因此,信號處理板在軟件設(shè)計時,必須拋棄系統(tǒng)啟動時讀取的前3個數(shù)據(jù)。這樣,A/D采樣的數(shù)據(jù)就會以20MHz的頻率存入FIFO,用以后續(xù)向信號處理板傳輸。
PCI9054局部總線可以工作在M模式、J模式和C模式下,M模式是專門為Motorola公司的MPC850和MPC860提供直接非復(fù)用的接口,J模式是數(shù)據(jù)和地址復(fù)用的模式,而C模式是數(shù)據(jù)和地址非復(fù)用的總線模式。電路設(shè)計和時序控制比較簡單,因此在本系統(tǒng)中PCI9054局部總線工作在C模式。利用其FIFO的主控功能,通過突發(fā)傳輸將數(shù)據(jù)傳送到信號處理板中。
傳輸控制電路如圖2所示。CPLD充當(dāng)局部總線的主控方,控制局部總線的數(shù)據(jù)傳輸,而PCI9054只作為局部總線的被動方。需要傳送數(shù)據(jù)時,只要PCI9054沒有占用總線(即LHOLD、LHOLDA無效),CPLD只需要使地址選通信號(/ADS)有效,同時送出有效的地址信號,就可以觸發(fā)一次數(shù)據(jù)傳送。PCI9054會在/ADS的上升沿鎖存地址信號。
數(shù)據(jù)傳送時根據(jù)突發(fā)控制信號(/BLAST、/BTERM)可以選擇單字傳輸、四字突發(fā)傳輸以及連續(xù)突發(fā)傳輸模式。如果Burst模式位和Bterm模式位使能,PCI9054就進入連續(xù)突發(fā)模式。這樣,CPLD在發(fā)送出一個地址信號以后,就可以在每一個LCLK的下降沿送出一個32位數(shù)據(jù)。
如果PCI9054沒有準(zhǔn)備好接收,它應(yīng)該使它的準(zhǔn)備好信號(/READY)無效,通知CPLD插入等待周期。同時,如果CPLD沒有準(zhǔn)備好發(fā)送,可以使等待信號(/WAIT)有效,來主動插入等待周期。主控發(fā)送方CPLD如果發(fā)送結(jié)束,就在發(fā)送數(shù)據(jù)的最后一個字節(jié)的同時,使突發(fā)傳送中止信號(/BTERM)有效,通知PCI9054這是突發(fā)傳送的最后一個字節(jié),從而結(jié)束本次突發(fā)傳送。傳送過程中,如果PCI9054希望打斷本次突發(fā)傳輸,它也可以使/BTERM有效,來結(jié)束本次突發(fā)傳輸。CPLD如果要繼續(xù)傳送數(shù)據(jù),只能使/ADS有效,同時送出地址信息,重新開始下一次突發(fā)傳輸。
局部總線上的數(shù)據(jù)只是進入PCI9054的內(nèi)部主模式寫FIFO,啟動其主模式寫傳輸。PCI9054首先通過總線申請信號線(/REQ)向PCI總線仲裁器申請總線,如果總線仲裁器允許,會向PCI9054回應(yīng)一個總線應(yīng)答信號(/GNT),這樣PCI9054就控制了PCI總線,從而可以開始主模式的數(shù)據(jù)傳送。
數(shù)據(jù)首先進入PCI9054的內(nèi)部32級的主模式寫FIFO,然后通過PCI總線傳送到信號處理模塊。突發(fā)傳輸以一幀為單位,一幀傳送2048長字,CPLD內(nèi)置計數(shù)器,如果計數(shù)達到2048以后,就主動向PCI9054發(fā)送/BTERM信號,以中止本次突發(fā)傳送。在突發(fā)傳送過程中,如果CPLD檢測到/BTERM有效,表示PCI9054主動中止本次突發(fā)傳送,則CPLD控制邏輯應(yīng)該使FIFO讀允許信號(/REN)無效,從而停止本次突發(fā)數(shù)據(jù)傳送。同時,不停的檢測PCI9054的/READY信號,如果準(zhǔn)備好信號有效,則重新發(fā)送地址選通信號(/ADS)和地址信號,繼續(xù)本一幀數(shù)據(jù)的突發(fā)傳送。CPLD內(nèi)部應(yīng)該設(shè)置傳送計數(shù)器,以便能夠準(zhǔn)確的計算出被PCI9054打斷以后繼續(xù)傳輸?shù)牡刂?。一幀?shù)據(jù)傳送結(jié)束以后,就重新等待FIFO的半滿信號(/HF),以啟動下一幀的數(shù)據(jù)傳送。這樣,A/D采樣數(shù)據(jù)就通過PCI總線源源不斷的送入信號處理板。數(shù)據(jù)傳輸部分的仿真波形如圖3所示。
結(jié)語
本系統(tǒng)已應(yīng)用于某通用雷達信號處理機中,是該雷達信號處理機的重要組成部分。經(jīng)前端對數(shù)據(jù)處理之后,在定時時鐘的驅(qū)動下,對信號進行實時A/D轉(zhuǎn)換。然后,利用PCI總線的高速傳送特性,把采集數(shù)據(jù)送入信號處理模塊,進行后續(xù)的數(shù)字信號處理。工程實踐證明,該系統(tǒng)能夠可靠的工作,并為后續(xù)信號處理提供有效的數(shù)據(jù)?!?/P>
參考文獻
1 PCI9054 DATA BOOK.USA:PLX Corp,1999
2 IDT DATA SHEET.USA:IDT Corp,2000
3 李貴山等.PCI局部總線開發(fā)者指南.西安:西安電子科技大學(xué)出版社,1996
4 劉書明等.高性能模數(shù)與數(shù)模轉(zhuǎn)換設(shè)計.西安:西安電子科技大學(xué)出版社,2000
5 姚秀娟等.基于TMS320C32和AMCCS5933的高速數(shù)據(jù)采集系統(tǒng).電子設(shè)計應(yīng)用. 2003.7
評論