摘 要: 介紹一種基于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)板卡的時序邏輯控制,,外圍電路包括信號調(diào)理與匹配電路,、DDS電路、A/D采集電路,、高速FIFO" title="FIFO">FIFO存儲電路,、D/A轉(zhuǎn)換電路等,。重點介紹了CPLD內(nèi)部功能模塊的實現(xiàn),。該設計已成功應用于多普勒聲納的PXI測試系統(tǒng)中。
關鍵詞: 多普勒聲納,;PXI總線,;S5920;CPLD,;FIFO
水下航行器可利用聲波信號的多普勒效應進行導航,,多普勒聲納按一定的角度向海底發(fā)射聲波,,利用回波信號的多普勒頻移測得航行器相對于海底的速度,然后通過對地速的積分結(jié)合航向信息就可以獲得導航解[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 轉(zhuǎn)換電路以及輸入輸出端的信號調(diào)理與匹配電路等組成,。導航系統(tǒng)包括4個安裝在航行器底部的多普勒聲納,,因此仿真卡有4個相對獨立的工作通道,分別模擬多普勒聲納4個不同方向的回波信號,,其中一個通道的結(jié)構組成如圖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轉(zhuǎn)換,,然后經(jīng)數(shù)字衰減電路和信號匹配電路后由對接換能器發(fā)射出去,。若聲速為c,則該回波信號模擬的是傳播距離為m=ct2/2的回波信號,,T′為回波信號的脈沖寬度,。
DDS芯片產(chǎn)生A/D采集芯片、FIFO芯片以及D/A轉(zhuǎn)換芯片的工作時鐘,,CPLD通過程控DDS產(chǎn)生不同的工作時鐘信號,,使得D/A轉(zhuǎn)換時鐘不同于A/D采集時鐘,從而實現(xiàn)采集數(shù)據(jù)在時間上的拉伸與壓縮,,模擬回波信號的多普勒效應,。真實回波信號在信道中傳輸后會有不同程度的衰減,因此D/A轉(zhuǎn)換后的數(shù)據(jù)需經(jīng)數(shù)字衰減電路進行程控衰減,。信號預處理電路和信號匹配電路的核心都是一級射隨電路,。板卡上共有5片DDS,產(chǎn)生5路時鐘信號,,DDS0時鐘作為A/D采集時A/D芯片和FIFO芯片的工作時鐘,,另4路時鐘DDS1~DDS4作為D/A轉(zhuǎn)換時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轉(zhuǎn)換采用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轉(zhuǎn)換器和高速比較器,,通過設置32bit的頻率控制字,,可產(chǎn)生0~40MHz的穩(wěn)定方波信號。射隨電路采用低噪聲,、高精度運算放大器OP37,。門限比較電路采用低偏置電壓的四路比較器LM339,參考電壓由外部基準源ADR510提供,。AD采集部分由寬頻帶電流反饋運放OPA681和8bit精度A/D轉(zhuǎn)換芯片ADS831組成,,ADS831采用內(nèi)置參考電壓,單極性輸入信號,,輸入電壓信號范圍為1.5V~3.5V,。FIFO存儲器采用IDT公司512KB的IDT72V2113,為實現(xiàn)1MB的存儲深度,,IDT72V2113設置成512K×9bit工作方式,,并采用兩片進行級聯(lián)。AD9709和高速運放AD843構成D/A轉(zhuǎn)換電路,,AD9709是一種雙通道8位D/A轉(zhuǎn)換器,,因此4個轉(zhuǎn)換通道只需要兩片AD9709。程控衰減電路采用AD7111N和OP37構成的典型應用電路,,通過鎖存一個字節(jié)的配置數(shù)據(jù),,AD7111N可以實現(xiàn)0~88.5dB的程控衰減,衰減步長為0.375dB,。
3 CPLD功能實現(xiàn)
CPLD模塊的設計是整個仿真卡的核心,,其要實現(xiàn)的功能包括:(1)接口功能。能夠?qū)崿F(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轉(zhuǎn)換過程,。
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總線信號轉(zhuǎn)換成相對簡單的外加總線(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é)是相位調(diào)制和電源功能信息,,后4個字節(jié)是頻率控制字,。配置前先由RESET信號對芯片復位,,5個字節(jié)的配置數(shù)據(jù)在W_CLK的上升沿寫入AD9850,F(xiàn)Q_UD是配置結(jié)束信號,,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ù)結(jié)束后的啟動信號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ù)比較結(jié)果,、FIFO讀空信號以及外部觸發(fā)信號控制A/D、D/A和FIFO芯片的工作時鐘,,以控制各外圍電路的工作,,同時時鐘控制模塊還對DDS產(chǎn)生的時鐘信號進行必要的整形或反相,以滿足外圍電路正常工作的時序要求,。
4 CPLD內(nèi)部設計仿真與板卡調(diào)試
CPLD內(nèi)部設計的功能仿真和時序仿真都通過Quartus II集成的仿真工具進行,。由于時序仿真包含了布局布線后的延時信息,,能夠真實地反映芯片的工作情況。時序仿真前,,需要編輯完整的測試激勵文件,,設置正確的時序約束參數(shù),如設置具有一定裕量的時鐘周期,、時鐘建立時間,、時鐘保持時間等,剪除非相關時鐘域中的時序路徑,,并將內(nèi)部非時鐘路徑的T觸發(fā)器輸入端管腳設置為非時鐘等,。最終時序仿真的結(jié)果完全能夠滿足設計的功能要求與時序要求。
由于在Windows XP系統(tǒng)中應用程序無法直接對硬件端口進行操作,,因此需要編寫專用的驅(qū)動程序,。這里采用目前應用廣泛的WinDriver開發(fā)工具,利用它的向?qū)Чぞ?,不需要深入了解操作系統(tǒng)的整個內(nèi)核體系結(jié)構,,就可以開發(fā)出高質(zhì)量的驅(qū)動程序,應用程序采用Visual C++開發(fā),。將仿真卡在整個PXI測試系統(tǒng)中進行調(diào)試,,發(fā)現(xiàn)該板卡能夠完全滿足最初的設計要求,且運行穩(wěn)定可靠,。
基于CPLD多普勒聲納回波信號仿真卡的研制,,滿足了設計指標要求,特別是CPLD的應用使得整個板卡具有結(jié)構簡單,、成本低,、可靠性高等優(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.