UCPS协议与HDMI的验证系统设计与实现

接口/总线/驱动

1106人已加入

描述

  中国首部具有自主知识产权的数字接口内容保护行业标准—《数字接口内容保护系统技术规范》(简称UCPS标准),已由国家工业和信息化部颁布,并于2010年3月1日正式实施。UCPS标准是中国消费电子行业第一个自主知识产权的内容保护标准,也是第一个以企业为主导的自主技术标准。本文介绍全球首款支持UCPS标准、符合HDMI1.3标准的发送器SHC3201,并探讨UCPS协议与HDMI的验证系统的设计与实现。

  UCPS工作原理

  识别管理单元(简称为IMU)为一个独立的软件或者是硬件模块,承担内部认证、IMU间双向认证、信息收集以及系统完整性维护的功能。IMU与HDMI硬件接口通过I2C通道连接。发送端IMU与接收端IMU通过HDMI接口的DDC通道进行数据交互。IMU模块由UCPS组织统一开发后提供给接口芯片厂商。

  图1所示,系统上电后,IMU首先与设备接口进行认证,之后是设备接口间的认证,最后是IMU的之间的认证。以上三种认证通过后,发送端开始对被保护的内容进行加密并发送,而接收端则开始接收并解密还原被保护内容。

UCPS协议

  图1:UCPS内容流向示意图。

  图2是UCPS在HDMI系统中的具体通信示意图。IMU与设备间的通信认证是通过I2C接口,设备间的通信认证是通过HDMI接口上DDC总线完成,两个IMU的通信认证则需要通过I2C和DDC两个接口完成。

 
UCPS协议

  图2:UCPS HDMI通信架构示意图。

  UCPS协议主要包括以下内容:

  1) 设备认证:包括IMU与设备接口间的认证,设备接口间的认证和IMU之间的认证。

  2) 协议消息交互机制:整个设备的认证,通过一套完整的消息机制完成。

  3) 密钥机制和安全传输:包括密钥激活和对受保护内容加密传输。

  4) 系统信息收集和完整性维护:包括公钥吊销,IMU有效性验证与更新。

  2SHC3201芯片功能介绍:

  SHC3201是全球首款支持UCPS标准、符合HDMI1.3标准的发送器。SHC3201HDMI发送器主要功能特征包括

  1) 支持UCPS1.0和HDCP1.2;

  2) 225MHzHDMIv1.3支持36bits深色(DeepColor)应用;

  3) 在80MHz时功耗仅100mW左右,非常适用便携式多媒体终端;

  4) 待机功耗极低(小于30μA);

  5) 显示数据通道(DDC)支持;

  6) 支持S/PDIF和8通道I2S音频记录格式并且以192kHz速率发送立体声或7.1通道环绕声。

  UCPS验证具体实现方法

  图3所示,发送端系统工作方法:DVD的视频数据经HDMI线到达HDMI接收器(无UCPS功能的HDMI接收器),之后经数据线到达SHC3201。SHC3201在通过UCPS验证后,将加密视频数据,并将加密后的数据经过HDMI线发送出去。

