基于RC522的非接触式IC卡读卡器设计(含程序)

您所在的位置:网站首页 非接触式ic卡读取方式 基于RC522的非接触式IC卡读卡器设计(含程序)

基于RC522的非接触式IC卡读卡器设计(含程序)

2024-07-12 07:52| 来源: 网络整理| 查看: 265

1、中北大学2016届毕业设计说明书1 绪论11 课题的研究背景工业3.0将世界带入信息化的时代,信息技术的发展日新月异,一个以电子商务为主要特征的经济时代成为主要潮流,智能射频卡是一种将用户数据最快捷地送入到环球信息互联网并获得信息的最有用的工具,智能IC卡成为了人们身份识别和实现电子支付的手段,影响了我们生活工作的方式。智能IC卡与普通磁卡对比具有更高的安全性,所以,对智能IC卡的功能进行研究是非常有意义的。智能IC卡,又是CPU卡。顾名思义, 这种卡片上集成了存储器、通信接口及CPU,具有存储数据、对外交流和数据处理的能力,因此,又是一片卡上的单片机系统。为了使这一系统中的硬件和软件资源充分

2、得到利用, 卡上存放了进行数据读写和安全通信的协议,以及管理这些程序的Chip Operating system卡上操作系统。这操作系统是按照IC卡性能特征而专门设计的操作系统,它极大地不同于计算机上常见的DOS和WINDOWS 等操作系统,IC 卡存储器的容量大小和CPU的性能的限制着Chip Operating system卡上操作系统。主要功能是:控制IC卡与读卡器的数据交流;管理IC卡上各种存储器;在IC卡内执行读写器发来的各种操作命令。有了CPU与COS系统,成就了智能IC卡。所以,智能射频卡具有超强的管理性能,提供很高的数据安全性和可靠性1。1.2 非接触式IC卡1.2.1 非接触

3、式IC卡的简介非接触式IC卡又称射频卡,由IC芯片、感应天线组成,封装在一个标准的PVC卡片内,芯片及天线无外露部分2。它是全球上最近发展成熟的一项技术,射频识别技术和IC卡技术被成功地结合起来,解决了无源和非接触这一难题,无源即卡中没有电源,这是电子科学领域的一大突破2。卡片接近读写器天线产生电磁场的一定空间范围 (通常为50100mm),通过电磁波的发送来完成数据的读写操作。1.2.2 非接触式IC卡的特点(1)操作快捷卡与读卡器之间的通讯是非接触的。不用定向使用和插拔卡。操作时,卡也可以不用拿出,可以放在钱夹、裤子口袋中,极大加快了刷卡速度。同时,卡与读卡器进行通信时的载波频率较高,卡内

4、芯片可以在较高的频率时钟下工作,提高了二者的通信速率3。(2)高抗干扰性射频卡具有防冲撞机制,读卡器可以同一时间读写多张卡片,并且不会导致卡片之间产生数据干扰,用算法逐一选定一张卡,相当于读卡器添加了“并行”处理功能。(3)具有多种工作距离目前,IC卡的工作距离有好几米的远距离IC卡,可用于车库门禁收费系统中,又有工作距离为几厘米、可作为电子支付的近距离IC卡,使得应用灵活多变。(4)高可靠性非接触式IC卡与读卡器之间无机械接触,不会产生由接触通信而导致的各种故障,同时,无需担心由于触点残损或金属生锈而导致卡片接触不良4,增强了通信的可靠性,增加了读卡器和卡的寿命。而且尘土、潮气和震动的干扰不

5、会影响无线电磁波,使得非接触式IC卡在多变的环境下使用。(5)高安全性厂商在产品投入批量生产之前,将卡的卡号一次性写入第一个存储区的块0中,以后不可再更改,保证此的序列号是唯一的。读写前射频卡与读写系统要进行三次应答认证,并且通信过程会产生随机数和加密的数据,防止各种破解和篡改,卡内每个存储区的访问密码和条件都不同。1.2.3 非接触式IC卡的发展趋势随着非接触式IC卡的广泛应用与迅速发展,从目前看来,非接触式IC卡主要有以下几个发展趋势:(1)大容量“一卡多用”的新功能处于新的阶段,这种功能使得目前卡内16K的存储容量远远不能满足要求。将来用户只用带着的一张具有多个功能IC卡,既能成为身份证

6、和护照,又可以当做电子钱包、工作证,能存储个人简历,因此,研发更大卡内存储器的容量变得重要。除了目前已经广泛使用的E2PROM存储器,一些新的存储器技术也正在开发,列如Flash技术和铁电技术,未来IC卡行业使用的主要存储器极大可能是铁电存储器(FeRAM)4。(2)更强的处理能力IC卡在日常生活的普及,相关技术迅速发展,我们需要一张具有更强的处理能力的IC卡,有两种增强处理能力的方法:其一是增加具有多样寻址方式的汇编指令,它能加快寻找有效数据的地址的速率,减少指令译码的工作量;二是增加数据总线位数到32位,同时还可以提高内部时钟频率从5MHz到10MHz。(3)低功耗无论非接触式IC卡的是有

