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