CN201111065Y - 一种基于51单片机的ic卡读写控制器 - Google Patents

一种基于51单片机的ic卡读写控制器 Download PDF

Info

Publication number
CN201111065Y
CN201111065Y CNU2007201219558U CN200720121955U CN201111065Y CN 201111065 Y CN201111065 Y CN 201111065Y CN U2007201219558 U CNU2007201219558 U CN U2007201219558U CN 200720121955 U CN200720121955 U CN 200720121955U CN 201111065 Y CN201111065 Y CN 201111065Y
Authority
CN
China
Prior art keywords
data
card
control module
module
write controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNU2007201219558U
Other languages
English (en)
Inventor
张亚国
常军锋
刘俊秀
石岭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Arkmicro Technologies Inc
Original Assignee
Arkmicro Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Arkmicro Technologies Inc filed Critical Arkmicro Technologies Inc
Priority to CNU2007201219558U priority Critical patent/CN201111065Y/zh
Application granted granted Critical
Publication of CN201111065Y publication Critical patent/CN201111065Y/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Credit Cards Or The Like (AREA)

Abstract

本实用新型公开了一种基于51单片机的IC卡读写控制器,其特征在于:该IC卡读写控制器包括如下模块:寄存器控制模块(4)、数据控制模块(5)、主状态机控制模块(6)、端口控制模块(7);所述IC卡读写控制器进行读控制时数据依次按端口控制模块(7)、数据控制模块(5)、寄存器控制模块(4)和51单片机(1)的顺序进行传输,其中经数据控制模块(5)时数据由串行转换为并行;所述写控制与读控制的数据传输方向相反,其中经数据控制模块(5)时数据由并行转换为串行。与以往技术对比本实用新型由于采用了硬件实现了51单片机与IC卡之间的数据交换,显著提高了它们之间通信处理的实时性、可靠性和稳定性。

Description