7、源还是无源,低压低功耗设计对卡内芯片都是非常重要。可以使用新型低功耗电池,达到增加电源提供给IC卡的时间,相当于增加了卡的使用时间;可以增加无源非接触式IC卡的工作距离,远距离卡在通信效率和快捷性上都超过了近距离卡,远距离低功耗成为非接触式IC卡发展的必然趋势4。(4)发展复合式IC卡复合式卡的意思是双界面卡,接触式和非接触式的通信工作方式集成在一张卡上,也就是一卡两用,所以在结构上既有天线也有触点,使用起来更加灵活多变。如今大多数国际大企业都成功开发并开始使用复合式卡。1.3 非接触式IC卡读卡器发展状况现在,由于应用的场合不同,国内外出现大同小异的非接触式IC卡读卡器,有读卡器模块、便携式

8、读卡器、高低频读卡器、双频标签读卡器、微波读卡器等各种各样的产品5。这些产品有适合读写的距离大大不同。但都有一个共同的特征,各种产品之间的区别不大,同质化严重,性能也相似,结构上都是读卡器芯片结合单片机,而并没有核心技术,缺乏成套技术的自主产权。国外公司手中拥有读卡器的读卡器芯片的核心技术的控制权,在整个读卡器市场的利润,国外公司如TI、NXP等芯片厂商占绝大部分。随着市场的发展,这些国外公司又同时在加强对整个非接触式IC卡技术的掌控,却有新的实力雄厚的ST(意法半导体)公司加入这一行,许多公司也觊觎这一迅速发展的市场。TI和NXP公司牢牢控制着市场的主动权,提供从读卡模块、读卡器、读卡芯片及

9、系统应用等一整套设备及服务。令人欣慰的是,我国在这项技术的研究方面发展迅猛,在IC卡身份识别技术研究及产品研发方面,我国已经能够独立开发微波、低频和高频波的电子标签,拥有系统集成能力及读写器的技术。1.4 课题的设计内容非接触近距离识别技术主要研究基于射频原理的非接触IC卡识别技术,具有操作快捷便利、可靠性高、安全性好、寿命长、防伪性好、抗干扰能力强等优点,被广泛应用于各种身份识别、收费系统中。本次研究将掌握非接触式IC卡读卡器的原理,实现对非接触式IC卡的读写,能够正确读取IC卡的序列号及读卡用户信息,并通过计算机将信息显示出来。2 非接触式IC卡Mifare 1 S50技术支持2.1 Mi

10、fare 1 S50简介MIFARE 1 s50是非接触智能IC卡。其通信协议符合ISO/IEC 14443A,通讯层(MIFARE RF 接口)符合ISO/IEC 14443A标准的第2和第3部分。其安全层支持域检验的CRYPTO1数据流加密。在MIFARE卡结构中,芯片与一个几匝的天线线圈相连接,并封装到塑料中,制作了一个无源的近距离卡,不需要电池。当卡接近读写器天线时,进入带有能量的电磁场,高速的RF通讯接口将以106 kBit/s 的速率传输数据6。图2.1 Mifare 1 s50卡2.1.1 Mifare 1 S50的特性(1) MIFARE RF 接口 (ISO/IEC 1444

11、3 A) 非接触数据通信并提供能量(无需电源) 通信距离:大约100mm (取决于天线尺寸匝数) 工作频率:13.56 MHz 数据传输速率:106 kbit/s 高度数据安全性:16位CRC,奇偶校验,位编码,位计数 多卡防冲撞 典型票务交易: 100 ms(2) EEPROM 1 Kbyte,分为16个区,每区4个块,每块16字节。 用户自定义存储块的读写条件 数据可存储长达10年 可重复写入10万次(3) 安全性安全的重点是防盗窃。相互随机数和应答认证、数据加密和报文鉴别检查和,防止各种破解和篡改,使其更适于票务应用。不可更改的序列号,保证了每张卡的唯一性7。 相互三轮应答认证(ISO/

12、IEC DIS9798-2) 射频通道数据加密 每个区的尾块有两个密钥,按应用场合不同密钥分级 每张卡的序列号唯一 在通信过程中以发送密钥保护对存储区的访问权2.1.2 结构功能说明图2.2 Mifare卡内部结构图2.3 Mifare卡的功能说明RF接口: 调制解调器 检波器 时钟发生器 上电复位 稳压器防冲突:一一选定通信范围内的几张卡,然后先后操作。认证:在对任意存储器的存储块进行读写操作之前得先通过认证,必须各个存储区指定的密钥相匹配才能获得访问资格。 控制和算术逻辑单元:写入特定的冗余格式的数据,可以读写、加减。EEPROM接口加密单元:每次数据交换的 CRYPTO1 数据流都进行加

