Ic卡串口读写器的制作方法

文档序号:6437510阅读:383来源:国知局
专利名称:Ic卡串口读写器的制作方法
技术领域
本发明属于电子终端设备,尤指一种利用计算机串口信号对IC卡进行读写操作的读写器。
背景技术
现有读写器的驱动是基于读写器底层的硬件控制上,即从硬件的角度对读写器进行控制,这样的特点是读写器稳定、速度较快,但在硬件控制的同时,却造成了硬件器件的增多和电路设计的复杂性,增加了读写器硬件的成本,造成了一定的经济负担。

发明内容
鉴于现有技术的缺点,本发明提供一种利用计算机串口信号对IC卡进行读写操作的读写器,由计算机中的软件来实现读写器的驱动,达到实现低成本读写器的目的。
本发明的IC卡串口读写器,包括IC卡座,串口取电模块、电平转换模块和时钟发生器;所述串口取电模块提取计算机串口信号进行滤波和稳压处理后,输出电压给IC卡座的电源端;所述电平转换模块实现计算机串口的发送端、接收端和IC卡座的I/O端之间的电平转换;所述时钟发生器供给IC卡的标准时钟,保证计算机与IC卡通讯波特率的要求。
所述提取的计算机串口信号为DTR信号和RTS信号。
根据本发明的上述技术方案,还包括有一串口插座,用于与计算机的串口相连接,所述串口插座与计算机串口之间的连接信号为DTR信号、RTS信号、串口输出信号和串口输入信号。
所述串口取电模块包括与DTR信号和RTS信号顺向串接的二极管以及滤波电容,一调整三极管和一稳压三极管,所述稳压三极管的发射极接地,稳压三极管的集电极与调整三极管的集电极之间串接电阻,所述稳压三极管的基极与调整三极管的发射极之间串接电阻,所述稳压三极管的基极通过电阻接地,所述二极管的负极、滤波电容的正极与所述调整三极管的集电极相连接,所述滤波电容的负极接地,所述调整三极管的发射极输出稳定的+5V电源。
所述稳压三极管的发射极与地之间串接有发光二极管,用以指示工作状态;所述稳压三极管的集电极通过电容接地;所述调整三极管的发射极通过滤波电容接地。
所述的电平转换模块包括一开关三极管和一非门,所述开关三极管的基极串接一电阻与计算机串口的输出信号端和输入信号端相连接,集电极与IC卡座的I/O端相连并通过电阻与串口取电模块的电压输出端相连,发射极接地;非门的输入端与开关三极管的集电极和IC卡座的I/O端相连接,输出端与计算机串口的输出信号端和输入信号端相连接。
所述的时钟发生器包括晶体振荡器、非门以及电阻、电容器件,输出与计算机同步的标准时钟信号给IC卡座。
计算机串口RTS信号顺序串接一电阻和第一非门及第二非门并与IC卡座的RST端相连接;第一非门的输入端通过一反相二极管接地。
本发明的IC卡串口读写器,硬件及电路设计简单,成本低,读写器的驱动通过计算机软件来实现,可读写符合ISO-7816的T=0和T=1的9600BAUD的CPU卡,满足市面上大多数CPU卡读写的需要,这样在硬件低成本的基础上,又可以较好的完成读写器的功能,实现低成本读写器的目的。而且对于需要学习ISO-7816的T=0协议控制的有关技术人员,可提供单字节发送和接收接口,便于相关人员自行编写T=0协议,对协议本身有更为深入的了解,这对于现有的读写器是无法实现的。


