《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 電源技術(shù) > 設(shè)計應(yīng)用 > 單片機加PWM芯片的開關(guān)電源設(shè)計方法
單片機加PWM芯片的開關(guān)電源設(shè)計方法
摘要: 本文介紹了一種單片機加PWM芯片的開關(guān)電源設(shè)計方法,,既可以保留PWM芯片帶來的穩(wěn)定工作性能,又可以利用單片機的控制能力提供各種人機交互和通信接口。筆者設(shè)計的電源作為通用電源使用,,可以提供靈活可編程的電壓電流輸出,,另外還可以設(shè)置成鉛酸電池充電器的模式,,具有廣闊的應(yīng)用前景,。
Abstract:
Key words :

    隨著各種電器和儀表設(shè)備的日漸豐富,對電源應(yīng)用的靈活性提出了更高的要求,。設(shè)計一款使用靈活,、方便且價格相對便宜的通用電源,正越來越成為市場所需?,F(xiàn)代單片機正朝著處理速度越來越快,,外設(shè)資源越來越豐富,價格越來越便宜的方向發(fā)展,,將單片機融入電源的設(shè)計中可以極大地提升電源的性能和靈活性,。本文介紹了一種單片機加PWM芯片開關(guān)電源設(shè)計方法,既可以保留PWM芯片帶來的穩(wěn)定工作性能,,又可以利用單片機的控制能力提供各種人機交互和通信接口。筆者設(shè)計的電源作為通用電源使用,,可以提供靈活可編程的電壓電流輸出,,另外還可以設(shè)置成鉛酸電池充電器的模式,具有廣闊的應(yīng)用前景。

    1 系統(tǒng)功能

  通過對電源的編程,,可以方便地實現(xiàn)圖1所示的電壓輸出波形,。其中,V1,、V2,、T1、T2,、dv,、dt都是可以通過編程來設(shè)定的。電壓值的輸出范圍為0~16V,,最大輸出電流為10 A,。輸出電壓精度為0.1 V,電流精度為10mA,。電流的設(shè)定值指的是允許輸出的最大電流,,也可以被編程為與輸出電壓一樣的波形。

  
圖1 編程輸出電壓波形

  另外,,電源也可以工作在鉛酸電池充電器的模式(簡稱“LBC模式”),。根據(jù)鉛酸電池的特性,當(dāng)電源工作在LBC模式時,,電源首先將輸出較大的充電電壓和電流V1/I1,,至少維持10s;當(dāng)充電電流降到小于設(shè)定值I2時,電源輸出較小的充電電壓和電流V2/I2,。如果到了設(shè)定時間T1,,充電電流還未降到I2以下,這時電源輸出也會降為V2/I2,。當(dāng)輸出電流再次大于I2時,,電源將再次輸出V1/I1充電。其中,,V2設(shè)定值必須小于14V,。若設(shè)置為大于14 V,電源會自動將其設(shè)成14 V,。I2的值必須大于1/8I1,,否則將被自動設(shè)成1/8I1。LBC模式如圖2所示,。

  
圖2 LBC模式

  用戶可以通過3種方式對電源進行輸出設(shè)定:

 ?、?通過電源面板上按鍵編程。通過按鍵對輸出電壓,、電流限流值,、時間等量進行設(shè)定,。

  ② 通過PC機串口編程,。通過將PC機的串口RS232與電源串口相連,,再運行PC機上一串口通信的軟件對電源進行編程。

 ?、?電源間相互編程,。通過將兩臺電源的串口相連,操作其中一臺電源面板上的按鍵來對另一臺進行編程,。操作的一臺電源叫做“主電源”,,被編程的電源叫做“從電源”。在這種編程方式中,,只能將從電源的參數(shù)設(shè)置為與主電源完全一致,,而不能對各個參數(shù)進行單獨設(shè)定。一臺電源只能提供100W的功率,。這種方式可以應(yīng)用在需要較大功率的場合,,可將兩臺或多臺具有相同設(shè)置的電源輸出并聯(lián)來方便地實現(xiàn)功率擴展。

