同密条件接收系统软件适配层的设计与实现.doc

上传人:枫** 文档编号:543496572 上传时间:2023-07-22 格式:DOC 页数:8 大小:90.01KB
返回 下载 相关 举报
同密条件接收系统软件适配层的设计与实现.doc_第1页
第1页 / 共8页
同密条件接收系统软件适配层的设计与实现.doc_第2页
第2页 / 共8页
同密条件接收系统软件适配层的设计与实现.doc_第3页
第3页 / 共8页
同密条件接收系统软件适配层的设计与实现.doc_第4页
第4页 / 共8页
同密条件接收系统软件适配层的设计与实现.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《同密条件接收系统软件适配层的设计与实现.doc》由会员分享,可在线阅读,更多相关《同密条件接收系统软件适配层的设计与实现.doc(8页珍藏版)》请在金锄头文库上搜索。

1、同密条件接收系统软件适配层的设计与实现1 引言 条件接收系统(Conditional Access System,CAS)是数字电视接收控制的核心技术保障系统。在当前国内有线数字电视市场上,运营商大多都采用同密技术运营CA系统;为了维护系统的安全性,CAS开发商对条件接收系统的内部技术细节严格保密,在进行用户端软件移植时,CAS开发商仅提供已经生成的函数库,再由终端设备开发者完成底层的驱动程序、上层的数据调用、屏幕显示等内容,共同完成CAS客户端软件移植工作。 同时,不同CA系统在软件架构、接口参数、调用流程定义等方面都有各自的特点,没有统一规范可循,因此对终端厂商而言,在更换不同芯片平台或在

2、同一平台移植不同CA系统时,需要按照相关要求重新开发移植软件。为解决CA移植工作中的简易化、再复用等问题,笔者设计和开发了数字电视接收终端CAS适配层软件。 2 适配层设计基础和总体设计 一般而言,CAS由加扰与加密两个部分组成,对应到终端设备就是解密和解扰。同密CAS的核心是采用一个通用加扰算法,不同的CA系统可以对各自的密钥数据使用各自的加密算法,但都要遵循通用加扰算法来加扰信息,这就使得一个传输系统中可运行多个CAS,这种共同点就是接收终端CAS适配层的技术基础之一。 接收终端设备通过调谐和解调获得传输流,传输流通过硬件解复用分离出音频流、视频流、EMM、ECM和其他SI信息。其中EMM

3、与ECM被送入智能卡,EMM数据先通过卡内密钥被解密,将当前卡的授权信息写入智能卡,这些授权信息就是业务密钥SK。ECM数据在卡内用SK解密生成控制字CW及节目本身信息。终端设备得到控制字CW后写入解扰器,实现对相关节目的音视频进行解扰,最终实现加扰节目的收看。以上工作是由终端软件提供上层调用、流程控制,底层驱动软件提供支持,并配合智能卡和CAS函数库共同完成的;由此也可看到,正是由于原理上的相似性,使得设计一个条件接收适配层来适应各种条件接收系统成为可能。 根据对多个条件接收系统的分析,可见各个系统所涉及到的终端调用和驱动软件大致相同,包括实时操作系统抽象层、智能卡驱动、NVRAM存储器驱动

4、、解复用器驱动、解扰器驱动和屏幕显示等内容。根据这些模块的功能区分和调用关系将其分为业务、通用驱动、解扰3类适配组件,同时将调用流程标准化,屏蔽了相关接口和驱动的差异,由此构成了CA系统适配层,其总体架构设计及与其他模块的关系参见图1。 1) 业务适配组件内部包含节目播放模块和界面接口模块。节目播放模块的主要作用是作为CA适配层和CAS函数库的输入输出管理器来传递调用和数据,包括连接节目管理模块、SI动态更新模块、频道数据库,向这些模块请求数据,并处理来自这些模块的消息。其中最核心的功能是传递上层播放的新节目调用到CA函数库,准备相关节目数据,接收更新模块的消息从而更新节目的播放,以及停止节目

