文档库 最新最全的文档下载
当前位置:文档库 › Mifare1射频卡操作原理(编程)

Mifare1射频卡操作原理(编程)

Mifare1射频卡操作原理(编程)
Mifare1射频卡操作原理(编程)

Mifare1卡及其读写器ASIC模块之“密码操作”研究与其应用程序开发

关键字:非接触式智能卡 ASIC模块

1、序言

非接触式智能卡已经广泛地应用于各类门禁控制系统,公共交通支付系统,e-purse系统,高速公路不停车收费系统,IBMS(智能大楼管理系统),海关过境身份识别,以及医疗保险系统等等。

非接触式智能卡以其高度安全保密性,通信高速性,使用方便性,成本日渐低廉等而受到广泛使用,给我们的生活质量带来了很大的提高。因此,如何认识、理解智能卡,特别是带有非常神秘色彩的非接触式智能卡,已引起很多智能卡的使用者,包括智能卡专业研发的IT科研人员的极大的兴趣和爱好。笔者在此很愿意将自己多年来在智能卡(接触式智能卡及非接触式智能卡)方面的研究及其软硬件应用开发的经验与大家一同交流和分享,以取得我国金卡工程事业的更进一步的发展。

在此,笔者将以符合ISO/IEC14443TYPEA标准的Mifare1S50系列非接触式智能卡及其读写设备专用IC(ASIC)RC150/170模块为对象,与大家一起就“关于非接触式智能卡及其读写器ASIC模块之‘密码操作’”作一些研究与探讨,并将用标准的Intel-51系列微处理器汇编语言进行实际的应用程序的开发。在笔者曾设计和开发的众多智能卡项目中,本文所给出的应用程序都有着良好的运行效果。

2、非接触式智能卡及其读写器ASIC模块RC150/170

Mifare1S50非接触式智能卡片有着16个Sector(扇区);每个Sector包含4个Block(块);每个Block具有16个byte的存储容量。Sector被定义为Sector0至Sector15;Block被分为Block0至Block3;整个Mifare1S50非接触式智能卡共有64个Block。

Sector0中的Block0记录了该张智能卡的序列号(SerialNumber)以及生产厂商的标志信息等,这些信息已在卡片出厂时固化,不能更改。因此该Block不能再复用为应用数据块。

每个Sector中的Block3被特别用来存放对该Sector中应用块Block0,1,2及其本身Block3进行数据存取的密码及存取权限。整个Mifare1S50非接触式智能卡共有16个Block3。根据绝对地址编址,他们可被编为Block3(在Sector0中),Block7(在Sector1中),Block11(在Sector2中),以及Block63(在Sector15中)等等。

对于某一Sector中的Block3的绝对地址编址可以由下列公式计算得到:

Block X=(N+1)*4-1

其中:X:绝对地址编址的Block块号

N:Sector扇号,0至15

通常每个扇区的Block0,1,2都存放着非常保密的数据,例如坐公交车/出租车前在公交公司指定地点已购买的车资钱款,智能大厦/智能小区进出时所需的控制信息,股票交易时持有股票交易智能卡片者必须对已存放在智能卡中的交易密码数据(例如帐户、存款信息、已买进股票数量/品种等等)进行确认,才能得以股票交易,等等。

由于每一个Block3中包含了该扇区的密码字节以及对该扇区中其余Block0,1,2进行数据处理的存取控制权限字节,因此如何操作处理Block3将是很重要的内容。以下将展开对每个扇区的Block3进行研究。

Block3有16个byte组成。前6个字节是密码A(KEYA),KEYA的缺省值可能为

“A0A1A2A3A4A5”;最后6个字节是密码B(KEYB),KEYB的缺省值可能为“B0B1B2B3B4B5”;中间4个字节是控制字节,缺省值可能为“FFH07H80H69H”;利用KEYA或KEYB并遵守早已定义在4个控制字节中的存取条件,我们便能对该密码(KEYA或KEYB)所对应的Sector内的应用块Block0,1,2进行数据读/写/更新等操作。

由于非接触式智能卡的操作,包括数据流的传递等都是以“非接触”方式来完成的,因此在MCU与非接触式智能卡之间必须有一个传递密码(或数据流)的中间媒体,即ASIC模块。RC150/170就是这样一种ASIC模块。它担负着非接触式智能卡与MCU(微处理机)之间所有的密码/数据相互传递的重要任务。对非接触式智能卡进行密码操作,变成对RC150/170ASIC模块进行密码操作。RC150/170ASIC模块与非接触式智能卡之间的信息传递(包括密码等)对用户来说是透明的,会自动传递并完成。因此如何对非接触式智能卡进行“密码操作”(对Block3的操作)变成如何对RC150/170ASIC模块进行密码操作。Philips公司的MCM200模块,MCM500模块或SB201,SB601(Uni-VisionEngineeringLtd.的产品)模块中都包含有RC150/170ASIC模块,因此本文所讨论的内容,包括下面设计的程序等,也适用于这些模块。RC170是RC150的新一代ASIC模块,速度较快。

现在我们广泛使用的非接触式智能卡读写设备中大都包含有以上所列的ASIC模块之一。

图1显示了在用户(MCU)与非接触式智能卡之间基本的密码传输关系,并请特别注意ASIC 模块RC150/170的作用等等。

图1ASIC模块密码传输关系图

在研究ASIC模块RC150/170的时候,我们必须关注所有与“密码操作”有关的寄存器/存储器的情况。

●密码数据寄存器KeyDataRegister(寄存器地址:0x0A);

●密码地址寄存器KeyAddressRegister(寄存器地址:0x0C);

●密码状态/控制寄存器KeyStatus&ControlRegister(KEYSTACON)(寄存器地址:0x0B);

●其他相关寄存器。

所有这些与“密码操作”相关的寄存器都是“只可写不可读”的,即WOM(Write-Only-Memory)。因此不要试图去读取这些寄存器的内容。

3、“密码操作”的研究及其应用程序开发

通常,对非接触式智能卡的“密码操作”有两个主要步骤。每一个主要步骤又有若干个小的步骤有序并且必须是连续地完成。

“密码操作”的两个主要步骤是:

●“LOAD_KEY”密码存取

●“AUTHENTICATION”密码认证

3.1“LOAD_KEY”密码存取

“LOAD_KEY”密码存取必须由以下步骤有序并连续地完成:

●设置新的密码值

●设置密码状态/控制寄存器KeyStatus&ControlRegister(KEYSTACON)

●设置密码地址寄存器KeyAddressRegister(寄存器地址:0x0C)

●设置密码数据寄存器KeyDataRegister(寄存器地址:0x0A)

●校验STACON寄存器,以确定这次的“LOAD_KEY”密码存取是否有效

以下将按照上述的次序进行具体的程序设计,所有的程序都使用标准的Intel-51MCU指令,以利于读者在LOW-LEVEL级上移植到其相应的应用项目中。

3.1.1设置新的密码值

新的密码值为6个bytes,在如下的程序设计中被依次存放在MCU内部RAM的72H~77H的6个单元中;程序员亦可自定义其他的存储单元作为新的密码值存放的缓冲区;R1寄存器为新密码缓存首地址指针。如下所设置新的密码值为:“AAAAAAAAAAAA”

SETUP_NEW_KEY_VALUE:

;MOV R7,#06H;密码长度为6bytes

MOV R1,#72H;R1为新密码缓存首地址指针

MOV @R1,#0AAH;设置新密码值

MOV 73H,#0AAH

MOV 74H,#0AAH

MOV 75H,#0AAH

MOV 76H,#0AAH

MOV 77H,#0AAH

良好的经验告诉我们,为了确保整个智能卡系统的高度安全保密,我们有必要在程序设计中,在完成了“密码操作”之后,立即清除存放新的密码值的缓冲区,简单的方法如下:CLEAR_NEW_KEY_BUFFER:

MOV R7,#06H;密码长度为6bytes

MOV R1,#72H;R1为新密码缓存首地址指针

CLEAR_LOOP:

MOV @R1,#00H;清除新密码值所在缓冲区

INC R1

DJNZ R7,CLEAR_LOOP

3.1.2设置密码状态/控制寄存器KeyStatus&ControlRegister(KEYSTACON)

KEYSTACON寄存器是一个只可读不可写的寄存器(存储器),它指示出“密码操作”时所处的状态和要控制的ASIC内部“密码存储器RAM”的选择。这里所指的“状态”是指本次“密码操作”两个主要步骤中的一个。

KEYSTACON寄存器是一个8-bit的存储器,其中有用的位(bit)只有3位。其具体内容为:

其中,MSB(“A/L”位)若被设置为“0”,则意味着当前“密码操作”的“状态”是“LOAD_KEY(密码存取)”;若被设置为“1”,则当前“密码操作”的“状态”是“AUTHENTICATION(密码认证)”。

