劉長(zhǎng)勝,康盼,夏正陽(yáng),王金玉,張偉,周繼瑜
(吉林大學(xué) 儀器科學(xué)與電氣工程學(xué)院,長(zhǎng)春 130026)
近地表探測(cè)利用電磁波的穿透性,采用不同頻率的電磁波獲取不同深度的地層信息,單一頻率的電磁波只能達(dá)到單一的探測(cè)深度,反映單一地層信息,實(shí)際應(yīng)用中工作效率低。多頻電磁探測(cè)系統(tǒng)一次可發(fā)射多個(gè)頻率電磁波,可以實(shí)現(xiàn)對(duì)地下不同深度目標(biāo)體的同時(shí)探測(cè)。多頻電磁感應(yīng)探測(cè)系統(tǒng)的核心技術(shù)是多頻信號(hào)產(chǎn)生技術(shù),本文針對(duì)近地表探測(cè)系統(tǒng),設(shè)計(jì)了基于單片機(jī)MSP430F149和可編程數(shù)字邏輯器件FPGA[1-3](EP1C3T144)的多頻信號(hào)產(chǎn)生系統(tǒng),產(chǎn)生了信號(hào)波形好、分辨率高、諧波失真低的單頻和多頻信號(hào),克服了位流法對(duì)線圈負(fù)載穩(wěn)定性要求高[4],偽隨機(jī)法不能任意設(shè)定頻率并且THD(總諧波失真)高的缺點(diǎn)[5]。
根據(jù)系統(tǒng)探測(cè)及野外工作要求,多頻信號(hào)產(chǎn)生系統(tǒng)總體設(shè)計(jì)如圖1所示,包括人機(jī)交互和信號(hào)產(chǎn)生兩個(gè)模塊。人機(jī)交互模塊采用TI公司的低功耗單片機(jī)MSP430F149作為主控芯片,外掛鍵盤(pán)、液晶;主控芯片控制鍵盤(pán)及液晶顯示,并將接收到的信息進(jìn)行相應(yīng)的數(shù)學(xué)處理然后與FPGA進(jìn)行通信,液晶實(shí)時(shí)顯示用戶所需信息。FPGA接收到單片機(jī)發(fā)送的信息進(jìn)行邏輯處理,通過(guò)I/O端口輸出設(shè)定信號(hào)的離散值信息,由外部高速DA將接收到的離散值信息轉(zhuǎn)化為模擬信號(hào),經(jīng)過(guò)濾波器、放大器等信號(hào)調(diào)理模塊后輸出。
圖1 系統(tǒng)整體框圖
正弦波形產(chǎn)生原理如圖2所示。
圖2 正弦波形產(chǎn)生原理框圖(單頻)
FPGA接收到單片機(jī)輸入的信息后,調(diào)整累加器的步長(zhǎng)即單位周期輸出的地址個(gè)數(shù),由于輸入累加器的系統(tǒng)時(shí)鐘固定,所以單位周期地址個(gè)數(shù)越多、周期越長(zhǎng);ROM接收累加器輸入的地址,轉(zhuǎn)換為存儲(chǔ)在對(duì)應(yīng)地址上的頻點(diǎn)幅值信息輸出,輸出信號(hào)與累加器輸入地址的周期相同[6-9];外部高速DA將ROM輸出的頻點(diǎn)幅值信息轉(zhuǎn)換為模擬信息輸出,輸出頻率由式(1)計(jì)算:
式中 fc為系統(tǒng)時(shí)鐘,K為頻率控制字,N為累加器的位數(shù)。
信號(hào)合成技術(shù)遵循奈佩斯特(Nyquist)定律,即最高輸出頻率不大于參考時(shí)鐘的一半,fo≤fc/2。實(shí)際輸出頻率由允許輸出的雜散水平?jīng)Q定,一般fo≤fc×40%。同一周期下構(gòu)成一個(gè)完整周期的離散點(diǎn)數(shù)越多實(shí)際輸出的信號(hào)越平滑,頻譜成分越干凈。由于近地表探測(cè)發(fā)射系統(tǒng)的最大輸出頻率不大于50KHz,設(shè)計(jì)采用20M外部時(shí)鐘輸入倍頻至100M作為系統(tǒng)參考時(shí)鐘,以獲得較多的周期點(diǎn)數(shù),使輸出信號(hào)平滑,頻譜相對(duì)純凈。
在FPGA內(nèi)部ROM使用寄存器模式輸出,在同一參考時(shí)鐘上升沿,不同頻率信號(hào)對(duì)應(yīng)的不同ROM,將不同的頻點(diǎn)幅值信息送到ROM的輸出端,并在下一個(gè)數(shù)據(jù)到來(lái)前保持不變。
正弦波頻點(diǎn)合成時(shí)要求加法模塊的參考時(shí)鐘頻率不能小于ROM的參考時(shí)鐘頻率。如果加法模塊的參考時(shí)鐘大于等于ROM的參考時(shí)鐘,則會(huì)在每個(gè)加法模塊參考時(shí)鐘的上升沿,不丟失地輸出不同頻點(diǎn)幅值信息疊加后的值,圖3為雙頻疊加示意圖。
圖3 頻率相加示意圖
如果加法模塊的輸入?yún)⒖紩r(shí)鐘頻率小于ROM參考時(shí)鐘,加法模塊參考時(shí)鐘上升沿在ROM數(shù)據(jù)保持的一個(gè)時(shí)鐘周期之內(nèi)沒(méi)能夠到來(lái),最終導(dǎo)致數(shù)據(jù)丟失。
如發(fā)射頻率分辨率為1Hz,根據(jù)Δf=fc/2N,累加器位數(shù)取28位,此時(shí)頻率分辨率為100M/228=0.372Hz。如采用28位的ROM,則單個(gè)ROM容量達(dá)到228bit,一般的FPGA芯片難以達(dá)到要求。采取“截?cái)唷彼枷?,?0位的ROM實(shí)現(xiàn)以上要求,將ROM的10位地址與相位累加器的高10位地址相連接,可大大節(jié)省ROM空間,實(shí)驗(yàn)證明在實(shí)際輸出波形中會(huì)有截?cái)嗾`差的存在,但是頻譜純度影響不大,再加上后續(xù)的低通濾波,使其造成的影響得到進(jìn)一步降低。根據(jù)正弦信號(hào)的周期性采用控制信號(hào)控制累加方向的方法可以實(shí)現(xiàn)ROM的進(jìn)一步壓縮。
多頻信號(hào)產(chǎn)生系統(tǒng)主要由通訊、頻點(diǎn)設(shè)定、累加器、波形存儲(chǔ)器ROM、組合頻率輸出、濾波等部分組成。
由于單片機(jī)管腳資源有限,考慮到系統(tǒng)需要傳輸?shù)臄?shù)據(jù)量不大,對(duì)數(shù)據(jù)傳輸?shù)乃俣纫笠膊桓?,因此通訊方式設(shè)計(jì)采用自定義的串行通信格式設(shè)計(jì),通信示意圖如圖4所示。
圖4 通信示意圖
系統(tǒng)中單片機(jī)與FPGA通過(guò)一根時(shí)鐘線和一根數(shù)據(jù)線互聯(lián),每次通信傳輸32bit數(shù)據(jù),其中低28bit為頻率控制字,高4bit為頻點(diǎn)設(shè)定控制字,并可根據(jù)需要,靈活修改通信的位數(shù)與格式。FPGA接收過(guò)程中始終保持高阻態(tài),接收完畢后將32bit串行數(shù)據(jù)轉(zhuǎn)化為并行數(shù)據(jù)。
根據(jù)系統(tǒng)探測(cè)要求,需要發(fā)射單頻、雙頻和三頻正弦波,對(duì)于雙頻和三頻正弦波,設(shè)定下一個(gè)頻點(diǎn)時(shí),采用鎖存器保持上一個(gè)頻點(diǎn)不變。
由于頻點(diǎn)設(shè)定時(shí)間是任意的,可能出現(xiàn)在系統(tǒng)時(shí)鐘上升沿之前或之后的任意時(shí)間,而數(shù)據(jù)如果想被觸發(fā)器正確采樣必須滿足建立(Tsu)和保持(Th)時(shí)間,違反建立和保持時(shí)間就會(huì)造成亞穩(wěn)態(tài),設(shè)計(jì)采用同步設(shè)計(jì),將輸入的異步信號(hào)與系統(tǒng)時(shí)鐘做同步處理則信號(hào)與時(shí)鐘相對(duì)位置固定,即將異步組合邏輯同步化,很好地避免了異步邏輯可能造成的亞穩(wěn)態(tài)這一問(wèn)題。
在每次系統(tǒng)時(shí)鐘的上升沿,累加器累加步長(zhǎng)為頻率控制字的數(shù)值,累加器設(shè)定為28位,每1f0時(shí)間完成一次完整的累加,然后重復(fù)累加,最終產(chǎn)生28位的累加地址,并將高10位輸出到正弦查詢表ROM作為ROM的地址,累加器的位數(shù)決定了輸出信號(hào)的分辨率,累加器的累加周期決定了輸出信號(hào)的周期[10]。
波形存儲(chǔ)器ROM采用QuartusⅡ軟件的MegaWizard Plug—In Manager定制10位的ROM,本設(shè)計(jì)采用的10位并行高速DA,要求單頻輸出數(shù)據(jù)格式不能超過(guò)10位,實(shí)際在設(shè)計(jì)時(shí)考慮到三頻,最終單頻輸出幅度量化值最大值設(shè)定為340,采用10位數(shù)據(jù)格式輸出完全滿足要求。ROM表中加載的.mif文件在本設(shè)計(jì)中由MATLAB編程得到,主要程序如下所示:
組合頻率輸出模塊主要完成正弦波頻點(diǎn)合成功能,通過(guò)單片機(jī)輸入信息的高4位判斷最終要輸出的頻點(diǎn)數(shù),如果輸出單頻則將單頻幅值適當(dāng)縮放后經(jīng)FPGA I/O管腳輸出,如果是多頻則將多頻信號(hào)組合處理并適當(dāng)縮放后輸出,同樣采用同步設(shè)計(jì),輸入的系統(tǒng)時(shí)鐘頻率在高于ROM參考時(shí)鐘時(shí)會(huì)不丟失信息地輸出所有處理后的信息。ROM參考時(shí)鐘頻率計(jì)算公式如式(2),式(3)所示。
當(dāng)工作頻率設(shè)定為最低頻率(10Hz)時(shí),頻點(diǎn)數(shù)最多,此時(shí)ROM參考時(shí)鐘頻率最高為3.7MHz,設(shè)計(jì)中
輸入的系統(tǒng)時(shí)鐘定為20M,大于最低工作頻率時(shí)ROM參考時(shí)鐘的最高頻率。
DA所具有的是保持—輸出—保持功能,最終輸出的是階梯狀波形,要輸出光滑的模擬波形需要對(duì)DA輸出的波形進(jìn)行必要的濾波處理。
設(shè)計(jì)選擇凌特公司生產(chǎn)的集成10階低通濾波器LTC-1569-6,采用外接電阻或者外接時(shí)鐘控制截止頻率,當(dāng)采用外接時(shí)鐘控制時(shí),截止頻率設(shè)定為fc=clock/64,(clock<5M)。
多頻信號(hào)采集系統(tǒng)原理框圖如圖5所示。
圖5 FPGA多頻信號(hào)產(chǎn)生系統(tǒng)
在實(shí)驗(yàn)室環(huán)境下,采用示波器在發(fā)射端串入功率電阻捕獲了發(fā)射電流的波形,圖6至圖11分別為發(fā)射單頻、雙頻和三頻時(shí)的輸出波形及其FFT變換后的波形。由于近地表多頻電磁探測(cè)發(fā)射系統(tǒng)采用感性的多匝線圈作為負(fù)載,負(fù)載阻抗在高頻時(shí)會(huì)有明顯增加,因此,體現(xiàn)在多頻合成信號(hào)頻譜圖中高頻成分幅值低于低頻成分幅值。
圖6 單頻信號(hào)時(shí)域波形
圖7 單頻信號(hào)頻域波形
圖8 雙頻信號(hào)時(shí)域波形
圖9 雙頻信號(hào)頻域波形
圖10 三頻信號(hào)時(shí)域波形
圖11 三頻信號(hào)頻域波形
本文針對(duì)近地表探測(cè)系統(tǒng)提出一種基于FPGA的多頻正弦信號(hào)產(chǎn)生方法,并根據(jù)近地表電磁探測(cè)的要求,設(shè)計(jì)并完成了多頻信號(hào)產(chǎn)生系統(tǒng),經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證產(chǎn)生的波形好、頻譜純度高、分辨率高。
基于這種方法可以用低成本產(chǎn)生高性能的多頻正弦波形,通用性很強(qiáng),當(dāng)對(duì)輸出信號(hào)的頻率和精確度要求不高的情況下可以采用MCU做主控處理芯片。設(shè)計(jì)主要部分在FPGA內(nèi)部完成,硬件電路相對(duì)簡(jiǎn)單,可靠性高,對(duì)外部電路依賴性低,可升級(jí)性很強(qiáng),同時(shí)增減功能比較容易。
[1]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2003.
[2]杜慧敏,李宥謀,趙全良.基于Verilog的FPGA設(shè)計(jì)基礎(chǔ)[M].西安:西安電子科技大學(xué)出版社,2008.
[3]陳風(fēng)波,冒燕,李海鴻.基于FPGA的直接數(shù)字頻率合成器的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2006,22(2):189-190.
[4]孫淑琴,林君,張秉仁,等.偽隨機(jī)序列發(fā)生器的研究與實(shí)現(xiàn)[J].吉林大學(xué)學(xué)報(bào):信息科學(xué)版,2004,22(3):185-186.
[5]孫向陽(yáng).基于DSP的瞬變電磁接收機(jī)系統(tǒng)研究[J].長(zhǎng)春理工大學(xué)學(xué)報(bào):自然科學(xué)版.2008,31(1):27-30.
[6]史興海,陳殿仁.基于FPGA的高速DDS設(shè)計(jì)與仿真[J].長(zhǎng)春理工大學(xué)學(xué)報(bào):自然科學(xué)版,2009,32(1):85-88.
[7]余勇,鄭小林.基于FPGA的DDS正弦信號(hào)發(fā)生器的設(shè)計(jì)和實(shí)現(xiàn)[J].電子器件,2005,(3).
[8]MAP H,LIU P.A design of AWG based on DDS using SOPC technique[Z].CEEE,2006:610-615.
[9]ZHAI Shengwei,LI Yingying,DU Baisheng.Implementation of a DDS signal source based on FPGA[J].Electronic Design Engineering,2009,(05).
[10]A.L.McEwan,S.Collins.Efficient,ROM-less DDFS using non-linear interpolation and non-linear DAC[J].Analog Integrated Circuits and Signal Processing,2006,48,(3).