引言
電池節能和污染正日益成為人們關注的問題。在傳統電池領域中,鉛酸電池和鎳氫電池在實際使用過程中存在一系列問題:如比容小,不適應快速充電和大電流發電或者是鎳氫電池在串聯電池組時管理問題比較多。相反,鋰電池不僅比容要好于鉛酸電池和鎳氫電池,而且還具有無記憶效應、使用壽命長和單節電芯電壓高等優點。
在礦用產品中,鋰電池逐步替代了鉛酸電池和鎳氫電池。但鋰電池在使用時也存在一個重要的問題,它在過充電或是在過放電時電池可能會發生爆炸,因此需要良好的保護電路來配合使用,這樣可以杜絕電池爆炸的問題。本文研究的就是利用STM32f103單片機和LTC6802-1芯片對鋰電池組進行管理保護。這樣可以既可以發揮鋰電池的優勢,也可以杜絕使用鋰電池產生的一些問題。
LTC6802介紹
在眾多電池管理芯片中,LTC6802性能出眾,其獨特的內部設計使其能同時檢測多達12節電池電壓,而且其簡單的外部電路配置能使我們方便的搭建系統,有利于降低成本和開發時間。
LTC6802內部有高精度的模數轉換器,位數多達12位,單個LTC6802能同時檢測12節串聯單體電池電壓,也可以測量電池組總電壓,在電池管理系統中,我們可以將多個LTC6802芯片組成鏈式電路,方便我們監測多于12節或大于60V的電池組,采用這種可堆疊式架構使得我們測量或管理1000V電池系統成為可能,利用其雙熱敏電阻輸入、板上溫度傳感器等多種渠道可以實時監測鋰電池組溫度。
LTC6802與微處理器之間的通信是由一個兼容式串行接口實現,在鏈式電路中,每個LTC6802都能通過簡單的二極管隔離實現數據通信。其SPI時序圖如圖1所示。

LTC6802有多種工作模式,如待機模式、測量模式以及監視模式;每一種模式都有其獨特的工作狀態:
待機模式:系統上電時,LTC6802默認處于待機狀態,此時,除串口和穩壓器電路外,其他電路都處在關閉狀態,這時LTC6802電流處在最小狀態。
測量模式:通過命令對寄存器CDC位進行設置,可以使LTC6802處在測量模式中,此時,對單體電池的電壓進行正常監視,通過寄存器能判斷其是否過壓或欠壓。
監視模式:LTC6802只監視處于過壓或欠壓狀態的單體電池,串口通信電路處于關閉狀態;
它廣泛應用于電動汽車和混合動力汽車、大功率可攜帶設備、備用電源、高壓數據采集系統,本文中主要將其應用在備用電源中,取得良好效果。
硬件系統的設計
在圖2中,LTC6802鏈式電路可以測量多節(12節或更多)鋰電池電芯值,通過這些電壓或溫度值,可以判斷電池是過充、過放還是過溫。STM32F103主控芯片通過自帶動SPI總線模塊從LTC6802中讀取所需要的值,利用充放電控制單元對鋰電池組進行保護,同時也可以在LCD人機界面上顯示。

圖2 硬件系統框圖
STM32F103控制單元
該款單片機是基于Cortex-M3內核設計的ARM芯片,內部集成SPI總線模塊、USB模塊、16路ADC采樣等等外設。其時鐘頻率最大可以達到72MHz,這樣的頻率可以滿足大部分場合的需要。內置512KB的高速存儲器以及64KB的SRAM,豐富的增強I/O端口和連接到APB總線的外設均使得STM32F103成為一款非常優秀的單片機。
這些豐富的外設資源,使得STM32F103系列單片機適合于多種場合:
①電機驅動和應用控制;
②醫療和手持設備;
③PC外設和GPS平臺;
④工業應用:可編程控制器、變頻器、打印機和掃描儀;
⑤警報系統、視頻系統、備用電池系統等等。
在本系統中,STM32F103單片機主要應用在電池管理系統中,也就是備用電源。STM32F103通過自身的SPI外設來設置LTC6802工作方式,通過LTC6802讀取電池組電芯電壓值、電芯溫度值,以及設置電池過壓、欠壓和過溫等報警標志,并利用這些獲得的值對電池進行充放電管理,這樣可以達到保護電池的作用。
在硬件系統框圖中,我們可以看到系統模塊有:單片機最小系統、LTC6802鏈式電路、電池均衡電路、電池測溫單元電路、通信電路等。
在該電路中,STM32F103單片機主要負責對LTC6802信息的讀寫,控制均衡電路,也就是充放電控制單元,同時可以檢測電池溫度,將這些有用信息在人機界面上面顯示。電路如圖3所示。