最后 2个bit:KS0KS1是密码集keyset的选择。在ASIC中共有3套密码集(keyset)和一个传输密码(TransportKey)可被选择。设置KS0、KS1的值实际上是在选择(寻址)ASIC模块内部存放密码的不同的存储器单元(密码箱)。如果“LOAD_KEY”(密码存取)时使用了keyset0,则“AUTHENTICATION”(密码认证)时只能使用keyset0,而不能使用keyset1或keyset2或其他,因为在ASIC模块内,keyset0指定的密码存储器地址单元与keyset1或keyset2所指定的密码存储器地址单元是不同的单元。这就好比去超级市场购物,入超市前您把您的包裹寄存在超市门前包裹箱A中,并得到打印有开起包裹箱A的(开箱)密码纸条;当您欲取回包裹时,拿着包裹箱A的(开箱)密码纸条而去开包裹箱B或C的箱门,当然不能打开,因为您的地址(箱号)不对,当然您的包裹也不能拿到。这是密码的认证出错。在ASIC中有相同之处。如果“LOAD_KEY”(密码存取)时使用了keyset0,并存放上密码,而在“AUTHENTICATION”(密码认证)时却使用keyset1或keyset2或其他而来验证刚才存放的密码,当然会得到ASIC模块返回的认证出错(“AE=1”)。

当KS1KS0=“00”时,选择使用keyset0;

当KS1KS0=“01”时,选择使用keyset1;

当KS1KS0=“10”时,选择使用keyset2;

当KS1KS0=“11”时,选择使用传输密码(TransportKey)。

以下是设置密码状态/控制寄存器KeyStatus&ControlRegister(KEYSTACON)的程序:

SETUP_KEYSTACON:

MOV 7EH,#00000000B;选择使用keyset0,并指明是“LOAD_KEY”

MOV A,7EH ;7EH单元存放了设置KEYSTACON的值

MOV R0,#0BH ;KEYSTACON寄存器地址为0Bh

OVX @R0,A ;设置KEYSTACON寄存器

如果我们要选择使用keyset2,则相应可以设置7EH单元为#00000010b(0x02),即: MOV 7EH,#00000010B

3.1.3设置密码地址寄存器KeyAddressRegister(寄存器地址:0x0C)

在成功地完成了对密码状态/控制寄存器(KEYSTACON)的设置之后,必须立即对密码地址寄存器KeyAddressRegister进行设置,而不能对密码数据寄存器KeyDataRegister进行设置或做其他设置,否则将出错。因为ASIC内部接收MCU指令/数据的存储单元是按照FIFO (“FirstInFirstOut”即“先进先出”)方式工作的。

由于一张非接触式智能卡有16个Sector(扇区),并且每个Sector都可能有着各自不同的密码,因此在ASIC模块中就会有不同的密码存储器与之相对应。当对16个Sector中的一个Sector进行密码操作时,就必须对ASIC模块中与该Sector对应的密码存储器进行寻址,找到这一密码存储器确切位置。不过,MCU送出的寻址地址只是ASIC在其内部做第二次寻址(地址变化)的“一部分”地址。这里所指的“一部分”是出于高度安全保密的原因。

以下是8位(bit)密码地址寄存器的说明:

这里,

●MSB(“A/L”bit)与KEYSTACON寄存器中的MSB有着相同的意义;

●“A/B”bit位指出MCU要使用的密码的类型。当“A/B”=“0”时,MCU使用KEYA;当“A/B”=“1”时,MCU使用KEYB;

●“A5~A0”指出要求密码操作的某一Sector的地址。当要对Sector0进行密码操作时,“A5~A0”应该被设置为“00000b”(0x00);如果是Sector1,“A5~A0”应该被设置为“00001b”(0x01);如果是Sector5,“A5~A0”应该被设置为“00101b(0x05),等等。

以下是设置密码地址寄存器KeyAddressRegister的程序:

SETUP_Key_Address_Reg:

MOV 7DH,#00000001B ;使用KEYA,对Sector1进行“LOAD_KEY”

MOV A,7DH ;7DH单元存储了密码地址寄存器值

MOV R0,#0CH ;密码地址寄存器地址为“0Ch”

MOV X@R0,A ;设置密码地址寄存器

如果要对Sector1使用KEYB,则7DH单元必须设置为“#01000001b”(0x41),即:MOV 7DH,#01000001B

更进一步,如果要对Sector5使用KEYB,则7DH单元必须设置为“#01000101b”(0x45),即:

V 7DH,#01000101B

这样,Sector5中Block0,1,2(相应于绝对块地址为:Block20,21,22)中原有数据将可以被操作。Sector5中Block3也可以按照预先定义的存取控制条件而被改写密码,或被读出密码或控制字节。

3.1.4设置密码数据寄存器KeyDataRegister(寄存器地址:0x0A)

如果成功地完成了以上几个方面的设置,ASIC模块现在可以接收MCU送出的新的密码值了,即,现在应该设置密码数据寄存器KeyDataRegister。

密码数据寄存器KeyDataRegister也是WOM类型的存储器。只可写入数据,不可读出数据,或读到的数据是无效的。由于密码的长度为6bytes,因此密码数据寄存器KeyDataRegister也将由6个bytes的FIFO存储器组成。

以下是设置密码数据寄存器KeyDataRegister的程序:

SETUP_Key_Data_Reg:

MOV R1,#72H ;R1为新密码缓存(72H~77H)首地址指针

MOV R7,#06H ;密码长度=6bytes

MOV R0,#0AH ;密码数据寄存器地址为:“0Ah”

WRITE_Key_Data_Reg_LOOP:

MOV A,@R1 ;取出一个byte的新密码值

MOV X@R0,A ;将一个byte的新密码值送入密码数据寄

;存器中(ASIC模块中)

INC R1

DJNZ R7,WRITE_Key_Data_Reg_LOOP

这里有一个非常重要的问题,即传送6bytes长度的密码时,这6bytes的顺序必须引起高度重视。

由于每一个Block3都有着如下的存储格式存放着密码KEYA,KEYB及4个字节的存取控制条

件:

因此,密码数据寄存器接收MCU发送的第一个密码字节(byte)必须是KEYA中的第一个字节,即表中的“A0”字节。否则送入非接触式智能卡中的密码将是反向的6个字节。

密码KEYB具有相同之处。

3.1.5校验STACON寄存器,以确定这次的“LOAD_KEY”(密码存取)是否有效在完成上述操作后,接着应该对以上的结果进行校验,以确定这次的“LOAD_KEY”(密码存取)是否有效。这可以通过校验STACON寄存器中的“AE”bit位来完成。

STACON寄存器是ASIC模块中极为重要的状态寄存器和控制寄存器。

当对ASIC模块进行任何读/写操作时,它是一个状态寄存器,指出当时读/写操作的状态是如何的。此时的STACON寄存器有着如下的8个bit的状态格式:

当对ASIC模块进行任何控制操作时,它是一个控制寄存器,此时的STACON寄存器又有着如下的8个bit的控制格式:

我们进行密码操作,读写ASIC模块时,只是会涉及STACON寄存器中的“AuthenticationError”bit(即“AE”位)。

●当“AE”=“1”时,指明刚才的密码操作(“LOAD_KEY”或“AUTHENTICATION”)没有成功;

●当“AE”=“0”时,指明刚才的密码操作(“LOAD_KEY”或“AUTHENTICATION”)成功;

以下是校验STACON寄存器,以确定这次“LOAD_KEY”密码存取操作是否有效的校验程序:VERIFY_LOAD_KEY_Operationroutine:

VERIFY_LOAD_KEY_OP:

MOV R0,#01H ;STACON寄存器地址为“01H”

MOV XA,@R0 ;读ASIC内的STACON寄存器;如果“AE”=“1”,转出错处理

JB ACC.2, LOAD_KEY_Operation_ERR ;否则“AE”=“00”,此次“LOAD_KEY”成功

MOV B,#00H;送OK标志“00”

AJMP LOAD_KEY_Operation_OK

LOAD_KEY_Operation_ERR:

MOV B,#99H;送出错标志“99”,此次“LOAD_KEY”失败

......

(出错处理)

......

AJMP VERIFY_EXIT

LOAD_KEY_Operation_OK:

MOV A,B

ACALL DISPLAY

......

(“OK”处理)

......

VERIFY_EXIT:

RET

3.2“AUTHENTICATION”(密码认证)

“AUTHENTICATION”(密码认证)操作必须按照如下的几个步骤进行:

●设置ASIC模块中的TOC/BCNTS寄存器等

●设置密码状态/控制寄存器KeyStatus&ControlRegister(KEYSTACON)

●设置密码地址寄存器KeyAddressRegister(寄存器地址:0x0C)

●设置AUTHENTICATION指令码

