0.嵌入式控制器EC实战 Embedded Controller开发概述

嵌入式控制器EC
专栏收录该内容
¥19.90
¥99.00
34 篇文章

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

VIP EC与ACPI:深入解析嵌入式控制器在系统管理中断(SCI)中的关键作用 本文深入解析嵌入式控制器(EC)与ACPI在系统管理中断(SCI)中的协同工作机制。详细探讨了EC通过SCI与操作系统通信的流程、QEvent事件传递机制、端口操作规范以及ACPI系统控制方法的实现细节,并结合电池状态监控与盖子开关等实战案例,为系统开发者提供EC-ACPI交互的最佳实践与调试技巧。 开通可读全文·825 阅读·23 点赞·9 收藏 阅读全文

相关推荐

别再只盯着BIOS了!手把手教你用ACPI ASL代码调试笔记本EC(Embedded Controller)的常见问题

本文深入探讨了笔记本Embedded Controller(EC)的调试方法,通过ACPI ASL代码解析和实战案例,帮助用户解决键盘失灵、风扇异常等常见问题。文章详细介绍了EC与ACPI的交互机制,提供了从现象分析到代码级排查的完整指南,适合硬件开发者和系统调试人员参考。

culing2941的博客 601

别再只盯着BIOS了!聊聊笔记本里那个默默干活的‘小管家’:Embedded Controller (EC)

本文深入探讨了笔记本中Embedded Controller(EC)的关键作用,这个微型芯片默默管理电源序列、键盘扫描和温度监控等基础任务,直接影响设备的响应速度和续航能力。从EC的历史演变到现代功能,再到故障排查和开发者实践,揭示了这一硬件管家如何成为笔记本不可或缺的神经中枢。

weixin_33122947的博客 297

从键盘控制器到系统管家:手把手带你理解EC(Embedded Controller)的硬件访问与ACPI驱动

本文深入解析了嵌入式控制器(Embedded Controller,EC)的硬件访问与ACPI驱动实现,从历史演进到现代架构,详细介绍了EC的LPC总线连接、端口解码、命令协议及ACPI集成。通过实战案例和代码示例,帮助开发者掌握EC调试与性能优化技巧,提升系统底层硬件管理能力。

weixin_33925615的博客 277

别再只盯着BIOS了!聊聊电脑里那个默默干活的‘小管家’:Embedded Controller (EC)

本文深入探讨了Embedded Controller (EC)在电脑中的关键作用,这个微型芯片负责键盘响应、电池管理、风扇控制等核心功能。文章详细解析了EC的工作原理、与BIOS的协作机制,以及常见故障排查方法,帮助读者了解这个默默工作的‘硬件管家’如何保障电脑稳定运行。

weixin_31951365的博客 347

别再只盯着BIOS了!手把手教你用Port 60/64和ASL代码调试笔记本EC(Embedded Controller)

本文深入探讨了笔记本EC(Embedded Controller)的底层调试技术,包括通过Port 60/64直接与EC交互、使用62/66端口进行高级操作以及编写ASL代码定制EC驱动接口。这些方法在键盘响应、风扇控制等EC功能异常时尤为有效,帮助开发者绕过传统BIOS限制,实现精准调试和修复。

weixin_29699433的博客 316

11.嵌入式控制器EC实战 KBC矩阵键盘Keyboard开发流程

文章目录笔记本矩阵键盘概述矩阵键盘的扫描方式行列扫描方式逐行逐列扫描方式EC中矩阵键盘是如何扫描并得到码值的(代码分析) 笔记本矩阵键盘概述 在EC中支持两种形式的键盘,一种是PS/2接口的键盘,这种键盘几乎已经被USB接口的键盘所取代,所以PS/2接口的键盘不在我们的讨论范围。 另一种键盘则是矩阵键盘,也是笔记本电脑的内置键盘,该键盘类似于学习单片机时使用的4*4的那种键盘,笔记本使用的矩阵键盘有三种规格,分别是16*8、17*8和18*8。16、17和18代表着该款键盘的列数,8代表着键盘的行数,我们这

qq_30135687的博客 3799

2.嵌入式控制器EC学习,源代码框架

1.嵌入式控制器(Embedded Controller,EC)编译环境搭建@TOC 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你喜爱

qq_30135687的博客 2622

98.嵌入式控制器EC实战 EC开发板开发完成

在祥哥的大力帮助之下,开发板已经完成了上电调试,由于物料采购的周期比较长,拖了一个月,开发板才正式调通,接下来将基于开发板完成相关的开发实战讲解,非常感谢这一段时间大家一直的催更,接下来要开启周更模式,结合开发板把开发过程介绍得更加详细。基于ITEV12-4讲解开发板的上电过程及点亮LED灯。需要开发板得朋友可以私聊我或者给我留言。...

