我所知道的EC.doc

上传人:b****1 文档编号:124422 上传时间:2022-10-03 格式:DOC 页数:65 大小:1.13MB
下载 相关 举报
我所知道的EC.doc_第1页
第1页 / 共65页
我所知道的EC.doc_第2页
第2页 / 共65页
我所知道的EC.doc_第3页
第3页 / 共65页
我所知道的EC.doc_第4页
第4页 / 共65页
我所知道的EC.doc_第5页
第5页 / 共65页
点击查看更多>>
下载资源
资源描述

我所知道的EC.doc

《我所知道的EC.doc》由会员分享,可在线阅读,更多相关《我所知道的EC.doc(65页珍藏版)》请在冰豆网上搜索。

我所知道的EC.doc

我所知道的EC====>owerSequence

1.What’sPowerSequence?

+w8f*m,\4K9Y0{4H3x

PowerSequence是指HWDevice上电的顺序,它的大致顺序如下:

/v+s#G&{:

Z'J4~,S3o

1)ALWAYS!

}P6m*[2h!

U,v%u2)SUS_ON3)DIMM_ON6h"W*^']0a4)RUN_ON-R#g9U:

p!

t(k5)VR_ON)Z3W(k2S'v8k/I,{'C

这基本上是NB工作需要的所有POWER。

插入AC或者DC后,机器内部的开启的电为ALWAYS电,主要用以保证EC的正常运行;系统正常工作进入os以后,所有的Power都开启。

完整的过程其实是这样的:

AC或者DC插入以后,ECReset开始跑code,用户按下PowerSwitch时,EC拉SUS_ON送给一颗POWERIC,+3VSUS,+5VSUS起来后,POWERIC回ECSUS_OK。

接下来EC发给南桥一个称为‘RSMRST#’的信号。

这时候南桥的部分功能开始初始化并等待开机信号。

这时候的南桥并没有打开全部电源,只有很少一部分的功能可用,比如供检测开机信号的PWRBTN#信号。

在用户按下Power键的时候,EC检测到一个中断,然后duplicate一个开机信号(PWRBTN#)给南桥,南桥收到PWRBTN#信号后依次拉高SLP_S5#,SLP_S4#,SLP_S3#信号,开启了所有的POWER,在V_CORE电起来后,IC会发送ALLSYSPWOK信号给EC这信号表明外围电源正常开启。

南桥会发出PCIRST#信号到PCI总线,于是总线上的设备都被初始化(包括北桥),然后CPURST#信号送出,HOST正式接手并开始工作。

/至此,上电时序完成。

4t-O&f%Q"bC7J

:

l/f,I9r@

2.WhyPowerSequence?

I.Whyneedsequence?

(个人猜测,欢迎指教J)

为什么需要PowerSequence呢?

没有PowerSequence直接把所有的电压都供上可以开机吗?

答案是YES。

直接上电开机是没有问题的,可是没有办法达成省电的功能;另外S3/S4,LongRun也会有问题。

系统進入待机的时候(S3),机器内部的电只有SUS&DIMM电,主要是提供DDR的电压,以保证RAM内部的资料不丢失(S3是将数据StoretoRam,在Resume之后OS从RAM中获得数据,所以DDR的电一定要留着),而S4和关机(S5)的电是一样的,都是Always电(当AC在的时候其实SUS电要留着,目的是加速Resume或者PowerOn的速度)。

0_-e)Q6\7OJ9m

II.S4和S5共用一个信号?

#M3H3M6v,F(A3_#S"]%G6y

做过EC的同志可能会发现,线路图上S4,S5的信号只会有一个。

根据我们的使用经验S4和S5有很大的差异。

原因其实是因为S4,S5都只有ALWAYS电,从EC的角度,根本没有必要区分S4,S5所以SB只有一个信号拉到EC。

.m;W0B:

q+{)我所知道的EC====>SystemArchitecture

1.EC功能概述

EC是NB独有的组成部分。

它将MB上面的keyboard、mouse集中于一体在,EC内部提供了KBC控制器统一控制它们,这样大大节省了空间实现了便携。

NB的另一个特点是它需要电池供电,这样省电是一个重要的问题。

EC配合chipset在S3、S4、S5分别供不同的电源策略以达到节省的目的,另外EC也会控制电池的冲放电的过程,检测电池电量用于决定是否待机or紧急关机

orWakeup等。

另外由于NB集成度高、空间受限,散热非常重要但同时还要兼顾噪音的问题,EC会通过thermalsensor获得当前的CPU和VGA温度,根据不同的温度自动调节风扇的转速。

这些都是EC提供的功能。

7T0F-D:

M1Y

2.常见HW架构b6l9`5l3D%Y;o

现在NBHW线路系统中EC的常见架构有两种,比较旧一点的案子会将BIOS和EC的code放在一起挂在EC的X-BUS下面。

而新一些的做法会将BIOS和EC分开;BIOS挂在SBLPC或者SPI下面而EC挂在EC的SPI下面。

如下图所示:

0A5R%c/g6c0l%R2^

那么为什么会有两种架构呢?

他们有什么区别呢?

听我慢慢道来Jzzz。

这其实是个多方原因导致的结果。

1.出于成本的考虑。

大家都知道现在NB的价格战是愈演愈烈,大家都在拼成本。

所以低端机种都在拼命的costdown.很明显第一种架构也就是图1左边的架构会省掉一颗IC的成本。

那么大家可能又会问既然这么economic为什么还要导入第二种架构呢?

2.出于性能的考虑“有所得就有所失”没有完美的方案,第一种架构存在一个致命得缺陷,就是BIOS和EC跑code时会抢总线,也就是说有可能某一段时间BIOS狂飙得时候,EC就卡住了,反之亦然。

于是就发现POST时间过长,S3、S4Resume时间过长的问题了。

于是乎第二种架构应运而生;所以在新机种以及那些高性能的game系列中就会采用这种架构。

(PS:

现在应该以第二种架构为主了)#Y+{(}1q:

r

3.EC如何与HOST通信\#d-[)s5y*C

由图1可以看出EC与SB通过LPC相连,所以EC与HOST端的通信主要是通过LPCBUS进行的,除此之外EC还会有SMI,SCI的pin拉到SB上也就是说EC也可以通过发SCI,SMI的中断通知Chipset,Chipset再从LPCBUS获得相关的EVENT(PS:

后续的会详细讨论这部分)。

LPCBUS通信的部分如下图所示:

"S"E6@$w'c(d9\&h"o*h

1U&hB1d9W9T(t&~0i!

y

总之EC是NB系统中最为底层的部件,只要有电EC就会工作,检测各种输入信息,同时它还负责提供powersequence和host通信等重要的工作。

我所知道的EC====>LID

1.What’slid?

Lid是盖子的意思,在NB上其实就是指Panel打开和关闭的过程。

不知道有没有人试过用磁石去碰NB的底边缘,试过就会发现一碰NB就会进S3、S4当然也可能什么动作都没有(取决于OS的配置)。

其实这部分是因为大多NB都是通过一颗magnetswitchIC控制lid。

Lid有两种状态Open和CloseHW的线路通常还会将它们用作背光的始能信号8q8{:

`;|(B8M

2.LidOpen

LidOpen就是通常上讲的开盖,HW会将这支信号拉到EC一根GPIOpin上,也就是说一旦Lid状态有变化EC这端就会收到中断,EC收到中断后会发SCI通知host,host再去做其他的动作。

可是通常第一次开机的时候Panel是打开的,NB并没有供电所以EC没法更新lid的状态,这时EC就会在进入S0的时候根据lid这根GPIO的状态(H&L)去更新lid的状态。

在OS装载的过程中会主动去callBIOS中的aslcode去更新Lid的状态。

3.LidClose4z2z9{"C3[(Q

LidClose指的是合盖,EC处理的过程和LidOpen基本一致,区别之处在于EC记录Lid的状态有变化。

另外在OS下有一个选项可以设置LidClose时OS可以进行的动作。

如下图所示

如上图1所示closelid可以选择的action有三种"y2F0u%Y+_,D$i9

1.Donothing

)n3V$S&W'cA;f1{.t'^

2.Standby]0d3P)I9m#P#?

