基于AVR单片机的125 kHz简易RFID阅读器设计

2020-02-14来源: eefocus关键字:AVR单片机  125  kHz  易RFID阅读器

0 引言

无线射频识别(Radio Frequency IdentifICation,RFID)是利用感应、电磁场或电磁波为传输手段,完成非接触式双向通信、获取相关数据的一种自动识别技术。该技术完成识别工作时无须人工干预,易于实现自动化且不易损坏,可识别高速运动物体并可同时识别多个射频卡,操作快捷方便,已经得到了广泛的应用。


目前存在的一些读卡器,都需要读卡芯片作为基站,成本较高。本文介绍了一种采用分立元件构成的125 kHz RFID阅读器,电路结构简单,成本极低,用于读取EM4100型ID卡。


1 RFID系统的分类


RFID系统的分类方法有很多,在通常应用中都是根据频率来分,根据不同的工作频率,可将其分为以下四种:


(1)低频(120~135 kHz)。该频段具有很强的场穿透性,使用不受限制,性能不受环境影响,价格低廉,最大识别距离一般小于60 cm,主要应用于门禁、“一卡通”消费管理、车辆管理等系统;


(2)高频(10~15 MHz)。该频段与低频相比,具有防冲撞、能同时识别多个标签的优点,但其性能受环境影响,识别距离一般小于100 cm,主要应用于图书管理、物流等系统;


(3)超高频(850~960 MHz)。该频段较高频相比,具有可实现长距离识别的的优点,最大识别距离可达10 m,但其性能受环境影响较大,价格也较贵,主要应用于铁路车辆识别、集装箱识别等系统;


(4)微波(2.45~5.8 GHz)。该频段可实现远距离识别,识别距离可达100 m,但其价格也最贵,主要应用于智能交通系统中。


2 RFID系统的组成


射频识别系统一般由阅读器、电子标签、天线三部分组成。


(1)阅读器:读取或读/写电子标签信息的设备,主要任务是控制射频模块向标签发射读取信号,并接收标签的应答,对标签的标识信息进行解码,将标识信息连带标签上其他相关信息传输到主机以供处理。一台典型的阅读器包含有高频模块(发送器和接收器)、控制单元以及与应答器连接的耦合元件。此外,许多阅读器还有附加的接口(RS 232,RS 485等),以便将所获得的数据传输给另外的系统(如个人计算机),其系统结构框图如图1所示。

(2)电子标签(应答器):由芯片及内置天线组成,芯片内保存有一定格式的电子数据,放在被识别物体上,作为待识别物品的标识性信息,它是射频识别系统真正的数据载体,内置天线用于和射频天线间进行通信。通常,应答器没有自己的供电电源,只有在阅读器的响应范围以内,应答器才是有源的。应答器工作所需的能量,是通过耦合单元(非接触的)传输给应答器的。


(3)天线:标签与阅读器之间数据传输的载体。


3 硬件电路设计

本设计以AVR系列单片机ATmega8作为微控制器。Atmel公司的AVR是8位单片机中第一个真正采用RSIC结构的单片机,它采用了大型快速存取寄存器组、快速单周期指令系统以及单级流水线等先进技术,使得AVR单片机具有高达1 MLPS/MHz的高速运行处理能力。

硬件电路如图2所示,在图2中①为载波产生及功率放大电路,由单片机的T/C2工作于CTC模式,产生标准125 kHz载波信号,经过限流电阻R1后送入推挽式连接的三极管功率放大电路,放大后的载波信号通过天线发射出去。天线L1与电容C1构成串联谐振电路,谐振频率为125 kHz,谐振电路的作用是使天线上获得最大的电流,从而产生最大的磁通量,获得更大的读卡距离。②为检波电路,检波电路用来去除125kHz载波信号,还原出有用数据信号。R2,D1,R3,C2构成基本包络检波电路,C3为耦合电容,R4,C4为低通滤波电路,D2,D3为保护二极管,输出接到滤波放大电路。③为滤波放大电路,滤波放大电路采用集成运放LM358对检波后的信号进行滤波整形放大,放大后的信号送入单片机的定时/计数器T1的输入捕捉引脚ICPl,由单片机对接收到的信号进行解码,从而得到ID卡的卡号。


4 软件设计

本系统的软件设计包括两部分:125 kHz载波的产生和ID卡解码。载波信号产生相对简单,可利用单片机的T/C2,使其工作于CTC模式,比较匹配时使输出OC2取反便可得到125 kHz的方波。解码软件设计相对较复杂,要对ID卡进行解码,首先应掌握ID卡的存储格式和数据编码方式。


4.1 EM4100数据存储格式


图3是EM4100的64位数据信息,它由5个区组成:9个引导位、10个行偶校验位“PO~P9'’、4个列偶校验位“PC0~PC3”、40个数据位“D00~D93”和1个停止位S0。9个引导位是出厂时就已掩膜在芯片内的,其值为“111111111”,当它输出数据时,首先输出9个引导位,然后是10组由4个数据位和1个行偶校验位组成的数据串,其次是4个列偶校验位,最后是停止位“0”。“D00~D13”是一个8位的晶体版本号或ID识别码。“D20~D93”是8组32位的芯片信息,即卡号。