●密码地址变换

●校验STACON寄存器,以确定这次的“AUTHENTICATION”密码认证是否有效

●关闭TOC及一些其它操作等

由于“AUTHENTICATION”(密码认证)操作同“LOAD_KEY”(密码存取)操作相互类似,在此不再重复。

只有在完全完成了上述的两个主要的密码操作步骤,并且得当了ASIC模块“OK”的响应,非接触式智能卡上相对应与刚才进行过密码操作的某一扇区Sectorm内的Block0,1,2才能被

MCU进行访问,包括进行读/写等数据操作。一旦要求对另一扇区Sectorn内的Block进行数据读写时,则必须重新开始对扇区Sectorn进行密码操作,包括“LOAD_KEY”(密码存取)操作和“AUTHENTICATION”(密码认证)操作等。

4、结束语

非接触式智能卡技术虽然至今只有4~5年的成熟发展期,但是由于它的高度保密性,以及使用的方便性,得到了很快的普及。这种普及又加速了非接触式智能卡技术的飞跃发展。它同银行用接触式CPU卡相互融合,产生了新的双界面智能卡(Contact&ContactlessInterface),在e-purse电子钱包系统等方面取得到了很大的成功。世界上一些著名的大公司,如SONY公司等,也介入了非接触式智能卡技术领域,并且SONY的非接触式智能卡技术又有着非常独到之处。根据笔者对SONY非接触式智能卡技术的使用、研究和了解,相对MIFARE而言,其在读卡的速度、稳定性、误码率等性能上都有很大的提高,这也是其溶入了新的技术所致。

来源:《智能卡应用全书》

下个例子

对于电脑周边编程,主要有两种思路(应该没有第三种了)。【详细说明见我博文永和豆浆管理系统基础工作总结】

一、利用windows系统本身dll库。

二、利用硬件产家提供的dll。

本篇对M1卡的编程是利用上述第二种方法。

M1卡最为重要的优点是可读可写并且安全性高的多功能卡。这些优点与其自身的结构密不可分。

M1结构:

M1卡分为16个扇区,每个扇区4块(块0~3),共64块,按块号编址为0~63。第0扇区的块0(即绝对地址0块)用于存放厂商代码,已经固化,不可更改。其他各扇区的块0、块1、块2为数据块,用于存贮数据;块3为控制块,存放密码A、存取控制、密码B。每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。

M1卡运作机理:

连接读写器→寻卡→识别卡(获取卡序列号)→从多卡中选一张卡→向卡中缓冲区装载密码→验证密码→进行读写→关闭连接

即(代码说明)

Open_USB→rf_request→rf_anticoll→rf_select→rf_load_key→rf_authentication→(/a_hex)→rf_read/rf_write→(hex_a)→Close_USB

如果概括来说的话,主要也就四部分开关连接、寻卡、验证密码、读取。

(至于详细程序代码,相信大家自己看过dll说明文档后,自己会明白的,这里就不写了,因为内容多)

M1卡功能模式:

1.寻卡模式:

寻卡模式分三种情况:IDLE模式、ALL模式及指定卡模式(0,1,2 均是int类型,是方法参数,下同)。

0——表示IDLE模式,一次只对一张卡操作;

1——表示ALL模式,一次可对多张卡操作;

2——表示指定卡模式,只对序列号等于snr的卡操作(高级函数才有)【不常用】

也就是说,我们一次也可以同时操作多张卡。

对于多卡操作,其实际真正执行操作的还是一张卡。读写器能识别多张卡的序列号(但注意识别出的顺序是不定的,并且最多也就能识别4张卡,因为卡叠放的厚度太厚,会超出读写器的识别范围),并一一进行操作。

所以由此看出,多卡操作的意义并不大。但我建议大家还是设置为1好了(原因不说了,自己感受吧,其实无所谓)。

2.密码验证模式:

0——KEYSET0的KEYA

4——KEYSET0的KEYB

M1卡可以在验证密码时选择密码类型(A/B)。【其实M1卡有3套密码(KEYSET0、KEYSET1、KEYSET2),共6个密码(用0~2、4~6来表示这六个密码),目的是为了适应不同读写器。而这里我们用的是KEYSET0的2个密码】

M1卡密码机制:

这可以说是M1卡的精髓了,也是M1卡最为复杂的地方,希望大家耐心看完。

(请先看明白M1卡结构)如上所说,在存取控制中每个块都有相应的三个控制位,它们的定义如下:

块0:C10 C20 C30

块1:C11 C21 C31

块2:C12 C22 C32

块3:C13 C23 C33

一个扇区的三个数据块,我们可以利用密码机制对它们分别进行权限控制。数据块(块0、块1、块2)的存取控制如下:

例如:当块0的存取控制位C10 C20 C30=100时,验证密码A或密码B正确后可读;验证密码B正确后可写;不能进行加值、减值操作。

那么M1卡修改密码的方法是rf_changeb3

参数:

icdev:通讯设备标识符

_SecNr:扇区号(0~15)

KeyA:密码A

_B0:块0控制字,低3位(D2D1D0)对应C10、C20、C30

_B1:块1控制字,低3位(D2D1D0)对应C11、C21、C31

_B2:块2控制字,低3位(D2D1D0)对应C12、C22、C32

_B3:块3控制字,低3位(D2D1D0)对应C13、C23、C33

_Bk:保留参数,取值为0

_KeyB:密码B

由上我们看出_B0、_B1、_B2、_B3分别控制块0、块1、块2、块3。

由图我们可知_B0、_B1、_B2的可取值为 0、10、100、110、1、11、101、111。

这里大家一定要注意一点:

不能装载密码到M1卡某一扇区后再更改那扇区的密码(最好连接完读写器后直接更改密码),否则更改密码会失败而冻结扇区。如果不慎这样了,解决的办法是完成一次读写操作,再更改密码。

控制块(块3)的存取控制与数据块(块0、1、2)不同,它的存取控制如下:

_B3的取值与_B0相同。

常用的医院诊疗IC卡技数参数:

容量为8K位EEPrOM;

● 分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位;

● 每个扇区有独立的一组密码及访问控制;

● 每张卡有唯一序列号,为32位;

● 具有防冲突机制,支持多卡操作;

● 无电源,自带天线,内含加密控制逻辑和通讯逻辑电路;

● 工作温度:-20℃~50℃;

● 工作频率:13.56MHZ;

● 通信速率:106KBPS;

● 读写距离:可达10mm(与读写器以及卡天线尺寸有关);

● 数据保存期为10年,可改写10万次,读不限次。

医院诊疗IC卡工作原理:

卡片由一个卷绕天线和特定用途集成电路模块组成。其中,模块由一个高速(106KB波特率)的RF接口。一个控制单元和一个8K位E2PROM组成。读写器向MF1卡发出一组固定频率(13.56MHZ)的电磁波,卡片内有一个LC串联谐振电路,其频率与读写器发射的频率相同,在电磁波的激励下,LC谐振电路产生共振,从而使谐振电容内有了电荷,在这个电容的另一端,接有一个单向导通的

电子泵,将电容内的电荷送到模块存储电容内储存,当所积累的电荷达到2V以上时,此电容可作为电源向模块电路提供工作电压,将卡内数据发射出去或接收读写器的数据。

存储结构:

MF1卡分为16个扇区,每区有4块(块0~块3),共64块,按块号编址为0~63。第0扇区的块0(即绝对地址块0)用于存放芯片商,卡商相关代码,已经固化不可更改。其他各扇区的块0,块1,块2为数据块,用于存贮用户数据;块3为各扇区控制块,用于存放密码A,存取控制条件设置,密码B。各区控制块结构相同,如下所示:

控制属性:

每个扇区的用户密码和存取控制条件都是独立设置的,可以根据实际需要设定各自的密码及存取控制。在存取控制中,每个块都有三个控制位相对应,用以决定某数据块或控制块的读写条件,定义为:"CXxy",见表1所示。

其中CX代表每块控制位号(C1~C3),x代表某块所属扇区号(0~15),y代表该扇区内某块号。例如C1x2 即为x扇区内块2的第1控制位,余此类推。

注:控制位的设置存放在存取控制字节中,见表2所示。

表1:控制位定义"CXxy"

表2:三个控制位在存取控制字节中的位置(注:" _b" 表示取反)

