0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用单片机实现智能卡接口控制器的设计资料说明

Wildesbeast 来源:单片机教程网 作者:单片机教程网 2020-10-06 18:08 次阅读

---智能卡(SmartCard)又称集成电路卡(Integrated Circuit Card,即IC卡),将微电子技术和单片机技术结合在一起,具有高的可靠性、安全性和灵活性,其广泛地应用于电信、金融、交通及公共事业等领域。智能卡接口控制器是连接智能卡和主控设备的桥梁,是智能卡处理设备中的最重要组成部分之一。面对庞大的市场需求,各大芯片厂商都推出了各自的智能卡接口控制器芯片,例如,Philips的8007、Linear的LTC1755/6等。本文也提出一种实用的智能卡接口控制器的设计方案。

单片机智能卡设计的硬件结构

读写器的硬件组成如图1所示。包括电源、单片机系统、RS 232接口、IC卡读写接口、多路 时钟系统和复位电路等几个主要部分。

单片机系统由89C52CPU、三态地址锁存器和静态存贮器组成。89C52的P0口与三态地址锁存 器形成地址总线的低8位,即A0~A7,以及数据总线D0~D7;89C52的P2.0~P2.6形成地址 总线的高8位,即A8~A12。静态存贮器用于保存读写器运行过程中预设的一系列软件指令。串行接口用于实现读写器与用户端设备,如PC机等之间的数据通信。在当前系统中采用了一片MAX232,其中的RXD、TXD做为数据的I/O通道接CPU串行口,完成读写器CPU与外部间的数据交换。同时,外部用户端还可通过串口的RTS信号对IC卡读写器进行软件上的复位。

通用的智能卡多为异步型CPU卡,在其时钟方面多需要不同的控制和发生体系。因此在读写 器中设置有专门的时钟电路和时钟控制电路,主要由74LS253双四选一电路及D触发器等组成 。晶振提供的脉冲经分频产生时钟信号分别送到四选一电路输入端。另外2个输入端分别接地和T0(89C52CPU的T0引脚),T0信号通过软件编程分频后向IC卡提供时钟信号,时钟频率、脉冲宽度可由具体编程决定。四选一电路的选择控制端分别接P1.0和P1.1、P1.0和P1.1,分别对应于不同的频率关系。

在读写器的硬件构成上,还提供有上/下电控制电路。这部分电路用于控制对卡的上电和下 电操作,也就是提供对卡的电源开关控制。主要由89C52的P1.7、R3,R4和三极管Q2等组成开关电路来控制对卡的上/下电。当需要给IC卡加电时,通过预先设定的程序使P17置“0”,使Q2导通,VCC通过Q2将CVCC送至IC卡;当I C卡下电时,置P1.7为“1”使Q2截止,从而禁止向IC卡供电。详细电路如图2所示。

作为用户与IC卡之间的交互平台,读写器需要分别建立与外部用户和内部IC卡之间的数据通 信体系。读写器中的IC卡接口即提供读写器与IC卡间进行数据交换的通道。根据目前通用的IC卡接口标准,与IC卡的接口基本上由8个信号组成:CLK时钟、I/O数据、RST复位等,另外有3个NC信号供用户自己定义。将他们分别与读写器中CPU接口线相连,再由CPU通过预设的软件指令控制和实现与IC卡间的数据交换,如图3所示。

3读写器的软件体系

用户以何种方式和过程使用读写器是读写器开发中的关键部分之一,其核心目标是在设备硬件体系的基础上,开发并提供一个使用户能够对硬件进行直接操作的软件层,这个软件层部分包括的主要是一系列的应用协议和与其相配合的控制程序。在使用读写器的过程中,PC机或其他外部用户系统必须遵循或借助于这些协议,才能够与读写器内部的控制程序正确互动和协调一致,以实现对设备有效的使用。依据实际的应用要求,该读写器的软件体系主要包含以下几个组成部分。

3.1对读写器的启动

用户在开始使用读写器,也就是要求与读写器进行数据通信前,首先需对设备进行复位,使其加电启动系统并进入待机状态。

具体实施过程为PC机端首先通过已选择好的串口,根据标准串口通信协议发送一个正脉冲至 读写器端的RTS引脚。同时在读写器中,为了使用户(如PC机)能够验证设备的当前复位状态,在读写器被正确复位后,其上的控制系统会发送一个第一响应码至用户端,在用户正确接收到后,需返回一个第二响应码至读写器,使读写器端与用户端能够相互确认并建立起正确有效的通信体系。否则在用户端需要继续等待,读写器在一定限时内会重发第一响应码。但如果用户端长时间未能收到正确数据,此时重新进行复位操作。