TAG: RFID阅读器 AVR单片机


每当EM4100将64个信息位传输完毕后,只要ID卡仍处于读卡器的工作区域内,它将再次按照图3顺序发送64位信息,如此重复,直至ID卡退出读卡器的有效工作区域。


4.2 EM4100数据编码方式


EM4100采用曼彻斯特编码,如图4所示:位数据“1”对应着电平下跳,位数据“0”对应着电平上跳。在一串数据传送的数据序列中,两个相邻的位数据传送跳变时间间隔应为1P。若相邻的位数据极性相同(相邻两位均为“O”或“1”),则在两次位数据传送的电平跳变之间,有一次非数据传送的、预备性的(电平)“空跳”。电平的上跳、下跳和空跳是确定位数据传送特征的判据。在曼彻斯特码调制方式下,M4100每传送一位数据的时间是64个振荡周期,其值由RF/n决定。若载波频率为125 kHz,则每传送一位的时间为振荡周期的64分频,即位传送时间为:1P=64/125 kHz=512μs,则半个周期的时间为256μs。、


4.3 解码软件设计


ATmega8单片机T/C1的输入捕捉功能是AVR定时/计数器的一个非常有特点的功能,T/C1的输入捕捉单元可用于精确捕捉一个外部事件的发生,记录事件发生的时间印记。当一个输入捕捉事件发生时,T/C1的计数器TCNTl中的计数值被写入输入捕捉寄存器ICRl中,并置位输入捕获标志位ICFl,产生中断申请。可通过设置寄存器TCCRlB的第6位ICESl来设定输入捕捉信号触发方式。本系统利用单片机的输入捕捉功能进行解码。


由曼彻斯特编码特点可知,每位数据都由半个周期的高电平和半个周期的低电平组成,因此可将一个位数据拆分为两位,即位数据“1”可视为“10”,位数据“O”可视为“01”,则64位数据可视为由128位组成。为了获得完整且连续存放的64位ID信息,在此接收两轮完整的64位数据,即接收256位。则上一轮接收到的停止位后紧跟着的必然是本轮接收到的起始位,据此找出起始同步头。再根据曼码特点获得ID卡的有效数据(“10”解码为“1”;“01”解码为“O”)并进行LCR校验,若校验无误,则将ID卡号输出至PC机,并准备下一次的解码;否则,直接准备下一次解码。另外,在程序中首先定义一个数组bit[256]用来存放接收到的数据;定义一个变量flag用来标记256位数据接收完成;定义一个变量error用来标记校验有错误产生。由于无ID卡靠近读卡器的有效工作区时,单片机输入捕捉引脚输入的是高电平,因此在主程序中先设定为下降沿触发,清零计数器TCNTl,打开T/C1的输入捕捉功能。主程序流程图如图5所示。


在输入捕捉中断程序中定义一个触发沿标志tr=1(用于表示由下降沿引起的触发),同时定义一个无符号字符型变量i用来对接收到的数据个数进行计数,由于无符号字符型数据的取值范围为O~255,所以当接收完256位时,i的值再次变为0。接着判断是否为合法跳变,由以上分析可知,电平跳变的时间为256μs或512μs为合法跳变。本系统使用8 MHz时钟,T/C1设置为无预分频,则系统周期为O.125μs,则256μs对应计数值应为2 048,512μs对应计数值应为4 096。取计数值TCNTl小于5 000为合法跳变依据,若TC-NTl大于5 000,则认为是由干扰信号产生的非法跳变,并将其忽略,取TCNTl介于3 000~5 000之间为512μs跳变依据。若为合法跳变,由于是下降沿触发的中断,则认为接收到一位数据“1”;若为合法跳变且3 000


再将输入捕捉触发方式改为上升沿触发,设定触发沿标志tr=0(用于表示由上升沿引起的触发)。当中断是由上升沿触发时,执行类似操作。图6为中断处理程序流程图。


图6 中断处理程序流程图。


5 结语


本设计硬件电路中功放和检波部分采用分立元件构成,无需读卡基站芯片,电路结构简单,成本极低;软件部分采用C语言进行编写,提出了一种曼彻斯特编码的解码方法。由于RS 232的传输距离最大只有15 m,因此对于需要远距离数据传送的场合,可以通过加入RS 485电路以提高传输距离,从而实现远距离数据采集以及实行有关控制。在一些需要较远读卡距离的应用中,可通过改进功率放大电路(例如采用D类功率放大电路)来提高功放的效率,从而增大发射功率,增大读卡距离。通测试,系统可成功实现对EM4100 ID卡的读取,经过微调天线,最大读取距离可达15 cm,且读卡稳定、成功率高,可将其应用于门禁、公交等系统。

关键字:AVR单片机  125  kHz  易RFID阅读器 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic488243.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于AVR单片机与FPGA的低频数字式相位测量仪设计
下一篇:AVR单片机ICCAVR应用的一些小技巧

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

