李龍洲,周碧英,張 鵬
(1.渭南師范學(xué)院數(shù)理學(xué)院,陜西渭南714099;2.渭南師范學(xué)院網(wǎng)絡(luò)安全與信息化學(xué)院,陜西渭南714099)
信號(hào)發(fā)生器用于產(chǎn)生被測(cè)電路所需特定參數(shù)的電測(cè)試信號(hào)[1-3]。在測(cè)試、研究或調(diào)整電子電路及設(shè)備時(shí),為測(cè)定電路的一些電參量,如測(cè)量頻率響應(yīng)、噪聲系數(shù),為電壓表定度等,都要求提供符合所定技術(shù)條件的電信號(hào),以模擬在實(shí)際工作中使用的待測(cè)設(shè)備的激勵(lì)信號(hào)。低頻信號(hào)發(fā)生器在工業(yè)自動(dòng)化生產(chǎn)、交通、水文監(jiān)測(cè)及國(guó)防等領(lǐng)域都有廣泛的應(yīng)用[4-6]。低頻信號(hào)的產(chǎn)生有多種方法[7-13],如采用分立元件構(gòu)成的多諧振蕩器,然后根據(jù)具體需要加入積分電路等構(gòu)成正弦波、矩形波、三角波等波形發(fā)生器,也可以使用直接數(shù)字合成DDS芯片來(lái)產(chǎn)生低頻信號(hào)。此外,隨著現(xiàn)代數(shù)字集成技術(shù)的發(fā)展,微型計(jì)算機(jī)應(yīng)運(yùn)而生,具有大容量存儲(chǔ)及可編寫(xiě)的單片機(jī)的出現(xiàn),打破了傳統(tǒng)硬件設(shè)計(jì)中數(shù)據(jù)處理速度慢、可兼容性不強(qiáng)的局限性,使信號(hào)產(chǎn)生更加方便。
傳統(tǒng)信號(hào)源由分立元件實(shí)現(xiàn)的多諧振蕩器及積分電路等構(gòu)成[14-16],設(shè)計(jì)電路復(fù)雜,頻率精度調(diào)節(jié)很難控制,并且所使用的芯片價(jià)格昂貴、操作復(fù)雜。采用AT89C52作為數(shù)據(jù)存儲(chǔ)單元和控制核心,利用D/A轉(zhuǎn)換器作為數(shù)據(jù)的處理單元,再結(jié)合單片機(jī)軟件編程和硬件電路設(shè)計(jì),可以實(shí)現(xiàn)對(duì)數(shù)字信號(hào)的轉(zhuǎn)化和任意波形信號(hào)的輸出。操作外接鍵盤(pán)的不同按鍵可以實(shí)現(xiàn)波形和頻率大小的自由調(diào)節(jié),其間波形及頻率可在液晶屏上觀測(cè),并最終在示波器輸出波形。經(jīng)D/A轉(zhuǎn)換器轉(zhuǎn)化得到波形信號(hào)受硬件電路影響小,且易于控制。
傳統(tǒng)信號(hào)源當(dāng)需要某一種信號(hào)時(shí),需要專門設(shè)計(jì)相對(duì)應(yīng)的模擬電路及積分等轉(zhuǎn)換環(huán)節(jié),其輸出信號(hào)種類有限,且電路復(fù)雜,成本高。輸出信號(hào)頻率及幅值調(diào)節(jié)需要借助電位器,當(dāng)需要某一特定頻率或幅值要求的信號(hào)時(shí),不易控制。運(yùn)用單片機(jī)不需要專門設(shè)計(jì)各種信號(hào)發(fā)生電路和轉(zhuǎn)換電路,只需將各種信號(hào)的數(shù)據(jù)存入單片機(jī)的存儲(chǔ)器中,當(dāng)有信號(hào)需要的請(qǐng)求時(shí),按下相對(duì)應(yīng)的按鍵,即可得到相對(duì)應(yīng)的輸出信號(hào),并且輸出信號(hào)的頻率及幅值直接由程序進(jìn)行控制,操作簡(jiǎn)單。
AT89C52是一種低功耗高性能的CMOS 8位單片機(jī)。低頻信號(hào)發(fā)生器以AT89C52單片機(jī)作為核心控制單元。由AT89C52構(gòu)成的單片機(jī)最小系統(tǒng)可以存儲(chǔ)數(shù)據(jù)及控制程序,并且還可以采集和分析數(shù)據(jù)首先建立單片機(jī)最小系統(tǒng),其中包括晶振電路及復(fù)位電路的選擇,然后運(yùn)用單片機(jī)C語(yǔ)言將多種波形數(shù)據(jù)存入數(shù)據(jù)存儲(chǔ)器中,并對(duì)其波形種類及頻率進(jìn)行中斷編程,以便于在需要時(shí)選擇相應(yīng)的信號(hào),此外輸出信號(hào)還需經(jīng)過(guò)D/A轉(zhuǎn)換器、運(yùn)算放大器等環(huán)節(jié)的處理。
圖1 系統(tǒng)框圖
圖1為系統(tǒng)框圖。當(dāng)系統(tǒng)工作時(shí),晶振電路為系統(tǒng)提供正確的工作的時(shí)鐘脈沖信號(hào),由按鍵發(fā)送需要產(chǎn)生波形的請(qǐng)求,當(dāng)某一個(gè)按鍵按下時(shí),單片機(jī)通過(guò)程序語(yǔ)言識(shí)別按鍵的類型,然后再控制相應(yīng)的中斷程序開(kāi)啟,存儲(chǔ)器中存儲(chǔ)的信息或編輯下載的信息經(jīng)過(guò)D/A轉(zhuǎn)換器形成模擬電流量,電流量再經(jīng)過(guò)一個(gè)運(yùn)算放大器調(diào)整得到模擬電壓量,最終輸出可靠的波形信號(hào)。當(dāng)按鍵動(dòng)作時(shí)會(huì)立即觸發(fā)系統(tǒng)中斷程序,即波形種類的切換或者改變波形的頻率時(shí),均可在顯示屏上顯示。整個(gè)工作過(guò)程可在顯示屏上進(jìn)行實(shí)時(shí)操作與監(jiān)測(cè)。
當(dāng)工作狀態(tài)處于故障狀態(tài)時(shí),可通過(guò)復(fù)位電路的復(fù)位按鈕將系統(tǒng)恢復(fù)到正常的工作狀態(tài)下,即對(duì)系統(tǒng)的初始化處理。另一方面,系統(tǒng)的初始化處理也使得某些測(cè)量場(chǎng)合下大大節(jié)約了時(shí)間。
AT89C52是片內(nèi)有ROM/EPROM的單片機(jī)。其整體相當(dāng)于一個(gè)微型計(jì)算機(jī)系統(tǒng),具有各種高精度運(yùn)算及數(shù)據(jù)存儲(chǔ)單元。AT89C52不僅可以在其存儲(chǔ)器中存入大量數(shù)據(jù),而且可對(duì)其進(jìn)行特定的C語(yǔ)言編程,經(jīng)過(guò)微處理器的處理,編程的語(yǔ)言被處理為各種控制信號(hào),進(jìn)而完成各種指定的操作。AT89C52并非單獨(dú)存在進(jìn)行工作,而是需要加上晶振電路和復(fù)位電路才能正常工作。即在單片機(jī)最小系統(tǒng)的運(yùn)行下系統(tǒng)才能正常運(yùn)行。最小系統(tǒng)中,晶振為AT89C52工作提供可靠的脈沖,復(fù)位電路可對(duì)AT89C52進(jìn)行復(fù)位操作,從而保證系統(tǒng)可靠的運(yùn)行。使用AT89C52構(gòu)成單片機(jī)最小系統(tǒng)時(shí),需將其RST引腳及XTAL1/XTAL2引腳分別接上復(fù)位電路和晶振電路。復(fù)位電路用于對(duì)單片機(jī)系統(tǒng)的初始化操作,晶振電路為單片機(jī)提供正常工作脈沖。
晶振,又名晶體振蕩器,在單片機(jī)工作時(shí)提供時(shí)鐘脈沖,用來(lái)表征單片機(jī)工作的快慢。晶振中負(fù)載電容的取值大小與晶振的諧振頻率密不可分,若要得到較為精準(zhǔn)的諧振頻率,只需使并聯(lián)在負(fù)載電容兩端的電容值與負(fù)載電容數(shù)值相等即可。一般選15 pF或12.5 pF的電容作為晶振的負(fù)載電容,若要再考慮等效輸入電容及裕度等因素,22 pF的電容就能滿足要求。
晶振的負(fù)載電容為:
式中:Cd、Cg為晶振兩腳上的等效對(duì)地電容,且Cd=Cg;Cic為集成電路內(nèi)部電容;ΔC為PCB電容。
其中,Cic+ΔC的依經(jīng)驗(yàn)取值為4 pF,負(fù)載電容為15 pF,所以有:
石英晶振一般選用11.069 2 MHz,是因?yàn)椴ㄌ芈室话銥檎麛?shù),這個(gè)數(shù)值方便取整。由于晶振與單片機(jī)的腳XTAL1和腳XTAL2構(gòu)成的振蕩電路中會(huì)產(chǎn)生諧波,為了減弱電路的不穩(wěn)定因素,即考慮裕度等因素,在晶振的XTAL1/XTAL2引腳處分別接入兩個(gè)30 pF的電容接地即可滿足。
系統(tǒng)通上電源后,VCC從0 V緩慢上升到5 V,C1的兩極板間電位差變大,電場(chǎng)增強(qiáng),從而使更多的電子到達(dá)下極板。電路中,電壓在電流方向電位依次降低,當(dāng)電流流過(guò)R1時(shí),將在R1兩端形成一個(gè)大于0的電位。隨著時(shí)間的增加,電容逐漸飽和,電流會(huì)隨之減小,電位也會(huì)逐漸減小。從某種意義上來(lái)說(shuō),該系統(tǒng)能否準(zhǔn)確無(wú)誤復(fù)位,與該電位的大小和持續(xù)的時(shí)間密切相關(guān)。對(duì)于AT89C52而言,當(dāng)RST加高電平的持續(xù)時(shí)間超過(guò)單片機(jī)的兩個(gè)機(jī)器周期,系統(tǒng)就會(huì)被復(fù)位。
系統(tǒng)復(fù)位的時(shí)間應(yīng)大于2個(gè)機(jī)器周期,即:
由AT89C52的直流特性可知,當(dāng)RST上的電壓超過(guò)0.7Vcc時(shí)RST就會(huì)認(rèn)為是高電平。當(dāng)0.7Vcc的電平持續(xù)時(shí)間大于2 μs時(shí),系統(tǒng)就會(huì)復(fù)位。復(fù)位電路電源電壓一般選為5 V。RST內(nèi)電流在該系統(tǒng)內(nèi)可忽略,所以復(fù)位電路可看作是一階RC電路。電容兩端暫態(tài)UI關(guān)系式如下:
因?yàn)閡c(∞ )=5 V,uc(0+)=0 V,可得
若RST電壓為uR(t),則
當(dāng)uR(t)=3.4 V時(shí),t=0.357RC
當(dāng)且僅當(dāng)t=0.357RC≥2 μs,系統(tǒng)復(fù)位,求解得:
因此復(fù)位電路參數(shù)R可選用1 kΩ,C可選用22 μF 。
D/A轉(zhuǎn)換器是把輸入的數(shù)字量轉(zhuǎn)換為與之成正相關(guān)的模擬量的器件,輸入為一位一位的二進(jìn)制數(shù)組成的數(shù)字量,輸出為模擬量。D/A轉(zhuǎn)換的目的就是將每一位數(shù)字量轉(zhuǎn)換成相應(yīng)的模擬量,然后把所有的模擬量迭加起來(lái),得到與數(shù)字量一一對(duì)應(yīng)總的模擬量的輸出。
若輸入為D,輸出Vo,就有
其中VREF為基準(zhǔn)電壓。
假設(shè)數(shù)字量輸入已知,則關(guān)系如下
D/A轉(zhuǎn)換器內(nèi)部有T型解碼網(wǎng)絡(luò)。網(wǎng)絡(luò)中有R和2R兩種電阻,數(shù)字量的多少與支路相關(guān)且相等,每個(gè)支路由一個(gè)R和2R電阻組成,通過(guò)電子開(kāi)關(guān)控制。
圖2 T型解碼網(wǎng)絡(luò)
圖2為T型解碼網(wǎng)絡(luò)。從右往左看,節(jié)點(diǎn)n-1、n-2、L、1、0對(duì)地等效電阻均為R,兩邊等效電阻都是2R,基準(zhǔn)電壓VREF從右往左流經(jīng)每個(gè)節(jié)點(diǎn)時(shí),電流都會(huì)減小一半。流向運(yùn)算放大器的反向端的總電流I為分代碼為1的各支路電流之和,即:
整理可得
運(yùn)放電路的作用是將電流量轉(zhuǎn)換成電壓量,圖3為運(yùn)算放大器電路。圖中運(yùn)算放大器的同向端通過(guò)一個(gè)小阻值電阻接地,電壓可視為0 V。根據(jù)虛短虛斷原則中的虛短,反相端也為0 V,反向輸入端輸入電阻阻值很大,R1和R2相當(dāng)于串聯(lián),根據(jù)串聯(lián)電路的特點(diǎn)可知,流過(guò)R1的電流與流過(guò)R2的電流相等。
流過(guò)R1的電流:
流過(guò)R2的電流:
圖3 運(yùn)算放大器電路
根據(jù)虛短、虛斷可知:
聯(lián)立上述代數(shù)方程解得:
上式為運(yùn)算放大器的輸入輸出關(guān)系,括號(hào)中部分表示放大器的增益。
運(yùn)算放大器選用反相放大的方法,R1和R2在這里選用不超過(guò)100 kΩ的電阻,R1選用10 kΩ電阻,R2選用10~20 kΩ的可變電阻,該放大器放大倍數(shù)為:
即運(yùn)算放大器增益的取值范圍為:
輸出幅度取值范圍為:
理想運(yùn)算放大器,當(dāng)不加輸入信號(hào)時(shí),其輸出一定為零。但實(shí)際中,若輸入信號(hào)為零,輸出并不為零,而是輸出的偏置電壓。當(dāng)偏置電壓隨時(shí)間和溫度變化時(shí),將會(huì)使放大器工作發(fā)生零飄,影響系統(tǒng)運(yùn)行的準(zhǔn)確性。為此,需要在運(yùn)算放大器的正相端串聯(lián)阻值為100 Ω的電阻R,從而降低零點(diǎn)飄移。
波形與頻率的顯示通過(guò)液晶1602實(shí)現(xiàn),LCD1602的正常工作必須借助單片機(jī)的控制。首先,LCD1602的數(shù)據(jù)端需要與單片機(jī)的P1口建立連接,使能端RS、RW、E也需與單片機(jī)連接,建立連接后,通過(guò)運(yùn)行單片機(jī)中下載的程序可以控制液晶屏波形的種類以及波形的頻率的顯示。
液晶顯示LCD1602內(nèi)部由控制器、驅(qū)動(dòng)器和顯示裝備3部分組成。HD44780作為顯示器的控制核心,設(shè)計(jì)中用于對(duì)波形種類及頻率的顯示。LCD1602在使用之前,一般需要先進(jìn)行初始化操作,初始化完成后即可進(jìn)行內(nèi)容的顯示。顯示時(shí),應(yīng)先選擇顯示的DDRAM的地址,再選擇顯示的內(nèi)容。若需要顯示第二行內(nèi)容,則可繼續(xù)設(shè)置第二行顯示緩沖區(qū)DDRAM的地址,再寫(xiě)入顯示內(nèi)容。
根據(jù)硬件電路的搭建及測(cè)試,可以明顯觀測(cè)到利用硬件電路可以輸出預(yù)期波形,但輸出的波形不夠平滑,帶有許多的毛刺狀雜波。在電路中,當(dāng)某一種信號(hào)頻率達(dá)到其截止頻率時(shí)這種信號(hào)將會(huì)被攔截,即不能再繼續(xù)傳遞。為此,需要在運(yùn)算放大器末端接一個(gè)低通濾波裝置來(lái)消除毛刺,使得到的波形更加平滑,更加穩(wěn)定。
低通濾波裝置就是采用這種原理構(gòu)成的,其截止頻率在-3 db位置由公式20Inx計(jì)算得出,其中x為本設(shè)計(jì)中信號(hào)的真實(shí)幅值。計(jì)算截止頻率f為17 kHz,推算后R6選為100Ω,由公式
可以計(jì)算得出電容C3=104 μF
經(jīng)改進(jìn)后,輸出波形明顯得到改善,毛刺基本消失。
主程序流程圖如圖4所示。首先將波形的數(shù)字量值數(shù)組存儲(chǔ)在單片機(jī)的一個(gè)存儲(chǔ)器中,經(jīng)復(fù)位電路對(duì)系統(tǒng)進(jìn)行初始化處理,當(dāng)有按鍵進(jìn)行操作時(shí),按鍵掃描程序被啟動(dòng)并將對(duì)按鍵類型進(jìn)行判別,當(dāng)判別為某一功能操作時(shí),相應(yīng)的中斷服務(wù)程序被調(diào)用,完成指定命令。一方面,單片機(jī)讀取數(shù)組中的值并進(jìn)行各類中斷程序的調(diào)用,當(dāng)允許信號(hào)選通時(shí)再將數(shù)字量送到D/A轉(zhuǎn)換器中進(jìn)行處理和加工;另一方面,信號(hào)類型及頻率大小在LCD1602液晶顯示屏顯示。
D/A轉(zhuǎn)換是一個(gè)將輸入到轉(zhuǎn)換器中的數(shù)字量數(shù)組進(jìn)行計(jì)算,轉(zhuǎn)換成模擬電流量進(jìn)而輸出的過(guò)程,輸出的電流量無(wú)法在示波器上顯示,需經(jīng)過(guò)運(yùn)算放大電路調(diào)整為電壓量。波形的產(chǎn)生是建立在單片機(jī)的基礎(chǔ)之上,單片機(jī)在控制信號(hào)的作用下將存儲(chǔ)的各類波形數(shù)據(jù)(0xAB)送入D/A轉(zhuǎn)換器中,其中A和B的取值可能為0~9、a~f。當(dāng)按鍵被按下后并判斷為頻率加減按鍵后,相應(yīng)的中斷程序被觸發(fā),即當(dāng)頻率增加鍵被按下時(shí),每按一次,頻率便會(huì)以每次10%的變化增加,相同地,當(dāng)頻率減小鍵被按下時(shí),每按一次,頻率便會(huì)以每次10%的變化減小。直到增加或減小到設(shè)定值。液晶顯示器LCD1602是2×16字符型液晶顯示模塊,可以顯示兩行,每行16個(gè)字符。LCD1602的數(shù)據(jù)口與單片機(jī)I/O端口直接連接,并通過(guò)下載到單片機(jī)中的中斷程序直接控制顯示內(nèi)容。當(dāng)功能按鍵被操作時(shí),顯示屏中斷程序會(huì)被啟動(dòng),并伴隨對(duì)應(yīng)按鍵顯示相應(yīng)的內(nèi)容,如當(dāng)對(duì)波形信號(hào)進(jìn)行切換時(shí),對(duì)應(yīng)顯示內(nèi)容也將做出相應(yīng)切換,整個(gè)過(guò)程均與按鍵選項(xiàng)保持一致。
圖4 主程序流程
對(duì)所設(shè)計(jì)低頻信號(hào)發(fā)生器進(jìn)行測(cè)試,外接示波器。表1為各波形測(cè)量峰值。調(diào)節(jié)電位器的大小,取值范圍為1~10 V,隨機(jī)取 3 V、5 V、7 V。
表1 各波形測(cè)量峰值
當(dāng)調(diào)節(jié)時(shí),峰值的波動(dòng)會(huì)有所變化。顯然,當(dāng)電位器的數(shù)值為3 V或7 V時(shí),各個(gè)波形輸出峰值的波動(dòng)較大;當(dāng)取值為5 V時(shí),波動(dòng)最小。由此可以得出,系統(tǒng)在電位器取值為5 V時(shí),輸出信號(hào)質(zhì)量最好。
圖5 輸出特性曲線
圖5為輸出特性曲線。峰值的大小與頻率無(wú)關(guān),以三角波為例,當(dāng)頻率增大或者減小的過(guò)程中,三角波的峰值不隨其發(fā)生變化。當(dāng)電位器的位置改變時(shí),峰值會(huì)隨著發(fā)生改變。
圖6~8分別為低頻信號(hào)發(fā)生器實(shí)測(cè)輸出鋸齒波、梯形波和三角波形圖。
圖6 鋸齒波輸出波形圖
圖7 梯形波輸出波形圖
圖8 三角波輸出波形圖
以AT89C52單片機(jī)為主控核心,設(shè)計(jì)一種低頻信號(hào)發(fā)生器的硬件電路和軟件部分。系統(tǒng)通過(guò)鍵盤(pán)和顯示屏可以選擇不同種類及頻率的波形,波形信號(hào)由數(shù)字信號(hào)轉(zhuǎn)化得到,可以輸出方波、三角波、正弦波、鋸齒波等多種波形,當(dāng)需要其它種類的波形時(shí),只需將波形數(shù)據(jù)下載到單片機(jī)中即可,并且頻率易于調(diào)節(jié)。對(duì)系統(tǒng)進(jìn)行了參數(shù)測(cè)試,結(jié)果表明所設(shè)計(jì)的低頻信號(hào)裝置輸出波形質(zhì)量好,可靠性高,且波形切換和頻率調(diào)節(jié)易于控制,具有較高的實(shí)用價(jià)值。