基于AVR单片机和EM4094读写芯片的多协议RFID读卡器

发布者:清新生活最新更新时间:2014-03-17 来源: elecfans关键字:AVR单片机  M4094  FID读卡器 手机看文章 扫描二维码
随时随地手机看文章

  引言

  射频识别(RFID)是利用无线方式对电子数据载体(电子标签)进行识别的一种新兴技术。与接触式IC卡和条形码识别等系统比较,它有着巨大的优势。利用射频识别技术,能有效实现对数量大、分布区域广的信息进行智能化管理,达到高效快捷运作的目的,特别是在第二代身份证、物流、交通航运、自动收费、超市、门禁系统管理、服务领域等方面有着广泛的应用前景。随着我国国民经济的快速发展,国内RFID行业也正经历着深刻的变革。

  RFID系统一般是由读写器、射频卡、应用软件来组成。其中读写器的设计是至关重要的,它决定了系统的稳定性和准确性。

  除了要求其能支持一系列协议、标准和收发器外,对读写器可能还有其它功能性方面的要求,如高性能、防冲突、远/近感应距离、移动性及功耗。

  本文就说明了怎样利用EM Microelectronic公司的EM4094 RFID读写基站(又称读写芯片、模拟前端模块、基站芯片、收发器)来构建支持多种协议的13.56MHz通用型或能满足上述特定要求的特殊RFID读卡器。

  硬件结构分析

  读写器一般由读写基站、微控制器(单片机)组成。

  基本上,读写基站(如EM4094)为RFID负责对数据进行编码/译码,并以适当功率驱动RFID读卡器天线。

  而读写基站本身由微控制器驱动。该微控制器负责管理不同协议的帧译码任务,以及与PC或其它后台控制设备的通信接口(串行接口、USB接口或以太网接口)。

  一些IC供应商提供集成了模拟前端和微控制器的芯片。在很多情况下,微控制器或集成的存储器空间不是超出需求就是不够用,而独立的模块允许制造商选择最适合其设计要求的微控制器和存储器容量。

  软件功能设计需求

  该读写器需要支持ISO14443 Type A和B、Sony Felica及ISO15693标准的全部强制命令,并支持EM 13.56MHz收发器IC的全部指令集。可以实现不同的通信协议和防冲突协议。可以读写的卡片种类如下:

  • ISO 14443A&B:

  MIFARE® Ultralight

  MIFARE® Classic

  MIFARE® DESFire

  MIFARE® PROX

  MIFARE® PRO

  • lSO 15693

  • ISO 18000-3

  • INSIDE PicoTag

  • HID iClass

  • Tagsys C320

  • eNFC

  • MasterCard PayPass

  • FeliCa

  • KSW TempSens

  • KSW VarioSens

  读写基站的选择

  目前13.56MHz的多协议读写基站基本上有3种常用的:

  • Phlisps公司的RC632

  • TI公司的RI-6C-001

  • EM公司的EM4094

  三家公司的芯片各有特点,综合考虑,EM4094具有更好的性价比。

  EM4094的概述

  EM4094是一个集成的收发器芯片,它可用于构建RFID读卡器的模拟前端模块。该芯片的数据传输及接收链路允许传送和解码任何通信协议,因此EM4094支持所有EM公司的13.56MHz收发器芯片、ISO15693、ISO14443 A&B、以及Sony Felica协议。通过适当设定,EM4094甚至还可以与NFC设备通讯。

  它具有以下特点:

  •兼容ISO15693、ISO14443;

  •具有可选跨导的使用13.56MHz 石英的振荡器;

  •使用OOK 的天线驱动或使用单一天线驱动的ASK模块;

  •高输出功率,5V电源下200mW高输出功率;

  •ASK调制可调范围从7%到30%;

  •天线短路保护;

  •用于高度可靠通信的多路接收器输入;

  •带AGC信号放大器的AM/PM解调;

  • 848kHz BPSK内部解调器( B型);

  •多种副载波兼容接收(212kHz、 424kHz或848kHz);

  •多种副载波兼容译码(Manchester、BPSK);

  •内置接收低通滤波器截止频率可在400kHz及1MHz间进行检波;

  •内置接收高通滤波器截止频率可在100kHz、200kHz及300kHz间进行检波;

  •可选接收增益;

  •可选择的串行接口对选择位进行编程;

  • 3线SPI控制的降功耗模式, 控制开关机状态;

  •输出功率为100mW ( SO16封装)、 200mW ( SO20封装);

  •工作温度范围-40℃到 +85℃;

  •ISO15693、ISO14443 协议完全兼容;

  •多接收输入,高通讯可靠性。

  工作原理图

  引脚定义

  单片机的选择

  EM4094胜出其它RFID读卡器芯片一筹的地方是它允许读卡器制造商自行选择最适合其处理与功率需求的微控制器。一个工作频率为16MHz的带8 kB程序存储器的8位微控制器看起来是实现一个读卡器的最合理选择,因为它可以实现所有相关的标准和事实标准协议。对于要求更高的RFID读卡器应用,16 kB存储器将可提供更好的编程自由度。[page]

  除了BPSK协议,EM4094没有集成其它帧解码器。一个集成的848kHz BPSK解码器可使微控制器不再需要执行这一苛求的ISO14443 Type B特殊操作,从而允许读卡器制造商选择一个成本效益比更好的微控制器。

  EM4094对于单片机的要求

  EM4094-ISO15693协议对单片机的要求

  • ~3800 字节的程序FLASH内存;

  • ~345 字节的SRAM;

  • 1个带有捕获模式的定时器T1 (ICP1 feature);

  • 3 个I/O接口 (DOUT、 DIN、DCLK);

  •看门狗(可设置为2.2s);

  • 8MHz 晶振;

  • RFID 通讯过程中没有不允许外部中断;

  •支持 ISO15693的优化设计。

  EM4094-ISO14443 A-B-C 协议对于单片机的要求

  • ~15k字节的程序FLASH内存;

  • ~500B字节的SRAM;

  • 2个带有捕获模式的定时器T1、T3;

  •看门狗(可设置为2.2s);

  • 16MHz晶振;

  • RFID 通讯过程中没有不允许外部中断;

  •提供专用固件来支持ISO14443 A、B、C 标准。

  AVR单片机的优点

  ATMEL的AVR系列单片机是一个优秀的RISC 结构单片机系列与MCS51 相比其有以下一些典型特点:

  • AVR的机器周期为1 个时钟周期绝大多数指令为单周期指令因此每MHz时钟有接近1MIPS 的性能;

  •程序存贮器与数据存贮器有分开的总线程序可以高效地执行8MHz 频率下工作的AVR 相当于224MHz 频率下工作的MCS51;

  •内置可重复编程的FLASH 程序存贮器和EEPROM 数据存贮器支持对单片机的在系统编程ISP 在生产中可以先装配后编程从而缩短工艺流程和节约购买万用编程器的费用并且可以方便地升级或修改程序;

  •内置上电复位电路和看门狗定时器电路在提高产品可靠性的同时降低了电路的成本;

  •部分AVR单片机与MCS51 系列单片机管脚兼容如AT90S1200/2313 对应AT89C1051/2051,AT90S4414/8515 对应AT89C51/52。因此可以做到一套PCB板对应两套电路增加了用户备货的可选择性和灵活性;

  •定时/计数器的功能大大增强串口通信时波特率发生不占用定时器。

  硬件设计注意事项

  电源设计

  首先,我们简要讨论一下EM4094的电源设计。该芯片有三个不同的电源引脚,其中的VDDA1和VDDA2用于给内部的天线驱动器ANT1和ANT2供电。每个驱动器可独立受电。由于这两个驱动器可能产生或同步较大的电流,因此建议在VDDA1和VDDA2两引脚之间接入一个3.3μF的电容以给天线提供足够的能量。另外,我们还建议在该电容边上并联两个电容值分别为1nF和100nF的电容,以对电源进行去耦和滤波。

  第三个电源引脚VDD用于给所有其它的内部模块供电。在这条电源线上,工程师将不得不为了上面提到的同样原因接入两个电容值分别为1nF和100nF的滤波电容,它们最好采用由COG和X7R等介电材料制成的陶瓷电容,因此类电容的容差小和温度稳定性较高。这里很重要的一点是,应对这三条电源线施加相同的电压(3.3V或5V)。这些电源线还应当与模拟地相连。

  振荡器输入

  连接在OSCIN和OSCOUT两个引脚上的外部晶体提供13.56MHz的信号,这一信号将被送至天线驱动器的输出端。跨接于晶振两端的两个NPO电容用于确保晶振的起振和稳定性。NPO电容值由EM4094的可选跨导(通过一个寄存器标识选择)和晶体参数决定。

  

 工作原理图 www.elecfans.com

  图1 工作原理图

  带隙参考输出(AGD)

  带隙参考电压被不同的内部模块用作模拟参考电压。为了确保读卡器芯片的稳定性和可靠性,用一个1nF和 100nF的电容对AGD电压进行适当去耦是非常重要的。如同在前文所说的那样,我们推荐使用采用COG或X7R电介质材料制造的陶瓷电容。

  天线驱动器输出

  ANT1和ANT2为天线驱动器的两个输出端,它们可同相或反相驱动,这使得有可能用不同的方式连接读卡器天线,以及依据所选择结构的不同产生四个不同功率等级的天线。EM4094还可与一个远端天线一起使用,此时EM4094的输出阻抗必须与通信线路阻抗相匹配。

  若采用同轴电缆,那么在只使用一个天线驱动器的情况下,EM4094的输出阻抗将必须在10欧姆(ANT1可选)和50欧姆之间进行调整;当两个天线并联使用时,EM4094的输出阻抗将必须在5欧姆(ANT1可迁)到50欧姆之间进行调整。为了实现一个良好的阻抗匹配,开发人员可借助Smith图表选择使用一个LC PI网络和选择合适的元件参数值。

  如果读卡器天线能够与EM4094集成在同一块PCB板上,那么你可使用直接天线相连方法(见图2)。在这种情况下,天线和串联电容形成LC串联回路。这一回路的谐振频率为读卡器的频率。串联电阻用于抑制品质因数并将天线的电流设定在EM4094的额定值以下。当天线工作在其谐振频率时,直接连接天线可获得较高的功率。有关IC天线的不同连接方式可参见EM4094应用指南。

  

