新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于SMBus的智能電池系統(tǒng)

基于SMBus的智能電池系統(tǒng)

——
作者:未知 時(shí)間:2005-11-10 來(lái)源: 收藏

摘要: 本文概要地介紹了,并介紹了一種典型芯片——Max1660的電量計(jì)數(shù)及電池保護(hù)等功能,給出了一個(gè)應(yīng)用實(shí)例。

關(guān)鍵詞:智能電池 電量計(jì)數(shù) Max1660

  現(xiàn)代社會(huì)對(duì)產(chǎn)品壽命需求和對(duì)產(chǎn)品的性能和功能的要求迅速提高。最新的掌上電腦要求把最多的功能壓到最少的空間中去,這就驅(qū)使電池的設(shè)計(jì)者不得不考慮在產(chǎn)品設(shè)計(jì)方面做顯著的變化。這包括;使用低壓器件,關(guān)掉未在使用的子系統(tǒng),對(duì)應(yīng)用程序進(jìn)行管理,發(fā)展智能電池和電池管理系統(tǒng)等。

  新的智能電池的設(shè)計(jì)需要各種不同甚至相反的領(lǐng)域的知識(shí),在某些應(yīng)用中甚至是全新領(lǐng)域的知識(shí)。這些領(lǐng)域包括關(guān)于電池運(yùn)行的電池化學(xué)知識(shí);關(guān)于系統(tǒng)各零件相互作用的系統(tǒng)工程知識(shí)和使用者怎樣操作一個(gè)特殊設(shè)備的設(shè)計(jì)知識(shí)。因此,一個(gè)規(guī)范或者說(shuō)一個(gè)標(biāo)準(zhǔn)將必不可少,它可以簡(jiǎn)化設(shè)計(jì),提高系統(tǒng)的可移植性。

智能電池規(guī)范

  電池的智能化是最近才發(fā)展起來(lái)的,這就使得智能電池的實(shí)現(xiàn)方案多種多樣。因而,一些標(biāo)準(zhǔn)開(kāi)始出現(xiàn)。這些標(biāo)準(zhǔn)一般是由便攜電腦制造商推動(dòng)的。但在一些單電池系統(tǒng)中,例如在蜂窩式移動(dòng)電話系統(tǒng)中,成本問(wèn)題限制了電池系統(tǒng)一些操作,使智能電池標(biāo)準(zhǔn)的發(fā)展復(fù)雜化了。

  一線接口 電池包與系統(tǒng)的通訊是一個(gè)很重要的需要考慮的因素。這個(gè)接口要有盡可能少的信號(hào)線以減少電池包的連線數(shù)。因而,許多單電池系統(tǒng)采用一線接口(1-wire),例如,蜂窩移動(dòng)電話。在1-wire接口中,0或1取決于信號(hào)線上0的有效周期。這種類型的接口提供了一個(gè)異步連接。當(dāng)前有三種不同的一線接口(1-Wire),它們之間只有輕微的差別。由于其內(nèi)在特點(diǎn),一線接口的傳輸速率很慢。在低成本系統(tǒng)中,這樣的速率是可接受的,因?yàn)橹挥袠O少的信息需要傳遞給主機(jī)。但在多電池系統(tǒng)中,就有更多的信息需要傳遞給主機(jī),這是就要求有更快的接口速度了。 接口 1996年,Intel(聯(lián)合其它公司)推出了一個(gè)由PC-I2C變異而來(lái)的系統(tǒng)管理總線()。它與I2C總線一樣有兩根通訊線,但是加入了低電平選擇并且對(duì)器件對(duì)總線的控制實(shí)踐做了嚴(yán)格規(guī)定。作為系統(tǒng)管理總線(SMBus)發(fā)展的一部分,Intel與其合作伙伴創(chuàng)建了智能電池標(biāo)準(zhǔn)。這個(gè)規(guī)范在SMBus接口頂層增加了一個(gè)協(xié)議,定義了一系列的命令以用于電池包、電池充電器、電池選擇器和主機(jī)之間的通訊。而這些命令和協(xié)議并非必需的,可以選用。

基于MAX1660的智能電池應(yīng)用實(shí)例:

  MAX1660 是美信公司生產(chǎn)的一種能夠精確測(cè)量流入充電和流出放電系統(tǒng)電池組的電量計(jì)數(shù)芯片,它能將電池電量存入內(nèi)部?jī)蓚€(gè)獨(dú)立的32 位充電和放電計(jì)數(shù)器。它通過(guò)強(qiáng)大的數(shù)字比較功能,判斷當(dāng)充電或放電計(jì)數(shù)器達(dá)到主機(jī)設(shè)定值時(shí),中斷主CPU,來(lái)完成主機(jī)設(shè)定得功能。該器件也可以在電流方向發(fā)生變化時(shí)通知主機(jī),并具備保護(hù)電池組短路及過(guò)流的功能。MAX1660 提供一個(gè)兼容于SMBUSTM系統(tǒng)管理總線的二線串行接口來(lái)訪問(wèn)充電放電量計(jì)數(shù)器和內(nèi)部寄存器,同時(shí)也能夠給主機(jī)提供一條可用作中斷信號(hào)的系統(tǒng)管理總線報(bào)警線SMBALERT。

