1系統(tǒng)的功能和特點
系統(tǒng)有6路電壓輸出,其中3路為正,3路為負。電壓調(diào)節(jié)范圍為0~35V,最大輸出電流(A)分別為5,2和1,具有過流保護功能。數(shù)字顯示有5位,其中1位顯示路號,1位顯示電壓極性,另3位顯示輸出電壓。鍵盤設(shè)有16個鍵,數(shù)字鍵0~9及小數(shù)點鍵用于設(shè)定電壓輸出路號及幅值;“↑”鍵為逐步增加輸出電壓或路號;“↓”鍵為逐步減少輸出電壓或路號;“CLR”鍵用于清除錯誤輸入,恢復(fù)原先狀態(tài);“#”鍵用于啟動電壓設(shè)定狀態(tài)和確認新設(shè)定;“@”鍵為巡回顯示和定點顯示切換鍵。
本系統(tǒng)設(shè)有巡回顯示、定點顯示和電壓設(shè)定3種工作狀態(tài)。當接通電源時,自動設(shè)置為巡回顯示狀態(tài),它將每隔4s在顯示器上巡回顯示不同路號和相應(yīng)電壓。若再按“#”,則電壓顯示值出現(xiàn)閃爍現(xiàn)象,表示進入電壓設(shè)定狀態(tài)。如果依次按下“2”,“6”,“·”,“3”,再按“#”鍵確認,新的電壓26.3V為實際輸出,設(shè)定完畢。也可以在電壓設(shè)定狀態(tài)下,用“↑”鍵和“↓”鍵以0.1V的增量設(shè)定電壓。系統(tǒng)設(shè)有自動識別功能,將不接受超出使用范圍的電壓設(shè)定值。在未按“#”鍵之前,對誤輸入的電壓可以用“CLR”鍵清除后重新設(shè)定。在定點顯示態(tài),可用數(shù)字鍵、“↑”或“↓”鍵選擇監(jiān)視的電壓路號。同樣地,系統(tǒng)將不接受超出實際范圍的路號設(shè)定值。輸出電壓的正負值由系統(tǒng)自動給出,無需用戶輸入。巡回顯示和定點顯示的切換按“@”鍵即可。
2硬件電路分析
系統(tǒng)選用AT89C51單片機為控制核心,完全兼容了8031單片機的指令和功能。同時,它還增加了內(nèi)置4KB閃速存儲器,具有128B內(nèi)部RAM,3個I/O口,功耗低,體積小巧,不需擴展存儲器就能滿足系統(tǒng)要求。圖1為系統(tǒng)硬件原理圖。
2.1電壓輸出回路
電壓輸出回路原理,如圖2所示。其調(diào)整管采用共射極連接方式,與常見的共集極連接方式相比,功耗和紋波系數(shù)大為降低。增并調(diào)整管,適當增加BG2的容量即可擴展功率輸出容量。由于電壓反饋調(diào)節(jié)采用了比例積分調(diào)節(jié)器,輸出電壓在正常的工作區(qū)能完全地跟蹤控制電壓Uin.經(jīng)過推導(dǎo),可得穩(wěn)態(tài)的輸出電壓值Uo=WinRw/Rr.Rb及BG3等構(gòu)成過流保護電路。理論可以證明,該回路近似為一階控制系統(tǒng),具有絕對的穩(wěn)定性。因此,它十分適合于系統(tǒng)的設(shè)計要求,詳細的分析說明可參見文獻〔2〕。
2.2控制電壓給定回路
控制電壓給定回路由單片機、D/A轉(zhuǎn)換器和采樣保持器等組成。控制電壓由D/A提供,系統(tǒng)采用了開環(huán)控制方式。一般說來,開環(huán)控制的抗干擾能力和精度差〔3〕。但由于本電壓輸出電路采用了特有的結(jié)構(gòu),能實現(xiàn)無靜差調(diào)節(jié)。這樣,可以省去類似文獻〔2〕電路中的A/D采樣和比較電路,既降低了成本,又簡化了結(jié)構(gòu)。其控制算法簡單,可靠性顯著增強。D/A輸出一般很穩(wěn)定,但分辨率有限。按本系統(tǒng)的設(shè)計要求,輸出電壓的分辨率必須大于0.1V.已知穩(wěn)壓輸出量程為0~35V,若D/A的量程和參考電壓以5V計,則D/A的分辨率B應(yīng)滿足2B>35/0.1,B>8.4.故可采用10或12位的D/A轉(zhuǎn)換器。為保證一定裕量,系統(tǒng)采用DAC1210.本系統(tǒng)具有多路正負輸出,考慮到高位D/A轉(zhuǎn)換器價格較高。采樣-保持電路由數(shù)據(jù)鎖存器74LS273,以及6塊采樣-保持器LF398組成。當DAC1210輸出第N路(1≤N≤6)控制電壓時,通過74LS273的第N位輸出狀態(tài)的改變,使相應(yīng)路的采樣/保持器LF398由保持狀態(tài)變?yōu)椴蓸訝顟B(tài)。然后,再恢復(fù)成保持狀態(tài),從而實現(xiàn)對控制電壓的采樣和保持。
2.3顯示和鍵盤接口電路
考慮到本系統(tǒng)監(jiān)控軟件的負擔較重,顯示采用了靜態(tài)顯示模式〔5〕。不難發(fā)現(xiàn),電源輸出的極性決定于輸出電壓回路的電路結(jié)構(gòu),與路號有一一對應(yīng)的關(guān)系。因而,可由軟件自動設(shè)置。故兩塊數(shù)碼管完全可以共享一組8位顯示數(shù)據(jù)。這樣5位LED只需設(shè)4個鎖存器(74LS273)。鍵盤電路設(shè)置于P1口,為典型的4×4中斷掃描鍵盤。
3系統(tǒng)軟件設(shè)計
本軟件設(shè)計通過合理安排中斷和劃分各功能模塊,設(shè)置統(tǒng)一的狀態(tài)字,有效克服了系統(tǒng)的功能多、狀態(tài)轉(zhuǎn)換復(fù)雜給軟件設(shè)計帶來的困難。系統(tǒng)軟件流程圖,如圖3所示。
3.1狀態(tài)字設(shè)計
狀態(tài)字(SB)占用一個字節(jié),有效位為5位。狀態(tài)字通道被啟動后,控制指定的設(shè)備完成規(guī)定的操作,同時,通道在執(zhí)行對外圍設(shè)備控制的過程中,要記錄通道與設(shè)備執(zhí)行情況,為此系統(tǒng)在主存中安排另一個固定單元,用于存放這些被記錄狀態(tài),有
SB.0=1,表示處于巡回顯示狀態(tài),SB.0=0,無意義;
SB.1=1,表示處于定點顯示狀態(tài),SB.0=0,無意義;
SB.2=1,表示處于電壓設(shè)定狀態(tài),SB.0=0,無意義;
SB.3=1,表示電壓設(shè)定值有誤,SB.3=0,表示電壓設(shè)定值正確;
SB.4=1,表示電壓非首次數(shù)字設(shè)定,SB.4=0,表示電壓首次數(shù)字設(shè)定。
3.2各功能處理模塊
主程序。進行系統(tǒng)初始化設(shè)定(I/O口、定時、中斷、狀態(tài)字、各數(shù)據(jù)緩沖區(qū)等初始化),等待中斷。定時中斷服務(wù)程序。輸出電壓的穩(wěn)定性是穩(wěn)壓器最重要的指標。考慮到采樣-保持器輸出有一緩慢的下降速率(當LF398保持電容為0.1μF時,下降速率約200V·min-1),故需定時對其進行保持和電壓刷新。本服務(wù)程序完成各路電壓值刷新和顯示。中斷申請由定時/計數(shù)器T0提出,每隔130ms中斷一次,中斷服務(wù)級為最高級。鍵盤中斷服務(wù)程序。根據(jù)鍵碼和當前狀態(tài)字,跳轉(zhuǎn)相應(yīng)的功能處理程序,中斷由INT0引入。鍵掃描譯碼程序。將0~9、小數(shù)點,以及其它按鍵譯成對應(yīng)00H~0FH的十六進制碼。顯示譯碼程序。將鍵碼緩沖區(qū)的內(nèi)容譯成七段碼并存入相應(yīng)的顯示緩沖區(qū)。D/A譯碼程序。將鍵碼緩沖區(qū)的內(nèi)容譯成對應(yīng)的12位D/A二進制數(shù)碼,并存入相應(yīng)的D/A數(shù)據(jù)緩沖區(qū)(一路輸出占2B)。顯示子程序。根據(jù)路數(shù),將該路數(shù)據(jù)緩沖區(qū)的內(nèi)容與屏蔽字相或后,送對應(yīng)數(shù)管。錯程識別序1.在電壓設(shè)定狀態(tài),判定鍵入數(shù)字碼后,鍵碼緩沖區(qū)數(shù)據(jù)格式的錯誤,恢復(fù)鍵入前的狀態(tài)并給出相應(yīng)標志(SB.3)。錯程識別序2.在電壓設(shè)定狀態(tài),判定鍵入“↑”鍵、“↓”鍵后,鍵碼緩沖區(qū)數(shù)據(jù)格式的錯誤恢復(fù)鍵入前的狀態(tài),并給出相應(yīng)標志(SB.3)。
3.3數(shù)據(jù)緩沖區(qū)設(shè)定
互方之一定義用于數(shù)據(jù)交換的底層內(nèi)存分配機制。另一方總是使用已公布的接口來分配或釋放緩沖區(qū),從而避免潛在的不一致。這種模型需要雙方都堅持一個可能與軟件基本功能無關(guān)的編程約定,而且在一般情況下,這個編程約定可能使代碼更加不可重用。
驅(qū)動數(shù)據(jù)交換的那一方將負責管理操作——當該方充當數(shù)據(jù)提供者時,這是一個相對適當?shù)姆桨浮H欢?,當該方充當?shù)據(jù)使用者時,事情就變得棘手了。為避免去發(fā)現(xiàn)數(shù)據(jù)大小,數(shù)據(jù)使用者可以分配一個任意大小的緩沖區(qū)。如果該數(shù)據(jù)緩沖區(qū)沒有足夠大,就必須對數(shù)據(jù)提供者發(fā)出多次調(diào)用。因此這種方法需要圍繞該交互調(diào)用編寫額外的循環(huán)代碼,以備多次調(diào)用之需。
?。?)D/A數(shù)據(jù)緩沖區(qū)。存放各路輸出的D/A值二進制碼,每路占2B,共12B.(2)鍵碼緩沖區(qū)。在電壓設(shè)定狀態(tài),存儲鍵入的數(shù)值碼(包括小數(shù)點),一鍵碼用4位二進制數(shù)表示。故每路占2B,共12B.(3)顯示緩沖區(qū)。存儲各路輸出電壓顯示七段碼(含路數(shù)、輸出極性、電壓大小),每路占4B,共24B.(4)鍵碼備份緩沖區(qū)。進入電壓設(shè)定狀態(tài)時,程序?qū)?fù)制當前路鍵碼緩沖區(qū)的內(nèi)容并存入此區(qū),共2B.(5)顯示備份緩沖區(qū)。進入電壓設(shè)定狀態(tài)時,程序?qū)?fù)制當前路顯示緩沖區(qū)的內(nèi)容并存入此區(qū),共4B.
除了上述困難之外,安全性也證明是傳統(tǒng)方法存在的問題:傳統(tǒng)緩沖區(qū)管理方案無法容易地防止惡意用戶刻意改寫數(shù)據(jù)緩沖區(qū),從而導(dǎo)致程序異常??紤]到所有這一切,設(shè)計一個適當?shù)臄?shù)據(jù)緩沖區(qū)接口就勢在必行!
4結(jié)束語
本文將單片機控制回路與無靜差的電壓輸出回路有機結(jié)合,構(gòu)成一款新式多路數(shù)字可調(diào)功率直流穩(wěn)壓電源,非常適合一般教學(xué)和科研使用。單片機、DAC與其它外圍電路獨立供電。DAC采用高穩(wěn)定性的基準電源為參考電壓,面板電源開關(guān)可設(shè)計成僅切斷輸出回路的供電電源。還要注意選擇特性較理想的、功率適當?shù)木w管,加裝大小適當?shù)纳崞?。這樣,一般不需太多調(diào)試就能獲得成功。因此,本電源推廣容易,可望獲得廣泛的應(yīng)用。