一種小型智能化UPS系統(tǒng)的嵌入式設(shè)計(jì)方案
2 軟件系統(tǒng)
2.1 軟件系統(tǒng)功能描述
智能UPS 電源的功能是基于硬件電路設(shè)計(jì),利用軟件控制相應(yīng)模塊來(lái)實(shí)現(xiàn)。如圖4 所示,軟件系統(tǒng)的主要功能為:
圖4 軟件功能說(shuō)明圖
(1) 當(dāng)市電正常供電時(shí), 軟件系統(tǒng)通過(guò)獲取電池組信息來(lái)判斷是否對(duì)電池組充電,并監(jiān)控電池組電壓和溫度,確保UPS 電源的正常工作。
(2) 當(dāng)市電對(duì)電池組充電時(shí), 中斷系統(tǒng)實(shí)時(shí)監(jiān)測(cè)充電電流,出現(xiàn)異常時(shí)發(fā)出報(bào)警并停止充電以保護(hù)電池組。
(3) 當(dāng)市電掉電時(shí), 軟件系統(tǒng)控制主控芯片迅速給出相應(yīng)控制信號(hào),切換到電池組供電模式。
(4) 當(dāng)UPS 電源工作在電池組供電模式時(shí),中斷系統(tǒng)實(shí)時(shí)監(jiān)控放電結(jié)束信號(hào)和電池組電壓,當(dāng)電池組電能耗盡時(shí),停止電池組供電。
(5) 當(dāng)電池組電壓過(guò)低或電池組溫度異常時(shí),軟件系統(tǒng)發(fā)出報(bào)警指示, 并且強(qiáng)制關(guān)閉UPS 系統(tǒng),確保系統(tǒng)安全。
2.2 主控芯片的初始化
C8051F320 每個(gè)引腳都可以被配置為模擬輸入或數(shù)字I/O 引腳, 被選擇作為數(shù)字I/O 的引腳還可以被配置為推挽或漏極開(kāi)路輸出。此外數(shù)字交叉開(kāi)關(guān)允許將內(nèi)部數(shù)字系統(tǒng)資源映射到端口I/O 引腳。
用戶(hù)可以通過(guò)配置端口跳過(guò)寄存器(PnSKIP)、端口交叉開(kāi)關(guān)寄存器(XBR0, XBR1)等寄存器來(lái)根據(jù)設(shè)計(jì)要求自由分配數(shù)字資源的功能引腳。
為了簡(jiǎn)化硬件電路,主控芯片采用內(nèi)部振蕩器作為時(shí)鐘基準(zhǔn)。軟件初始化時(shí)則通過(guò)配置寄存器OSCICN 來(lái)選取內(nèi)部時(shí)鐘基準(zhǔn)。
2.3 中斷系統(tǒng)設(shè)計(jì)
由于市電檢測(cè)需要保證足夠的實(shí)時(shí)性,所以采用中斷方式來(lái)監(jiān)測(cè)市電掉電信號(hào)。軟件上采用PCA模塊的輸入捕捉功能來(lái)捕獲信號(hào)的變化,從而提升系統(tǒng)的動(dòng)態(tài)性能。PCA 模塊初始化程序如下:
void PCA_Init(void)
{
PCA0MD = 0x00;
PCA0CPM0 = 0x31;
PCA0CN = 0x40;
EIE1 = 0x10;
PCA0L = 0x00;
PCA0H = 0x00;
}
技術(shù)資料出處:電源學(xué)報(bào)
2.4 AD 轉(zhuǎn)換軟件設(shè)計(jì)
C8051F320 的AD 轉(zhuǎn)換單元支持最多17 路模擬輸入,從功能上滿(mǎn)足了設(shè)計(jì)要求。其軟件分為初始化和測(cè)量?jī)刹糠?。初始化主要?fù)責(zé)選擇電壓基準(zhǔn),配置ADC 模塊工作方式等,而測(cè)量部分程序則用來(lái)獲取UPS 工作時(shí)的電池組電壓、充電電流和電池組溫度并根據(jù)報(bào)警閾值對(duì)系統(tǒng)進(jìn)行保護(hù)。
由于AD 轉(zhuǎn)換過(guò)程中會(huì)受到各種因素的干擾,因此程序中需要相應(yīng)的誤差補(bǔ)償來(lái)確保數(shù)據(jù)的準(zhǔn)確性。這些誤差補(bǔ)償參數(shù)可以通過(guò)估算得到理論值,然后根據(jù)多次試驗(yàn)的實(shí)際數(shù)據(jù)進(jìn)行修正得到合適的補(bǔ)償參數(shù)。
2.5 報(bào)警處理
當(dāng)UPS 工作在電池組供電狀態(tài)且電池組電壓較低時(shí)(小于12 V),軟件系統(tǒng)控制蜂鳴器報(bào)警,其程序如下:
if(battery_voltage12.0)
{
if(Discharge==1)
{
Buzzer_Low(2);
}
if(Discharge==1)
{
ET0=1;
TR0=1;
}
}
電池組溫度報(bào)警程序中設(shè)置了兩個(gè)溫度閾值,較低值為報(bào)警閾值(Temp_Alert),用來(lái)控制蜂鳴器報(bào)警,警示用戶(hù)。較高值為停機(jī)閾值(Temp_Stop),當(dāng)溫度高于停機(jī)閾值時(shí), 強(qiáng)制關(guān)閉系統(tǒng)以保護(hù)UPS 電源,其程序如下:
if(temp
{
Buzzer=1;
if(temp
{
Charge=0;
Discharge=0;
}
}
2.6 軟件系統(tǒng)總結(jié)
在硬件電路的基礎(chǔ)上通過(guò)對(duì)主控芯片的軟件進(jìn)行設(shè)計(jì),融合AD 轉(zhuǎn)換單元、中斷系統(tǒng)、PCA 計(jì)數(shù)器模塊等多個(gè)部分, 最終實(shí)現(xiàn)UPS 電源的功能:市電掉電后UPS 電源能持續(xù)給負(fù)載供電,并且切換時(shí)間小于10 ms;具有自保護(hù)措施,實(shí)現(xiàn)對(duì)UPS 電源的智能化管理;具備聲光預(yù)警功能,能夠直觀(guān)的提示用戶(hù)UPS 電源的工作狀況;良好的魯棒性,能較好的抵抗外界干擾。
linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論