CN1251072C - Ic卡串口读写器 - Google Patents
Ic卡串口读写器 Download PDFInfo
- Publication number
- CN1251072C CN1251072C CN 03100327 CN03100327A CN1251072C CN 1251072 C CN1251072 C CN 1251072C CN 03100327 CN03100327 CN 03100327 CN 03100327 A CN03100327 A CN 03100327A CN 1251072 C CN1251072 C CN 1251072C
- Authority
- CN
- China
- Prior art keywords
- card
- serial ports
- triode
- signal
- serial port
- 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)
- Communication Control (AREA)
Abstract
本发明提供一种IC卡串口读写器,包括IC卡座,串口取电模块、电平转换模块和时钟发生器;所述串口取电模块提取计算机串口信号进行滤波和稳压处理后,输出电压给IC卡座的电源端;所述电平转换模块实现计算机串口的发送端、接收端和IC卡座的I/O端之间的电平转换;所述时钟发生器供给IC卡的标准时钟,保证计算机与IC卡通讯波特率的要求。本发明的IC卡串口读写器,通过计算机软件驱动,实现对IC卡的读写操作,硬件及电路设计简单,成本低。
Description
技术领域
本发明属于电子终端设备,尤指一种利用计算机串口信号对IC卡进行读写操作的读写器。
背景技术
现有读写器的驱动是基于读写器底层的硬件控制上,即从硬件的角度对读写器进行控制,这样的特点是读写器稳定、速度较快,但在硬件控制的同时,却造成了硬件器件的增多和电路设计的复杂性,增加了读写器硬件的成本,造成了一定的经济负担。
发明内容
鉴于现有技术的缺点,本发明提供一种利用计算机串口信号对IC卡进行读写操作的读写器,由计算机中的软件来实现读写器的驱动,达到实现低成本读写器的目的。
本发明的IC卡串口读写器,包括IC卡座,串口插座、串口取电模块、电平转换模块和时钟发生器;所述串口插座用于与计算机的串口相连接;所述串口取电模块提取计算机串口信号进行滤波和稳压处理后,输出电压给IC卡座的电源端;所述电平转换模块实现计算机串口的发送端、接收端和IC卡座的I/O端之间的电平转换;所述时钟发生器供给IC卡的标准时钟,保证计算机与IC卡通讯波特率的要求。
所述提取的计算机串口信号为DTR信号和RTS信号。
根据本发明的上述技术方案,所述串口插座与计算机串口之间的连接信号为:DTR信号、RTS信号、串口输出信号和串口输入信号。
所述串口取电模块包括:正极分别与DTR信号和RTS信号相连的串接的二极管以及滤波电容,一调整三极管和一稳压三极管,所述稳压三极管的发射极接地,稳压三极管的集电极与调整三极管的集电极之间串接电阻,所述稳压三极管的基极与调整三极管的发射极之间串接电阻,所述稳压三极管的基极通过电阻接地,所述二极管的负极、滤波电容的正极与所述调整三极管的集电极相连接,所述滤波电容的负极接地,所述调整三极管的发射极输出稳定的+5V电源。
所述稳压三极管的发射极与地之间串接有发光二极管,用以指示工作状态;所述稳压三极管的集电极通过电容接地;所述调整三极管的发射极通过滤波电容接地。
所述的电平转换模块包括:一开关三极管和一非门,所述开关三极管的基极串接一电阻与计算机串口的输出信号端和输入信号端相连接,集电极与I C卡座的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电平的转换是由U1C74HC04的一个非门实现的。
时钟发生器电路:由晶体振荡器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通信APII对计算机串口进行操作,以达到通过读写器控制IC卡引脚并能对IC卡进行读写操作的要求,从而达到驱动读写器的目的,并且将接口函数以动态库的形式提供,提供的接口函数包括打开串口读写器接口、关闭串口读写器接口、取得IC卡复位信息接口、向读写器发送命令及接收数据接口、T=0单字节命令发送接口和T=0单字节数据接收接口。
步骤一:打开串口资源,使用Win32通信函数CreateFile,为了能够在Windows98和Windows2000下兼容,我们采用异步半双工通信模式,同时设置串口,设置波特率,通常设为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时,以块传输,因此以块帧结构发送和接收数据,同时对发送和接收的数据进行分析,得到有效数据;
块帧结构
头域 | 数据域 | 尾域 | ||
节点地址(NAD) | 协议控制字节(PCB) | 长度(LEN) | APDU | 错误校验码(EDC) |
1字节 | 1字节 | 1字节 | 0~254字节 | 1字节 |
步骤五:在完成操作之后,关闭串口资源,使用CloseHandle函数。
在读写串口资源缓冲区数据时,我们采用线程处理方式,异步重叠I/O操作方式,从而保证发送和接受数据的完整性、准确性。同时也保证了在Windows98和Windows2000下的通信兼容性。
本发明还可提供T=0单字节命令发送和接收软件接口,将发送命令头和接收过程字节分离开来,由用户自己来判断过程字节的含义,再进行下一步的操作,从而达到ISO-7816的T=0协议控制的目的。
Claims (8)
1、一种IC卡串口读写器,包括IC卡座,其特征在于还包括有:串口插座、串口取电模块、电平转换模块和时钟发生器;所述串口插座用于与计算机的串口相连接,所述串口取电模块提取计算机串口信号进行滤波和稳压处理后,输出电压给IC卡座的电源端;所述电平转换模块实现计算机串口的发送端、接收端和IC卡座的I/O端之间的电平转换;所述时钟发生器供给IC卡的标准时钟,保证计算机与IC卡通讯波特率的要求。
2、如权利要求1所述的IC卡串口读写器,其特征在于:所述提取的计算机串口信号为DTR信号和RTS信号。
3、如权利要求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/0端相连并通过电阻(R8)与串口取电模块的电压输出端相连,发射极接地;非门(U1C)的输入端与开关三极管(N3)的集电极和IC卡座的I/O端相连接,输出端与计算机串口的输出信号端和输入信号端相连接。
7、如权利要求1所述的IC卡串口读写器,其特征在于:所述的时钟发生器包括:晶体振荡器、非门以及电阻、电容器件,输出与计算机同步的标准时钟信号给IC卡座。
8、如权利要求1所述的IC卡串口读写器,其特征在于:计算机串口RTS信号顺序串接一电阻(R4)和第一非门(U1A)及第二非门(U1B)并与IC卡座的RST端相连接;第一非门(U1A)的输入端通过一反相二极管(D3)接地。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 03100327 CN1251072C (zh) | 2003-01-09 | 2003-01-09 | Ic卡串口读写器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 03100327 CN1251072C (zh) | 2003-01-09 | 2003-01-09 | Ic卡串口读写器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1516055A CN1516055A (zh) | 2004-07-28 |
CN1251072C true CN1251072C (zh) | 2006-04-12 |
Family
ID=34238981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 03100327 Expired - Fee Related CN1251072C (zh) | 2003-01-09 | 2003-01-09 | Ic卡串口读写器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1251072C (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521197A (zh) * | 2011-12-13 | 2012-06-27 | 福建鑫诺通讯技术有限公司 | 一种利用低成本mcu的uart实现iso7816协议的方法 |
CN103139009A (zh) * | 2012-08-27 | 2013-06-05 | 奇瑞汽车股份有限公司 | 一种同步串行通信的测试方法 |
CN107341423B (zh) * | 2017-07-13 | 2020-10-09 | 金邦达有限公司 | 智能卡的测试方法及测试设备、计算机可读存储介质 |
-
2003
- 2003-01-09 CN CN 03100327 patent/CN1251072C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1516055A (zh) | 2004-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2297084C (en) | A universal serial bus device controller | |
EP2033104B1 (en) | Low power and low pin count bi-directional dual data rate device interconnect interface | |
US5659800A (en) | System for directly sending undecoded raw signals from reader device via external slave interface to personal computer through communication port without first decoding the signals | |
CN102033770B (zh) | 移动终端的触摸屏固件升级方法及装置 | |
EP2040174B1 (en) | Card-type peripheral device | |
US20040158669A1 (en) | Architecture for a serial ATA bus based flash memory apparatus | |
EP0757809A1 (en) | Pcmcia interface card for input devices such as barcode scanning engines | |
EP1695269A1 (en) | Multi-module circuit card with inter-module direct memory access | |
US20080065794A1 (en) | Chained DMA for Low-Power Extended USB Flash Device Without Polling | |
US20030079060A1 (en) | Universal download program for establishing communication with a gate array | |
CN1251072C (zh) | Ic卡串口读写器 | |
CN101957802A (zh) | 具有驱动程序的usb设备 | |
CN100424665C (zh) | 一种实现ccid设备的方法和装置 | |
US6874047B1 (en) | System and method for implementing an SMBus/I2C interface on a network interface card | |
CN2567638Y (zh) | 电脑多功能读写器 | |
CN102096447B (zh) | X86架构计算机 | |
CN2489384Y (zh) | 带有读卡器的电脑键盘 | |
CN104598410B (zh) | 一种免写驱动程序的计算机板卡及其开发方法 | |
CN220190954U (zh) | Usb接口模块及摄像头模组 | |
CN210324158U (zh) | 墨水屏阅读设备 | |
CN2482116Y (zh) | 复印机管理和控制装置 | |
CN212749888U (zh) | 一种贴片式SD NAND Flash存储IC | |
CN209765505U (zh) | 一种传感器数据读取装置 | |
CN109510823B (zh) | 一种spi与iso7816转换电路 | |
CN201742450U (zh) | 具有a型usb端口的手机 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060412 Termination date: 20150109 |
|
EXPY | Termination of patent right or utility model |