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