5、的播放等。界面接口模块传递CA函数库、适配层、驱动层的状态和消息到用户界面。该模块定义了发送给界面的消息结构和使用方法,这些消息包括购买消息的弹出和消隐,通知消息的弹出和消隐,邮的通知、消隐和闪烁,IPPV购买框的弹出和消隐。在该模块将不同CA系统的数据结构和消息传递方法统一,这包括消息在屏幕上的显示位置、动作(闪烁、滚动)、优先级处理等,从而最终实现与用户界面的适配。 2) 通用驱动适配组件包括操作系统移植层、NVRAM数据管理层和解复用层3个模块。操作系统移植层提供任务、消息、定时器、信号量以及存储器的操作系统服务。NVRAM数据管理层用三元组(Address,Buffer,Length)

6、描述适配层传递参数,并在底层实现数据隐藏。解复用驱动执行传输流的解复用,并从中过滤出符合指定条件的数据。 3) 解扰适配组件由仅与CA直接相关的驱动模块组成,包括智能卡和解扰器模块,主要接收来自其他组件的消息和数据,配合CAS函数库共同完成解密和解扰工作。智能卡模块提供T=0和T=14两种协议的系统接口,完成智能卡的初始化,复位和读写功能,并随时检测卡的状态,将变化状态通知系统和CAS库。终端软件将ECM和EMM内包含的信息送到智能卡内部,最终获得控制字。系统再通过解扰器模块将控制字写入到通用解扰器的指定寄存器中以最终进行解扰。 3 适配层关键模块设计和实现 3.1 节目播放模块 本模块传递上

7、层播放新节目的调用到CA函数库,并接收更新模块的消息从而更新节目的播放,以及停止节目的播放。节目播放模块通过CA_HAL_PlayNotify(pvoid *Param)获得播放节目的消息,该消息传递了需要播放的节目wNewProgramID,这是一个由(TSID,Servi-ceID,NetworkID)三元组来确定的值,可以唯一识别一套节目。模块使用函数GLOB_DB_GetProgramlnfo(UINT32 ProgramId,pVoid* sCurProginfo)从频道数据库获得相关的节目数据,使用函数CA_HAL_PlaySendMes-sage()将ECM PID,EMM PI