13、密,防止数据被非法盗窃。EEPROM: 1 KB,分16区,每区4块。每一块有16字节。2.1.3 存储区结构1024 x 8 bit EEPROM存储器分为16区,每区4块,每块16字节。 在擦处后的状态下,EEPROM的单元读为逻辑“0”,写后的状态下读为“1”。表2.1 存储区扇区结构块内字节编号扇区块0123456789ABCDEF说明153KEY A控制位KEY B扇区15尾块2数据1数据0数据143KEY A控制位KEY B扇区14尾块2数据1数据0数据:13KEY A控制位KEY B扇区1尾块2数据1数据0数据03KEY A控制位KEY B扇区0尾块2数据1数据0制造商占用块(1

14、)制造商占用块第1个区的第1个块(块0)。它含有卡的序列号、检查字节和制造商数据。由于安全和系统要求,此块只能由制造商在生产过程进行一次编程。用户对块0只能进行只读,前4个字节是卡的序列号,此值唯一。图2.4 块0的存储结构(2)数据块各区均有3个16字节的块用于存储数据,除区0只有两个数据块以及一个只读的厂商代码块。数据块可以通过读写控制位设置为: 读写块,比如用于非接触门禁系统,存储用户资料。 数值块,可以加减,可作电子钱包的用途。在进行任一数据块操作之前,必须先通过认证环节。此次研究我只使用读写块功能,用于存储用户的信息,我将自己的名字存储到0区的块1中。(3)尾块各区都有一个尾块,存有

15、:密钥A和B(可选),读块时返回逻辑“0”。该区四个块的读写条件,存储在字节6至9 。读写控制位也指定了数据块的类型(读写块或数值块)。每张卡的密钥A的默认密码是6个字节的“FF”。如果不需要密钥B,块3的最后6字节可以用作数据字节,尾块的字节9可用于用户数据,因为此字节享有与字节6、7、8相同的读写权限7。表2.2 尾块的存储结构字节号0123456789101112131415说明密钥A读写条件密钥B(可选)2.2 通信原理图2.5 通信流程图读写器发出或根据commandReg寄存器里得到的命令,按照对应区访问条件,再由数字控制单元来处理。2.2.1 寻卡(REQUEST)读卡器向所有在

16、天线范围内未进入休眠状态的卡发出的请求(0x26)命令,进入电磁场的卡被唤醒后,发送请求应答码(ATQA 符合ISO/IEC 14443A)。2.2.2 防冲突循环(ANTICOLL)在防冲突过程中,读回一张卡的序列号。若在读卡器的通信范围内同时有几张卡,这过程可以通过唯一序列号一一选定,并进行下一步操作。没被选定的卡转入待命状态,等待新的请求命令。2.2.3 选卡(SELECT CARD)然后选定卡片,得到校验码,将2个字节的卡片类型、4个字节的序列号和1字节的校验码进行CRC计算,将其发送给卡片,通信成功,则返回SAK(选择确认)SAK 1字节+2字节CRC校验(0x18(24)共3个字节

17、)。2.2.4 三轮认证(3 PASS AUTHENTICATION)选卡后,读写器指定后续读写的存储器位置,并用相应密钥进行三轮认证8。认证成功后,所有的存储器操作都是加密的。图2.6 三轮认证的流程图认证过程:A环:卡片向读卡器发送一个随机数据RB;B环:读卡器发出一组携带随机数据RA的令牌数据TOKEN AB;C环:当卡片收到令牌数据TOKEN AB后,对TOKEN AB进行解密并得到RB,校验得到的RB与A环中发出的RB是否相同;D环:若校验得到的RB与A环中发出的RB相同,则卡片再次向读卡器发出令牌数据TOKEN BA;E环:读卡器收到令牌数据TOKEN BA后,对TOKEN BA进

18、行解密并得到RA;校验得到的RA与B环中发出的RA是否相同。如果以上的每一个环节都能顺利进行,每次校验结果都相同,则整个的认证过程将成功。2.3 存储器读写在此强调,必须先依次通过防冲突和密钥认证过程,才能进行存储器操作。先把该区的访问条件设置好了,区块才会执行相对应的操作。表2.3 存储器操作说明存储器操作操作说明使用块型读读存储器块读写、数值和尾块写写存储器块读写、数值和尾块增值增加块的内容,并将结果存入内部寄存器数值减值减少块的内容,并将结果存入内部寄存器数值转存将内部寄存器内容写入块中数值恢复将块中内容写入内部寄存器数值2.3.1 读写条件对该区块是读是写需要设置3个控制位,并以原码和

19、反码格式存放在每个区的尾块中。这3个读写控制位还控制密钥A和B的访问权限。如果知道正确的密钥,并且对应读写条件许可,读写条件是可以修改的9。表2.4 控制位对块的影响读写控制位有效命令块说明C13 C23 C33read, write3尾块C12 C22 C32read, write, increment, decrement, transfer, restore2数据块C11 C21 C31read, write, increment, decrement, transfer, restore1数据块C10 C20 C30read, write, increment, decrement,