各扇区数据块0~块2的三个控制位以正反两种形式存在于块3的存取控制字节中,它决定了该块的访问权限(例如进行减值及初始化值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。三个控制位在存取控制字节(6~9字节)中的权限如下(阴影区的存取控制为厂商初始值;字节9为备用字节,默认值为69):

注释:表3中,KeyA|B 表示密码A或密码B,Never表示没有条件实现。

表3:数据块的存取控制权限(x=0~15扇区;y=块0,块1,块2)

例如,某区块的3个存取控制位C1xy,C2xy,C3xy=000时(厂商预设的初始值,见阴影区),验证密码A或密码B正确后可读出/可写入/可加值/减值及初始化操作。该初始值主要供制卡和发卡商检测心片功能使用,确认所有读写/加密功能均正常(存取控制初始值"ff078069",请参考"步骤举例"自行验算)后,再依据

使用需要和参照表4表5设置新的存取控制权限值,进行用户数据操作和修改新的用户密码。

再如当某区块0的存取控制位C10,C20,C30的设置均=100时,验证密码A或密码B正确后可读出其数据;只有验证密码B正确后才可允许改写数据;不能进行加值,减值等操作。

以厂商初始值"FF 07 80 69"为例,说明存取控制条件对数据块的影响。初始存取控制默认值(C1x0,C2x0,C3x0=000;C1x1,C2x1,C3x1=000;C1x2,C2x2,C3x2=000;C1x3,C2x3,C3x3=001)和KeyA,KeyB默认值(由厂商提供,通常为:ffffffffffff)。那么块3中,厂商初始的存取控制值如下表所示:表4:块3中厂商初始存取控制值(-号表示需要取反)

如果用户要读到块1的内容,对照表4和查对表3可知,当存取控制C1x1,C2x1,C3x1=000时,必需正确校验KEY A或KEY B后才可允许读取块1的内容,否则,MF1读写器会因校验某区密码出错而无法读取和传送数据!以此类推,用户要进行其它操作时,可根据存取条件,对照表2~4来决定其操作权限。

表5列出了飞利浦公司对MF1卡的8种控制位设置值所对应的存取控制权限

智能射频卡门禁系统方案

智能射频卡门禁管理系统 解 决 方 案 中控科技 https://www.wendangku.net/doc/156762255.html,

前言 随着社会经济的发展,城市面貌日新月异,各种高尚住宅小区如雨后春笋。而怎样满足住户对居住环境日益提高的要求,怎样对小区或大厦进行合理、有效、安全的管理,在现今科技迅速发展的的条件下,必须有一套适合现今发展格局的新的管理方式。 感应卡门禁系统集电脑技术、电子技术、机械技术、磁电技术和非接触式技术于一体,使卡与锁之间实现完整的“对话”功能,以智能来控制门锁的开启,从而开创了门禁管理的新概念。它不仅给管理者提供了更安全、更迅捷、更自动化的管理模式,而且也给使用者带来了极大的方便。 选择最佳门禁系统 选择门禁系统的标准是:第一是品质(以可靠性、稳定性、故障率低衡量);第二是够用(正规厂家的产品一般能满足98%以上的用户需求,标准功能即可,功能不是越多越好,以简单实用为最好); 第三是价格(选择性能/价格比好的产品)。 智能射频卡门禁系统特点和优点: 1、非接触感应卡智能门禁系统的特点 非接触感应卡,使用方便便捷,感应速度快 (0.5秒左右),感应距离根据不同读卡器和感应卡感应距离可以选择 5-80公分. 感应卡便于携带,安全耐用永不磨损. 感应卡的芯片内都有一个只读的识别码,这使得复制成为不可能。而且授权系统密码管理严格,绝无仿冒的可能。如果感应卡遗失,可以及时安全挂失. IC卡与感应器之间无机械接触,避免了由于接触而产生的各种故障,并且提高了卡片的使用寿命。而且由于无裸露的IC 芯片,无需担心芯片脱落、静电击穿、弯曲损伤或油污等因素。整个系统采用质量可靠的进口元器件,并采用多种保护方案,从而保证了系统运行的高可靠性。 抗干扰性强,允许同时多卡操作,能在各种恶劣的工作条件下使用,比磁卡和接触式IC卡更让管理人

Mifare1射频卡操作原理(编程)

Mifare1卡及其读写器ASIC模块之“密码操作”研究与其应用程序开发 关键字:非接触式智能卡 ASIC模块 1、序言 非接触式智能卡已经广泛地应用于各类门禁控制系统,公共交通支付系统,e-purse系统,高速公路不停车收费系统,IBMS(智能大楼管理系统),海关过境身份识别,以及医疗保险系统等等。 非接触式智能卡以其高度安全保密性,通信高速性,使用方便性,成本日渐低廉等而受到广泛使用,给我们的生活质量带来了很大的提高。因此,如何认识、理解智能卡,特别是带有非常神秘色彩的非接触式智能卡,已引起很多智能卡的使用者,包括智能卡专业研发的IT科研人员的极大的兴趣和爱好。笔者在此很愿意将自己多年来在智能卡(接触式智能卡及非接触式智能卡)方面的研究及其软硬件应用开发的经验与大家一同交流和分享,以取得我国金卡工程事业的更进一步的发展。 在此,笔者将以符合ISO/IEC14443TYPEA标准的Mifare1S50系列非接触式智能卡及其读写设备专用IC(ASIC)RC150/170模块为对象,与大家一起就“关于非接触式智能卡及其读写器ASIC模块之‘密码操作’”作一些研究与探讨,并将用标准的Intel-51系列微处理器汇编语言进行实际的应用程序的开发。在笔者曾设计和开发的众多智能卡项目中,本文所给出的应用程序都有着良好的运行效果。 2、非接触式智能卡及其读写器ASIC模块RC150/170 Mifare1S50非接触式智能卡片有着16个Sector(扇区);每个Sector包含4个Block(块);每个Block具有16个byte的存储容量。Sector被定义为Sector0至Sector15;Block被分为Block0至Block3;整个Mifare1S50非接触式智能卡共有64个Block。 Sector0中的Block0记录了该张智能卡的序列号(SerialNumber)以及生产厂商的标志信息等,这些信息已在卡片出厂时固化,不能更改。因此该Block不能再复用为应用数据块。 每个Sector中的Block3被特别用来存放对该Sector中应用块Block0,1,2及其本身Block3进行数据存取的密码及存取权限。整个Mifare1S50非接触式智能卡共有16个Block3。根据绝对地址编址,他们可被编为Block3(在Sector0中),Block7(在Sector1中),Block11(在Sector2中),以及Block63(在Sector15中)等等。 对于某一Sector中的Block3的绝对地址编址可以由下列公式计算得到: Block X=(N+1)*4-1

IC卡和ID卡的基本常识

IC卡和ID卡的基本常识 一、非接触式IC卡 非接触式IC卡又称射频卡,由IC芯片、感应天线组成,封装在一个标准的PVC卡片内,芯片及天线无任何外露部分。是世界上最近几年发展起来的一项新技术,它成功的将射频识别技术和IC卡技术结合起来,结束了无源(卡中无电源)和免接触这一难题,是电子器件领域的一大突破.卡片在一定距离范围(通常为5—10mm)靠近读写器表面,通过无线电波的传递来完成数据的读写操作。 1. 非接触性IC卡与读卡器之间通过无线电波来完成读写操作。二者之间的通讯频为13.56MHZ。非接触性IC卡本身是无源卡,当读写器对卡进行读写操作是,读写器发出的信号由两部分叠加组成:一部分是电源信号,该信号由卡接收后,与本身的L/C产生一个瞬间能量来供给芯片工作。另一部分则是指令和数据信号,指挥芯片完成数据的读取、修改、储存等,并返回信号给读写器,完成一次读写操作。读写器则一般由单片机,专用智能模块和天线组成,并配有与PC的通讯接口,打印口,I/O口等,以便应用于不同的领域。 2. 非接触性智能卡内部分区 非接触性智能卡内部分为两部分:系统区(CDF)用户区(ADF) 系统区:由卡片制造商和系统开发商及发卡机构使用。 用户区:用于存放持卡人的有关数据信息。 3. 与接触式IC卡相比较,非接触式卡具有以下优点: ⑴可靠性高非接触式IC卡与读写器之间无机械接触,避免了由于接触读写而产生的各种故障。例如:由于粗暴插卡,非卡外物插入,灰尘或油污导致接触不良造成的故障。 此外,非接触式卡表面无裸露芯片,无须担心芯片脱落,静电击穿,弯曲损坏等问题,既便于卡片印刷,又提高了卡片的使用可靠性。 ⑵操作方便 由于非接触通讯,读写器在10CM范围内就可以对卡片操作,所以不必插拨卡,非常方便用户使用。非接触式卡使用时没有方向性,卡片可以在任意方向掠过读写器表面,既可完成操作,这大大提高了每次使用的速度。 ⑶防冲突 非接触式卡中有快速防冲突机制,能防止卡片之间出现数据干扰,因此,读写器可以“同时”处理多张非接触式IC卡。这提高了应用的并行性,,无形中提高系统工作速度。 ⑷可以适合于多种应用

RF系列读写器使用说明

RF 系列非接触式 IC 卡读写器
使




RF 系列非接触式 IC 卡读写器使用手册

一. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 二.

RF 系列非接触式 IC 卡读写器简介 ....................................................................................... 3 概述............................................................................................................................................ 3 特性............................................................................................................................................ 3 设备接口.................................................................................................................................... 3 读写器装箱清单 ........................................................................................................................ 4 程序安装.................................................................................................................................... 4 软件............................................................................................................................................ 4 技术指标.................................................................................................................................... 4 库函数说明................................................................................................................................ 5
2.1 函数使用说明.................................................................................................................................. 5 2.2 库函数一览表.................................................................................................................................. 6 2.3WINDOWS 32 位动态库 .................................................................................................................... 7 2.4 库函数使用范例 ............................................................................................................................ 15 2.5 函数错误类型代码 ........................................................................................................................ 15 附录 1 MIFARE ONE 射频卡的特性 ................................................................................................ 16
2

ic卡分类介绍

什么是“磁卡? 磁卡(Magnetic Card),是以液体磁性材料或磁条为信息载体,将液体磁性材料涂覆在卡片上(如存折)或将宽约6-14mm的磁条压贴在卡片上(如常见的银联卡)。 根据ISO7811/2标准规定,第一磁道能存储76个字母数字型字符,并且在首次被写磁后是只读的;第二磁道能存储37个数字型字符,同时也是只读的;第三磁道能存储104个数字型字符,是可读可写的,银行卡用以记录账面余额等信息。三条磁道在卡上的位置在国际标准ISO007811/5中被严格规定。 磁卡一般作为识别卡用,可以写入、储存、改写信息内容,特点是可靠性强、记录数据密度大、误读率低,信息输入、读出速度快。由于磁卡的信息读写相对简单容易,使用方便,成本低,从而较早地获得了发展,并进入了多个应用领域,如金融、财务、邮电、通信、交通、旅游、医疗、教育、宾馆等。 磁条卡技术是在卡存储数据发展过程中使用时间最久的。基本上常用的磁条卡有两种:高磁(HICO)卡以2750或4000 Oersteds的强度进行编码,而低磁(LOCO)卡以300 Oersteds的强度进行编码。 在IC卡推出之前,从世界范围来看,磁卡由于技术普及基础好,已得到广泛应用,但与后来发展起来的IC 卡相比有以下不足:信息存储量小、磁条易读出和伪造、保密性差,从而需要计算机网络或中央数据库的支持等。 什么是“条码卡”? 条码卡(Bar Card),以一组规则排列的条、空及其对应字符组成的条形码记载信息,常见的条码符号是由黑条和白空印刷而成,当光照射到条码符号上时,黑条和白空产生较强的对比度,从而利用条、空对光的不同反射率来识读信息。 条码卡分为一维码和二维码两种。一维码比较常用,如日常商品外包装上的条码就是一维码。它的信息存储量小,仅能存储一个代号,使用时通过这个代号调取计算机网络中的数据。二维码是近几年发展起来的,它能在有限的空间内存储更多的信息,包括文字、图像、指纹、签名等,并可脱离计算机使用。 条码卡制作简便,普通的条码按一定要求打印或复印即可,成本较低,但它的识读设备(特别是二维码的识读设备)比较昂贵。与磁卡和IC卡不同的是,条码卡内的信息不能改写,另外,安全性能差、标准也不统一,这些都限制了它的应用。 “IC卡”是怎么回事? IC卡即集成电路卡(Integrated Circuit Card),是超大规模集成电路技术、计算机技术以及信息安全技术等发展的产物。它将集成电路芯片镶嵌于塑料基片的指定位置上,利用集成电路的可存储特性,保存、读取和修改芯片上的信息。 IC卡的概念是70年代初提出来的,IC卡一出现,就以其超小的体积、先进的集成电路芯片技术、以及特殊的保密措施、和无法被破译及仿造的特点受到普遍欢迎,40年来,已被广泛应用于金融、交通、通讯、医疗、身份证明等众多领域。 按照与外界数据传送的形式来分,IC卡有接触式和非接触式两种。 按照卡内集成电路(嵌装的芯片)的不同,IC卡可分为存储器卡、逻辑加密卡和CPU卡 存储器卡适合于仅以IC卡作为数据的转存介质或有软件加密而不担心被篡改的系统,价格较低;逻辑加密卡通过设置卡上的密码区域来控制卡的读写,价格适中,目前应用数量最大;CPU卡又名“智能卡”(其名称来源于英文名词“Smart Card”),卡的集成电路中带有微处理器,自身就可以进行数据计算和信息处理,同时能够利用随机数和密钥进行卡与设备的相互验证,安全性高。虽然价格稍高一些,但应用前景仍然看好。目前中国人民银行规划的金融卡,国家质量技术监督局规划的组织机构代码证卡,以及劳动和社会保障部规划的社会保障卡采用的都是这种接触式CPU卡。 在众多实力强大的国际级大财团的推动下,智能卡及其行业发展已经在世界范围内形成了一种不可逆转之势。 IC卡具有磁卡和条码卡所无法比拟的许多优点:存储容量大,是磁卡的几倍至几十倍;安全性高,具有防伪造、防篡改的能力;可脱机使用,应用较为灵活。同时,也存在着价格高、抗静电和抗紫外线能力弱等缺点。

M1卡技术手册(nfc)

非接触式IC卡性能简介(M1卡) 一、主要指标 ●容量为8K位EEPROM ●分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位 ●每个扇区有独立的一组密码及访问控制 ●每张卡有唯一序列号,为32位 ●具有防冲突机制,支持多卡操作 ●无电源,自带天线,内含加密控制逻辑和通讯逻辑电路 ●数据保存期为10年,可改写10万次,读无限次 ●工作温度:-20℃~50℃(湿度为90%) ●工作频率:13.56MHZ ●通信速率:106 KBPS ●读写距离:10 cm以内(与读写器有关) 二、存储结构 1、M1卡分为16个扇区,每个扇区由4块(块0、块1、块 2、块3)组成,(我们也 将16个扇区的64个块按绝对地址编号为0~63,存贮结构如下图所示: 数据块0 数据块 1 数据块 2 控制块 3 数据块 4 数据块 5 数据块 6 控制块7 数据块60 数据块61 数据块62 控制块63 2、第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。 3、每个扇区的块0、块1、块2为数据块,可用于存贮数据。

数据块可作两种应用: ★ 用作一般的数据保存,可以进行读、写操作。 ★ 用作数据值,可以进行初始化值、加值、减值、读值操作。 4、每个扇区的块3为控制块,包括了密码A 、存取控制、密码B 。具体结构如下: 密码A (6字节) 存取控制(4字节) 密码B (6字节) 5、每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。存取控制为4个字节,共32位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下: 块0: C10 C20 C30 块1: C11 C21 C31 块2: C12 C22 C32 块3: C13 C23 C33 三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如 进行减值操作必须验证KEY A ,进行加值操作必须验证KEY B ,等等)。三个控制 位在存取控制字节中的位置,以块0为例: 对块0的控制: 字节6 字节7 字节8 字节9 ( 注: C10_b 表示C10取反 ) 存取控制(4字节,其中字节9为备用字节)结构如下所示: 字节6 字节7 字节8 字节9 ( 注: _b 表示取反 )

射频卡水表说明书样本

射频卡水表( DN15-DN50) 使用说明书 冀制00000218 泊头市普惠仪表有限公司 ,

本水表是用来计量流经自来水管道水的体积总量的仪表, 适用于单向、非脉冲水流。智能射频卡( 冷水、热水、纯净水) 水表以自来水行业最常见, 无故障, 普通湿式水表为母体表, 采用国际上最新微功耗, 超大型大规模集成电脑芯片模块, 以高集成化工业手段而设计制造的可靠电子控制器, 配以本公司研发的超低功耗, 大扭距输出的无压损电机控制阀等相结合生产制造的新一代智能化水表, 是集预付费, 自动计费, 报警及防止不当使用等功能于一体的高品质产品。具有计量准确, 性能可靠, 结构先进等特点, 产品性能指标符合建设部CJ/T 133—标准和本企业标准, 主要用于住宅和企业用水的计量与收费工作, 该水表是以自来水公司和房产物业公司等水管部门现代管理的理想计量收费器具。 一、主要技术性能: 1.被测水温: 0o—40oC( 热水表0o—90 oC) 2.水表的公称压力1Mpa 3.流量表: ( 流量范围见下表) 4.水表的最大允计误差: 从包括最小流最Q1至不包括分界流量( Q2) 的低区±5%包括分界流量( Q2) 至包括过载流量( Q4) 的高区±2%。 5.管道的水压度大于0.02 Mpa. 6相对湿度≤90% 7工作电压: 3V

8模块静态功耗 <8 u A , 平均功耗<10 u A 9卡型号:ATMEL-T5557 二、性能特点: ?非接触式射频卡的使用寿命大大提高; ?密闭整体模块可应用于高湿高温环境,防水、尘、静电对电路的损坏; ?电路经优化设计, 抗干扰性能强, 易于维护; ?卡的使用温在-40 到 +85 °C; ?卡内嵌全球唯一64 位序列号, 具有可追溯性。 ?卡内有密码设置和写保护, 保证数据安全; 三、功能介绍: ?水量计量: 采集并存贮机械水表的计量数据, 能够记录剩余水量, 累积充值量、累计用水量。 ?显示功能: 能够显示十种状态中文提示, 四种状态符号提示。 ?报警功能: 两级报警功能, 分为: 显示报警提示和关阀报警提示。 ?查询功能: 经过相关功能卡显示表内计量数据, 并经过卡回抄表内数据。 ?限购功能: 可预设”限购水量”防止用户囤积水量。 ?阀门控制功能: 用户购水用尽时关闭阀门, 重新购水开启阀门。可按用水量自动进行阀门维护。( 默认15 m.3且大致一个月自动维护一次) ;当磁 攻击时关闭阀门。关阀报警时关闭阀门。电源电压低时关闭阀门。 ?退购功能: 可凭专用”退购卡”退还用户水表中的剩余量。 ?防磁攻击: 磁场靠近或采样信号线被剪断时, 将自动关闭阀门。 ?一卡多表: 可经过设置一张用户卡对应3块子表。 ?电池电压检测: 表内备有大容量锂锰电池, 可供水表长期使用; 四、使用说明: 射频卡智能冷水表计量和监控数据是经过水表和液晶显示并用射频卡传递数据, 液晶显示如下图所示:

M1卡(S50)资料讲解

S50非接触式IC卡性能简介(M1) 一、主要指标 ●容量为8K位EEPROM ●分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位 ●每个扇区有独立的一组密码及访问控制 ●每张卡有唯一序列号,为32位 ●具有防冲突机制,支持多卡操作 ●无电源,自带天线,内含加密控制逻辑和通讯逻辑电路 ●数据保存期为10年,可改写10万次,读无限次 ●工作温度:-20℃~50℃(湿度为90%) ●工作频率:13.56MHZ ●通信速率:106 KBPS ●读写距离:10 cm以内(与读写器有关) 二、存储结构 1、M1卡分为16个扇区,每个扇区由4块(块0、块1、块 2、块3)组成,(我们也 将16个扇区的64个块按绝对地址编号为0~63,存贮结构如下图所示: 数据块0 数据块 1 数据块 2 控制块 3 数据块 4 数据块 5 数据块 6 控制块7 数据块60 数据块61 数据块62 控制块63 2、第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。 3、每个扇区的块0、块1、块2为数据块,可用于存贮数据。 数据块可作两种应用: ★用作一般的数据保存,可以进行读、写操作。

★用作数据值,可以进行初始化值、加值、减值、读值操作。 4、每个扇区的块3为控制块,包括了密码A、存取控制、密码B。具体结构如下: 密码A(6字节)存取控制(4字节)密码B(6字节) 5、每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取 控制。存取控制为4个字节,共32位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下: 块0:C10 C20 C30 块1:C11 C21 C31 块2:C12 C22 C32 块3:C13 C23 C33 三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如进行减值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。三个控制位在存取控制字节中的位置,以块0为例: 对块0的控制: 字节7 字节8 字节9 ( 注:C10_b表示C10取反) 存取控制(4字节,其中字节9为备用字节)结构如下所示: 字节6 字节7 字节8 字节9 ( 注:_b表示取反) 6、数据块(块0、块1、块2)的存取控制如下:

射频卡电能表工作原理及其管理系统

射频卡电能表工作原理及管理系统 射频卡用电管理系统 系统介绍: 主要由DF系列多用户集中式电能表、读写器、射频卡、管理中心计算机和管理软件等部分组成。 管理中心计算机与集中式电能表通过读写器、刷卡终端、射频卡进行售电管理。管理中心计算机通过管理软件实现对整个小区能源消耗的现代化物业管理。管理中心计算机与读写器连接,集中式电能表与刷卡终端连接,通过射频卡进行远程无线数据管理。 系统设备: ◆多用户集中式电能表:分户计量、循环显示、体积小、精度高、防窃电、抄表准确便捷、数据长期保存、长寿命设计、抗干扰能力强,且具有防雷电措施等突出特点。 ◆读写器:射频读写器是通过上位机软件对非接触式IC卡进行读、写操作的通讯设备。 ◆该设备配合公司管理软件可完成对电能表售电卡的售电信息写入,操作简捷方便,并采用严格加密措施,真正实现安全用电。 ◆感应距离:3cm以内。 ◆刷卡终端:是通过读取非接触式IC卡中的有效数据与电能表进行通讯的设备。操作简捷、方便,并采用严格加密措施,真正实现安全用电。 ◆射频卡:(非接触式IC卡)通过射频读写器将售电及其他功能卡信息写入卡内,通过射频卡感应终端将非接触式IC卡中的有效数据传输至电能表。起到媒介作用。 ◆中心计算机:Windows2000/xp。对售电信息进行集中管理。 ◆管理软件:对能耗数据进行管理、计算、储存、查询、统计、分析和打印。射频卡工作原理: 射频卡电表又叫非接触式IC卡电能表,非接触式IC卡系统由读写器和非接触式IC卡两部分组成。应用系统通过读写器对卡进行操作;读卡器通过射频信号同步进行近距离通讯,并为卡上芯片提供能量;非接触式IC卡响应读写器的指令,并报告处理的结果。非接触式IC卡通过连接IC芯片的线圈在特定交变磁场中耦合获得高压能量,非接触式IC卡的读写器通过发射线圈发射交变强磁场,给予IC卡能量,通过磁场的断、续编码写入数据,并通过线圈感应IC卡发生的磁场阅读IC卡发来的数据;IC卡通过交变磁场获得能量,通过检验磁场的断、续获得读写头写来的数据,并按设定的模式编码、调制,再向读写头发出数据。

无线射频识别(RFID)技术简介

无线射频识别(RFID)技术简介 本文介绍了无线射频识别(RFID)技术的工作原理、系统组成、发展史,给出了RFID自动识别术语解释以及RFID技术应用于各个领域所对应的频段及产品特点。 一、概述 RFID是射频识别技术的英文(Radio Frequency Identification)的缩写,射频识别技术是20世纪90年代开始兴起的一种自动识别技术,射频识别技术是一项利用射频信号通过空间耦合(交变磁场或电磁场)实现无接触信息传递并通过所传递的信息达到识别目的的技术。 无线射频识别技术(RFID)已经成为一个很热门的话题。据业内人士预测,RFID技术市场将在未来五年内在新的产品与服务上带来30至100亿美金的商机,随之而来的还有服务器、资料储存系统、资料库程序、商业管理软件、顾问服务,以及其他电脑基础建设的庞大需求。或许这些预测过于乐观,但RFID将会成为未来的一个巨大市场是毫无疑问的。许多高科技公司正在加紧开发RFID专用的软件和硬件,这些公司包括英特尔、微软、甲骨文、SAP和SUN,而最近全球最大的零售商沃尔玛的一项"要求其前100家供应商在2005年1月之前向其配送中心发送货盘和包装箱时使用RFID技术,2006年1月前在单件商品中使用这项技术"的决议,把RFID再次推到了聚光灯下。因此可以说无线射频识别技术(RFID)正在成为全球热门新科技。 二、射频识别技术发展历史 从信息传递的基本原理来说,射频识别技术在低频段基于变压器耦合模型(初级与次级之间的能量传递及信号传递),在高频段基于雷达探测目标的空间耦合模型(雷达发射电磁波信号碰到目标后携带目标信息返回雷达接收机)。1948年哈里斯托克曼发表的"利用反射功率的通信"奠定了射频识别射频识别技术的理论基础。 射频识别技术的发展可按十年期划分如下: 1940-1950年:雷达的改进和应用催生了射频识别技术,1948年奠定了射频识别技术的理论基础。 1950-1960年:早期射频识别技术的探索阶段,主要处于实验室实验研究。 1960-1970年:射频识别技术的理论得到了发展,开始了一些应用尝试。 1970-1980年:射频识别技术与产品研发处于一个大发展时期,各种射频识别技术测试得到加速。出现了一些最早的射频识别应用。 1980-1990年:射频识别技术及产品进入商业应用阶段,各种规模应用开始出现。 1990-2000年:射频识别技术标准化问题日趋得到重视,射频识别产品得到广泛采用,射频识别产品逐渐成为人们生活中的一部分。

射频卡基础知识介绍

射频卡基础知识介绍 本文主要介绍了射频卡的定义、特点、标准和分类。 一、射频卡知识 射频卡(简称RF卡)是一种以无线方式传送数据的集成电路卡片,它具有数据处理及安全认证功能等特有的优点。 ★RF卡在读写时是处于非接触操作状态,避免了由于接触不良所造成的读写错误等误操作,同时避免了灰尘、油污等外部恶劣环境对读写卡的影响。 ★操作简单、快捷-RF卡采取无线通迅方式,使用时无方向要求,所以使用起来十分方便。 ★防冲突-RF卡中存有快速防冲突机制,能防止卡片之间出现数据干扰,因此终端可以同时处理多张卡片。 ★便于一卡多用:RF卡中有多个分区,每个分区又各自有自己的密码,所以可以将不同的分区用于不同的应用,实现一卡多用。 与接触式IC卡相比较,射频卡具有以下优点: ★可靠性高-卡与读写器之间无机械接触,避免了由于接触读写而产生的各种故障。例如:由于粗暴插卡、非卡外物插入、灰尘、油污导致接触不良等原因造成的故障; 卡表面无裸露的芯片,无须担心芯片脱落、静电击穿,弯曲损坏等问题; ★操作方便、快捷-由于非接触通讯,读写器在1cm-10cm范围内就可以对卡片操作,所以不必象IC卡那样进行插拔工作;非接触卡使用时没有方向性,卡片可以任意方向掠过读写器表面,可大大提高每次使用的速度; ★防冲突-射频卡中有快速防冲突机制,能防止卡片之间出现数据干扰,因此读写器可以"同时"处理多张非接触式射频卡; ★应用范围广-射频卡的存储器结构特点使它一卡多用;可应用于不同的系统,用户根据不同的应用设定不同的密码和访问条件; ★加密性能好-射频卡的序列号是唯一的,制造厂家在产品出厂前已将此序列号固化,不可再更改; 射频卡与读写器之间采用双向验证机制,即读写器验证射频卡的合法性,同时射频卡也验证读写器的合法性;处理前,卡要与读写器进行三次相互认证,而且在通讯过程中所有的数据都加密。此外,卡中各个扇区都有自己的操作密码和访问条件。

外文翻译(射频卡)

开放实验室IC卡管理系统的设计 支德瑞,赵斌,王瑞 摘要:实验室IC射频卡管理系统设计基于Atmel公司生产的AT89C52微处理器。本文从安全的角度介绍了影响IC射频读写系统的硬件环境,整个IC射频卡读写设备的分析和设计,以及保密性和系统的稳定性。 Ⅰ.介绍 随着高校实验室不断的建设和发展,一个教和学之间的重要矛盾就出现了。一方面,由于扩张实验设备和管理实验室的落后,开放时间相对越来越少,另一方面,即使实验室和设备数量的增加,实验室助理也不能一天24小时值班,因此导致那些参考资料最大化的浪费[1]。基于实验室的现状,本文设计的非接触式IC 卡管理系统,可以提高实验室设备的利用率,减轻实验室助理劳动强度,同时保证实验室的好处设备投资。 该系统的管理功能包括:1、FR卡阅读模式,可以扩大的多种用途卡;2、液晶显示器各种cf提示消息;3、语音提示功能;4、让键盘输入信息;5、采用六组时间时钟;6、单机器可以满足每月共800人正常工作日的记录,7、在连续两个或更多倍十秒的时间内,不断重复相同的卡号是不允许的;8、RS232和RS485串行接口[2]。 Ⅱ.硬件设计 系统的硬件设计是一个基于AT89C52单片机的智能卡读写设备,由微机和实现串口读写设备的智能卡组成,这两个部分通过RS232和RS485通信。根据电路的基本要求,框图 系统的功能模块理论如图1所示: 图1:系统理论框图 当系统需要实验室管理卡片能够扩大成“多才多艺”的射频卡时,需要选择非接触式读卡器射频芯片,8192位的存储容量可以分区和管理16个用户单独使用,每个分区的存储容量为500位[3]。所使用的非接触式读卡器采用芯片MFRC500的读写过程,其功能包括:调制、解调、产生射频信号,安全管理和防冲突机制。 A.键盘显示部分 系统使用4×4键盘,并允许通过键盘手动输入管理数据,目的是防止

射频卡协议ISO14443- 全文中文

中国金融集成电路(IC)卡与应用无关的非接触式规范 中国金融集成电路(IC)卡标准修订工作组 二零零四年九月

目次 1 范围 (1) 2 参考资料 (2) 3 定义 (3) 3.1 集成电路Integrated circuit(s)(IC) (3) 3.2 无触点的Contactless (3) 3.3 无触点集成电路卡Contactless integrated circuit(s) card (3) 3.4 接近式卡Proximity card(PICC) (3) 3.5 接近式耦合设备Proximity coupling device(PCD) (3) 3.6 位持续时间Bit duration (3) 3.7 二进制移相键控Binary phase shift keying (3) 3.8 调制指数Modulation index (3) 3.9 不归零电平NRZ-L (3) 3.10 副载波Subcarrier (3) 3.11 防冲突环anticollision loop (3) 3.12 比特冲突检测协议bit collision detection protocol (3) 3.13 字节byte (3) 3.14 冲突collision (3) 3.15 基本时间单元(etu)elementary time unit(etu) (3) 3.16 帧frame (3) 3.17 高层higher layer (4) 3.18 时间槽协议time slot protocol (4) 3.19 唯一识别符Unique identifier(UID) (4) 3.20 块block (4) 3.21 无效块invalid block (4) 4 缩略语和符号表示 (5) 5 物理特性 (8) 5.1 一般特性 (8) 5.2 尺寸 (8) 5.3 附加特性 (8) 5.3.1 紫外线 (8) 5.3.2 X-射线 (8) 5.3.3 动态弯曲应力 (8) 5.3.4 动态扭曲应力 (8) 5.3.5 交变磁场 (8) 5.3.6 交变电场 (8) 5.3.7 静电 (8) 5.3.8 静态磁场 (8) 5.3.9 工作温度 (9) 6 射频功率和信号接口 (9) 6.1 PICC的初始对话 (9) 6.2 功率传送 (9) 6.2.1 频率 (9)

TEMIC系列射频卡开发指南

TEMIC系列射频卡开发指南 一.开发设计简介: TEMIC系列射频卡产品包括E5550、E5560卡和U2270B基站芯片。`在开发过程中由开发商自行设计基站发射、接收电路。由于U2270B基站芯片只需少量的驱动电路,并且具有多种供电模式。这给用户以极大的简便性和灵活性。用户可以根据不同的应用要求快速、简便的设计出不同特点的基站电路。用户仍然需要绕制基站天线,一般使用铜制漆包线绕制直径3CM、100圈的线圈即可。这些特点要求开发射频卡应用软件的同时还要设计基站发射电路。 二.设计目标: 1.硬件设计: 根据应用环境(供电条件、功耗要求)的需要设计发射基站电路。绕制合适的天线线圈,要求达到要求的频率特性。设计单片机控制接口电路对基站电路进行控制。2.软件设计: 根据设计电路的约定设计射频卡读写程序,要求能够对射频卡进行完备操作(读数据、写数据、加密控制等),并能够提供简便易用的编程接口(函数封装)。设计单片机与PC机的通讯程序,设计通讯和命令格式约定等协议。在PC端还要设计应用程序接口(动态连接库.DLL)供上层应用程序调用。 三.实现: 1.硬件实现: E2270B支持两种供电方式。一种为+5V直流电源供电,另一种为汽车用+12V电池供电,并且E2270B还具有电压输出功能可以给微处理器或其他外围电路供电。此外,对E2270B还有省电模式和STANDBY控制可选,所以设计基站电路时应中和以上功能的不同要求,设计基站的外围电路。这里只对几个常用控制功能的实现加以说明。 A.省电模式: 当射频卡系统应用于汽车、门禁等领域如果对电路的耗电量加以控制(射频信号发射的功耗是远远大于接触式IC卡的),可以有效的节省能耗延长内置电池的寿命。 在需要降低功耗的领域可以在无卡检测的过程中间断的打开和关闭射频输出(E2270B 的CFE 脚)。也可以使卡处于STANDBY模式(控制U2270B的STANDBY脚)这样可以极大的降低基站的耗电量。此外用户也可以使用外加检测电路的方法如:光电管、红外检测等低耗电手段来控制基站的工作这样可以得到很好的省电要求。 B.串行通讯: 假设射频卡读写器为PC机的外围设备,读写器与微机的通讯需要通过串行口进行。根据需要用户可以选择使用各种串行接口电路。这里假设使用RS232串行接口电路。 C.电路原理图:

最新125KHz射频卡读写器动态连接库开发使用说明

125K H z射频卡读写器动态连接库开发使用 说明

125KHz 射频卡读写器动态连接库开发使用说明 第一部份:读写器初始化函数。 函数名:int WINAPI Open_Serial_Port(short int PortName,long DataRate) 功能:初始化与读写卡器的通讯.新版本读写器,支持Open_Device函数调用。可以调用Open_Device函数,自动搜索连接的串口设备。并且支持串口号到COM32,所以建议使用Open_Device函数替代该函数。 入口参数:PortName是指向通讯口名字的指针. 通讯口名字可为: 1:COM1 2:COM2 3:COM3 4:COM4 DataRate设置通讯波特率。(取值如下:) 9600 19200 38400 28800 57600 115200 返回值:函数返回‘0’表示操作成功,返回其他值说明执行错误。(详细错误信息见错误信息说明 说明:此函数完成通讯口的初始化。在进行一切读写卡的操作之前必须调用此函数。 必须和ClosePort成对使用。读写器使用19200的波特率!!

参照: 函数名:int WINAPI Close_Serial_Port(short int PortName) 功能:关闭用OpenPort打开的通讯口,结束通讯。 入口参数:PortName是指向通讯口名字的指针 通讯口名字可为: 1:COM1 2:COM2 3:COM3 4:COM4 返回值:函数返回‘0’表示执行正确,返回其他值则执行错误(详细错误说明见错误信息说明 说明:完成通讯口的关闭。在结束读写卡程序时必须调用此函数。必须和OpenPort 成对使用。在最新的版本中该函数的参数没有意义,可以是 任何值,但不能省略。函数只是关闭当前使用的串口。 参照:OpenPort, SelectPort, PowerOn, PowerOff, 一般函数的返回值 函数名:int WINAPI Open_Device() 功能:自动检测连接的设备,检测到以后返回正确,否则提示错误。 参数:无 返回值:函数返回‘0’表示执行正确,返回其他值则执行错误(详细错误说明见错误信息说明。 参照:OpenPort, SelectPort

各种卡类型介绍

1.磁卡(Magnetic Card),是以液体磁性材料或磁条为信息载体,将液体磁性材料涂覆在卡 片上(如存折)或将宽约6-14mm的磁条压贴在卡片上(如常见的银联卡)。 根据ISO7811/2标准规定,第一磁道能存储76个字母数字型字符,并且在首次被写磁后是只读的;第二磁道能存储37个数字型字符,同时也是只读的;第三磁道能存储104个数字型字符,是可读可写的,银行卡用以记录账面余额等信息。三条磁道在卡上的位置在国际标准ISO007811/5中被严格规定。 磁卡一般作为识别卡用,可以写入、储存、改写信息内容,特点是可靠性强、记录数据密度大、误读率低,信息输入、读出速度快。由于磁卡的信息读写相对简单容易,使用方便,成本低,从而较早地获得了发展,并进入了多个应用领域,如金融、财务、邮电、通信、交通、旅游、医疗、教育、宾馆等。 磁条卡技术是在卡存储数据发展过程中使用时间最久的。基本上常用的磁条卡有两种:高磁(HICO)卡以2750或4000 Oersteds的强度进行编码,而低磁(LOCO)卡以300 Oersteds的强度进行编码。 在IC卡推出之前,从世界范围来看,磁卡由于技术普及基础好,已得到广泛应用,但与后来发展起来的IC卡相比有以下不足:信息存储量小、磁条易读出和伪造、保密性差,从而需要计算机网络或中央数据库的支持等。 2.什么是“条码卡” 条码卡(Bar Card),以一组规则排列的条、空及其对应字符组成的条形码记载信息,常见的条码符号是由黑条和白空印刷而成,当光照射到条码符号上时,黑条和白空产生较强的对比度,从而利用条、空对光的不同反射率来识读信息。 条码卡分为一维码和二维码两种。一维码比较常用,如日常商品外包装上的条码就是一维码。它的信息存储量小,仅能存储一个代号,使用时通过这个代号调取计算机网络中的数据。二维码是近几年发展起来的,它能在有限的空间内存储更多的信息,包括文字、图像、指纹、签名等,并可脱离计算机使用。 条码卡制作简便,普通的条码按一定要求打印或复印即可,成本较低,但它的识读设备(特别是二维码的识读设备)比较昂贵。与磁卡和IC卡不同的是,条码卡内的信息不能改写,另外,安全性能差、标准也不统一,这些都限制了它的应用。 3.“IC卡”是怎么回事 IC卡即集成电路卡(Integrated Circuit Card),是超大规模集成电路技术、计算机技术以及信息安全技术等发展的产物。它将集成电路芯片镶嵌于塑料基片的指定位置上,利用集成电路的可存储特性,保存、读取和修改芯片上的信息。 IC卡的概念是70年代初提出来的,IC卡一出现,就以其超小的体积、先进的集成电路芯片技术、以及特殊的保密措施、和无法被破译及仿造的特点受到普遍欢迎,40年来,已被广泛应用于金融、交通、通讯、医疗、身份证明等众多领域。 按照与外界数据传送的形式来分,IC卡有接触式和非接触式两种。 按照卡内集成电路(嵌装的芯片)的不同,IC卡可分为存储器卡、逻辑加密卡和CPU 卡—— 存储器卡适合于仅以IC卡作为数据的转存介质或有软件加密而不担心被篡改的系统,价格较低;逻辑加密卡通过设置卡上的密码区域来控制卡的读写,价格适中,目前应用数量最大;CPU卡又名“智能卡”(其名称来源于英文名词“Smart Card”),卡的集成电路中带有微处理器,自身就可以进行数据计算和信息处理,同时能够利用随机数和密钥进行卡与设备的相互验证,安全性高。虽然价格稍高一些,但应用前景仍然看好。目前中国人民银行规划的金融卡,国家质量技术监督局规划的组织机构代码证卡,以及劳动和社会保障部规划的社会保障卡采用的都是这种接触式CPU卡。

射频卡接口文档

射 频 卡 接 口 文 档 一、接口电路 读写控制器采用UAR T 标准SCI 异步串口,经过芯片MAX232,将电平转换为RS-232电平后,接入PC 机。电路图如下: C 25105C 0 C C 26 C 28 R XD T X 二、接口协议: 通讯格式: 数据包长度L(1byte) 命令字C(1byte) 数据包D(L-1bytes) 通讯方向: -> 下位机送给上位机 <- 上位机送给下位机 IC 卡读写器Demo 程序: 1) 启动 <- 02 0B 0F (02为长度,0B 为命令字,测试凤鸣器,0F 凤鸣器响的时间) -> 01 00 (01为长度,00为测试成功) 2) 寻卡 <- 02 02 26 (02为命令字,26为RegMfOutSelect) -> 03 00 04 00 (00为命令成功代码,04表示Mifare One 卡) <- 02 0B 0F -> 01 00 3) 防冲突 <- 01 03 (03为命令字) -> 05 00 52 00 75 7A (52 00 75 7A 为卡号CardSerialNo) <- 02 0B 0F -> 01 00

4) 选择 <- 01 04 (04为命令字) -> 03 00 80 00 <- 02 0B 0F -> 01 00 5) 终止 <- 01 01 (01为命令字) -> 01 00 <- 02 0B 0F -> 01 00 6) 参数设置 <- 01 0C (0C为命令字) -> 01 00 7) 密码下载(扇区1密码为12个F) <- 09 06 60 01 FF FF FF FF FF FF (06为命令字,60为PICC_AUTHENT1A(61为PICC_AUTHENT1B),01为扇区号,12个F为密码) -> 01 00 <- 02 0B 0F -> 01 00 8) 数据读(扇区1块0块1块2) <- 02 02 52 (02为命令字,52为PICC_REQALL) -> 03 00 04 00 (04为RegFIFOLength) <- 01 03 (03为命令字) -> 05 00 52 00 75 7A (52 00 75 7A为卡号) <- 01 04 (04为命令字) -> 03 00 08 00 <- 04 05 60 01 04 (05为命令字,60为PICC_AUTHENT1A(61为PICC_AUTHENT1B),01为扇区1,04为RegFIFOLength) -> 01 00 <- 02 08 04 (08为命令号,04为块号) -> 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (16个00为数据) <- 02 08 05 (08为命令号,05为块号) -> 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (16个00为数据) <- 02 08 06 (08为命令号,06为块号) -> 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (16个00为数据) <- 02 08 07 (08为命令号,07为块号) -> 11 00 00 00 00 00 00 00 ff 07 80 69 ff ff ff ff ff ff (第一个00为返回代码,后面6个00为密码A,ff 07 80 69为控制位,后面6个ff为密码B) <- 02 0B 0F -> 01 00 9) 数据写(扇区1块0块1块2) <- 12 09 04 12 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (09为命令字,04为块号,12开始的16个字节为要写的数据) -> 01 00

相关文档