1. MAX1660 的引腳及功能

 

  MAX1660 的引腳排列如圖1 主要引腳功能如下:

  u INT,中斷信號(hào)漏極開(kāi)路輸出,低電平有效,INT接上拉電阻100k至VL引腳。 u REF,2.00V 精密電壓基準(zhǔn)輸出,REF對(duì)AGND 接10nF旁路電容。 u SHDN,關(guān)斷控制輸入,低電平有效。 u CS,電流檢測(cè)電阻輸入。 u ODI,放電過(guò)流檢測(cè)輸入。 u OCI,充電過(guò)流檢測(cè)輸入。 u VL,3.3V 5mA線性電壓輸出VL對(duì)GND接0.33mF旁路電容。 u BATT,輸入。 u ODO,高壓漏極開(kāi)路MOSFET柵極驅(qū)動(dòng)輸出,ODO控制電池放電信道的開(kāi)/關(guān)。 u OCO,高壓漏極開(kāi)路MOSFET柵極驅(qū)動(dòng)輸出,OCO控制電池充電信道的開(kāi)/關(guān)。 u RST,上電復(fù)位輸出,低電平有效RST接上拉電阻100k至VL引腳。 u SDA,串行數(shù)據(jù)輸入/輸出,在SDA和VL 之間接10k電阻。 u SCL,串行時(shí)鐘輸入,在SCL和VL之間接10k電阻。

2.MAX1660的控制、狀態(tài)與讀寫(xiě)時(shí)序

  MAX1660有一個(gè)16位的狀態(tài)字和一個(gè)16位的控制字,主機(jī)可通過(guò)讀狀態(tài)字來(lái)判斷電池狀態(tài),寫(xiě)控制字來(lái)控制電池系統(tǒng)。其狀態(tài)字的定義如表1,控制字定義為如表2

表1

 

位名稱

上電復(fù)位狀態(tài)

說(shuō)明

——

8--15

1

未使用通常返回1。

ODSTATUS

7

0

過(guò)流中斷狀態(tài)位,當(dāng)放電過(guò)流時(shí),此位置位。當(dāng)軟關(guān)斷、上電復(fù)位或控制字CLRINT位置位時(shí),此位清零。

OCSTATUS

6

0

過(guò)流中斷狀態(tài)位,當(dāng)充電過(guò)流時(shí),此位置位。當(dāng)軟關(guān)斷、上電復(fù)位或控制字CLRINT位置位時(shí),此位清零。

COMPSTATUS

5

0

COMPINT中斷狀態(tài)位,當(dāng)COMPINT中斷發(fā)生時(shí),此位置位。當(dāng)軟關(guān)斷、上電復(fù)位或控制字CLRINT位置位時(shí),此位清零。

COUNTSTATUS

4

SETCOUNT狀態(tài)指示位,當(dāng)控制字SETCOUNT置位時(shí)此位置位。當(dāng)SETCOUNT位清零時(shí),此位清零。

SHDNSTATUS

3

0

軟關(guān)斷狀態(tài)指示位,當(dāng)器件處于軟關(guān)斷模式時(shí)返回1,否則返回0

CHARGESTATUS

2

0

充電狀態(tài)指示位,充電狀態(tài)檢測(cè)時(shí)此位置位,放電狀態(tài)檢測(cè)時(shí)此位清零。

DIRCHANGE

1

0

當(dāng)電流方向發(fā)生變化時(shí),此位置位。當(dāng)軟關(guān)斷、上電復(fù)位或控制字CLRINT位置位時(shí),此位清零。祥見(jiàn)參考文獻(xiàn)1的電流變化檢測(cè)部分。

——

0

0

未使用通常返回1。

表2

位名稱

上電復(fù)位狀態(tài)

說(shuō)明

——

11--15

1

未使用。

DIRINTENABLE

10

0

電流方向變化允許位。此位置位允許方向變化中斷發(fā)生,清零則禁止此功。祥見(jiàn)Direction-Change Detection Function section。

SOFTSHDN

9

1

軟關(guān)斷允許位,此位置位允許軟關(guān)斷,清零恢復(fù)正常操作。祥見(jiàn)參考文獻(xiàn)1的Shutdown Modes section。