20、transfer, restore0数据块 在表2.4中访问条件的每一位都用符号来表示,其中C13,C23,C33用来控制本区块3的访问条件;C1X,C2X,C3X(X=0-2)用来控制本区块0-块2的访问条件8。在每一次读写存储区时,存储条件必须正确。如果发现是错误的,会锁死这个区块。2.3.2 尾块的读写条件对密钥和控制位的读写取决于尾块(块3)的访问控制位,分为“禁止”、“KEY A”、“KEY B”和“KEY A|B”( KEY A或KEY B)9。图2.7 访问条件的组成 为了安全起见,访问条件的每一位即用原码又用反码存储,相当于存放了两遍。特定的数据存放于访问条件的最后一个字节(9

21、)。表2.5 块3的访问条件访问控制位所控制的访问对象注释KEY A访问控制位KEY BC1C2C3读写读写读写000禁止Key AKey AKey BKey AKey AKey B可读010禁止禁止Key A禁止Key A禁止Key B可读100禁止Key BKey A|B禁止禁止Key B110禁止禁止Key A|B禁止禁止禁止001禁止Key AKey AKey AKey AKey AKey B可读传输配置状态011禁止Key BKey A|BKey B禁止Key B101禁止禁止Key A|BKey B禁止禁止111禁止禁止Key A|B禁止禁止禁止附注2.1 灰色行为key B可读并

22、可用于存储数据的访问控制条件。 如果C1、C2、C3=000,则key A不能读,而持卡人在正确输入key A后,可以改写key A,读访问条件和读写key B。 Key A在任一条件下都禁止读出,但达到特定条件下可以修改。Key B作为密钥使用时,也是不能读出,但达到一定条件(输入正确的key A)下能读出时,这时存放在key B位置的内容为数据而不是密钥9。尾块和key A被预定义为传输配置状态。因为在传输配置状态下key B可读,新卡必须用key A认证。因为访问控制位本身也可以禁止访问,所以个人化时应当特别小心8。2.3.3 数据块的访问控制条件不同的控制位的设置,相关的用途也不同。

23、读写块:可读、写。 数值块:运行另外的数值操作加值、减值、转存和恢复。在用于非充值卡的一种情况(001)下,只能够读和减值。在另一种情况(110)下,可以用key B充值。 制造厂商块:只读,不受访位控制位设置的影响! 密钥管理:在传输配置状态下,必须用key A 认证。表2.6 数据分组的访问条件访问控制位所控制的访问操作用途C1C2C3读写加值减值转存恢复000key A|B1key A|B1key A|B1key A|B1传输配置状态010key A|B1key B1禁止禁止读写块100key A|B1key B1禁止禁止读写块110key A|B1key B1key B1key A|B

24、1数值块001key A|B1禁止禁止key A|B1数值块011key B1key B1禁止禁止读写块101key B1禁止禁止禁止读写块111禁止禁止禁止禁止读写块3 MF RC522射频芯片3.1 概述MF RC522是具有高集成度读写卡芯片,也是一款常用的非接触式通信芯片,工作于13.56MHz的时钟频率。也是NXP公司针对三表应用推出的一款低 电压、低成本、体积小的非接触式读写卡芯片,是智能仪表和便携 式手持设备研发的较好选择10。MF RC522 利用了先进的调制和解调概念,完全集成了在13.56MHz 下所有类型的被动非接触式通信方式和协议11。支持 ISO14443A 的多层应

25、用。其芯片的TX1和TX2引脚可驱动读写器天线,发送经过调试的13.56MHz载波能量信号,该信号上就有我们需要的数据。接收到的载波信号会通过接收器解调成有效信号,有效信号再经过A/D转换器转换成数字信号,该信号会依照ISO14443A协议处理,先进行错误检测(奇偶 &CRC)。另外,它也能对数据进行算法加密,MFRC522 支持MIFARE系列的卡,可验证该系列产品。相比于其他芯片,它具有更快的近距离双向数据传输速率通信,高达424kbit/s。MF RC522 与MF RC500和 MF RC530相比,即相似点也有很多差异。它与微控制器间的数据交换可用SPI串行通信,也能根据应用场合功能

26、不用,采用I2C 或串行UART(类似RS232)模式。当然,SPI通信连线更少,制作的PCB 板体积更小,降低成本。3.2 特性 高集成度的调制解调电路; 可将发送器控制的TX管脚直接驱动天线; 支持 ISO/IEC 14443 TypeA 通信协议; 读写器模式中的ISO 14443A协议的工作距离高达60mm,与天线的长度和匝数有关。 支持 ISO 14443 212kbit/s 和424kbit/s 的更高传输速率的通信。 支持 MIFARE® Classic 加密; 支持的主机接口:-10Mbit/s 的SPI 接口-I2C 接口,快速模式的速率为400kbit/s,高速模式

