聶巍,丁玉峰,余峰
(武漢船用電力推進(jìn)裝置研究所,武漢430064)
基于ARM的鋰電池監(jiān)控系統(tǒng)設(shè)計(jì)
聶巍,丁玉峰,余峰
(武漢船用電力推進(jìn)裝置研究所,武漢430064)
安全問(wèn)題日益成為鋰電池技術(shù)發(fā)展的關(guān)鍵難題,對(duì)鋰電池狀態(tài)進(jìn)行有效的監(jiān)控顯得尤為重要。本文設(shè)計(jì)了一種以ARM為控制核心的鋰電池監(jiān)控系統(tǒng)。詳細(xì)描述了該系統(tǒng)的主要功能、硬件結(jié)構(gòu)和軟件設(shè)計(jì)。實(shí)現(xiàn)了96路單體電池的電壓、16路電池溫度以及電池放電電流的測(cè)量,并通過(guò)CAN總線將檢測(cè)數(shù)據(jù)傳送給上位機(jī)。實(shí)踐表明該系統(tǒng)工作穩(wěn)定可靠,檢測(cè)精準(zhǔn),滿足鋰電池監(jiān)控系統(tǒng)的設(shè)計(jì)需求。
ARM鋰電池監(jiān)控系統(tǒng)
鋰電池作為動(dòng)力電池廣泛應(yīng)用于電動(dòng)汽車、電動(dòng)自行車等領(lǐng)域[1]。在這些領(lǐng)域中,通常需要對(duì)鋰電池單體作大規(guī)模的串聯(lián)或并聯(lián)處理,來(lái)滿足輸出功率等方面的需求,因此需要對(duì)電池組中單體電池狀態(tài)進(jìn)行精確檢測(cè),來(lái)判斷電池組狀態(tài),保證電池組的正常工作。本文以96節(jié)串聯(lián)鋰電池組為研究對(duì)象,針對(duì)電池組的檢測(cè)與保護(hù)設(shè)計(jì)了一種鋰電池監(jiān)控系統(tǒng)。根據(jù)鋰電池監(jiān)控系統(tǒng)所要達(dá)到的控制功能,本文以LPC2378微控制器為控制核心,基于μc/OS-Ⅱ系統(tǒng)進(jìn)行軟件設(shè)計(jì)。
1.1系統(tǒng)功能
本文設(shè)計(jì)的鋰電池監(jiān)控系統(tǒng)主要實(shí)現(xiàn)了以下四個(gè)功能:數(shù)據(jù)采集、數(shù)據(jù)存儲(chǔ)、上位機(jī)通訊、電池組故障保護(hù)。其中:
數(shù)據(jù)采集:1)共96路電池電壓采集;2)共16路電池溫度采集;3)電池放電電流采集。
數(shù)據(jù)存儲(chǔ):1)定時(shí)對(duì)所有采集數(shù)據(jù)進(jìn)行存儲(chǔ);2)對(duì)電池組狀態(tài)、監(jiān)控系統(tǒng)狀態(tài)進(jìn)行存儲(chǔ);3)對(duì)上位機(jī)所發(fā)指令等通訊信息進(jìn)行存儲(chǔ)。
上位機(jī)通訊:通過(guò)CAN總線將所采集數(shù)據(jù)、電池組及監(jiān)控系統(tǒng)狀態(tài)等信息發(fā)送給上位機(jī)。
電池組故障保護(hù):1)電池欠壓故障保護(hù);2)電池過(guò)流故障保護(hù);3)電池過(guò)溫故障保護(hù);4)電池防充電保護(hù)。
1.2硬件方案設(shè)計(jì)
監(jiān)控系統(tǒng)的核心是嵌入式微控制器,32位的ARM微控制器是嵌入式控制器的主流。為了滿足監(jiān)控系統(tǒng)的功能需求和今后擴(kuò)展系統(tǒng)的要求,選用恩智浦公司的LPC2378作為本系統(tǒng)的微控制器。LPC2378包含了10/100Ethernet MAC、USB 2.0全速接口、4個(gè)UART、2路CAN通道、2個(gè)SPI接口等,可在高達(dá)72 MHz的工作頻率下運(yùn)行,512KB的片內(nèi)FLASH程序存儲(chǔ)器,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個(gè)12位ADC、1個(gè)精準(zhǔn)電壓基準(zhǔn)。每個(gè)LTC6803能夠在輸入共模電壓高達(dá)60V的情況下測(cè)量多達(dá)l2個(gè)串接電池的電壓,2路外接溫度傳感器電壓,可用13 ms完成一個(gè)系統(tǒng)中所有電池的測(cè)量,最大總測(cè)量誤差為0.25%[3]。本系統(tǒng)中采用8個(gè)LTC6803串聯(lián)使用,主控制器通過(guò)SPI總線控制LTC6803啟動(dòng)電壓溫度采集,并通過(guò)總線傳回采集數(shù)據(jù)。
在控制板上,擴(kuò)展了64MB的FLASHROM作為存儲(chǔ)單元,用來(lái)存儲(chǔ)電池?cái)?shù)據(jù)、狀態(tài)和通訊指令等信息。系統(tǒng)中通過(guò)信號(hào)調(diào)理電路將0~10 A的電流信號(hào)轉(zhuǎn)換為0~3V的電壓信號(hào),然后輸出到LPC2378的AD采集接口。系統(tǒng)所需的CAN通訊信號(hào)通過(guò)高速CAN隔離收發(fā)器CTM1050進(jìn)行轉(zhuǎn)換,該芯片內(nèi)部集成了所有必需的CAN隔離及CAN收、發(fā)器件,滿足系統(tǒng)與上位機(jī)通訊需求。在放電回路中,串連一個(gè)大功率MOS管,用于控制放電回路的開(kāi)通與關(guān)斷。
2.1嵌入式操作系統(tǒng)設(shè)計(jì)
長(zhǎng)期以來(lái),嵌入式系統(tǒng)在工業(yè)、電信、航空及軍事領(lǐng)域得到了廣泛的應(yīng)用。本系統(tǒng)從系統(tǒng)實(shí)時(shí)性、多線程應(yīng)用的要求出發(fā),基于μc/OS-Ⅱ嵌入式操作系統(tǒng)開(kāi)發(fā)鋰電池監(jiān)控系統(tǒng)控制軟件。分為μc/OS-Ⅱ嵌入式操作系統(tǒng)層,電池監(jiān)控應(yīng)用層以及硬件驅(qū)動(dòng)層。硬件驅(qū)動(dòng)層包括AD驅(qū)動(dòng),SPI驅(qū)動(dòng),定時(shí)器驅(qū)動(dòng),CAN驅(qū)動(dòng)和LTC6803驅(qū)動(dòng)等。硬件驅(qū)動(dòng)層提供硬件初始化函數(shù)、中斷處理和對(duì)外接口。電池監(jiān)控應(yīng)用層用于實(shí)現(xiàn)系統(tǒng)需求,多任務(wù)模式。
通過(guò)對(duì)系統(tǒng)功能分析,將軟件主要?jiǎng)澐譃?個(gè)任務(wù)。分別是:
T1:CAN通訊任務(wù),優(yōu)先級(jí)最高。用于與上位機(jī)通訊。
T2:電池監(jiān)控任務(wù),優(yōu)先級(jí)低于T1。對(duì)電池模塊數(shù)據(jù)進(jìn)行采樣,進(jìn)行電池狀態(tài)判斷,并處理。
T3:數(shù)據(jù)存儲(chǔ)任務(wù),優(yōu)先級(jí)最低。對(duì)電池?cái)?shù)據(jù)及狀態(tài)進(jìn)行存儲(chǔ)。
軟件基本結(jié)構(gòu)圖如圖2所示。

