装了Xbian居然能直接用电视机的遥控机遥控!
太强大了,我把Raspberry Pi装上Xbian后,突然发现电视机的遥控机直接能操控Xbian,太强大了,有木有!PS:电视机是sony日货......
强烈鄙视日货。哈哈,开个玩笑。 raspberry pi 上不用安装红外接收器???? 电视机会通过hdmi把一些信号传给pi,xbian则会去处理
就是这样 这也太先进了……
对hdmi版本有要求吗? 这个在youtube上早就有人玩过了! gavin 发表于 2013-1-30 13:21 static/image/common/back.gif
这也太先进了……
对hdmi版本有要求吗?
家电遥控器大一统 HDMI CEC标准应运而生
新通讯 2010 年 6 月号 112 期《 封面故事 》
文.Del Jones/Hisaki Fujiwara
为减少家电产品遥控器数量,HDMI标准增加CEC功能,以期让消费者便于控制以HDMI连结的各项装置。不过由于CEC允许客制化设计,一旦各家厂商产品各自发展CEC架构,将导致产品间无法相容,因此厂商也渐渐释出其自有CEC设计,未来以单一遥控装置控制所有家电用品指日可待。
如果当有人想在家里以新的高解析度电视看电影时,通常得操作咖啡桌上的五支遥控器。现在高画质多媒体介面(HDMI)链结有一个新的功能,称为消费性电子产品控制(CEC),就是为了让每一位家庭成员对家庭娱乐系统都能上手。本文将定义CEC,并解释其主要功能,详细描述实体介面,再设法解决一些重要的考量因素,包括系统阶层的硬体与软体。
图1 典型的全HDMI家庭剧院架构
即使一般大众可能不熟悉CEC这个术语,应该也听过一些消费电子业界领导厂商所推出的品牌,其中包括索尼(Sony)的“Bravia Link”、Panasonic的“Viera Link”和夏普(Sharp)的“Aquos Link”,虽然这些名称并不相同,但都支援HDMI标准中所提及的CEC功能。
CEC是一个单线、双向介面,用途为便于控制HDMI网路上的任何装置,图1为示意图,包含遥控器,或其他连接到网路上的任何装置上的控制按钮。CEC被定义成HDMI规格的选用功能,是以欧洲广播与电视接收器制造商协会(SCART)规格中所定义的AV链结功能为基础,表1介绍一些典型的终端用户CEC功能。
其中有许多终端用户功能,须透过CEC汇流排发送多个讯息,如目前片源与路由变化(此讯息可支援CEC的路由控制功能)。这个功能让装置开始播放影片,并藉由切换电视机的讯号源输入,而成为目前片源,若下这个命令时,电视机显示的是另一个片源,会将该片源设为待命模式,但须视实作方式而定,因此搞丢DVD放映机遥控器也毋须担心。现在只要推入DVD片,并按下放映机前面板上的播放键即可。只要对这个按钮一按,DVD放映机托盘即会关闭,接着电视机与影音接收机(Audio/Video Receiver, AVR)开机,且每个装置都会选到正确的HDMI埠与适合的影音模式,最后开始播放DVD。
图2 典型CEC HDMI系统方块图
一般人对现有具CEC功能的产品有一些误解。在最新的实作中,CEC命令只适用在单一品牌,所以除非整个系统都是由同一家制造商制造,否则若未设定电视遥控器,无法简单拿起电视遥控器就控制整个系统。所幸当前产业的趋势正导向这个方向,设备厂商开始协助开发人员,将其专有的命令与大家分享,且CEC规格允许客制化,制造商常利用这一点吸引终端用户,购买其自有品牌设备所建构出来的完整系统。
CEC以单线汇流排连接装置
图3 CEC开始位元时序
CEC介面包括一个单线汇流排,在使用HDMI的系统下连接所有装置。图2显示一个典型应用,任何装置在具有CEC功能的系统上,可启始一个CEC命令,启始装置在共用讯号线上发送讯息结构与资料,而网路上的每个装置在收到一个CEC讯息时,必须设定某些应答位元。
图4 CEC逻辑状态的时序图
CEC讯息以资讯框的型式发送,其中包括一个开始位元和资料位元。资料位元可以是资讯性的资料,如逻辑位址、CEC命令或控制位元,如讯息结束或应答。一个由高到低的转态后紧接着一个由低到高的转态,并遵循图3所示的时序,就表示一个开始条件,紧接在开始条件之后的资料须遵循分别为逻辑'0'与'1'的时序要求(图4)。
图5 CEC标头和资料段
CEC资讯框是由资料段组成,每段10位元。其中8位元携带资讯,而后两个位元是EOM位元和ACK位元。在标头段中,资讯位元包含启始装置的逻辑位址(四个高位元)和目标装置的逻辑位址(四个低位元)(图5),若紧接着EOM是逻辑'0',表示后面接着更多资料;若是逻辑'1'则表示讯息结束。
ACK位元处的逻辑意义取决于讯息的类型。一条讯息会紧接着一个特定位元,若是一个逻辑'0',表示该装置已经收到讯息;若紧接着为'1'就表示是一个“无应答”或“什么也不做”的状态。CEC链结上的其他装置全都会回应逻辑'1',若启始装置发送广播讯息给CEC链结上的所有装置,每个装置都会送出一个逻辑'1'到链结上以应答该讯息,这会让某个装置可将讯号线拉到逻辑'0',以回绝该讯息。
相容性为CEC设计重点
图6 CEC命令架构
单一CEC讯息由一个开始命令、一个CEC标头及一个或多个资料段构成。单一CEC特征是以多个CEC的讯息所构成(图6)。在任何第一线的系统设计人员的设计专案中,CEC的互通性自始至终都是重点,以下三阶段测试有助于确保与其他CEC装置的相容性。
HDMI一致性测试是须完成的第一类测试。 HDMI相容测试规格(CTS)是HDMI规格的附件之一,提供待测装置得到HDMI认证前,通过必要测试所进行的详细程序,其中有几个CTS测试专门用以测试CEC,凡是宣称支援CEC的装置,须通过这些测试,以完成HDMI一致性测试的一部分,进而完成全部测试,以取得HDMI认证。
第二类测试是CEA 861/HDCP插拔大会(PlugFest)。该插拔大会每年举行两次,由消费性电子协会(CEA)与数位内容保护(DCP)共同赞助,并成立一个论坛,使HDMI设备制造商有一个可进行互通性测试的共享环境。每隔6个月生产具有CEC功能的装置制造商都会参加这个活动,且皆应参与这个活动,以作为其产品开发周期中,产品测试的一部分。
为求贯彻互通性测试,针对具有CEC功能的装置,消费性电子设备的设计人员可藉着使用CEC解决方案提供厂商的资源,补充前两个阶段的测试。如亚德诺(ADI)为客户提供其产品的HDMI Rx和Tx HDMI预认证测试,以及最新的HDMI 1.3测试设备,还有对一百多个HDMI讯号源和讯号槽所做的多品牌互通性测试,其中多具备CEC功能。无论是与CEC解决方案供应商合作,或可自行发展,建议消费性电子设备制造商发展自有流程以完成这类型的测试。
针对一个CEC解决方案,对多个产品品牌、型号、设备类型做互通性测试,是免不了的。由于大多数消费性电子设备的主要设备制造商使用多个HDMI解决方案,又为多个地区制造多种产品型号,因此,尽可能获得每个品牌产品的排列组合就很重要。AVR产品都须分别针对HDMI讯号源与讯号槽进行测试,再进一步增加必须完成的各种测试。
而使用三阶段的测试方法测试具有CEC功能的装置,为系统设计人员提供最全面的过程,并可进而发现问题,否则可能会导致与其他具有CEC功能的装置不相容的结果。
解读差异造成CEC相容性问题
由于CEC的采用率急速增加,因此有关CEC互通性即成为重点。隐藏在相容性问题背后的主要议题是使用专有的命令,以及对CEC规格的解读差异。虽然许多基本CEC功能的定义是明确的,然而,具有允许客制化CEC的特征和讯息的弹性,仍是规格的特性之一。每个供应商定义自己的供应商特定讯息,仅适用于同一个供应商生产的讯息发送装置与接收装置。这就导致互通性问题,因为这些讯息通常是专用的。目前普遍的态度是,专有命令在封闭的系统中是有效的,诸如许多供应商 都有销售的家庭剧院全配(Home Theatre in a Box)解决方案。本文并不建议使用专有命令,但对于有现成的系统组件的制造商而言,此种方式显然比期待多品牌的相容性实际。
尽管有明确的CEC规范与CEC的CTS,但即便是供应商不使用特定的讯息、没有解读的差异、甚至不窜改规格,这些装置还是有可能遇到互通性问题,“单键播放”功能就是一个例子。CEC规格定义电视机在收到从CEC启始装置(通常是一个视讯源)相应的讯息时,作为一个“单键播放”操作的一部分,应该从待机模式跳出来(即开机)。为确保是根据CEC规格,CEC CTS为这个操作定义测试 11.1.1-3,此CEC CTS项目只在系统设计人员在其能力申报表(CDF)中宣告电视机在收到适当的CEC讯息(Image View On),可从待机模式跳出来时才有效。
当然,市场上最具备完整CEC功能的电视机,可使用该厂牌自己的遥控器从待机状态开机。就算制造商宣称能以CEC做到,但制造商并不须通过CEC CTS的项目,尽管如此,这些产品仍会被视为符合CEC规格。若制造商想支援自己的“山寨版单键播放”功能,亦即只在自有品牌的设备上能用,制造商可用自己的CEC讯息组合,或使用制造商特有的讯息达成,此为常见的做法。
测试规格可解决相容性问题
由于经销通路与终端用户的反弹,对CEC设备供应商施加越来越多的压力,要求解决这些互通性问题。系统设计人员应采取减少上述问题的方法,其一为设计和测试都要紧贴着CEC测试规格。这个信条对所有制造商在宣称其具有CEC功能的系统能够做到HDMI相容之前,应该永远摆在第一位。其二为严格的与多个产品品牌和型号,以及具有CEC功能的设备进行过互通性测试(包括参与插拔大会)。设计人员和CEC解决方案供应商使用此测试并不仅为了改善具有CEC功能的装置,还有助于改善系统在真实世界的环境中,对容许度变化的承受能力。
如前所述,由于压力越来越大,许多当前消费电子设备制造商在签署保密协议(NDA)的条件下,已有意愿分享其某些专有的CEC讯息定义,建议厂商可与这些供应商合作,以得到最高的互通性水准。
控制器响应时间为设计重点
大多数纳入HDMI的系统本来就有一个系统控制器。要确定控制器是否有足够的工作能力加入CEC系统软体,系统设计人员须考虑最低要求,包括一个可用的I2C主控端、一个可用的中断输入接脚、一个计时器功能与一个高阶8位元或标准的16位元控制器。
对于CEC的整合解决方案,控制器用于HDMI介面等功能,如EDID读取/解析与HDCP控制,都是很容易处理的CEC系统功能。以一般的准则而言,控制器具有更快的响应时间会比具有更强的计算能力重要,如果目前使用的控制器速度太慢,或者没有可用的中断输入脚,也许应该将控制器升级到接脚相容或软体相容的版本。
由于CEC的讯息与系统的时序非同步,因此最好使用一个能实作时序功能的控制器,这个功能是必须在两个时域间传递CEC讯息,且不会拖住系统控制器。推荐用一个即时作业系统(RTOS)或具有内部定时器的系统来执行这项工作,尤其是当使用HDMI的装置具有整合的CEC控制器。在不使用即时作业系统或计时器的系统中,垂直同步(Vsync)讯号也可用来触发该函式呼叫CEC软体。这种方法也够用,但比起即时作业系统或其他计时功能的系统而言,实作起来较为不易。
本文不建议使用系统的主控制器处理CEC讯息,CEC的时序相较于系统而言是缓慢(400Hz)而非同步,且须不断监测。这种函式对系统控制器而言过于繁琐,对控制与监测系统其余部分的效能受到限制,只要一个小而廉价的控制器就可处理CEC的讯号与时序。这颗控制器及相关软体可作为系统控制器的从控制器,并且处理CEC的讯息与同步。
在这种配置中,从CEC控制器及相关软体负责所有基本的电气操作与位元时序等,并处理传输错误和排定错误资讯框的重新传输,而系统控制器和软体负责媒体存取控制(MAC)层功能、命令到行动的转译与逻辑位址生成。也有很多理由可考虑使用一个与HDMI硬体和软体整合的CEC控制器与软体解决方案,包括元件较少可降低成本、使用的板面积更小、进入门槛更低,特别在软体为内建的情况,由于是HDMI相关软体与CEC相关软体之间很自然的“契合”,因此可缩短开发时间。
执行CEC应用软体所需的记忆体与软体驱动程序或堆叠所需的大致相同。CEC堆叠保守估计需要约20K位元组的唯读储存记忆体(ROM)和1K位元组的随机存取记忆体(RAM),一个最佳化的解决方案需要的记忆体还会少很多。
多方考量硬体设计
HDMI网路的实体连接很直截了当。依照CEC规格,HDMI连接器的CEC接脚应藉由一颗27K欧姆(Ω)的电阻拉到3.3伏特电源,但是当该消费性电子设备关掉时,这颗提升电阻应该断开。为了减少电阻,即二极体电路两端的I-R压降,建议使用低漏电的二极体。
印刷电路板(PCB)布局则是让HDMI与CEC元件到HDMI连接器间的距离越小越好。另外,也建议将易散出杂讯的数位电路走线与HDMI连接器的讯号走线间切开。请注意,差动HDMI讯号的差动阻抗应为100±15欧姆。本文以厂商推出的整合CEC之HDMI发送器(U6)为例,R2与D13构成CEC的二极体/电阻网路;D2到D12是HDMI介面所用的超低电容静电放电(ESD)二极体;U1是一个12MHz的振荡器,提供CEC时脉;J2是小型化的“C型”HDMI连接器,用于可携式设备。在系统中有多个HDMI埠(输入与/或输出),CEC汇流排将所有埠连接在一个单一网路上。
CEC整合解决方案具优势
一颗具有整合CEC控制器的HDMI元件,可降低系统设计人员的进入门槛,图7显示CEC子系统使用外部控制器与内建控制器的比较。厂商推出CEC硬体的增强实体(PHY)层介面,会自动生成传送CEC讯息时所需的低到高与高到低的讯号时序,并量测低电位脉波的时间与高电位脉波的时间,以接收CEC讯息。这种自动位元讯号功能,消除即时响应的要求,让系统微处理器可用轮询模式操作,比起中断驱动模式,将不再需要专用的CEC微控制器。
图7 CEC方块图比较
实作不同的机板或系统时,可能会导致不同的时间延迟和电容负载条件,这会影响CEC介面的时序。一个整合的CEC介面须有能力调整最短与最长脉波时间,以适应各种不同的机板和系统设计,这样的弹性为具有CEC功能的产品提供一个高水准的容许度,但该产品未必完全相容于HDMI规格。
整合CEC介面还应该包括一个自动的讯息重传模式,这让系统设计人员可以设定CEC硬体尝试重新传输每个输出讯息的次数。若CEC硬体在传送讯息时,检测到一个意外的情况,就会自动终止讯息交谈,并重新启动相同的讯息;如果情况持续,CEC硬体将持续重传到设计人员设定的限制次数,而这个重传系统应自动化,不需系统微控制器的介入。
能源问题日益受到关切,使用电池供电的视频装置也日益流行,这都致使低功耗逐渐成为关注的焦点,整合CEC解决方案可藉由多阶电源关闭模式,降低系统功耗。即使CEC硬体整合进HDMI的硬体,具备独立的电源关闭模式仍可使其独立供电,但为接收或传送讯息,CEC子系统甚至在系统的其他部分处于睡眠模式时,都必须持续保持清醒。这个独立的电源关闭模式可在如电视机、DVD放映机等设备处于待机模式时,让系统关闭HDMI装置的其他部分,此功能可降低系统待机时的功率消耗,并让CEC硬体保持警觉,以接收任何传入的CEC讯息(图8)。
图8 当系统处于待命模式时的CEC子系统
为进一步降低系统的待机功率消耗,CEC硬体可用程式设定为当热插拔检测(HPD)讯号未出现时,会自动进入睡眠模式,若系统设计人员在HPD讯号不生效的期间,选择不接收CEC讯息时,就有可能办到。
一个完整的整合CEC解决方案应包括系统软体驱动程式,且提供C编码或其他可携格式。结构功能的整合到系统级编码可使用任何处理器或编译器。CEC软体也须应对无法预知的位元组顺序,如可高位在后(Big-endian)或低位在后(Little-endian)的格式传递资料,以及处理器汇流排宽度(16、32和64位元都可接受),这些特性使系统设计人员能灵活选择使用的嵌入式微控制器设计。
软体驱动程式应可用RTOS或简单的回圈结构环境执行。在RTOS环境下,CEC软体的执行就像没有时序限制的任务,对于用同样方法建构的软体驱动程式而言,中断服务常式(ISR)并没有特殊处置要求。这一切需要的是一个单一的应用程式介面(API)内的ISR。该API的一部分,应包括CEC软体包,而且不会干扰系统层软体的其他功能,如ISR对硬体资源的存取。
命令/讯息层API作用不同
多层API应可提供具弹性的CEC软体,可让系统设计人员选择自己想要的介面层级。若设计工程师选择讯息层级的API,所有CEC软体与系统软体之间的交换应该包括CEC讯息,这也让系统设计人员灵活地实现终端用户功能,并以最适合用户的系统支援功能。然而,某些系统设计人员可能希望用更高层的介面,以降低系统软体的复杂性,在这种情况下,可使用命令层的API,其使用额外功能实作终端用户与支援CEC规格中所定义的功能。因此,与其呼叫讯息层的API多次以请求特殊的讯息,不如简单呼叫单一API请求一个特定的CEC功能,如CEC的终端用户功能“单键播放”需要二到三个CEC的讯息,并可能需要两次以上,其中一次还取决于后续的回应,并取决于电视机的实作方式,导致这个单一功能变得非常复杂,不过,透过使用命令层的API,并呼叫CEC软体与整合的硬体,就可处理其余部分。
从设定数位录放影机,到找出正确的遥控器,所有家庭娱乐系统的用户皆渴望使用单纯化,若采用CEC,就可提供所需要的单纯化工具。未来,无论是索尼、山叶(Yamaha)、Panasonic的组件,都可平和地共存于同一HDMI网路。 这也可以!!太先进了,我OUT了 不需要设置什么吗?我家的电视是09年上市的TCL L37E9E,怕 是不支持了 这,这,这不科学!!!