聶巍,丁玉峰,余峰
(武漢船用電力推進(jìn)裝置研究所,武漢430064)
基于ARM的鋰電池監(jiān)控系統(tǒng)設(shè)計
聶巍,丁玉峰,余峰
(武漢船用電力推進(jìn)裝置研究所,武漢430064)
安全問題日益成為鋰電池技術(shù)發(fā)展的關(guān)鍵難題,對鋰電池狀態(tài)進(jìn)行有效的監(jiān)控顯得尤為重要。本文設(shè)計了一種以ARM為控制核心的鋰電池監(jiān)控系統(tǒng)。詳細(xì)描述了該系統(tǒng)的主要功能、硬件結(jié)構(gòu)和軟件設(shè)計。實現(xiàn)了96路單體電池的電壓、16路電池溫度以及電池放電電流的測量,并通過CAN總線將檢測數(shù)據(jù)傳送給上位機(jī)。實踐表明該系統(tǒng)工作穩(wěn)定可靠,檢測精準(zhǔn),滿足鋰電池監(jiān)控系統(tǒng)的設(shè)計需求。
ARM鋰電池監(jiān)控系統(tǒng)
鋰電池作為動力電池廣泛應(yīng)用于電動汽車、電動自行車等領(lǐng)域[1]。在這些領(lǐng)域中,通常需要對鋰電池單體作大規(guī)模的串聯(lián)或并聯(lián)處理,來滿足輸出功率等方面的需求,因此需要對電池組中單體電池狀態(tài)進(jìn)行精確檢測,來判斷電池組狀態(tài),保證電池組的正常工作。本文以96節(jié)串聯(lián)鋰電池組為研究對象,針對電池組的檢測與保護(hù)設(shè)計了一種鋰電池監(jiān)控系統(tǒng)。根據(jù)鋰電池監(jiān)控系統(tǒng)所要達(dá)到的控制功能,本文以LPC2378微控制器為控制核心,基于μc/OS-Ⅱ系統(tǒng)進(jìn)行軟件設(shè)計。
1.1系統(tǒng)功能
本文設(shè)計的鋰電池監(jiān)控系統(tǒng)主要實現(xiàn)了以下四個功能:數(shù)據(jù)采集、數(shù)據(jù)存儲、上位機(jī)通訊、電池組故障保護(hù)。其中:
數(shù)據(jù)采集:1)共96路電池電壓采集;2)共16路電池溫度采集;3)電池放電電流采集。
數(shù)據(jù)存儲:1)定時對所有采集數(shù)據(jù)進(jìn)行存儲;2)對電池組狀態(tài)、監(jiān)控系統(tǒng)狀態(tài)進(jìn)行存儲;3)對上位機(jī)所發(fā)指令等通訊信息進(jìn)行存儲。
上位機(jī)通訊:通過CAN總線將所采集數(shù)據(jù)、電池組及監(jiān)控系統(tǒng)狀態(tài)等信息發(fā)送給上位機(jī)。
電池組故障保護(hù):1)電池欠壓故障保護(hù);2)電池過流故障保護(hù);3)電池過溫故障保護(hù);4)電池防充電保護(hù)。
1.2硬件方案設(shè)計
監(jiān)控系統(tǒng)的核心是嵌入式微控制器,32位的ARM微控制器是嵌入式控制器的主流。為了滿足監(jiān)控系統(tǒng)的功能需求和今后擴(kuò)展系統(tǒng)的要求,選用恩智浦公司的LPC2378作為本系統(tǒng)的微控制器。LPC2378包含了10/100Ethernet MAC、USB 2.0全速接口、4個UART、2路CAN通道、2個SPI接口等,可在高達(dá)72 MHz的工作頻率下運(yùn)行,512KB的片內(nèi)FLASH程序存儲器,32KB的SRAM[2]。監(jiān)控系統(tǒng)以LPC2378為核心,硬件系統(tǒng)結(jié)構(gòu)圖如圖1所示。
圖1 硬件系統(tǒng)結(jié)構(gòu)圖
數(shù)據(jù)采集電路采用Linear公司的電池監(jiān)視IC LTC6803,它內(nèi)置1個12位ADC、1個精準(zhǔn)電壓基準(zhǔn)。每個LTC6803能夠在輸入共模電壓高達(dá)60V的情況下測量多達(dá)l2個串接電池的電壓,2路外接溫度傳感器電壓,可用13 ms完成一個系統(tǒng)中所有電池的測量,最大總測量誤差為0.25%[3]。本系統(tǒng)中采用8個LTC6803串聯(lián)使用,主控制器通過SPI總線控制LTC6803啟動電壓溫度采集,并通過總線傳回采集數(shù)據(jù)。
在控制板上,擴(kuò)展了64MB的FLASHROM作為存儲單元,用來存儲電池數(shù)據(jù)、狀態(tài)和通訊指令等信息。系統(tǒng)中通過信號調(diào)理電路將0~10 A的電流信號轉(zhuǎn)換為0~3V的電壓信號,然后輸出到LPC2378的AD采集接口。系統(tǒng)所需的CAN通訊信號通過高速CAN隔離收發(fā)器CTM1050進(jìn)行轉(zhuǎn)換,該芯片內(nèi)部集成了所有必需的CAN隔離及CAN收、發(fā)器件,滿足系統(tǒng)與上位機(jī)通訊需求。在放電回路中,串連一個大功率MOS管,用于控制放電回路的開通與關(guān)斷。
2.1嵌入式操作系統(tǒng)設(shè)計
長期以來,嵌入式系統(tǒng)在工業(yè)、電信、航空及軍事領(lǐng)域得到了廣泛的應(yīng)用。本系統(tǒng)從系統(tǒng)實時性、多線程應(yīng)用的要求出發(fā),基于μc/OS-Ⅱ嵌入式操作系統(tǒng)開發(fā)鋰電池監(jiān)控系統(tǒng)控制軟件。分為μc/OS-Ⅱ嵌入式操作系統(tǒng)層,電池監(jiān)控應(yīng)用層以及硬件驅(qū)動層。硬件驅(qū)動層包括AD驅(qū)動,SPI驅(qū)動,定時器驅(qū)動,CAN驅(qū)動和LTC6803驅(qū)動等。硬件驅(qū)動層提供硬件初始化函數(shù)、中斷處理和對外接口。電池監(jiān)控應(yīng)用層用于實現(xiàn)系統(tǒng)需求,多任務(wù)模式。
通過對系統(tǒng)功能分析,將軟件主要劃分為3個任務(wù)。分別是:
T1:CAN通訊任務(wù),優(yōu)先級最高。用于與上位機(jī)通訊。
T2:電池監(jiān)控任務(wù),優(yōu)先級低于T1。對電池模塊數(shù)據(jù)進(jìn)行采樣,進(jìn)行電池狀態(tài)判斷,并處理。
T3:數(shù)據(jù)存儲任務(wù),優(yōu)先級最低。對電池數(shù)據(jù)及狀態(tài)進(jìn)行存儲。
軟件基本結(jié)構(gòu)圖如圖2所示。
圖2 軟件基本結(jié)構(gòu)圖
任務(wù)T1-T3作為3個獨(dú)立模塊,由操作系統(tǒng)調(diào)度程序進(jìn)行調(diào)度。
2.2驅(qū)動程序設(shè)計
硬件驅(qū)動層包括AD驅(qū)動,SPI驅(qū)動,定時器驅(qū)動,CAN驅(qū)動和LTC6803驅(qū)動等。其中除LTC6803驅(qū)動外,都有官方例程可以借鑒,減少了開發(fā)任務(wù)量。LTC6803驅(qū)動程序遵循數(shù)據(jù)手冊描述,上電后,通過SPI總線對LTC6803進(jìn)行初始化配置,在采集電壓或溫度時,先發(fā)送啟動電池電壓ADC轉(zhuǎn)換指令,轉(zhuǎn)換約在12 ms后完成,然后讀電池電壓寄存器,獲取采集結(jié)果。其中啟動電池電壓ADC轉(zhuǎn)換按如下流程進(jìn)行。
1)將CSBI拉至低電平;
2)發(fā)送STCVAD命令字節(jié)和PEC(堆棧中的所有器件同時啟動ADC轉(zhuǎn)換);
3)將底部器件的SDO輸出拉至低電平并持續(xù)約12 ms的時間;
4)SDO輸出以1 kHz頻率跳轉(zhuǎn),指示菊鏈中的所有器件ADC轉(zhuǎn)換均完成;
5)將CSBI拉至高電平以退出輪詢狀態(tài)。
對采集結(jié)果進(jìn)行處理,ADC輸出一個帶0X200(十進(jìn)制為512)偏移的12位代碼。輸入電壓可以按下式計算:
式中的DOUT是一個十進(jìn)制整數(shù)。
2.3應(yīng)用程序設(shè)計
在應(yīng)用程序中,根據(jù)系統(tǒng)的功能,本系統(tǒng)主要編寫了以下程序:
1)數(shù)據(jù)采樣處理程序:為了保證電壓溫度及電流的采樣精度,除了硬件濾波外,軟件采用多次采樣后去除最大值和最小值,然后進(jìn)行均值的方法進(jìn)行軟件濾波,將濾波后的數(shù)據(jù)與門限值進(jìn)行比較,判斷電池是否工作于正常狀態(tài);
2)數(shù)據(jù)存儲程序:將每次采集的數(shù)據(jù)以及電池狀態(tài),按時間順序存儲在FLASHROM中,當(dāng)數(shù)據(jù)容量超過存儲空間時,刪除最先保存的采集數(shù)據(jù);對與上位機(jī)通訊過程中產(chǎn)生的指令進(jìn)行存儲,進(jìn)行系統(tǒng)操作記錄;
3)CAN指令處理程序:根據(jù)上位機(jī)所發(fā)指令,對監(jiān)控系統(tǒng)進(jìn)行相應(yīng)的操作,包括:上傳采集數(shù)據(jù)、電池狀態(tài)、系統(tǒng)狀態(tài),開通、關(guān)斷放電回路等;
4)故障報警及保護(hù)程序:根據(jù)采集的數(shù)據(jù),對電池狀態(tài)進(jìn)行判斷,當(dāng)電池電壓過高、過低,電池溫度過高,放電電流過大等情況發(fā)生時,立即向上位機(jī)報送故障信息,并可斷開放電回路,保護(hù)電池。
采用VB開發(fā)的上位機(jī)對監(jiān)控系統(tǒng)所采集的數(shù)據(jù)進(jìn)行讀取,得到檢測數(shù)據(jù)如圖3所示。界面中反映了所有電池電壓和溫度、放電回路電流,通過讀狀態(tài)顯示出系統(tǒng)和電池的狀態(tài)。
圖3 上位機(jī)界面
為了了解監(jiān)控系統(tǒng)的電壓采樣精度,對一個測量通道進(jìn)行電壓檢測試驗,將監(jiān)控系統(tǒng)測量值與萬用表測量值進(jìn)行比較,得到數(shù)據(jù)如表1所示。可以得出在實際電壓為0.49V時,測量誤差最大為0.61%,略高于手冊上0.25%的誤差,隨著電壓的升高誤差逐漸減小,但都在10 mV以內(nèi)。經(jīng)過多次試驗,發(fā)現(xiàn)引起誤差的主要原因在于LTC6803的測量電壓基準(zhǔn)偏差導(dǎo)致,手冊標(biāo)稱值為3.065V,實際測量得到范圍為3.055V到3.075V,保證此基準(zhǔn)電壓的準(zhǔn)確,是提高LTC6803測量精度的關(guān)鍵,在設(shè)計過程中需重點(diǎn)關(guān)注。
表1 鋰電監(jiān)控系統(tǒng)電壓測試
本文采用恩智浦公司的LPC2378芯片和Linear公司的LTC6803芯片設(shè)計了一種鋰電池監(jiān)控系統(tǒng),該系統(tǒng)能夠測量96路單體電池的電壓、16路電池溫度以及電池放電電流,并通過CAN總線將檢測數(shù)據(jù)傳送給上位機(jī)。經(jīng)過實際測試,該監(jiān)控系統(tǒng)具有電壓檢測±10 mV精度,系統(tǒng)工作穩(wěn)定可靠,具有廣泛的應(yīng)用價值。
[1]祝斌.動力電池技術(shù)與應(yīng)用[J].船電技術(shù),2015,35(4):30-34.
[2]周立功.ARM微控制器基礎(chǔ)與實戰(zhàn)(第2版)[M].北京:北京航空航天大學(xué)出版社,2005.
[3]郭建成,楊繼承,曹廣永.LTC6803-3在鋰電檢測系統(tǒng)中的應(yīng)用[J].中國新通信.2013,14:84-85.
Design of Lithium Batteriessupervisorysystem with ARM
Nie Wei,Ding Yufeng,Yu Feng
(Wuhan Institute of Marine Electric Propulsion,Wuhan 430064,China)
Because thesecurity becomes the key question of lithium batteries technology development,it is particularly important to monitor effectively lithium batteries operation.In this paper,a lithium batteriessupervisorysystem with ARM is designed,and main function,hardwarestructure andsoftware design method for thesupervisorysystem are presented.It can measure 96 cellsVoltage,16 cells temperature and batteries discharging current,and transmit the testing result to thesupervisory controlsystem through the CAN bus.Testsshow that thesystem isstable,reliable and accurate,and can meet the demands of lithium batterysupervisorysystem.
ARM;lithium battery;supervisorysystem
TM911.14
A
1003-4862(2015)10-0070-04
2015-03-14
聶?。?989-),碩士。研究方向:控制科學(xué)與工程。