基于AVR单片机射频卡多协议读写器的设计 - 中国一卡通网
用户名密码 [免费注册] [找回密码] 推广技巧 发布求购 建商铺  发产品  会员体制比较  
 

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

来源:中国一卡通网  作者:中国一卡通网 收编  发布时间:2010-10-29 15:26:36  字体:[ ]

关键字:读写器  射频卡  单片机  

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


    单片机的选择

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

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

    硬件设计注意事项

 电源设计

 首先,我们简要讨论一下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的可选跨导(通过一个寄存器标识选择)和晶体参数决定。

 带隙参考电压被不同的内部模块用作模拟参考电压。为了确保读卡器芯片的稳定性和可靠性,用一个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应用指南。

    RFIN1和RFIN2是该IC接收链上的两个输入引脚,它们被EM4094用来解调收发器送过来的数据流,其引脚 上的电压必须设定在GND和VDD之间,这两个解调输入必须具有相同的性能和呈现出相同的灵敏度。配合一个外部匹配阻抗电路,这两个输入端可用于解调输入的相位或幅度调制信号。未使用的输入脚应当通过一个10nF的电容接至模拟地。输入引脚的高灵敏度使得读卡器即便在电子标签的最小电源级别上仍能有较远的读取距离。 
EN引脚用于使能或关闭读卡器IC。该输入引脚可由一个外部微控制器进行控制。当EN引脚为高电平时,EM4094进入激活模式,其输出在天线上产生 13.56MHz信号;当EN引脚为低电平时,读卡器芯片进入睡眠模式,这样可大大降低读卡器芯片的功耗。在设计手提式读卡器时,EM4094的这一性能特别有用,它可提高电池的使用寿命。

 数据输入与输出

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

 安全功能

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

 固件程序设计

 程序层次划分

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

 主程序设计

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

更多

新闻投稿合作邮箱:yktchina-admin@163.com    字体[ ] [收藏] [进入论坛]

推荐文章

论坛热帖