新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 基于Android的机顶盒CAS系统的开发

基于Android的机顶盒CAS系统的开发

作者:时间:2012-08-21来源:网络收藏

2.3 智能卡任务模块
智能卡的通信标准有T0和T1两种,T0按字节传送,T1按块传送,而在设计过程中通常支持两种协议。一般采用I2C总线通信,而智能卡内部一般没有上拉电阻,所以在电路设计过程中,SCL和SDA的引脚处必须加上拉电阻,否则无法正常通信。根据通信协议,如果要对智能卡数据读写操作,首先要发送5字节的命令字,这5字节命令字依次为CLA、INS、P1、P2、P3,其中CLA为指令类型,INS为命令符,P1、P2为操作文件位置,P3为后续字符数。智能卡接收到命令符就可以根据命令种类对其后续数据进行操作,同时智能卡就可以发出两个字节W1、W2的应答符。如果成功,W1、W2分别为0x90、0x00;如果不成功则会返回相应的代码,以便给者提供调试。因为智能卡内部十分复杂,篇幅有限,所以想深入了解原理的话可以参考智能卡标准,这里仅介绍操作智能卡过程的设计。

本文引用地址:http://www.eepw.com.cn/article/154097.htm

f.JPG


如图6所示,在智能卡任务模块中,在启动之初,未进入文件之前,就要对智能卡进行初始化,分配内存池,强制为智能卡复位,从而选择通信类型(T0或T1),全部完成之后就可以进入文件。通过_CARD_TASK()为智能卡建立线程,在其线程内部使用_CARD _ReceiveMessage()接收来自EMM或者ECM的命令字。如果合法,通过_CARD_SendMessage()可以把应答字给其两个模块,同时通知其他两个模块发送操作数,若是EMM则到此结束,若为ECM则智能卡会把解密的CW通过CAS_CARD_SendMessage()发送给
2.4 其他细节设计
CAS系统除了最重要的解扰以外,还有其他重要的附属功能,如邮件、在线付费、在线充值、节目点播、区域限制、用户管理。这些信息都存储在EMM表中,所以EMM和ECM表的解析也是一个十分重要的步骤,只有正确地提取出 EMM中的CA信息,才能顺利地进行下一步的操作。根据MPEG-2标准和PSI/SI协议,以及智能卡厂商的提供功能表,就能设计出EMM和ECM的解析函数。
表1列出了一个通用CA的描述符。

g.JPG


由于每个智能卡厂商的填充数据不一样,所以必须根据厂商的定义再去提取数据、处理数据。由于笔者参与设计的是某公司提供的智能卡,所以数据的格式也都以它为标准。最终设计包括12个源文件、5个头文件。

3 CAS子系统的移植
CAS终端子系统起初没计由于涉及到与底层交互,采用的是C语言。如果想要使上层的JAVA环境调用其API,就要遵循JNI规范添加新的头文件,使其应用层能够方便地调用。同时Google在设计Androld之初就提供了NDK套件,有着独有的交叉编译器,使得原有的许多C语言编写的驱动、应用程序可十分方便地移植到系统中。



评论


相关推荐

技术专区

关闭