李云紅,田冀達,陳航
(西安工程大學電子信息學院,西安 710048)
RT-Thread操作系統(tǒng)的電池管理系統(tǒng)設計
李云紅,田冀達,陳航
(西安工程大學電子信息學院,西安 710048)
為了保證電池在充放電過程中的安全,針對目前電池管理系統(tǒng)存在可移植性差、不便于功能擴展等問題,提出一種智能電池管理系統(tǒng)。系統(tǒng)采用國產(chǎn)嵌入式實時操作系統(tǒng)RT-Thread,并選用STM32作為主控制器芯片,使整個系統(tǒng)的監(jiān)控、調(diào)試更加方便。測試結果表明,該系統(tǒng)可以實時監(jiān)控電池的充放電過程,預留的接口可以方便以后做功能擴展。
RT-Thread;STM32;電池管理系統(tǒng)
電池管理系統(tǒng),主要借助微處理器來解決不同電池由于制作工藝、充電電壓和電池的容量不同引起的充電問題。該系統(tǒng)可根據(jù)電池種類的需要產(chǎn)生充電電壓,利用高分辨率的A/D轉換器實時采集和監(jiān)控充電過程中電池的狀態(tài),進而實現(xiàn)多種電池充電過程的智能化管理。電池管理系統(tǒng)能夠有效保護電池并延長電池壽命,提高充電效率和使用安全性,并且可以實時監(jiān)測電池的狀態(tài)[1]。
目前,電池管理系統(tǒng)主要存在的問題:一是管理系統(tǒng)的可移植性較差;二是不方便對其進行功能擴展。辛喆[2]等人采用單片機進行控制,實現(xiàn)了對電源電壓、電流和溫度的實時監(jiān)控,但系統(tǒng)的可移植性有待提高。蔣忠偉[1]等人通過向串口發(fā)送指令的方法對系統(tǒng)進行控制,但是系統(tǒng)對后續(xù)功能的擴展不完善。針對以上問題,本文采用國產(chǎn)嵌入式實時操作系統(tǒng)RT-Thread,選用STM32F103作為主控制器芯片,能夠在很短的周期內(nèi)開發(fā)出可應用于多種場合、功能完備的智能電池管理系統(tǒng)。另外,該系統(tǒng)也便于操作系統(tǒng)的移植,能夠輕松實現(xiàn)串口通信、實時數(shù)據(jù)記錄和監(jiān)測,實現(xiàn)充電器的智能化。
簡而言之,智能電池管理系統(tǒng)應該具有如下功能:精確提供(或者顯示)電池狀態(tài)數(shù)據(jù)(包括電池當前的端電壓、實時溫度、充電電流),提供必要的保護與報警功能,在充電過程中有保護報警措施(如過壓保護、超溫報警等)。
1.1 控制器芯片選擇
本系統(tǒng)采用STM32F103作為主控制器芯片,STM32F103有20KB內(nèi)存、72MHz主頻、各種外設支持[4-5],其控制器的固件庫具備通用性,比較容易切換到其他的產(chǎn)品線。STM32F103擁有1~3個ADC,這些ADC可以獨立使用,也可以使用雙重模式。STM32F103的ADC是12位逐次逼近型的模擬/數(shù)字轉換器,有18個通道,可測量16個外部和2個內(nèi)部信號源[6];各通道的A/D轉換可以單次、連續(xù)、掃描或間斷模式執(zhí)行,ADC的結果可以左對齊或右對齊方式存儲在16位數(shù)據(jù)寄存器中。
1.2 系統(tǒng)硬件設計
為了實現(xiàn)電池的充電管理和控制功能,系統(tǒng)包括電池電壓和電流信號采集電路、充電環(huán)境溫度檢測電路、電池充放電控制電路。其硬件框圖如圖1所示。

圖1 系統(tǒng)硬件框圖
圖1中,電池的電壓、電流和溫度通過其ADC接口和傳感器將模擬量轉換為數(shù)字量,STM32F103控制芯片再根據(jù)采集到的數(shù)據(jù)和預設值進行比較,若超過限定值,則停止PWM,從而實現(xiàn)對電池的充放電控制。電池的充放電及工作參數(shù)采集系統(tǒng)如圖2所示。
圖2中,VBAT1、IBAT1、TBAT1分別為電池的采集電壓、電流、溫度參數(shù)的輸出信號,通過調(diào)節(jié)PWM1和PWM2占空比來進行充放電的控制,直至電池完全充滿。
電池的溫度檢測使用DS18B20數(shù)字溫度傳感器。DS18B20是一種具有單總線接口的數(shù)字溫度傳感器,具有體積小、功耗低和接口簡單等特點,特別適合作為本系統(tǒng)的溫度采集傳感器。

