通用MCU实现HDMI CEC协议

demi的头像
demi 发布于:周二, 12/24/2019 - 09:15 ,关键词:

作者:杨熙@NXP

试想当你想欣赏一部期待已久的影片时,不得不使用不同的遥控器打开电视并选择到播放通道,打开DVD按下播放键,然后再打开功放和音响。9012年马上要结束了,难道还没有一种技术,让大家只要把碟片放进DVD ,按下播放键就可以愉快的欣赏电影吗? 当然有,HDMI CEC(以下简称CEC)总线就可以满足这个小小的要求。

CEC(Consumer Electronics Control),既消费电子控制,为用户环境中所有通过CEC线连接的家庭视听设备提供一种高级控制功能协议,用户通过一个遥控器即可以对这些连接的设备进行控制。

一个典型的CEC设备系统拓扑图如下所示:TV、DVD播放器全部通过HDMI连接在一起。这样,通过DVD遥控器就可以控制TV开关机,播放暂停等基本操作(前提是TV和DVD都要支持CEC协议)。在CEC协议中,最多可以连接10个HDMI设备。

CEC协议是一个单总线,低速协议传输速度最大只有0.3Kbps。它使用HDMI线缆的第13号引脚。

CEC使用类似DS18B20的单总线协议,分为数据位和起始位,每个数据位有严格的时序定义,其中数据位时长为2.4ms,起始位时长为4.7ms。由于CEC总线传输速率很低,总线协议又不是很复杂,非常适合MCU来处理。一个完整的CEC数据帧如下图所示:

使用LPC5500实现CEC协议

NXP即将发布基于LPC5500系列的CEC总线的应用方案,可以实现底层的CEC数据接收和发送。其硬件连接图如下所示。

我们使用一个支持CEC协议的HDMI源设备:Google的ChromeCast手机投屏器来作为CEC总线的数据发起者,使用LPC5500来模拟TV的CEC控制器。这样由ChromeCast发出来的CEC信号就可以被MCU接收到并做到相应的回应。

LPC5500带有一个NXP独有的特色外设SCT(State Control Timer),它是一个非常灵活的带有硬件状态机和多个MATCH和EVENT寄存器的定时器,通过巧妙的配置,SCT可实现相当复杂的时序控制逻辑,比如电机控制,模拟低速串行外设等等。

当然,用SCT来处理CEC协议也不在话下。关于SCT的介绍可以点击查看恩智浦官网的应用笔记(SCTimer/PWM Cookbook),本文不再过多介绍。

总之,LPC5500可以使用SCT的边沿捕捉功能来实现CEC协议的接收。

来源: 恩智浦MCU加油站

围观 774