CN201111065Y - 一种基于51单片机的ic卡读写控制器 - Google Patents
一种基于51单片机的ic卡读写控制器 Download PDFInfo
- 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
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
技术领域
本实用新型涉及一种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标准中的异步半双工字符传输协议或异步半双工块传输协议。
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)
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 | 北京创毅视讯科技有限公司 | 一种半双工总线上数据传输的方法和接口设备 |
-
2007
- 2007-08-03 CN CNU2007201219558U patent/CN201111065Y/zh not_active Expired - Fee Related
Cited By (3)
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 |