4.1開發平臺 由于本系統采用的是TI公司的MSP430系列的單片機,因此開發平臺選用IAR Embedded Workbench for Msp430 3.42A這個版本。該軟件是一種增強型一體化嵌入式集成開發環境,其中完全集成了開發嵌入式所需的文件編輯、項目管理、編譯、鏈接和調試工具。該軟件除了可以進行純軟件仿真,也可以結合仿真器實現在線仿真調試。 4.2軟件模塊劃分 下位機軟件系統主要由定時中斷數據采集處理模塊、外部中斷短路保護模塊、充放電保護模塊和均衡保護模塊等構成。軟件主程序流程圖如圖4.1所示。 4.3數據采集模塊 數據采集處理模塊是整個檢測系統的核心,通過在主程序中設置定時器1的定時時間,使其產生中斷,在中斷程序里完成對電壓、電流和溫度等參數的采集和處理。該模塊包括電壓,電流及溫度的采集以及處理。這些數據的精確度對系統的性能有著決定性的作用。 4.3.1電壓采集模塊系統需要對16節鋰電池模組的單節電池電壓進行采集,由于MSP430F233只有8路A/D,同時還要對4路溫度及1路電流采樣,因此,系統采用分時復用的方式用一路A/D實現對16節鋰電池進行電壓采集,復用方式采用4片CD4052實現。程序中建立兩個枚舉類型的數據來對CD4052進行選通,每次選通時,利用CD4052的差分功能可得到單節的電池電壓。這兩個枚舉類型為: enum ADD_STATA{S0,S1,S2,S3} enum CS_STATA{CS1,CS2,CS3,CS4} 其中ADD_STATA用于對單片的CD4052的四路通路進行選擇,CS_STATA對CD4052進行片選,在程序中對應這兩種枚舉數據類型的變量分別為ADD_A_B和CS_SEL,電壓的采樣利用定時器1中斷。定時器每計數200下采樣一次,每路信號采樣10次。 系統晶振頻率為32K,因此,每次采樣的采樣周期為:t=200/32k=0.006s 4.3.2電流及溫度采集模塊 系統電流的采集通過檢測高端電流檢測芯片MAX4081上RS-和RS+兩端的電壓獲得。溫度的采集通過檢測熱敏電阻兩端的電壓獲得。電流和溫度信號的采集共占用5路A/D通道。 4.4充放電管理模塊 4.4.1充電管理模塊 鋰電池模組在正常情況下充電回路要保持一旦接通就充電,但在充電過程中如果單體電壓的最大值大于4.2V時,啟動定時器2,定時一段時間后進入中斷,在中斷內再次對該過充信號進行檢測,如果仍然超過設定值,就需要啟動充電保護,斷開充電回路。但由于某種原因(比如放電)而使最大值下降到4.0V且持續一定時間要接通充電回路,以方便下次充電。為實現此功能定義了幾個標志位:charge_guard, chage_f_guard, charge_guarded,分別代表單體電池電壓最大值大于4.2V標志,單體電池電壓最大值小于4.0V標志和進入充電保護標志。具體實現方式為先根據電池最大值決定是否啟動定時器中斷,流程圖如4.2所示: 一旦啟動了定時器,當定時器中斷發生時,進行充電保護的判斷,流程圖如圖4.3所示: 4.4.2放電管理模塊系統的放電管理模塊與充電管理模塊類似,只是充電保護及恢復通過對電壓的最小值的判斷來實現。在放電過程中如果單體電壓的最小值小于2.7V,啟動定時器2,定時一段時間后進入中斷,在中斷內再次對該過放信號進行檢測,如果仍然超過設定值,斷開放電回路。但由于某種原因(比如充電)而使最小大值上升到2.9V且持續一定時間要接通放電回路,以方便下次放電。為實現此功能定義了幾個標志位:discharge_guard,dischage_f_guard,discharge_guarded,分別代表單體電池電壓最小值小于2.7V標志,單體電池電壓最小值大于2.9V標志和進入放電保護標志。具體實現方式為先根據電池最小值決定是否啟動定時器中斷,流程圖如圖4.4所示: 如果啟動了定時器,當定時器中斷發生時進行放電保護判斷,流程圖如圖4.5所示: 4.4.3電壓均衡處理模塊 在電池充電過程中,由于鋰電池的個體差異,可能會造成某節電池產生過充,為了避免過充造成電池損壞,需要在過充時對電池旁路。從而使每節電池電壓達到均衡。均衡方法為在滿充電態時,也就是當檢測到某節電池達到4.2V時,開始啟動均衡,首先計算16節鋰電池的平均電壓,然后將各節電池的單體電壓與平均電壓相減,如果其中某節電池的電壓與平均電壓的差值大于0.2V,便將該電池旁路,啟動均衡。 4.5短路保護 系統的短路需要很高的實時性,因此該保護通過硬件中斷的方式實現,當硬件檢測到短路發生后產生硬件中斷,主控CPU立即斷開負載回路,而當短路解除時,CPU會接收到硬件電路發送的解除保護信號,系統恢復正常。 4.6軟件抗干擾 整個系統穩定工作的前提是電壓采樣值能夠精確,但是由于硬件電路本身結構所限,每次采集的數據會有一定誤差,為了降低采集誤差給系統造成性能的降低,加入了軟件抗干擾措施。具體方式是對每一路信號都連續進行10次采樣,然后去掉其中的最大值和最小值,對剩下的8個數據求平均值,最終得到有效的采樣值。試驗證明該方法可使采樣誤差從10毫伏降低到5毫伏以內,從而提高了系統的穩定性。 4.7小結 本章介紹了鋰離子電池組監控系統的下位機軟件系統設計,主要包括了信號采集、短路保護、均衡保護、充放電保護等模塊以及系統的軟件抗干擾措施,整個軟件系統已和硬件系統聯調成功,各項功能均已達到預期效果。 |