同密架构下ECMG的设计与实现
2013-08-13杨秀芝
吴 琳,杨秀芝
(福州大学福建省数字电视工程研究中心,福建 福州 350002)
随着数字电视产业的快速发展,各种增值业务不断出现。条件接收系统(Conditional Access System,CAS)是实现节目付费和个性化增值业务的基础,同密技术的实现为数字电视网络运营商检验条件接收系统的优劣提供了一种技术手段[1]。典型的条件接收系统由用户管理系统、节目信息管理系统、加密/解密系统和加扰/解扰系统等构成[2]。其中的加密/解密系统存在两种加密单元,分别是对ECM与EMM的加密处理。本文研究的授权控制信息发生器(ECMG),其功能主要是与加扰器中同密同步器(SCS)通信,对加扰控制字(CW)进行加密,将加密后的数据与访问准则(AC)信息组合生成ECM包,将ECM包交给SOPC系统,通过网络接口返回给加扰器。
1 设计方案
ECMG总体设计框图如图1所示。
图1 ECMG设计框图
加扰器中的控制字发生器(CWG)产生CW;SCS获得CW,与ECMG建立TCP连接,为每个连接建立通道,在通道内建立所需要的流,通过相关的流向ECMG提供CW和相关信息;ECMG接收CW,用DES算法将其加密,加密后的数据与相关信息组成ECM包,返回给加扰器[3]。
2 ECMG硬件设计
ECMG硬件设计又可称为ECMG加密机,该部分主要完成两大模块:加密模块与ECM包生成模块。采用硬件实现加密,安全度增加、加密速度加快,因此运用高效快速的FPGA来实现这两大模块是一个理想的选择。
ECMG加密机结构框图如图2所示。
图2 ECMG加密机结构图
SKG:密钥生成器。当SKG接收到网络传来的SK_rdy有效信号时,则产生本轮加密CW的密钥SK。
CW接收:当接收到网络传来的CW_rdy有效信号时,读取CW_men内的数据,读取完成产生CWrv_rdy脉冲信号。
相关信息接收:相关信息主要是AC信息。当接收到SCS通过网络传来的AC_rdy有效信号时,读取暂存于片内RAM中的访问准则,也可以直接从网络传输的消息中获取,这样就需要与加扰器约定传输的信息格式。
DES加密:当收到CWrv_rdy信号,即CW读取完毕时,用SK对取出的CW进行DES加密运算。
CRC校验:对组成的ECM密文进行CRC运算,产生4 byte的CRC字段,并添加于ECM包。
ECM组包存入RAM:在运用SK加密CW后,将加密后的数据与访问准则信息按照制定的ECM数据格式组成ECM包,再将该数据存入RAM。
3 ECMG软件控制实现
SOPC是Altera公司推出的一种高效灵活的片上系统解决方案,开创了嵌入式系统设计的新理念[4]。Nios II是32位RISC嵌入式处理器,它是SOPC的核心[5]。Altera将μC/OS-II实时操作系统、NicheStack TCP/IP协议栈内嵌到Nios II IDE中,软件的设计可以方便灵活地使用该系统。该软件控制的设计利用以上工具完成。
3.1 SOPC系统定制
该SOPC系统硬件定制如图3所示。
图3 SOPC系统定制图(截图)
本系统在SOPC Builder上定制了Nios II软核CPU、SDRAM、ext_flash、网络处理芯片 LAN91C111、Timer以及包含控制CW,ECM读写的PIO口。
3.2 网络通信的实现
在同密机制下,AC信息是由各个CA厂商将其传递给SCS,SCS则负责将AC信息和从CWG取得的CW传送给ECMG,ECMG将相关的节目信息和CW的密文组成ECM包并返回给SCS,SCS将收到的ECM包存储在RAM里进行播发,SCS还控制ECM与CW之间的同步[6]。
ECMG主要与加扰器中SCS进行通信。ECMG作为服务器,SCS作为客户端。SCS事先知道ECMG的IP地址与端口号,并向ECMG提出连接请求,建立TCP连接。
3.2.1 同密同步器
SCS工作流程可总结如下:
1)从加扰配置界面获得Ecm_Pid,Scg_Id,AC,ECMG_IP,ECMG_Port信息。SCS根据Scg_Id提取相应的CW,并将CW,Ecm_Pid,AC组合构造成CW_provision消息。SCS根据ECMG_IP,ECMG_Port信息与ECMG建立TCP连接。
2)SCS依据Scg_Id和加扰周期来控制ECM与CW之间的同步。
3)SCS根据Scg_Id建立多个流,将CW_provision消息循环地传给ECMG,ECMG返回ECM_response,SCS将返回的ECM信息进行分析并存储。
3.2.2 ECMG与SCS的接口通信
对于接口来说,消息具有以下结构:
Generic_message
{ protocol_version 1B //协议版本的8比特域,0x01
message_type 2B //消息类型
message_length 2B//消息中的字节数
for(i=0;i<n;i++)
{parameter_type 2B//参数类型
parameter_length 2B//参数长度
parameter_value <parameer_length>B//参数实际值 }
}
根据数字电视广播条件接受系统规范,ECMG与SCS接口的消息类型值如表1所示。
表1 消息类型值
ECMG与SCS通信过程如下:
1)SCS根据ECMG_IP,ECMG_Port向ECMG提出连接请求,双方建立TCP连接。
2)SCS发起建立通道请求,消息类型为Channel_setup;ECMG开始建立通道,若成功则返回通道状态,消息类型为Channel_status;若失败则返回通道建立错误消息,类型为Channel_error,并关闭TCP连接。
3)SCS收到Channel_status后发起建立流请求,消息类型为Stream_setup;ECMG开始建立流,若成功则返回流状态,消息类型为Stream_status;若失败则返回流建立错误消息,类型为Stream_error,并关闭通道和TCP连接。
4)SCS收到Stream_status后,从CWG中取出CW,与收到的配置信息Ecm_Pid,AC一起构造成CW_provision,将该消息传送给ECMG;ECMG分析收到的CW_provision消息,将控制字CW存储,交给加密机进行硬件加密;将密文与分析出的Ecm_Pid,AC等信息按制定的ECM组包格式,组成ECM包。将ECM包与包头组合构造ECM_response消息返回给SCS。
5)SCS收到ECM_response后,分析消息,将ECM包进行存储并同步播发。
6)当不再需要ECM或出错时,SCS发送流关闭请求,消息类型为Stream_close_request;ECMG返回流关闭消息,类型为Stream_close_response。
4 系统测试与结果分析
ECMG与加扰器中的SCS进行网络通信,加扰器是采用研究中心自主研发的加扰器。
将本文设计的ECMG系统通过JTAG口下载到Stratix II开发板上。进行加扰系统配置,设置Ecm_Pid,Scg_Id,AC,ECMG_IP,ECMG_Port信息。再将本 ECMG系统与加扰器进行连接测试。打开Nios II IDE中的console界面打印出消息并分析,如图4所示。
测试结果显示,加扰器的IP为192.168.0.129,ECMG监听端口为6001,从加扰器的IP接收数据。首先ECMG收到Channel_setup消息,返回Channel_status消息;然后收到Stream_setup消息,返回Stream_status消息;接着收到CW_provision消息,返回ECM_response消息;最后循环接收CW_provision,返回ECM_response。测试结果符合广电标准与设计要求。
图4 测试结果分析图(截图)
[1]李红艳,沈士洲,吴国威.同密技术在数字电视系统中的应用[J].电视技术,2004,28(9):38-40.
[2]GY/Z175—2001,数字电视广播条件接收系统规范[S].2001.
[3]魏军,杨秀芝.基于SOPC的ECMG的设计与硬件实现[J].中国有线电视,2010(1):51-53.
[4]江国强.SOPC技术与应用[M].北京:机械工业出版社,2006.
[5]Altera corporation.Using the NicheStack TCP/IP stack—Nios II edition tutorial[EB/OL]. [2012-05-20].http://www.docin.com/p-391338883.html.
[6]滕旭,李怀宇,郑世宝.DVB同密技术与应用[J].电视技术,2004,28(6):27-29.