- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
机顶盒中智能卡通信的实现
图2 TDA8004原理结构图
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协议的通信,以便支持更多的智能卡。
作者:张 萍 电子科技大学 来源:电子工业
上一篇:基于DSP的语音降噪系统设计
下一篇:基于SOPC的DDS信号发生器设计