【摘要】 我国首部具有自主知识产权的数字接口内容保护行业标准——《数字接口内容保护系统技术规范》(Unified Content Protection System,简称UCPS标准),已由国家工业和信息化部颁布,并于2010年3月1日正式实施。UCPS标准是中国消费电子行业第一个自主知识产权的内容保护标准,也是第一个以企业为主导的自主技术标准。上海华虹集成电路有限责任公司(简称华虹设计)是UCPS论坛联盟成员和联盟指定的芯片设计单位,华虹设计通过自身的刻苦研究,开发了全球首款支持UCPS标准、符合HDMI 1.3标准的发送器SHC3201。
由于目前还没有带UCPS功能的HDMI接收器,为了验证UCPS标准的可行性,同时验证SHC3201的UCPS功能,我们通过一种特殊的方法来完成这个实验。在发送端采用SHC3201作为UCPS 发送器。而在接收端,采用一个标准的不带UCPS功能的HDMI接收器和一块FPGA板和一块SHC3201发送器共同完成。其中标准的HDMI接收器用来接收HDMI线上的数据,将HDMI线上高速的TMDS差分信号转换为普通视频数据;FPGA板主要实现UCPS 实时解密,同时在FPGA内部有一个MCU, 用来完成与UCPS设备认证和消息交互;SHC3201用来发送视频数据到DTV显示。同时在发送端和接收端都有一个MCU作为主控,用来控制整个系统的正常工作。
1 UCPS工作原理
图一:UCPS内容流向示意图
图二:UCPS HDMI通信架构示意图
识别管理单元(简称为IMU)为一个独立的软件或者是硬件模块,承担内部认证、IMU间双向认证、信息收集以及系统完整性维护的功能。IMU与HDMI硬件接口通过I2C通道连接。发送端IMU与接收端IMU通过HDMI接口的DDC通道进行数据交互。IMU模块由UCPS组织统一开发后提供给接口芯片厂商。
图一所示,系统上电后,IMU首先与设备接口进行认证,之后是设备接口间的认证,最后是IMU的之间的认证。以上三种认证通过后,发送端开始对被保护的内容进行加密并发送,而接收端则开始接收并解密还原被保护内容。
图二 是UCPS 在HDMI 系统中的具体通信示意图。IMU与设备间的通信认证是通过I2C 接口,设备间的通信认证是通过HDMI 接口上DDC总线完成,两个IMU的通信认证则需要通过 I2C 和DDC 两个接口完成。
UCPS协议主要包括以下内容:
1) 设备认证:包括IMU与设备接口间的认证,设备接口间的认证和IMU之间的认证。
2) 协议消息交互机制:整个设备的认证,通过一套完整的消息机制完成。
3) 密钥机制和安全传输: 包括密钥激活和对受保护内容加密传输。
4) 系统信息收集和完整性维护:包括公钥吊销,IMU 有效性验证与更新。
2 SHC3201芯片功能介绍:
SHC3201 是上海华虹设计公司开发的全球首款支持UCPS标准、符合HDMI 1.3标准的发送器。SHC3201 HDMI发送器主要功能特征包括
1) 支持UCPS1.0和HDCP1.2。
2) 225 MHz HDMI v1.3支持36bits深色(Deep Color)应用。
3) 在80MHz时功耗仅100mW左右,非常适用便携式多媒体终端;
4) 待机功耗极低(小于30μA)。
5) 显示数据通道(DDC)支持。
6) 支持S/PDIF和8通道I2S音频记录格式并且以192kHz速率发送立体声或7.1通道环绕声。
3 UCPS验证具体实现方法:
图三:UCSP 验证系统
图三所示,发送端系统工作方法:DVD 的视频数据经HDMI线到达HDMI 接收器(无UCPS 功能的HDMI 接收器),之后经数据线到达SHC3201。SHC3201 在通过UCPS验证后,将加密视频数据,并将加密后的数据经过HDMI 线发送出去。
接收端系统工作方法:由于现还没有UCPS的接收器,所以采用一种组合方式来实现UCPS接收功能。首先由一个HDMI接收器(无UCPS功能的HDMI接收器)接收SHC3201发送过来的加密视频数据,再将视频数据送入FPGA中,FPGA板只做UCPS解密操作,FPGA解密后将视频数据送入SHC3201(此处shc3201只是一个HDMI 发送器,无UCPS功能)。SHC3201再将数据通过HDMI 线送到DTV。整个系统工作结束。
4 UCPS 认证实现方法:
如图三所示,在进行设备认证的过程中,在发送端,所有的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也可读写即可。
图四
Bit0: HDMI发射端通过DDC读完数据标志
Bit1: HDMI 发射端通过DDC写完数据标志
Bit2: HDMI忙/闲标识 HDMI 发射端是否正在写DDC总线
图四在接收端定义寄存器和通信标志位,发射端可读写,接收端只能读
图五
Bit0: HDMI接收端通过DDC读完数据标志
Bit1: HDMI 接收端通过DDC写完数据标志
Bit2: HDMI忙/闲标识 HDMI 接收端是否正在写数据到缓存器
图五在接收端定义寄存器和通信标志位,接收端可读写,发射端只能读。
5 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 读取接收端缓存器中的数据。返回第一步。
6 HDMI接收端软件设计方法:
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把数据写入了接收端的缓存器。接收端开始读取缓存器的数据, 读完后返回第一步。
7 讨论
上海华虹的SHC3201,是第一颗带有UCPS功能的HDMI发送器,因为现没有相应的带有UCPS功能的HDMI接收器,为了验证和测试UCPS完整功能,我们在实验室采用了上述方法。通过这个方法,在没有带UCPS功能的HDMI接收器的环境下,我们成功地实现了UCPS协议验证。可以实现UCPS的设备认证,UCSP加密和解密的功能测试。并作为一个完成系统通过相关部门验收。在此系统中,我们通过软硬的方法,成功验证了UCPS协议所需要的设备认证功能,发送与接收通信机制功能,UCPS实时加密和实时解密功能。 同时因为现相关标准组织还没有开发出相应的IMU模块,所以与IMU相关的认证功能暂时没有验证。
另外要说明的是在这套验证系统中,接收端用的是一个标准的HDMI接收器作为数据转换,系统无法实时传送UCPS加密信令(HDMI接收器不能识别此信令)。为了避免在加密状态发生变化时,HDMI发送端和HDMI接收端不同步,我们定义在消隐期间,不发送任何有效数据,包括音频或者视频。而音频数据是穿插在消隐期间发送的,目前这种方法,不能传音频数据。发送端和接收端的加解密状态同步,双方是通过DDC通道,通过传递消息来完成的。
|
||||||
|
||||||