低频RFID阅读器设计课件

上传人:仙*** 文档编号:241031945 上传时间:2024-05-26 格式:PPT 页数:44 大小:2.35MB
返回 下载 相关 举报
低频RFID阅读器设计课件_第1页
第1页 / 共44页
低频RFID阅读器设计课件_第2页
第2页 / 共44页
低频RFID阅读器设计课件_第3页
第3页 / 共44页
点击查看更多>>
资源描述
第4章 低频RFID阅读器设计目录 4.1 低频ID卡 4.2 EM4095 4.3 低频RFID阅读器程序设计本章目标 了解EM4095的功能掌握EM4095的原理框图掌握EM4095与MCU的接口掌握EM4100卡的特点掌握EM4100卡解码方法学习导航 任务描述【描述】4.D.1使用AVR通过EM4095读取一个EM4100卡的卡号。4.1 低频ID卡 低频RFID由于频率较低,带宽有限,所以不适合传输大数据量以及数据写入。因此低频RFID标签通常是以ID卡的形式出现,即在标签中固化一串ID号,阅读器仅可以阅读,不能写入和更改。ID卡仅提供一个ID卡号,通常用来做身份识别,更多的功能需要依赖于阅读器。阅读器读取ID号后进行比对后执行相关处理或者传入上位机或网络进行处理。4.1 低频ID卡-常见低频ID卡 低频ID卡通常采用无源设计,将ID芯片和天线封装在一起,做成卡片或标签的样式。其结构如图4-1所示。4.1 低频ID卡-常见低频ID卡 常见的ID芯片有EM公司的EM4100及其兼容的TK4001系列、HID系列和摩托罗拉等几种。目前市场上使用较多的为前两种,其读取方法也不尽相同:4.1 低频ID卡-常见低频ID卡 EM4100系列ID卡芯片可用同一个公司配套的EM4095读卡芯片,方便读取其ID号。HID系列卡有自己的加密协议和读取方法,并且不公开,所以EM4095读卡芯片无法读取其ID号,只能使用专用HID类读卡器。因此本书中将不详细讲解此系列卡。注意注意 本章后续章节,将以AVR单片机为核心,EM4095芯片为收发通道实现一个对EM4100系列芯片(及其兼容卡)的ID卡解码的低频RFID阅读器。4.1 低频ID卡-EM4100 EM4100是EM公司生产的只读型非接触ID卡芯片,典型频率为125kHz,内部固化64个bit数据一旦进入阅读器范围内,则受到阅读器天线发出的载波耦合后,将64个bit的数据不断发回阅读器。EM4100内部64bit相关定义如图4-2所示。4.1 低频ID卡-常见低频ID卡 64个bit数据共分为五部分,其含义下所述:同步头,共由9个1组成,用于识别数据开始传送。版本信息和客户ID,共由D00-D13,8个bit组成,记录版本信息和客户ID号。数据,共由D20-D93,32个bit组成,存储ID卡号。校验位,P为每一行数据的偶校验,例如,P0为0行校验,即D00-D03四位比特的偶校验。PC为每一列数据的偶校验,例如PC0为D00-D90 10个bit的偶校验。停止位,S0为停止位,即单bit0。4.1 低频ID卡-EM4100解码 对EM4100进行解码时,判断一帧完整数据的开始,需要判断同步头,因为数据中的行列校验会保证数据中不会连续出现9个1。由于只要在阅读器范围内,EM4100会循环送出内部的64bit数据,并且最后一个停止位为数据0。因此判断同步头的方法是当第一次读取数据时,遇到0至1的跳变开始计数,如果读到连续9个1,则为同步头,从同步头往后可顺序读取剩余的bit位。4.1 低频ID卡-EM4100解码 EM4100内部的64bit数据采用时钟(典型频率为125kHz)64分频的速率进行发送,每位bit的传送时间为:(1s/125000)*64=512us数据采用曼彻斯特码编码,即每个bit被分为两位传输,每两个曼彻斯特码宽度为512us。如表4-1所示。原码原码曼彻斯特码曼彻斯特码1100014.2 EM4095 EM4095是EM微电子公司生产的一款低频AM调制解调芯片,常用作低频RFID阅读器的模拟前端。4.2 EM4095-功能概述 EM4095是EM公司生产的一款CMOS芯片,与MCU接口简单,在RFID阅读器中可用于天线驱动和调制解调。除此之外,还有其他特性如下所述:内置的PLL锁相环可自适应天线谐振载波。无需外部振荡器。100到150kHz载波频率范围。数据发送采用OOK(100%AM调幅)方式,使用桥路激励器。数据发送通过调幅方式,可使用单芯片通过外部调节。睡眠模式电流1uA。兼容USB供电范围。40到85度温度范围。SO16封装。4.2 EM4095-功能概述 EM4095共有16个引脚,其芯片引脚图如图4-3所示。4.2 EM4095-功能概述 EM4095芯片引脚定义如表4-2所示。管脚管脚名称名称描述描述类型类型1 1VSSVSS电源地电源地地地2 2RDY/CLKRDY/CLK就绪标志和时钟输出,就绪标志和时钟输出,AMAM调幅驱动调幅驱动输出输出3 3ANT1ANT1天线驱动天线驱动输出输出4 4DVDDDVDD天线驱动正电源天线驱动正电源电源电源5 5DVSSDVSS天线驱动负电源天线驱动负电源地地6 6ANT2ANT2天线驱动天线驱动输出输出7 7VDDVDD正电源正电源电源电源8 8DEMOD_INDEMOD_IN天线探测电压天线探测电压模拟信号模拟信号9 9CDEC_OUTCDEC_OUTDCDC电容输出电容输出模拟信号模拟信号1010CDEC_INCDEC_INDCDC电容输入电容输入模拟信号模拟信号1111AGNDAGND模拟地模拟地模拟信号模拟信号1212MODMOD天线高电平调制天线高电平调制上拉输入上拉输入1313DEMOD_OUTDEMOD_OUT数字解调数据输出数字解调数据输出输出输出1414SHDSHD高电平驱动电流进入休眠态高电平驱动电流进入休眠态上拉输入上拉输入1515FCAPFCAPPLLPLL滤波电容滤波电容模拟信号模拟信号1616DC2DC2DCDC去耦电容去耦电容模拟信号模拟信号4.2 EM4095-原理框图 EM4095内部结构比较简单,原理框图如图4-4所示。4.2 EM4095-功能概述 1.SHD1.SHDEM4095的引脚SHD和MOD用来操作设备,SHD的功能如下所述:当SHD为高电平的时候,EM4095为睡眠模式,电流消耗最小。在上电的时候,SHD输入必须是高电平,用来使能正确的初始化操作。当SHD为低电平的时候,回路允许发射射频场,并且开始对天线上的振幅调制信号进行解调。4.2 EM4095-功能概述 2.MOD引脚MOD是用来对125KHz射频信号进行调制的,其功能如下所述:在MOD引脚上施加高电平时,将把天线驱动阻塞,并关掉电磁场。在MOD引脚上施加低电平,将使片上VCO进入自由运行模式,天线上将出现没有经过调制的125KHz的载波。EM4095用作只读模式,引脚MOD没有使用,推荐将它连接至VSS。4.2 EM4095-功能概述 3.3.锁相环锁相环由环路滤波、采样器和比较模块等组成。通过使用外部电容分压,DEMOD_IN引脚上得到天线上的真实的高电压。这个信号的相位和驱动天线驱动器的信号的相位进行比较。所以锁相环可以将载波频率锁定在天线的谐振频率上。根据天线种类的不同,系统的谐振频率可以在100kHz到150kHz之间的范围内。当谐振频率在这一范围内的时候,它就会被锁相环锁定。4.2 EM4095-功能概述 4.DEMOD_INDEMOD_IN引脚做接收链路的输入信号。接收模块解调的输入信号是天线上的电压信号。DEMOD_IN输入信号的级别应该低于VDD-0.5V,高于VSS+0.5V。通过外部电容分压可以调节输入信号的级别。分压器增加的电容必须通过相对较小的谐振电容来补偿。4.2 EM4095-功能概述 5.RDY/CLK5.RDY/CLKRDY/CLKRDY/CLK这个信号为外部微处理器提供这个信号为外部微处理器提供ANT1ANT1上信上信号的号的同步时钟同步时钟以及以及EM4095EM4095内部状态内部状态的信息。的信息。ANT1ANT1上的同步时钟表示上的同步时钟表示PLLPLL被锁定并且接收链路被锁定并且接收链路操作点被设置。操作点被设置。其状态受到其状态受到SHDSHD和和MODMOD的影响,如下所述:的影响,如下所述:4.2 EM4095-功能概述 5.RDY/CLK5.RDY/CLK当当SHDSHD为高电平时,为高电平时,RDY/CLKRDY/CLK引脚被强制为引脚被强制为低低电平电平。当当SHDSHD上的电平由高转低时,上的电平由高转低时,PLLPLL为锁定状态,为锁定状态,接收链路工作。接收链路工作。经过时间经过时间TsetTset后,后,PLLPLL被锁定,接收链路操作被锁定,接收链路操作点已经建立。点已经建立。这时候,传送到这时候,传送到ANT1ANT1上的信号同时也上的信号同时也传送传送至至RDY/CLKRDY/CLK,提示微处理器可以开始观察,提示微处理器可以开始观察DEMOD_OUTDEMOD_OUT上的信号和于此同时的时钟信号。上的信号和于此同时的时钟信号。4.2 EM4095-功能概述 5.RDY/CLK5.RDY/CLK当当MODMOD为高电平时,为高电平时,ANTANT驱动器关闭,但此时驱动器关闭,但此时RDY/CLKRDY/CLK引脚上的时钟信号仍然在引脚上的时钟信号仍然在继续继续。当当SHDSHD引脚上的电平从高到低之后,经过时间引脚上的电平从高到低之后,经过时间TsetTset后,后,RDY/CLKRDY/CLK引脚上的信号被引脚上的信号被100k100k的下的下拉电阻拉低。拉电阻拉低。这样做的原因是为了标签的这样做的原因是为了标签的AMAM调制低于调制低于100100情况下情况下RDY/CLKRDY/CLK的指示。的指示。4.2 EM4095-功能概述 6.DVDD6.DVDD和和DVSSDVSSDVDDDVDD和和DVSSDVSS脚应该分别和脚应该分别和VDDVDD以及以及VSSVSS连接。连接。为了使通过管脚为了使通过管脚DVDDDVDD和和DVSSDVSS流过的驱动器电流造流过的驱动器电流造成的电压降不会引起成的电压降不会引起VDDVDD和和VSSVSS上的电压降,上的电压降,在在DVSSDVSS和和DVDDDVDD脚之间应该加一个脚之间应该加一个100nF100nF的电容的电容,并使其尽量靠近芯片。并使其尽量靠近芯片。这将防止由于天线驱动器引起的电源尖峰。对管这将防止由于天线驱动器引起的电源尖峰。对管脚脚VSSVSS和和VDDVDD进行隔离也是有用的。进行隔离也是有用的。4.2 EM4095-功能概述 6.DVDD6.DVDD和和DVSSDVSS所有和管脚所有和管脚DC2/AGND/DMOD_INDC2/AGND/DMOD_IN相关的电容都应该相关的电容都应该连接到相同的连接到相同的VSSVSS线上。线上。这条线应该直接和芯片上的管脚这条线应该直接和芯片上的管脚VSSVSS相连。相连。该线不能再连接其他元件或者成为为该线不能再连接其他元件或者成为为DVSSDVSS供电的供电的线路的一部分。线路的一部分。AGNDAGND管脚上的电容值可以从管脚上的电容值可以从220nF220nF上升到上升到1uF1uF。电。电容越大将越明显的减小接收噪声。容越大将越明显的减小接收噪声。AGNDAGND的电压可以通过外部电容和内部的的电压可以通过外部电容和内部的2k2k的电的电阻进行滤波。阻进行滤波。4.2 EM4095-功能概述 7.ANT7.ANTEM4095EM4095不限制不限制ANTANT驱动器发出的电流值。驱动器发出的电流值。这两个输出上的最大绝对值是这两个输出上的最大绝对值是300mA300mA。对天线谐振回路的设计应该使最大的尖峰电流不超对天线谐振回路的设计应该使最大的尖峰电流不超过过250mA250mA。如果天线的品质因数很高,这个值就可能超过,则如果天线的品质因数很高,这个值就可能超过,则必须通过必须通过串联电阻串联电阻加以限制。加以限制。增加增加Cdc2Cdc2电容值,将增加接收带宽,进而增加斜坡电容值,将增加接收带宽,进而增加斜坡信号的接收增益。信号的接收增益。Cdc2Cdc2的推荐范围是的推荐范围是6.8nF6.8nF到到22nF22nF。CdecCdec为为33nF33nF到到220nF220nF。电容值越高,开始上升时间电容值越高,开始上升时间越长越长。4.2 EM4095-功能概述 8.FCAP8.FCAPFCAPFCAP引脚上的引脚上的偏置电压偏置电压。这个偏置电压补偿了外部天线驱动器引起的相位偏这个偏置电压补偿了外部天线驱动器引起的相位偏移。移。4.2 EM4095-与MCU接口 EM4095EM4095管脚较少,结构简单,与管脚较少,结构简单,与MCUMCU的接口如图的接口如图4-4-5 5所示。所示。4.2 EM4095-功能概述 EM4095EM4095通过跳线分别于通过跳线分别于ATmage16AATmage16A的相关引脚相的相关引脚相连。跳线如图连。跳线如图4-6 4-6 所示。所示。4.2 EM4095-功能概述 ATmage16A的相关引脚如图4-7所示。4.2 EM4095-功能概述 分析电路图可知,EM4095的管脚与ATmega16A管脚的对应关系如表4-3所示。EM4095EM4095ATmega16lATmega16l管脚管脚名称名称管脚管脚名称名称2 2RDY/LCKRDY/LCK3 3PB7PB71212MODMOD4343PB3PB31313DEMOD_OUTDEMOD_OUT2 2PB6PB61414SHDSHD1 1PB5PB54.3 低频RFID阅读器程序设计 低频RFID阅读器程序,主要工作便是能够正确的读取标签的ID号码一般分为三部分:初始化程序、驱动程序和主程序。4.3 4.3 低频低频RFIDRFID阅读器程序设计阅读器程序设计 -初始化程序初始化程序 初始化程序用于各种管脚和器件的初始化,以便能够正常进行解码。基于模块化和移植的考虑,可将本例中GPIO设置子程序单独封装成为子函数gpio_config(),具体源码如下所示:【描述描述4.D.14.D.1】gpio_config()gpio_config()/gpio配置void gpio_config(void)/PD7、PC7和PD2管脚配置DDRD|=(1PD7);PORTD|=(1PD7);DDRC|=(1PC7);PORTC|=(1PC7);DDRD&=(1PD2);4.3 4.3 低频低频RFIDRFID阅读器程序设计阅读器程序设计 -初始化程序初始化程序 EM4095相关管脚设置子程序单独封装成为子函数EM_config(),具体源码如下所示:【描述描述4.D.14.D.1】EM_config()EM_config()/em4095配置void EM_config(void)/em4095相关管脚配置DDRB|=EM_SHD|EM_MOD;DDRB&=EM_DM_OUT;EM_PORT|=EM_SHD;/定时器1配置,实现精确定时TCCR1B&=(1CS10)|(1CS12);TCCR1B|=(1CS11);/TCNT1=600;OCR1A=64600;TCCR1A&=(1WGM11)|(1WGM10);TCCR1B&=(1WGM13);TCCR1B|=(1WGM12);TIMSK|=(1OCIE1A);SREG|=(1 7);4.3 4.3 低频低频RFIDRFID阅读器程序设计阅读器程序设计 -初始化程序初始化程序 串口设置子程序单独封装成为子函数串口设置子程序单独封装成为子函数uart_configuart_config(),(),具体源码如下具体源码如下所示:所示:【描述描述4.D.14.D.1】uart_config()uart_config()/串口设置串口设置void void uart_config(voiduart_config(void)/串口相关寄存器配置串口相关寄存器配置UCSRA|=(1U2X);UCSRA|=(1U2X);UCSRB|=(1RXCIE);UCSRB|=(1RXCIE);UCSRC|=(1URSEL)|(1UCSZ1)|(1UCSZ0);UCSRC|=(1URSEL)|(1UCSZ1)|(1UCSZ0);UCSRC&=(1UMSEL)|(1UPM1)|(1UPM0)|(1USBS);UCSRC&=(1UMSEL)|(1UPM1)|(1UPM0)|(1USBS);UBRRH&=(1URSEL);UBRRH&=(1URSEL);/波特率波特率115200115200UBRRH=0;UBRRH=0;UBRRL=7;UBRRL=7;UCSRB|=(1RXEN)|(1TXEN);UCSRB|=(1RXEN)|(1TXEN);4.3 4.3 低频低频RFIDRFID阅读器程序设计阅读器程序设计 -驱动程序驱动程序 驱动程序是驱动程序是EM4095EM4095能够正确解码的相关演示程序、解码能够正确解码的相关演示程序、解码子程序等。子程序等。因本例中曼彻斯特码有严格的码元间隙,所以需要因本例中曼彻斯特码有严格的码元间隙,所以需要512us512us的延时子函数,该函数单独封装成为子函数的延时子函数,该函数单独封装成为子函数delay_512usdelay_512us(),(),具体源码如下所示:具体源码如下所示:【描述描述4.D.14.D.1】delay_512us()delay_512us()/512us/512us延时子函数延时子函数void delay_512us(int x)void delay_512us(int x)/使用定时器实现定时使用定时器实现定时TIFR|=(1OCF1A);TIFR|=(1OCF1A);TCNT1=0;TCNT1=0;while(TCNT1x);while(TCNT1505&TCNT1505&TCNT1520)/判断随后是否连续判断随后是否连续8 8个个1 1for(ifor(i=0;i8;i+)=0;i8;i+)/以以512us512us四分之三的位置判断逻辑电平四分之三的位置判断逻辑电平delay_512us(380);delay_512us(380);c_lc_l=PINB&EM_DM_OUT;=PINB&EM_DM_OUT;if(c_lif(c_l!=0)!=0)codeicodei=1;=1;elseelse codeicodei=0;=0;code_stcode_st=0;=0;while(PINB&EM_DM_OUTwhile(PINB&EM_DM_OUT););elseelsecode_stcode_st=0;=0;/返回判断同步头情况返回判断同步头情况if(code_stif(code_st=1)=1)return 1;return 1;elseelsereturn 0;return 0;4.3 4.3 低频低频RFIDRFID阅读器程序设计阅读器程序设计 -驱动程序驱动程序 本例中曼彻斯特解码功能单独封装成为子函数本例中曼彻斯特解码功能单独封装成为子函数read_idread_id(),具体源码如下所(),具体源码如下所示:示:【描述描述4.D.14.D.1】read_id()read_id()/曼彻斯特解码曼彻斯特解码char char read_id(voidread_id(void)char char stst=0;=0;char i=0;char i=0;char char c_Lc_L;EM_PORT&=EM_SHD;EM_PORT&=EM_SHD;stst=read_id_startread_id_start();();/如果读到同步头如果读到同步头if(stif(st=1)=1)/顺序读取剩余顺序读取剩余bitbitfor(ifor(i=8;i63;i+)=8;i63;i+)/以以512us512us四分之三的位置判断逻辑电平四分之三的位置判断逻辑电平delay_512us(384);delay_512us(384);if(PINB&EM_DM_OUTif(PINB&EM_DM_OUT)codeicodei=1;=1;while(PINB&EM_DM_OUTwhile(PINB&EM_DM_OUT););elseelse codeicodei=0;=0;while(!(PINB&EM_DM_OUTwhile(!(PINB&EM_DM_OUT););return 1;return 1;elseelsereturn 0;return 0;4.3 4.3 低频低频RFIDRFID阅读器程序设计阅读器程序设计 -驱动程序驱动程序 本例中曼彻斯特解码功能单独封装成为子函数本例中曼彻斯特解码功能单独封装成为子函数read_idread_id(),具体源(),具体源码如下所示:码如下所示:【描述描述4.D.14.D.1】read_id()read_id()/曼彻斯特解码曼彻斯特解码char char read_id(voidread_id(void)char char stst=0;=0;char i=0;char i=0;char char c_Lc_L;EM_PORT&=EM_SHD;EM_PORT&=EM_SHD;stst=read_id_startread_id_start();();/如果读到同步头如果读到同步头if(stif(st=1)=1)/顺序读取剩余顺序读取剩余bitbitfor(ifor(i=8;i63;i+)=8;i63;i+)/以以512us512us四分之三的位置判断逻辑电平四分之三的位置判断逻辑电平delay_512us(384);delay_512us(384);if(PINB&EM_DM_OUTif(PINB&EM_DM_OUT)codeicodei=1;=1;while(PINB&EM_DM_OUTwhile(PINB&EM_DM_OUT););elseelse codeicodei=0;=0;while(!(PINB&EM_DM_OUTwhile(!(PINB&EM_DM_OUT););return 1;return 1;elseelsereturn 0;return 0;4.3 4.3 低频低频RFIDRFID阅读器程序设计阅读器程序设计 -主程序主程序 【描述描述4.D.14.D.1】main.cmain.c/*/*宏定义宏定义*/开启比特定义开启比特定义#define ENABLE_BIT_DEFINITIONS 1#define ENABLE_BIT_DEFINITIONS 1#define EM_SHD (1PB5)#define EM_SHD (1PB5)#define EM_DM_OUT (1PB6)#define EM_DM_OUT (1PB6)#define EM_MOD (1PB3)#define EM_MOD (1PB3)#define EM_PORT PORTB#define EM_PORT PORTBchar code64=0;char code64=0;char*p;char*p;/*/*头文件头文件*/#include#include/*/*子函数子函数 */void void gpio_config(voidgpio_config(void););void void EM_config(voidEM_config(void););char char read_id(voidread_id(void););void void uart_config(voiduart_config(void););void delay_512us(int x);void delay_512us(int x);char char read_id_start(voidread_id_start(void););/*/*主函数主函数 */main()main()char st=0;char st=0;gpio_config();gpio_config();EM_config();EM_config();uart_configuart_config();();p=code;p=code;/主循环主循环while(1)while(1)stst=read_idread_id();();if(stif(st)/如果完成解码,则将蜂鸣器鸣响一声如果完成解码,则将蜂鸣器鸣响一声PORTD&=(1PD7);PORTD&=(1PD7);delay_512us(5000);delay_512us(5000);delay_512us(5000);delay_512us(5000);delay_512us(5000);delay_512us(5000);delay_512us(5000);delay_512us(5000);delay_512us(5000);delay_512us(5000);delay_512us(5000);delay_512us(5000);delay_512us(5000);delay_512us(5000);delay_512us(5000);delay_512us(5000);delay_512us(5000);delay_512us(5000);delay_512us(5000);delay_512us(5000);PORTD|=(1PD7);PORTD|=(1PD7);小结 通过本章的学习,学生应该能够掌握:通过本章的学习,学生应该能够掌握:低频低频IDID卡通常采用无源设计,将卡通常采用无源设计,将IDID芯片和天线封芯片和天线封装在一起,做成卡片或标签的样式装在一起,做成卡片或标签的样式低频低频RFIDRFID由于频率较低,带宽有限,所以不适合由于频率较低,带宽有限,所以不适合传输大数据量以及数据写入,因此低频传输大数据量以及数据写入,因此低频RFIDRFID标签标签通常是以通常是以IDID卡的形式出现卡的形式出现EM4100EM4100是是EMEM公司生产的只读型非接触公司生产的只读型非接触IDID卡芯片,卡芯片,典型频率为典型频率为125kHz125kHz,内部固化,内部固化6464个个bitbit数据数据并且由于只要在阅读器范围内,并且由于只要在阅读器范围内,EM4100EM4100会循环送会循环送出内部的出内部的64bit64bit数据,并且最后一个停止位为数据数据,并且最后一个停止位为数据0 0EM4095EM4095是一款是一款CMOSCMOS芯片,与芯片,与MCUMCU接口简单,在接口简单,在RFIDRFID阅读器中可用于天线驱动和调制解调阅读器中可用于天线驱动和调制解调谢谢
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!