引脚定义 www.elecfans.com

  图 2 引脚定义

  收发器信号接收

  RFIN1和RFIN2是该IC接收链上的两个输入引脚,它们被EM4094用来解调收发器送过来的数据流,其引脚 上的电压必须设定在GND和VDD之间,这两个解调输入必须具有相同的性能和呈现出相同的灵敏度。配合一个外部匹配阻抗电路,这两个输入端可用于解调输入的相位或幅度调制信号。未使用的输入脚应当通过一个10nF的电容接至模拟地。输入引脚的高灵敏度使得读卡器即便在电子标签的最小电源级别上仍能有较远的读取距离。[page]

  表1

  

  关闭读卡器芯片

  EN引脚用于使能或关闭读卡器IC。该输入引脚可由一个外部微控制器进行控制。当EN引脚为高电平时,EM4094进入激活模式,其输出在天线上产生13.56MHz信号;当EN引脚为低电平时,读卡器芯片进入睡眠模式,这样可大大降低读卡器芯片的功耗。在设计手提式读卡器时,EM4094的这一性能特别有用,它可提高电池的使用寿命。

  数据输入与输出

  在SPI模式下,DIN引脚用于输入数据,DOUT引脚用于输出数据,DCLK用作SPI的时钟信号。一个SPI接口可用来设置读卡器芯片的内部位寄存器及设定不同模块的参数。在正常模式下,通过施加在DIN引脚上的逻辑电平来打开或关闭天线驱动器,DIN发出的应答信息可直接在DOUT脚上读取。

  安全功能

  当前的许多RFID应用都采用加密算法对数据进行加密或对身份进行证明。有些加密算法是公开的,有些则不对外公开。有些供应商在源代码或目标代码、或其它独立的安全元件(如SIM卡)中提供他们独特的加密算法。当然,多种可选方案使得设计可十分灵活。你可以在一个传统的微控制器或一个安全的控制器中实现一个或多个算法,另外一个选择是用一个负责安全操作的独立元件来构建一个接口。将这两种方案混合运用当然也是可以的。EM通过SIM卡提供其专有加密算法。

  固件程序设计

  程序层次划分

  固件结构分为几层,每一层都有特定的功能:

  • Level1 –执行解码任务;

  • Level2 –执行底层数据发送和变换任务;

  • Level3 –执行上层数据传输任务--- main loop 、 bootloader 以及 simcard;

  • Level4 -执行UART 通讯任务。

  主程序设计

  • Main loop (level3) 定期查询UART的接收缓冲区 (level4),并根据有效命令执行相应的任务。所有执行的任务都会返回信息,包括任务错误。

  • UART 数据接收是异步执行的。只有对之前命令的响应完全送出后,才会执行下一条命令。

  •通常和卡片通讯的命令由硬件定时器进行控制 (T0、 T1、 T2、T3用于接收 ,T1用于发送)。

  •定时器计数值由AVR时钟信号完成。

  •有些程序需要中断触发,这就要求具有很高的捕获能力。

  •正如其他一些重要的任务,发送 (level2)和捕获 (level1)的任务可以并行进行,而不会互相干扰。

  数据处理

  应用软件为Uplink (send)任务准备好命令子节。所有任务将要发送的数据位流放入 data_buffer 数组。为了让前台捕获程序与后台处理分开,捕获任务将信息存入一对数组. [data bit, validity bit]。通过level1/store_bit function ,把捕获任务得到得一对信息存入到由capture_cnt 和capture_bit_count 变量索引的capture数组。capture 缓冲区在执行捕获前要初始化;data bit为0,valid bit为1。所有位有效。接收到的数据可以在后台进行查找。这种逻辑可以给出一个有序的确定的信息,而不需要异步处理或优先可重入中断处理。

  结束语

  无线射频识别具有信息量大、高效便捷、安全的特点,是自动识别的主流技术。低成本、高可靠的电子标签识读终端的研究开发有很大的实际意义。本文在研究分析系统作用原理的基础上,给出了AVR微处理器芯片以及RFID读写基站共同构成了一个完整的射频卡读写系统的硬件实现方案。系统结构和成本合理,可靠性已得到试验验证, 有较好的应用价值。

