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