高带宽数字内容保护技术接收端的研究与设计
在一个时钟内进行20次56位的加法操作可能会产生不能接受的延迟。为了解决这个问题在此提出两种方法来实现该操作。方法一:采用流水线结构,在每个周期里完成一次56位的加法操作,然后在20个周期里完成Km'的最终计算;方法二:使用节约加法器来压缩从2~20的算子,然后执行最终的加法操作。方法二比方法一具有更高的可执行性,但是需要占用更多的资源;方法一相对能节约更多的资源但是延时大。
根据HDCP协议的要求HDCP接收端必须在100 ms内完成Km'、Kb'、M0'、R0'值的计算并把有效的R0'值传给HDCP的发送端,该过程是在HDCP发送端的读操作到HDCP发送端完成把Aksv写到视频接收端的操作之后进行,这就意味着延迟在这不是问题,所以在此选择方法一来进行计算Km'值。
接收端授权状态机是控制器模块的核心部分。其他所有的状态机操作指令都是由这个状态机发出的。
授权状态的转换是以Aksv完成接收为标志,当HDCP发送端完成把Aksv写到HDCP接收端寄存器0x14位置时,控制寄存器模块将产生这个标志信号。
2.3 控制器寄存器
当HDCP接收端是第一连接器件时,控制寄存器根据HDCP协议中定义的,除了0x20~0x30,0x43地址位,这些是HDCP中继器的控制寄存器;当HDCP接收端是第二连接器件时,仅仅是控制寄存器的子集才允许进入的。I2C接口子模块会发出一个从HDMI接收端接口连接到第一还是第二的指示信号。
所有的寄存器只有一个能进行写操作的源信号。源信号可能来自3个地方:HDCP发送端,HDMI接口以及HDCP接收端。HDCP发送端能够往寄存器中的0x10地址中写入Aksv,0x15地址中写入Ainfo,0x18地址中写入An;HDCP接收端能够往寄存器中的0x08地址中写入Ri,在0x0A地址中写入pj;HDMI能够往寄存器中的0x00地址中写入Bksv,0x40地址中写入Bcpas,0x41地址中写入Bstatus.写操作的时钟信号不是系统时钟而是像素时钟。当最后一位Aksv写入到寄存器的时候Aksv,Ainfo寄存器复位到零,用复写寄存器机制来实现。
2.4 I2C从机接口
Philips开始开发总线用来在器件内部和电视设备进行通信。HDCP里面定义I2C作为控制通道接口。有3种操作模式:读(read)、写(write)和短读(short read)。读与短读之间的区别是看读取数据过程是在Start(S)还是Repeated Start(RS)条件下初始化的。在短读模式中,在实际的读操作前不需要写入寄存器的偏移地址。
在此HDCP接收端里面必须有一个能够支持I2C总线的逻辑器件。I2C与第一连接器件的8位的二进制的地址是0111 010x;或者是16进制的0x74作为I2C地址,读写位置零。与第二连接器件的地址是0x76.I2C从机接口逻辑在决定与控制寄存器的哪部分连接根据HDCP发送端指示的从机地址来确定。这个子模块需注意以下几点:
(1)仅有4个寄存器支持该写操作即Aksv、Ainfo、An、dbg.
(2)必须有一个写操作先于Aksv到来。
(3)第一连接器件、第二连接器件与HDCP连接的端口不一样。
(4)地址自动增加必须由I2C接口实现。
(5)ksv FIFO读操作行为地址的增加不同于其他地址增加方法。
(6)授权触发条件:寄存器更新Aksv、Ainfo、An值,最后写入到寄存器中的0x14地址中用以触发HDCP接收端的授权认证序列。
在现代设计中,设计人员一直在寻求一种速度更快,面积更小的电路,以在提高可执行性的同时能减少成本。目前物理层的设计是解决这一问题的重要手段。用全定制设计方法来设计I2C从机接口可以达到减少芯片的面积和功耗。所有的逻辑门和时序元素,如锁存器、D触发器是使用静态的方式来提高电路的可靠性。最常见的方式就是使用主从结构的D触发器设计I2C从机接口。
3 结束语
讨论了HDCP接收端的结构,分析了具体的实现方法。其中包括I2C从机接口、控制寄存器、接收端控制器、加密机等子模块的设计。此HDCP接收端根据HDCP协议设计,符合HDCP协议的要求。
- 数字内容及其安全(10-26)
- TMS320VC5402 HPI接口与PCI总线接口设计(04-12)