HDMI CEC协议

Posted 陈万培

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDMI CEC协议相关的知识,希望对你有一定的参考价值。

1 前言

本文档仅作为本人记录使用,主要根据工作使用及《HDMI Specification 1.4a.pdf》进行终结得出,若有不足会后续补充。

2 CEC简介

CEC(Consumer Electronics Control)是一套完整的单总线协议,电子设备可以借着CEC信号让使用可控制HDMI接口上所连接的装置,比如单键播放(One Touth Play),系统待机(System Standby),可以实现由单一遥控器控制所有HDMI连接的装置。最多可以控制15个设备。允许HDMI设备在没有用户干扰情况下互相命令控制。CEC在HDMI座子上的14引脚,可用示波器或逻辑分析仪抓取。

2.1 CEC关键词

英文中文描述
Audio System音频系统,soundbar或其他AVR设备非电视设备,但具有解码播放音频的能力
Boradcast Message广播消息,下文中的广播物理地址等广播消息广播消息,发送的目的地址为F,表示所有的设备都能收到
Deck播放或录像设备具有媒体播放能力的一种设备,姑且认为是碟机
InitiatorCEC帧头的组成代表起始方,下文中帧头有0~F的起始方CEC帧头的起始方,等待回应
Follower相应对应CEC消息的设备刚接收到CEC消息并要求对其作出响应的设备
DestinationCEC帧头的组成代表接收方,下文中帧头有0~F的接收方CEC帧头的接收方,作出回应
Menu Providing Device菜单提供设备一种可以在电视上显示菜单的非显示设备。
Playback Device播放设备一种能播放媒体的设备,如DVD播放器。
Recording device录播设备类似与DV的录播设备
Tunner Device调谐设备暂时无法描述

2.2 CEC特性

  • One Touch Play:一键播放,通俗的讲电视遥控器可以一键播放碟机,反之亦然。
  • System Standby:系统待机,通俗的讲电视遥控器可以控制碟机待机,反之亦然。
  • One Touch Record:选项标记,通俗的讲电视遥控器可以控制碟机特定选项,开启设置等,反之亦然。
  • Deck Control:碟机控制,通俗的讲电视遥控器可以控制碟机暂停、播放、快进等。
  • Device Menu Control:菜单控制,通俗的讲电视遥控器可以控制碟机的菜单等。
  • Sysstem Audio Control:音频控制,,通俗的讲电视遥控器可以控制碟机的音量等 。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IqJfsrLE-1648478556687)(images/End-User Features.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5k5y1lLg-1648478556690)(images/Supporting Features.png)]

2.3 CEC时序及组成

每个位从线拉低(下降沿)开始,保持时间表示位值,之后拉高,直至后续位开始正常数据位长为2.4±0.35ms。保持低电平0.6±0.2ms为逻辑1;保持低电平1.5±0.2ms表示逻辑0。接收器在下降沿后1.05±0.2ms对线路进行采样,然后在下降沿1.9±0.15ms开始观察下一位。接收者可以将传输的传输的1bit转换为0通过在下降沿后0.35s拉低总线并保持直到表示逻辑0的电平时间。这个通常用于确认传输。每个帧都有起始位,通过拉低总3.7±0.2ms,然后允许上升,总持续时间为4.5±0.2ms。在观察总线空闲之后,任何设备都可以发送起始位。(通常5位时间,但成功后立即传输7位时间,以促进总线的公平共享,以及传输失败和重传之间的3位时间。)
对于单接收消息,应答位类似于IIC:以1位发送,接收器将其下拉至0以确认该位字节。
对于广播消息,应答位被反转:仍然作为1位发送,但被拒绝该字节的任何接收器下拉到0位。
每个CEC帧的第一个字节包含4位源和目标地址头。如果寻址目标存在,则它确认该字节。由除标题之外的任何内容组成的帧是ping,它只检查另个设备的存在。

CEC的简单消息组成为:Initiator+Destination+Opcode

