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