3.2通信“握手”

为保证数据通信过程的正确有效,使读写器保持较好的通信质量,在协议中规定对用户设备 与读写器间建立的通信信道的可靠性进行实时的校验。即在对读写器进行复位启动后,还需要在用户端与读写器间进行一个称为通信“握手”的校验程序,目的在于检验当前通信信道的工作状态是否正常。其具体内容主要是对一组预定义的数据,在用户端与读写器之间进行通信传输,通过验证通信结果是否符合预设的数据内容,校验当前通信信道是否正确可靠。通常为用户发送第一响应码至读写器,读写器正确接收到则返回第二响应码至用户端,而用户端若正确接收到第二响应码则继续下一步工作,否则等待读写器端重发数据。但如果在限时内未收到正确的第二响应码数据则确认为当前通信出现异常,并提示系统报告当前错误情况。

3.3指令格式

读写器的用户在与读写器进行数据通信时,根据智能卡应用规范,用户端都应当遵循一定的 格式组织和创建指令及提供所需的相关数据,目前在读写器的控制与使用协议中定义并使用了以下的一种指令格式。

指令由5个基本字节组成:字节1:CLA,指令标识符一;字节2:INS,指令标识符二;字节3,4:P1和P2,指令参数;字节5:LC,数据长度。

用户端依据这样格式建立和发送指令序列至读写器,其中字节1和字节2形成一个二级的指令标识,说明当前指令操作码的含义;字节3和字节4提供一个参数空间,辅助说明指令操作码;字节5说明当前指令操作数的数据长度,主要是针对于非定长数据的通信传输过程。

3.4操作流程

在用户实际使用读写器操作智能卡的过程中,绝大部分操作都是在完成一个由用户端发送指令和数据至读写器,由读写器解释执行并转发至智能卡,最后由智能卡端返回结果至读写器,读写器最终返回至用户端的一个操作过程。因此也以他作为主要依据来规范相关的软件协议,具体如下所示:

复位启动读写器协议要求中的第一步工作。

通信“握手”为确保通信过程的正确有效,用户与读写器进行数据通信 前都将要先进行这一步工作。

发送指令用户向读写器发送操作指令时,指令组建必须要符合协议中的 规定格式。

发送数据对于含有操作数的指令,在送出指令码后,还必须将相关的 数据送至读写器。

接收状态码读写器在接收到并执行用户指令后,会根据执行结果的内容返回执行状态码和结果数据至PC机,由此用户可得到指令的执行结果。

接收数据如果当前用户指令要求读写器提供结果数据,读写器在返回执行状态码后,需继续送结果数据至PC机。根据协议,结果数据的长度由指令码中的LC字节说明。

4对智能卡的操作COS命令接口

读写器作为用户端与IC卡间的操作平台,在接受用户端控制与使用的同时,还有一个重要的 功能就是实现对智能卡的操作。COS命令接口就是对智能卡操作的前端实现部分。通常在智能卡应用当中,智能卡本身都具备一个COS系统,由他协调并控制卡上的所有指令和数据处理过程,读写器必须借助于COS系统才能够实现相应的功能。COS命令接口做为读写器端的CO S数据通道直接影响到读写器对卡的操作。在这一部分协议中规定读写器向IC卡发送一组定制的指令数据,IC卡接收到这组协议数据后,通过解释这组指令数据的具体含义、形成操作指示,再进一步转换为读、写、比较、认证及其他控制操作,然后将操作结果返回给接口设备,从而完成一次对卡的操作过程。读写器向卡发送的具有特定操作含义的数据块就是对智能卡的操作命令;而从卡返回读写器的状态及数据信息即为执行结果。其详细过程如图4所示。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6032

    文章

    44513

    浏览量

    632696
  • 控制器
    +关注

    关注

    112

    文章

    16185

    浏览量

    177335
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10824

    浏览量

    211088
