高精度正弦全自動激勵信號源的設(shè)計與實現(xiàn)
1.引言
在許多工程測量中,都需要某種固定頻率的正弦信號作為激勵源,如利用模擬傳感器的輸出情況對所研制的監(jiān)測系統(tǒng)、檢測單元進(jìn)行功能的驗證:或者進(jìn)行采集量程的標(biāo)定工作等。在這些情況下,直接采用一個性能優(yōu)越的信號發(fā)生器固然可以滿足工作要求,但是這又帶來了新的問題,一方面信號發(fā)生器是外配儀器,增加了系統(tǒng)的成本,另一方面也不便于自動化測量。利用D/A轉(zhuǎn)換器加高階濾波器的方式也可實現(xiàn)以上功能要求,但是在windows操作平臺下,對軟件技術(shù)提出了更高的要求。本文在科研項目的研究工作中恰好遇到了這樣一個問題,在信號的檢測與標(biāo)定工作中需要一個120Hz、峰值從0.01V到10V可調(diào)的、失真小于1%的高精度正弦激勵信號。本文采用常規(guī)的電路實現(xiàn)了這個功能。
2.原理與實現(xiàn)過程簡述
本科研項目是基于PC-104總線的某型飛機(jī)發(fā)動機(jī)參數(shù)的檢測系統(tǒng),該系統(tǒng)需要一個用于飛機(jī)振動校準(zhǔn)的激勵信號給定單元。經(jīng)仔細(xì)分析技術(shù)指標(biāo)的要求,該單元需要一個幅值從0.01伏到10伏可調(diào),且給定幅值穩(wěn)定、波形失真小、頻率為120Hz的交流信號源,幅值給定以0.01伏為一個間隔。如果我們利用磚碼稱重的原理,能很快地完成這一功能。顯然,信號激勵中只需要小數(shù)點(diǎn)后兩位,即正弦信號峰值變化范圍從10mV到10V,它有一位整數(shù)位、兩位小數(shù)位。如果我們集中實現(xiàn)一個120Hz的高精度正弦波振蕩器,然后從中取5伏、4伏、2伏、和l伏的“磚碼”信號,可以通過電子開關(guān)組合,再用加法器形成l伏到10伏之間的任意一個峰值,類似地用0.5伏、0.4伏、0.2伏和0.1伏的“磚碼”信號可以形成0.1伏到0.9伏的正弦信號,用0.05伏、0.04伏、0.02伏和0.01伏的“砝碼”信號可以形成0.01伏到0.09伏的正弦信號,這三組“砝碼”信號組合在一起則可以給出峰值從0.01伏到10伏、幅值變化臺階為0.01伏的任一峰值的正弦激勵信號,完全可以滿足工程的需要。
根據(jù)上述分析,我們設(shè)計出如圖1所示的硬件框圖。在圖1中,正弦波信號源選用MAX038芯片,其輸出正弦波頻率可以在較寬的范圍內(nèi)調(diào)節(jié),該芯片內(nèi)部的結(jié)構(gòu)設(shè)計可以保證向外提供失真度小于1%的正弦信號;為了提高信號的比例精度,所有的分壓電阻全部定制,阻值精度可達(dá)千分之一;運(yùn)放選用低漂移運(yùn)放LM124;電子開關(guān)選用高性能的MAX4536的4路單刀單擲開關(guān);另外,考慮到電子開關(guān)導(dǎo)通后有幾十歐姆的壓降,為了減小其影響,在加法器中反饋電阻與累加電阻均選擇為幾十千歐左右,進(jìn)一步削弱電子開關(guān)導(dǎo)通電阻在比例加法器中的影響。由于以上措施的作用,可以大幅度提高電路在實際使用中的性能。
在圖1所示電路中,電子開關(guān)為譯碼后控制,一位控制碼控制一路開關(guān),因此電子開關(guān)的控制共需要12個數(shù)字量輸出接口,這在筆者所采用的嵌入式系統(tǒng)中是不允許的,因為沒有這么多的資源,為了進(jìn)一步滿足系統(tǒng)的要求,采用單并轉(zhuǎn)換技術(shù),用三片4位移位寄存器CT1194串聯(lián)組成一個12位的移位寄存器,框圖如圖2所示。
圖1中,12個電子開關(guān)共有4096種組合,其每種組合對應(yīng)著一個特定大小的正弦交流信號,這些電子開關(guān)的控制,雖然需要12個I/O口,但只要借助于圖2的串入并出移位寄存器,我們通過數(shù)據(jù)口DATA1和時鐘口CLK兩個輸出口可以把4096種組合的任意一種送到Q1到Q12上,從而用兩個I/O口實現(xiàn)了12路電子開關(guān)的控制。而在筆者所用的PC-104的I/O卡中,其外擴(kuò)I/O口是用8255實現(xiàn)的,由于8255的C口具有位控功能〈位置位或位清零〉,則從C口中任取兩位作為移位寄存器的數(shù)據(jù)端口和時鐘端口,在12個脈沖上升沿作用下,可以將任意一個12位二進(jìn)制數(shù)送到Q1到Q12口,從而完成對電子開關(guān)的期望控制,在圖l中Vout處得到所希望幅值大小的定頻正弦波。
3.實現(xiàn)過程
為了獲得激勵信號所需要的幅值,本單元使用PC.104的I/O模塊的C口的位控功能對電子開關(guān)進(jìn)行控制。首先在控制面板上給出激勵信號所需的幅值,然后將此值利用5421碼序列進(jìn)行編碼,所謂5421碼是指碼制相應(yīng)位的權(quán)值分別為5、4、2、1,即相應(yīng)位為1時所代表的十進(jìn)制值分別是5、4、2、1。具體的'編碼規(guī)則如表1所示。對激勵所需幅值編碼后,將所得二進(jìn)制編碼按由低到高的順序輸入移位寄存器,該編碼由寄存器并行輸出給電子開關(guān)的控制端,控制開關(guān)的開閉,從而控制加法器的輸出結(jié)果,獲得所需幅值的正弦激勵信號。控制過程的流程圖如圖3所示,為了更詳細(xì)地介紹此流程的實現(xiàn)過程,下面舉例進(jìn)行說明。
4.例子
例如需要一個f(t)=3.95sin240πtV的正弦激勵信號,按照軟件框圖獲得此激勵信號的方法如下。在開始編程之前,首先進(jìn)行端口分配,I/O模塊C口的地址為Address,設(shè)C2為RD的控制口,C3為DATA的控制口,C4為CLK的控制口。程序首先要將移位寄存器復(fù)位,即對C口的C2位進(jìn)行操作,如下所述:
Ootp(Address,0x04); //使C2口輸出0
Delay(0.01);
Outp(Address,0x05); //使C2口輸出1
Delay(0.01);
輸入幅值為:3.956,即a=3.956:則b=100*3.956=395.6,四舍五入得396;
396除以10取余得6,所以C1=6:
396整除lO得到39,39除以10取余得到9,所以C2=9;
396整除100得到3,所以C3=3。
將C1、C2、C3按照5421碼序列進(jìn)行編碼,編碼規(guī)則見表1,根據(jù)表1的規(guī)則轉(zhuǎn)換后,得:
C1’=0000 0110=0x06
C2’=0000 1100=0x0C
C3’=0000 0011=0x03
將C1’的數(shù)值賦予d1(即1=0000 0110);將C2’左移4位后,變成0000 1100 0000,賦予d2(即d2=0000 1100 0000);將C3’左移8位后,變成0011 0000 0000,賦予d3(即將上面得到的12位二進(jìn)制數(shù)的每一位依次賦與數(shù)組。然后分12次將數(shù)組中的數(shù)據(jù)作為控制信號輸入到寄存器中,得到相應(yīng)的控制權(quán)值,用來控制輸出正弦激勵信號幅值的大小。C3為DATA的控制口,C4為CLK的控制口,具體實現(xiàn)過程如下:
當(dāng)輸出數(shù)據(jù)bit[I]=1時:
outp(Address,0x08); //脈沖信號為低電平。
Delay(0.01);
Outp(Address,0x07); //位操作置1。
Delay(0.01);
Outp(Address,0x09); //脈沖信號為高電平。
當(dāng)輸出數(shù)據(jù)bit[I]=0時:
oout(Address,0x08); //脈沖信號為低電平。
Delay(0.01);
Outp(Address,0x06); //位操作置0.
Delay(0.01);
Outp(Address,0x09); //脈沖信號為高電平。
5.結(jié)束語
本單元利用常規(guī)電路實現(xiàn)了固定頻率的正弦信號的給定功能。它能得到從10mV到10V之間任意幅值的正弦信號,對所需激勵信號的頻率及幅值的要求,精度能達(dá)到1%,且正弦信號的失真度也不超過1%。本檢測單元己在基于PC.104總線的某型飛機(jī)發(fā)動機(jī)參數(shù)的檢測系統(tǒng)中為飛機(jī)振動校準(zhǔn)提供了激勵信號,經(jīng)調(diào)試完全能滿足本文所述的各種參數(shù)要求。
論文出處(作者):【高精度正弦全自動激勵信號源的設(shè)計與實現(xiàn)】相關(guān)文章:
2.網(wǎng)絡(luò)書店設(shè)計與實現(xiàn)
3.客戶關(guān)系管理的設(shè)計與實現(xiàn)
4.Java日志系統(tǒng)框架的設(shè)計與實現(xiàn)
5.軸承工裝管理系統(tǒng)的設(shè)計與實現(xiàn)
6.基于Perl的DoS工具設(shè)計與實現(xiàn)