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