ec是什么意思 筆記本電腦中的隱形管家


筆記本有很多臺式機沒有的有趣功能:合上蓋子帶上就走的便利性,睡眠時神秘的呼吸燈,漂亮的鍵盤燈等等 。這些功能很多都可以在電腦關機的時候還在起作用,那么是誰在控制他們呢?肯定不是CPU,這也讓Windows等操作系統失去了執行的土壤,他們也可以被排除 。這個隱形的管家就是EC 。
EC簡介
幾乎所有的筆記本的主板上都一個小家伙:EC(Embedded Controller),它是一個16位的小芯片,它與服務器中的BMC類似,掌控筆記本電腦的方方面面 。它最早脫胎于筆記本的鍵盤控制器,現在筆記本上諸多特色功能,背后都有它的身影 。充電指示燈為什么會亮?EC在合適的時間讓它亮;風扇為什么狂轉?EC覺得你的CPU太熱了;各種功能鍵和上面的小燈也是它的功勞 。甚至關機后EC還在不知疲倦的工作,它的特色功能也是筆記本廠商要發力的重點 。
市面上有多種EC控制器,有ENE、ITE、Nuvoton和SMSC等玩家 。它一般被焊接在筆記本主板上:

ec是什么意思 筆記本電腦中的隱形管家

文章插圖

聯想Y700 EC的位置在左下角
它有自己的固件(firmware),但主板廠商一般叫這個固件EC BIOS,有點讓人困惑 。于此對應,筆記本主板的原理圖是中間一般至少有一到兩頁的EC篇章:
【ec是什么意思 筆記本電腦中的隱形管家】一個簡陋的例子
我在參考資料1 放了ENE的一款EC控制器芯片手冊,對細節感興趣的同學可以參考閱讀一下 。
EC的工作原理
EC和BIOS的合作十分緊密 。EC通過BIOS的ACPI表將它所需要報告的信息和方法報告給操作系統,并與之交互 。
一個典型的信息交互通道是這樣:
它在ACPI table中的表現就是:
Device (EC0) { Name (_HID, EISAID(“PNP0C09”)) Method (_CRS) { … } Name (_GPE, 0 ) Method(_Q06) { … } Method(_Q07) { … } Method(_Q08) { … } Method(_Q0A) { … } // EC uses GPE0 // Adapter event // Thermal event // Battery event // LID event
從這個例子中看到,電池報警、AC電源插入、溫度傳感器報告和LID(筆記本蓋子)信息,先報告給EC不同的Q里,EC再接入ACPI的GPE,GPE的觸發會產生SCI,這時候操作系統就知道了 。一個Event產生,操作系統在收到SCI后,會檢查GPE,看是誰觸發了事件;在發現是GP_STS0后,就知道是EC產生的時間,接著會去檢查EC的Q0x,看看具體是EC的哪個管腳引發的,按圖索驥,最終發現Event的產生方,而對該消息作出相應處理 。
看起來似乎相當難懂!好吧,我們看個case study 。
筆記本蓋子開啟/合上case study
我們來簡化一下上面那個圖:
ec是什么意思 筆記本電腦中的隱形管家

文章插圖
  1. 筆記本合上,EC觸發GPE 。OS收到GPE,查看GP_STS,發現是GPE0觸發,知道是EC導致 。訪問EC得知是Q0A 。通過_LID的關鍵字和PNP知道是蓋子信息,知道是蓋子合上了 。
    ec是什么意思 筆記本電腦中的隱形管家

    文章插圖
    然后檢查用戶的電源管理策略作出相應處理:
    ec是什么意思 筆記本電腦中的隱形管家

    文章插圖
    2.蓋子開啟,GPEB會觸發wake up相關動作 。
    結論
    不但是LID,各種溫度傳感器也是先過EC的:
    ec是什么意思 筆記本電腦中的隱形管家

    文章插圖
    AC插上,開啟切換電源策略也是EC觸發 。甚至有的筆記本,AC插上旁邊的小LED燈都是EC控制 。
    EC在筆記本電腦中如此重要,廠商為了作出自己不同的產品策略,開發花哨的功能,在EC上頻頻發力 。EC不愧是筆記本中的隱形管家!

    推薦閱讀