机顶盒软件 之 《CAS移植》

   回顾毕业的三年工作里,有1/3时间是在CA移植和测试中度过,从最初到现在,已接近把国内的大小CA都接触过了,同方、天柏、数码视讯、算通等,尽管各个CAS厂家的接口标准、测试用例不同,但都目的都是一样,都是为了更好的提供运营商盈利而服务。通过前端CAS的授权、反授权对终端用户进行控制,更具缴费的多少,开通数量对应的节目,告别了模拟时代一刀切的情况。

  由于从事的是终端CAS的移植,因此这边对前端的结构和实现就不做介绍了,最近要在一个新平台移植天柏CA,正好借这个机会,把整个移植流程进行个记录,同时对比之前移植的其他CA,进行各类比。

  在移植CAS之前,首先当然是交纳一定的MONEY给CA厂家,对方才会提供我们移植所需的,测试流、测试卡,测试库及对应头文件、说明文档几样移植必备资料。

  好了,言归正传,当拿到上述说的几样资料后,就要开始动真格的了,跟玩游戏类似,都要遵循对方的规则进行,不然只有出局,CAS移植中所说的规则,都会在提供的文档里一一说明。因此到手第一件事,当然是仔细的阅读文档。

  不同CAS厂家提供文档的方式也不同,就拿天柏跟同方来说,前者提供的接口移植文档分成系统层和应用层,别被名字误导了,其中的系统层就是STB实现给CAS使用的,后者反之。而同方则一个文档囊括所有,在文档中分OS/DEMUX/SMARTCARD等模块接口,每个接口都除了参数描述外,会说明是STB负责实现、还是需要STB调用的。

 1) 不管是ST、海思、ALI、澜起或者国芯,拿到接口后,都先用本平台的一些API接口,把对应的OSDEMUX等接口先编写完成,具体的编写我这边就不详述了,无非是任务、信号量、队列的创建、一些cpymallocfree的填写,最重要的是智能卡通讯、demux过滤设置 以及CW三个接口,当然其中的库提供的OSD消息传输和debug调试接口也比较关键,对后期的一些调试会有一定帮助(这个后面会说)

2) 然后按照文档需求依次先调用初始化内核接口,一般在初始化内核接口的时候,库会调用步骤1中的接口创建任务、信号量等接口,通过这个接口的返回值可以判断步骤1的库接口是否填写正确

3) 接着就是把卡是否插入的状态通知给库(有些CA需要填写复位接口,并自己调用),库调用智能卡通讯接口,这时候需要调试smartcard接口,确保获取的ATR以及智能卡通讯

返回的SW1,SW2等是否正确了,(可以看下T0/T1的相关协议)

4)接着就是在把PMT和CAT表里解析的ECM PID/EMM PID,在切台的或者切频点的时候,通过set ecm/emm接口把正确参数给库,当库接收到这俩个参数后,就会去调用demux过滤接口,在设置filterdata和mask的时候,需要注意当前CA设置过滤参数时候是否会跳过字节1,2 (字节1,2是表长度,过滤器设置中默认跳过)

5) 接着把过滤到的数据送给库,如果库通过emm判断卡授权并匹配的话,自然会调用CW接口设置正确奇偶密钥给平台的解扰器。

     如果这个时候设置的CW为0或者没有调用CW接口,有俩种可能,一种是EMM漏包导致的,二就需要查看步骤1中说的OSD消息接口,看库会传什么消息提示用户,通过提示来切换码流或者寻求CA厂商支持

基本步骤介绍完了~~相信大家自己动手移植完1~2个CA后,也会慢慢的找到规律驾轻就熟的。

 

 

来源:tongdh

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2010年10月22日
下一篇 2010年10月23日

相关推荐