*w(A+I"E

3.HibernatX;i)l!

i!

s!

K2y

这些功能是怎么实现的呢?

完整的流程如下图所示:

*d4}%T8{+{(

图2就是完整的工作过程,步骤5是猜的。

要知道真正的做法恐怕只有问了微软才知道J。

窗体顶端

我所知道的EC====>Keyboard-B-u(W$E0]%B#f8j

1.KeyboardIntroduction

Keyboard是PC架构中的一个重要组成部分。

在常见的PC系统中主板上都有一颗专用的8042接口芯片去处理(现在被集成进了SB中),8042控制keyboard的整个工作过程,包括加电自检键盘扫描码的缓冲以及与chipset沟通。

在NB上这部分工作都有EC负责,它有一个keyboardcontroller,它扮演8042相似的角色。

NB都有一个内置Keyboard,这个keyboard是由EC控制的。

Keyboard和touchpad都是EC内置的一个部分,它们按照ps2协议工作,最终的数据通过EC送给host。

常见的102key的键盘如下图1所示:

2.3\0Y8A4f.c6p1NScancodeandMake&Break1[)H.{:

`*S(D0R&v

-m1h-}5f8r#e

当键盘上有键被按下,键盘将产生扫描码(scancode),scancode有两种Makecode和Breakcode,也就是通常所说的通码和断码。

每一个按键都有一个唯一的Makecode和Breakcode。

当一个键被按下就会产生Makecode,松开时就会产生一个Breakcode。

Scancode一共有三套称之为set1、set2、set3,PS2接口键盘默认使用set2。

EC收到set2scancode以后会将它转化为set1送给host。

Set1的scancode中标准按键的ScancodeMakecode和Breakcode都只有一个字节,Makecode和BreakCode的差别就在最高位。

Makecode最高位为0,Breakcode最高位为1。

A的scancode如下图1所示:

Akey

Makecode

Breakcode

Set1

1Eh

$F"a+ax6}"@2T

9Eh

Set2

1Ch

F0h,1Ch

Set3

1Ch

F0h,1Ch

$g6D;U5K,T6]9R图2

3.HowDoesKeyboardWork?

Keyboard功能虽然比较简单,只是让用户可以输入一些字符而已,可是它的工作原理却不简单。

从一个键被按下到操作系统识别它并送给其他的driver或者AP,中间经历了很多道工序。

键盘是一种矩阵结构,每一个键都有一个行地址和列地址,用户按下键以后,EC获得该按键的matrixaddress,EC将该address转化为matrixvalue然后判断该键的类型是特殊功能键还是标准按键,然后采用不同的方法将matrixvalue转成Set2,最后在转成Set1value送给host,host收到就可以送给其它需要的程序了。

其完整的工作流程如下图3所示:

4.Customized-Q2|-?

6N.h!

x,s)S

HotKey

NB上有一些被称为HotKey(热键)的东东,比如用户可以按Fn+F4/F5调整亮度等。

这些是如何实现的呢?

既然k

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 生物学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1