圖2 軟件基本結(jié)構(gòu)圖
任務(wù)T1-T3作為3個(gè)獨(dú)立模塊,由操作系統(tǒng)調(diào)度程序進(jìn)行調(diào)度。
2.2驅(qū)動(dòng)程序設(shè)計(jì)
硬件驅(qū)動(dòng)層包括AD驅(qū)動(dòng),SPI驅(qū)動(dòng),定時(shí)器驅(qū)動(dòng),CAN驅(qū)動(dòng)和LTC6803驅(qū)動(dòng)等。其中除LTC6803驅(qū)動(dòng)外,都有官方例程可以借鑒,減少了開(kāi)發(fā)任務(wù)量。LTC6803驅(qū)動(dòng)程序遵循數(shù)據(jù)手冊(cè)描述,上電后,通過(guò)SPI總線對(duì)LTC6803進(jìn)行初始化配置,在采集電壓或溫度時(shí),先發(fā)送啟動(dòng)電池電壓ADC轉(zhuǎn)換指令,轉(zhuǎn)換約在12 ms后完成,然后讀電池電壓寄存器,獲取采集結(jié)果。其中啟動(dòng)電池電壓ADC轉(zhuǎn)換按如下流程進(jìn)行。
1)將CSBI拉至低電平;
2)發(fā)送STCVAD命令字節(jié)和PEC(堆棧中的所有器件同時(shí)啟動(dòng)ADC轉(zhuǎn)換);
3)將底部器件的SDO輸出拉至低電平并持續(xù)約12 ms的時(shí)間;
4)SDO輸出以1 kHz頻率跳轉(zhuǎn),指示菊鏈中的所有器件ADC轉(zhuǎn)換均完成;
5)將CSBI拉至高電平以退出輪詢狀態(tài)。
對(duì)采集結(jié)果進(jìn)行處理,ADC輸出一個(gè)帶0X200(十進(jìn)制為512)偏移的12位代碼。輸入電壓可以按下式計(jì)算:

