黃儒,章國寶,黃永明
(東南大學(xué)自動(dòng)化學(xué)院,江蘇南京210096)
地震計(jì)是地震臺(tái)的基本設(shè)備之一。地震計(jì)的標(biāo)定過程是對(duì)地震計(jì)特性參數(shù)進(jìn)行評(píng)判的一種簡易手段。它將特定的標(biāo)定信號(hào)輸入至地震計(jì)的標(biāo)定線圈內(nèi),由于電磁感應(yīng)原理,標(biāo)定線圈與磁鋼之間產(chǎn)生的策動(dòng)力矩迫使擺產(chǎn)生振動(dòng),從而在工作線圈中產(chǎn)生電壓輸出,通過分析輸出與輸入信號(hào)之間的幅值、相位關(guān)系等,可以基本掌握地震計(jì)的工作性能[1]。
使用不同的信號(hào)標(biāo)定,可以獲得地震計(jì)的各種不同的參數(shù)和性能。地震計(jì)常用標(biāo)定信號(hào)有正弦信號(hào)、方波信號(hào)、偽隨機(jī)二進(jìn)制信號(hào)等。筆者設(shè)計(jì)一款基于FPGA的地震計(jì)標(biāo)定信號(hào)發(fā)生器,是地震電磁信息采集系統(tǒng)的子模塊,能產(chǎn)生標(biāo)定所需信號(hào),與地震電磁信息采集系統(tǒng)一起完成地震計(jì)的標(biāo)定工作。
DDS或DDFS是Direct Digital Frequency Synthesis的簡稱,DDS技術(shù)被視為第三代頻率合成技術(shù),它突破了PLL技術(shù)和直接模擬合成兩種頻率合成法的原理,從“相位”的概念出發(fā)進(jìn)行頻率合成,這種方法不僅可以產(chǎn)生不同頻率的正弦波,而且可以控制波形的初始相位。甚至還可以用DDS方法產(chǎn)生任意波形(AWG)。DDS具有頻率分辨率高、切換速度快、輸出信號(hào)相位連續(xù)、可輸出任意波形信號(hào)、能夠?qū)崿F(xiàn)全數(shù)字自動(dòng)化控制等優(yōu)點(diǎn),使其已成為雷達(dá)、通信、工程設(shè)計(jì)等系統(tǒng)信號(hào)源的首選。DDS也具有一定的局限性,主要表現(xiàn)在輸出頻帶范圍有限和輸出雜散度大。本文中DDS技術(shù)主要用來產(chǎn)生正弦波。
DDS技術(shù)的核心是相位累加器,它類似一個(gè)計(jì)數(shù)器。每來一個(gè)時(shí)鐘信號(hào),相位累加器的輸出就增加一個(gè)步長的相位增加量,其大小由頻率控制字來確定。信號(hào)波形的數(shù)據(jù)表包含待產(chǎn)生信號(hào)一個(gè)周期的幅度—相位信息。從數(shù)據(jù)表中讀出相位累加器輸出相位信號(hào)值對(duì)應(yīng)的幅度數(shù)據(jù),通過DAC將該數(shù)據(jù)轉(zhuǎn)換成所需的模擬信號(hào)波形輸出,低通濾波器用于濾除不需要的取樣分量,以便輸出頻譜純凈的正弦波信號(hào)[2]。相位累加器的相位累加為循環(huán)迭加,這樣使得輸出信號(hào)的相位是連續(xù)的。相位累加器進(jìn)行線性相位累加,當(dāng)相位累加器加至全1時(shí)產(chǎn)生一次計(jì)數(shù)溢出,這個(gè)溢出率即為輸出信號(hào)的頻率。DDS可以產(chǎn)生任意頻率任意形狀的波形[3],如圖1所示。
圖1 DDS信號(hào)合成Fig.1 DDS signal synthesis
如果相位累加器的位數(shù)為N,頻率控制字內(nèi)的相位增量為△Phase,參考時(shí)鐘頻率為fCLKIN,則DDS系統(tǒng)輸出信號(hào)的頻率fOUT為:
輸出信號(hào)的頻率分辨率為:
本文使用DDS技術(shù)產(chǎn)生正弦波。
偽隨機(jī)序列是一種可以預(yù)先確定并可以重復(fù)地產(chǎn)生和復(fù)制,又具有隨機(jī)統(tǒng)計(jì)特性的二進(jìn)制碼序列。之所以稱其為偽隨機(jī)序列,是因?yàn)樗憩F(xiàn)出白噪聲采樣序列的統(tǒng)計(jì)特性,在不知其生成方法的偵聽者看來像真的隨機(jī)序列一樣。
m序列是最長線性反饋移位寄存器序列的簡稱,是偽隨機(jī)序列的一種情況。它是由帶線性反饋的移位寄存器產(chǎn)生的周期最長的一種序列。m序列可以利用n級(jí)移位寄存器產(chǎn)生,可能產(chǎn)生的最長周期為2n-1。m序列發(fā)生器的結(jié)構(gòu)主要分為兩類,一類稱為簡單型碼序列發(fā)生器(Simple Shift Register Generator,SSRG),另一類稱為模塊型碼序列發(fā)生器(Modular Shift Register Generator,MSRG)。圖2給出的屬于SSRG結(jié)構(gòu),其中Cn,Cn-1,…,C0為反饋系數(shù),也是特征多項(xiàng)式系數(shù)。這些系數(shù)的取值為“1”或“0”,“1”表示該反饋支路連通,“0”表示該反饋支路斷開。反饋線的連接狀態(tài)不同,就可能改變此移位寄存器輸出序列的周期P。
圖2 線性反饋移位寄存器Fig.2 Linear Freeback Shift Register
設(shè)n級(jí)移位寄存器的初始狀態(tài)為:a1,a2,…,an,經(jīng)過一次移位后,狀態(tài)變?yōu)閍0,a1,a2,…,an+1。經(jīng)過n次移位后,狀態(tài)為an-1,an-2,…,a1,a0,再移位一次時(shí),移位寄存器左端得到新的輸入an,如圖2所示,可以寫為:
本文使用m序列產(chǎn)生所需的偽隨機(jī)二進(jìn)制信號(hào)。
硬件設(shè)計(jì)的系統(tǒng)框圖如圖3所示。
圖3 系統(tǒng)框圖Fig.3 Block diagram of system
采用Altera的EP2C8T144C8 FPGA為控制核心,通過RS232串行通信總線與地震電磁信息采集系統(tǒng)主控制器通信,接收其控制命令。使用FPGA和16位串行DAC芯片DAC8560產(chǎn)生地震計(jì)標(biāo)定所需的正弦波、方波、偽隨機(jī)序列等信號(hào)。DAC產(chǎn)生的電壓信號(hào)通過模擬開關(guān)1分兩路輸出,一路為正弦信號(hào),經(jīng)過二階巴特沃茲濾波器濾波,再經(jīng)過由數(shù)字電位計(jì)組成的可由FPGA程控的調(diào)幅電路;另一路為方波和偽隨機(jī)序列,兩路信號(hào)經(jīng)過模擬開關(guān)2,該模擬開關(guān)的輸出經(jīng)過電壓電流轉(zhuǎn)換電路成為電流信號(hào)。電壓電流信號(hào)經(jīng)過模擬開關(guān)3輸出。FPGA控制系統(tǒng)中的模擬開關(guān)的選通和關(guān)閉可以確定最終輸出的信號(hào)類型。
FPGA通過SPI串行通信接口控制DAC8560。使用外部5 V參考電壓,DAC8560輸出電壓范圍為0~5 V,要得到-5~+5 V電壓輸出,需要加偏置電路。圖4為DAC及偏置電路。由電路圖,可得:
其中Vo為輸出電壓,D為輸入至DAC8560的數(shù)字量。
圖4 DA及偏置電路Fig.4 DA and bias circuit
本文使用巴特沃茲濾波器[5]對(duì)DAC輸出的正弦波濾波。分析系統(tǒng),按如下技術(shù)指標(biāo)設(shè)計(jì)濾波器:
其中αmax為通帶最大衰減,ωp為通帶邊界頻率,αmin為阻帶最小,ωs衰減阻帶邊界頻率。理論濾波器傳遞函數(shù)為:
實(shí)際電路由于阻容元器件參數(shù)限制,傳遞函數(shù)為:
調(diào)幅電路基于數(shù)字電位計(jì)X9118,F(xiàn)PGA通過類似I2C的2線串行總線接口控制X9118。改變X9118的電阻,可改變放大電路的增益,從而達(dá)到電壓調(diào)幅的目的。電路如圖5所示??梢酝茖?dǎo)得出
其中Vo為調(diào)幅電路輸出電壓,Vi為調(diào)幅電路輸入電壓,D為數(shù)字電位計(jì)輸入的數(shù)字量。改變輸入的D值,就可以程控輸出電壓幅度。
圖5 調(diào)幅電路Fig.5 Amplitude modulation circuit
如圖6,可以推導(dǎo)得出,只要R1/R2=R3/R4,可得
其中IL為負(fù)載端的電流,V為輸入電壓。實(shí)際電路中為確保滿足R1/R2=R3/R4,加入一個(gè)可調(diào)電阻。
圖6 電壓/電流轉(zhuǎn)換電路原理圖和實(shí)際電路圖Fig.6 Schematic and real circuit for V/I transform
本文使用Verilog語言編寫系統(tǒng)軟件,開發(fā)時(shí)遵循自頂向下的原則,將系統(tǒng)層次化和模塊化。按照響應(yīng)速度,將系統(tǒng)軟件分為3個(gè)層次:控制層、解析層、執(zhí)行層。各層包含了實(shí)現(xiàn)各自功能的模塊。圖7所示為系統(tǒng)的軟件系統(tǒng)框圖。按照信號(hào)的流向,前端模塊的輸出驅(qū)動(dòng)后端模塊更新其狀態(tài)機(jī)[6]的狀態(tài)。
3.1.1 通 訊模塊
圖7 軟件系統(tǒng)框圖Fig.7 Block diagram of software system
串口接收模塊將異步串行總線電平信號(hào)轉(zhuǎn)化成字節(jié)流,每收到一個(gè)字節(jié)會(huì)產(chǎn)生一個(gè)data_ready脈沖信號(hào),驅(qū)使解析器更新信息。
串口發(fā)送模塊將解析器產(chǎn)生的字節(jié)流轉(zhuǎn)化成異步串行電平信號(hào)。
3.1.2 芯 片控制器
芯片控制器包括DAC8560控制器、X9118控制器、模擬開關(guān)控制器等。其功能是將波形發(fā)生器產(chǎn)生的數(shù)字信號(hào)從串行總線發(fā)送到各個(gè)芯片,或根據(jù)波形要求選通或關(guān)斷模擬開關(guān)。
3.2.1 命 令解析器
命令解析器將通訊模塊發(fā)出的字節(jié)流按照既定的協(xié)議解析為各種命令,使控制層知道需要產(chǎn)生何種信號(hào)及其參數(shù)。
打包應(yīng)答數(shù)據(jù)子模塊將控制器應(yīng)答信號(hào)按照既定的協(xié)議打包成字節(jié)流,交給通信模塊發(fā)出。
3.2.2 波 形發(fā)生器
正弦波發(fā)生器實(shí)現(xiàn)了DDS算法,產(chǎn)生頻率幅值可調(diào)的正弦波。
方波發(fā)生器產(chǎn)生幅度、寬度可調(diào)的方波。偽隨機(jī)序列發(fā)生器產(chǎn)生m序列。
控制器模塊根據(jù)解析層提供的命令控制波形發(fā)生器產(chǎn)生相應(yīng)波形,并根據(jù)協(xié)議產(chǎn)生相應(yīng)的應(yīng)答數(shù)據(jù)。
將地震標(biāo)定信號(hào)發(fā)生器應(yīng)用于實(shí)驗(yàn)室與江蘇省地震局聯(lián)合開發(fā)的DUF-24IP型地震電磁信息采集系統(tǒng),可以通過主控器發(fā)送命令,產(chǎn)生標(biāo)定所需信號(hào),完成地震計(jì)標(biāo)定工作。
[1]劉慶偉.FBS-3A型反饋式寬頻帶地震計(jì)電流標(biāo)定方法研究[J].地震報(bào),2001,23(2):192-202.
LIU Qing-wei. Study on the calibration of feedback boardband seismometer FBS-3A with current signal[J].Acta Seismologica Sinica,2001,23(2):192-202.
[2]萬其力,吳文彪.基于DDS及單片機(jī)的函數(shù)產(chǎn)生器設(shè)計(jì)[J].西安郵電學(xué)院學(xué)報(bào),2003,8(3):35-38.
WAN Qi-li,WU Wen-biao.Function generator based on DDS and MCU[J].Journal of Xi’an University of Post and Telecommunications,2003,8(3):35-38.
[3]Varnes R S,Ball J A R,Hancock N H.A dual-output,coherent signal generator using direct digital synthesis[J].Instrumentation and Measurement Technology Conference Otlawa,1997(5):19-21.
[4]王會(huì)華,李保平.m序列發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)[J].北京電子科技學(xué)院報(bào),2007,15(2):58-61
WANG Hui-hua,LI Bao-ping.Design and realize of m sequence generator[J].Journal of Beijing Electronic Science and Technology Institute,2007,15(2):58-61.
[5]劉京南.電子電路基礎(chǔ)[M].北京:電子工業(yè)出版社,2003.
[6]劉小平,何云斌,董懷國.基于Verilog HDL的有限狀態(tài)機(jī)設(shè)計(jì)與描述[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(4):958-960.
LIU Xiao-ping,HE Yun-bin,DONG Huai-guo.Design and description of finite state machine based on verilog HDL[J].Computer Engineering and Design,2008,29(4):958-960.