AVR单片机实现对步进电机的细分控制及其应用
受负载变化的影响,即给电机某相线圈加一脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域用步进电机来控制变得非常简单。虽然步进电机已被广泛地应用,但步进电机并不像普通的直流电机、交流电机那样在常规下使用。它必须在双环形脉冲信号、功率驱动电路等组成控制系统下使用。仪表步进电机属于步进电机中体积、功耗较小的类别,可以由单片机或专用芯片的引脚直接驱动,不需外接驱动器,因而在仪表中被用于指针的旋转控制。步进电机的细分技术是一种电子阻尼技术,其主要目的是提高电机的运转精度,实现步进电机步距角的高精度细分。其基本概念为:步进电机通过细分驱动器的驱动,其步距角变小了。如驱动器
发表于 2020-02-08
AVR单片机实现对步进电机的细分控制及其应用
AVR单片机熔丝位的配置
(1)在AVR的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状态, “Unprogrammed”表示熔丝状态为“1”(禁止);“Programmed”表示熔丝状态为“0”(允许)。因此,配置熔丝位的过程实际上是 “配置熔丝位成为未编程状态“1”或成为已编程状态“0””。(2)在使用通过选择打钩“√”方式确定熔丝位状态值的编程工具软件时,请首先仔细阅读软件的使用说明,弄清楚“√”表示设置熔丝位状态为“0”还是为“1”。(3)使用CVAVR中的编程下载程序时应特别注意,由于CVAVR编程下载界面初始打开时,大部分熔丝位的初始状态定义为“1”,因此不要使用其编程菜单选项中的
发表于 2020-02-08
AVR单片机性能简介
什么是AVR单片机?AVR单片机有什么优点?为什么要选择AVR单片机?AVR单片机是ATMEL公司研制开发的一种新型单片机,它与51单片机、PIC单片机相比具有一系列的优点:1:在相同的系统时钟下AVR运行速度最快;2: 芯片内部的Flsah、EEPROM、SRAM容量较大;3:所有型号的Flash、EEPROM都可以反复烧写、全部支持在线编程烧写(ISP);4:多种频率的内部RC振荡器、上电自动复位、看门狗、启动延时等功能,零外围电路也可以工作;5:每个IO口都可以以推换驱动的方式输出高、低电平,驱动能力强;6:内部资源丰富,一般都集成AD、DA模数器;PWM;SPI、USART、TWI、I2C通信口;丰富的中断源等。目前支持
发表于 2020-02-08
AVR单片机硬件电路设计方法详解
,以便以后升级AVR内的软件。JTAG仿真接口设计仿真接口也是使用双排2*5插座。需要四只10K的上拉电阻。重要说明:实际应用时,如果你不想使用JTAG仿真,并且不想受四只10K的上拉电阻的影响,可以将JP1-JP4断开。电源设计AVR单片机最常用的是5V与3.3V两种电压。本线路以开关切换两种电压,并且以双色二极管指示(5V时为绿灯,3.3V时为红灯)。二极管D1防止用户插错电源极性。D2可以允许用户将电压倒灌入此电路内,不会损坏1117-ADJ。1117-ADJ的特性为1脚会有50uA的电流输出,1-2脚会有1.25V电压。利用这个特点,可以计算出输出电压:当 SW开关打向左边时,R6上的电流为 1.25/0.33
发表于 2020-02-08
AVR单片机硬件电路设计方法详解
AVR单片机主要的特性
AVR的主要特性高可靠性、功能强、高速度、低功耗和低价位 , 一直是衡量单片机性能的重要指标,也是单片机占领市场、赖以生存的必要条件。早期单片机主要由于工艺及设计水平不高、功耗高和抗干扰性能差等原因,所以采取稳妥方案:即采用较高的分频系数对时钟分频,使得指令周期长,执行速度慢。以后的 CMOS单片机虽然采用提高时钟频率和缩小分频系数等措施,但这种状态并未被彻底改观(51以及51兼容)。此间虽有某些精简指令集单片机(RISC)问世,但依然沿袭对时钟分频的作法。AVR单片机的推出,彻底打破这种旧设计格局,废除了机器周期,抛弃复杂指令计算机(CISC)追求指令完备的做法;采用精简指令集,以字作为指令长度单位,将内容丰富的操作数与操作
发表于 2020-02-07
AVR单片机学习SPI串行口与DS1302
之间怎样进行互联呢?我们看以采用下面的这种方法。来看下电路图上图的PB5 PB6 PB7是单片机的三个I/O口。 可以看他它的第二功能是SPI功能PB5可以看到MOSI M是主 S 是从 意思就是主机输出 从机输入同理PB6 MISO 是主机输入从机输出也就是AVR的SPI正常工作的时候PB6这个引脚它应该是处于一个输入的状态PB5应该是一个输出的状态。我们就将PB5 与PB6之间串上一个10K的电阻然后再将PB6直接接到I/O上,下面我们可以简单的分析一下原理图是怎样正常工作的,首先这个DS1302对它处于写的状态的时候呢,DS1302的I/O口是处于输入的,而PB6呢也是一个输入口始终是一个输入口。
发表于 2020-02-07
AVR单片机学习SPI串行口与DS1302
小广播
何立民专栏 单片机及嵌入式宝典

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

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved