雖然借助霍爾效應(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è)功能的需求不斷增長(zhǎng),多種面向此類應(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ù)用例的靈活配置,專用集成電路能夠以極低的功耗在長(zhǎng)時(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)[1]支持在操作系統(tǒng)中加入各種傳感器,為用戶空間的應(yīng)用程序提供非常簡(jiǎn)單且功能強(qiáng)大的接口(基于文件的接口)。然而,在本文撰寫之時(shí),工業(yè)I/O子系統(tǒng)仍是內(nèi)核的擴(kuò)展,而不是默認(rèn)Linux架構(gòu)的組成部分。Linux還支持能量監(jiān)測(cè)調(diào)度[2]和智能功率分配,這是一種用于嵌入式Linux領(lǐng)域的算法,可幫助系統(tǒng)決定如何調(diào)度不同的任務(wù),同時(shí)對(duì)熱問題予以考量(能耗導(dǎo)致CPU/GPU發(fā)熱)。
能量測(cè)量集成電路的另一個(gè)值得關(guān)注的應(yīng)用,是對(duì)USB功率和能量(出于各種原因)[3]以及在服務(wù)器應(yīng)用程序中的使用情況進(jìn)行監(jiān)測(cè),如本文第一部分所述。由于服務(wù)器采用不間斷運(yùn)行的設(shè)計(jì),因此監(jiān)測(cè)能耗有很多好處,例如可通過主動(dòng)服務(wù)控制提高總體電源效率,能滿足越來越高的能效標(biāo)準(zhǔn)[4],允許系統(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è)量集成電路通??梢詼y(cè)量多個(gè)通道(從而監(jiān)測(cè)多條總線),因此,在需要監(jiān)測(cè)大量總線時(shí),集成解決方案具備明顯優(yōu)勢(shì)。此外,同一條通信總線上可以使用多個(gè)集成電路(例如I2C或SPI)。另一個(gè)更適合采用集成解決方案的情形是,在系統(tǒng)處于功耗極低的睡眠模式或完全關(guān)閉的情況下,在較長(zhǎng)的一段時(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
(來源:Microchip,作者:Adrian Lita)