8、D传递到解复用模块,并通过注册的回调函数CA_HAL_DemuxCallBack(UINT32TableType,pVoid*PayamFunc(),获得ECM和EMM数据,并传递给给CAS库。与此同时播放模块将AV PID等设置到AV模块,对该模块使能。 另外,节目播放模块通过函数CA_HAL_SIMonitor-CallBack(UINT32 ModuleId,UINT32 ProgramlD,UINT32ChangeType)获得SI动态更新模块的消息,并进行对应的处理,如重新加载变化后的参数、卸载CA库的关联等。系统在执行上述动作的同时,EMM和ECM数据被送入CAS库执行后续的解密动

9、作。 3.2 解复用模块 本模块的设计目的就是对解复用驱动进行接口适配层封装和数据接收的标准化处理,这样就可根据条件接收系统厂商提供的接口不同,将这些已经封装好的接口按着CA库的要求调用。 本适配层解复用模块所要完成的主要功能就是过滤和接收ECM和EMM表,本设计考虑了3种形式的数据接收方式,可兼容不同的硬件平台EMM与ECM接收设计上的差异,以及兼容各种第三方CAS库。第一种情况是适配层通过SI动态监测模块获取PSI数据。在这种设计中将所有PSI,SI表的过滤交给统一的模块SI动态监测模块设置解复用通道,以获得CAT,PMT,ECM和EMM表,但这些表的处理返回给各个请求模块,有利于解复用模

10、块的资源使用和跨平台移植。第二种情况是由解复用适配层过滤EMM,ECM数据,然后通过CA接口传给所移植的CAS库。另一种情况是解复用适配层传送EMM PID和ECM PID给第三方CAS库,由CAS库直接操作过滤器完成EMM和ECM数据的过滤和处理。在本模块的设计中,通过系统初始化选择不同的工作方式,对第一种情况,通过CA_HAL_RegisterCallBack(UINT32TableType,pVoid*ParamFunc()在SI中注册请求,并通过回调函数获得数据的存储地址。对后两种情况也是用类似的方法,不同的是由其他模块向本模块申请注册,本模块获得数据后回送到请求方。 一般来说,对某个

11、节目进行授权的EMM数据流只有一个,而解扰一个节目所需接收的ECM则可能是1个(TS层加扰),也可能是多个(PES层加扰),这样终端软件要求多个ECM过滤通道。同时,一般的CA会支持多种授权方式,各种方式的EMM寻址方式不相同,因此EMM又有几种不同的table id,EMM过滤通道上也需要几个独立的过滤器。通过UINT32 *pChannelId,UINT8FilterCount,UINT32 FilterLength,UINT32 BufferLength四元组就可以唯一确定一个ECM或EMM过滤通道的属性,其中UINT32 *pChannelId指向定义通道的变量,用于设置流PID;UI

12、NT8 FilterCount,记录通道中使用的过滤器的个数;UINT32 FilterLength存储过滤器的最大长度;UINT32 BufferLength指定缓存能存储Section的信息长度。其他相关功能如分配通道,设定PID,注册通道回调函数,控制通道动作,设置过滤器的状态都可以通过相应的接口函数完成CAS库所要求的动作。 解复用适配层通过CA_HAL_DemuxSendMessage(UINT32 Moduleld,void *g_cmd)函数传送请求到所需要的模块如SI模块或者CA库。并通过CA_HAL_De-muxCallBack(UINT32 iTableType,pVoid

13、 *ParamFunc()注册回调函数,用于获得从其他模块传入的数据,对ECM与EMM数据则调用接口函数通知CAS库。 3.3 智能卡适配模块 在同密系统终端中,常用ISO7816标准中的T=0协议,以及为了简化通信过程而设计的T=14协议。软件对智能卡的操作流程都遵循初始化、打开、复位、读写、关闭的顺序动作,其中复位过程可使智能卡进行复位应答,且在每次插入卡后必定会调用执行,以使卡进人安全工作状态。对于T=0和T=14协议的硬件参数配置要求不同,复位时要用不同的驱动参数进行复位,得到复位应答参数,再对后面的读写参数进行进一步的设置。因此在适配层的软件设汁中,将复位应答参数与复位程序运行时得到

14、的参数进行比较,得到智能卡的协议类型,再根据协议要求对智能卡进行读写操作。这样除了初始化的差异外,适配层就可使用同一个版本的软件来兼容多种情况的处理。 3.4 解扰适配模块 在解扰适配层首先需要处理不同加扰层次的问题,这包括TS加扰、PES加扰及两种加扰同时存在的情况,对这3种情况虽然在DVB标准中禁止,但实际运营中会存在。通过全局变量保存节目的EMM_PID、音频PID、视频PID、加扰层等信息,在取到解扰字后,根据这些信息对解扰器进行设置,这样就将不同条件接收系统的函数统一到适配层中对数据进行处理。同时,对解扰器资源进行统一封装和管理。 4 系统调试及性能优化 由于适配层软件涉及到多个软件

15、模块及它们之间的配合关系,为方便适配层软件的调试,尤其在现场环境下的状态观察,在适配层中设计了相应的监测模块。技术人员可通过UI或串口查询各个模块的状态,这包括当前节目信息(如AudioPID,VideoPID,ECM PID,EMM PID。AudioECM PID,VideoECM PID,节目加密状态等);CA模块的状态(如ECM与EMM读写状态,智能卡和控制字的读写状态等);DEMUX状态数据(PID所用SLOT是否被正常分配,有效地址的分配状态)等,这是通过在适配层的边界上设置观测点并以主动查询方式实现的。 另外,本适配层的设计不仅要满足多种CA的移植需求,同时还要满足不同CA系统的

16、性能要求。比较典型的性能要求是系统处理能力必须要满足在CA系统用户数达到极限时处理EMM和ECM过滤的需要,如对一个100万用户的CA系统,其EMM数据高峰值就可达到2 Mbits,ECM的数据则超过150 Kbits,为保证EMM和ECM必须完整地过滤接收,终端接收软件需要对适配层软件进行相应的优化。笔者采用数据连续接收、两个任务配合、二次复制数据到用户空间处理的方法。在对解复用的通道控制上,将通道和过滤器保持在同一个状态,即始终保持在打开状态,包括在Section数据等待接收的状态下,也不关闭通道和过滤器,直到智能卡被拔出,或者用户的操作关闭了EMM的过滤。 同时,为了快速取走数据而不致数据被覆盖,设置解复用底层的循环缓冲足够存储多个Section,一般设为409

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号