隨著技術(shù)的發(fā)展和普及,,手持設(shè)備出現(xiàn)在越來越多的場合。手持設(shè)備以體積小,、重量輕,、可攜帶性好等優(yōu)勢吸引了各種電子設(shè)備向手持方向轉(zhuǎn)型和發(fā)展,同時也必然地提出了電池的充電和電量計量問題,。手機,、數(shù)碼相機、MP3,、筆記本,、PDA等手持設(shè)備都必備1個電池的充電電路以及可以在手持設(shè)備顯示界面上反饋當前電池電量的計量電路。本文通過2款高性能的芯片LM3658和DS2786,,以PXA270處理器為例,,介紹1種可應(yīng)用于各種手持設(shè)備場合的電路模塊。
1 硬件設(shè)計
1.1 PXA270處理器簡介
PXA270嵌入式處理器是Intel公司推出的基于XS-cale架構(gòu)的新一代高性能處理器,,主用應(yīng)用于高端無線手持和移動設(shè)備,。PXA270主頻可以設(shè)置在312~624 MHz之間,內(nèi)部集成了WMMX技術(shù),,擁有高性能,、低功耗的多媒體加速能力,可以很好地支持音頻,、視頻解碼,。同時它集成了Intel先進的SpeedStep技術(shù),可以動態(tài)地調(diào)節(jié)CPU的性能,,實現(xiàn)高效的功耗控制,。此外,PXA270內(nèi)部提供了UART,、I2C,、I2S、USB等各種常用接口,,使得PXA270可以應(yīng)用在各種場合,。
1.2 電池充電及電量計量電路
由于PXA270出色的移動性能,電池供電成為了PXA270系統(tǒng)的必需電路,。本系統(tǒng)中的充電芯片選用了美國國家半導(dǎo)體公司(National Semi-conductor Corporation)推出的LM3658,。它可以使用USB充電,也可以使用交流適配器充電,,同時具有電源管理功能,。該芯片可為單顆鋰電池和鋰聚合物電池安全充電,,終止充電誤差不超過1.5%,有助延長電池壽命,,因此適用于多種場合下的手持設(shè)備,,包括PDA、MP3,、數(shù)碼相機和手機等,。圖1是LM3658的引腳分布和典型電路。
如圖1所示,,EN_b是充電的使能端,,低電平表示允許充電,高電平表示禁止充電,。CHG_IN和USBpwr引腳分別表示交流適配器輸入和USB輸入,。輸入電壓都是在4.5~6 V之間。LM3658芯片在利用USB或交流適配器為鋰電池或鋰聚合物電池充電時,,若這2種電源都處于開啟狀態(tài),,充電器芯片便會自動選用預(yù)先設(shè)定的交流電模式。如果用交流適配器電源充電,,可以通過Iset引腳與地址之間連接1個電阻,,該電阻阻值的大小決定了充電時的電流大小。如果用USB給電池充電,,可以通過USB_sel引腳決定充電電流的大小,,該引腳低電平時充電電流為100 mA,高電平時充電電流為500mA,。LM3658通過BATT引腳連接電池的正極,,為電池提供充電電流。同時通過Ts引腳連接電池的負極,,獲取電池的溫度信息,。
Statl和Stat2高低電平的不同組合可以反映當前電池的4種充電狀態(tài),如表1所列,??梢詫tatl和Star2的狀態(tài)輸出到PXA270的GPIO,通過軟件程序讀出當前狀態(tài),,并顯示在用戶界面上,。
本系統(tǒng)中的電量計量芯片選用的是美國Dallas Semiconductor公司推出的一款基于開路電壓(OCV)的電量計量芯片——DS2786。該芯片能夠根據(jù)電池閑置期間的開路電壓來估算可充電鋰離子和鋰離子聚合物電池的可用電量,。通過儲存在IC中的查找表,,開路電壓可用于確定電池的相對電量,可以在電池包插入后立即得到準確的電量信息,。當電池高速率放電時,,無法使用OCV計量,因此DS2786使用庫侖計量作為估算相對電量的第2種方法,。
DS2786以百分比的形式給出剩余電量的同時,,還給出了電池電壓、電流和溫度信息,。電量計算所需的電池特性和應(yīng)用參數(shù)存儲在片上EE-PROM中,。為了支持在某些對成本比較敏感的場合對電量進行監(jiān)測,DS2786還提供了電流,、電壓和溫度的測量數(shù)據(jù),。
DS2786可以應(yīng)用在手持設(shè)備上,也可安裝在電池包內(nèi),,其典型應(yīng)用如圖2所示,。VDD是芯片DS2786的工作電源輸入引腳,而VIN則是所測量電池的電壓輸入引腳,。
通過VPROG引腳可以對芯片內(nèi)部EEPROM里存儲的查找表進行修改,。SCL和SDA分別是串行時鐘輸入和串行數(shù)據(jù)輸入/輸出,可以將電量計量數(shù)據(jù)傳遞給PXA270上的I2C接口進行讀取操作,。在2個輔助輸入端AN0和ANl,,可通過比例計量法提供電池包識別(PACK ID)電阻和熱敏電阻的阻抗計量。
本系統(tǒng)采用PXA270+LM3658+DS2786組成1個完整的嵌入式系統(tǒng)的電池充電及電量計量模塊,。LM3658負責電池的充電功能和反饋當前電池的充電狀態(tài),,DS2786負責提供當前電池的剩余電量信息,而PXA270則提供系統(tǒng)的控制和數(shù)據(jù)接收功能,。
模塊的系統(tǒng)框圖如圖3所示,。由于沒有采用USB電源供電,因此將LM3658芯片的CHG-IN引腳直接5 V輸入,。BATT端接上電池的正極進行充電,。在電池的正極同時接上N溝道的MOSFET管,可以實現(xiàn)對電池的安全保護,,防止充電過量,,出現(xiàn)電流過大、溫度過高等情況,。電池的充電狀態(tài)通過Statl和Stat2引腳將信息輸出到PXA270的GPIO進行讀取操作,。DS2786的VDD引腳用5 V外接電壓直接供電。而VIN引腳既可以用電池電壓輸入,,也可以用外接5 V電壓輸入,。當電池電壓輸入VIN的時候,DS2786可以根據(jù)OCV查找表計算電池的剩余電量,。當電池高速率放電時,,通過電流感測電阻R進行庫侖計測量,。最終通過SDA和SCL將電量信息輸出給PXA270的I2C接口。
2 軟件設(shè)計
本系統(tǒng)中PXA270上面運行的嵌入式操作系統(tǒng)采用微軟公司的Windows CE,。Windows CE是實時操作系統(tǒng),,支持在多種CPU硬件平臺上運行,并且提供了強大的開發(fā)工具,。為了使DS2786在系統(tǒng)中能夠正常地工作,,必須對其編寫基于Windows CE 5.O的驅(qū)動程序。
本模塊的驅(qū)動程序設(shè)計采用的是流接口的形式,。Windows CE的流接口驅(qū)動程序以DLL(動態(tài)鏈接庫)的形式存在,,由設(shè)備管理器(通常是de-vice.exe或者gwes.exe)統(tǒng)一加載、管理和卸載,。與具有單獨目的的本機設(shè)備驅(qū)動程序相比,,所有流接口驅(qū)動程序都是用同一接口,并調(diào)用同一個函數(shù)集,。每個流式接口驅(qū)動程序必須實現(xiàn)1組標準的函數(shù),,用來完成標準的文件I/O函數(shù)和電源管理函數(shù),這些函數(shù)提供給Windows CE操作系統(tǒng)的內(nèi)核使用,。這些函數(shù)通常叫做流式接口驅(qū)動程序的DLL接口,。同時,本驅(qū)動程序設(shè)計采用分層驅(qū)動的形式,。分層驅(qū)動程序把驅(qū)動程序的代碼分為2層:上面一層叫模型設(shè)備驅(qū)動(MDD),,下面一層叫平臺相關(guān)驅(qū)動(PDD)。Windows CE操作系統(tǒng)自帶驅(qū)動的MDD代碼,,MDD的代碼是無需更改的,,只需修改PDD層的代碼。本系統(tǒng)的主要涉及函數(shù)如下:
驅(qū)動程序調(diào)用PDD層的初始化函數(shù)BatteryPDDlnitialize,,初始化CPU的GPIO,、相關(guān)寄存器和電池狀態(tài)全局變量。同時定義了1個SYSTEM_ POWER_STATUS_EX2結(jié)構(gòu)體變量sps,。通過BatteryPDDGetStatus函數(shù)從DS2786芯片中得到電池當前的狀態(tài)信息來更新sps結(jié)構(gòu)體中的各個電池信息,。用戶界面上也可以根據(jù)sps結(jié)構(gòu)體中的內(nèi)容更新當前的顯示狀態(tài)。這樣就完成了電量計量的實時更新和顯示,。
結(jié)語
本文研究并設(shè)計了一種電池充電及電量計量的硬件電路,,并且給出了在Windows CE操作系統(tǒng)下的驅(qū)動設(shè)計,實現(xiàn)了完整的軟硬件模塊,。該模塊設(shè)計簡單,,性能出色,可以滿足大多數(shù)情況下手持消費電子的需求,具有很好的應(yīng)用前景,。