- 1 -
基于模块划分法 CA移植的研究与应用
胡燕,李伟
武汉理工大学计算机科学与技术学院
摘 要:本文介绍了一种向机顶盒中移植条件接收系统的方法,它有简单、易用、可复用性
高等优点。该方法从 DVB标准出发,根据条件接收系统的原理,综合多个条件接收系统的
接口函数以及不同硬件平台的差别,通过对条件接收系统进行模块划分的方法,可方便的实
现多种同密条件接收系统的移植。
关键字:条件接收系统;机顶盒;软件移植
引言
当前国家正在推广数字电视,用数字电视来取代模拟电视,但是由于目前我国拥有 4
亿多台模拟电视,一下子取代是不可能的,所以作为模拟电视向数字电视过渡的关键就是机
顶盒(Set Top Box, STB)。条件接收系统[1] [2](Conditional Access System,CAS)是数字电
视接收控制的核心技术保障系统,是机顶盒中一个很重要的软件系统。由于 CAS 开发商对
条件接收系统的内部技术细节严格保密,在进行用户端软件移植时,CAS 开发商仅提供已
经生成的函数库及说明文档;而且不同地区数字化的进度不一样,采用的 CAS 就会有所不
同,为了适应市场的需要,终端厂商就需要移植不同 CA系统,需要按照相关要求重新开发
移植软件。为了使 CA移植工作变得简单,于是笔者设计了一种模块划分的方法进行 CA的
移植。
1. 模块划分的基础和总体划分
CA 有两种运营模式,即同密和多密,而目前运营商大多都采用同密[3]技术运营 CA 系
统,同密使得前端可以使用多个 CA系统,每个 CA系统可以使用不同的加密系统加密各自
的相关信息(CW、ECM、EMM 等),但对节目内容的加扰必须采用同一个加扰算法和加
扰控制字,这就使得一个传输系统中可以运行多个 CAS,这个共同点是接收终端模块划分
方法的基础之一。
接收终端设备获取比特流后,通过调谐和解调获得传输流, 传输流(Transport Stream,
TS)通过硬件解复用分离出音频流、视频流、PSI/SI、EMM、ECM等信息。终端首先是在
TS流中寻找MPEG-2的节目专用信息PSI,在PSI中找到条件接收表CAT,根据CAT表中给出
的EMM包识别码(PID),找到相应的加密EMM信息。智能卡用PDK对加密的EMM解密得
到SK,并根据解出的EMM信息来确定本智能卡是否被授权收看该套节目,如果没有授权将
不能进行后续的解密,也就不能收看该套节目;如果该卡已被授权,则启用SK对ECM(从
PMT表中提取)解密,得到控制字CW。解出的CW通过Smartcard接口送到机顶盒的解扰器,
由CW对加扰的TS流解扰,最终实现加扰节目的收看。以上整个工作过程是由终端软件提供
- 2 -
底层调用、流程控制,在底层驱动的支持下,由智能卡和CAS函数库共同完成的。由此可以
看到,正是由于原理[4]上的相似性,使得设计一个通用的模块划分来移植各种CAS成为了可
能。
通过对多个条件接收系统的分析,得知各个系统所涉及到对底层的调用和驱动大致相
同,包括系统调用、智能卡驱动、存储器驱动、解复用器驱动、解扰器驱动和界面显示等内
容。根据这些模块的功能不同和调用关系将其分为系统模块、闪存模块、解复用模块、智能
卡模块、PSI模块以及界面模块,由此构成了整个移植系统,其总体架构如图1。
图1 条件接收系统的模块划分
2. 模块划分的实现
系统模块
系统模块主要是用于实现 CAS 开发商要求终端移植人员实现与操作系统相关的函数,
例如:SemaphoreInit()、SemaphoreSignal()、SemaphoreWait()、RegisterTask()等,这部分相
对比较简单,只需要结合开发商提供的文档说明查找对应操作系统的函数就可以很快的实
现,这一部分根据操作系统和 CA的不同会有些少许的区别,但方法都是一样。如果是在同
一个操作系统下移植不同的 CA则会更快,甚至只需要改变函数名即可。
闪存模块
闪存模块就是实现与存储器相关函数的模块,主要是实现对这些存储器的读写等操作,
如 ReadDataBuffer()、WriteDataBuffer()等,这些参考驱动层的函数即可很方便的实现上述函
数。
需要特别注意的一点就是某些 CAS 开发商考虑其兼容性,往往要求实现对多个存储器
的访问,这就需用查看硬件平台有哪些存储器,但在笔者接触的平台中只含有 FLASH,故
只需要实现与 FLASH相关的函数即可。
- 3 -
解复用模块
解复用模块所要完成的主要功能就是过滤和接收CAS的私有数据,首先需要终端给CA
设置一个过滤通道以便CA能收取数据,然后在过滤其中的数据,最后是把过滤后的数据交
给CAS处理。在这其中主要包含两个方面的工作,一方面需要实现一个函数设置过滤器接收
CAS私有数据,这个通常也是CA要求终端实现的;另一方面需要对接收的数据进行监测过
滤(CaDmxMonitor()),同时把过滤后的数据交给CAS处理。
智能卡模块
在STB中, 常用ISO7816标准中的T=0协议,以及为了简化通信过程而设计的T=14协议。
软件对智能卡的操作流程遵循初始化、打开、复位、读写、关闭的顺序动作, 其中复位过程
可使智能卡进行复位应答, 且在每次插入卡后必定会调用执行, 以使卡进入安全工作状态。
由于T=0和T=14协议的硬件参数配置要求不同,故只需将复位应答参数与复位程序运行时得
到的参数进行比较,得到智能卡的协议类型, 再根据协议要求对智能卡进行读写操作。这样
除了初始化的差异外,该模块就可使用同一个版本的软件来兼容多种情况的处理。
PSI模块
PSI模块是接解复用模块后,对过滤后流中数据的解析,包括对 CAT、PMT表的解析,
再解析出 EMM、ECM,最后得到 CW,就可以得到解扰的码流了。
CAT表针对具体CA系统中的用户的授权情况,他含有标识具体CA系统的CA_System_
Id和用于获取 EMM信息的索引 EMM_Pid,通过这两项内容就可以获得用户所在 CA系统
的 EMM信息。PMT表是针对节目的加密情况,他也含有 CA_System_Id信息用于表示节目
是用何种 CA系统加密和 EMM_Pid用于告知用户如何搜索 ECM。CA_System_Id可惟一标
识 CA系统,分配到用户的智能卡中含有这项内容,用户端的条件接收过程就是从读取卡内
的 CA_System_Id开始的,获取相应的 EMM,ECM后,依次解出 CW。
该模块是一个很通用的模块,主要是对表的解析,然后依照上述原理得出 CW。不管哪
个 CA的移植都可以套用该模块。
界面模块
界面模块是一个很大的模块,但与其它模块相比有很大的区别。上面的模块很多都是要
实现机顶盒给 CA调用的函数,而界面模块很多信息的显示需要调用 CA提供给机顶盒的函
数,故只需根据说明文档弄清函数的含义,并在合适的地方调用即可。CA界面部分与机顶
盒其他界面没什么很大的区别,主要是根据 CA要求显示的内容调用相应的函数就行了。
3. 调试及应用
由于 CA模块需要和其它软硬件共同配合才能发挥作用,为了方便调试,尤其是在实际
工作中能正常运行,因此采用在实时码流的情况下,添加了较多的检测函数来帮助调试。终
- 4 -
端移植人员可以通过这些检测函数显示的信息,了解各个参数的情况,包括 ECM PID、EMM
PID、智能卡的状态、解复用的通道是否分配正常等,以便很快的找到问题的根源,最终解
决问题。
笔者先后在 STi5516和 STi5105平台上应用此方法进行了多个 CA的移植与调试,由此
也形成了多款产品,经统计比较发现该方法提高了代码复用率 45%左右,大大缩短了工期,
在质量上不仅通过了 CAS 厂商的认证测试,也经受了实践的检验。目前终端厂商都有自己
成熟的产品,为了能迅速占领市场,往往需要在同一软硬件平台上移植不同的 CA以适应不
同地区的需要,这也正为本文中提出的方法提供了一个发挥的平台。
4. 小结
本文提到方法是在一个平台上移植成功后,又在同一系列的两个平台上移植了3个CA系
统,由此总结出来的一种方法。实践证明,它简化了数字电视条件接收系统移植的工作,能
够加速新的条件接收系统的移植和整合,这为公司产品的快速上市以及占领市场提供了强有
力的保证。当然,由于CA和硬件平台的多样性,要使该方法的兼容性更强,要使移植更加
简便,我们还有很多需要改进和优化的地方,比如设计多种数据接收方式使解复用模块能兼
容更多的硬件平台,缩短判断智能卡读写协议过程的延时等,这些都是我们今后研究的方向。
参考文献
[1] ETSI. TS 101 197: Digital Video Broadcasting (DVB); DVB SimulCrypt; Head-end architecture and
synchronization[S]. 2002.
[2] ETSI. ETR 289: Digital Video Broadcasting (DVB); Support for use of scrambling and Conditional Access
(CA) within digital broadcasting systems[S]. 1996.
[3] 何锦. 条件接收系统及同密处理技术.2003国际有线电视技术研讨会.
[4] 季斌. 数字电视的条件接收系统原理与应用.通讯与广播电视,2006年第 3期:18-23.
CA transplantation based on the division of Modular
approach research and application
Hu Yan , Li Wei
School of Computer Science and Technology, Wuhan University of Technology, Wuhan( 430070)
Abstract
This paper introduces a method for transplanting conditional access system to set top box. This method
is simple, easy to use and highly departs from the standard DVB, according to the principle
of conditional access system, integrated conditional access system interface functions as well as the
difference between different hardware platforms, through the conditional access system modules into
ways to facilitate the realization of transplantion of simulCrypt condition access system.
Key Words: Conditional Access System;Set Top Box;Software Transplant