2 工作原理

 

  用單片機來控制開關(guān)電源,,總的來說可以分為兩種:

  第一種是單片機通過輸出PWM或DA給電源電路提供一個基準(zhǔn)電壓,,單片機本身不介入電源的反饋中(本設(shè)計所采用的就是這種方式);第二種為通過單片機輸出的PWM信號直接控制開關(guān)管工作,取代PWM芯片,,但這種方式對單片機的要求較高,,需要具有相當(dāng)高的時鐘頻率才能滿足對輸出PWM頻率和分辨率的要求。

  系統(tǒng)按模塊來分可以分成兩大模塊:

  電源模塊和單片機控制模塊,。電源模塊是以PWM芯片為核心的AC—DC變換器,,PWM芯片采用安森美半導(dǎo)體的電流型PWM控制器NCP1200作為控制芯片。單片機控制模塊采用美國微芯公司的PIC16F874作為微控制器,,主要實現(xiàn)電流電壓信號的采樣,、顯示、按鍵輸入,、串口通信以及為電源模塊提供電壓電流參考等功能,。兩個模塊的關(guān)系可以用圖3來說明。

  
圖3 工作原理

  圖3中,,電網(wǎng)電壓經(jīng)整流濾波后供給高頻變換電路,,由高頻變換電路產(chǎn)生輸出。單片機輸出兩路PWM信號,,給電源模塊提供輸出電壓的參考值和電流的限流值,,電源模塊按照單片機提供的參考值輸出電壓和限定最大電流。雖然單片機采樣輸出電壓和電流進行顯示,,但這里單片機并不參與系統(tǒng)的反饋,,反饋通過電源模塊來實現(xiàn)(在后面的部分中會詳細講到),。

3 硬件設(shè)計

 

  3.1 電源模塊電路

  NCP1200是安森美半導(dǎo)體公司(ON Semiconductor)推出的一款電流型PWM控制器。其應(yīng)用電路只需要使用很少的外圍元件,,使設(shè)計更加緊湊。另外,,芯片內(nèi)集成輸出短路的保護電路,,使成本可以進一步降低。

圖4是以NCP1200為控制芯片的電源電路的結(jié)構(gòu),。從圖中可以看到,,電源模塊中有兩種反饋類型。第一種是輸出電壓反饋,,輸出電壓采樣值VSS和單片機提供的設(shè)定值進行比較,,通過光耦來控制NCP1200芯片F(xiàn)B腳的電壓,調(diào)整DRV腳輸出PWM的脈寬來控制場效應(yīng)管的導(dǎo)通和關(guān)斷時間,,從而達到調(diào)整輸出電壓值的目的,。另一路反饋是電流限流反饋,當(dāng)采樣到的輸出電流值ISS超過單片機提供的最大限流值IPWM后,,比較器輸出正電壓使得光耦最大導(dǎo)通,,將FB腳電壓拉低,使得NCP1200輸出PWM脈寬減小,,從而達到限流的目的,。當(dāng)輸出電流小于單片機提供的限流值時,限流反饋不起作用,。

  
圖4 電源模塊電路結(jié)構(gòu)

  圖中的輔助電源提供+12 V的電壓,,另經(jīng)三端穩(wěn)壓器件KA7805(圖中未畫出)產(chǎn)生+5V的電壓,給比較器和單片機控制模塊提供電源,。

  3.2 單片機控制電路

  PIC16F874是美國微芯科技公司(Microchip Technology)的一款8位單片機,,內(nèi)置4K×14位的Flash、128字節(jié)的RAM和64字節(jié)的EEPROM,。另外,它具有豐富的外設(shè)資源,,其內(nèi)置1個UART模塊可供串口通信用,2個*模塊可以產(chǎn)生2路獨立,、10位分辨率的PWM信號,,8路10位的A/D轉(zhuǎn)換通道。另外,,PIC系列單片機的每個I/O能提供25mA的驅(qū)動電流,,對于LED的接口電路可以省掉外加晶體管的驅(qū)動電路。

  單片機控制模塊結(jié)構(gòu)框圖如圖5所示,。

  
圖5 單片機控制模塊結(jié)構(gòu)框圖

  單片機控制系統(tǒng)的主要接口電路:

 ?、?按鍵接口電路,。采用暫觸式開關(guān)輸入,使用電阻電容去抖,。

 ?、?數(shù)碼管及LED顯示電路。數(shù)碼管顯示電壓,、電流,、時間等信息。LED指示當(dāng)前顯示的參數(shù)種類,。PIC單片機的I/O能夠直接驅(qū)動數(shù)碼管和LED,。按鍵輸入和顯示接口電路如圖6所示。

  
