0.嵌入式控制器(Embedded Controller,EC)学习embedded controller开发概述.md 您所在的位置:网站首页 LPc总线扩展卡 0.嵌入式控制器(Embedded Controller,EC)学习embedded controller开发概述.md

0.嵌入式控制器(Embedded Controller,EC)学习embedded controller开发概述.md

2023-12-13 19:47| 来源: 网络整理| 查看: 265

1.嵌入式控制器EC概述

嵌入式控制器EC是挂在CPU的LPC(Low Pin Count)总线下的一颗嵌入主控芯片,嵌入式控制器的目的是帮助计算机(主要是笔记本)管理低速外设,像触摸板、矩阵键盘等,当然最重要的是计算机通过EC来做电源管理,在笔记本电脑中,电源管理尤为重要,不仅仅需要控制开关机的电源,还要控机笔记本做休眠挂起即之后的唤醒。EC就像计算机的隐形管家,在电脑的正常运行中起到了至关重要的作用。

接下来列举一下我们所使用的商用笔记本电脑都有哪些功能是通过EC来实现的。

开关机的上下电时序控制(GPIO);

休眠挂起的上下电时序控制(GPIO);

开关机按键(GPIO);

笔记本开合盖检测(GPIO);

电源灯、大小写灯、数字灯的控制(GPIO);

笔记本电池的充放电控制(SMBUS);

CPU/GPU/主板温度检测功能(SMBUS);

散热风扇智能温控(PWM/TACH);

笔记本键盘(KBC键盘控制器);

触摸板(PS/2);

电压检测(ADC);

2.EC芯片框图(IT8502为例)

通过框图的最上端LPC总线与CPU的LPC总线相连,EC通过LPC总线与操作系统或BIOS进行通信,最上端的SERIRQ是用于向CPU发送串行中断信号的。

在框图中有两条总线,Internal Bus(内部总线),EC Bus(EC总线)。内部总线用于CPU的LPC总线对内部总线下外挂的各个逻辑设备(KBC/PMC/UART等)的访问,也可以用于各个逻辑设备之间的通信。EC总线则用于EC下面各个功能模块间、EC下模块与内部总线下的逻辑设备间的通信。

芯片中的最重要的部分是EC8032的部分,他是一个MSC-51系列的单片机,对EC的编程和对51单片机的编程几乎是一样的。后面在代码框架讲解中会提到。

当EC芯片上电后,8032微处理器将从SPI Flash的0x0000地址中取出固件(代码)运行,下面列出了EC中最常用的矩阵键盘,PS/2触摸板、主机接口0x60/0x64等功能。

3.General Purpose I/O Port (GPIO)

通用I/O端口由寄存器控制的独立I/O管脚组成。

在EC中有十组通用GPIO,分别是GPIOA—GPIOJ,每组GPIO有8个pin脚,总共是80个pin脚。

在EC芯片上电后,代码执行的第一步复位后初始化Reset_Initialization()函数中就会首先配置这80个pin的工作模式。有以下几种工作模式:

输入模式;

上拉输出模式;

下拉输出模式;

复用为其他工作方式(例如PWM、ADC、UART等);

在上下电时序控制中,完全是由GPIO来控制的,首先按照CPU厂商提供的各设备的上电时序图,EC控制各个电源及设备的复位,这一部分的控制引脚都是配置为输出模式。而各个电源的PowerGood信号则需要将相应的引脚配置为输入模式。

电源灯、大小写灯、数字灯的控制也是将相应的引脚配置为输出模式。

开关机按键、开合盖霍尔传感器、适配器拔插信号在代码中则需要定义为输入模式,并添加相应的事件函数,当有相应动作产生时,需要进入事件处理函数中执行相应的控制。例如适配器插入后需要控制充放电芯片对电池进行充电,切换为适配器对笔记本电脑进行供电,并通过LPC总线通知操作系统。

4.SMBus(System Management Bus,系统管理总线)

在笔记本电脑中一般会用到两个SMBus接口,一个接口用于与智能锂电池、一个用于CPU、GPU和主板等温度传感器温度监控。

SMBus为I2C协议的子集,SMBus协议帧在I2C定义的通用帧格式基础上针对事务的不同进行了更加确定的定义。

通过SMBCLK和SMBDAT信号引脚来进行通信,与I2C通信协议的CLK与DATA引脚的通信方式是相似的。

5.PWM、TACH

在笔记本中PWM一般有两个用处,一个用于控制风扇的风速,一个用于显示屏的亮度调节。

TACH则是用于监控风扇的转速,用于风扇的智能调速。

6.KBC(KeyBoard Controller)

KBC作为一个逻辑设备挂在LPC总线下,操作系统或BIOS可以通过LPC的0x60/0x64与EC进行通信,KBC在EC与操作系统或BIOS的通信过程中起到了非常重要的作用。矩阵键盘、PS/2触摸板的数据都是通过KBC提供的0x60和0x64端口上报给操作系统或BIOS的。详细的通信过程可以通过《8.嵌入式控制器(Embedded Controller,EC)学习 操作系统或BIOS通过KBC(0x60/0x64)和PMC(0x62/0x66)对EC ram进行读写》博文了解。

7.PS/2

只用作PS/2触摸板,数据最终是通过KBC的0x60和0x64端口上报操作系统或BIOS。通信细节参考博文:《5.嵌入式控制器(Embedded Controller,EC)学习 PS/2协议》《6.嵌入式控制器(Embedded Controller,EC)学习 嵌入式控制器EC中的PS/2触摸板的通信过程》

8.ADC(模数转换)

在EC中GPI0—GPI7这8个引脚可以配置为ADC工作模式,用于监测主板的各个电压。

总结

本文作为嵌入式控制器EC开发的总体概述,介绍了EC中各个部分的功能,简单的介绍了相关的开发方式,在本专栏中的后续章节中将详细介绍开发流程。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有