CLRCOUNTER

8

1

清計(jì)數(shù)器,寫(xiě)1將放電計(jì)數(shù)器和充電計(jì)數(shù)器全都清零。

CLRINT

7

0

清中斷,寫(xiě)1使ODSTATUS, OCSTATUS, COMPSTATUS, 和DIRCHANGE.清零

SETCOUNT

6

0

計(jì)數(shù)器選擇位,用來(lái)選擇將哪個(gè)計(jì)數(shù)器的值傳輸?shù)紺OUNT寄存器,置1選擇充電計(jì)數(shù)器,清零則選者放電計(jì)數(shù)器。祥見(jiàn)文獻(xiàn)1的Charge and Discharge Counters section。

OFFSETMEAS

5

0

偏移量測(cè)量允許位,置位時(shí)使CS端與內(nèi)部電路斷開(kāi),短接到AGEND。清零時(shí)CS端重新接到內(nèi)部電路,恢復(fù)正常操作。參看文獻(xiàn)1的internal Offset Measurementsection。

COMPENABLE

4

比較中斷允許位。置1允許數(shù)字比較中斷功能,清零則禁止此功能。參見(jiàn)文獻(xiàn)Digital Compare Function section.

ODHI

3

0

ODO兩位輸出狀態(tài)控制位的第一位,參見(jiàn)文獻(xiàn)1的Overcurrent Detection section。

ODLO

2

0

ODO兩位輸出狀態(tài)控制位的第二位。為保證恰當(dāng)?shù)倪^(guò)流保護(hù)狀態(tài)ODLO應(yīng)該總是保持為零。參見(jiàn)文獻(xiàn)1的Overcurrent Detection section。

OCHI

1

0

OCO兩位輸出狀態(tài)控制位的第一位,參見(jiàn)參考文獻(xiàn)1的Overcurrent Detection section.

OCLO

0

0

OCO兩位輸出狀態(tài)控制位的第一位。為保證恰當(dāng)?shù)倪^(guò)流保護(hù)狀態(tài)OLO應(yīng)該總是保持為零。參見(jiàn)文獻(xiàn)1的Overcurrent Detectionsection.


 
  其讀寫(xiě)時(shí)序見(jiàn)參考文獻(xiàn)1,傳輸時(shí)以字節(jié)為單位。每次傳輸時(shí)首字節(jié)為SLVEADDRESS——即從器件地址。對(duì)于不同種類的SMBus器件,該地址是固定的,在出廠時(shí)就已經(jīng)固化到器件中。但也有一些器件可以通過(guò)地址端的不同接法選擇該地址。MAX1660的SLAVEADDRESS是1000111,最后一位空出,用來(lái)選擇讀或?qū)?。其中0為讀出,1為寫(xiě)入。第二個(gè)字節(jié)為命令字,從第三個(gè)字節(jié)開(kāi)始是要讀出或?qū)懭氲臄?shù)據(jù)。

  命令字可分為兩種:一為讀命令,包括讀計(jì)數(shù)寄存器和讀狀態(tài)字;一為寫(xiě)命令,包括寫(xiě)比較寄存器和寫(xiě)控制字。計(jì)數(shù)寄存器需要分兩次讀出,命令字為:0x82(低16位)、0x83(高16位);比較寄存器也要分兩次寫(xiě)入,其命令字分別為:0x00(低16位),0x01(高16位);讀狀態(tài)字和寫(xiě)控制字的命令字分別為:0x84和0x04。需要注意的是:在讀計(jì)數(shù)器時(shí),當(dāng)前供電狀態(tài)決定了計(jì)數(shù)器中的數(shù)值是充電還是放電計(jì)數(shù)值。而且,更為重要的一點(diǎn):在讀計(jì)數(shù)器時(shí)兩個(gè)命令必須連續(xù)執(zhí)行且必須先讀低位后讀高位,如果中間夾有其他命令或順序顛倒,在執(zhí)行這個(gè)命令時(shí)Max1660就會(huì)當(dāng)作讀高16位的命令已執(zhí)行而將計(jì)數(shù)器清零。

3. MAX1660的最大充電和放電電流

  MAX1660本身不能控制電池充電電流,只能控制最大充電電流值和最放電電流值。它可以通過(guò)以下方法設(shè)定設(shè)定:

 

  設(shè)定最大充電電流值:如圖所示,

  式中 ICHG,MAX即是最大充電電流值 VREF=2.0V。R5選擇1MΩ左右的電阻。

  1) 設(shè)定最大放電電流值:如圖所示,

  式中IDISCHG,MAX 為最大放電電流值,R3選擇1MΩ左右的電阻。

4.應(yīng)用MAX1660設(shè)計(jì)電量指示監(jiān)控充電電路

  本電路是作為一個(gè)便攜式嵌入系統(tǒng)的附屬模塊設(shè)計(jì)的,由于系統(tǒng)成本限制,采用用了鎳氫電池。Mam1660即可監(jiān)控鋰電池又可監(jiān)控鎳基電池,而其他類電池監(jiān)控芯片大所為鋰電池監(jiān)控芯片,因此本系統(tǒng)采用Max1660來(lái)搭建系統(tǒng)。系統(tǒng)軟件采用查詢機(jī)制,其程序框圖如圖5。

  系統(tǒng)力求精簡(jiǎn),用51單片機(jī)控制。單片機(jī)通過(guò)SDA、SCA、INT三根線與MAX1660通訊線用于對(duì)發(fā)出中斷信號(hào),SCA、SDA分別為的時(shí)鐘線和數(shù)據(jù)線。利用max1660的數(shù)字比較功能,程序設(shè)定一個(gè)電量值,每當(dāng)電量計(jì)數(shù)器達(dá)到設(shè)定值時(shí)即對(duì)單片機(jī)發(fā)出中斷,從而把單片機(jī)解放出來(lái)。計(jì)數(shù)值與電量的關(guān)系與敏感元件微電阻有關(guān),微電阻越小則可測(cè)電流越小,但電流分辨率也越小,反之則可測(cè)電流值受限,而電流分辨率增大。

  系統(tǒng)主要包括兩部分:首先是通訊部分,主要是SMBus總線的驅(qū)動(dòng)程序。這里參考了文獻(xiàn)2中的I2C總線驅(qū)動(dòng)程序,按照系統(tǒng)需求作了局部改動(dòng)。程序包括啟動(dòng)、停止、發(fā)送應(yīng)答、發(fā)送非應(yīng)答、應(yīng)答位檢查、發(fā)送和接收等共9個(gè)函數(shù)。最后組成兩個(gè)函數(shù):SMBusReadWord和SMBusWriteWord。通過(guò)這兩個(gè)函數(shù)即可實(shí)現(xiàn)SMBus總線的全部讀寫(xiě)操作,實(shí)現(xiàn)對(duì)任何SMBus總線器件的控制。這兩個(gè)函數(shù)的參數(shù)依次為:器件地址,命令字,讀/寫(xiě)內(nèi)容。

  其次為主程序部分。如圖5所示,當(dāng)中斷條件滿足時(shí),由max1660向單片機(jī)發(fā)出中斷請(qǐng)求,單片機(jī)則讀取max1660的狀態(tài)字判斷為何種中斷,各狀態(tài)字的定義如表1,部分中斷功能可通過(guò)控制字關(guān)閉。然后對(duì)各種中斷作相應(yīng)處理。其中當(dāng)前的供電方式可通過(guò)CHARGESTATUS讀出。該位為1時(shí)為充電狀態(tài),為0時(shí)為放電狀態(tài)。

  文獻(xiàn)1提供了一個(gè)簡(jiǎn)單的系統(tǒng)硬件原理圖,只需在這個(gè)原理圖上作簡(jiǎn)單的拓展即可使用。限于篇幅,無(wú)法將本系統(tǒng)的原理圖詳細(xì)列出,這里只作簡(jiǎn)單介紹:Max1660本身帶有3.3V輸出,但由于這里使用了51單片機(jī)必須采用5V電源,因此這一電源沒(méi)有使用,而是在pack+和pack-之間接入7805來(lái)得到5伏的電源,而在用于整個(gè)系統(tǒng)時(shí),其電源也應(yīng)從這兩端輸出。

 

  電量的顯示最好通過(guò)LCD,調(diào)試階段用LED較好,比較直觀,同時(shí)易于排除問(wèn)題。本系統(tǒng)在調(diào)試階段用P1口輸出電量狀態(tài)指示,LED亮?xí)r表示充電已到該位,各燈逐次點(diǎn)亮,充滿時(shí)全亮,放電時(shí)正相反。

結(jié)束語(yǔ)

  本文介紹的基于SMBus的智能電池檢測(cè)系統(tǒng)既可用于鋰電池,也可用于鎳基電池,對(duì)電池的要求較低,系統(tǒng)作為便攜式儀器的電源解決方案在實(shí)際應(yīng)用中已得到驗(yàn)證。系統(tǒng)運(yùn)行可靠,功能強(qiáng)大顯示直觀,能夠與其他功能協(xié)調(diào)工作。隨著各種便攜式電子產(chǎn)品的廣泛應(yīng)用,電池的智能化已成為一種必不可少的功能。因此本文所介紹的具有較強(qiáng)的實(shí)用性



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