当前位置: 主页 » 新闻资讯 » 公司新闻
[置顶]机顶盒中智能卡通信的实现
本文主要讨论智能卡与机顶盒之间的通信。机顶盒中的主芯片一般都提供与智能卡通信的接口,利用相应的硬件和通信协议,就可以实现它们之间的正常通信。在本文中,机顶盒芯片采用ST公司的Sti5516。由于Sti5516提供的智能卡接口需要外接一个接口芯片才能与智能卡通信,所以还采用了Philips公司的TDA8004T芯片。整个硬件框图如图1所示。 1Sti5516的智能卡接口   Sti5516支持智能卡接口——异步收发控制器(UART),用于实现Sti5516与二个智能卡控制器的通信。合肥门禁异步收发控制器支持全双工异步通信,接收器与发送器使用相同的数据格式和波特率。数据的传输和接收可以是双BUFFER,也可以是16位FIFO。通信过程中奇偶校验位、数据位、停止位都是可编程的。同时,在传输和接收中的错误觉察增强了数据传输的稳定性,UART与智能卡的握手协议确保了数据传输的安全性。Sti5516有一个智能卡时钟产生器,提供给智能卡一个时钟信号。智能停车场系统智能卡使用这个时钟驱动智能卡与UART之间的通信。这个时钟也用于智能卡CPU时钟。智能卡接口操作要求卡的时钟可以调整,这样波特率可以改变,时钟的调整可以根据ISO7816标准。Sti5516提供的智能卡接口支持T=0、T=1协议。 2TDA8004T介绍   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,表示接口设备等待第二个过程字节,并根据第二个过程字节重发上一条命令。如果过程字节是、合肥停车场系统0x00,表示通信成功完成[2~3]。 4通信的实现   在实际通信过程中,本文将工作频率定为3.57MHz,保证数据传输的波特率为9600bps。数据格式采用带奇偶校验的8个数据位和2个停止位,如图3所示。http://www.ahlinbo.com   在机顶盒与智能卡发送数据和接收数据的过程中,使用了Sti5516智能卡接口UART的驱动。因此在进行通信之前首先要对UART初始化。初始化之后,进行卡的复位应答,如果应答正确才能与卡通信。岗亭