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