图1为本发明实施例的IC卡串口读写器的结构框图;图2为本发明实施例的IC卡串口读写器的电路原理图。
具体实施例方式
本发明硬件设计组成如图1所示包括串口插座1、串口取电模块2、电平转换模块3、IC卡座4和时钟发生器5。本发明是通过串口插座1与计算机进行连接的,由串口取电模块2对计算机串口信号DTR和RTS进行滤波和稳压处理后输出+5V电压信号给IC卡座4;简单的RS232-TTL电平转换电路3实现计算机串口的发送、接收端与IC卡I/O端口的连接,计算机发送的命令通过串口Tx端,经RS232-TTL电平转换送IC卡I/O端,IC卡经过处理将响应数据通过I/O端,经TTL-RS232电平转换送Rx端,从而实现计算机与IC卡间的通讯。IC卡的标准时钟由时钟发生器5供给,保证计算机与IC卡通讯波特率的要求。
本发明的IC卡串口读写器的电路原理图如图2所示,包括串口取电电路当计算机与IC卡进行通讯时,DTR(数据终端准备好)和RTS(请求发送)端产生脉冲,通过电容E1、E3滤波后,经调整三极管N1和稳压电路(由稳压三极管N2及电阻R1、R2组成)获得稳定的5V供电。
RS232-TTL电平转换电路由RS232到TTL电平的转换是由开关三极管N3实现的,Tx为高电平时,N3导通,将I/O端钳位在低电平,Tx为低电平时,N3关断,I/O经R8连接到Vcc;而TTL到RS232电平的转换是由U1C 74HC04的一个非门实现的。
时钟发生器电路由晶体振荡器T1及非门和电阻、电容等组成,输出标准时钟信号给IC卡座。
图1和图2是本发明的硬件设计及实现电路图,下面具体说明本发明的读写器是如何通过软件驱动,实现对IC卡进行读写操作的。
1、DOS下的软件驱动DOS操作系统是一个单任务操作系统,应用程序可以使用所有系统资源,使得应用程序可以完成要求实时的任务。在DOS环境下通信应用程序可以直接和硬件(UART)打交道,对UART各内部寄存器进行操作,采用中断通信方式,该中断通信方式一般可以分为四大部分通信口初始化部分、发送和接收缓冲队列处理、中断服务处理子程序、通信主程序。因此在DOS下的软件驱动步骤为首先初始化通信口;然后在中断服务处理子程序中通过读取中断标识寄存器判断中断源类型,实现数据的正确收发;最后是对接收和发送队列的管理。
2、Windows下的软件驱动在Win32操作系统下,对各种通讯资源(诸如串行接口、并行接口、传真机和MODEM等),Win32提供了用户一个模块化的、32位的、保护模式的通信子系统。文件输入和输出(I/O)函数(CreatFile、CloseHandle、ReadFile、ReadFileEx、WriteFile和WriteFileEx)提供打开和关闭通信资源句柄以及读和写操作的基本接口。Win32通信API还包括一组提供对通信资源访问的通信函数。Win32通信API为我们在PC机端软件驱动串口读写器提供了保证。
实施的具体方法就是按照ISO-7816规范的要求,使用Win32通信API对计算机串口进行操作,以达到通过读写器控制IC卡引脚并能对IC卡进行读写操作的要求,从而达到驱动读写器的目的,并且将接口函数以动态库的形式提供,提供的接口函数包括打开串口读写器接口、关闭串口读写器接口、取得IC卡复位信息接口、向读写器发送命令及接收数据接口、T=0单字节命令发送接口和T=0单字节数据接收接口。
步骤一打开串口资源,使用Win32通信函数CreateFile,为了能够在Windows98和Windows 2000下兼容,我们采用异步半双工通信模式,同时设置串口,设置波特率,通常设为9600,每个字符有8位,偶校验,一个停止位;设置串口事件驱动的类型,设置超时。在这里我们设置串口通信事件的驱动类型为EV_RXCHAR,当收到任何字符并将其放入接收缓冲区时,触发事件驱动类型并发送WM_COMMNOTIFY通知消息,每当主程序接收到WM_COMMNOTIFY消息,就自动执行消息处理函数。我们将自动执行的消息处理函数,设置为将接收缓冲区的数据保存到数据缓冲区中,这样我们就可以从数据缓冲区中读到我们想得到的数据信息了;步骤二取得IC卡冷复位信息保持RST为状态L,至少400个时钟周期内卡复位,在这里周期的设定是通过硬件电子元件时钟发生器的频率来确定的;保持RST为状态H;I/O上的应答在RST信号的上升沿之后的400~40000个时钟周期内开始;等待串口通信事件的发生;当计算机串口缓冲区中有数据到达的事件被触发时,就可以从计算机串口缓冲区中读取数据,并保存在数据缓冲区中,此时数据缓冲区中的数据即为卡片冷复位数据;步骤三取得IC卡热复位信息同样的,依据取得IC卡冷复位信息的方式,我们可以从串口得到卡片热复位的数据;步骤四在对IC卡进行读写之前,我们对卡片复位数据进行分析,这些信息规定了IC卡和终端之间要建立的通讯的特性;判断是否正向约定,或者反向约定;判断通讯协议类型,T=0或1,T=0异步半双工字符传输协议;T=1异步半双工块传输协议,从这些通讯特性的判断中,我们确定了下面和读写器交互通信时所采取的方式,正向约定或反向约定,T=0或T=1;当通讯协议类型,T=0或1确定之后,就可以使用Win32 Comm API的WriteFile和ReadFile函数从串口发送应用协议数据单元(APDU,Application Protocol Data Unit)命令操作卡片同时接收响应数据;当T=0时,以字符传输,因此首先通过WriteFile函数发送5个字节组成的命令头标字节给IC卡并等待着接收卡片发出的一个过程字节,每个命令头包括指令类别(CLA)、指令类型的指令码字节(INS)、命令参数字节1(P1)、命令参数字节2(P2)、数据域长度(LC)共5个字节;串口缓冲区接收回送的过程字节,过程字节的内容表示了一定含义,它将指出下一步应采取的操作;因此,(1)当回送的过程字节与INS字节值相同,则要根据要发送的APDU命令是否还有余下的数据判断,如果还有余下的数据,则将所有余下的数据发送;否则,准备接收所有来自IC卡数据;(2)当回送的过程字节(设为SW1)是‘6X’或‘9X’,‘60’除外,则将等待下一个过程字节(设为SW2),当第二个过程字节被收到后,则要判断以下事情如果SW1=‘61’,则向IC卡发送一个最大长度为“XX”的Get Response命令头,XX为SW2的值;如果过程字节是‘6X’(除‘60’和‘61’及‘6C’之外)或者‘9X’(即状态),则SW1和SW2共同组成状态字节。在如此的交互过程中完成对IC卡的读写操作,从而达到对IC卡操作的目的。
当T=1时,以块传输,因此以块帧结构发送和接收数据,同时对发送和接收的数据进行分析,得到有效数据;块帧结构