式中的DOUT是一個(gè)十進(jìn)制整數(shù)。
2.3應(yīng)用程序設(shè)計(jì)
在應(yīng)用程序中,根據(jù)系統(tǒng)的功能,本系統(tǒng)主要編寫了以下程序:
1)數(shù)據(jù)采樣處理程序:為了保證電壓溫度及電流的采樣精度,除了硬件濾波外,軟件采用多次采樣后去除最大值和最小值,然后進(jìn)行均值的方法進(jìn)行軟件濾波,將濾波后的數(shù)據(jù)與門限值進(jìn)行比較,判斷電池是否工作于正常狀態(tài);
2)數(shù)據(jù)存儲(chǔ)程序:將每次采集的數(shù)據(jù)以及電池狀態(tài),按時(shí)間順序存儲(chǔ)在FLASHROM中,當(dāng)數(shù)據(jù)容量超過(guò)存儲(chǔ)空間時(shí),刪除最先保存的采集數(shù)據(jù);對(duì)與上位機(jī)通訊過(guò)程中產(chǎn)生的指令進(jìn)行存儲(chǔ),進(jìn)行系統(tǒng)操作記錄;
3)CAN指令處理程序:根據(jù)上位機(jī)所發(fā)指令,對(duì)監(jiān)控系統(tǒng)進(jìn)行相應(yīng)的操作,包括:上傳采集數(shù)據(jù)、電池狀態(tài)、系統(tǒng)狀態(tài),開(kāi)通、關(guān)斷放電回路等;
4)故障報(bào)警及保護(hù)程序:根據(jù)采集的數(shù)據(jù),對(duì)電池狀態(tài)進(jìn)行判斷,當(dāng)電池電壓過(guò)高、過(guò)低,電池溫度過(guò)高,放電電流過(guò)大等情況發(fā)生時(shí),立即向上位機(jī)報(bào)送故障信息,并可斷開(kāi)放電回路,保護(hù)電池。
采用VB開(kāi)發(fā)的上位機(jī)對(duì)監(jiān)控系統(tǒng)所采集的數(shù)據(jù)進(jìn)行讀取,得到檢測(cè)數(shù)據(jù)如圖3所示。界面中反映了所有電池電壓和溫度、放電回路電流,通過(guò)讀狀態(tài)顯示出系統(tǒng)和電池的狀態(tài)。

圖3 上位機(jī)界面
為了了解監(jiān)控系統(tǒng)的電壓采樣精度,對(duì)一個(gè)測(cè)量通道進(jìn)行電壓檢測(cè)試驗(yàn),將監(jiān)控系統(tǒng)測(cè)量值與萬(wàn)用表測(cè)量值進(jìn)行比較,得到數(shù)據(jù)如表1所示。可以得出在實(shí)際電壓為0.49V時(shí),測(cè)量誤差最大為0.61%,略高于手冊(cè)上0.25%的誤差,隨著電壓的升高誤差逐漸減小,但都在10 mV以內(nèi)。經(jīng)過(guò)多次試驗(yàn),發(fā)現(xiàn)引起誤差的主要原因在于LTC6803的測(cè)量電壓基準(zhǔn)偏差導(dǎo)致,手冊(cè)標(biāo)稱值為3.065V,實(shí)際測(cè)量得到范圍為3.055V到3.075V,保證此基準(zhǔn)電壓的準(zhǔn)確,是提高LTC6803測(cè)量精度的關(guān)鍵,在設(shè)計(jì)過(guò)程中需重點(diǎn)關(guān)注。

表1 鋰電監(jiān)控系統(tǒng)電壓測(cè)試
本文采用恩智浦公司的LPC2378芯片和Linear公司的LTC6803芯片設(shè)計(jì)了一種鋰電池監(jiān)控系統(tǒng),該系統(tǒng)能夠測(cè)量96路單體電池的電壓、16路電池溫度以及電池放電電流,并通過(guò)CAN總線將檢測(cè)數(shù)據(jù)傳送給上位機(jī)。經(jīng)過(guò)實(shí)際測(cè)試,該監(jiān)控系統(tǒng)具有電壓檢測(cè)±10 mV精度,系統(tǒng)工作穩(wěn)定可靠,具有廣泛的應(yīng)用價(jià)值。
[1]祝斌.動(dòng)力電池技術(shù)與應(yīng)用[J].船電技術(shù),2015,35(4):30-34.
[2]周立功.ARM微控制器基礎(chǔ)與實(shí)戰(zhàn)(第2版)[M].北京:北京航空航天大學(xué)出版社,2005.
[3]郭建成,楊繼承,曹廣永.LTC6803-3在鋰電檢測(cè)系統(tǒng)中的應(yīng)用[J].中國(guó)新通信.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
聶巍(1989-),碩士。研究方向:控制科學(xué)與工程。