IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 0.嵌入式控制器(Embedded Controller,EC)学习embedded controller开发概述 -> 正文阅读

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

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为例)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PU6yaztq-1651471099092)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/dbf392b7-cf64-4318-98bc-bcaeb740a52b/Untitled.png)]

通过框图的最上端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等功能。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ivZjoNz7-1651471099094)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/66bd18f6-e344-41d4-9443-a02fa2e60a60/Untitled.png)]

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中各个部分的功能,简单的介绍了相关的开发方式,在本专栏中的后续章节中将详细介绍开发流程。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:35:52  更:2022-05-05 11:36:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:34:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码