關(guān)鍵詞:PCI總線,數(shù)據(jù)采集,VHDL,CPLD
1 引 言
數(shù)據(jù)采集技術(shù)是信號(hào)處理一個(gè)非常重要的環(huán)節(jié),廣泛應(yīng)用于雷達(dá)、通信、遙測(cè)遙感等領(lǐng)域。在研制基于新型連續(xù)波噪聲雷達(dá)體制的新型連續(xù)波雷達(dá)時(shí),為了研究更加有效靈活的雷達(dá)信號(hào)處理算法,利用計(jì)算機(jī)這個(gè)通用的計(jì)算和控制平臺(tái),先將雷達(dá)信號(hào)采集到計(jì)算機(jī)上,然后在計(jì)算機(jī)上進(jìn)行雷達(dá)信號(hào)處理算法的研究。課題要求對(duì)雷達(dá)I和Q兩個(gè)通道的信號(hào)進(jìn)行采集,采樣精度為12位,最高的采樣頻率為20兆。傳統(tǒng)的基于ISA、EISA和VL總線的數(shù)據(jù)采集,受到總線帶寬、控制方式和實(shí)現(xiàn)難易程度的制約,不能滿足課題要求。而PCI總線以其峰值傳輸速率高達(dá)每秒132兆字節(jié)、支持突發(fā)傳輸?shù)韧怀龅男阅?,成為我們雷達(dá)數(shù)據(jù)采集首選的計(jì)算機(jī)IO接口。本文介紹了采用PLX9054作為PCI總線接口芯片的大容量雷達(dá)數(shù)據(jù)采集系統(tǒng)的開(kāi)發(fā),系統(tǒng)包括數(shù)據(jù)采集卡和配套軟件。
2 數(shù)據(jù)采集卡系統(tǒng)結(jié)構(gòu)的介紹
數(shù)據(jù)采集卡的系統(tǒng)結(jié)構(gòu)如圖1所示。雷達(dá)輸出的I和Q兩通道視頻信號(hào)通過(guò)數(shù)據(jù)采集卡的信號(hào)調(diào)理模塊,經(jīng)隔離限幅放大后,送到模數(shù)轉(zhuǎn)換模塊,在這里,兩路模擬信號(hào)分別被轉(zhuǎn)換成12位的數(shù)字信號(hào)。兩路12位的數(shù)字信號(hào)經(jīng)鎖存后,被送到FIFO模塊緩存起來(lái),這些緩存的數(shù)據(jù)將通過(guò)PCI總線接口模塊以DMA方式存入計(jì)算機(jī)內(nèi)存。當(dāng)數(shù)據(jù)采集完成后,這些內(nèi)存中的數(shù)據(jù)將存入硬盤,生成雷達(dá)數(shù)據(jù)文件。每個(gè)通道的雷達(dá)信號(hào)只用了16位中的12位,還有4位未用,我們利用這4位來(lái)傳輸雷達(dá)隨機(jī)二相碼碼字等一些數(shù)字狀態(tài)信息,這些信息將從鎖存模塊輸入,隨雷達(dá)信號(hào)同步采集到計(jì)算機(jī)中。
數(shù)據(jù)采集卡的控制是由控制模塊來(lái)完成的。內(nèi)部時(shí)鐘模塊提供內(nèi)觸發(fā)信號(hào),它和外觸發(fā)信號(hào)一起接到控制模塊,由控制模塊根據(jù)用戶要求來(lái)選擇使用不同的觸發(fā)信號(hào)。EEPROM內(nèi)存儲(chǔ)有PCI總線接口芯片PLX9054的配置信息。
3.1 接口模塊
接口模塊的功能是由PLX9054來(lái)實(shí)現(xiàn)的。PLX9054是PLX公司的一種功能強(qiáng)、使用靈活、并符合PCIV2.2規(guī)范的32位33MHz PCI總線接口控制器,它可以作為PCI總線的主控設(shè)備去控制總線,也可以作為目標(biāo)設(shè)備去響應(yīng)總線。PLX9054提供了PCI總線、EEPROM、LOCAL總線三個(gè)接口。LOCAL總線有三種工作模式:M模式、C模式和J模式,在實(shí)際的數(shù)據(jù)采集時(shí),將LOCAL總線設(shè)置為C模式。選用Fairchild Semiconductor公司的串行EEPROM-NM93CS56L作為PLX9054的配置芯片,該芯片通過(guò)EEPROM接口和PLX9054相連。PLX9054的長(zhǎng)配置方式要求68個(gè)字節(jié)的信息,主要包括:設(shè)備識(shí)別號(hào)、供應(yīng)商代碼號(hào)、Local總線三個(gè)空間的大小以及三個(gè)空間的基址等,可以利用編程器事先將要配置的信息寫入配置芯片中。在計(jì)算機(jī)啟動(dòng)時(shí),系統(tǒng)將根據(jù)配置信息分配我們申請(qǐng)的系統(tǒng)資源。PLX9054作為一種“橋”芯片,在PCI總線和LOCAL總線之間有三種直接的數(shù)據(jù)傳輸模式:
(1)PCIInitiator數(shù)據(jù)傳輸模式:LOCAL總線主設(shè)備通過(guò)PLX9054訪問(wèn)PCI總線存儲(chǔ)空間和I/O空間。
?。?)PCITarget數(shù)據(jù)傳輸模式:PCI總線主設(shè)備通過(guò)PLX9054訪問(wèn)LOCAL總線存儲(chǔ)空間和I/O空間。
?。?)DMA數(shù)據(jù)傳輸模式:PLX9054作為兩總線的主設(shè)備,從PCI總線存儲(chǔ)空間讀數(shù)據(jù)到LOCAL總線存儲(chǔ)空間或者從LOCAL總線存儲(chǔ)空間讀數(shù)據(jù)到PCI總線存儲(chǔ)空間。
在實(shí)際的數(shù)據(jù)采集中,我們僅用到PCITarget和DMA兩種數(shù)據(jù)傳輸模式,PCITarget用于對(duì)控制模塊中的寄存器進(jìn)行讀寫,用于采集方式的設(shè)定,DMA用于雷達(dá)數(shù)據(jù)的采集。
3.2 信號(hào)調(diào)理模塊和模數(shù)轉(zhuǎn)換模塊
采用AD843構(gòu)成的信號(hào)調(diào)理模塊,對(duì)輸入的雷達(dá)信號(hào)進(jìn)行隔離限幅放大。經(jīng)過(guò)調(diào)理后的雷達(dá)信號(hào)送到高速模數(shù)轉(zhuǎn)換芯片AD9042AD的模擬輸入端進(jìn)行模數(shù)轉(zhuǎn)換,模數(shù)轉(zhuǎn)換時(shí)鐘由控制模塊產(chǎn)生。AD9042AD的模擬電源由DC-DC饋電,DC-DC輸出電壓的在線穩(wěn)定度為1.25%,滿足AD9042AD模擬電壓穩(wěn)定度5%的要求。AD9042AD是一種高速、高性能、低功耗的12位高速模數(shù)轉(zhuǎn)換芯片;它采用兩級(jí)轉(zhuǎn)換模式,并以與CMOS兼容的模式輸出二進(jìn)制補(bǔ)碼,+5V供電,內(nèi)部提供采樣/保持電路以及參考電壓;它的轉(zhuǎn)換速率高達(dá)41MSPS。
3.3 FIFO模塊
利用DMA方式進(jìn)行數(shù)據(jù)傳輸時(shí),接口芯片PLX9054內(nèi)部用于數(shù)據(jù)緩沖的FIFO只有32 DWord大小,遠(yuǎn)不能滿足高速連續(xù)大容量雷達(dá)數(shù)據(jù)采集的要求。所以,采用在LOCAL總線上外加FIFO的方法來(lái)增加用于數(shù)據(jù)緩沖FIFO的容量,我們采用的FIFO芯片IDT7206L12為16K×9位,所以每路要用兩片IDT7206L12來(lái)構(gòu)成16K×18位(只用了16位),兩路共要用四片IDT7206 L12。
3.4 控制模塊
Xilinx公司的CPLD器件XC95144XL采用了最先進(jìn)的FastFlash技術(shù),有144個(gè)宏單元,3200個(gè)門電路,并且具有在系統(tǒng)可編程(ISP)和信號(hào)延遲可預(yù)測(cè)特性,使得它很適合構(gòu)成較復(fù)雜控制器件。在數(shù)據(jù)采集卡的開(kāi)發(fā)中,采用XC95144XL作為控制模塊??刂颇K主要協(xié)調(diào)各個(gè)模塊的工作,完成數(shù)據(jù)采集功能??刂颇K除了實(shí)現(xiàn)數(shù)據(jù)采集的控制邏輯外,還在其中實(shí)現(xiàn)了分頻、觸發(fā)源選擇、命令等一些控制和狀態(tài)寄存器,通過(guò)對(duì)上述寄存器的讀或?qū)?,進(jìn)行數(shù)據(jù)采集工作方式設(shè)定。
由于PLX9054的LOCAL總線工作在C模式,所以XC95144XL經(jīng)編程后的工作時(shí)序要滿足C模式的要求。我們采用VHDL邏輯輸入方式,利用Xilinx公司的配套軟件Foundation Series 2.1對(duì)XC95144XL芯片進(jìn)行編程。由于控制邏輯比較復(fù)雜,在編寫控制模塊的VHDL程序時(shí),采用了分層設(shè)計(jì)的設(shè)計(jì)方法。
4 配套軟件的實(shí)現(xiàn)
雷達(dá)數(shù)據(jù)的采集由數(shù)據(jù)采集卡在控制模塊的控制下自動(dòng)進(jìn)行,這就為數(shù)據(jù)存儲(chǔ)提供了有利條件,使主機(jī)在對(duì)PCI總線控制器和控制模塊中的控制寄存器進(jìn)行必要的初始化后,只進(jìn)行數(shù)據(jù)存儲(chǔ)工作,提高了數(shù)據(jù)實(shí)時(shí)采集與實(shí)時(shí)存儲(chǔ)的速度。在數(shù)據(jù)采集軟件的實(shí)現(xiàn)中,采用了DMA工作方式。具體工作過(guò)程為:當(dāng)系統(tǒng)啟動(dòng)后,首先對(duì)采集卡進(jìn)行檢測(cè),如采集卡存在則申請(qǐng)并分配系統(tǒng)資源,如內(nèi)存、中斷和DMA資源等,接著,對(duì)數(shù)據(jù)采集卡進(jìn)行工作方式的設(shè)置,并且,啟動(dòng)DMA進(jìn)行數(shù)據(jù)傳輸。在該程序中,以中斷方式進(jìn)行工作,即DMA先將采集的數(shù)據(jù)傳輸至主機(jī)內(nèi)存中,當(dāng)傳輸達(dá)到預(yù)定量時(shí),采集結(jié)束,調(diào)用中斷處理程序,將內(nèi)存中的數(shù)據(jù)存儲(chǔ)到硬盤中,生成雷達(dá)數(shù)據(jù)文件。數(shù)據(jù)采集軟件流程如圖2所示。
5 利用雙緩沖技術(shù)實(shí)現(xiàn)大容量數(shù)據(jù)采集
在DOS操作系統(tǒng)下,如果不用擴(kuò)展內(nèi)存管理軟件,可以分配的系統(tǒng)內(nèi)存要小于640KB。在Windows操作系統(tǒng)下,可以分配的系統(tǒng)內(nèi)存雖然要比在DOS操作系統(tǒng)下分配的大,但要分配幾十兆甚至幾百兆的連續(xù)的內(nèi)存空間是很困難的,所以采用雙緩沖技術(shù)來(lái)實(shí)現(xiàn)大容量雷達(dá)數(shù)據(jù)的采集。
在計(jì)算機(jī)中申請(qǐng)一段連續(xù)的內(nèi)存作為DMA操作的數(shù)據(jù)緩沖區(qū),其在邏輯上是一個(gè)環(huán)行緩沖區(qū),它被分成相等的兩個(gè)部分。另外,根據(jù)要采集數(shù)據(jù)的多少,申請(qǐng)若干個(gè)采集緩沖區(qū),其容量為環(huán)行緩沖區(qū)容量的一半,所申請(qǐng)采集緩沖區(qū)的總?cè)萘恳笥诨虻扔谝杉瘮?shù)據(jù)的容量。當(dāng)數(shù)據(jù)采集啟動(dòng)后,數(shù)據(jù)先寫入環(huán)行緩沖區(qū)的第一部分(如圖3a所示)。當(dāng)數(shù)據(jù)寫滿環(huán)行緩沖區(qū)的第一部分后開(kāi)始寫環(huán)行緩沖區(qū)的第二部分時(shí),我們將環(huán)行緩沖區(qū)的第一部分中的數(shù)據(jù)移到第一個(gè)采集緩沖區(qū),這樣就可以騰空環(huán)行緩沖區(qū)第一部分的空間給以后的DMA數(shù)據(jù)傳輸(如圖3b所示)。當(dāng)環(huán)行緩沖區(qū)的第二部分寫滿,采集數(shù)據(jù)將重新往騰空的環(huán)行緩沖區(qū)第一部分寫,這時(shí)我們可以將環(huán)行緩沖區(qū)的第二部分的數(shù)據(jù)移到第二個(gè)采集緩沖區(qū)(如圖3c所示),這樣就可以騰空環(huán)行緩沖區(qū)第二個(gè)部分的空間給以后的DMA數(shù)據(jù)傳輸。當(dāng)環(huán)行緩沖區(qū)的第一部分寫滿后,采集數(shù)據(jù)將重新往騰空的環(huán)行緩沖區(qū)第一部分寫,同時(shí)將寫滿的環(huán)行緩沖區(qū)的第一部分中的數(shù)據(jù)移到第三個(gè)采集緩沖區(qū)(如圖3d所示)。以后的采集過(guò)程重復(fù)前面的工作,如此循環(huán)直到數(shù)據(jù)采集傳輸結(jié)束。當(dāng)數(shù)據(jù)采集完成后,將內(nèi)存中所有采集緩沖區(qū)的數(shù)據(jù)按照采集順序存入硬盤。
6 結(jié)束語(yǔ)
本設(shè)計(jì)利用了PCI總線突出的數(shù)據(jù)傳輸性能,加上采用雙緩沖技術(shù),有效地解決了高速大容量數(shù)據(jù)采集的問(wèn)題,成功地實(shí)現(xiàn)了一百多兆字節(jié)雷達(dá)數(shù)據(jù)連續(xù)高速采集。PCI總線控制芯片的出現(xiàn)則大大縮短了PCI總線硬件設(shè)備的開(kāi)發(fā)周期,同時(shí)也使得硬件設(shè)備的可靠性和穩(wěn)定性都有了較大的提高。
2 張長(zhǎng)隆等.PCI總線接口技術(shù)及其在雷達(dá)數(shù)據(jù)采集通道中的應(yīng)用.微處理機(jī),2000(1)
評(píng)論