管州等



摘 要:介紹一種基于DS2438芯片為采集器,以STC89C51為控制器的大功率蓄電池實時狀態監測系統的設計。該系統的可實現對蓄電池的剩余電量的準確預測,避免傳統的測試電壓代替剩余電量的方式。讓電動汽車運行時更為可靠,提高了電池性能。
關鍵詞:DS2438;STC89C51;剩余電量;大功率蓄電池
0 引言
當前電動車逐漸普及,蓄電池作為一種簡單有效的儲電方式而被廣泛使用在電動車中。而蓄電池的儲電能力有限,因此需要精確的計算剩余電量和續航路程,保證車子的正常行駛。目前蓄電池剩余電量的計算有很多種方法,例如密度法(比重法)、電壓法、安時法。傳統方法是測電池電壓代替電量,在啟動時電流增大,端電壓降低,故剩余電量表的指針明顯偏轉,不能達到精確測量電量的目的。本系統的原理是安時法,能夠對電流積分來記憶電池的充放電,測算電池電量,故而精確計算剩余電量。同時能夠實時監測電池的溫度、電壓等參數,有利于延長蓄電池的循環使用次數。
1 DS2438芯片介紹
DS2438芯片被命名為 Smart Battery Monitor,是Maxim公司推出的智能電池監測芯片,是一種十分小巧、快速、精確的電池檢測芯片。它具有功能強大、體積小、硬件接線簡單等優點,內部自帶A/D,通過單總線來讀取,可以方便地實現對蓄電池組運行狀態的監測。DS2438的引腳排列如圖1所示。
1.1 溫度測量
DS2438內集成的溫度傳感器。將芯片緊貼于被測電池就能夠測量溫度。結果放入溫度寄存器中,可通過單總線接口串行傳送。 DS2438測量的溫度范圍為-55℃~125℃,分辨率為0.03125℃。
1.2 電壓測量
DS2438內置10位的電壓A/D轉換器,用于測量電壓。當芯片收到轉換電壓的命令時,片內ADC轉換器將對Vad管腳上的電壓進行數字轉換,轉換時間為4ms。結果被保存在兩字節的電壓寄存器。電壓寄存器格式。
DS2438 ADC 的測量范圍為0~10V,分辨率為10mV,最大量程為0~10.23V。
1.3 電流測量
DS2438內置電流A/D轉換器,用于測量蓄電池的電流。芯片通過VSENS+和VSENS-兩引腳之間電阻的電壓間接得出電流。測量系統硬件電路圖7。VSENS+接線端外接電阻R1,VSENS-端接RC低通濾波電路,濾除尖波電流干擾。電流A/D轉換器每工作頻率約為36Hz。結果保存在兩字節的電流寄存器中。最高位S為符號位,表示電池是充電還是放電。電流寄存器格式如圖5所示。
該寄存器存儲的實際數值是RSENS兩端的電壓值,電池電流可由下面的公式計算出來。
I=電流寄存器中的值/(4096*RESES)(RSENS的單位是Ω)
1.4 剩余電量的測量
DS2438集成電流累加器Integrated Current Accumu-lator(ICA),可以跟蹤測量電池的剩余電量。ICA是對電池組投入使用后的全部流入和流出電池進行積分的一個電流寄存器,故ICA的值可以表示為電池的剩余電量。如上所述,電池組電流是通過頻率為36Hz的外接電阻RSENS上的電壓獲得的。根據此值的正、負而將此值進行積分存儲在ICA寄存器中。ICA是一個8位的二進制計數器,它綜合了每次測得的外接電阻RSENS上的電壓。
剩余電量可由下式計算得出:
剩余電量=ICA/(2048*RSENS)(Ahr)
2 硬件設計
本系統以STC89C51單片機為核心,通過單總線對DS2438芯片進行讀寫,測算剩余電量、電壓、電流、溫度參數。加入了LCD1602液晶,可以對電池的剩余電量和溫度進行實時顯示,同時充分利用了DS2438自帶的EEPROM進行掉電保護,保存計算好的電量的值。
由于本系統測量的是大功率蓄電池組電量,而DS2438是用來測量容量和電流比較小的電池,所以必須選擇合適的電流傳感器以保證測量精度與測量范圍。在這里選擇了廣泛應用于電流測量的LA200-P。啟動電動車電機會產生幾十安倍的大電流,通過電流傳感器LA200-P使測量電路的電流變換為為主工作電路電流的2000分之一,LA200-P輸出為正負電流形式,且在DS2438的正常承受范圍之內,能達到精確測量的目的。
電壓的測量時通過將被測的電壓通過分壓的方法將電壓的值限制在測量范圍內(0-10.23V)。
關于電路中電阻R1的選擇,電流的最小位不同,會造成最小的單元表示的電量大小不同,從而造成能夠用一個字節表示不同電量大小。選取合適的值會有合適的精度和范圍,具體的取值和電量范圍可參照DATASHEET。
3 軟件設計
本系統的程序主要由DS2438讀模塊,DS2438寫模塊、顯示程序和上位機通信程序。
DS2438讀程序能夠實現對電壓、電流、電量和溫度的讀取,然后將讀到的數字量轉換成對應的實際數值,這是軟件的基礎部分。顯示模塊是基于LCD1602來顯示的,可以實時根據讀取的數據來顯示參數。上位機通訊是為了和上位機或者他控制器進行通信,具體的做法是將電壓、電流、電量和溫度這些參數轉換成一個一維數組,然后通過UART通信協議來向外發送數據,設置好波特率,有相應的開始位和結束位,這樣方便上位機和其他控制器數據的接收。
最后重點介紹DS2438的寫模塊。最初的程序不能對芯片進行寫數據,這就沒有工程的實用性。因為如果不能對芯片的電量寄存器ICA設置初始化的值,就意味著電量寄存器工作之后只能從零開始,這樣蓄電池的初始值就只能設置成0,只能把電池放完電,然后接入芯片,這樣才能保證電量數據的正確性,但是這樣對電池的損害很大。基于這些考慮,對芯片的寫數據必須實現,在和團隊深入研究芯片的DATASHEET后,才發現這款芯片寫數據時是先寫到緩存區,然后在復位脈沖的作用下才能寫入指定的地址中,修改程序之后能夠實現對芯片的寫數據。且可以對電量寄存器的初值進行設置和校正,同時DS2438芯片自帶40個字節的EEPROM,可以把想保存的數據寫到這個區域而掉電保護,不需要用外部的EEPROM。
4 結語
本文主要講訴了使用測量小容量電量的芯片來測量大功率電量的方法,成功的實現對電池的電流、電壓、電量和溫度的測量,并且充分利用該芯片的功能,實現對芯片的寫數據,將該技術真正具有工程實用性。并且實現電量的精準測算,對電動車的續航能力有一定的預測,減少電量不足對電池的損害,有利于蓄電池的循環利用。
參考文獻:
[1]嚴加朋,王大志,金有超.基于DS2438的大功率蓄電池狀態檢測[J].單片機與嵌入式系統應用,2010(11).
[2]郭屹松.基于DS2438的智能電池監測系統設計[J].北京石油化工學院學報,2008(03).
[3]郭天祥.新概念51單片機C語言教程——入門、提高、發、拓展 [M].電子工業出版社,2009(01).
[4]Dallas Semiconductor.DS2438 Smart Battery Monitor,2003-02-06.
項目名稱:安徽大學 國家級大學生創新創業訓練計劃項目“基于雙電源自由切換車內安全監控的電動車的研究”。項目編號:201410357065。endprint