By GRL Team on Apr 10, 2023

解锁隐藏功能,HDMI® CEC规格分析与功能介绍

   

Peter Lee,GRL台北实验室

您是否曾在生活中遇到以下情景?结束一天忙碌的工作,回家想看一部电影好好放松,此时要拿出好几个遥控器,将电视、机上盒、音响逐一开启并进行节目设定,当然有时候您还可能找不到遥控器,如此繁复的操作难免令人烦躁沮丧。如果您今天使用的影音设备皆支持CEC功能,情况可就大为不同了!以上恼人的问题将不复存在!让我们一起来看看CEC究竟是什么神奇的技术吧!

HDMI CEC是什么?哪些情况下可以使用?

CEC的全名为Consumer Electronics Control,是一项由HDMI协会所开发的技术与功能,专为HDMI介面所设计。设计初衷是要让消费者能够使用「一个」遥控器来控制并操作所有的HDMI连接装置,简化繁复的影音设备操作(如家庭剧院等),带给使用者更方便的生活体验。以目前常见的One Touch Play功能为例,若同时使用支援CEC功能的机上盒及电视,使用者只要按下机上盒的开机按钮,电视也会跟着开启,并且自动切换输入端口,播放机上盒的影音内容,这听起来是不是很神奇呢?

为了实现多个影音设备的控制,需要采用一套完整且一致的传输协议规范。目前HDMI协会发布了两个版本的CEC规范,分别为CEC 1.4与CEC 2.0。CEC 2.0是基于CEC 1.4版本进行扩充,虽然其支援的功能较多,但原则上是采用相同的物理及协议架构。

HDMI CEC传输架构与原理,如何控制连接的HDMI产品?

CEC技术物理层介绍

CEC为单线双向沟通技术,物理层上只需要单一CEC接脚就能与所有连结装置进行沟通。在HDMI连接网路上,装置间的CEC线路设计要求相连,因此HDMI产品无论是否支援CEC功能,均要配置CEC接脚并满足特定的电气规范,确保即使有不支援CEC的装置连接于网路中,其余设备依然能正常运作。

对于不支持CEC功能的HDMI装置,除了HDMI影音数据需传输正确外,CEC电容、电阻、电压也要符合规范,才能被认证为是合格的HDMI装置。

以下是相关的CEC线路电气规范:

  1. 为了避免连结装置对线路造成过大电容负载,Source(发送端)产品最大电容容许值为150pf,Sink(接收端)产品则为200pf。

  2. 一般而言,若产品有多个HDMI输入端(如电视),输入端间的CEC线路必须相连(举例来说:输入端1与输入端2之间的电阻值需小于5欧姆)。若产品有多个输出端,其CEC线路间不能相连(举例来说,输出端1与输出端2之间的电阻值需大于1M欧姆)。若产品为Repeater类型,则要依其是否为CEC_Root_Device,来设计输出端及输入端间CEC的线路相连情形。

  3. 在产品断电时,CEC线路上的漏电流需小于1.8uA。且无论在产品开机、关机、休眠(若支援)三种状态时,在外部上拉或下拉的测试条件下,CEC线路上的电压皆需要在特定范围内。

    图1: 支持HDMI CEC的产品须遵守的电气规范(来源:HDMI Spec 1.4b)

  4. 若产品支持CEC功能,为确保产品能输出正确的CEC信号,除了满足前面提及的三点规范外,还需符合下图规范。CEC线路在闲置状态时,线路电压需透过27k欧姆电阻上拉至2.5至3.63V间,以维持在逻辑1的状态。开始传输信息后,需要拉低线路电压至0至0.6V以代表逻辑0。另外CEC并非高速传输介面,上升与下降时间的要求分别小于250us以及50us即可。

    支持HDMI CEC的产品须遵守的电气规范(来源:HDMI Spec 1.4b)

    图2: 支持HDMI CEC的产品须遵守的电气规范–电压(来源:HDMI Spec 1.4b)

CEC技术协议层介绍

