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不愧是笔记本中的隐形管家!

    推荐阅读