27、的速率为3400kbit/s-串行UART,传输速率高达1228.8kbit/s,帧取决于RS232 接口,电压电平取决于提供的管脚电压 64 字节的发送和接收FIFO 缓冲区; 灵活的中断模式; 可编程定时器。 具备软、硬件掉电和发送器掉电 3 种节电模式,其中发送器掉电则是关闭内部天线驱动器,即关闭电磁场; 内置温度传感器,以便在芯片温度过高时自动停止 RF 发射; 采用相互独立的多组电源供电,以避免模块间的相互干扰,提高工作的稳定性; 具备 CRC 和奇偶校验功能,CRC 协处理器的16 位长CRC 计算多项式固定为:x16+x12+x5+1,符合ISO/1EC14443 和CCTITT

28、 协议12; 内部振荡器,连接 27.12MHz 的晶体; 2.53.3V 的低电压低功耗设计; 工作温度范围-30+85; 5mm5mm0.85mm 的超小体积。3.3 功能结构3.3.1 简化的MF RC522框图图3.1 简化MF RC522框图模拟接口用来处理模拟信号的调制和解调。非接触式UART用来处理与主机通信时的协议要求。FIFO缓冲区快速而方便地实现了主机和非接触式UART之间的数据传输12。不同的通信接口可应用于不同场合、功能和用户要求。3.3.2 数字接口MF RC522与微控制器通信支持三种接口类型,如SPI、I2C和串行UART。作出复位单片机系统,并对射频系统上电或硬

29、复位操作,就能自动检测接口的类型。它通过复位阶段后控制管脚上的逻辑电平来识别为控制器接口12。每种接口采用不同的管脚,其管脚的功能也不同。表3.1 检测不同接口类型的连接方式3.3.3 模拟接口和非接触式UART非接触式UART可处理与主机之间的通信协议要求。协议本身可产生面向位和字节的帧,也可以处理不同的非接触式通信机制的奇偶&CRC错误检测13。(1)TX驱动器TX驱动器发送经过调制携带数据的13.56MHz的能量载波。TX管脚直接驱动天线,连接电容电感元件进行匹配和滤波。TX1和TX2的信号可通过TxControlReg寄存器来配置。表3.2 TX1的设置表3.3 TX2的设置附注3.1

30、 RF:13.56MHz时钟,由27.12MHz的石英晶振2分频所得RF_n:反相13.56MHz的时钟Gspmos:电导,PMOS阵列的配置Gsnmos:电导,NMOS阵列的配置pCW:CWGsP寄存器定义的连续波的PMOS电导值pMod:ModGsP寄存器定义的调制的PMOS电导值nCW:CWGsN寄存器定义的连续波的NMOS电导值nMod:ModGsN寄存器定义的调制的NMOS电导值(2)串行数据变换14 MF RC522主要包含2个模块:1个数字电路和1个模拟电路。数字电路由状态机、编码器与译码器组成;模拟电路由调制器、天线驱动器、接收器和放大器电路。(3)CRC协处理器表3.4 CR

31、C协处理器参数 16位CRC的CRC多项式为X16+X12+X5+1。下面的寄存器可以对协处理器进行配置。CRCPresetReg寄存器定义了CRC协处理器的预置值。该寄存器智能选择0000、6363、A671或FFFF。寄存器CRCResultReg用来指示CRC计算的结果。该寄存器分成2个8位寄存器,分别代表MSB字节和LSB字节14。3.3.4 FIFO缓冲区(1)概述 FIFO为1个648位的缓冲区。微控制器与MF RC522芯片内部状态机之间的数据交换是在FIFO缓冲区进行的。该区能处理64字节内的数据流,处理64字节以上的数据流需要清理读写指针,不受时序的限制。(2)访问FIFO缓

32、冲区向FIFODataReg寄存器写入一个字节的数据,该数据通过输入和输出数据总线,将其存入FIFO缓冲区,然后内部FIFO缓冲区写指针加1。需要读出FIFO缓冲区的数据,也是通过读FIFODataReg寄存器,得到的数据是读指针所指的。(3)控制FIFO缓冲区 当向FIFO缓冲区写入大于64字节的数据流时,可以通过让寄存器FIFOLevelReg的最高位FlushBuffer位来置1,来清零FIFO缓冲区读写指针。FIFO中保存的字节数也清零,同时,寄存器ErrorReg的BufferOvfl位被清零,因此,就可存放另一组64字节的数据。3.3.5 定时器组件MF RC522含有一个定时器组