CEC传输过程,通常需要一个Initiator以及一个或以上的Follower组成。Initiator负责传输讯号,Follower负责接收讯号。一段完整的CEC讯号,放大来看是由许多的 bit 组成,bit可再细分为Start bit与Data bit。

  • Start bit格式:Initiator未传输CEC信息时,CEC线路上为逻辑1。要开始传输信息时,会将线路拉低至逻辑0(图3)。Start bit的格式仅在此处使用,Follower收到此格式的信息后就会准备接收后续data bit。

    图3: HDMI CEC Start bit格式(来源:HDMI Spec 1.4b)

    图3: HDMI CEC Start bit格式(来源:HDMI Spec 1.4b)

  • Data bit格式:Start bit传输过后,紧接着传输的是Data bit,逻辑1和0须依照图四格式输出。Initiator会使用逻辑1和0传输数据,而Follower会使用逻辑0来回复ACK。

    图4: HDMI CEC Data bit 格式(取自 HDMI Spec 1.4b)

    图4: HDMI CEC Data bit 格式(取自 HDMI Spec 1.4b)

  • Header/Data Block格式:每10个Data bit可以组成更大的单位,称为Header/Data Block(参图五)。前面八个Information bits根据用途能用来传输Data、Logical address、Opcodes等讯息。最后两个EOM以及ACK bit有以下用途:

    1. EOM (End of message):用来告知Follower这是不是最后传输的Data block,1代表讯息已传输完成,0则代表后续仍有数据传输。

    2. ACK (Acknowledge):Initiator固定将ACK设置为1,Follower会借由回复ACK,来反应是否有成功接收资讯。注意Follower会因为传输模式的不同(Direct/broadcast),ACK有不同的回复方法。若Initiator传输信息给单一follower,这类信息称为Direct message,follower可将ACK设置为0,代表正确接收信息。若Initiator传输信息给复数个follower,这类信息称为Broadcast message,follower可将ACK设置为0,代表没有正确接收信息。因此当Initiator监测到ACK为0,则可能代表有一个或以上的follower没有成功接收信息,反之若ACK为1,代表所有follower均正确接收。

      图5: Header/Data Block格式(来源:HDMI Spec 1.4b)

      图5: Header/Data Block格式(来源:HDMI Spec 1.4b)

    综合以上内容,一段完整的CEC指令依照顺序会由Start bit、Header Block、许多的Data Block组成。Initiator可藉由传输不同的 Data Block内容,对连接的Follower进行不同的功能控制。

    如何透过HDMI CEC功能遥控链接产品?

    CEC的物理&逻辑位置分配

    在现实社会中,如果我们要请远方的朋友帮忙做事,通常会透过邮件或电话沟通,这样的过程会需要两个重要参数,一个是朋友的邮件地址或电话号码,另一个则是正确的指示。

    同样的,为了让Follower正常运作,Initiator除了传送正确的指示外,也需要传送至正确的Follower位置。一个CEC装置会同时拥有物理位置与逻辑位置,物理位置指的是该装置在连结树状图中的节点位置,而逻辑位置则是反映该装置的产品类型。由于每一位消费者连接产品的方式都不同,因此物理位置和逻辑位置皆不能采用固定位置,需要随着不同的连接方法来调整,确保Initiator在所有情况下都能传送讯息到正确的装置。

    物理位置的分配,是透过DDC线路以及Sink EDID来实现。一般来说,电视会是整个CEC连接树状图最末端的装置,称为CEC Root Device,其物理位置为四码并固定是0.0.0.0。那么其他的连接装置,要如何有规则的获得物理位置呢?以图6为例,假设有AV装置连接至电视的输入端2,装置会使用DDC线路读取电视输入端2的EDID,并将读取到的VSDB中的物理位置值2.0.0.0,设置成自身的物理位置。若该AV装置拥有输入端,会藉由将输入端的编号迭加上自身的物理位置2.0.0.0以产生新的物理位置,并放入对应输入端的EDID内,因此DVD拨放器连接AV装置的输入端1后,获得的物理位置就会是2.1.0.0。如果按照这样的方式继续扩展装置树状图,理论上CEC装置最多能组成五阶的连接网路,每阶最多能有15个装置。值得注意的是,实际应用时无法连结15台以上的装置,这是因为装置过多将会造成线路过大电容负载,影响传输讯号品质。

    图6: 物理位置分配图(来源:HDMI Spec 1.4b)

    每个CEC装置除了有物理位置外,还会获得专属的逻辑位置,来反映装置的产品类型(参图8),像TV对应的逻辑位置是0,而机上盒可使用的逻辑位置是3、6、7、10之一。细心的读者可能会有个疑问,如果有多个重复功能的装置连结至网路中,要如何分配逻辑位置呢?重复装置的逻辑位置分配,会透过CEC中的Polling message来实现。Polling message指的是一段只有Header Block的信息,其中Initiator和Destination的逻辑位置相同,EOM bit设置为1。我们接下来以生活应用举例,来看当消费者将PS5、Xbox等电视游乐器连接至TV,会如何进行逻辑位置分配。

    支持CEC的HDMI装置连结逻辑应用

    当消费者连结所有装置后,TV会发出(逻辑位置0->逻辑位置0)的Polling message,由于此时没有其余装置回应ACK,TV就会取得该逻辑位置0。接着依照时间顺序,假设第一个连接至TV的是PS5游乐器,它会送出一段Polling message(逻辑位置4->逻辑位置4),由于没有其余装置回应ACK,PS5就会取得逻辑位置4。而最晚连结至TV的Xbox,也会先尝试送出Polling message(逻辑位置4->逻辑位置4),但此时PS5已占用该逻辑位置,所以PS5会对此信息回复ACK,代表成功接收。因为逻辑位置4已被占用,Xbox会再尝试送出下一个Polling message(逻辑位置8->逻辑位置8),此时没有其余装置回应ACK,Xbox就会取得逻辑位置8。

    总结来说,每当连接或断开一个CEC装置,装置就会依照上述流程,自动的分配物理、逻辑位置,形成一个新的装置连结网路。

    图7: Polling message结构(来源:HDMI Spec 1.4b)

    图7: Polling message结构(来源:HDMI Spec 1.4b)

    图8: HDMI CEC装置逻辑位置(来源:HDMI Spec 1.4b)

    图8: HDMI CEC装置逻辑位置(来源:HDMI Spec 1.4b)

    HDMI规范中CEC架构的稳定沟通机制

    CEC架构中使用了以下两种方式,以提供稳定的资讯传输:

    1. 再传输:Initiator传输CEC讯息后,若Follower没有回应ACK或是Follower在不对的时间点将CEC线路电压拉低,这代表着传输讯息有误或Follower来不及处理讯息,因此规范允许Initiator可尝试再次传输相同讯息,最多5次。

    2. 仲裁:由于CEC线路上只允许单一Initiator传输讯息,为了避免多个Initiator同时传输讯号导致输出异常,CEC定义了的Signal free time(参图9),Initiator需要等待Signal free time过后才能传输讯息。从图9中可以看出,Initiator传输所需的Signal free time时间最短,代表仲裁优先度最高,有较高机会成功传输讯息。

      图9: Signal free time(来源:HDMI Spec 1.4b)

      图9: Signal free time(来源:HDMI Spec 1.4b)

    结论

    HDMI介面特有的CEC功能,可以让消费者简化影音设备操作,带来更好的使用者体验,也减少了生活中恼人的繁复。为了确保消费者所购买支持CEC的影音设备皆拥有正常的功能,设备上市前应送往第三方认证测试实验室进行测试,并依照HDMI规范通过相关的CEC认证测试。本文介绍了CEC基础电性以及协议层规范,希望让读者了解CEC操作原理、更清楚地掌握产品规格,顺利通过认证测试。

     

    参考文献

    1. High-Definition Multimedia Interface Specification version 1.4b

    GRL 台湾测试工程师 李清宇 Peter Lee

    国立成功大学材料系硕士毕业。三年 HDMI 测试经验,熟悉 HDMI2.1 与 HDCP 技术测试。GRL 技术文章作者及演讲讲师。

Published by GRL Team Apr 10, 2023

Related Post