圖3 STM32F103控制電路
LTC6802鏈式電路
LTC6802鏈式電路在多電池信息檢測中有著重要的作用,我們知道一塊LTC6802芯片只能管理12個單個電池,一般情況下也就是36V左右。在某些時候,可能需要電池電壓遠遠大于36V,這個時候我們就可以利用LTC6802鏈式電路來達到這個要求,如圖4所示。
在圖4中,SPI TOP和SPI BOTTOM就是連接頂端LTC6802和底端LTC6802。這樣就可以組成多級LTC6802鏈式電路。

圖4 LTC6802鏈式電路
控制均衡電路
均衡電路在電池管理過程發揮著至關重要的作用,我們所做的一切,都是為了方便管理電池電壓、電量的平衡,均衡電路的作用就在于保持電池電壓的平衡,這樣就保護了電池。電路如圖5所示,這里只給出了部分均衡電路。

圖5 均衡電路
電池測溫單元電路
每個芯片都有自己的工作溫度范圍,LTC6802的溫度范圍是<85℃,而且當其內部溫度超過105℃時,LTC6802采樣性能就會降低,更為嚴重的是,如果其溫度達到150℃,LTC6802芯片極有可能被燒壞。因此,為了保護LTC6802芯片,必須要用溫度檢測電路,其圖如6所示。

圖6 電池測溫單元電路
這里VTEMP2處接NTC,我們通過NTC就可以獲得實際溫度值。
通信電路
STM32F103與LTC6802的通信電路比較簡單,主要是SPI通信。如圖7所示。

圖7 通信電路
軟件設計
本電池管理系統采用模塊化編程方式,利用高級語言編程,主要流程圖如圖8所示。
圖8中給出的是單個LTC6802進行數據處理的軟件編程,LTC6802芯片可以連接成鏈式電路,這時,通過STM32F103由高到低逐次向各級LTC6802發送讀寫指令,寫指令時,數據由高到低傳送,讀數據則相反。
LTC6802有多個指令寄存器,如電壓寄存器、溫度寄存器、標志寄存器、命令寄存器。每個寄存器都有其特殊的功能,如通過配置電壓寄存器,我們可以設置過壓大小、欠壓大小等;配置命令寄存器,我們可以設置電池測量個數等。表1列出了命令寄存器。
表1 命令寄存器
圖8 程序流程圖
圖9 LTC6802的管理效果
系統中采用單片機作為主控制器,利用其本身自帶的SPI外設與LTC6802進行數據交換。這里給出一部分程序清單,如下:
void Ltc6802_Init(void)
{
GPIO_Configuration();
SPI_Configuration();
Ltc6802_Write();
}
測試結果
我們可以使用專門的軟件來查看LTC6802的管理效果,從圖9我們可以看出電池組中共有12節電池,也就是說這里只使用了一個我們可以使用專門的軟件來查看LTC6802芯片來管理電池,電芯電壓CELL1到CELL12電壓均在1.89V左右,從這個軟件中我們也可以看到采樣的溫度電壓:如2.487V,當然需要自己手動將其轉換成溫度值。還有一個比較重要的是,可以利用這個軟件來設定電池組中電芯的過欠壓值。
通過這款軟件,我們能實時監測鋰電池組的運行狀態,準確判斷是否有單體電池處在過壓或欠壓狀態。
結論
本文詳細介紹了STM32F103單片機和LTC6802的聯合使用情況,給出了一種鋰電池的管理方法,LTC6802是一款非常優秀的電池管理芯片,在電池管理過程中能準確獲取電池組單體電池電壓、電池溫度,有效地對電池電壓進行均衡,實現鋰電池組的動態保護,它可以對長串鋰電池組電池芯進行電壓測量與監視,也可以通過對電池進行充放電來達到電池組電壓均衡的目的?蓮V泛用于電瓶車、備用電源等場所。當然,在本文中,有關系統功耗和電流檢測還有待改善。