33、件。微控制器使用该定时器来处理与时间有关的工作。定时器可使用下面的一种配置:a) 超时计数器b) 看门狗计数器c) 停止监测d) 可编程一次触发e) 周期性触发器定时器可用来测量两个事件之间的时间间隔或指示某段时间后指定事件的出现14。可由自己设定事件来触发定时器,任一内部工作不会受到它的影响。并且,定时器关联着几个寄存器,几个标志位可用来产生中断。 定时器有一个6.78MHZ(来自27.12MHZ的石英晶体)的输入时钟。定时器包括2个阶段:1个预分频器和1个计数器。3.4 寄存器集 MF RC522共有64个寄存器,按寄存器功能不同分为4页,每页16个寄存器。PAGE0:命令和状态。PAGE

34、1:通信。PAGE2:配置。PAGE3:测试。 本小节只介绍基于读卡器功能中用到的寄存器。3.4.1 CommandReg启动和停止命令的执行。地址:0X01。复位值:0X20表3.5 CommandReg的位描述3.4.2 CommIEnReg 中断请求传递的使能和禁能控制位。地址:0X02。复位值:0X80表3.6 CommIEnReg的位描述3.4.3 CommlRqReg包含中断请求标志。地址:0X04。复位值:0X04。表3.7 CommlRqReg的位描述3.4.4 DivIRqReg包含中断请求标志。地址:0X05。复位值:0Xx0。表3.8 DivIRqReg的位描述3.4.5

35、 ErrorReg错误标志寄存器,显示执行的上个命令的错误状态。地址:0X06。复位值:0X00。表3.9 ErrorReg的位描述3.4.6 Status1Reg包含CRC、中断和FIFO缓冲区的状态标志。地址:0X07。复位值:0X21。表3.10 Status1Reg的位描述3.4.7 Status2Reg包含接收器、收发器和数据模式检测器的状态标志。地址:0X08。复位值:0X00。表3.11 Status2Reg的位描述3.4.8 FIFODataReg64字节FIFO缓冲区的输入和输出。地址:0X09。复位值:0Xxx。表3.12 FIFODataReg的位描述3.4.8 FIFO

36、LevelRegFIFO中保存的字节数。地址:0X0A。复位值:0X00。表3.13 FIFOLevelReg的位描述3.4.9 ControlReg 包含不同的控制位。地址:0X0C。复位值:0X20。表3.14 ControlReg的位描述3.4.10 BitFramingReg面向位的帧的调节。地址:0X0D。复位值:0X00。表3.15 BitFramingReg的位描述3.4.11 CollReg定义在RF接口上检测到的第一个位冲突。地址:0X0E。复位值:0Xxx。表3.16 CollReg的位描述3.4.12 TxControlReg控制天线驱动器管脚TX1和TX2的逻辑操作。地

37、址:0X14。复位值:0X80。表3.17 TxControlReg的位描述3.5 命令集3.5.1 概述MF RC522的命令操作有发送接收数据、认证和复位芯片等,不同的操作对应了不同的4位二进制命令代码。通过向commandreg寄存器的低4位写入命令代码来执行相应的操作。执行一个命令所需的参数和/或数据通过FIFO缓冲区来交换14。3.5.2 通用特性 需要数据输出时,会等待FIFO缓冲区出现数据时,收发命令不影响。BitFramingReg寄存器的StartSend位置位时,启动数据发送,只有收发命令一起用才有效。若某个命令是需要一定数的参数启动时,只有当FIFO缓冲区接收到与之相匹配

38、参数才能处理。FIFO缓冲区不能在命令启动时自动清除。而且,也有可能先将命令参数和/或数据字节写入FIFO缓冲区,在启动命令14。当单片机向RC522的commandreg寄存器写入新的命令代码,会自动终止上一个命令代码所做的操作。3.5.3 命令概述表3.18 命令概述4 通信原理4.1 SPI通信4.1.1 概述 SPI通信是一种高速串行通信,连线也很简单。图中,SCK、MOSI、MISO、NSS分别对应芯片的D5、D6、D7、SDA管脚图4.1 连接到带有SPI接口的微控制器在RC522模块与单片机SPI通信中作从机,单片机作主机。工作时钟SCK由单片机产生。单片机通过MOSI向RC52

39、2写入数据,单片机通过MISO从RC522中读出数据 每次进行数据交换时,按照高位在前低位在后的顺序。MOSI和MISO上的数据只会在SCK脉冲的下降沿改变,在SCK脉冲的上升沿保持不变。4.1.2 读数据单片机通过MISO从RC522中读出数据的过程中,需要先通过MOSI向RC522写入读模式和数据地址,才能在MISO上得到FIFO缓冲区的数据。表4.1 MOSI和MISO的字节顺序4.1.3 写数据单片机通过MOSI向RC522中写入数据的过程中,需要先通过MOSI向RC522写入写模式和数据地址,才能在MOSI上向FIFO缓冲区写入数据。表4.2 MOSI和MISO的字节顺序 4.1.4

