逯久鑫,彭 旋,樊軍慶
(海南大學機電學院 海南 儋州 571737)
單片機是在20世紀70年代中期發(fā)展起來的一種大規(guī)模集成電路芯片,是由中央處理器(CPU)芯片、ROM芯片、RAM芯片和I/O接口以及其他外圍電路等通過印刷電路板上總線連接成一體的完整的計算機系統(tǒng)。具有成本低、體積小、性能穩(wěn)定等特點。信號發(fā)生器是一種在生產(chǎn)實踐和科技領域中都有著廣泛應用的一種信號源。傳統(tǒng)的正弦信號源根據(jù)實際需要一般價格昂貴,低頻輸出時性能不好且不便于自動調節(jié),工程實用性較差?,F(xiàn)利用單片機的優(yōu)越特性制作一種體積小,使用方便的低頻信號發(fā)生器。以AT89C51單片機為核心結合低速D/A,通過設計與編程實現(xiàn)了鋸齒波、方波、正弦波的產(chǎn)生及其自由切換以及實現(xiàn)頻率、相位的可調與多相波的同時輸出。
設計電路如圖1所示,由波形的控制端口控制何種波形的輸出并使連接在P0口的相應指示燈亮。信號數(shù)據(jù)由P0口輸出,經(jīng)低速D/A、放大電路、濾波電路最后輸出。頻率的調整信號由P2口輸入,經(jīng)過改變相應的延時子程序改變輸出波的頻率,相位的調整信號由P2口輸入。而信號的幅值是通過改變連接在D/A上的滑動變阻器而改變D/A的參考電壓來實現(xiàn)的[2]。
圖1 電路圖Fig.1 Circuit diagram
由D/A的模擬輸出公式 Vout=B×VR(VR為常數(shù),由參考電壓 VREF=Vref+-Vref-決定;B 為數(shù)字量,常為一個二進制數(shù),由單片機輸出給D/A)可知:當改變數(shù)字量B時,D/A產(chǎn)生一個相應的Vout。如果單片機輸出給D/A的B1值由延時子程序保持一段時間(如1/2周期T)后再突變?yōu)榱硪粋€數(shù)值B2并保持相同一段時間之后再變回B1,循環(huán)上述程序即可產(chǎn)生一個方波;當B3在00H~0FFH線性變化為B4時(如以 00H開始,每相隔一定的時間用“INC”指令加1,直至等于B4=0FFH)再突變回B3,此時Vout也產(chǎn)生一個線性值,同樣循環(huán)上述程序便可產(chǎn)生鋸齒波;同理,如果將正弦波對應的二進制碼放在單片機的存儲區(qū),通過“MOVC A,@A+DPTR”不斷取數(shù)據(jù)送P0端口,則在濾波輸出端可得到正弦波信號[3]。此時由D/A轉換出的波形信號是一種離散信號。既所獲得的信號不是連續(xù)的模擬信號,而是由一個個離散的點組成的離散信號。所以,為了使輸出的波形信號盡量減少失真,必須要獲得準確的波形數(shù)據(jù)。為此,需要對模擬信號進行離散化處理[4]。這里以正弦信號為例進行說明。如圖2所示,正弦信號是由D1,D2,D3……DN這種的點組合成的離散信號。為了減小輸出信號的失真度,必須保證組成信號離散點的個數(shù),使其盡可能的接近正弦波以滿足失真度滿足使用要求。根據(jù)不同的采樣的多少計算出相應的失真度如表1所示。由表1可知,采樣點越多,失真度越小[5]。離散時取得的采樣點越多,數(shù)值量化的位數(shù)越多,則用DAC復現(xiàn)的波形精度越高。但是這時由于選取的點過多的話會影響單片機的輸出速度(會直接影響得到的波形的頻率)。由于離散點的原始數(shù)據(jù)存在于程序的表格中,離散點取的過多會使表格占用單片機內存過多。
圖2 正弦波形的離散化Fig.2 Sine wave discretization
表1 采樣點與失真度之間的關系Tab.1 Relationship between sampling points and the distortion degree
由圖2所示,由于得到的信號[6]是由一個個的離散點組成的離散信號。此時,一個點與另一個點之間的時間間隔△t1主要是由延時子程序(其中也包括單片機執(zhí)行每個命令所使用的時間)所控制的。以取256個點為例,正弦波的周期T=256×△t1當延時子程序所控制的時間間隔△t1正弦波周期T也就有相應的時間變化。所以基于上述原理,通過在單片機的P2.0與P2.1兩端口設兩個獨立按鍵來實現(xiàn)延時子程序所控制的時間間隔△t1的增大與減少進而實現(xiàn)波形頻率的可調。以正弦波為例,當需要改變波形的初始相位時即改變波形在t=0時刻的值。由圖2所示,可看出初始設定的正弦波在t=0時刻的值為零。這時單片機從查表程序中取出的是以零對應的表中數(shù)據(jù),然后依次向外輸送之后表中的數(shù)據(jù),由此推知,如果在t=0時輸出與圖2中D1的值所對應的程序表中的數(shù)據(jù),這時在t=0時刻的值就由0變?yōu)榱薉1,也就可以看出,正弦波形向左移動了一個單位。
由D/A的模擬輸出公式Vout=B×VR。當Vout與B為常量時,改變VR的大小可以相應改變Vout,即改變波形的幅值。由電路圖1可以看出,Vref是由外部電源提供一個+5 V的電壓,這里通過串聯(lián)一個滑動變阻器R1。通過改變滑動變阻器R1的大小改變VR,當VR線性變化時也就實現(xiàn)了波形幅值的連續(xù)可調。
實際使用過程中通常會遇到要使用多波同時輸出,為了實現(xiàn)這種功能可以使用3塊低速D/A轉換器(包括其后的放大電路與低通濾波電路)連接在同一單片機上。雖然一塊單片機不能同時向3塊D/A輸出其所需要的數(shù)據(jù),但可以通過單片機向D/A的控制端口輸送不同的控制信號,是其中的一塊D/A工作另兩塊不工作,并向其中的工作的D/A輸送數(shù)據(jù),然后關閉第一塊D/A開放第二塊,以此進行循環(huán)。三波的幅值是由各D/A的參考電壓Vref決定,參照1.3中敘述的方法,可以改變各自的幅值。這里筆者通過單片機給通過P3.0,P3.1,P3.2 3接口連接相應3塊D/A的控制端口。由程序控制P3.0,P3.1,P3.2 端口,依次使 P3.0,P3.1,P3.2 處于低電平,另外兩個端口處于高電平(連接高電平端口的D/A處于不工作狀態(tài))。使單片機向3塊D/A逐個輸送數(shù)據(jù)便可實現(xiàn)3波同時輸出。但由于單片機的主頻限制,這時會使輸出波的頻率大大下降。
D/A轉換部分選用的是DAC0832。DAC0832是CMOS工藝制造的8位單片D/A轉換器,屬于R-2RT型電阻網(wǎng)絡的8位D/A轉換器,建立時間150 ms,為電流輸出型,并且片內帶輸入數(shù)字鎖存器[7]。DAC0832與8031接成的是直通方式。由單片機的P0口直接把信號送達 “八位DAC寄存器”,ILE接+5 V,XFER、WR2接地以及 WR1與 CS分別接單片機的WR與P3.0(當使用多片D//A產(chǎn)生3相信號時,另外兩個與P3.1與P3.2相接)相接。為提高波形質量和負載能力,后級處理采用低通濾波器和功率放大電路。濾波電路采用一階低通濾波器,其阻帶特性衰減太慢,一般為-20 dB/10,所以這種電路適用于對低頻信號濾波特性要求不高的場合。
主程序的流程圖如圖3所示。子程序流程圖如圖4所示。
圖3 主程序流程圖Fig.3 Flow chart of main program
圖4 子程序流程圖Fig.4 Subroutines flowchart
在Protues繪制電路圖,加載單片機程序,有如下仿真。
1)不同波形的仿真,如圖5所示。
圖5 不同的波形仿真Fig.5 Different waveform simulation
2)不同頻率的波形,以正弦波為例,如圖6所示。
圖6 不同頻率的波形Fig.6 Waveforms of different frequency
3)改變滑動變阻器來改變波形的幅值以正弦波為例,如圖7所示。
圖7 不同幅值的波形Fig.7 Waveform of different amplitude
4)三相正弦波波同時輸出以正弦波為例,如圖8所示。
圖8 三相正弦波Fig.8 Three-phase sine wave
由以上仿真結果可以表明,以單片機為核心制作的小型低頻的信號發(fā)生器[8]不僅成功的產(chǎn)生了方波、鋸齒波、正弦波以及多鐘波型的共同產(chǎn)生,并且實現(xiàn)了頻率與相位的可調,而且波形并無明顯失真現(xiàn)象。
不足之處就是筆者以12 MHz的晶振進行仿真,得到的信號頻率很低。理論上提高晶振的頻率或是使用更高速的單片機可以改善低頻的現(xiàn)象。
[1]李道霖,韓緒鵬,肖春芳.正弦信號發(fā)生器的設計與實現(xiàn)[J].電子設計工程,2010,18(12):165-169.
LI Dao-lin,HAN Xu-peng,XIAO Chun-fang.Design and implementation of sinusoidal signal generator[J].Electronic Design Engineering, 2010,18(12):165-169.
[2]胡漢才.單片機原理及其接口技術[M].北京:清華大學出版社,2004.
[3]雷發(fā)禹,賓淼林,李永枧,等.基于單片機的信號發(fā)生器設計與仿真[J].邵陽學院學報:自然科學版,2009,6(3):39-43.
LEI Fa-yu, BIN Miao-lin, LI Yong-jian,et al.The design and simulation of signal generator based on MCU[J].Journal of Shaoyang University:Natural Science Edition,2009,6(3):39-43.
[4]徐愛鈞.智能化測量控制儀表原理與設計[M].北京:北京航空航天大學出版社,2004.
[5]徐陽,鐘寶榮.基于單片機的低頻信號發(fā)生器設計[J].長江大學學報:自然科學版,2008,5(3):71-73.
XU Yang,ZHONG Bao-rong.Design of a microcontrollerbased low frequency signal generator[J].Journal of Yangtze University:Natural Science Edition, 2008,5(3):71-73.
[6]李婷婷.絕緣子放電聲信號研究及污穢度預測[J].陜西電力,2010,38(3):38-41.
LI Ting-ting.Study on acoustic emission signal of insulator and ESDD forecasting[J].Shaanxi Electric Power,2010,38(3):38-41.
[7]唐麗麗,何剛,文小森.基于89C51的信號發(fā)生器設計與實現(xiàn)[J].儀表技術與傳感器,2007(2):76-78.
TANG Li-li,HE Gang,WEN Xiao-sen.Design and implement of signal generator based on 89C51[J].Instrument Technique and Sensor,2007(2):76-78.
[8]安平花,薛安成,畢天姝.調速系統(tǒng)引入遠方信號抑制區(qū)域低頻振蕩可行性研究[J].陜西電力,2009,37(4):1-5.
AN Ping-hua,XUE An-cheng,BI Tian-shu.Feasibility study on governor-side damping controller for inter-area low frequency oscillation of power system with remote signal[J].Shaanxi Electric Power,2009,37(4):1-5.