引言 普通電池僅有作為電源向負載供電的功能.而智能電池是由電池組、電池管理芯片、充放電電路、保護電路等共同組成的。智能電池不僅可以提供電源,而且由于電池管理芯片中內置了微處理器和通信接口,它還可以向外部提供電池當前電壓、當前電量、溫度、門檻電壓、充放電次數、生產廠商、生產日期等動態信息和設計信息。筆記本電池就是一種智能電池.它采用SMBUS向操作系統提供當前電池電量的余量、還能使用多長時間等數據。 筆記本電池在生產完成后。要老化電池。也就是測試電池是否能夠正常工作。檢測的步驟通常分步進行.首先讀取電池的各種設計信息檢查是否正確.其次對電池充放電檢查是否可充放.最后校正電池電壓、電流和溫度。本文提出一種自動流程的筆記本電池檢測儀.它自動比較電池信息.當發現錯誤信息后,寫入正確信息,避免了手工輸入,可有效提高工作效率2倍以上。 1 硬件電路的實現 筆記本測試儀是基于AVR單片機ATMEGA88實現的。ATMEGA88是ATMEL公司研制的高性能、低功耗8位微處理器,它采用RISC結構,最高速度達16M,28個可配置的引腳,lK內部SRAM.8K程序存儲器.還具有512字節的EEPROM。ATMEG88還具有豐富的外設。如三個定時器、六通道PWM、10位ADC、USART接口、SPI總線、TWI總線等,這些特性十分適合智能電池的需要可以使控制器外圍電路減至最少。因此本文選用了ATMEGA88。本文實現的筆記本電池檢測儀可檢測以TI公司BQ2060、BQ20270、Bq20280、BQ20290四個系列的電量計量芯片組成的智能電池。 1.1 SMBUS總線 SMBUS總線最早由Intel公司提出的。目前在個人電腦、工業測控、智能儀器儀表得到了廣泛的應用。TI公司的BQ系列電鼉計量芯片都提供了SMBUS通訊接口供用戶使用。SMBUS協議與12C總線類似,它是由兩根信號線來傳輸數據的,一個是時鐘傳輸線SCL。一個數據傳輸線SDA,SMBUS最高傳輸速度為100Kbps,當總線上接入速度不同的器件時。可以采用延長SCL低電平的時間來同步數據通信。SMBUS既可以由硬件接口實現.也可以由軟件模擬實現.但在電路上這兩根信號必須是漏極開路或集電極開路的,兩根信號通過一個1OK的上拉電阻接到+5V電源上.這樣在無數據傳輸時.兩根信號線總是在高電平以使智能器件能檢測到總線空閑。SMBUS總線上的設備有主設備和從設備兩類,兩類設備傳輸模式有收發兩種,這樣共有四種傳輸模式.無論哪一種通訊時都是由主設備發起和結束的。智能電池是SMBUS總線的上的從設備.它的寫地址是0x16.讀地址是Oxl7,SMBUS的一次寫命令傳輸過程如圖1所示。 ![]() 圖1 SMBUS時序圖 在SCL為高電平時。主設備在SCL為高時把SDA從高拉低產生一個起始位。傳輸數據開始.緊跟其后的是地址尋址的8bit數據,最后一位0代表寫操作。1代表的是進行讀操作。隨后傳輸是8bit數據是智能電池內部的命令字.根據電池芯片版本的不同有所不同。接下來的兩個字節數據分別的命令內容的低字節和高字節,最后由主設備在SCL為高時把SDA從低拉高結束操作。在SMBUS讀數據的時候要先時電池進行寫入操作,再對電池進行讀尋址,這一點和I2C還有所不同。ATMEG88的TWI總線是完全兼容SMBUS的,并且它的引腳可配置內部上拉電阻,可以省去外部的兩個電阻。 1.2充放電電路 由ATMEGA88控制的可調電流的充放電電路能對電池進行充放電測試,TI公司的BQ計量芯片對電池計量具有自學習功能,計量建立在一個充放電的完全循環上的,因此電路必須要實現完全充電和完全放電。 ![]() 圖2充電電路圖 充電電路如圖2所示.LM317組成了一個恒壓源.LM317的輸入是1.25V.Si4953是一個N溝道的MOS管.它的柵極接在三極管8050的集電極上。源極和漏極與充電電路串聯。三極管8050的作用是來關斷和打開Si4953。它的基極接在ATMEG88的一個端口上。ATMEGA88置高電平,8050發射極正偏,集電極反偏,8050飽和導通,Si4593柵極為低電平,MOS截止相當于電路開路,電源不能給電池的正極充電。當要對電池進行充電時.ATMEG88將此引腳置低電平,8050截止,Si4953導通電源通過LM317給電池的正極充如1.25A的電流。改變ATMEGA88的這個引腳的占空比可以很改變充電電流的大小。在充電過程中.ATMEGA88每秒鐘讀一次電池的門檻電壓.如果門檻電壓到了電池的最大充電電壓并能維持2分鐘.說明電池已經充滿。電池充滿后.不能再繼續充電,否則會造成電芯過充損壞.電量計量芯片會在電池充滿后打開內部的FET保護電路.斷開充電通路保護電芯。ATMEG88在電池充滿后.讀取電池的保護位.如果已經打開說明電池工作正常。 電池放電是充電的反過程,與充電過程很類似,在放電過程中.電池的電壓不斷降低.與充電不同的是電量計量芯片會設置三級到四級保護電壓.一般來說是筆記本電池是不允許電壓跌落到最后一級電壓以下,因為這個時候電芯由于過放可能已經物理損壞,電壓每跌落一個等級,電量計量芯片就會打開這一級的保護電路,減小放電的電流,到最后一級時,放電電路完全斷開,報告電池的電量已經耗盡。ATMEG88要檢測每一級保護都正常.才能確定電池工作良好。 1.3熱敏電阻檢測電路 電池在工作時.部分電能會轉化為熱能,溫度的升高會引起電芯的化學性能發生急劇的變化.甚至有爆炸的危險.因此對電池溫度的檢測是必須的。筆記本電池一般使用一個IOK的負系數熱敏電阻來檢測溫度的變化,熱敏電阻工作正常才能保證電池的安全。在電池檢測過程,熱敏電阻的檢測也是其中重要的一環。檢測電路如圖所示,兩個LM358組成了一個窗口比較器來檢測輸入的信號。由圖3可知窗口比較器上的上限是VH=5*(10+3.3)/(20+3.3)=2.8V,下限是VL=5*10/(20+3.3)=2.1V,熱敏電阻和上拉電阻分壓作為輸入信號Uin由窗口比較器的原理可知,若VL ![]() 圖3熱敏電阻檢測電路 2 軟件功能的實現 軟件的實現分單片機和程序兩部分。其中單片機完成協議轉換功能上位機軟件實現檢測功能。 2.1 SMBUS總線與RS232協議的轉換 電池檢測儀是由ATMEGA88把數據從電池取出,通過RS232把數據發給上位機。或從上位機接收數據轉發給電池,可見在信息傳送過程中,電池檢測儀起到了橋接的作用。電池版本的不同信息容量也不同,如對于BQ2060系列的電池,只有127個字節的信息。ATMEGA88共有lK的SRAM,完全可以將全部寄存器存入到單片機中,而對于BQ20280的智能電池,電池信息容量為1752個字節,無法完全存放,只能將數據分批發送出去。本文使用分組發送的方法轉發數據,在單片機內部為SMBUS總線和RS232各分配32字節的收發緩沖區,數據都組裝成幀發送.單片機在收發到一個完整的幀后才啟動后續操作。數據幀的格式為:第一字節同步字符0xFE,第二字節數據長度字節,最大值29.從第三字節開始數據字節。內容為ASCII碼的數字和字母。最后一字節是數據幀結束字節OxFD。當收到幀起始字,ATMEG88把數據放入接收緩沖區,當收到幀結束字節后,處理數據并放人到發送緩沖區.啟動發送。為了避免數據溢出現象,還加入了超時處理.當處理一幀數據超過2ms時視為數據收發失敗。將此幀數據刪除。 2.2電池可配置編程的實現 對于BQ20270等系列的高檔電池,電量計量芯片內部集成了Flash存儲器。可以使用SMBUS總線對電池的配置在線更新。本文提出的電量檢測儀實現了對Flash的編程操作,完成了生產一塊電池的全部操作。在進行編程之前,要先準備一個原裝鏡象文件。這個文件里包含了電池的器件配置信息如電阻特性曲線、化學特定數據等.對電池執行一個寫操作,寫入0x08,置電池為編程模式.數據通過SMBUS寫入電池,完成后發送校正命令.電池執行內部的自動校正算法把電池校準,再將電池專用信息寫入包括生產日期、序列號等.將所有寫入的信息再讀出來與原有信息比較進行數據校驗,如檢查數據無誤,復位電池恢復5分鐘后,向電池發送阻抗匹配追蹤使能命令0x21,電池就可以正常工作了。 2.3智能電池檢測流程 檢測智能電池的整個流程是在七位機的軟件下控制完成的,在電池的生產流程中,參數的變化是很頻繁的,為了能適應各種不同電池的檢測本文采用讀取配置文件的方法。在上位機軟件啟動時,首先要加載的后綴為INI的電池配置文件,配置文件主要結構是一個settings段。段中存儲的是關鍵字.智能電池的每一個寄存器都三個關鍵字。分別是寄存器的地址、寄存器的最大值、寄存器的最小值。上位機軟件根據配置文件動態生成要檢測的內容界面,根據地址向檢測儀發送串口命令.檢測儀把此命令轉發給電池,電池會返回此命令的值,上位機收到后與加載的最大值和最小值比較。如果超出范圍則檢測不通過.軟件會用不同的顏色標出。上位機加載配置文件完畢后,第一步檢測電池的的基本信息如設計電壓、設計容量、電壓、電流、循環次數等.如不正確上位機軟件自動寫入正確值;第二步啟動充放電電路檢測電池內部的保護電路和加載電流,如不正確則報警,并記入日志文件:第三步檢測熱敏電阻是否工作正常.如不正常報警并記往日志文件:最后校正電路參數。如果電池不能正常工作.還可以用智能電池檢測儀對電池重新編程。 3 結論 本文對智能電池檢測儀的工作原理和實現方法進行了詳細闡述。實現了電池的基本信息檢測、充放電檢測、熱敏電阻等檢測.并且實現了智能電池的在線編程。智能電池檢測儀具有效率高、配置靈活、使用方便等特點.在電池生產中取得了良好的效果。 本文創新點:本文提出了采用AVR單片機對筆記本電池檢測進行充放電、溫度等檢測.流程采用上位機軟件配置,提高了電池檢測流程的效率和靈活性。 本文提出電池檢測儀已批量生產30套,每套售價2萬元。一個檢測儀每月可檢測約4K塊電池.可節省大量人工和時間,直接經濟效益1萬元左右。 作者:高艷芬,何明星,王偉 來源:《微計算機信息》(嵌入式與SOC)2009年第25卷8-2期 |