圖2 充放電及工作參數(shù)采集系統(tǒng)
電池的安全因素包括充電電流、充電電壓和充電溫度。電池最大的充電電流與電池的容量(C)相關,最大的充電電流用電池容量的數(shù)值來表示。例如,電池的容量為750 mAh,充電電流為750mA,則電池的充電電流為1C(1倍的電池容量)。在電池充電的過程中,當充電電壓超出電池典型值上限的時候就要停止充電,實現(xiàn)過充電壓保護。
電池充電時,是將電能轉化為化學能儲存起來,但并不是所有的電能都被轉化為化學能,一些化學能轉化為熱能,對電池起到了加熱的作用。如果在充電的過程中,電池持續(xù)的升溫導致電池過熱,且不能及時停止充電就會導致電池損壞。在進行溫度判定時,當電池溫度超過一定限定時,就需要停止充電。當環(huán)境溫度極低的時候,也需要采用充電溫度與環(huán)境溫度差值的方法來判定是否停止充電。
電池常用的充電方法有恒定電壓法和恒定電流法。對于采用恒定電壓法充電的電池,在充電過程中要進行相要對電池的電壓進行檢測,以便對電壓進行限制。采用恒定電流法與恒定電壓法進行充電時,其電壓和電流隨時間變化的典型曲線如圖3所示。

圖3 電流、電壓變化曲線
本系統(tǒng)采用國產(chǎn)嵌入式實時操作系統(tǒng)RT-Thread來進行電池的充放電控制。RT-Thread實時操作系統(tǒng)核心是一個高效的硬實時核心,它具備非常優(yōu)異的實時性、穩(wěn)定性、可裁減性。在 中,線程是最小的調(diào)度單位,支持256個線程優(yōu)先級[7]。當內(nèi)核進行最小配置時,內(nèi)核體積只有3KB的ROM占用、1KB的RAM占用[8]。該操作系統(tǒng)支持在ARM7TDMI、ARM Cortex-M3、ARM920T、x86等多種嵌入式平臺上的移植。操作系統(tǒng)的引入,可以加強電池充放電控制系統(tǒng)的快速性、實時性和穩(wěn)定性,增強了該電池管理系統(tǒng)的可移植性,并且方便做后續(xù)的功能擴展。
3.1 RT-Thread的finsh shell系統(tǒng)搭建
首先,將系統(tǒng)的內(nèi)核源碼進行解壓,打開其STM32F103分支的MDK工程文件。接著,向工程中添加finsh組件。finsh shell系統(tǒng)是RT-Thread操作系統(tǒng)中的命令行操作系統(tǒng),方便用戶進行調(diào)試、查看系統(tǒng)信息。要開啟finsh工程,首先要在系統(tǒng)配置文件中添加finsh的宏定義,接著指定作為調(diào)試接口的串口號,最后使console設備與相應的串口相關,其配置語句如下:

所有的配置完成之后,使用Keil MDK進行編譯,編譯通過之后再運行。如果串口打印出RT-Thread的logo和“finsh>>”字樣,則表示finsh shell系統(tǒng)搭建成功,可以進行調(diào)試工作。其串口打印的信息如圖4所示。

圖4 串口打印信息
3.2 設備注冊
在搭建好RT-Thread的finsh shell系統(tǒng)之后,需要對相應的接口和設備進行注冊。首先要完成相關I/O口的配置,并通過寫控制寄存器的方式初始化相關寄存器,然后再來定義相關設備。在RT-Thread操作系統(tǒng)中,設備被認為是一類對象,每個設備對象都由基類對象派生而來,繼承了父類對象的屬性[9]。這里,需要定義系統(tǒng)的ADC設備,設備的定義通過RT-Thread內(nèi)部結構體rt_device來完成。該結構體的主要成員如下:

RT-Thread操作系統(tǒng)的rt_device結構定義了大多數(shù)設備的結構模型。所有系統(tǒng)支持的設備驅(qū)動實現(xiàn)的過程,就是實現(xiàn)該結構體內(nèi)部接口函數(shù)的過程,這也是rt_device結構體的細節(jié)。其具體的接口函數(shù)如下:

以上init、open、close、read、write等接口函數(shù)都需要用戶進行補充和完成,通過操作以上函數(shù),便可以對設備進行相應的操作。
經(jīng)過I/O口配置和定義相應的結構體之后,系統(tǒng)的設備驅(qū)動已經(jīng)建立完畢,最后需要調(diào)用rt_device_register函數(shù)向系統(tǒng)注冊相應的設備。注冊并編譯成功之后,用命令list_device()便可查詢到該設備,效果如圖5所示。