qq_30135687的博客 2575

大疆OcuSync系统背后的黑科技:跳频扩频技术如何让你的无人机飞得更稳

本文深入解析了大疆OcuSync系统如何运用跳频扩频技术等先进无线通信方案,显著提升无人机在复杂环境下的飞行稳定性。系统通过跳频扩频与直接序列扩频技术协同工作,结合双频智能切换与多天线MIMO,有效对抗信号干扰与多径效应,确保控制指令与高清图传的可靠、低延迟传输,为用户带来更安心、更流畅的飞行体验。

ol7890123的博客 622

TSMaster二次开发实战:如何用Python搞定CAN/CANFD事件回调(附完整代码)

本文详细介绍了如何利用Python进行TSMaster二次开发,实现CAN/CANFD事件回调功能。通过实战代码演示,讲解了预发送与后处理回调的核心区别、注册流程、资源管理及性能优化技巧,帮助工程师高效构建自动化测试与数据监控应用。

star的博客 657

【Allegro学习笔记】常规标贴封装创建-0402封装创建实例

摘要 本文主要介绍如何使用Allegro制作表面贴装封装。 所使用的软件 使用Allegro制作常规贴片封装主要使用的软件有Pad Designer和Allegro 1 0402类封装制作 1.1 0402类封装焊盘分析 0402封装尺寸图如图1...

Honglong 1万+

FOC 电流采样方案对比(单电阻/双电阻/三电阻)

电流采样的作用 在FOC算法中,电流采样在反馈环节是相当重要的一部分,通常交流三相同步电机在进行坐标变换的时候,需要实时测量相电流,最终通过SVPWM实现电机转子磁场和定子磁场的同步转动,那么这里有三种方案,单电阻采样,双电阻采样,三电阻采样。本文参考ST的单电阻和三电阻采样以及TI的双电阻采样,结合实际中可能需要注意的地方进行总结分析。 单电阻采样 双电阻采样 三电阻采样 ...

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 4万+

CodeBuddy Code CLI 常用工作流:17个实战场景全解析

CodeBuddy Code CLI 17个实战场景解析 本文详细介绍了CodeBuddy Code CLI在17个开发场景中的高效应用,包括: 快速理解新代码库 高效修复Bug 安全重构代码 使用子代理系统处理专业任务 Plan Mode安全分析 自动化测试处理 创建合并请求 文档生成与维护 图片内容分析 文件目录快速引用 每个场景都配有具体命令示例和最佳实践,帮助开发者提升工作效率。

简简单单Onlinezuozuo 1055

36、基于启发式的双向RRT*路径规划算法解析

本文介绍了一种基于启发式的双向RRT*路径规划算法(LGHB-RRT*),通过地图预处理、通道区域提取和通道识别点定义,结合随机树的引导生长与可变密度采样机制,显著提升了在复杂通道环境下的搜索效率与成功率。算法采用双向扩展结构,并引入启发式生长策略引导树向通道关键点发展,同时利用路径优化简化最终路径。仿真结果表明,该算法在多种复杂地图中均能高效找到最优路径,优于传统RRT*和Bi-RRT*算法,具备良好的适应性与应用前景。

rgv234567的博客 114

YOLO26-seg分割优化:FPN涨点&轻量化篇 |多级特征融合金字塔(HS-FPN),助力小目标检测

​​​​​摘要:本研究对Ultralytics YOLO26进行了全面分析,重点阐述了其关键架构改进及其在实时边缘目标检测中的性能基准测试。YOLO26于2025年9月发布,是YOLO系列最新、最先进的成员,专为在边缘及低功耗设备上实现高效、精确且易于部署的目标而构建。本文依次详述了YOLO26的架构创新,包括:移除了分布焦点损失(DFL);采用端到端的无NMS推理;集成了渐进损失(ProgLoss)与小目标感知标签分配(STAL);以及引入了用于稳定收敛的MuSGD优化器。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 267

RK3588 MPP,RGA,DRM,QT之RGA

RK3588多路视频采用RGA来进行混合成一帧

dreamliweiming的博客 4260

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: 9.嵌入式控制器EC实战 操作系统或BIOS通过KBC(0x60/0x64)和PMC(0x62/0x66)对EC ram进行读写
下一篇: 10.嵌入式控制器EC实战 GPIO开发流程

双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —
三哥编程分享
博客等级 码龄11年 1029粉丝 100原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三哥编程分享

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值