步骤五在完成操作之后,关闭串口资源,使用CloseHandle函数。在读写串口资源缓冲区数据时,我们采用线程处理方式,异步重叠I/O操作方式,从而保证发送和接受数据的完整性、准确性。同时也保证了在Windows 98和Windows 2000下的通信兼容性。
本发明还可提供T=0单字节命令发送和接收软件接口,将发送命令头和接收过程字节分离开来,由用户自己来判断过程字节的含义,再进行下一步的操作,从而达到ISO-7816的T=0协议控制的目的。
权利要求
1.一种IC卡串口读写器,包括IC卡座,其特征在于还包括有串口取电模块、电平转换模块和时钟发生器;所述串口取电模块提取计算机串口信号进行滤波和稳压处理后,输出电压给IC卡座的电源端;所述电平转换模块实现计算机串口的发送端、接收端和IC卡座的I/O端之间的电平转换;所述时钟发生器供给IC卡的标准时钟,保证计算机与IC卡通讯波特率的要求。
2.如权利要求1所述的IC卡串口读写器,其特征在于所述提取的计算机串口信号为DTR信号和RTS信号。
3.如权利要求1或2所述的IC卡串口读写器,其特征在于还包括有一串口插座,用于与计算机的串口相连接,所述串口插座与计算机串口之间的连接信号为DTR信号、RTS信号、串口输出信号和串口输入信号。
4.如权利要求3所述的IC卡串口读写器,其特征在于所述串口取电模块包括与DTR信号和RTS信号顺向串接的二极管(D1、D2)以及滤波电容(E1、E3),一调整三极管(N1)和一稳压三极管(N2),所述稳压三极管(N2)的发射极接地,稳压三极管(N2)的集电极与调整三极管(N1)的集电极之间串接电阻(R1),所述稳压三极管(N2)的基极与调整三极管(N1)的发射极之间串接电阻(R2),所述稳压三极管(N2)的基极通过电阻(R3)接地,所述二极管(D1、D2)的负极、滤波电容(E1、E3)的正极与所述调整三极管(N1)的集电极相连接,所述滤波电容(E1、E3)的负极接地,所述调整三极管(N1)的发射极输出稳定的+5V电源。
5.如权利要求4所述的IC卡串口读写器,其特征在于所述稳压三极管(N2)的发射极与地之间串接有发光二极管(D4),用以指示工作状态;所述稳压三极管(N2)的集电极通过电容(C1)接地;所述调整三极管(N1)的发射极通过滤波电容(E2)接地。
6.如权利要求2或5所述的IC卡串口读写器,其特征在于所述的电平转换模块包括一开关三极管(N3)和一非门(U1C),所述开关三极管(N3)的基极串接一电阻(R7)与计算机串口的输出信号端和输入信号端相连接,集电极与IC卡座的I/O端相连并通过电阻(R8)与串口取电模块的电压输出端相连,发射极接地;非门(U1C)的输入端与开关三极管(N3)的集电极和IC卡座的I/O端相连接,输出端与计算机串口的输出信号端和输入信号端相连接。
7.如权利要求1所述的IC卡串口读写器,其特征在于所述的时钟发生器包括晶体振荡器、非门以及电阻、电容器件,输出与计算机同步的标准时钟信号给IC卡座。
8.如权利要求1所述的IC卡串口读写器,其特征在于计算机串口RTS信号顺序串接一电阻(R4)和第一非门(U1A)及第二非门(U1B)并与IC卡座的RST端相连接;第一非门(U1A)的输入端通过一反相二极管(D3)接地。
全文摘要
本发明提供一种IC卡串口读写器,包括IC卡座,串口取电模块、电平转换模块和时钟发生器;所述串口取电模块提取计算机串口信号进行滤波和稳压处理后,输出电压给IC卡座的电源端;所述电平转换模块实现计算机串口的发送端、接收端和IC卡座的I/O端之间的电平转换;所述时钟发生器供给IC卡的标准时钟,保证计算机与IC卡通讯波特率的要求。本发明的IC卡串口读写器,通过计算机软件驱动,实现对IC卡的读写操作,硬件及电路设计简单,成本低。
文档编号G06K7/06GK1516055SQ0310032
公开日2004年7月28日 申请日期2003年1月9日 优先权日2003年1月9日
发明者陈大才, 徐达兴, 彭志宽, 石玉平 申请人:北京握奇数据系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1