UCPS工作原理
识别管理单元(简称为IMU)为一个独立的软件或者是硬件模块,承担内部认证、IMU间双向认证、信息收集以及系统完整性维护的功能。IMU与HDMI硬件接口通过I2C通道连接。发送端IMU与接收端IMU通过HDMI接口的DDC通道进行数据交互。IMU模块由UCPS组织统一开发后提供给接口芯片厂商。
图1所示,系统上电后,IMU首先与设备接口进行认证,之后是设备接口间的认证,最后是IMU的之间的认证。以上三种认证通过后,发送端开始对被保护的内容进行加密并发送,而接收端则开始接收并解密还原被保护内容。
图1:UCPS内容流向示意图。
图2是UCPS在HDMI系统中的具体通信示意图。IMU与设备间的通信认证是通过I2C接口,设备间的通信认证是通过HDMI接口上DDC总线完成,两个IMU的通信认证则需要通过I2C和DDC两个接口完成。
图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线发送出去。
图3:UCSP验证系统。
接收端系统工作方法:由于现还没有UCPS的接收器,所以采用一种组合方式来实现UCPS接收功能。首先由一个HDMI接收器(无UCPS功能的HDMI接收器)接收SHC3201发送过来的加密视频数据,再将视频数据送入FPGA中,FPGA板只做UCPS解密操作,FPGA解密后将视频数据送入SHC3201(此处shc3201只是一个HDMI发送器,无UCPS功能)。SHC3201再将数据通过HDMI线送到DTV。整个系统工作结束。[page]
如图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也可读写即可。
图4
Bit0:HDMI发射端通过DDC读完数据标志
Bit1:HDMI发射端通过DDC写完数据标志
Bit2:HDMI忙/闲标识HDMI发射端是否正在写DDC总线
上图在接收端定义寄存器和通信标志位,发射端可读写,接收端只能读
图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通道,通过传递消息来完成的。
上一篇:基于USB的家电自动化
下一篇:RS485防雷保护中的接地问题分析
推荐阅读最新更新时间:2024-05-02 23:34