基于ARM的射频识别读卡器电路设计
http://tech.yktworld.com/201010/201010032128115666.html
摘要:针对 ISO14443,ISO15693和 Tag-it等多种协议,提出了一种新型的基于高级 RISC微处理器(ARM)的射频识别系列通用射频卡读卡器的电路设计,并使用加密模块实现了在操作过程中对数据流的加密。介绍了系统组成、工作原理和工作流程,给出了加密电路和射频网络的详细硬件设计,对该设计结果进行了测试及分析,结果表明该电路能对有效范围内的多种类型的卡准确无误地读写和加密。
关键词:射频识别;高级 RISC微处理器;天线设计;多协议
射频识别[1](RFID)技术相对于传统的磁卡及集成电路卡 (Integrated Circuit Card,IC)技术,具有非接触,阅读速度快,无磨损等优点,在小区商务、门禁管理和公交地铁收费等需要身份识别和电子货币交易的场合中得到了广泛应用,同时对系统稳定性、安全性要求也相当高。目前 RFID广泛使用的有 ISO14443,ISO15693和 Tag-it等多种协议,在实际使用中往往存在多协议并存的局面,影响读卡器的兼容性。本文提出了一种兼容多协议的基于高级精简指令运算集 (Reduced Instruction Set Computer,RISC)微处理器 (ARM)的 RFID系列射频卡读卡器的电路设计,并使用加密模块实现了在操作过程中对数据流的加密。
1系统组成
整个系统包括读写器、通信模块、加密模块、射频系列卡和天线。读写器主要完成对射频系列卡数据的读写,并根据需要将数据通过串口或 USB传输给上位机。 STM32F101[2]是意法半导体公司生产的一款 ARM微处理器,除了具备一般单片机的功能外,内部还集成了串行外围设备接口 (Serial Peripheral Interface,SPI)总线、内部集成电路(Inter-Integrated Circuit,I2C)总线、通用串口、实时时钟、振荡电路,另外该处理器硬件支持 ISO7816-3标准中定义的异步智能卡协议,具备高性能、低功耗的优势。TRF7960[3-4]是德州仪器公司生产的一款高集成度的读写器芯片,支持 ISO/IEC14443(Type A和 Type B)协议、ISO15693协议和 Tag-it协议,工作频率为 13.56 MHz。它内部集成调制、解调和解码电路,可直接驱动近操作距离的天线,其中调制电路可调制控制器发送来的命令和数据,并将其传送给射频系列卡;解调电路用于解调射频系列卡送来的调制信号,处理数据帧和进行错误检测。图 1为智能读卡器设计框图。智能读卡器的控制芯片采用嵌入 Cortex-M3内核的 STM32F101C8T6,控制器通过 TRF7960与射频系列卡进行数据传输,传输方式选用 SPI总线传输。同时通过串口与上位机进行通信。加密模块使用 PSAM(Purchase Security Application Module)卡来存储密钥和对重要数据加密。滤波和阻抗匹配电路以及具体的参数在实际开发过程中针对不同应用需要进行具体调整。天线也有 2种设计方法:直接匹配和 50 Ω匹配,一般手持式的读写器使用直接匹配,本系统选用直接匹配方式。
图1 RFID 读卡器系统框图
TRF7960和射频卡的通信过程采取半双工方式,控制器向卡发送的读写等命令,首先要经过 TRF7960调制,再经高频滤波和阻抗匹配电路,通过天线把电能转换成电磁波,被射频卡接收。发送信号使用频率为 13.56 MHz的载波,采用密勒编码加强信号的抗干扰性。高频滤波的作用是去除振荡产生的高次谐波,阻抗匹配用以获取最大传输功率。另外,射频系列卡由电磁波得到卡工作需要的能量和指令数据,然后根据指令发出电磁波形式的应答信号,该信号被天线拾取转化成电信号,再被 TRF7960内部的接收单元解码后传送给控制器。
2 操作流程
当标准 IC卡进入有效的磁场范围时,读卡器会通过射频天线发送 REQA(Request All)指令, IC卡自动以 ATQA指令应答, IC卡进入准备状态,读卡器开启防冲突机制,阅读器发送 SEL(Select code)指令和有效位的数目 (Number of Valid Bits,NVB)指令,此时 IC卡将回复自己的用户身份证明 (User Identification,UID)。如果没有冲突,读卡器将收到完整的 UID(卡片唯一序列号 ),如果有冲突,阅读器将根据第 1个冲突位重新赋 NVB的值,重新发送 SEL和 NVB指令,直到获取完整的 UID,然后阅读器将 NVB值设为 70加上 4字节 UID发送给 IC卡,IC卡将接受的 UID与自己的 UID比较,如果相同则回复 SAK(acknowledge)指令,如果不同,则当 SAK的 b3为 1表示 UID不完整,重新进行防冲突循环,当 b3为 0则防冲突完成, IC卡进入 Active状态,卡选择和防碰撞完成。
3 TRF7960驱动电路设计
图 2为 TRF7960与 STM32F101接口电路图。 TRF7960与 ARM控制器接口采用典型的 SPI总线模式,在一定程度上节省了处理器资源,简化了线路板。 TRF7960内部有总共不到 30个寄存器 (其中有些寄存器预留 ),相对于其他射频芯片大大减小了软件驱动的开发难度。在实际应用中应对这些寄存器一一配置。
图 2 SPI总线接口
4 PSAM智能卡加密电路设计
PSAM智能卡 (简称智能卡 )接口是在 STM32F101处理器 USART模块的智能卡模式下开发的, USART智能卡模式支持 ISO 7816-3标准中定义的异步智能卡协议。该协议定义了时间基准单位,称作 ETU(Elementary Time Units),它与输入至智能卡的时钟频率有关。 1个 ETU的长度是 1个位时间。 USART接收器和发送器在内部通过 Rx_SW信号相连接,将 USART模块设置为智能卡模式,才能实现从 STM32F101向智能卡传输数据。 ST8024接口芯片用于与 PSAM卡相连。ST8024是 1个针对异步 3 V,5 V智能卡的,完善的低成本模拟接口,它位于智能卡和 STM32F101之间,只需要很少的外部部件来实现电源保护和控制功能。
PSAM_RST(智能卡复位 )、PSAM_3/5V(3 V或 5 V选择)、PSAM_CMDVCC(管理模块供电 )以及 PSAM_OFF信号(智能卡检测信号 )由软件控制 GPIO的端口实现。为了使数据信号以正确的驱动连接到智能卡 IO引脚,应当把 USART_TX端口的 GPIO位编程为复用开漏输出模式,为把时钟发生器连接到 PSAM_CLK的引脚, USART_CK端口的 GPIO位应配置为复用推挽输出模式。智能卡时钟发生器为与之相连的智能卡提供时钟信号。智能卡使用这个时钟产生在智能卡与 USART模块之间进行串行通信的波特率时钟。如果智能卡上有 CPU,该时钟将同时提供给 CPU使用。
5 天线网络设计与调试
基于 TRF7960的读写器主要由 TRF7960,STM32F101微处理器、天线以及相应的外围连接电路组成。读写器要通过天线来发射能量,形成电磁场,通过电磁场来对 RFID系列卡进行识别,天线所形成的电磁场范围就是射频识别系统的可读写区域。
天线电路包括 1个 EMC低通滤波器、接收电路、天线匹配电路和天线。
1) EMC低通滤波电路:读卡器系统在 13.56 MHz频率下操作。该频率由 1个石英晶振产生用于驱动 TRF7960以及作为驱动天线的 13.56 MHz能量载波的基频。这样不仅会产生 13.56 MHz的发射功率,而且会发射更高的谐波。国际 EMC条例定义了在广播频段中发射功率的幅值。要符合这一规范,必须对输出信号进行适当的滤波 [5-6]。
2) 接收电路:受调制深度和调制范围的影响,传送到接收电路的高频信号不一定是符合相应协议的最佳信号,这给接收电路的设计带来了难度。 TRF7960集成了最优解决方案,在芯片外部设计了 2个信号接收端口 RX_AM和 RX_PM,内部接收部分使用 1个信号强度指示器 (Received Signal Strength Indicator,RSSI),RSSI不断检测接收引脚 RX_AM和 AX_PM信号强度,用以控制芯片内部接收电路选择最优的信号端口。在天线线圈和收发电路之间,推荐使用一些容值较小的滤波电容,这样可以增大射频系统抗干扰的能力。在接收电路末端放置可调电容,用以调节天线阻抗,使天线达到最佳性能。要提高读卡器性能以及增大读卡距离,可以从天线驱动电压 (TVDD)、EMC低通滤波电路(接收电路 )和天线匹配电路这 3个方面作为调试入口并作相关测试 [7-8]。
该天线驱动电压最小值为 3.0 V,最大值为 5.5 V,本测试对 TVDD取值 5.0 V(该参数主要针对于读卡距离 )。 EMC低通滤波电路和接收电路参数采用德州仪器公司推荐参数,暂时不作调整。由于通过该电路所测得各种参数已经非常稳定,所以天线调试主要针对天线匹配电路。
由于 TRF7960的工作频率 f是 13.56 MHz,属于短波段,因此可以采用矩形天线。对天线线圈电感量的精确计算是不可行的,但电感量 L1可以通过式 (1)估算得出:
6 结论
本文详细介绍了RFID系列射频卡的读卡器开发和加密模块的设计,此产品广泛用于门禁管理和公交地铁收费等需要身份识别和电子货币交易的场合中。实践证明,本系统运行稳定,操作方便,符合ISO14433协议、ISO15693协议和Tag-it协议等多协议,能对有效范围内的多张卡和多种类型的卡准确无误地读写和加密。
参考文献:
[ 1 ] 陆永宁. 非接触 IC卡原理与应用[M]. 北京:电子工业出版社, 2006.
[ 2 ] 王永虹,徐炜,郝立平. STM32系列 ARM Cortex -M3微控制器原理与实践[M].北京:北京航空航天大学出版社, 2008.
[ 3 ] Texas Instruments. Multi-Standard Fully Integrated 13.56-MHz Radio Frequency Identification Analog front End and Data Framing Reader System[Z]. 2009.
[ 4 ] Texas Instruments. Implementation of the ISO15693 Protocol in the TITRF 796x[Z]. 2006.
[ 5 ] 张玉兴.射频模拟电路与系统[M].成都:电子科技大学出版社, 2008.
[ 6 ] 曾孝平,赵小刚,熊东,等. ASK调制度对无源 RFID系统能量和数据传输的影响[J].信息与电子工程, 2009,7(6):497-500.
[ 7 ] 王文闯,王可人. 基于数据缓存机制的 RFID安全协议[J]. 信息与电子工程, 2008,7(5):371-374.
[ 8 ] 宋汉斌,陈晓光,王超.基于 Smith圆图的射频功放电路的设计与分析[J]. 信息与电子工程, 2007,6(6):409-413.
作者简介:江小平(1974-),男,武汉市人,博士,讲师,研究方向为信息与信号系统、应用系统设计
李中捷(1974-),男,武汉市人,博士,研究方向为通信系统、信号与信息处理.
余晓峰(1987-),男,武汉市人,本科,研究方向为电子线路设计、嵌入式系统
基于ARM的射频识别读卡器电路设计的更多相关文章
- 《如何学习基于ARM嵌入式系统》笔记整理
author:Peong time:20190603 如何学习基于ARM嵌入式系统 一.嵌入式系统的概念 从硬件上讲,将外围器件,与CPU集成在一起. 从操作系统上讲,定制符合要求的系统内核 从应用上 ...
- 基于ARM处理器的反汇编器软件简单设计及实现
写在前面 2012年写的毕业设计,仅供参考 反汇编的目的 缺乏某些必要的说明资料的情况下, 想获得某些软件系统的源代码.设计思想及理念, 以便复制, 改造.移植和发展: 从源码上对软件的可靠性和安全性 ...
- 基于ARM的车牌识别技术研究与实现
在云盘里包含了我本科毕业设计的全部资料和代码.主要涉及下面摘要中的几个部分.虽然系统无法实用,但是适合机器视觉和嵌入式方向的入门.希望能对有志从事相关方向的朋友有所帮助.本人现在在深圳从事机器视觉算法 ...
- 课程设计个人报告——基于ARM实验箱的捕鱼游戏的设计与实现
课程设计个人报告--基于ARM实验箱的捕鱼游戏的设计与实现 一.个人贡献 参与课设题目讨论及部分过程 资料收集 负责代码调试 捕鱼游戏相应功能的实现 实验环境 Eclipse软件开发环境: ARM实验 ...
- 浅析基于ARM的Linux下的系统调用的实现
在Linux下系统调用是用软中断实现的,下面以一个简单的open例子简要分析一下应用层的open是如何调用到内核中的sys_open的. t8.c 1: #include <stdio.h> ...
- 课程设计小组报告——基于ARM实验箱的捕鱼游戏的设计与实现
课程设计小组报告--基于ARM实验箱的捕鱼游戏的设计与实现 一.任务简介 1.1 任务内容 捕鱼游戏这个项目是一个娱乐性的游戏开发,该游戏可以给人们带来娱乐的同时还可以给人感官上的享受,所以很受人们的 ...
- 基于ARM Cortex-M0+ 的Bootloader 参考
源: 基于ARM Cortex-M0+内核的bootloader程序升级原理及代码解析
- 《基于Arm实验箱的国密算法应用》课程设计 结题报告
<基于Arm实验箱的国密算法应用>课程设计 结题报告 小组成员姓名:20155206赵飞 20155220吴思其 20155234昝昕明 指导教师:娄嘉鹏 设计方案 题目要求:基于Arm实 ...
- 20155234 昝昕明《基于ARM实验箱的国密算法应用》课程设计个人报告
20155234 昝昕明<基于ARM实验箱的国密算法应用>课程设计个人报告 个人贡献 参与课设题目讨论及完成全过程: 资料收集: SM1算法及和ARM之间通信 负责串口代码调试: 协调完成 ...
随机推荐
- android 动态改变控件位置和大小 .
动态改变控件位置的方法: setPadding()的方法更改布局位置. 如我要把Imageview下移200px: ImageView.setPadding( ImageVie ...
- webstrom 使用git
1.首先进入码云创建项目 2.创建成功,复制https地址,打开webstrom,选择git,填入https的地址 3.下载完成,打开项目,新建一个测试测HTML文件,点击右键,选择git,再选择ad ...
- laravel 上传文件到亚马逊 aws s3
参考: https://github.com/aws/aws-sdk-php-laravel https://www.jianshu.com/p/e48d82bff20b
- fprintf输出到文件中,sprintf输出到字符串中. 如: fprintf(fp,"%s",name); fp为文件指针 sprintf(buff,"%s",name); buff为字符数组
fprintf输出到文件中,sprintf输出到字符串中. 如: fprintf(fp,"%s",name); fp为文件指针 sprintf(buff,"%s" ...
- Dell服务器iDrac口默认账号密码和IP
https://blog.csdn.net/artdao1987/article/details/79875528
- 程序员必备的代码审查(Code Review)清单
在我们关于高效代码审查的博文中,我们建议使用一个检查清单.在代码审查中,检查清单是一个非常好的工具——它们保证了审查可以在你的团队中始终如一的进行.它们也是一种保证常见问题能够被发现并被解决的便利方式 ...
- GNU Wget 1.19.4 for Windows
资源地址:https://eternallybored.org/misc/wget/ 然后将工具目录加入环境变量
- ref:Spring Integration Zip 不安全解压(CVE-2018-1261)漏洞分析
ref:https://mp.weixin.qq.com/s/SJPXdZWNKypvWmL-roIE0Q 0x00 漏洞概览 漏洞名称:Spring Integration Zip不安全解压 漏洞编 ...
- Python类总结-封装(私有属性,方法)
封装基础 广义上面向对象的封装:代码的保护,面向对象的思想本身就是一种封装 只让自己的对象能调用自己类中的方法 狭义上的封装-面向对象三大特性之一(私有变量,用公有的方法封装私有属性,方法叫封装) 把 ...
- http请求,HttpClient,调用短信接口
项目中安全设置找回密码的功能,需要通过发送短信验证绑定手机,通过绑定的手机号验证并重新设置密码. 因为项目是通过maven管理的,所以需要在pom.xml文件中引入jar包, maven引入的jar包 ...