智能卡技术与通信协议资料

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

机顶盒中智能卡通信技术的实现发布:2011-9-6|作者:——|来源:haoxiaofeng|查看:402次|用户关注:在利用数字机顶盒收看数字电视节目时,为了满足不同用户的需要,保证每个用户的利益,需要采用条件接收系统管理用户的权限并确保用户的正常收看。而在机顶盒中,通常使用智能卡技术实现条件接收。智能卡有自己的微处理器、存储器和一个与机顶盒通信的接口。采用智能卡实现条件接收的优势在于:它具有高度的安全性和保密性,主要用于存储用户的私人密钥、控制授权、保密算法等信息,可以保证整个数字电视系统的安全。本文主要讨论智在利用数字机顶盒收看数字电视节目时,为了满足不同用户的需要,保证每个用户的利益,需要采用条件接收系统管理用户的权限并确保用户的正常收看。而在机顶盒中,通常使用智能卡技术实现条件接收。智能卡有自己的微处理器、存储器和一个与机顶盒通信的接口。采用智能卡实现条件接收的优势在于:它具有高度的安全性和保密性,主要用于存储用户的私人密钥、控制授权、保密算法等信息,可以保证整个数字电视系统的安全。本文主要讨论智能卡与机顶盒之间的通信。机顶盒中的主芯片一般都提供与智能卡通信的接口,利用相应的硬件和通信协议,就可以实现它们之间的正常通信。在本文中,机顶盒芯片采用ST公司的Sti5516。由于Sti5516提供的智能卡接口需要外接一个接口芯片才能与智能卡通信,所以还采用了Philips公司的TDA8004T芯片。整个硬件框图如图1所示。图1机顶盒与智能卡通信的硬件框图1Sti5516的智能卡接口Sti5516支持智能卡接口——异步收发控制器(UART),用于实现Sti5516与二个智能卡控制器的通信。异步收发控制器支持全双工异步通信,接收器与发送器使用相同的数据格式和波特率。数据的传输和接收可以是双BUFFER,也可以是16位FIFO。通信过程中奇偶校验位、数据位、停止位都是可编程的。同时,在传输和接收中的错误觉察增强了数据传输的稳定性,UART与智能卡的握手协议确保了数据传输的安全性。Sti5516有一个智能卡时钟产生器,提供给智能卡一个时钟信号。智能卡使用这个时钟驱动智能卡与UART之间的通信。这个时钟也用于智能卡CPU时钟。智能卡接口操作要求卡的时钟可以调整,这样波特率可以改变,时钟的调整可以根据ISO7816标准。Sti5516提供的智能卡接口支持T=0、T=1协议。2TDA8004T介绍TDA8004T提供了一个低成本的异步智能卡接口,可用于电子付费、读卡器、付费电视等。它可以取代智能卡与微控制器之间的一些外部元器件,提供微控制器与智能卡之间稳定、低噪音并符合ISO-7816标准的通信接口[1]。其原理结构图如图2所示。图2TDA8004原理结构图3通信协议在Sti5516与智能卡的通信过程中,本文采用了T=0协议。T=0协议是异步半双工字节传输协议[2],即协议所处理的最小单位是单个字节。通信命令总是由接口设备启动,以命令报头通知卡做什么,并且允许在卡发出的过程字节的控制下传输数据字节。命令报头由连续的5个字节组成,这5个字节指定为CLA、INS、P1、P2、P3。其中CLA为指令类别,INS为指令类别中的指令代码,P1、P2为一个完成指令代码的参考符号(例如地址),P3由一个可变长度的条件体组成。条件体包括命令数据域长度字节Lc、命令数据域和响应返回的最大长度字节Le。根据不同的命令,条件体的组成也不相同。这样,在一个5字节命令报头传输后,接口设备等待一个或者两个过程字节。过程字节的值将指明接口设备请求的动作。如果过程字节的值与INS字节相同,表示接口设备向卡发送或者从卡接收所有数据;如果与INS字节的补码相同,表示接口设备向卡发送或者从卡接收下一个字节;如果为0x60,表示延长等待时间;如果为0x61,表示接口设备等待第二个过程字节,并根据第二个过程字节发送命令取回数据;如果为0x6c,表示接口设备等待第二个过程字节,并根据第二个过程字节重发上一条命令。如果过程字节是0x90、0x00,表示通信成功完成[2~3]。4通信的实现在实际通信过程中,本文将工作频率定为3.57MHz,保证数据传输的波特率为9600bps。数据格式采用带奇偶校验的8个数据位和2个停止位,如图3所示。图3数据格式在机顶盒与智能卡发送数据和接收数据的过程中,使用了Sti5516智能卡接口UART的驱动。因此在进行通信之前首先要对UART初始化。初始化之后,进行卡的复位应答,如果应答正确才能与卡通信。5调试经验(1)在写智能卡接口UART的驱动时,必须按照T=0协议标准配置工作频率、数据传输波特率和数据格式;(2)在确保卡的复位应答正确后,才能进行卡与机顶盒的通信;(3)命令报头的传送一般是有一定的先后顺序的,在测试过程中,需要按照顺序发送命令报头,才能正常接收数据;(4)判断过程字节和条件体形式时,一定要按图4所描述的,考虑仔细、全面,以免通信错误。由于目前大多数智能卡支持T=0协议,所以本文主要介绍了基于T=0协议的机顶盒与智能卡之间的通信。在此基础上,以后可以实现基于T=1协议的通信,以便支持更多的智能卡。(2)加解扰技术(加解扰技术用于对数字节目进行加密和解密)国际上有两种标准I.openCable定义的POD是一个通过PCMCIA接口与机顶盒相连的模块,该模块除了解扰功能外,还要完成与前端的交互功能。II、DVB的MultiCrypt也是采用PCMCIA接口与机顶盒连接,但它只有解扰功能。DVB的SimulCrypt则只需要机顶盒具有ISO7816的SmartCard接口既可,但需要机顶盒具有硬件解扰引擎。下面简述DVB的有条件接入的基本原理。有条件接入的基本原理如图4所示。节目在播出前,要经过加扰处理,加扰过程是将复用后的传送流(TransportStream)与一个伪随机加扰序列做模2加,而这个伪随机序列的生成由控制字发生器提供的控制字(ControlWord,简称CW)确定。有条件接入的核心实际上是控制字传输的控制。在MPEG传输流中,与控制字传输相关的有两个数据流:授权控制信息(ECMs)和授权管理信息(EMMs)。由业务密钥(SK)加密处理后的控制字在ECMs中传送,其中还包括节目来源、时间、内容分类和节目价格等节目信息。对控制字加密的业务密钥在授权管理信息中传送,并且业务密钥在传送前要经过用户个人分配密钥(PDK)的加密处理,EMMs中还包括地址、用户授权信息、如用户可以看的节目或时间段、用户付的收视费等。用户个人分配密钥(PDK)存放在用户的智能卡(SmartCard)中。在用户端,机顶盒为了再生出解扰随机序列,必须获取相关的条件接收控制信息。首先,机顶盒根据PMT和CAT表中CA_descriptor,获得EMM和ECM的PID值。然后,从TS流中过滤出ECMs和EMMs,并送通过SmardCard接口送给SmartCard。SmardCard首先读取用户个人分配密钥(PDK),用PDK对EMM解密,取出SK,然后利用SK对ECM进行解密,取出CW,并将CW通过SmartCard接口送给解扰引擎,解扰引擎利用CW就可以将将已加扰的传输流进行解扰。

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功