UCPS协议

  图3:UCSP验证系统。

  接收端系统工作方法:由于现还没有UCPS的接收器,所以采用一种组合方式来实现UCPS接收功能。首先由一个HDMI接收器(无UCPS功能的HDMI接收器)接收SHC3201发送过来的加密视频数据,再将视频数据送入FPGA中,FPGA板只做UCPS解密操作,FPGA解密后将视频数据送入SHC3201(此处shc3201只是一个HDMI发送器,无UCPS功能)。SHC3201再将数据通过HDMI线送到DTV。整个系统工作结束。

  如图3所示,在进行设备认证的过程中,在发送端,所有的UCPS认证工作,加密的启动,都是由SHC3201内部的MCU发起,固件直接固化到SHC3201内部ROM中。在接收系统中的FPGA板上也有一个MCU。在这两个MCU将用来完成UCPS的认证消息交互工作,加解密的控制。另外在发送系统和接收系统也各有一个MCU,用来作为整个系统的主控,包括HDMI接收器和SHC3201的初始化,驱动HDMI接收器和SHC3201正常工作。需要说明的是,在此套方案中,发送端的SHC3201内部MCU通过DDC直接与接收端的FPGA板内的MCU通信。在接收端FPGA板上的RAM挂接在DDC总线上,发送端SHC3201内部MCU通过DDC访问它,而接收端FPGA中的MCU通过并行总线直接访问它。在此RAM中按照UCPS协议标准定如下寄存器。

  在接收端FPGA板上增加两个寄存器,可命名为:HDMI_TX_STATUS和HDMI_RX_STATUS。增加一个数据缓存器,缓存器大小为32字节。增加的寄存器和缓存器都要挂接在DDC总线上,让发射端SHC3201可以通过DDC进行读写操作,同时接收端FPGA内部的MCU也可读写即可。

UCPS协议

  图4

  Bit0:HDMI发射端通过DDC读完数据标志

  Bit1:HDMI发射端通过DDC写完数据标志

  Bit2:HDMI忙/闲标识HDMI发射端是否正在写DDC总线

  上图在接收端定义寄存器和通信标志位,发射端可读写,接收端只能读

UCPS协议

  图5

  Bit0:HDMI接收端通过DDC读完数据标志

  Bit1:HDMI接收端通过DDC写完数据标志

  Bit2:HDMI忙/闲标识HDMI接收端是否正在写数据到缓存器

  上图在接收端定义寄存器和通信标志位,接收端可读写,发射端只能读。

  HDMI发射端SHC3201固件设计方法

  1)发射端主控器通过DDC写接收端HDMI_TX_STATUS为0x1;

  2)发射端主控器通过DDC轮询接收端的两个标志寄存器;

  3)如果发射端要发送数据或消息到接收端,先查看HDMI_RX_STATUS为0x1,则开始准备发送。否则到第八步;

  4)发射端写HDMI_TX_STATUS为0x04;

  5)发射端将数据或消息通过DDC写入接收端的缓存器中;

  6)发射端写HDMI_TX_STATUS为0x02;

  7)发射端通过DDC开始轮询HDMI_RX_STATUS值,如为0x1,则表示接收端已将数据取出,回到第1步;

  8)发射端接收数据,当发现HDMI_RX_STATUS值为0x02时,表示HDMI接收端已将数据准备好了,发射端写HDMI_TX_STATUS为0X04,并开始通过DDC读取接收端缓存器中的数据。返回第一步。

  6HDMI接收端软件设计方法:

  1)接收端写HDMI_RX_STATUS为0x1;

  2)接收端主控器通过轮询接收端的两个标志寄存器;

  3)如果接收端要发送数据或消息到发射端,先查看HDMI_TX_STATUS的值为0x1时,则开始准备发送;否则到第八步;

  4)接收端写HDMI_RX_STATUS为0x04;

  5)接收端将数据或消息写入接收端的缓存器中;

  6)接收端写HDMI_RX_STATUS的值为0x02;

  7)接收端开始轮询HDMI_TX_STATUS值,如为1,则表示发射端已将数据取出,回到第一步;

  8)接收端接收数据,当发现HDMI_TX_STATUS值为0x2时,表示HDMI发射端已经通过DDC把数据写入了接收端的缓存器。接收端开始读取缓存器的数据,读完后返回第一步。

  本文小结

  SHC3201是第一颗带有UCPS功能的HDMI发送器,因为现没有相应的带有UCPS功能的HDMI接收器,为了验证和测试UCPS完整功能,我们在实验室采用了上述方法。为了避免在加密状态发生变化时,HDMI发送端和HDMI接收端不同步,我们定义在消隐期间,不发送任何有效数据,包括音频或者视频。而音频数据是穿插在消隐期间发送的,目前这种方法,不能传音频数据。发送端和接收端的加解密状态同步,双方是通过DDC通道,通过传递消息来完成的。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分