一种基于51单片机的IC卡读写控制器
技术领域
本实用新型涉及一种IC卡读写控制器,尤其是一种基于51单片机的IC卡读写控制器。
背景技术
CPU卡作为IC卡家族中功能最强、安全性最高的成员,已逐渐在各种智能卡应用中占据主导地位。本实用新型用到了在ISO/IEC 7816-3中包括的两种通信协议,即异步半双工字符传输协议和异步半双工块传输协议。目前大多数接口设备都支持异步半双工字符传输协议,该协议应用较为广泛。
异步半双工字符传输协议和异步半双工块传输协议可以利用51单片机的GPIO口通过软件编程来实现。但在软件实现过程中,需要通过软件编程来控制数据收发,用计数器来控制等待时间和保护时间,并且外接的时钟不一样,计数器初始值配置也不一样,给软件的编写带来麻烦。对于实时性很强的通信处理,当CPU有比较多的中断时,CPU的处理能力常常满足不了实时要求,而且通信的可靠性和稳定性较差。
发明内容
本实用新型为了克服了上述现有技术存在的缺陷,提供一种IC卡读写控制器,通过软、硬件结合实现IC卡与51单片机之间的通讯。
一种基于51单片机的IC卡读写控制器,其特征在于:该IC卡读写控制器包括如下模块:
寄存器控制模块4:负责配置IC卡3和主状态机控制模块6的参数;
数据控制模块5:发送反馈信号至寄存器控制模块;
主状态机控制模块6:分别发送控制信号至数据控制模块5和IC卡3,并负责向51单片机1发出中断信号;
端口控制模块7:通过IC卡数据线与IC卡时钟线连接IC卡3;
所述IC卡读写控制器进行读控制时数据依次按端口控制模块7、数据控制模块5、寄存器控制模块4和51单片机1的顺序进行传输,其中经数据控制模块5时数据由串行转换为并行;所述写控制与读控制的数据传输方向相反,其中经数据控制模块5时数据由并行转换为串行。
所述的主状态机控制模块6向寄存器控制模块4发送卡插入中断信号、奇偶校验错误中断信号、超时中断信号和缓冲器为空的中断信号。
所述的51单片机1分别发送控制信号至寄存器控制模块4和主状态机控制模块6。
所述的51单片机1与IC卡3之间的数据传输可采用ISO/IEC 7816-3标准中的异步半双工字符传输协议或异步半双工块传输协议。
本实用新型的显著有益效果在于:与以往技术对比本实用新型由于采用了硬件实现了51单片机与IC卡之间的数据交换,显著提高了它们之间通信处理的实时性、可靠性和稳定性,现有读写控制器需用软件编程来控制数据收发、控制等待时间和保护时间,还需用软件解决外接的时钟、计数器初始值配置不一样的问题,本实用新型由于大部分工作用硬件实现,所以大大减少了软件的程序代码量,从而也就降低数据传输时给CPU带来的负担。
附图说明
图1是本实用新型的主机和IC卡的总关系示意图;
图2是本实用新型的各功能模块连接关系示意图;
图3是本实用新型传送数据时的字符帧格式示意图;
图4是本实用新型具体实施例的上电激活时序示意图;
图5是本实用新型的IC卡去激活时序示意图;
图6是本实用新型具体实施例的控制器接收数据状态机工作流程图;
图7是本实用新型具体实施例的控制器发送数据状态机工作流程图。
具体实施方式
为了便于本领域的技术人员实施本实用新型所公开的技术,下面将对照附图,更为详细地说明本实用新型。
图1为本实用新型读写控制器、主机和IC卡的总关系示意图。51单片机1与IC卡3之间通过所述读写控制器2实现数据的读取与存储。图2为本实用新型具体实施例的读写控制器功能模块连接关系示意图,包括以下各功能模块:
寄存器控制模块4:记录对IC卡3参数的配置,如IC卡3支持异步半双工字符传输协议还是支持异步半双工块传输协议,是正向还是反向,保护时间、字符等待时间和块等待时间参数,和对IC卡3进行的操作,如激活、发送数据、接收数据或去激活。单片机通过对这些寄存器的读写操作,可以读出想要的值,改变寄存器中相关的配置值。寄存器控制模块4输出热复位、缓存空标志、去激活、激活信号到主状态机控制器模块6。寄存器控制模块4通过数据总线传输数据到数据控制模块5;
主状态机控制模块6:控制IC卡3的交互。如卡激活,数据发送,数据接收,卡去激活,卡中断的发送,奇偶校验位发送,奇偶检测,接收数据超时的处理,这些都是在主状态机控制模块6里完成。主状态机控制模块6输出中断信号至寄存器控制模块4,输出保护时间计数器信号、等待时间计数器控制信号、发送使能信号和接受使能信号到数据控制模块5。主状态机控制模块6发送上电使能信号和卡复位信号到IC卡3。本设计中用到两个计数器,一个用来计数等待时间,另一个用来计数保护时间;
主状态机控制模块6处于工作状态时产生如下中断:
卡插入中断:当读写控制器2检测到IC卡3插入后,产生卡插入信号至主状态机控制模块6,主状态机控制模块6产生卡插入中断;
奇偶校验错误中断:主状态机控制模块6对发送和接收的数据进行奇偶校验,并在奇偶校验错误次数达到预先设定的上限时,向51单片机1发送奇偶校验错误中断;
超时中断:主状态机控制模块6计数等待时间,如超时,则产生超时中断到51单片机1;
缓冲器空中断:主状态机控制模块6在数据传输完成产生缓冲器空中断到51单片机1。
数据控制模块5:读控制时,并行数据转为串行数据。写控制时,串行数据转为并行数据。数据控制模块5输出接收完成信号和发送完成信号至寄存器控制模块4;
端口控制模块7:控制与IC卡相连的双向数据线和时钟,由于IC卡3的数据线是双向的,所以在端口控制模块7中分成输入和输出,端口控制模块7发送数据到数据控制模块5和主状态机控制模块6。
上述各模块之间以下列过程协调操作:
卡的上电激活:IC卡3的激活应按一定的时序进行。如附图4,先判断IC卡是否插入,如果IC卡3已经插入,则可以激活。激活时,先使能电源电压,经过一段延时后产生时钟,该延时为300个时钟周期。产生时钟后再延时500个时钟周期,最后产生复位信号。延时通过保护时间计数器来完成。
IC卡3的去激活:去激活的时序如图5,要满足要求的时序。延时200个时钟周期后,时钟信号拉低,再延时200个时钟周期后电源拉低。
上电激活应答接收:复位之后,IC卡3要发送上电激活应答数据给读写控制器2。上电激活应答数据包含接口字符,历史字符等重要信息。上电激活应答接收要产生一个标志位,表示是在进行上电激活应答接收。因要判断整个上电激活应答期间是否超时,可以用保护时间计数器来完成,当上电激活应答完成后,检查保护时间计数器中的计数,如果超时主状态机控制模块6就产生超时中断,由软件处理这种异常情况是选择者重新复位还是释放电路。
数据交换分为数据发送和数据接收。控制器接收数据的流程,如图6所示。当缓冲器为空的时候或给智能卡复位之后,控制器就进入接收数据子状态机,即进入接收开始状态601。当检测到IC卡3数据线上为低电平时,进入接收超时判断状态602。如果超时了,就进入超时中断状态603,产生超时中断,由软件来决定其是否进入去激活状态。如果没有超时就进入接收数据状态604,9bits数据接收完备后就进入接收奇偶位状态605。奇偶位接收完备后,状态跳入到接收奇偶位测试状态606,如果工作在异步半双工块传输协议或者没有检测到奇偶错误的时候,状态跳转到接收完备状态609,产生数据接收完中断,由软件相关的响应来决定下一个是发送数据还是接收数据。如果想发送数据,就往缓冲器中写入数据;若否,则就不往缓冲器中写入数据。当缓冲器为空时,则进入接收开始状态601,如果缓冲器不为空时,就进入发送数据子状态。如果检测到奇偶错误并且工作在异步半双工字符传输协议时,进入接收奇偶位判断状态607,判断奇偶错误的次数是否达到5次,如果没有达到5次就进入奇偶错误处理状态608,拉低数据线,并且维持2个基本时间单元后状态重新跳到接收数据状态604,如果奇偶错误的次数达到5次就进入奇偶错误位中断状态610,产生奇偶错误中断,由软件决定状态机是否跳转到去激活状态。
附图7为本实用新型的控制器发送数据状态机工作流程图,当缓冲器不为空时,控制器就进入发送数据子状态机,进入发送起始状态701,经过保护时间计数器计时,若没有超时则进入发送数据状态702,否则还在发送开始状态701。在发送数据状态要连续发送9个bit,其中包括起始位,8bits数据位。当9bits发送完备后,进入发送奇偶位状态703,在这个状态发送奇偶校验位。奇偶校验位发送完后进入发送奇偶位测试状态704,当奇偶校验没有错或工作在异步半双工块传输协议时,状态机跳转到发送完备状态706,产生发送完中断。产生中断后软件可以往缓冲器中填入新的数据,缓冲器被填满时,状态又重新跳到发送开始状态701,如果不填入新的数据时,状态会跳到接收数据子状态机。当奇偶校验错误并且工作在异步半双工字符传输协议时,状态跳转到发送奇偶位判断状态705,判断奇偶错误次数是否达到5次,若没有达到5次,就跳到发送开始状态701,重新发送数据;若奇偶错误次数达到5次,就跳转到奇偶错误中断状态707,产生奇偶错误中断状态708,进入中断后由软件决定是否进入下一个状态,即去激活状态或发送状态。
奇偶校验检测:读写控制器(2)发送数据时,要发送数据奇偶校验位,若检测到奇偶错误,就在第10.5个基本时间单元时,把数据接口线拉低,标志奇偶错误;读写控制器2在第11个基本时间单元的时候检测数据奇偶校验位,如果此时为低电平,表示奇偶检验位错误,控制器需要重发此数据。当重发的次数超过5次时,产生奇偶校验错误的中断,并由软件程序来处理这种情况,即是否去激活还是继续进行下一步的操作。读写控制器(2)接收数据时,当检测到奇偶位错误时,需要在第10.5个基本时间单元把接口数据线拉低,表明接收到的数据是错误的,需要重发。当奇偶错误的次数超过5次时,产生奇偶检验错误中断,由软件程序来做下一步的处理,即去激活或者继续下一步的操作。针对奇偶校验错误,自动启动重发机制,即设置一个控制位,可以打开重发机制或关闭重发,读写控制器2在默认的情况下启用重发。
本实用新型除了支持异步IC卡之外,也支持同步IC卡。同步IC卡是指数据和时钟同步的IC卡。传输协议描述:ISO7816协议。如图3所示,字符帧格式为10BIT,1BIT开始位,8BIT数据位,1BIT奇偶校验位。当采用异步半双工字符传输协议时,支持奇偶校验检测和当奇偶校验检测出错时字节重发;当采用异步半双工块传输协议时,不支持奇偶校验检测。
发送数据时需要考虑保护时间问题,数据接收需要考虑字符等待时间和块等待时间。如果IC卡支持的协议是异步半双工字符传输协议,必须要进行奇偶检验位的检测,如果IC卡支持的协议是异步半双工块传输协议,就无需进行奇偶校验位的检测。
本实用新型与以往技术对比由于采用了硬件实现了51单片机与IC卡之间的数据交换,大大提高了它们之间通信处理的实时性、可靠性和稳定性,本来需要用编程来控制数据收发,控制等待时间和保护时间,还需用软件解决外接的时钟、计数器初始值配置不一样的问题,本实用新型用硬件并结合软件实现、简化了软件的程序代码量,从而降低了数据传输时给CPU带来的负担。
当然,上述说明并非是对本实用新型的限制,本实用新型也并不仅限于上述举例,本技术的普通技术人员在本实用新型的实质范围内所作出的变化、改型、添加或替换,也应属于本实用新型的保护范围。

