机顶盒中智能卡通信的实现 - 中国一卡通网
用户名密码 [免费注册] [找回密码] 推广技巧 发布求购 建商铺  发产品  会员体制比较  
 

机顶盒中智能卡通信的实现

来源:电子技术应用  作者:张 萍  发布时间:2007-06-25 09:54:12  字体:[ ]

关键字:机顶盒  智能卡  T=0协议  

摘   要:机顶盒中采用智能卡技术实现条件接收,主要介绍了机顶盒芯片Sti5516的智能卡接口和用于实现机顶盒与智能卡之间通信的TDA8004T芯片,介绍了T=0通讯协议,并给出了通讯的实现过程。

    在利用数字机顶盒收看数字电视节目时,为了满足不同用户的需要,保证每个用户的利益,需要采用条件接收系统管理用户的权限并确保用户的正常收看。而在机顶盒中,通常使用智能卡技术实现条件接收。 

  智能卡有自己的微处理器、存储器和一个与机顶盒通信的接口。采用智能卡实现条件接收的优势在于:它具有高度的安全性和保密性,主要用于存储用户的私人密钥、控制授权、保密算法等信息,可以保证整个数字电视系统的安全。 

  本文主要讨论智能卡与机顶盒之间的通信。机顶盒中的主芯片一般都提供与智能卡通信的接口,利用相应的硬件和通信协议,就可以实现它们之间的正常通信。在本文中,机顶盒芯片采用ST公司的Sti5516。由于Sti5516提供的智能卡接口需要外接一个接口芯片才能与智能卡通信,所以还采用了Philips公司的TDA8004T芯片。整个硬件框图如图1 所示。 

1 Sti5516的智能卡接口 

  Sti5516支持智能卡接口——异步收发控制器(UART),用于实现Sti5516与二个智能卡控制器的通信。异步收发控制器支持全双工异步通信,接收器与发送器使用相同的数据格式和波特率。数据的传输和接收可以是双BUFFER,也可以是16位FIFO。通信过程中奇偶校验位、数据位、停止位都是可编程的。同时,在传输和接收中的错误觉察增强了数据传输的稳定性,UART与智能卡的握手协议确保了数据传输的安全性。Sti5516有一个智能卡时钟产生器,提供给智能卡一个时钟信号。智能卡使用这个时钟驱动智能卡与UART之间的通信。这个时钟也用于智能卡CPU时钟。智能卡接口操作要求卡的时钟可以调整,这样波特率可以改变,时钟的调整可以根据ISO7816标准。Sti5516提供的智能卡接口支持T=0、T=1协议。 

2 TDA8004T介绍 

  TDA8004T提供了一个低成本的异步智能卡接口,可用于电子付费、读卡器、付费电视等。它可以取代智能卡与微控制器之间的一些外部元器件,提供微控制器与智能卡之间稳定、低噪音并符合ISO-7816 标准的通信接口[1]。其原理结构图如图2所示。 

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所示。 

  在机顶盒与智能卡发送数据和接收数据的过程中,使用了Sti5516智能卡接口UART的驱动。因此在进行通信之前首先要对UART初始化。初始化之后,进行卡的复位应答,如果应答正确才能与卡通信。 

  根据T=0协议的定义,机顶盒与智能卡通信的流程图如图4所示。

5 调试经验 

  (1) 在写智能卡接口UART的驱动时,必须按照T=0协议标准配置工作频率、数据传输波特率和数据格式; 

  (2) 在确保卡的复位应答正确后,才能进行卡与机顶盒的通信; 

  (3) 命令报头的传送一般是有一定的先后顺序的,在测试过程中,需要按照顺序发送命令报头,才能正常接收数据; 

图4 

  (4) 判断过程字节和条件体形式时,一定要按图4所描述的,考虑仔细、全面,以免通信错误。 

  由于目前大多数智能卡支持T=0协议,所以本文主要介绍了基于T=0协议的机顶盒与智能卡之间的通信。在此基础上,以后可以实现基于T=1协议的通信,以便支持更多的智能卡。  
更多

新闻投稿合作邮箱:yktchina-admin@163.com    字体[ ] [收藏] [进入论坛]

推荐文章

论坛热帖