当前位置:首页 > 心得体会 > HDMI FPGA实现 [HDMI,CEC的设计与实现]
 

HDMI FPGA实现 [HDMI,CEC的设计与实现]

发布时间:2019-02-16 04:39:29 影响了:

  摘要:基于FPGA的设计流程 ,通过对HDMI CEC的协议分析,架构定义,RTL编写及功能仿真,到最后FPGA验证,结果表明,该设计能较好的满足功能和时序要求,也能作为一个IP核,方便地相关电子产品领域应用。
  关键词:HDMI;CEC;FPGA
  
  Design and implement for HDMI CEC
  
  ZHANG Yong, HUANG Shi-zhen
  (Fujian key Laboratory of Microelectronics & Integrated Circuits, Fuzhou University, Fuzhou 350002, China)
  
  Abstract: Designed and implemented for HDMI(High Definition Multimedia Interface)CEC(Consumer Electronic Control)base on the flow of FPGA(filed program gate array), from protocol analyzed, architecture defined, RTL(register transmit level) write, and function simulation .Finally, implement with FPGA .The result show that this design meet the timing and function well. It maybe applies comfortably in the relational electronic production filed as an IP core.
  Key word: HDMI; CEC; FPGA
  
  1引言
  
   由于HDTV(High Definition Television)市场的需求,HDMI(High-Definition Multimedia Interface)接口已被消费者广泛接受,成为HDTV和相关消费类电子产品公认的高速接口标准。同时,HDMI中的CEC(Consumer Electronic Control)的功能也得到了相当的重视。如今,在很多不同品牌的HDMI上都可以看到带有CEC的功能,如松下电器(Panasonic)的VIERALINK,三星电子(Samsung)的ANYNET+,LG电子的SIMPLINK,索尼(Sony)的BRAVIA SYNC,索普(Sharp)的FAMILINK等[1]。功能主要是在不同的电器之间进行通信,从而实现比如一键开机、一键录像之类的效果。
  本设计中的CEC是基于HDMI 规格中定义的接口协议,经仿真测试及FPGA验证,最终将集成到HDMI接口芯片里。设计的CEC模块也可作为一个IP核在相关领域应用。
  
  2CEC协议
  
  CEC接口只包含一根双向的信号线:CEC。CEC总线的数据以帧的形式传输[2]。每帧包括一个开始比特(Start bit),帧头块(header block),帧体块(data block)。如果图1所示。其中Data block的长度取决于具体的命令,有效范围是0到15byte。
   表1是帧头和帧体的结构。每个帧头块或帧体块包括10个比特,其中前八位是信息位,第九位是EOM(消息结束,end of message),最后一位是应答位。帧头和帧体的结构相同,区别仅仅是信息位。
  根据CEC标准,CEC信号用不同的占空比表示Start 位,逻辑0和逻辑1,如图3所示。
  
  3CEC设计与实现
  
   本设计中的CEC模块主要包含bit control、byte control以及寄存器的接口等3个子模块。其中bit control主要负责比特级别的处理,比如CEC时序的校准,Start bit的产生和检测,信息比特0和1的产生和检测,仲裁判决等等。Byte control将bit control接收到的比特数据,经过并行化,变成byte control的数据。同时将byte control的数据,经过串行化,作为bit control的输入。Byte control中包含两个FIFO。用户发送的CEC命令首先被存入到一个TFIFO里,经过 byte control转换到bit control,最终输出。从CEC总线上接受到的消息,也被存入到一个RFIFO中,经过 bit control转换到byte control,最终被用户读出。CEC register interface是个寄存器读写的接口。
   CEC模块总体框图如图3所示。
  
   3.1 Bit Control的设计
   根据CEC标准,CEC信号用不同的占空比表示逻辑0和逻辑1。为了确定是0还是1,我们需要一个参考时间源,通过填写寄存器CEC Timing Reference Register,以产生一个4.8 ms的时间基准。CEC bit control以这个时间基准为参考,产生和检测比特级别的信号。
   CEC总线上同时接了很多器件,并且这些器件可以同时发起消息传递。因此,当冲突发生时,CEC有相应的机制保证有唯一的某个器件可以单独占有总线,这就是仲裁。CEC总线的低电平由器件驱动,高电平由一个27 kΩ的上拉电阻上拉产生。由于高电平可以被低电平覆盖,所以仲裁的结果是输出逻辑0(逻辑0有更长时间的低电平)的器件获得总线。
  当CEC要发送消息时,首先要查看CEC总线是否忙碌。如果空闲并且满足等待时间,CEC bit control开始发送消息,发送消息的同时,CEC bit control需要不停的检测总线数据。如果总线上的数据和发送的数据不同,表明CEC失去仲裁(在发送initiator address期间)或者CEC消息的接收端(follower)无法接受本消息(在发送data block期间)。CEC bit control应该设置LOST_ARBIT,并且立刻停止发送剩余消息内容。在CEC发送新的消息时,CEC bit control应该清除LOST_ARBIT。
   根据CEC标准每个header block或者data block都包含一个响应位。如果接收端地址不是广播地址,接收端器件通过发送逻辑0来响应发送端,表明一个完整的字节已经收到。如果是广播地址,接收端器件(所有连在总线上的器件)通过发送逻辑1来表明广播消息已被接受。对于上面情况的反面情形(非广播地址时没有收到ACK,广播地址时收到ACK),CEC bit control应该设置NO_ACK。在CEC发送新的消息时,CEC bit control应该清除NO_ACK。
   根据CEC标准,逻辑0和1的周期在2.05 ms到2.75 ms之间(标准为2.4 ms)。CEC bit control检测总线上的信号,如果小于2.05 ms或超过2.75 ms,CEC bit control要做相应的寄存器设置。需要注意的是,错误检测不在start bit期间执行。如果消息是CEC总线发送期间发生了上述的错误,CEC bit control要发送长达3.6 ms的低电平来通知发送端。这种信号称为错误通知信号。同样,如果CEC bit control在总线上检测到错误通知信号,要立刻停止正在发送的消息,并且做出相应的寄存器设置。在CEC发送新的消息时,CEC bit control应该清除相应设置。CEC bit control框图如图4所示。
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文    3.2 Byte Control的设计
   根据CEC标准,CEC在进行发送前要先进行地址匹配,CEC的帧头中包括initiator address和destination address。在发送消息之前,用户首先配置寄存器,其中的INIT_ADDR被认为就是CEC的逻辑地址。CEC总线上目标地址和该寄存器值匹配的,CEC要响应消息,并且接受其后总线上的消息内容。
   CEC同时支持CEC广播功能,即对于destination为0xF的消息,CEC也能接受,同时设置寄存器来指示。CEC接收到发给自己的非广播消息,应该清除相应的标志。
   CEC标准定义了仲裁和发送失败的重发机制和时间间隔(单位为date),如表2所示。
  为了便于软件重发时序控制,CEC Byte Control内置一个Counter。该Counter在消息结束之后自动清零,然后每隔0.3 ms,Counter增加1。一个Data bit是2.4 ms,对应着该Counter增加到8。如表3所示。
  CEC byte control框图如图5所示。
  
   3.3 CEC寄存器接口
   寄存器接口是一个握手协议接口。当进行写时,cec_ack信号在rab_write信号有效后的下一个周期被设置。当进行读时,cec_ack信号在rab_read信号有效后的下个周期被设置,同时将地址上的数据读出。寄存器接口协议图6所示。
  4CEC的仿真验证
  
   设计中使用的仿真软件是 Synopsys公司的 VCS和NOVAS公司的Verdi,并采用FPGA进行验证。CEC发送1 byte的仿真波形结果如图7所示,CEC接收1 byte 的结果如图8所示,CEC发送和接收15 bytes的结果如图9所示。
  
  5结束语
  
   设计并实现了一个基于FPGA流程的HDMI CEC模块。从协议分析、架构定义、 RTL编写,到功能仿真、及FPGA验证,较好地满足了设计的要求,能作为一个软核在相关领域应用。
  
  参考文献
  [1] www.省略,HDMI Founder官方网站
  [2] High Definition Multimedia Interface Specification Version 1.3a,2006.11,170-190.
  
  作者简介
  张涌,硕士,福州大学物信学院。
  黄世震,副教授,福建省微电子集成电路重点实验室主任,主要从事集成电路的研究。
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3