圖5 設備查看情況
圖5中,通過串口打印出了系統(tǒng)現(xiàn)在所支持的設備。ADC屬于“Chrarcter”型設備。RT-Thread操作系統(tǒng)還支持多種類型的設備,如“Block Device”、“Network Interface”、“MTD Device”等,這樣就使得系統(tǒng)的功能擴展變得非常方便。如果要添加新的設備,用戶只要定義相應設備的結構體并進行注冊,便可完成系統(tǒng)功能的擴展。
3.3 應用軟件設計
系統(tǒng)的軟件設計主要實現(xiàn)以下幾個功能。首先,進行系統(tǒng)的初始化,然后啟動PWM,接著啟動定時器,設定系統(tǒng)的采樣時間。在充電過程中,經(jīng)過一段時間之后,系統(tǒng)便進行采樣,根據(jù)其采集到的充電電流、電壓、溫度與預設值進行判斷,過滿則判停,關閉PWM。其軟件流程圖如圖6所示。

圖6 軟件流程圖
首先,設定好判定的初始值和采樣的時間間隔,并設定每30s向串口輸出一次采樣結果。本次測試在室溫條件下進行,在3.3V的電壓下采用恒定電壓法進行充電,可以將整個系統(tǒng)通過相應串口連接至PC機,通過串口工具來調(diào)試充放電的過程,并可以觀察電池相應的狀態(tài),如圖7所示。

圖7 串口打印信息
可以看到,每到設定的時間,系統(tǒng)便會將采集到的電池的溫度、電壓、電流等數(shù)據(jù)通過串口顯示出來,這樣便實現(xiàn)了對電池充電狀態(tài)的實時監(jiān)控。前10次的采樣結果如表1所列。如表1所示,在3.3V的恒定電壓下,電池的充電電流變化基本符合采用恒定電壓法充電時電流的變化曲線。

表1數(shù)據(jù)采樣結果
繼續(xù)進行測試,電池的充電電流和溫度的變化曲線如圖8所示。電池的溫度在充電的過程中先升高,達到32℃左右的時候開始下降。電流的變化曲線則符合按照恒定電壓法充電的典型曲線,當電池的充電電流過小時,系統(tǒng)便停止充電,從而實現(xiàn)對電池的過充保護。

圖8 電流和溫度曲線
本文設計的智能電池管理系統(tǒng),選用STM32F103芯片作為主控制芯片,采用國產(chǎn)實時操作系統(tǒng)RT-Thread作為控制系統(tǒng),增強了系統(tǒng)的實時性和可擴展性,可以實現(xiàn)對電池充放電過程的監(jiān)控及保護。在以后的研究中,可以對該系統(tǒng)做出功能擴展,使其適用于更加復雜的環(huán)境。
[1]蔣忠偉,孫一鳴,胡曉吉.基于嵌入式計算平臺的智能電池系統(tǒng)的設計[J].計算機工程與設計,2011,32(6):1970-1974.
[2]辛喆,葛元月.基于單片機的純電動汽車電池管理系統(tǒng)設計[J].農(nóng)業(yè)工程學報,2014,30(12):163-169.
[3]黃正佳,袁永斌.智能電池模塊[J].電源技術,2002,26(5):379-382.
[4]曹成.嵌入式實時操作系統(tǒng)RT-Thread原理分析與應用[D].青島:山東科技大學,2011.
[5]陶杰,王欣.基于STM32F407和OV7670的低端視頻監(jiān)控系統(tǒng)[J].單片機與嵌入式系統(tǒng)應用,2014(3):60-62.
[6]張旭,亓學廣.基于STM32電力數(shù)據(jù)采集系統(tǒng)的設計[J].電子測量技術,2010,33(11):90-92.
[7]李琦,李梅.基于RT-Thread的工業(yè)遠程控制器設計[J].實驗室研究與探索,2013,32(9):61-64.
[8]司夢如.基于RT-Thread的NANDFLASH文件系統(tǒng)中間層的設計與實現(xiàn)[D].合肥:安徽大學,2012.
[9]陳俊彥,何燕.RT-Thread和QT的可視化印花機控制系統(tǒng)設計[J].單片機與嵌入式系統(tǒng)應用,2014(7):46-49.
李云紅(副教授),主要從事紅外熱像測溫技術、圖像處理、信號與信息處理技術研究。
Battery Management System Based on RT-Thread
Li Yunhong,Tian Jida,Chen Hang
(College of Electronic Information,Xi'an Polytechnic University,Xi'an 710048,China)
In order to ensure the safety of the battery during the process of charge and discharge,aiming at the existing problems of the battery management system such as no good portability and not easy to do the function expansion,the paper proposes an intelligent battery management system.The system adopts domestic embedded real-time operating system RT-Thread,and uses STM32as the main controller chip.The test results indicate that the charge and discharge process of the system can monitor the battery real-time,the reserved interface is convenient to do the function expansion.
RT-Thread;STM32;battery management system
TP302.1
A
??薛士然
2015-01-23)