收藏 人收藏

    评论

    相关推荐

    接口芯片控制器两个智能卡参考设计

    接口芯片控制器两个智能卡参考设计显示LTC1955用于双智能卡到RS232应用,由单个锂离子电池供电
    发表于 06-01 09:34

    支持智能卡和微控制器的NCN6001智能卡接口

    NCN6001DEMO / D,演示板使用NCN6001智能卡接口。 NCN6001是一种混合集成电路,旨在支持智能卡和微控制器之间的接口
    发表于 08-14 09:34

    智能卡接口芯片ST8024相关资料下载

    概述:该ST8024是一个完整的低成本模拟接口异步3 V和5 V智能卡。它可以放置在和微控制器与极少的外部元件来执行所有的电源保护和控制
    发表于 05-17 07:20

    基于单片机的预付费智能卡水表软时钟结构设计与分析

    本文介绍了预付费智能卡水表的工作原理及其MPU MSP430F413 单片机和PCF8563时钟芯片的功能及特性在水表中的应用。详细说明了利用汇编语言实现了定时1 秒钟中断功能 和实时
    发表于 06-18 09:28 44次下载

    DS8007和智能卡接口基础

    摘要:DS8007是一款低成本的多协议双智能卡接口,满足所有ISO 7816、EMV™和GSM11-11的要求。这个混合信号外设可以管理微控制器和两个独立智能卡间的所有
    发表于 04-24 17:27 1333次阅读
    DS8007和<b class='flag-5'>智能卡</b><b class='flag-5'>接口</b>基础

    基于AMBA总线的智能卡控制器设计

    基于AMBA总线的智能卡控制器设计 摘要:通过分析ISO/IEC 7816-3传输协议,设计该符合协议标准的接触式智能卡控制器,实现对字符
    发表于 12-23 09:44 1041次阅读
    基于AMBA总线的<b class='flag-5'>智能卡</b><b class='flag-5'>控制器</b>设计

    智能卡(CPU),什么是智能卡(CPU)

    智能卡(CPU),什么是智能卡(CPU) 智能卡又称CPU。CPU
    发表于 04-02 13:36 3152次阅读

    51单片机与SD接口设计

    介绍51单片机与SD接口设计原理,以及FAT32文件系统的设计和应用程序控制SD读写操作的实现
    发表于 04-09 15:35 412次下载
    51<b class='flag-5'>单片机</b>与SD<b class='flag-5'>卡</b><b class='flag-5'>接口</b>设计

    基于80C51单片机智能PID控制器的设计与实现_吴占雄

    基于80C51单片机智能PID控制器的设计与实现
    发表于 06-06 10:00 17次下载

    DMA控制器单片机接口技术

    在某些单片机应用系统中,往往需要解决外部设备与存储贮之间快速传送数据的问题。为此,本文研究了DMA控制器8237与单片机8031的接口技术
    发表于 12-06 11:28 3294次阅读
    DMA<b class='flag-5'>控制器</b>与<b class='flag-5'>单片机</b>的<b class='flag-5'>接口</b>技术

    HT66F4360智能卡读卡Flash单片机

    该系列单片机是一款带智能卡接口的A/D型具有8位高性能精简指令集的Flash单片机,专门为需要与各类智能卡通信的产品而设计。它们具有一系列功
    发表于 04-26 15:33 2次下载

    AN4100 STM32F05xx微控制器智能卡接口设计

    AN4100 STM32F05xx微控制器智能卡接口设计
    发表于 11-24 08:32 2次下载
    AN4100 STM32F05xx微<b class='flag-5'>控制器</b>的<b class='flag-5'>智能卡</b><b class='flag-5'>接口</b>设计

    DS8007和智能卡接口基础

    DS8007是一款多协议、低成本、双智能卡接口,支持所有ISO 7816、EMV™和GSM11-11要求。这个混合信号外设管理微控制器和两个独立智能卡之间
    的头像 发表于 03-03 14:24 1280次阅读
    DS8007和<b class='flag-5'>智能卡</b><b class='flag-5'>接口</b>基础

    DS8007和智能卡接口基础

    DS8007是一款多协议、低成本、双智能卡接口,支持所有ISO 7816、EMV™和GSM11-11要求。这个混合信号外设管理微控制器和两个独立智能卡之间
    的头像 发表于 04-03 11:12 984次阅读
    DS8007和<b class='flag-5'>智能卡</b><b class='flag-5'>接口</b>基础

    使用STM32F05xx微控制器设计智能卡接口

    电子发烧友网站提供《使用STM32F05xx微控制器设计智能卡接口.pdf》资料免费下载
    发表于 09-21 14:49 0次下载
    使用STM32F05xx微<b class='flag-5'>控制器</b>设计<b class='flag-5'>智能卡</b><b class='flag-5'>接口</b>