Claims (4)

1. 一种基于51单片机的IC卡读写控制器,其特征在于:该IC卡读写控制器包括如下模块:
寄存器控制模块(4):负责配置IC卡(3)和主状态机控制模块(6)的参数;
数据控制模块(5):发送反馈信号至寄存器控制模块(4);
主状态机控制模块(6):分别发送控制信号至数据控制模块(5)和IC卡(3),并负责向5 1单片机(1)发出中断信号;
端口控制模块(7):通过IC卡数据线与IC卡时钟线连接IC卡(3);
所述IC卡读写控制器进行读控制时数据依次按端口控制模块(7)、数据控制模块(5)、寄存器控制模块(4)和51单片机(1)的顺序进行传输,其中经数据控制模块(5)时数据由串行转换为并行;所述写控制与读控制的数据传输方向相反,其中经数据控制模块(5)时数据由并行转换为串行。
2. 根据权利要求1所述的一种基于5 1单片机的IC卡读写控制器,其特征在于:所述的主状态机控制模块(6)向寄存器控制模块(4)发送卡插入中断信号、奇偶校验错误中断信号、超时中断信号和缓冲器空中断信号。
3. 根据权利要求1所述的一种基于51单片机的IC卡读写控制器,其特征在于:所述的51单片机(1)分别发送控制信号至寄存器控制模块(4)和主状态机控制模块(6)。
4. 根据权利要求1所述的一种基于51单片机的IC卡读写控制器,其特征在于:所述的51单片机(1)与IC卡(3)之间的数据传输可采用ISO/IEC7816-3标准中的异步半双工字符传输协议或异步半双工块传输协议。
CNU2007201219558U 2007-08-03 2007-08-03 一种基于51单片机的ic卡读写控制器 Expired - Fee Related CN201111065Y (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNU2007201219558U CN201111065Y (zh) 2007-08-03 2007-08-03 一种基于51单片机的ic卡读写控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNU2007201219558U CN201111065Y (zh) 2007-08-03 2007-08-03 一种基于51单片机的ic卡读写控制器

Publications (1)

Publication Number Publication Date
CN201111065Y true CN201111065Y (zh) 2008-09-03

Family

ID=39895603

Family Applications (1)

Application Number Title Priority Date Filing Date
CNU2007201219558U Expired - Fee Related CN201111065Y (zh) 2007-08-03 2007-08-03 一种基于51单片机的ic卡读写控制器

Country Status (1)

Country Link
CN (1) CN201111065Y (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262572A (zh) * 2011-07-19 2011-11-30 浙江大学 一种带crc校验功能的iic总线接口控制器
CN102387012A (zh) * 2011-10-12 2012-03-21 北京创毅视讯科技有限公司 一种半双工总线上数据传输的方法和接口设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262572A (zh) * 2011-07-19 2011-11-30 浙江大学 一种带crc校验功能的iic总线接口控制器
CN102262572B (zh) * 2011-07-19 2013-05-08 浙江大学 一种带crc校验功能的iic总线接口控制器
CN102387012A (zh) * 2011-10-12 2012-03-21 北京创毅视讯科技有限公司 一种半双工总线上数据传输的方法和接口设备

Similar Documents

Publication Publication Date Title
CN104811273B (zh) 一种高速单总线通信的实现方法
CN100589067C (zh) 一种用于sim卡和usim卡的接口装置
CN102063400B (zh) 一种通用串行总线设备转接装置
CN101087235A (zh) 一种基于fpga的多功能通信接口转换设备和方法
CN100440242C (zh) 用于识别标准卡以及非标准卡的卡识别系统
CN107741915A (zh) 一种基于sdio接口的fpga板级通信装置及通信方法
CN101183314A (zh) 一种实现数字信号处理器程序在线编程的方法
CN104317762A (zh) 一种fpga自适应控制rs485芯片收发方向的方法
CN101587533B (zh) 读卡器及其读卡方法
CN201111065Y (zh) 一种基于51单片机的ic卡读写控制器
CN202018576U (zh) 单片机通信模块
CN101673220A (zh) 一种提高双界面sim卡工作并行度的方法
CN107750359A (zh) 具有比特级确收和纠错的串行接口
CN105354157A (zh) 配置iic器件的方法、装置和系统
CN102521197A (zh) 一种利用低成本mcu的uart实现iso7816协议的方法
CN101604304B (zh) 一种多cpu间通信的方法和继电保护装置
CN105573947A (zh) 一种基于apb总线的sd/mmc卡控制方法
CN101477637B (zh) 一种数据通信方法、系统及智能卡读写器
CN102142093A (zh) 一种存储卡操作方法及装置
CN110377238A (zh) 一种存储系统及其数据传输方法、装置和NVMe控制框
CN201349219Y (zh) 异步通信控制器
CN102999458A (zh) 高速智能串口芯片
CN104144137A (zh) 一种高速lvds串行同步通讯控制器
CN101702195B (zh) 时序控制方法和读卡器
CN1979457A (zh) 一种智能卡驱动方法

Legal Events

Date Code Title Description
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080903

Termination date: 20120803