電池供電類設(shè)備存在已久,。然而自手機(jī)問世以來,由可充電電池供電的設(shè)備數(shù)量在過去二十年呈現(xiàn)出指數(shù)級增長,。截至2018年,,成千上萬種型號的手機(jī),、平板電腦,、筆記本電腦和許多其他小型電器都在使用鋰電池。
對于所有便攜式設(shè)備而言,,功耗都是一個至關(guān)重要的因素,。硬件開發(fā)人員越來越注重在增加功能、減小尺寸,、降低成本的同時,,實現(xiàn)低功耗方案。軟件開發(fā)人員也以舊算法為切入點(diǎn),,針對操作系統(tǒng)領(lǐng)域(即通過能量監(jiān)測調(diào)度)和新興領(lǐng)域(例如機(jī)器學(xué)習(xí)),,研發(fā)新的功率監(jiān)測方法,,力求降低功耗,。功率是指瞬時消耗的能量。如公式1所示,,在電學(xué)中,,功率等于瞬時電壓與電流之積。功率單位為瓦特(W),,表示“焦耳每秒”,。
P=V×I [W= Js]
公式1 - 功率公式
能量等于功率與時間的乘積。電路消耗能量,,電池則存儲能量,。功率管理通常是指管理瞬時電流和電壓,以滿足功率傳輸能力和負(fù)載條件,。能量監(jiān)測通常會提供有關(guān)能耗的信息,,從而幫助開發(fā)人員進(jìn)行電池管理和總體功率基準(zhǔn)測試。通過專門設(shè)計的軟件(可根據(jù)特定負(fù)荷采取相應(yīng)操作)監(jiān)視能量時,,即開始了主動能量管理,。
主動能量管理可以基于預(yù)定義的設(shè)置自動進(jìn)行,也可以在軟件啟動時手動進(jìn)行,,其作用是為用戶提供特定的建議,。例如,大多數(shù)筆記本電腦在使用電池而不是交流電源運(yùn)行時,,處理器性能會自動降低,,并且改用低功耗、低性能的集成圖形處理器,,而不使用專用處理器,。可以關(guān)閉筆記本電腦的一些外設(shè),,以延長電池供電時間,,而用戶也可能收到降低屏幕亮度或調(diào)暗鍵盤背光的通知,。大多數(shù)智能手機(jī)都提供各種節(jié)能選項,當(dāng)電池電量降至特定水平時,,主動能量管理便會提出使用節(jié)能選項的建議,,包括關(guān)閉一些現(xiàn)有的互聯(lián)網(wǎng)連接、降低屏幕亮度等,。
但類似情況并不限于電池供電設(shè)備,。服務(wù)器會仔細(xì)監(jiān)測功耗和負(fù)荷水平,以確定是否可以完全停止或暫停某些服務(wù),。在虛擬服務(wù)器中,,可根據(jù)電流總用量和基于統(tǒng)計信息預(yù)測的用量增加和縮減應(yīng)用。對于這類服務(wù)器,,可以使用虛擬機(jī)管理程序完全關(guān)閉某些虛擬機(jī),。進(jìn)行調(diào)試時,也可以使用主動能量管理,。能量監(jiān)測可提供非常有效的信息,,用以確定整個系統(tǒng)或部分系統(tǒng)是否在界定范圍內(nèi)運(yùn)行。
用于測量直流功率和能量的電路
如前文所述,,電功率是電壓與電流的乘積,。要精確測量功率,需要對電壓和電流進(jìn)行精準(zhǔn)測量,。在一定時段內(nèi)測量功率并將結(jié)果累加,,即得到能量。功耗在大多數(shù)情況下都不是恒定值,,因此,,必須使用一個選定測量帶寬,在此范圍內(nèi)對電壓和電流進(jìn)行測量,。直流電壓測量電路的一個典型示例是圖1左側(cè)所示的簡單分壓器和右側(cè)圖1所示的緩沖分壓器,。這兩個電路都可以通過適當(dāng)?shù)男?zhǔn)提供高精度測量結(jié)果,盡管帶緩沖的分壓器比不帶緩沖的分壓器價格昂貴,,但前者通常功耗更低,,尤其適合測量極低的直流信號。
圖1 - 分壓器電路
雖然借助霍爾效應(yīng)也可以測量電流(包括直流電流),,但本文側(cè)重于使用分流電阻測量直流電流,,因為后者更常用而且費(fèi)用更低。分流電阻是一個低阻值電阻,,與電路串聯(lián),。電流流經(jīng)分流電阻時,分流電阻兩端會產(chǎn)生一個小的壓差,。該壓差與電流成正比,,如公式2所示,,并且通常使用運(yùn)算放大器進(jìn)行放大。
VDROP=RSHUNT×I
公式2 - 分流電阻兩端的壓差
由于分流電阻與電路的其余部分串聯(lián),,因此可以連接在任意一側(cè):上橋臂(分流電阻的一個端子直接連接總線電壓),,或者下橋臂(分流電阻的一個端子接地),如圖2所示,。在這兩種情況下,,分流電阻都會出現(xiàn)一個小的壓差,電路的總電壓會降低,。但是,,分流電阻的連接位置會有一些影響:
- 如果分流電阻放在下橋臂(圖2右側(cè)),其兩端的電壓將直接接地,。由于分流電阻通常很小,,其兩端的壓差也很小,因此電流測量電路使用便宜的低壓運(yùn)算放大器即可非常方便地放大壓差,。這對于縮減成本很有幫助,。但下橋臂分流有一個明顯的不足,,即整個電路不再直接接地,,而是連接高于接地端電壓的位置。分流電阻兩端的壓差通常以毫伏計,。
- 如果將分流電阻連接在上橋臂(圖2左側(cè)),,則電路直接接地,可消除地彈反射效應(yīng),。如果要對電路進(jìn)行精確測量或必須提供精確的輸出,,則應(yīng)選用此連接方法。此方法的唯一缺點(diǎn)是需要使用電壓更高的差分運(yùn)算放大器電路,,并且視運(yùn)算放大器的帶寬而定,,費(fèi)用也可能會增加。
圖2 - 電流測量電路
盡管電壓,、電流甚至功率本身都可以通過模擬電路輕松測量,,而且成本很低,但能量測量卻需要使用更復(fù)雜的電路來實現(xiàn),。然而,,傳統(tǒng)的能量測量方法是使用模擬電路測量電壓和電流,然后使用模數(shù)轉(zhuǎn)換器(ADC)將模擬信號轉(zhuǎn)換為數(shù)字信號,,將數(shù)據(jù)輸出到單片機(jī),。單片機(jī)的作用是對信號隨時間累加的功率進(jìn)行采樣,從而實現(xiàn)能量測量,。測量能量的典型電路如圖3所示,。在測量電路中增加單片機(jī)既有優(yōu)點(diǎn)也有缺點(diǎn),。一方面,在算法計算,、監(jiān)視不同行為和進(jìn)行更詳細(xì)的報告方面具有很大的靈活性,,例如每小時、每天等,。此外,,單片機(jī)的作用不僅限于能量測量,還可以觸發(fā)事件,、運(yùn)行自定義狀態(tài)機(jī)或滿足工程師的任何需求,。而如果系統(tǒng)原本就需要使用單片機(jī),則成本和物料清單(BOM)的增加并不是問題,。另一方面,,使用單片機(jī)監(jiān)測能量的缺點(diǎn)則是測量系統(tǒng)的總功耗、令人討厭的代碼開發(fā)工作和開銷成本都會增加,,而且視精度要求而定,,有時可能還需要外部ADC。
圖3 - 典型的能量測量電路
多年來,,隨著業(yè)界對直流能量監(jiān)測功能的需求不斷增長,,多種面向此類應(yīng)用的集成電路相繼問世。例如Microchip的PAC1934集成電路,。此類集成電路只需使用分流電阻作為外部元件,,即可輕松地同時對多達(dá)4個通道進(jìn)行采樣?;倦娐穲D如圖4所示,。電路中集成了運(yùn)算放大器、ADC,、算術(shù)運(yùn)算邏輯,、存儲器和用于連接系統(tǒng)的標(biāo)準(zhǔn)接口(通常為I2C或SPI)。與傳統(tǒng)方法相比,,使用集成電路的優(yōu)勢在成本方面尤為明顯,,這是因為在一個集成電路中集成了能量測量所需的一切,使BOM和PCB尺寸顯著降低,。
圖4 - Microchip PAC1934框圖(可同時測量4個通道)
主動能量監(jiān)測的優(yōu)勢
憑借適合大多數(shù)用例的靈活配置,,專用集成電路能夠以極低的功耗在長時段內(nèi)累加功率。通常,,功率采樣率最低為每秒8次采樣,,最高可達(dá)1 KSPS。例如,PAC1934以8 SPS運(yùn)行時,,可以累加超過36小時的功率,,并且電流小于16 mA,同時4個通道全部有效且以16位的分辨率運(yùn)行,,無需軟件干預(yù),。此方法允許采樣率動態(tài)變化,從而可以擴(kuò)大應(yīng)用范圍,。例如在標(biāo)準(zhǔn)筆記本電腦中使用集成電路監(jiān)測電源軌,。當(dāng)筆記本電腦處于運(yùn)行和活動狀態(tài)時,能夠以1024 SPS的采樣率進(jìn)行監(jiān)測,,而當(dāng)筆記本電腦處于掛起狀態(tài)時,,監(jiān)測速度可能降到8 SPS,因為在掛起狀態(tài)下,,功耗不會有太大的波動,。此外,降低采樣率可以減少能量監(jiān)測的功耗,,而不會影響性能,。
主動能量監(jiān)測最常見的一個用例是電池電量計量。專用集成電路可監(jiān)測電池的電壓和電流,,隨時獲知當(dāng)前電池電量,。更先進(jìn)的電池電量計還可以檢測到電池遇到了特定問題,例如電量計可以跟蹤電池的電壓與電量的關(guān)系,,如果二者之間不再有對應(yīng)關(guān)系,,則意味著電池的總?cè)萘恳蚶匣蚱渌蛩囟s減,。主動能量監(jiān)測也是標(biāo)準(zhǔn)電池管理系統(tǒng)(BMS)的核心,。BMS是多節(jié)電池組所使用的電路,負(fù)責(zé)對電池組進(jìn)行安全充電和放電,,并主動測量其電壓和電流,,確保每節(jié)電池的參數(shù)都相同。BMS的功能還包括檢測故障電池,,或在電壓過高或過低時斷開電池組,。
主動能量監(jiān)測的另一個常見應(yīng)用是與智能手機(jī)和平板電腦上的操作系統(tǒng)以及筆記本電腦、計算機(jī)和服務(wù)器上的Linux?或Microsoft Windows?搭配使用,。對于智能手機(jī)和平板電腦,,操作系統(tǒng)通過各種方法監(jiān)測不同服務(wù)和應(yīng)用程序所消耗的電量。在早期階段,,系統(tǒng)不直接測量能量,,而是使用表格數(shù)據(jù)獲取各個工作點(diǎn)的功耗,基于CPU,、GPU和屏幕使用情況估算能量,。估算出的能耗數(shù)據(jù)以統(tǒng)計數(shù)據(jù)的形式報告,,便于用戶決定如何進(jìn)一步操作設(shè)備。自Windows 8起,,Microsoft在筆記本電腦和個人計算機(jī)中引入了能量估計引擎(Energy Estimation Engine,,E3)。E3早期階段的工作原理與智能手機(jī)中的估算算法類似,,能夠根據(jù)各種資源的使用情況(處理器,、圖形、磁盤,、存儲器,、網(wǎng)絡(luò)和顯示器等)來估算每項任務(wù)的功耗,從而實現(xiàn)功耗跟蹤,。E3還引入了能量計量接口(EMI),,系統(tǒng)制造商可以通過該接口為系統(tǒng)添加實際可用的能量測量傳感器,并進(jìn)行相應(yīng)聲明,。如果加入了此類傳感器,,E3會利用這些傳感器準(zhǔn)確地測量功率和能量,而不是只進(jìn)行估算,。某些筆記本電腦制造商已在其產(chǎn)品中實現(xiàn)了這些功能,。此外,過去還存在一些其他的方法(例如Sony在Vaio筆記本中實現(xiàn)的能量監(jiān)測),,但沒有支持這些方法的操作系統(tǒng),,只有專有應(yīng)用程序才能訪問相關(guān)數(shù)據(jù)。Linux尚未提供與Microsoft E3相當(dāng)?shù)墓ぞ?,但?jù)報道稱,,他們已著手進(jìn)行相關(guān)工作。工業(yè)I/O子系統(tǒng)支持在操作系統(tǒng)中加入各種傳感器,,為用戶空間的應(yīng)用程序提供非常簡單且功能強(qiáng)大的接口(基于文件的接口),。然而,在本文撰寫之時,,工業(yè)I/O子系統(tǒng)仍是內(nèi)核的擴(kuò)展,,而不是默認(rèn)Linux架構(gòu)的組成部分。Linux還支持能量監(jiān)測調(diào)度和智能功率分配,,這是一種用于嵌入式Linux領(lǐng)域的算法,,可幫助系統(tǒng)決定如何調(diào)度不同的任務(wù),同時對熱問題予以考量(能耗導(dǎo)致CPU/GPU發(fā)熱),。
能量測量集成電路的另一個值得關(guān)注的應(yīng)用,,是對USB功率和能量(出于各種原因)以及在服務(wù)器應(yīng)用程序中的使用情況進(jìn)行監(jiān)測,如本文第一部分所述。由于服務(wù)器采用不間斷運(yùn)行的設(shè)計,,因此監(jiān)測能耗有很多好處,,例如可通過主動服務(wù)控制提高總體電源效率,能滿足越來越高的能效標(biāo)準(zhǔn),,允許系統(tǒng)管理員在服務(wù)器的某些部分出現(xiàn)功耗異常(表示未來可能發(fā)生故障)時執(zhí)行預(yù)測性維護(hù),。
總結(jié)
就能量監(jiān)測的需求以及系統(tǒng)需要執(zhí)行的其他功能而論,某些方法可能比其他方法更適用,。如果嵌入式系統(tǒng)是根據(jù)自身用途專門構(gòu)建,,并且需要了解自身功耗或估算能耗,則傳統(tǒng)方法更適用,。我們還建議在單片機(jī)中加入內(nèi)部ADC,,以便最大限度縮減能量監(jiān)測功能的成本。采用這種方法,,只需要使用進(jìn)行電壓和電流檢測的外部模擬電路,。如果需要非常高的測量精度而不計BOM成本和功耗,則傳統(tǒng)方法比集成電路更適用,。
但在很多情況下,,更適合采用集成電路方法。例如,,如果想要在操作系統(tǒng)中集成能量測量,,就適合采用集成電路方法,因為集成解決方案就是為解決這一問題而構(gòu)建,,通過適當(dāng)?shù)尿?qū)動程序,,系統(tǒng)能自動識別出能量測量并知道如何操作。能量測量集成電路通??梢詼y量多個通道(從而監(jiān)測多條總線),,因此,在需要監(jiān)測大量總線時,,集成解決方案具備明顯優(yōu)勢,。此外,同一條通信總線上可以使用多個集成電路(例如I2C或SPI),。另一個更適合采用集成解決方案的情形是,在系統(tǒng)處于功耗極低的睡眠模式或完全關(guān)閉的情況下,,在較長的一段時間內(nèi)測量能量,。集成的能量監(jiān)測芯片僅消耗極少的功率,并能在特定時段內(nèi)自行累加能量,,無需任何系統(tǒng)干預(yù),,而這正是實現(xiàn)集成解決方案的基礎(chǔ)。
對于有較高尺寸要求的高度集成化和密集型PCB(例如手機(jī)、平板電腦或筆記本電腦的主板),,與等效的分立元件相比,,集成電路占用的空間顯然更小。例如,,在WLCSP(晶圓級芯片封裝)尺寸的芯片(大小為2.225 x 2.17 mm)中,,包含一個能同時監(jiān)測四個通道的能量測量集成電路。
[1] https://www.kernel.org/doc/html/v4.16/driver-api/iio/index.html
[2] https://developer.arm.com/open-source/energy-aware-scheduling
[3] 功率計示例:https://www.jeffgeerling.com/blog/2017/review-satechi-usb-type-c-inline-power-meter-st-tcpm
[4] https://www.energystar.gov