40、 地址字节之前说明的读写模式和地址按如下表的字节格式。第一个字节的最高位设置读写模式。读写的寄存器地址应向左移一位,最低位置0,最高位按读写格式置位。表4.3 地址字节格式4.1.5 SPI兼容接口的时序表4.4 SPI的时序规范图4.2 SPI时序图 如SPI时序图所示,MOSI和MISO上出现数据之前,必须使NSS信号从高电平置成低电平,传输完毕后设置成高电平。4.2 串口通信4.2.1 串行接口结构图4.3 串行接口结构如图所示,有两个结构上独立名称相同的收发SBUF缓冲器,它们的地址都是99H 。收发SBUF缓冲器是双缓冲结构,分别由收发控制器控制。在程序中,SBUF=A表示将接收SB

41、UF缓冲器收到数据A发送给串口;A=SBUF表示从串口中得到的数据存入A,因此,使用SBUF缓冲器并不会导致重叠。4.2.2 串行通信的数据结构图4.4 数据结构串行异步通信的特点:收发双方的时钟可以相异,减少了硬件设备,多了点自主性,但每个字节的数据要加上23位的起止位,各个数据之间还有空闲时间,所以串行异步通信传输效率低。5 读卡器的硬件电路设计5.1 读卡器硬件组成PL2303串口电路电源电路蜂鸣器驱动电路51单片机RC522芯片天线模块串行通信电源供应计算机图5.1 读卡器结构框图从本课题的要求上看,非接触近距离识别技术主要研究基于射频原理的非接触IC卡识别技术,该课题涉及到无线通信和

42、射频识别技术,因此需要一片具有调制和解调功能的射频芯片,从安全性能上需要能对通信时的数据进行加密,所以MF RC522可以作为射频识别芯。射频芯片与IC卡之间的通信,需要RC522连接一个具有能形成RF场的天线模块。51单片机起到连接IC卡和计算机的桥梁作用,用以处理数据和写入用户信息,是整个系统的核心。单片机通过PL2303模块将卡号和用户信息发送到计算机,得到的数据通过串口调试助手软件来显示。同时,整个系统的电源由计算机的USB口提供,也是通过PL2303模块传给单片机。5.2 微控制器STC11F60XE是采用8051核的ISP(In System Programming)在系统可编程芯

43、片,是一款高速/ 低功耗的增强型8051 单片机,芯片内含有60KB的用户应用程序空间,可反复擦写10万次, 经常工作在5V的电压和12MHz的时钟频率下,芯片内部含有MAX810 专用复位电路。与传统的8051相比,多了一个独立波特率发生器,除去了定时器2,工作速率相当于普通51单片机的十多倍,指令的执行速度也全面提升,最快的指令能快24倍,该芯片与常用STC89C51的引脚结构相同,并且通用所有的普通8051单片的C语言指令代码,只要学会使用普通的8051单片机也就会使用该款芯片。如图所示的是STC11F60XE的最小系统,所用的是DIP-40封装的芯片,该芯片外接了复位电路和11.059

44、2MHz的晶振,PO接口接上1K的排阻,单片机EA管脚外接一个LED灯,当系统通电后,LED亮。图5.2 STC11F60XE最小系统5.3 蜂鸣器图5.3 蜂鸣器电路 蜂鸣器一端接上8550PNP三极管用以放大电流,基极上连接单片机的P20接口,另一端直接接地。当智能卡操作正确时,蜂鸣器长响一声。当智能卡操作错误时,蜂鸣器发出警报,短响三声。5.4 PL2303串口模块该器件内置USB功能控制器、USB 收发器、振荡器和带有全部调制解调器控制信号的UART, 只需外接几只电容就可实现USB 信号与RS232 信号的转换,能够方便嵌入到各种设备15;PL2303模块是一个双向串行异步通信串口,

45、它既可以把从计算机接收到的USB数据转换成标准的串行RS232数据流格式发送给单片机,也可以把单片机的二进制数据加工成USB数据传送给计算机。这个转换过程是有芯片自动进行,开发者不用再作程序设计。PL2303 的高兼容驱动可在大多操作系统上模拟成传统COM 端口,并允许基于COM 端口应用可方便地转换成USB接口应用,通讯波特率高达6 Mb/s16。该模块完全兼容USB2.0通信协议,常用的3.3V和5V输入电压,支持串行RS232数据流格式,可编程常用的波特率,如4800b/s、9600b/s和19200b/s等。支持目前的WindowsXP,Windows7,Windows8,Window

46、s10等操作系统。该模块DM、MP管脚连接着USB的D-、D+端口,它们之间分别连接着一个27R的限流电阻,模块上的USB接口是用来连接计算机上的USB接口的,整个5V电源电压是通过这个USB接口提供给整个系统的,在USB的VCC电源端连接着一个电容和一个电解电容,起到抗干扰的作用,芯片上的TXD与单片机的RXD管脚连接,芯片上的RXD与单片机的TXD管脚连接,整个芯片的工作始终由一个12MHz的晶振提供。图5.4 PL2303电路5.5 MF RC522电路图5.5 MF RC电路 MF RC522是使用SPI接口与微控制器通信,在3.3.2小节中说明了SPI接口所用到的管脚,用不到的管脚直

