,
(1.66325部隊,北京 102205;2.北京理工大學)
電動汽車的續(xù)航能力和動力電池的使用壽命是用戶普遍關注的焦點問題。在研發(fā)新型產品的同時,業(yè)內人士也在不斷探索延長現有動力電池使用壽命的有效方法。通過檢測電池組的工作溫度和每塊電池的端電壓,及時發(fā)現故障電池是普遍采取的方法。其中,如何避免百伏以上的高壓可能對檢測電路、其他系統(tǒng)及工作人員造成危害,這是檢測電路設計的關鍵和難點,也是正在逐步改進的技術要素。本文針對這一關鍵技術,設計了獨特的檢測電路,并結合當前國內市場動力電池多樣性的特點,在電路設計中融入模塊化理念,進一步提高了檢測模塊的通用性。該檢測模塊在某工程樣車的動力電池管理系統(tǒng)中得到了實際應用。
系統(tǒng)設計成功的關鍵在于準確把握系統(tǒng)需要實現的功能,然后根據具體的功能提出量化技術指標,最后由控制要求決定系統(tǒng)軟硬件功能的劃分。本動力電池組檢測模塊具有以下功能和技術指標:
① 檢測電池組中每塊單體電池的端電壓,測量值精確到0.1 V;
② 檢測電池的工作溫度,測量值精確到0.1 ℃。
選用ATmega16作為主控芯片,該芯片在16 MHz頻率下速度為16 MIPS,支持JTAG端口仿真和編程,系統(tǒng)的開發(fā)、生產、維護更容易;內置模擬量比較器,有8通道10位A/D轉換器,支持單端和雙端差分信號輸入。這些功能可以滿足檢測模塊相關技術指標的設計要求,ADC轉換的參考電壓Vref選用芯片內部提供的2.56 V,簡化了電路設計。
1.3.1電池電壓檢測電路
集成運放(Integrated Operational Amplifier)是一種高放大倍數、高輸入電阻、低輸出電阻的直接耦合放大電路,基于集成運放的這些優(yōu)點,設計單體電池端電壓檢測電路。
由于動力電池組的結構和單體電池的多樣性,在設計檢測模塊時應著重考慮其通用性。本文設計的檢測模塊為5通道式,即一個檢測模塊可同時測量動力電池組中相鄰5塊單體電池的端電壓值。單體電池的端電壓信號輸入到檢測模塊后,經過專門設計的電路轉換為單片機能夠識別的電壓信號,再經過A/D轉換成為數字信號存儲在單片機的SRAM區(qū),等待讀取。
1.3.2電池溫度檢測電路
電池的工作溫度對電池容量有非常大的影響,且當電池的工作溫度急劇升高時,其內部壓力會增大,有可能對電池造成永久性損壞,所以必須檢測電池的工作溫度。
傳統(tǒng)的溫度檢測大多使用熱敏電阻作為溫度敏感元件,主要優(yōu)點是成本低,但它需要后續(xù)信號處理電路,而且可靠性相對較差,準確度和精度都較低。美國Dallas公司推出的DS18B20數字式溫度傳感器能夠直接讀出被測溫度,并且可根據實際要求通過簡單的編程實現9~12位的數字值讀數方式,溫度測量范圍從-55 ℃~+125 ℃。電池組溫度信號用該溫度傳感器測得,主控芯片ATmega16直接獲得數字信號并存儲,可用于后續(xù)的數據處理。
2.1.1整體框圖
檢測模塊的整體結構及功能設計如圖1所示,其中通信接口為預留端口,在本檢測模塊中沒有實際應用。
圖1 模塊設計整體結構
2.1.2電池電壓檢測電路
動力電池組中某一單體電池端電壓的測量電路,是基于集成運放的特性設計的,如圖2所示。
圖2 單體電池端電壓檢測電路原理圖
根據彌爾曼定理可得:
因為開環(huán)差模電壓放大倍數趨于無窮大,由集成運放的輸出特性可知:u+=u-。即:
在上式中,若:
則有:
R2(u1-u2)=R1(uo1-uo2)
所以,流過R3的電流為:
由基爾霍夫電流定律可知,流過電阻RL的電流等于流過電阻R3和電阻R2的電流之和,因為流過電阻R2的電流很小,可以忽略,所以流過電阻RL的電流等于流過電阻R3的電流。因此,結合工程實際中輸入差模信號的大小(u1-u2)和對電路的功耗要求,就可以選定電阻R1、R2和R3的值,這樣就能計算出輸出電流I的大小,該電流在電阻RL上形成的電壓降便可作為單片機ADC轉換的輸入信號。其中,電阻RL的大小可根據電流I的大小和單片機ADC轉換電路中設定的參考電壓大小來確定。
由以上的電路原理分析可以看出,電阻R1、R2、R3和RL的精度將直接影響到單片機ADC轉換的精度,所以圖中的電阻均應該選用精密電阻。
2.1.3電池溫度檢測電路
圖3 溫度采集原理圖
溫度傳感器DS18B20的接口電路簡單,只有一根信號線與單片機連接,不需要外部元件。最可貴的是這種芯片在檢測點已把被測信號數字化了,因此在單總線上傳送的是數字信號,這使得模塊的抗干擾性好、可靠性高、傳輸距離遠。其與單片機的連接如圖3所示。
軟件部分各功能的流程圖如圖4所示。檢測模塊的主控芯片是ATmega16,它內置一個10位的逐次逼近(successive approximation)ADC,能夠對以PORTA作為輸入引腳的8路單端電壓輸入進行采樣,本系統(tǒng)將串聯(lián)電池組中每5塊電池作為一個檢測單元,所以選用其中的5通道作為
輸入。在默認情況下,ADC的逐次比較轉換電路需要一個50~200 kHz的采樣時鐘,因為系統(tǒng)時鐘CLK為8 MHz,所以需要64進行分頻,這樣每個ADC周期為8 μs。
圖4 軟件部分功能框圖
一次常規(guī)的ADC轉換需要13個ADC時鐘周期,而通過置位ADCSRA寄存器的ADEN位,使ADC啟動進行第一次A/D轉換,因為要初始化模擬電路,所以需要25個ADC采樣時鐘周期。在一次常規(guī)的A/D轉換結束后,需要1.5個ADC時鐘周期的采樣保持時間。而對于ADC由禁止狀態(tài)啟動后的首次A/D轉換,則需要13.5個ADC時鐘周期的采樣保持時間。所以,最長的一次A/D轉換需要200 μs。當一次A/D轉換完成后,轉換結果寫入ADC數據寄存器,可以通過讀操作將數據讀出到通用寄存器或存放到SRAM區(qū)。
為了提高數據采集精度,本系統(tǒng)中采取了多次采樣取平均值的方法,對同一通道的輸入信號連結采樣6次,去掉最大值和最小值后再將其它4個采樣值作算術平均,作為該通道輸入信號的最終采樣值,并將平均值存放在SRAM區(qū)的特定位置等待讀取。
DS18B20數字溫度傳感器對軟件設計時序方面的要求近乎苛刻,它對讀寫時序嚴格到1 μs。在對DS18B20的操作中,讀寫操作是最基本也是最重要的環(huán)節(jié),只有正確使用讀寫時序,才能訪問到它的存儲空間,讀出正確的溫度值。
需要注意的是,在DS18B20測溫程序設計中,向DS18B20發(fā)出溫度轉換命令后,程序總要等待DS18B20的返回信號,如果DS18B20接觸不好或斷線,當程序讀該傳感器時,將沒有返回信號,程序進行入死循環(huán)。因此,在進行DS18B20硬件連接和軟件設計時也要給予一定的重視。本模塊用一個發(fā)光二極管作為該器件工作異常的指示信號,在軟件設計中編寫了針對這種情況的跳出程序。
部分關鍵匯編指令如下:
main:ldi r16,$bf;根據admux各位的意義其值應為
;$C0,為循環(huán)遞增ADC通道作準備
ldi r17,$c7
ldi r21,$00
out sfior,r21;關閉ADC高速轉換模式
next:inc r16;ADC通道循環(huán)遞增,內部參考電壓,
;轉換數據右對齊
out admux,r16
ldir18,$8e
out$06,r18;64分頻,單次轉換模式
sbi$06,adsc;轉換開始
loop:sbis$06,adif
rjmploop
inr14,adcl;將寄存器adcl的值讀入r14
inr15,adch;將寄存器adch的值讀入r15
cbi$06,adif
ldir19,$c0
cpser19,r16
rjmpmid_chls
rcallled_1
rcalldelay1
outportb,r14
rcalldelay1
sts$0060,r14
sts$0061,r15
rcallUSART_L
cli ;關中斷
write1820: clc;進位標志C清零
ldir16,$8
movr1,r16
next_bit:sbiddrd,pd7
sbiportd,pd7;給18B20開始信號
nop
cbiportd,pd7
rorr6
brccwrite_0
rcalldelay12
sbiportd,pd7
rcalldelay60
rjmpwrt_nxt
write_0:rcalldelay60
wrt_nxt:cbiddrd,pd7
rcalldelay16
decr1
brnenext_bit;非零跳轉
ret
用5路串聯(lián)穩(wěn)壓電源代替5塊串聯(lián)的單體電池,將穩(wěn)壓電源的輸出電壓設為不同的值(如:9.62 V、9.89 V、10.25 V、10.44 V、12.72 V)并保持恒定,將這5路電壓值輸入到單體電池檢測模塊中,由主控程序反復訪問該模塊5次,并記錄采集到的數據。
因為溫度信號的特性是一樣的,所以產品測試中對環(huán)境溫度的采集可等效于對電池組工作溫度的采集。與測量單體電池端電壓同步作5次測試,記錄相應的溫度數據。
分析表1中單體電池端電壓試驗數據可以看出,該檢測模塊對恒定的5路電壓連續(xù)5次采樣的結果是穩(wěn)定的,最大偏差為0.05 V,能夠滿足0.1 V的設計要求。檢測模塊中單片機RAM區(qū)的數值波動也很小,其幅值小于3,這說明該模塊中ATmega16單片機A/D轉換的參考電壓比較穩(wěn)定。
溫度測試數據如表2 所列??梢钥闯?,溫度傳感器對環(huán)境溫度連續(xù)5次采樣的數值波動很小,最大偏差為0.08 ℃,能夠滿足0.1 ℃的設計要求。
表1 單體電池端電壓測試值
表2 溫度測試值
本文設計的動力電池組檢測模塊,采用獨特的電路設計,既有效避免了百伏以上的高壓可能對檢測電路、其他系統(tǒng)及工作人員造成危害,又能夠實時檢測電池組中每塊單體電池的端電壓值以及電池組的工作溫度,可為電動汽車的其它工程應用提供準確的基礎數據。從臺架試驗數據看,檢測模塊對單體電池端電壓的測量精度達到了0.1 V,電池組工作溫度測量精度達到了0.1 ℃??刂菩酒捎玫凸模垢蓴_強的ATmega16芯片,利用內部的A/D轉換和定時計數器功能,各通道均表現出了良好的穩(wěn)定性,這說明該模塊的電路設計和軟件設計是可行有效的,檢測模塊實物如圖5所示。
圖5 檢測模塊局部圖