(Init:5 | Dest:f |  Opcode:84) -  5f 84 10 00 05 [Report Physical Address]

如上述指令描述为:AVR播放设备(Audio System)向外广播0x84操作码,0x84的操作码向外广播自己的逻辑物理地址1000及设备类型Audio System描述为Report Physical Address:Physical Address+Device Type
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3XRRXpGO-1648478556698)(images/CEC Frame Description.png)]

3 CEC消息组成

3.1 CEC帧头描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e2hAjf0m-1648478556701)(images/Header Data Block.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1YhKO0vc-1648478556713)(images/Header Data Block Details.png)]

根据上图所有的块都是10Bit,有效位为8bit。
Start(bit)+ Header Block + Data Block 1(opcode block) + Data Block 2 (operand blocks)
Block定义:Data(8 bit) + EOM(1 bit) + ACK(1 bit)
Header Block定义:Initiator(4 bit) + Destination(4 bit) + EOM(1 bit) + ACK(1 bit)

EOM表示:是否为该数据块是否最后一位。
“0”:指定后面紧接着一个或多个数据。
“1”:表示消息已经完成。
假如数据块后面的EOM为“0”,那么接收者需要忽略其后数据;假如EOM为“0”,并且后续没有接收到数据,这整个消息将被接受者忽略。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UErk4bit-1648478556715)(images/EOM.png)]

ACK表示:发送方总是置1,接受方用来确认数据及帧头。
对于单个设备:
“0”:接受方上报自己的逻辑物理地址结束以“0”ACK结束,发送方检测到接收方时以此判断发送结束。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YMCtZ6nJ-1648478556718)(images/ACK.png)]

3.2 CEC逻辑地址

CEC时序及组成一章中,我们如何知道0x5f是AVR设备发出的广播呢?结合CEC帧头描述我们根据如下进行CEC码值解

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YOiXtkDi-1648478556719)(images/CEC Logical Adressess.png)]

3.3 CEC码值解析

00:02:38 kernel: CEC:NET Rx (Init:5 | Dest:0 |  Opcode:90) -  50 90 00
00:02:38 kernel: CEC:    Tx (Init:5 | Dest:0 |  Opcode:90) -  50 90 00 [Report Power Status]
00:02:38 kernel: CEC:    Rx (Init:0 | Dest:f |  Opcode:87) -  0f 87 9d 19 00 [Device Vendor ID]
00:02:38 kernel: CEC:NET Tx (Init:0 | Dest:f |  Opcode:87) -  0f 87 9d 19 00
00:02:39 kernel: CEC:    Rx (Init:0 | Dest:f |  Opcode:87) -  0f 87 9d 19 00 [Device Vendor ID]
00:02:39 kernel: CEC:NET Tx (Init:0 | Dest:f |  Opcode:87) -  0f 87 9d 19 00
00:02:39 kernel: CEC:    Rx (Init:4 | Dest:5 |  Opcode:9f) -  45 9f [Get CEC Version]
00:02:39 kernel: CEC:NET Tx (Init:0 | Dest:5 |  Opcode:9f) -  05 9f

根据上述知识,以打印为例我们很容易可以看出CEC的发送方及操作码。操作码对应的参数值在《HDMI Specification 1.4a.pdf》中的Message Descriptions中有详细描述。

4 总结

CEC虽然有接触但是没有实际去跟踪CEC具体流程,目前只接触到CEC的码值对应部分。后续有补充在完善。

5 参考资料

HDMI CEC协议

C的码值对应部分。后续有补充在完善。

5 参考资料

HDMI CEC协议

以上是关于HDMI CEC协议的主要内容,如果未能解决你的问题,请参考以下文章

7. HDMI接口

HDMI中的ARC和CEC都是啥功能?

HDMI 接口及CEC信号

HDMI的CEC是如何控制外围互联设备的

HDMI的I2C和CEC冲突么

HDMI-CEC 和 Chromecast