單片機加PWM芯片的開(kāi)關(guān)電源設計方法
隨著(zhù)各種電器和儀表設備的日漸豐富,對電源應用的靈活性提出了更高的要求。設計一款使用靈活、方便且價(jià)格相對便宜的通用電源,正越來(lái)越成為市場(chǎng)所需,F代單片機正朝著(zhù)處理速度越來(lái)越快,外設資源越來(lái)越豐富,價(jià)格越來(lái)越便宜的方向發(fā)展,將單片機融入電源的設計中可以極大地提升電源的性能和靈活性。本文介紹了一種單片機加PWM芯片的開(kāi)關(guān)電源設計方法,既可以保留PWM芯片帶來(lái)的穩定工作性能,又可以利用單片機的控制能力提供各種人機交互和通信接口。筆者設計的電源作為通用電源使用,可以提供靈活可編程的電壓電流輸出,另外還可以設置成鉛酸電池充電器的模式,具有廣闊的應用前景。
1 系統功能
通過(guò)對電源的編程,可以方便地實(shí)現圖1所示的電壓輸出波形。其中,V1、V2、T1、T2、dv、dt都是可以通過(guò)編程來(lái)設定的。電壓值的輸出范圍為0~16V,最大輸出電流為10 A。輸出電壓精度為0.1 V,電流精度為10mA。電流的設定值指的是允許輸出的最大電流,也可以被編程為與輸出電壓一樣的波形。
圖1 編程輸出電壓波形
另外,電源也可以工作在鉛酸電池充電器的模式(簡(jiǎn)稱(chēng)“LBC模式”)。根據鉛酸電池的特性,當電源工作在LBC模式時(shí),電源首先將輸出較大的充電電壓和電流V1/I1,至少維持10s;當充電電流降到小于設定值I2時(shí),電源輸出較小的充電電壓和電流V2/I2。如果到了設定時(shí)間T1,充電電流還未降到I2以下,這時(shí)電源輸出也會(huì )降為V2/I2。當輸出電流再次大于I2時(shí),電源將再次輸出V1/I1充電。其中,V2設定值必須小于14V。若設置為大于14 V,電源會(huì )自動(dòng)將其設成14 V。I2的值必須大于1/8I1,否則將被自動(dòng)設成1/8I1。LBC模式如圖2所示。
圖2 LBC模式
用戶(hù)可以通過(guò)3種方式對電源進(jìn)行輸出設定:
、 通過(guò)電源面板上按鍵編程。通過(guò)按鍵對輸出電壓、電流限流值、時(shí)間等量進(jìn)行設定。
、 通過(guò)PC機串口編程。通過(guò)將PC機的串口RS232與電源串口相連,再運行PC機上一串口通信的軟件對電源進(jìn)行編程。
、 電源間相互編程。通過(guò)將兩臺電源的串口相連,操作其中一臺電源面板上的按鍵來(lái)對另一臺進(jìn)行編程。操作的一臺電源叫做“主電源”,被編程的電源叫做“從電源”。在這種編程方式中,只能將從電源的參數設置為與主電源完全一致,而不能對各個(gè)參數進(jìn)行單獨設定。一臺電源只能提供100W的功率。這種方式可以應用在需要較大功率的場(chǎng)合,可將兩臺或多臺具有相同設置的電源輸出并聯(lián)來(lái)方便地實(shí)現功率擴展。
2 工作原理
用單片機來(lái)控制開(kāi)關(guān)電源,總的來(lái)說(shuō)可以分為兩種:
第一種是單片機通過(guò)輸出PWM或DA給電源電路提供一個(gè)基準電壓,單片機本身不介入電源的反饋中(本設計所采用的就是這種方式);第二種為通過(guò)單片機輸出的PWM信號直接控制開(kāi)關(guān)管工作,取代PWM芯片,但這種方式對單片機的要求較高,需要具有相當高的時(shí)鐘頻率才能滿(mǎn)足對輸出PWM頻率和分辨率的要求。
系統按模塊來(lái)分可以分成兩大模塊:
電源模塊和單片機控制模塊。電源模塊是以PWM芯片為核心的AC—DC變換器,PWM芯片采用安森美半導體的電流型PWM控制器NCP1200作為控制芯片。單片機控制模塊采用美國微芯公司的PIC16F874作為微控制器,主要實(shí)現電流電壓信號的采樣、顯示、按鍵輸入、串口通信以及為電源模塊提供電壓電流參考等功能。兩個(gè)模塊的關(guān)系可以用圖3來(lái)說(shuō)明。
圖3 工作原理
圖3中,電網(wǎng)電壓經(jīng)整流濾波后供給高頻變換電路,由高頻變換電路產(chǎn)生輸出。單片機輸出兩路PWM信號,給電源模塊提供輸出電壓的參考值和電流的限流值,電源模塊按照單片機提供的參考值輸出電壓和限定最大電流。雖然單片機采樣輸出電壓和電流進(jìn)行顯示,但這里單片機并不參與系統的反饋,反饋通過(guò)電源模塊來(lái)實(shí)現(在后面的部分中會(huì )詳細講到)。
3 硬件設計
4 軟件設計
4.1 軟件流程
軟件用C語(yǔ)言編寫(xiě),使用HighTech公司為PIC系列單片機提供的PICC編譯器。系統上電時(shí),單片機讀出非易失性存儲器(EEPROM)中上次設置參數,進(jìn)行電流電壓輸出。在軟件設計中,采用多個(gè)任務(wù)的概念,可以模擬一個(gè)簡(jiǎn)單的操作系統進(jìn)行任務(wù)的調度。由定時(shí)器產(chǎn)生一個(gè)5ms的中斷,在中斷程序中激活各個(gè)任務(wù)的標志。如顯示任務(wù)主要負責A/D采樣、數碼管與LED的刷新,可每5ms執行一次。鍵盤(pán)處理任務(wù)負責按鍵的掃描、軟件去抖、鍵盤(pán)命令的解釋和掃行,可每10ms執行一次。PWM輸出任務(wù)負責按照設定的值進(jìn)行PWM的輸出,可以每50ms執行一次。如果有PC機或其他電源通過(guò)串口編程,單片機將在UART中斷中接收編程數據,接收完改寫(xiě)EEPROM中設置并強行復位。如果接收到通過(guò)按鍵的編程,則在按鍵處理中修改EEPROM的設置并復位。程序主流程則掃描各個(gè)任務(wù)是否到時(shí)間執行。是,則執行該任務(wù);否則,跳過(guò)該任務(wù)。主程序流程如圖7所示。
圖7 主程序流程
4.2 串口編程軟件
在PC機上設計了軟件來(lái)實(shí)現PC機與單片機的通信。通過(guò)該軟件可以方便地實(shí)現對電源電流電壓輸出、定時(shí)等參數的設定。只要將電源上的RS232口與PC機串口相連,就可實(shí)現通信。
利用Visual Basic中的Mscomm控件進(jìn)行串口通信軟件的設計(這里僅作簡(jiǎn)要的介紹)。PC端數據接收通過(guò)Oncomm事件來(lái)實(shí)現,當接收緩沖區的數據達到rthreshold屬性設定值時(shí),就會(huì )觸發(fā)Oncomm事件,在中斷程序中讀出接收緩沖區中的數據,將收到的字符型數據轉換成字符串后便送到各個(gè)文本框顯示。數據發(fā)送時(shí),首先讀出文本框內字符串,再將其轉換成字符型數據,最后通過(guò)單擊“發(fā)送”按鈕,將數據送到發(fā)送緩沖區中,從而將數據從串口發(fā)送出去。
結語(yǔ)
采用單片機控制,克服了開(kāi)關(guān)電源單一輸出的缺點(diǎn),能夠提供靈活的電壓輸出。通過(guò)功率聯(lián)合擴展的功能,可以滿(mǎn)足不同功率場(chǎng)合的要求。電源也可以被當成鉛酸電池充電器來(lái)使用,能自動(dòng)調整充電電流和電壓,應用場(chǎng)合非常廣泛。
3.1 電源模塊電路
NCP1200是安森美半導體公司(ON Semiconductor)推出的一款電流型PWM控制器。其應用電路只需要使用很少的外圍元件,使設計更加緊湊。另外,芯片內集成輸出短路的保護電路,使成本可以進(jìn)一步降低。
圖4是以NCP1200為控制芯片的電源電路的結構。從圖中可以看到,電源模塊中有兩種反饋類(lèi)型。第一種是輸出電壓反饋,輸出電壓采樣值VSS和單片機提供的設定值進(jìn)行比較,通過(guò)光耦來(lái)控制NCP1200芯片FB腳的電壓,調整DRV腳輸出PWM的脈寬來(lái)控制場(chǎng)效應管的導通和關(guān)斷時(shí)間,從而達到調整輸出電壓值的目的。另一路反饋是電流限流反饋,當采樣到的輸出電流值ISS超過(guò)單片機提供的最大限流值IPWM后,比較器輸出正電壓使得光耦最大導通,將FB腳電壓拉低,使得NCP1200輸出PWM脈寬減小,從而達到限流的目的。當輸出電流小于單片機提供的限流值時(shí),限流反饋不起作用。
圖4 電源模塊電路結構
圖中的輔助電源提供+12 V的電壓,另經(jīng)三端穩壓器件KA7805(圖中未畫(huà)出)產(chǎn)生+5V的電壓,給比較器和單片機控制模塊提供電源。
3.2 單片機控制電路
PIC16F874是美國微芯科技公司(Microchip Technology)的一款8位單片機,內置4K×14位的Flash、128字節的RAM和64字節的EEPROM。另外,它具有豐富的外設資源,其內置1個(gè)UART模塊可供串口通信用,2個(gè)*模塊可以產(chǎn)生2路獨立、10位分辨率的PWM信號,8路10位的A/D轉換通道。另外,PIC系列單片機的每個(gè)I/O能提供25mA的驅動(dòng)電流,對于LED的接口電路可以省掉外加晶體管的驅動(dòng)電路。
單片機控制模塊結構框圖如圖5所示。
圖5 單片機控制模塊結構框圖
單片機控制系統的主要接口電路:
、 按鍵接口電路。采用暫觸式開(kāi)關(guān)輸入,使用電阻電容去抖。
、 數碼管及LED顯示電路。數碼管顯示電壓、電流、時(shí)間等信息。LED指示當前顯示的參數種類(lèi)。PIC單片機的I/O能夠直接驅動(dòng)數碼管和LED。按鍵輸入和顯示接口電路如圖6所示。
圖6 按鍵輸入和顯示接口電路
、 A/D采樣和PWM輸出電路。A/D負責采樣輸出電壓電流并送到數碼管顯示。當前電流電壓設定值通過(guò)由單片機內部的*模塊產(chǎn)生的兩路PWM信號來(lái)給電源模塊提供一個(gè)參考值。單片機內部的*模塊可以設置成PWM輸出模式,通過(guò)寫(xiě)周期寄存器和脈寬寄存器的值就可由硬件產(chǎn)生不同頻率和占空比的PWM波形。
、艽谕ㄐ沤涌陔娐。串口通信接口電路采用MAX232芯片作為RS232收發(fā)器。
【上一個(gè)】 單片機硬件參數設計解析 | 【下一個(gè)】 開(kāi)關(guān)電源維修步驟及經(jīng)驗 |
^ 單片機加PWM芯片的開(kāi)關(guān)電源設計方法 |