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