基于AVR单片机和EM4094射频卡读写基站的多协议读写器的设计

标签:AtmelAVR
分享到:


        引言

        射频识别(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存储器将可提供更好的编程自由度。

        除了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的可选跨导(通过一个寄存器标识选择)和晶体参数决定。


图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应用指南。


图 2 引脚定义

        收发器信号接收

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

表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读写基站共同构成了一个完整的射频卡读写系统的硬件实现方案。系统结构和成本合理,可靠性已得到试验验证, 有较好的应用价值。

继续阅读
51单片机、AVR单片机和PIC单片机IO口的操作

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。

一个小经验,让你的AVR单片机功耗超低

休眠电流要最小:掉电模式必须的,然后能关闭的功能全部关闭,关闭BOD检测,关闭看门狗,电压越低越好,1.8V,频率越低越好。

51、AVR与PIC,三种单片机IO口的操作

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。

14个官方视频教程,助您学习AVR系列单片机

AVR® Insights — 第1集 — AVR存储器 AVR® Insights — 第2集 — 边写边读存储器 AVR® Insights — 第3集 — 端口 AVR® Insights — 第4集 — 休眠模式 AVR® Insights — 第5集 &mdash

关于AVR单片机,你了解多少?

什么是AVR单片机?AVR单片机有什么优点?为什么要选择AVR单片机?

©2019 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss