北京信息職業(yè)技術(shù)學(xué)院 路秋生 程維東 王昭玲
系統(tǒng)管理總線(SMBus)是一種雙線接口,通過SMBus可以使掛在SMBus上的有關(guān)部件相互通信,SMBus主要基于I2C技術(shù),SMBus是用于系統(tǒng)和與電源管理有關(guān)任務(wù)的控制總線,采用SMBus可以簡化系統(tǒng)的設(shè)計,便于系統(tǒng)的擴展。通過SMBus可以由有關(guān)器件提供制造商的有關(guān)信息,告知系統(tǒng)它的模塊/部件號,保持一個事件的狀態(tài)信息、報告各種錯誤類型、接受控制參數(shù)、并返回系統(tǒng)的工作狀態(tài)信息。
SMBus可用于電路系統(tǒng)設(shè)計、大規(guī)模集成電路(VLSI)設(shè)計和為系統(tǒng)管理總線芯片寫程序支持代碼的應(yīng)用場合。
SMBus技術(shù)文件主要有V1.0、V1.1和V2.0三個版本[1],V1.0總則部分在1995.02.15發(fā)布,V1.1版本在1998.12.11發(fā)布,V2.0版本由智能電池系統(tǒng)(SBS)實施論壇(SBSIF)在2000.08.03發(fā)布。
SMBus技術(shù)文件V2.0主要由Duracell;Inc.;Energizer Power Systems;Inc.;Fujitsu;Ltd.;Intel Corporation;Linear Technology Inc.;Maxim Integrated Products;Mitsubishi Electric Semiconductor Company;PowerSmart;Inc.;Toshiba Battery Co.Ltd.;Unitrode Corporation;USAR Systems;Inc.等公司推出[1]。
SMBus技術(shù)文件V2.0主要由簡介、總體特性、層1-物理層、層2-數(shù)據(jù)鏈路層、層3-網(wǎng)絡(luò)層、附錄A:可選SMBus信號、附錄B:I2C與SMBus的異同、附錄C:SMBus器件的尋址等部分內(nèi)容組成[1]。
做為數(shù)控電源系統(tǒng),需要一個用于電源通信管理的工業(yè)標準協(xié)議,在這個標準協(xié)議中需注意以下幾方面的問題,首先這個協(xié)議對電源系統(tǒng)設(shè)計人員而言要簡單、易懂和易學(xué),并且造價要低,SMBus就是一個很好的應(yīng)用實例。
系統(tǒng)管理總線(SMBus)標準涉及三類設(shè)備。主設(shè)備、從設(shè)備,接收或響應(yīng)命令的設(shè)備。主設(shè)備用來發(fā)布命令,產(chǎn)生時鐘和終止發(fā)送的設(shè)備。主設(shè)備是一種專用的設(shè)備,它提供與系統(tǒng)CPU的主接口。主設(shè)備必須具有主從機功能,并且必須支持SMBus通信協(xié)議。在一個系統(tǒng)里只允許有一個主設(shè)備。
1998年,智能電池系統(tǒng)接口論壇(SBS-IF)發(fā)布了SBS 1.1和SMBus 1.1,在SMBus 1.1中的主要技術(shù)改進是在每個SMBus通信數(shù)據(jù)包的結(jié)尾引入了可選的數(shù)據(jù)包錯誤檢測(PEC)字節(jié),這個8比特數(shù)據(jù)包錯誤檢測(PEC)字節(jié)是采用標準的數(shù)據(jù)包內(nèi)容循環(huán)冗余校驗和糾錯檢錯(CRC)方法。
2000年,SBS-IF發(fā)布了SMBus2.0,即所謂基于PCI的SMBus,SMBus2.0中充許器件的地址被動態(tài)分配,然后,外設(shè)元件互聯(lián)特殊興趣小組(PCISIG:Peripheral Component Inter-connect Special Interest Group)(在2000.10.20日)將它PCI連接器的第40和41引腳分配給SMBus的時鐘和數(shù)據(jù)信號。
在2000年,SBS-IF公布了它用于Windows的SMBus的驅(qū)動程序,和微軟的SMBus驅(qū)動程序不同,SBSIF推出的SMBus驅(qū)動程序可以用于Windows98系統(tǒng),并且工作時不需借助于嵌入式控制器。
SMBus的主要任務(wù)由負載點聯(lián)盟POLA(Point of Load Alliance)和分布式電源開放標準聯(lián)盟DOSA(Distributed-Power Open Standards Alliance)加以賦予。
采用SMBus的主要優(yōu)點如下。
(1)像I2C一樣造價低。
(2)比I2C更魯棒。
延遲到特定定時點強迫總線復(fù)位。
(3)比I2C有更多的新特性。
1)SMBALERT#信號線用于終端控制;
2)數(shù)據(jù)包出錯檢測(PEC);
3)主機報告協(xié)議。
(4)在常規(guī)電技術(shù)性能上和I2C兼容。
I2C總線接口技術(shù)標準創(chuàng)建于1982年,Philips發(fā)明I2C總線接口技術(shù)的初衷是要解決在同一塊電路板上或同一機柜里電子部件之間的通信問題,I2C總線為一雙線串行總線,一條為串行信號線(SDA),一條為串行時鐘信號線(SLK)。1987年P(guān)hilips公司為I2C總線申請了美國專利,通過I2C總線使掛在同一I2C總線上的器件之間完成通信,通信內(nèi)容包含通信命令、控制數(shù)據(jù)和控制信息,這些信息可以在主控設(shè)備和被控設(shè)備之間共享。I2C總線的簡單應(yīng)用場合是有一個主控器件來完成通信控制工作,由于I2C總線使用簡單,所以I2C總線得到了廣泛的應(yīng)用,I2C總線的技術(shù)指標也在不斷的改進,現(xiàn)I2C總線已獲得了更高的通信速度和更廣的尋址控制范圍。
(1)I2C總線最主要的優(yōu)點
I2C總線最主要的優(yōu)點是其簡單性和有效性。由于接口直接在組件之上,因此I2C總線占用的空間非常小,減少了電路板的空間和芯片管腳的數(shù)量,降低了互聯(lián)成本??偩€的長度可高達25英尺,并且能夠以10Kbps的最大傳輸速率支持40個組件。I2C總線的另一個優(yōu)點是,它支持多主控(multimastering),其中任何能夠進行發(fā)送和接收的設(shè)備都可以成為主總線。一個主控能夠控制信號的傳輸和時鐘頻率。當然,在任何時間點上只能有一個主控。
(2)I2C總線的特點
1)只要求兩條總線線路,一條是串行數(shù)據(jù)線SDA,一條是串行時鐘線SCL;
2)每個連接到總線的器件都可以通過唯一的地址和一直存在的簡單的主機/從機關(guān)系軟件設(shè)定地址,主機可以作為主機發(fā)送器或主機接收器;
3)它是一個真正的多主機總線,如果兩個或更多主機同時初始化,數(shù)據(jù)傳輸可以通過沖突檢測和仲裁防止數(shù)據(jù)被破壞;
4)串行的8位雙向數(shù)據(jù)傳輸位速率在標準模式下可達100kbit/s,快速模式下可達400kbit/s,高速模式下可達3.4Mbit/s;
5)連接到相同總線的IC數(shù)量只受到總線的最大電容400pF的限制。
SMBus技術(shù)文件V2.0主要介紹了有關(guān)SMBus的電性能、網(wǎng)絡(luò)控制環(huán)境和SMBus器件使用的通信協(xié)議等內(nèi)容,這些可以通過7層OSI網(wǎng)絡(luò)模型的前3層協(xié)議(物理層、數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層)加以理解[1]。SMBus的主要目的是定義智能電池、智能電池充電器和系統(tǒng)微控制器之間的通信問題。但是,SMBus也可用于連接電源有關(guān)的器件、系統(tǒng)傳感器、EEPROMs等器件,使相互之間完成通信任務(wù),SMBus技術(shù)文件V2.0是V1.0和1.1版本的更高級版本,V2.0和版本V1.0、1.1版本在技術(shù)上是兼容的。
SMBus是I2C總線的一種具體應(yīng)用,在SMBus中規(guī)定了數(shù)據(jù)通信協(xié)議、有關(guān)器件尋址方式、有關(guān)具體數(shù)據(jù)傳輸命令的電氣技術(shù)要求,SMBus主控設(shè)備的信息傳輸和有關(guān)智能器件的信息傳輸?shù)燃夹g(shù)內(nèi)容。
SMBus是一種可以掛接多個器件的雙線雙向串行總線[1],總線主控制器和總線從控制器可以連接到SMBus總線上。SMBus總線可以用于小功率和大功率電路的應(yīng)用場合,V1.0和V1.1針對小功率的應(yīng)用場合,例如智能電池或更低功率器件的應(yīng)用場合,V2.0主要針對更高功率的電性能指標和更高驅(qū)動性能的應(yīng)用場合,例如SMBus器件和PCI板卡之間通信的應(yīng)用場合。圖1表示采用SMBus總線的電路拓撲結(jié)構(gòu),在圖1中分別采用了VDD=5V和VBUS=3V的兩組電源供電,這里VDD=5V±10%。SMBCLK和SMBDAT為雙向傳輸信號,通過上拉電阻接RP至電源供電VDD。當總線上無數(shù)據(jù)傳輸時,SMBCLK和SMBDAT信號線均為高電位,接至SMBus總線上的器件輸出應(yīng)為集電極開路輸出,以便實現(xiàn)線與邏輯功能,在設(shè)計SMBus總線器件的輸入和輸出級時需注意,以便在它們的供電關(guān)斷時不要有對地的電流通路形成。
當SMBus總線器件發(fā)出一個“0”電平時應(yīng)使總線電位為低電位,當SMBus總線器件發(fā)出一個“1”電平時應(yīng)使總線電位為高電位??偩€電位可以通過上拉電阻或一個電流源將總線電位拉高,在總線分布電容較大的應(yīng)用場合,在電路上應(yīng)采取適當?shù)拇胧源_??偩€上高低電位變化速度能滿足電路的技術(shù)要求。SMBus總線上拉電路如圖2所示,附加技術(shù)要求如下[1][3]。
圖1 表示采用SMBus總線的電路拓撲結(jié)構(gòu)
圖2 SMBus總線上拉電路
圖3 SMBus總線的電路連接模型
圖4 多個SMBus總線器件的連接
圖5 智能電池系統(tǒng)的有關(guān)部件的連接框圖
1)在400pF容性負載和2.7kΩ到3.3V供電的上拉電阻條件下的最大下降時間為300ns;
2)在20pF容性負載和2.7kΩ到3.3V供電的上拉電阻條件下的最小下降時間為10ns;
3)在去掉電源供電的工作條件前,SMBus應(yīng)處于三態(tài)工作狀態(tài);
4)如果系統(tǒng)沒有供電輸入,應(yīng)不給SMBus加電加載。
圖3為SMBus總線的電路連接模型,為使電路具有例如智能電池的熱插拔工作特性和具有ESD保護功能,使用時應(yīng)加一只串聯(lián)電阻RS2。SMBus器件和連接的等效串聯(lián)電阻(ESR)應(yīng)不大于1.1kΩ,以確保能滿足SMBus總線在小功率應(yīng)用場合對低電平VOL;MAX的技術(shù)要求,圖3所示電路模型也適用于大功率的應(yīng)用場合,由于小功率和大功率應(yīng)用場合的不同,所以有關(guān)元器件的參數(shù)可能有所不同。上拉電阻RP的參數(shù)值和系統(tǒng)電源供電VDD和SMBus總線的分布電容值有關(guān),如果SMBus總線的電源供電采用電流源(IP),電路的工作性能會更好些,但是,電路的造價可能會高些。圖3中的二極管為ESD保護二極管,ESD保護二極管在例如有可插拔的SMBus器件(例如智能電池)的應(yīng)用場合是非常有用的。多個SMBus總線器件的連接如圖4所示[5]。
智能電池系統(tǒng)(SBS)是指采用了總線技術(shù)的電池系統(tǒng)。智能電池利用內(nèi)部電子線路來測量、計算和存儲電池的有關(guān)數(shù)據(jù),使電源的使用和管理更加可預(yù)測,使用更方便?,F(xiàn)在智能電池已廣泛應(yīng)用于筆記本電腦、不間斷電源、手機和便攜式電子等產(chǎn)品中。智能電池極大的簡化了電池系統(tǒng)的設(shè)計,還能防止意外的系統(tǒng)停機。一個基本的智能電池系統(tǒng)(SBS)系統(tǒng)由系統(tǒng)管理總線(SMBus)、智能電池充電器和智能電池三個基本部分組成。
圖6 筆記本電腦的智能電池系統(tǒng)有關(guān)顯示界面
圖7 筆記本電腦智能電池系統(tǒng)的電池信息顯示界面
圖8 電池系統(tǒng)的電源選項設(shè)置界面
智能電池配有專門的硬件,用以提供電池的現(xiàn)有有關(guān)狀態(tài)信息,將計算出的有關(guān)信息或預(yù)測出的有關(guān)信息傳送到SMBus,并由軟件控制主控充電設(shè)備對電池的充電。
智能電池系統(tǒng)(SBS)的模塊化特性使得設(shè)計閉環(huán)電池充電系統(tǒng)變的非常方便,這樣的系統(tǒng)允許采用電池組獨立充電器(智能充電器),智能電池對高可靠性電池備份的應(yīng)用場合非常重要。
與非智能電池系統(tǒng)相比,智能電池系統(tǒng)需要不斷地與系統(tǒng)主控制器交互信息,使電池系統(tǒng)的構(gòu)成增加了復(fù)雜性。
智能電池系統(tǒng)有關(guān)部件的連接框圖如圖5所示[2][4]。
例如在筆記本電腦的智能電池系統(tǒng)中,系統(tǒng)主控制器需要實時地與電池系統(tǒng)交互信息,以確定何時應(yīng)該對電池充電或放電,以及面向使用者實時提供電池容量的有關(guān)信息,在Windows7系統(tǒng)下有關(guān)信息如圖6所示。從圖6可以看出,在筆記本電腦的智能電池系統(tǒng)中可以顯示當前電源供電的來源、使用電池數(shù)量、電池當前電量、電池報警、休眠等信息,筆記本電腦智能電池系統(tǒng)的電池控制信息設(shè)定顯示界面如圖7所示[6],電池系統(tǒng)的電源選項設(shè)置界面如圖8所示。
正是這種信息交互,使系統(tǒng)控制主機和使用者能更準確地掌握電池的狀態(tài)(例如電池有效容量、當前充/放電率、歷史累計充放電次數(shù)、預(yù)測壽命等狀態(tài)信息),從而使電池的使用非常方便。
智能電池系統(tǒng)(SBS)可以極大提升電池組的使用性能。充電對鋰離子電池造成危害的途徑主要有三種:電池充電電壓過高;充電電流過大(過大充電電流會引起電池發(fā)熱);不能正確地終止充電過程,或在過低的溫度下對鋰離子電池充電。在設(shè)計鋰離子電池充電器時需采取額外的預(yù)防性措施以避免出現(xiàn)這些問題,以確保鋰離子電池充電系統(tǒng)有關(guān)工作參數(shù)在安全的范圍內(nèi)。
例如智能電池充電器要求允許-9%的電壓偏差,并強調(diào)正偏差不得超過1%,以確保符合智能電池充電的安全標準。但是,在實際應(yīng)用中,電池充電電壓偏差的正負是隨機的,所以應(yīng)使充電器的目標電壓值誤差要小,一般設(shè)定在額定值的-4%的范圍內(nèi)。
由于電池充電電壓的不準確(無論是-4%還是-9%),電池始終處于充電不足的狀態(tài)。據(jù)統(tǒng)計,即使充電后電壓只比額定值低0.05%,鋰離子電池容量的下降卻高達15%,所以鋰離子電池充電電壓的準確性很重要。
對充電環(huán)境更詳細的檢測可以改善鋰離子電池的充電效率。即使在最理想的情況下,假設(shè)充電器的精確度為100%,充電通路上位于充電器電池間的電阻元件會引入額外的電壓降,特別是在鋰離子電池的恒流充電階段。由于電阻引入的電壓降會隨充電電流的降低而逐漸減弱,充電器最終會完成充電過程,但電池的充電時間會延長。這些額外的壓降會導(dǎo)致充電過程過早地從恒流進入恒壓充電階段,而影響電池充電的準確性和充電效果。最理想的充電狀態(tài)是充電器的輸出準確地消除了電阻電壓降的影響。
理想的智能充電系統(tǒng)應(yīng)能提供兩個或更多個SMBus端口,這樣,兩個或更多個電池就可以同時與充電器通信了,從而使兩個或更多個電池可以被同時充電[6]。
一個好的智能電池管理系統(tǒng)(SBS)可以實現(xiàn)更完全、更快速的充電過程管理,同時進行高效的電池放電過程管理,并對危險情況(例如電池充電電壓超限)實現(xiàn)檢測和進行快速反應(yīng),將電池充到真實的容量,避免智能電池充電器由于監(jiān)視電壓不準(例如一般電池充電精度為-4%到-9%)而造成的充電不足。
通過以上的討論可以看出,利用SMBus可以極大地改善電源管理系統(tǒng)的可控性,提高電源管理系統(tǒng)的工作可靠性,并改善電源系統(tǒng)的監(jiān)控特性。由于SMBus的使用提高了電源系統(tǒng)的工作性能。
[1]System Management Bus(SMBus)Specifcation Version 2.0 August 3,2000.
[2]Smart Battery System Specifcations Smart Battery Data Specifcation Revision 1.1.December 11,1998.
[3]Robert V.White,Introduction to the PMBus,Arttesyn Tevhnologies,Chair,PMBus Specifcation Working Group,May 2005.
[4]Part I General Requirements;Transport and Electrical Interface PMBus Power system Management Protocol Specifcation;Revision 1.15 February 2007.
[5]Power Supply Management Interface Design Guide Revision 2.12.
[6]Windows 7 operating system.