基于单片机的ic卡读写器.docx
《基于单片机的ic卡读写器.docx》由会员分享,可在线阅读,更多相关《基于单片机的ic卡读写器.docx(75页珍藏版)》请在冰豆网上搜索。
基于单片机的ic卡读写器
摘要
IC卡是目前广泛应用于访问控制和电子票据的一种智能卡。
本文主要介绍了一种新型的IC卡读写终端的设计,IC卡读写终端是一个单片机嵌入式应用系统。
论文从IC卡的国际标准入手,介绍了实现IC卡数据存储的控制方法,并以西门子公司的SLE4442型逻辑加密卡为基础.详细分析了单片机控制IC卡数据读写的软、硬件实现。
本文提出了逻辑加密存储卡SLE4442在单片机系统中的一种最简单的应用方法,并采用AT89C51单片机设计了一个简易接触式IC卡控制系统,该系统可以对逻辑加密存储卡SLE4442进行读写。
配合不同的软件及外围扩展电路,该系统可以应用到电业管理、燃气收费等不同的行业。
还介绍了SLE4442芯片的特点、存储器结构,以及该芯片与单片机的最基本连接,分析了SLE4442逻辑加密存储卡的操作过程和AT89C51单片机的控制程序,并给出了对应的程序流程图。
关键词:
IC卡;接触式;读写终端
Abstract
Atpresent,theICcardisakindofintelligentcardapplyingtovisitcontrollingandelectronicnoteextensively.ThispaperhasintroducedthedesigningofanewtypeICcardread-writeterminalmainly.TheterminalisaMCUembeddedapplicationsystem.Firstofall,proceedingwiththeInternationalStandardofICcards,thepaperhasintroducedthereadingandwritingtechniqueofICcarddata.OnthebaseofSLE4442-akindofsmartcardofsecuritylogicmadebySIEMENS.ThepaperhasspecifiedthesoftwareandhardwarerealizationofICcarddatareadingandwriting.
ThearticlehasprovidedakindofsimplestapplicationmethodforICcardSLE4442inthesinglechipcomputersystem.AndasimplecontrolsystemforintelligentcontacttypeICcardispresentedwithAT89C51,whichiscapabletoreadandwritethelogicallyencryptedmemorycardSLE4442.Withsomeadaptationsinsoftwareandperipheralcircuits,thesystemcouldbeeasilyusedinvariousfields.Suchaspowerchargingsystemandgaschargingsystem.ThepaperalsohasintroducedthecharacteristicoftheSLE4442chip,thestructureofstorage,andthemostessentialconnectionbetweenSLE442chipandsinglechipprocessor.Moreover,themethodhowtousethesystem,theproblemofprogramming,andtheflowchartofthesystemprogramofsomeinterrelatedcommandshavealsobeenillustratedinthepaper.
Keywords:
ICcard;contacttype;read-writeterminal
1绪论
1.1IC卡技术的发展
IC卡即集成电路卡,英文名称为“IntegratedCircuitCard”,通常情况下,IC卡是指将集成电路芯片固封在塑料基片中的卡片,是一种功能多样、用途广泛的电子卡片。
它的外形和尺寸同普通名片差不多,一般厚度为0.76─1.2毫米,小巧玲珑,携带方便,使用简捷。
卡的基片是由聚氯乙烯硬质塑料制成的,内装集成电路芯片。
它可与多种终端设备连接使用,具有多种功能。
IC卡的最初设想是由日本人提出来的。
1969年12月,日本的有村国孝先生提出一种制造安全可靠的信用卡方法,并于1970年获专利。
那时叫ID卡(IdentificationCard)。
1974年,法国的罗兰德─穆瑞拉发明了带集成电路芯片的塑料卡片,这就是早期的IC卡,并取得了专利权,但一时尚未实用化。
1983年,这一发明受到法国政府的重视,由政府出面推动IC卡的实用化。
IC卡距今已有近30年的历史。
随着超大规模集成电路技术、计算机技术和信息安全技术等的发展,IC技术也更成熟,并获得更为广泛的应用[1]。
1.2IC卡分类及应用
IC卡根据卡中所用嵌粘的集成电路的功能不同,可分为接触式IC卡和非接触式IC卡两大类。
接触式IC卡,它又分为以下四小类:
存储卡──具有存储记忆功能,不带加密逻辑,这类卡适用于其内部信息不用加密的应用系统,例如健康卡;
加密存储卡──卡中具有若干个密码口令,只有在密码输入正确后,才能对相应区域的信息内容进行读出或写入。
若密码输入出错一定次数后,该卡将自动封锁,成为死卡。
此类卡适用于需加密的应用系统,如食堂就餐卡;
智能卡(SMARTCARD)──卡中还带有信息处理器(CPU),该类卡是一个带有操作系统的单片机系统,严格防范非法用户访问卡中的信息。
发现数次非法访问后也可锁住某个信息区域,但可以用高级命令解锁,使卡中的信息保证绝对安全,系统高度可靠。
此类卡应用于绝密系统中,如银行金融卡;
超级智能卡(SUPERCARD)──在智能卡的基础上装有键盘、液晶显示器和电源。
非接触式IC卡,为封闭式包装,通过射频和外部设备传送信息。
它利用外部发射的高频电磁波能源和信号源,进行擦写存储。
在实际使用中,以接触式IC卡应用最多。
法国首先使用的银行卡,至1992年法国已有2100万张这样的银行卡。
商店中的读卡器在卡与银行之间建立联系,持卡者输入个人识别编码来证明自己有权使用这张卡。
如果个人识别编码与存在卡上的编码不一致,读卡器就通知店员收缴这张卡,此后不久读卡器能用电信号使冒用的卡无效。
非接触式IC卡一般用于外接触场合,如日本的建设省正在研制用于高速公路不停车收费的IC卡。
只要司机兜里装着这种IC卡,高速驶过收费站不需停车,就可以把卡上的费用自动划拔到收费站的帐上。
原理是用光波和电波通过微电脑自动结算。
从全球范围看,现在IC卡的应用范围已不再局限于早期的通信领域,而广泛地应用于金融财务、社会保险、交通旅游、医疗卫生、政府行政、商品零售、休闲娱乐、学校管理及其它领域。
在信息社会,IC卡的前途是无量的,从IC卡的技术上看,总的发展趋势是向高功能,大容量方向迈进。
1.3IC卡技术的特点
1、可靠性高
IC卡具有防磁、防静电、防机械损坏和防化学破坏等能力,信息保存期在100年以上,读写次数在1万次以上,至少可用10年。
2、安全性好
IC卡从生产到投入使用的全过程及全生命周期内都可进行严格的管理,所以安全性好。
IC卡使用信息验证码,在识别卡时,由卡号、有效日期等重要数据与一个密钥按一定算法进行计算验证。
IC卡可提供密钥个人识别码,用户使用时,输入密码后,与该PIN码进行比较,防止非法用户。
3、存储容量大
一般IC卡的容量都在1KB~32KB之间,最大的能达到4M。
4、读写器易实现
IC卡作为一种新型的识别卡,自然需要其专用的设备来支持。
IC卡系统由计算机、卡座、读写器、应用系统和IC卡等几部分组成。
其中,卡座的主要功能是提供对卡的机械支持和电器接触;读写器的基本功能是对卡的读出和写入操作,有的还可以进行数据处理和加密;应用软件的主要功能应有卡的读写控制、结果显示、数据处理、系统加密和系统通信等。
软件设计的好坏将直接影响整个系统的运行效果。
5、灵活性强
IC卡本身可进行安全认证、操作权限认证,以及可存储最新的有关事务处理信息,可以进行脱机操作,简化了网络要求。
IC卡可以一卡多用。
IC卡可为用户提供方便:
例如为用户修改PIN码、个人数据资料、消费权限,以及查询余额等。
这些功能都体现了IC卡的灵活性。
1.4IC卡的接口设备
为了使用卡片,还需要有与IC卡设备配合工作的接口设备IFD(interfacedevice)或称为“读写设备/读写器”IC卡接口设备的种类很多,功能上由于不同的应用需要,差别也很大,但就其对卡(以接触式卡为例)的操作功能来说,都应具备以下几个基本功能:
1、IC卡的插入/退出的识别与控制(接触式卡),IC卡进/出RF区的识别和控制(非接触式卡);
2、向IC卡提供其所需的稳定的电源与时钟信号;
3、实现与卡的数据交换,并提供相应的控制信号;
4、对加密数据系统,应提供相应的加密解密处理及密钥管理机制;
5、提供相应的外部控制信息及其它设备的信息交换。
很多读写设备除了对卡的基本操作外,还设计了其他一些重要功能必要的控制界面和显示界面,提供数据通讯接口与上位机进行数据通讯,网络控制功能.实现远程适时控制。
1.5IC卡国际标准和设计要求
由于IC卡使用具有流动性与全球性,建立相应的国际标准和国家标准就显得特别重要。
在信息技术领域,ISO(国际标准化组织)和IEC(国际电子技术委员会)共同建立了一个技术委员会ISO/IECJTC1以制定相应国际标准。
在IC卡应用系统的设计中,读写设备对IC卡的读写控制的每一个环节都应当遵照相应的国际标准,才能保证数据的正确读取,这是IC卡读写器终端设计的基础。
接触式IC卡国际标准的总称为识别卡──接触式集成电路卡国际标准为ISO/IEC7816。
包括以下部分:
第一部分:
ISO7816-1,物理特性
第二部分:
ISO7816-2,触点尺寸和位置
第三部分:
ISO7816-3,电信号和传输协议
第四部分:
ISO7816-4,行业间交换用命令
第五部分:
ISO7816-5,应用标识符的编码系统和注册系统
第六部分:
ISO7816-6,行业间数据元
第七部分:
ISO7816-7,关于结构化卡询问语言的行业间命令
第八部分:
ISO7816-8,与安全有关的行业复位命令
第九部分:
ISO7816-9,附加的行业间命令和复位应答
第十部分:
ISO7816-10,用于同步卡的电信号和复位应答
由于在本课题相关的接触型逻辑加密卡SLE4442的设计中,只涉及到ISO7816-2,IS07816-3和IS07816-10,所以只对这几个标准进行介绍,其中后两个协议直接与读写器设计的细节相关,所以进行了比较详细的介绍。
1.5.1IS07816-1,接触式集成电路卡的物理特性
本标准制定的物理特性适合于ID-1型识别卡,其尺寸为85.6mmX53.98mmX0.76mm.IS07810(识别卡的物理特性)中为各种识别卡定义的物理特性适用于IC卡,IS07813(作为金融交易卡的磁卡的格式即内容)中对金融交易卡定义的阻燃性和外形尺寸也适用于IC卡。
此外,还提出了以下附加特性:
防护紫外线的能力;X光照射的剂量:
触点的表面轮廓:
卡和触点的机械强度;触点电阻;磁条与集成电路之间的电磁干扰;指定强度磁场的影响;静电影响;热耗等。
标准规定了上述各项测试的指标,并要求测试后的IC卡不应损坏或丧失功能。
使用过程中卡的表面温度不应超过50摄氏度[2]。
1.5.2IS07816-2,接触式集成电路卡的触点尺寸和位置
该协议规定了ID-1型集成电路卡各触点的尺寸、位置和功能。
规定每个触点都应有一个不小于2.OmmX1.7mm的矩形表面区域,各触点间应互相隔离,但未规定触点的形状和最大尺寸。
IC卡有8个触点,从C1到C8,触点可安排在卡的正面和反面。
触点的位置如图1.1所示(以卡的接触面的左边和上边为基准线)。
相邻两个触点之间的最大间距为0.84mmX8个触点所占最大面积没有规定,但规定最小面积不小于9.62(宽)mmX9.23(高)mm的矩形平面[3]。
图1.1触点的位置图
每个触点的功能见表1.1:
表1.1IC卡触点功能表
触点编号
功能
触点编号
功能
C1
VCC(电源电压)
C5
GND(地)
C2
RST(复位信号)
C6
VPP(编程电压)
C3
CLK(时钟信号)
C7
I/O(输入/输出)
C4
ISO/IECJTC1/SC17
C8
ISO/IECJTC1/SC17
-
保留使用
-
保留使用
1.5.3IS07816-3/10,接触式集成电路卡的电信号和传输协议
IS07816-3/10协议规定了电源及信号的结构,以及IC卡和设备之间的信息交换,包括信号频率、电压电平、电流值、奇偶校验协定、操作过程、传送机制以及接口设备与IC卡之间的通讯协议等。
这些协议规定是读写终端设计必须严格遵守的。
该协议标准制订后经过多次修改,这里按1997年版本进行介绍。
IC卡有两种传输协议:
同步传输协议和异步传输协议,相应的执行不同协议的IC卡也分为同步卡和异步卡。
在使用同步卡时,外电路的时钟信号加到IC卡的CLK触点C3,直接作为数据读写的同步触发信号,同步传输协议在ISO/IEC7816-10中定义,适用于逻辑加密卡,它是同步IC卡读写数据时序控制的依据,这里要详细介绍:
使用异步卡时,外电路的时钟信号也加到IC卡的C3触点,但不直接控制卡中数据的读写,而是作为卡中CPU的外时钟信号,数据的读写时序由卡中CPU控制,异步传输协议在IS07816-3中介绍,主要适用于内含微处理器的智能卡,但IS07816-3中有些部分也适用于同步卡。
这里就只介绍与逻辑加密卡有关的部分[4]。
1.5.4IS07816-3规定的各触点电压和电流值
先介绍IS07816-3中规定的触点电压和电流值.在讨论每个触点的电特性之前,先将所用符号的意义叙述如下[4]:
Vih:
高电平输入电压Vil:
低电平输入电压
Voh:
高电平输出电压Vol:
低电平输出电压
Tr:
信号幅度10%-90%之间的上升时间
Tf:
信号幅度90%-10%之间的下降时间
Cin:
输入电容Cout:
输出电容
Iil:
高电平输入电流Iil:
低电平输入电流
Ioh:
高电平输出电流Iol:
低电平输出电流
Icc:
Vcc端电源电流Irr:
Vpp端编程电流
所有测量是相对GND(地)定义的。
测量的环境温度在50摄氏度范围内。
流入卡中的电流被定义为正电流。
当满足下列条件时,定义电路为不工作状态:
触点相对于GND的电压保持在OV-0.4V之间,且流向接口设备的电流小于1mA。
另外根据给卡的电压不同而将卡的操作条件分成A、B两类,A类卡VCC上的电压为5V。
B类卡VCC上电压值为3V,一般情况下的我们多使用A类卡。
1、VCC触点:
下表1.2是VCC触点电源电压值,本触点用来提供电源电压
表1.2正常操作下VCC的电特性
符号
条件
最小值
最大值
单位
VCC
A类
4.5
5.5
V
B类
2.7
3.3
ICC
A类在最大允许功率
-
60
mA
B类在最大允许功率
-
50
时钟停止
-
0.5
2、Vpp触点:
在A类操作条件下卡内的非易失性存储器EEPROM编程或擦除时可以从VPP端提供电源。
Vpp有两种状态,空闲状态和激活状态。
除编程和擦除外,均处于空闲状态。
一般IC卡不从VPP取得电压,而山卡内升压电路提供编程和擦除所需电压。
在B类操作条件下,VPP触点保留于将来使用。
正常操作状态下VPP的电特性如表1.3所示:
表1.3正常操作条件状态下Vpp的电特性
符号
条件
最小值
最大值
单位
Vpp
空闲状态
0.95xVcc
1.05xVcc
V
Ipp
-
20
mA
Vpp
编程状态
0.975xP
1.025P
V
Ipp
-
I
mA
卡向接口设备提供P和I值(默认值:
P=5,I=50)
电压上升或下降时间:
200us(最大值),VPP变化速率不超过2V/us.最大功率VppxIpp,在任意一秒时间内的平均值不超过主1.5W。
3、I/O触点:
I/O触点用于数据交换的输入(接收方式)或输出(发送方式)。
有两种可能的状态:
传号或高状态(Z状态),空号或低状态(A状态)。
当卡和接收设备均处在接收方式时,I/O处于Z状态,也可被发送方规定为Z状态:
A状态可山发送方规定。
当卡与接口设备处于不匹配的传输方式时,I/O端的逻辑状态可能是不确定的。
在操作期间,卡与接口设备不能同时处于发送方式。
表1.4为正常操作状态I/O的电特性:
表1.4正常操作下的I/O电特性
符号
条件
最小值
最大值
单位
Vih
Vih时刻
0.7xVCC
VCC
V
Iih
-300
+20
uA
Vil
Vil时刻
0
0.15xVCC
V
Iil
-1000
+20
uA
Voh
外加上拉电阻到VCC
Voh
0.7xVCC
VCC
V
Ioh
+20
uA
Vol
Iol=1mA
Cin=30pF;Cout=30pF
0
0.15xVCC
V
TrTf
1
us
以上测试I/O上的电压保持在-0.3V到+0.3V之间,接口设备工作时,流入卡的电流不应超过5OOuA。
4、CLK触点:
正常操作状态下的CLK触点电特性如下表1.5所示:
表1.5正常操作条件状态下CLK的电特性
符号
条件
最小值
最大值
单位
Vih
Vih时刻
0.7xVcc
Vcc
V
Iih
-20
+100
uA
Vil
Vil时刻
0
0.5
V
Iil
-100
+20
uA
TrTf
Cin=30pF
-
时钟周期的9%
-
CLK上的电压保持在-0.3~Vcc之间
5、RST触点:
正常操作条件下RST的电特性如表1.6所示:
表1.6正常操作条件下RST的电特性
符号
条件
最小值
最大值
单位
Vih
Vih时刻
0.8xVcc
Vcc
V
Iih
-20
+150
uA
Vil
Vil时刻
0
0.12xVcc
V
Iil
-200
+20
uA
TrTf
Cin=30pF
-
1
us
RST电压保持在-0.3~Vcc之间
1.5.5ISO/IEC7816-10协议,同步卡的电信号和复位应答
ISO/IEC7816-10协议专门规范了同步卡的电信号和复位应答,描述了在同步传输的集成电路与接口设备之间的电源、信号结构和复位应答结构。
除了带CPU的智能卡,其他IC卡都属于同步卡,包括这里要使用的逻辑加密卡,所以了解ISO/IEC7816-10协议也很重要。
除了在此说明的以外,在ISO/IEC7816-3中说明的仍适用。
它还包括信号速率、操作条件和通讯。
本规范说明两种类型的同步卡:
第一类(type1)和第二类(type2).IC卡的触点C,指定为第二类同步卡的功能码(FCB),FCB和RST一起构成在卡中执行的命令。
第二类卡的传输率可以比第一类高。
1、卡的复位
接口设备将所有线置于状态L,然后VCC加电,VPP置于休闲状态,CLK和RST保留于状态L,接口设备的I/O置于结束方式。
RST至少有50us维持于状态H,然后回到状态L。
上升沿和下降沿时间不超过0.5us。
时钟脉冲在它与RST上升沿之后相隔5us时间后给出,时钟脉冲状态H的持续时间在10us-50us之间。
在RST处于状态H时只准有一个时钟脉冲,CLK与RST下降沿之间的间隔为5us。
在I/O线上得到的第一位数据可视为应答,此时CLK处于状态L,并在RST下降沿10us后有效。
2、复位应答
在同步工作传输方式中,I/O线上一串数据位用CLK上的时钟信号进行同步。
I/O线上的位速率与接口设备发到CLK的时钟速率呈线性关系,例如7kHz时钟频率相应于7Kbit/s。
无论对于那种同类卡,最大上升沿/下降沿各为0.5us。
第一类卡低于50kHz的任意频率可用;第二类卡低于280kHz的任意频率可用。
在设计读写器的读写控制时要选择合适的CLK频率,即要保持比较快的数据传输速率,又要保证数据传输的可靠性。
复位(reset)操作的结果是从卡发送应答到接口设备。
该头的长度固定为32位,其开始的两个字节H1和H2是必备的。
bl-b32是按时间顺序发送的信息位,最低位先发送[4]。
1.5.6IC卡国际标准和设计要求小结
本节详细介绍了有关IC卡的国际标准,标准规范了IC卡物理特性、触点大小和位置、触点电信号特征和传输协议等等,它也是IC卡读写设备设计的基本规范,是读写设备对IC卡进行数据操作的所必需遵循的基础。
1.6IC卡在国内的使用情况和发展前景
可以看到我国的一些领域,如电信、交通、医疗等等部门,使用IC卡也已经很普遍,很多单位也已经使用IC卡来进行人员和财务管理。
在金融上我国还基本上是使用磁卡,但是由于IC卡的诸多优点,在不久将来用IC卡取代磁卡已经是必然趋势。
我国IC卡经过几年的探索与发展,其建设和实际应用进入了一个新的发展阶段。
据统计,我国目前已有香港、上海、广州、深圳、大连、青岛、南京、桂林、武汉、鞍山、长春、厦门等多个城市都已成功地启用,不少城市的IC卡应用范围涵盖了包括公交、地铁、轮渡、出租车、路桥收费、泊车等城市交通各个方面,有的还往非交通领域延伸,如旅游景点门票、小额餐饮付费等。
这些城市都是在政府的推动下,做出一卡多用的规划,统一组织实施。
截至目前,全国已有90多个城市建立了不同规模的公交IC卡应用系统,累计发卡量2000余万张;已有300多个城市在供水、燃气领域实施了IC卡应用,累计安装IC卡表具已达到450多万台,发卡量达到600多万张。
数字社区、路桥收费、停车场管理等领域的建设事业IC卡应用也有了初步的发展。
建设行业IC卡的应用推广对加强政府对经济的宏观调控,提倡市民新的消费意识,提高公用企事业单位的工作效率、经营管理水平和效益,促进国民经济信息化进程起到了良好作用。
IC卡的一卡多应用,国内外有很多成功的经验可供借鉴,如上海的公共交通一卡通系统,香港特区的八达通卡,新加坡的现金卡NETS项目等。
这些项目都有一个共同特点,即都是在政府的推动下,做出一卡多用的规划,统一组织实施。
上海公共交通“一卡通”工程于1999年5月25日投入建设。
发卡总量达到1200万张,日交易量为500万笔,交易额达人民币800万元。
广州“羊城通