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