47、接悬空。5.6 3.3V电源电路图5.6 3.3V电源电路 3.3V电源转换使用了AMS1117稳压器,输入输出端接上电容,起到滤出杂波的作用。可以将5V的VCC降压到3.3V,3.3V电压供RC522和PL2303作电源使用。5.7 天线模块电感藕合式射频天线用于产生磁通量,而磁通量用于向非接触式IC卡提供电源并在读卡器与非接触式Ic卡之间传输信息16。一个天线电路有两种匹配方式,直接匹配和50匹配方式,我这采用直接匹配的方式设计天线,这种方式电路简单,且完全满足与非接触式IC卡的通信。图5.7 天线模块电路天线模块包含低通滤波电路、接收电路、天线匹配电路和天线共四个部分:低通滤波电路:射频

48、系统是在13.56MHz频率下工作,此频率同时用作驱动天线的载波基频,在Tx1和Tx2输出端加上LC低通滤波器来滤掉高次谐波。接收电路:Rx为信号接收端,Vmid为Rx提供输入电势。Rx和Vmid之间连接了分压电阻R11和R12。天线匹配电路:如图,由C20和C25、C21|C22、C23|C24组成(|为并联),经过天线的调谐过程可以逐渐得出电容的最优值。天线:直接匹配的天线是低电阻的器件,RC522又是低功耗芯片,所以得满足一定的耦合系数k,k值最小为0.3,k被定义为读卡器天线线圈与卡线圈之间的距离和两个线圈大小的一个几何参数。可以设计为圆形或者方形天线,天线的直径必须介于0.51.5m

49、m之间。5.7.1 滤波和接收电路参数的设计根据Philips天线设计应用指南中,Tx1和Tx2与地之间的结构、元件参数是对称相等的,低通滤波电路和接收电路的元件参数是确定的,L1=L2=2.2 UH,C18=C19=47PF,R11=820,R12=5.1k,C17=0.1UF。5.7.2 天线线圈电路参数的设计在我的设计中,选择设计方形的天线,线圈匝数为4,天线的直径为0.8mm。最里面的一圈中,线圈长36.0mm,宽33mm;最外圈中,长为42.5mm,宽为39.5mm;每条线圈之间的间隔约为0.1-0.2mm。图5.8 天线线圈PCB图天线线圈本身就可用电感Lant、损耗电阻Rant和

50、并联的损耗电容Cant组成。在计算品质因子和天线调谐时损耗电容Cant可以忽略。线圈的等效电路为:图5.9 天线等效电路(1)估算天线线圈的电感公式为: (式5.1)其中,L为线圈电感,单位nH。l为一圈导线的长度,单位cm。取平均值,l=42.5+39.5+36+33=151mm=15.1cm。d为PCB上导线的宽度。k=1.47(方形线圈)。N为线圈匝数。经计算,Lant1380.718nH(2)线圈的损耗阻抗Rant用阻抗分析仪精确测量,该值越小越好。经查阅资料得,标准天线的Rant范围为0.3-0.5之间,我这里取Rant=0.3。(3)品质因子的计算公式: (式5.2)其中,f=13

51、.56MHz。经计算得,Q=39。因为元件的容差和对温度的依靠,Q因子最好取35,我计算的Q值为39,两值比较接近。所以,本次设计的天线可以使用。5.7.3 天线匹配电路参数的设计在设计直接匹配天线的匹配电路时,电容值由天线本身和环境影响来决定,经过天线的调谐过程可以逐渐得出电容的最优值。调谐过程分为两个部分:其一就是在能量传递中得到最优的工作距离;其二,计算品质因子保障数据正确传输。已知Lant1380.718nH,调谐过程以下表的电容值作为起始值,将直接匹配的天线调谐出最优的状况。表5.1 天线匹配电路的起始值经调谐,C20=C25=15PF,C21=C23=180PF,C22=C24=1

52、0PF,可使天线处于最优状态。6 读卡器的软件程序设计6.1 程序设计思路图6.1 总程序流程图(1)串口初始化:先设定波特率为9600,设串口为工作方式1,定时器为工作方式2,用波特率初值计算软件得出定时器的计数初值为FDH。(2) RC522初始化:使RC522复位。选择ISO 14443协议typeA。对相关的寄存器进行设置:ModeReg=0x3D, 为PCD发送器的开启做准备,sigin高电平有效,CRC预设值6363; RxSelReg=0x86,选择非接触式UART输入,定义6个帧保护时间;TModeReg=0x8D,自动启动定时器,以减计数的方式;RFCfgReg=0x7F,接收器信号电压的增益因子48dB;设置RC522内部定时器初值为0x30。最后打开天线。图6.2 RC522初始化流程图(3)寻卡:进行IC卡的检测,发送请求命令为ISO 14443 TYPE A通信协议的REQIDL命令(寻天线区内未进入



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3