摘 要: 介紹一種基于CPLD" title="CPLD">CPLD的多普勒聲納" title="多普勒聲納">多普勒聲納回波信號仿真卡的設計實現(xiàn),該板卡作為PXI測試系統(tǒng)的一個組成模塊,數(shù)據(jù)交換基于PXI總線" title="PXI總線">PXI總線,使用S5920" title="S5920">S5920實現(xiàn)總線控制,利用CPLD實現(xiàn)板卡的時序邏輯控制,外圍電路包括信號調理與匹配電路、DDS電路、A/D采集電路、高速FIFO" title="FIFO">FIFO存儲電路、D/A轉換電路等。重點介紹了CPLD內(nèi)部功能模塊的實現(xiàn)。該設計已成功應用于多普勒聲納的PXI測試系統(tǒng)中。
關鍵詞: 多普勒聲納;PXI總線;S5920;CPLD;FIFO
水下航行器可利用聲波信號的多普勒效應進行導航,多普勒聲納按一定的角度向海底發(fā)射聲波,利用回波信號的多普勒頻移測得航行器相對于海底的速度,然后通過對地速的積分結合航向信息就可以獲得導航解[1]。在水下航行器的研制、生產(chǎn)、實驗、驗收等環(huán)節(jié)中,經(jīng)常需要對導航聲納的性能參數(shù)進行測試,若進行實物的水下航行實驗,不僅會花費大量的人力、物力和財力,而且實時參數(shù)的獲取也有一定的困難。本文提出一種利用模塊化的PXI總線測試平臺對水下航行器導航系統(tǒng)進行測試的解決方案,使得對導航系統(tǒng)的測試可以在陸上實驗室完成。測試平臺大部分由成熟的通用測試模塊構成,其中對回波信號多普勒效應的模擬是整個系統(tǒng)設計的關鍵環(huán)節(jié),本文通過設計專門的多普勒聲納回波信號仿真卡實現(xiàn)[2]。
1 仿真卡的組成與工作原理
1.1 仿真卡組成
仿真卡主要由總線接口芯片、CPLD、門限比較電路、DDS(直接數(shù)字頻率合成)電路、A/D采集電路、FIFO存儲電路、D/A 轉換電路以及輸入輸出端的信號調理與匹配電路等組成。導航系統(tǒng)包括4個安裝在航行器底部的多普勒聲納,因此仿真卡有4個相對獨立的工作通道,分別模擬多普勒聲納4個不同方向的回波信號,其中一個通道的結構組成如圖1所示。
1.2 工作原理
總線接口芯片S5920實現(xiàn)仿真卡與PXI測試系統(tǒng)的橋接,可簡化接口部分的設計。CPLD實現(xiàn)仿真卡的總體時序邏輯控制。對接換能器輸出的模擬信號在板卡上經(jīng)信號預處理電路后分為兩路,一路信號送A/D采集電路,另一路信號進入門限比較電路。當多普勒聲納發(fā)射信號時,對接換能器對應有模擬信號輸出,門限比較電路會產(chǎn)生一個觸發(fā)信號送CPLD,CPLD啟動仿真卡的數(shù)據(jù)采集過程。數(shù)據(jù)采集與回波信號模擬的時序邏輯如圖2所示,t1為發(fā)射信號周期,T為發(fā)射脈沖寬度,采集數(shù)據(jù)同時存入4路FIFO存儲器,經(jīng)過t2時間的延遲后由CPLD控制讀取4路FIFO中的數(shù)據(jù)并進行D/A轉換,然后經(jīng)數(shù)字衰減電路和信號匹配電路后由對接換能器發(fā)射出去。若聲速為c,則該回波信號模擬的是傳播距離為m=ct2/2的回波信號,T′為回波信號的脈沖寬度。
DDS芯片產(chǎn)生A/D采集芯片、FIFO芯片以及D/A轉換芯片的工作時鐘,CPLD通過程控DDS產(chǎn)生不同的工作時鐘信號,使得D/A轉換時鐘不同于A/D采集時鐘,從而實現(xiàn)采集數(shù)據(jù)在時間上的拉伸與壓縮,模擬回波信號的多普勒效應。真實回波信號在信道中傳輸后會有不同程度的衰減,因此D/A轉換后的數(shù)據(jù)需經(jīng)數(shù)字衰減電路進行程控衰減。信號預處理電路和信號匹配電路的核心都是一級射隨電路。板卡上共有5片DDS,產(chǎn)生5路時鐘信號,DDS0時鐘作為A/D采集時A/D芯片和FIFO芯片的工作時鐘,另4路時鐘DDS1~DDS4作為D/A轉換時FIFO芯片和D/A芯片的工作時鐘,DDS芯片和數(shù)字衰減器需經(jīng)CPLD配置參數(shù)才能正常運行。
2 主要功能模塊硬件設計
功能仿真卡硬件設計要滿足以下指標:
(1)板卡作為PXI測試系統(tǒng)的一個模塊,與PXI主機的數(shù)據(jù)交換基于PXI總線;
(2)系統(tǒng)運行的邏輯控制和部分芯片的配置功能由CPLD[3]完成;
(3)板卡數(shù)據(jù)采集系統(tǒng)的時鐘由程控的DDS產(chǎn)生,數(shù)據(jù)采集頻率10MHz~40MHz;
(4)采集數(shù)據(jù)的存儲采用高速大容量的FIFO存儲器實現(xiàn),存儲深度為1MB;
(5)A/D采集和D/A轉換采用8bit芯片,工作頻率≥40MHz[4]。
PXI總線是在PCI局部總線的基礎上增加了用于多板同步的觸發(fā)總線和參考時鐘而成的,PXI是PCI總線的一種擴展總線,因此完全兼容PCI總線的規(guī)范協(xié)議。利用成熟的PCI模塊,通過軟件兼容性設計與修改,就可以完成PXI系統(tǒng)的設計與開發(fā)。由于PCI總線協(xié)議的邏輯時序比較復雜,這里采用PCI總線接口芯片S5920來實現(xiàn)接口功能[5]。S5920內(nèi)部配置寄存器的定義信息存儲在外接的EEPROM芯片AT24C02中,系統(tǒng)上電時由操作系統(tǒng)的配置軟件讀取。
CPLD是整個仿真卡的主控模塊,根據(jù)S5920提供的控制信息,控制實現(xiàn)各部分電路的時序邏輯功能。CPLD采用Altera公司MAX II系列的EPM1270芯片。MAX II CPLD采用類似于FPGA的全新架構,與傳統(tǒng)的CPLD相比,可以提供給用戶更多的邏輯資源,更多的用戶I/O,同時具有更低的功耗。
DDS采用AD公司的AD9850芯片。AD9850內(nèi)部包含高性能的D/A轉換器和高速比較器,通過設置32bit的頻率控制字,可產(chǎn)生0~40MHz的穩(wěn)定方波信號。射隨電路采用低噪聲、高精度運算放大器OP37。門限比較電路采用低偏置電壓的四路比較器LM339,參考電壓由外部基準源ADR510提供。AD采集部分由寬頻帶電流反饋運放OPA681和8bit精度A/D轉換芯片ADS831組成,ADS831采用內(nèi)置參考電壓,單極性輸入信號,輸入電壓信號范圍為1.5V~3.5V。FIFO存儲器采用IDT公司512KB的IDT72V2113,為實現(xiàn)1MB的存儲深度,IDT72V2113設置成512K×9bit工作方式,并采用兩片進行級聯(lián)。AD9709和高速運放AD843構成D/A轉換電路,AD9709是一種雙通道8位D/A轉換器,因此4個轉換通道只需要兩片AD9709。程控衰減電路采用AD7111N和OP37構成的典型應用電路,通過鎖存一個字節(jié)的配置數(shù)據(jù),AD7111N可以實現(xiàn)0~88.5dB的程控衰減,衰減步長為0.375dB。
3 CPLD功能實現(xiàn)
CPLD模塊的設計是整個仿真卡的核心,其要實現(xiàn)的功能包括:(1)接口功能。能夠實現(xiàn)CPLD與PCI橋芯片S5920的數(shù)據(jù)通信,并鎖存所預設的參數(shù);(2)根據(jù)主機設定的參數(shù),正確配置5片DDS和4片數(shù)字衰減器;(3)初始化各外圍芯片,運行過程中控制其運行狀態(tài),必要時可重新復位;(4)根據(jù)外部觸發(fā)信號啟動A/D采集,并按照預設參數(shù)值適時啟動D/A轉換過程。
CPLD的開發(fā)工具采用Altera公司提供的集成開發(fā)工具Quartus II 5.1[6]。設計方法采用VHDL和原理圖的混合設計。CPLD控制器的內(nèi)部功能實現(xiàn)較為復雜,模塊之間的邏輯聯(lián)系較多,下面僅以接口功能模塊、配置模塊和邏輯控制模塊三個主要部分來介紹CPLD的內(nèi)部功能實現(xiàn)。
3.1 接口功能模塊
接口模塊的功能主要是使CPLD能夠正確接收主機的控制和數(shù)據(jù)信息,并對數(shù)據(jù)進行鎖存。S5920將PCI總線信號轉換成相對簡單的外加總線(ADD_ON_BUS)信號,根據(jù)S5920的不同數(shù)據(jù)傳輸方式,外加總線信號也分為直通通道引腳和郵箱通道引腳兩大類。這里采用直通通道傳輸方式,圖3為直通通道主動操作方式下不使用PTADR#信號的PCI寫時序圖。PTATN信號低電平有效表示一個PCI總線周期正在進行;PTBURST信號無效表示未用猝發(fā)傳送方式,而是單周期方式;PTNUM是直通通道的通道號;PTWR信號有效表示是進行寫操作;PTBE是直通通道的字節(jié)允許標志,指示32位雙字中的哪個字節(jié)有效;DXFR為主動方式傳送完畢信號,其為低電平時表示有數(shù)據(jù)正在傳送,因此接口模塊是在DXFR低電平的時鐘上跳沿時鎖存數(shù)據(jù)。
數(shù)據(jù)傳送采用16位總線方式,低8位是數(shù)據(jù),高8位是地址信息,接口模塊在接收到16位信息后直接對地址譯碼后將數(shù)據(jù)鎖存入存儲區(qū)中的相應地址。這些數(shù)據(jù)信息包括系統(tǒng)的運行參數(shù)、DDS與數(shù)字衰減器的配置數(shù)據(jù)以及主機控制板卡工作狀態(tài)的控制信息。同時接口模塊還要提供外加總線的時鐘信號ADCLK作為S5920的工作時鐘。
3.2 配置模塊
系統(tǒng)在啟動或復位后,需要對DDS和數(shù)字衰減器進行配置,配置數(shù)據(jù)由主機寫入接口模塊進行鎖存。由于DDS與數(shù)字衰減器的配置過程類似,這里以相對復雜的DDS配置過程為例說明相應功能的CPLD實現(xiàn)。
AD9850的配置可采用并行或串行配置方式,這里采用并行方式,配置時序如圖4所示。40bit的配置數(shù)據(jù)分成5個字節(jié),第一個字節(jié)是相位調制和電源功能信息,后4個字節(jié)是頻率控制字。配置前先由RESET信號對芯片復位,5個字節(jié)的配置數(shù)據(jù)在W_CLK的上升沿寫入AD9850,F(xiàn)Q_UD是配置結束信號,AD9850在FQ_UD的上跳沿刷新輸出頻率。
CPLD內(nèi)部的DDS配置模塊的頂層原理圖文件如圖5所示。主要包括一個配置邏輯產(chǎn)生模塊dds_cfg、6bit計數(shù)器lpm_counter0和一個T觸發(fā)器lpm_tff1。5片DDS共用一個dds_reset信號,圖中6位計數(shù)器lpm_count0作為地址發(fā)生器,dds_cfg模塊根據(jù)不同的地址信息讀取配置數(shù)據(jù)并產(chǎn)生如圖5所示的配置邏輯信號。計數(shù)器使能的有效信號由預設參數(shù)結束后的啟動信號begin產(chǎn)生,配置完成后的cnt_clken信號使計數(shù)器使能信號變低,使整個配置模塊停止工作,從而完成配置過程。
3.3 邏輯控制模塊
CPLD的控制功能主要由邏輯控制模塊實現(xiàn),控制模塊的主要功能示意圖如圖6。4片F(xiàn)IFO的讀空信號(FIFO_OR)取邏輯與后經(jīng)脈沖同步產(chǎn)生一個脈沖復位信號,這里取與的目的是取最后讀空的FIFO讀空標志,同時主機的控制信號經(jīng)或門也可以對系統(tǒng)進行復位。這樣每個工作周期系統(tǒng)便自動復位,而主機也可以隨時對仿真卡進行復位。外部觸發(fā)信號與主機的控制信號取與后作為計數(shù)器的時鐘使能信號。比較器將計數(shù)器的計數(shù)值與上位機的預設參數(shù)相比較,當計數(shù)到預設值后產(chǎn)生相應的控制信號送時鐘控制模塊。時鐘控制模塊主要是根據(jù)計數(shù)比較結果、FIFO讀空信號以及外部觸發(fā)信號控制A/D、D/A和FIFO芯片的工作時鐘,以控制各外圍電路的工作,同時時鐘控制模塊還對DDS產(chǎn)生的時鐘信號進行必要的整形或反相,以滿足外圍電路正常工作的時序要求。
4 CPLD內(nèi)部設計仿真與板卡調試
CPLD內(nèi)部設計的功能仿真和時序仿真都通過Quartus II集成的仿真工具進行。由于時序仿真包含了布局布線后的延時信息,能夠真實地反映芯片的工作情況。時序仿真前,需要編輯完整的測試激勵文件,設置正確的時序約束參數(shù),如設置具有一定裕量的時鐘周期、時鐘建立時間、時鐘保持時間等,剪除非相關時鐘域中的時序路徑,并將內(nèi)部非時鐘路徑的T觸發(fā)器輸入端管腳設置為非時鐘等。最終時序仿真的結果完全能夠滿足設計的功能要求與時序要求。
由于在Windows XP系統(tǒng)中應用程序無法直接對硬件端口進行操作,因此需要編寫專用的驅動程序。這里采用目前應用廣泛的WinDriver開發(fā)工具,利用它的向導工具,不需要深入了解操作系統(tǒng)的整個內(nèi)核體系結構,就可以開發(fā)出高質量的驅動程序,應用程序采用Visual C++開發(fā)。將仿真卡在整個PXI測試系統(tǒng)中進行調試,發(fā)現(xiàn)該板卡能夠完全滿足最初的設計要求,且運行穩(wěn)定可靠。
基于CPLD多普勒聲納回波信號仿真卡的研制,滿足了設計指標要求,特別是CPLD的應用使得整個板卡具有結構簡單、成本低、可靠性高等優(yōu)點。該仿真卡現(xiàn)在已成功應用于對某水下航行器多普勒導航聲納進行陸上檢測的PXI測試系統(tǒng)中,并取得了良好的效果。
參考文獻
[1] 李俊,沈安文.基于多普勒速度聲納的水下航行器導航方法[J].華中科技大學學報,2004,(1):73-75.
[2] 謝志剛,陳自力.PXI總線數(shù)字輸入/輸出模塊的設計與實現(xiàn)[J].電子技術應用,2005,(2):67-69.
[3] MAX II Device Handbook Data Sheet.2004,4.
[4] 王立欣,劉雙寶.基于PCI總線的100MSps,256MBit數(shù)據(jù)采集系統(tǒng)[J].哈爾濱工業(yè)大學學報,2005,(2):246-248.
[5] AMCC S5920 32-Bit PCI Bus Target Interface Data Sheet.1998,10.
[6] 王誠,吳繼華.Altera FPGA/CPLD設計(基礎篇、高級篇)[M].北京:人民郵電出版社,2005.