圖6 按鍵輸入和顯示接口電路

 ?、?A/D采樣和PWM輸出電路,。A/D負責(zé)采樣輸出電壓電流并送到數(shù)碼管顯示。當(dāng)前電流電壓設(shè)定值通過由單片機內(nèi)部的*模塊產(chǎn)生的兩路PWM信號來給電源模塊提供一個參考值,。單片機內(nèi)部的*模塊可以設(shè)置成PWM輸出模式,通過寫周期寄存器和脈寬寄存器的值就可由硬件產(chǎn)生不同頻率和占空比的PWM波形,。

  ④串口通信接口電路,。串口通信接口電路采用MAX232芯片作為RS232收發(fā)器,。

 4 軟件設(shè)計

  4.1 軟件流程

  軟件用C語言編寫,使用HighTech公司為PIC系列單片機提供的PICC編譯器,。系統(tǒng)上電時,,單片機讀出非易失性存儲器(EEPROM)中上次設(shè)置參數(shù),進行電流電壓輸出,。在軟件設(shè)計中,,采用多個任務(wù)的概念,可以模擬一個簡單的操作系統(tǒng)進行任務(wù)的調(diào)度,。由定時器產(chǎn)生一個5ms的中斷,,在中斷程序中激活各個任務(wù)的標(biāo)志。如顯示任務(wù)主要負責(zé)A/D采樣,、數(shù)碼管與LED的刷新,,可每5ms執(zhí)行一次。鍵盤處理任務(wù)負責(zé)按鍵的掃描,、軟件去抖,、鍵盤命令的解釋和掃行,可每10ms執(zhí)行一次,。PWM輸出任務(wù)負責(zé)按照設(shè)定的值進行PWM的輸出,,可以每50ms執(zhí)行一次。如果有PC機或其他電源通過串口編程,,單片機將在UART中斷中接收編程數(shù)據(jù),,接收完改寫EEPROM中設(shè)置并強行復(fù)位,。如果接收到通過按鍵的編程,則在按鍵處理中修改EEPROM的設(shè)置并復(fù)位,。程序主流程則掃描各個任務(wù)是否到時間執(zhí)行,。是,則執(zhí)行該任務(wù);否則,,跳過該任務(wù),。主程序流程如圖7所示。

  
圖7 主程序流程

  4.2 串口編程軟件

  在PC機上設(shè)計了軟件來實現(xiàn)PC機與單片機的通信,。通過該軟件可以方便地實現(xiàn)對電源電流電壓輸出、定時等參數(shù)的設(shè)定,。只要將電源上的RS232口與PC機串口相連,,就可實現(xiàn)通信。

  利用Visual Basic中的Mscomm控件進行串口通信軟件的設(shè)計(這里僅作簡要的介紹),。PC端數(shù)據(jù)接收通過Oncomm事件來實現(xiàn),,當(dāng)接收緩沖區(qū)的數(shù)據(jù)達到rthreshold屬性設(shè)定值時,就會觸發(fā)Oncomm事件,,在中斷程序中讀出接收緩沖區(qū)中的數(shù)據(jù),,將收到的字符型數(shù)據(jù)轉(zhuǎn)換成字符串后便送到各個文本框顯示。數(shù)據(jù)發(fā)送時,,首先讀出文本框內(nèi)字符串,,再將其轉(zhuǎn)換成字符型數(shù)據(jù),最后通過單擊“發(fā)送”按鈕,,將數(shù)據(jù)送到發(fā)送緩沖區(qū)中,,從而將數(shù)據(jù)從串口發(fā)送出去。

  結(jié)語

  采用單片機控制,,克服了開關(guān)電源單一輸出的缺點,,能夠提供靈活的電壓輸出。通過功率聯(lián)合擴展的功能,,可以滿足不同功率場合的要求,。電源也可以被當(dāng)成鉛酸電池充電器來使用,能自動調(diào)整充電電流和電壓,,應(yīng)用場合非常廣泛,。

 

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。