关键字:AVR单片机  M4094  FID读卡器 引用地址:基于AVR单片机和EM4094读写芯片的多协议RFID读卡器

上一篇:基于ARM的矩阵键盘设计及其linux驱动实现
下一篇:感应式电能表的智能化改进

推荐阅读最新更新时间:2024-03-16 13:38

AVR单片机ATMEAG16L定时和计数器的应用方法解析
ATMEAG16L有两个8位定时/计数器(T/CO、T/C2)和一个16位定时/计数器(T/C1)。每一个计数器都支持PWM(脉冲宽度调制)输出功能。PWM输出在电机控制、开关电源、信号发生等领域有着广泛的应用。 ATMEAG16L的定时/计数器时钟是可以选择的。它的时钟部分包括预分频器和一个多路选择器。预分频器可被认为是一个有多级输出的分频器。ATMEAG16L用一个10位的计数器把输入时钟分为4种可选择的分频输出。多路选择器可设置使用某一个分频输出,或者不使用分频输出和使用外部引脚输入时钟,下图为预分频器的基本结构。 ATMEAG16L定时/计数器的时钟选择 1.使用系统时钟这种情况下使用系统时钟作为预分频器的输入,
[单片机]
<font color='red'>AVR单片机</font>ATMEAG16L定时和计数器的应用方法解析
基于AVR单片机的智能跑步机控制器设计
1 引言 电动跑步机是目前健身器材中的主流产品,它是通过电机带动跑步带使人以不同的速度被动地跑或走,在人体用力方面,比在地面上跑、走省去了一个蹬伸动作,可使人比在地面运动消耗更多能量。但由于其功能比较单一,缺乏娱乐性和交互性,长时间锻炼会使人感到枯燥乏味。在全社会崇尚健身就是生活质量的今天,传统电动跑步机这种单调重复运动已难以满足人们对健身品质的要求,而具有虚拟现实功能的智能跑步机,以计算机虚拟的模拟环境代替现实世界的真实环境,给人身临其境的沉浸感,增加了健身的乐趣,已成为目前的研究热点。本文将传统电动跑步机与虚拟现实技术相结合,研究并设计了具备传统电动跑步机各种健身模式且具有虚拟场景漫游功能的智能电动跑步机控制系统。系统通过上
[单片机]
基于<font color='red'>AVR单片机</font>的智能跑步机控制器设计
AVR单片机的RTOS-AVRX应用
摘 要:详细介绍AVR系列单片机的专用实时嵌入式操作系统AVRX的特点,并以ATmega16单片机为平台,结合AVR单片机应用实例分析AVRX的内核代码及移植方法,并对系统的相关性能进行测试。采用AVRX可以大大简化程序设计,满足实时要求,降低编程难度,提高系统可靠性。本文为在AVR单片机上进行嵌入式系统开发提供了参考。 关键词: RTOS AVRX AVR单片机移植 系统测试 引 言 随着技术的发展,嵌入式系统的设计及应用对人们的生活产生了很大的影响,并将逐渐改变人们未来的生活方式。在特定的操作系统上开发应用程序,可以使开发人员忽略掉很多底层硬件细节,使得应用程序调试更方便、易于维护、开发周期缩短并且降低开发成本,因而嵌入
[单片机]
AVR单片机的熔丝位设置问题
初学者对熔丝经常不解,AVR芯片使用熔丝来设定时钟、启动时间、一些功能的使能、BOOT区设定、当然还有最让初学者头疼的保密位,设不好锁了芯片很麻烦。要想使MCU功耗最小也要了解一些位的设定。 1:未编程 0:编程 1、BOD(Brown-out Detection) 掉电检测电路 BODLEVEL(BOD电平选择): 1: 2.7V电平; 0:4.0V电平 BODEN(BOD功能控制): 1:BOD功能禁止;0:BOD功能允许 使用方法:如果BODEN使能(复选框选中)启动掉电检测,则检测电平由BODLEVEL决定。一旦VCC下降到触发电平(2.7v或4.0v)以下,MCU复位;当VCC电平大于触发电平后,经过tTOU
[单片机]
AVR单片机控制继电器
#include macros.h #define uchar unsigned char #define uint unsigned int void delay_ms(uchar i) { uchar a,b; for(a=1;a i;a++) for(b=1;b 141;b++) {;} } void main(void) { DDRA=0X80; PORTA=0X80; DDRB=0XFF; PORTB=0XFF; DDRC=0X01; PORTC=0X01; DDRD=0X00; PORTD=0XFF; while(1) { PORTA ^= BIT(7); delay_ms(200); delay_m
[单片机]
<font color='red'>AVR单片机</font>控制继电器
基于AVR单片机多任务嵌入式Internet系统设计
1 引言 目前,嵌入式系统已经广泛渗透到人们的工作、生活中。从家用电器、信息终端、手持通信设备到仪器仪表、制造工业、过程控制等领域,嵌入式设备已随处可见。另一方面,近几年来Internet技术的飞速发展给嵌入式应用带来了新的契机,在未来嵌入式系统中应用Internet技术具有很大的优势。 目前嵌入式Internet技术的实现主要有下面三种方式 : 第一种方式是EMIT技术,采用支持TCP/IP协议的高性能服务器作为网关(emGateway), 嵌入式设备通过RS-232、RS-485或者CAN总线等与网关服务器连接,间接通过服务器网关连接Internet。经过多年的发展EMIT技术已经在工业设备的网络化中得到了广泛
[单片机]
LCD1602子程序
/********************************************************************* 目 的: 建立LCD1602操作库 目标系统: 基于AVR单片机 应用软件: ICCAVR 版 本: Version 1.0 *********************************************************************/ /*0101010101010101010
[单片机]
一款高性能avr单片机频率计程序 10khz
#include iom16v.h #define uchar unsigned char #define uint unsigned int const uchar SEG_CODE = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00}; int main() { uchar LastKey = 0xff; DDRA = 0xff; DDRB = 0xff; DDRC = 0xff; PORTC = 0xff; DDRD = 0x00; PORTD = 0
[单片机]
一款高性能<font color='red'>avr单片机</font>频率计程序 10khz
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved