射频识别RFID实验教程III.docx
《射频识别RFID实验教程III.docx》由会员分享,可在线阅读,更多相关《射频识别RFID实验教程III.docx(23页珍藏版)》请在冰点文库上搜索。
射频识别RFID实验教程III
第3章通信原理实验部分
3.1RFID系统的调制与解调
3.1.1RFID系统的调制方式
RFID系统通常采用数字调制方式传送信息,用数字调制信号(包括数字基带信号和已调脉冲)对高频载波进行调制。
已调脉冲包括NRZ码的FSK、PSK调制波和副载波调制信号,数字基带信号包括曼彻斯特码、密勒码、修正密勒码信号等,这些信号包含了要传送的信息。
数字调制方式有幅移键控(ASK)、频移键控(FSK)和相移键控(PSK)。
RFID系统中采用较多的是ASK调制方式。
ASK调制的时域波形参见图3-1,但不同的是,图中的包络是周期脉冲波,而ASK调制的包络波形是数字基带信号和已调脉冲。
图3-1ASK调制波波形
3.1.2ASK调制方式的实现
(1)副载波负载调制:
首先用基带编码的数据信号调制低频率的副载波,可以选择振幅键控(ASK)、频移键控(FSK)、或相移键控(PSK)调制作为副载波调制的方法。
副载波的频率是通过对高频载波频率进行二进制分频产生的。
然后用经过编码调制的副载波信号控制应答器线圈并接负载电阻的接通和断开,即采用经过编码调制的副载波进行负载调制,以双重调制方式传送编码信息。
使用这种传输方式可以降低误码率,减小干扰,但是硬件电路较负载调制系统复杂。
在采用副载波进行负载调制时,需要经过多重调制,在阅读器中,同样需要进行逐步多重解调,这样系统的调制解调模块过于繁琐,并且用于分频的数字芯片对接收到的信号的电压幅度和和频率范围要求苛刻,不易实现。
(2)负载调制:
电感耦合系统,本质上来说是一种互感耦合,即作为初级线圈的阅读器和作为次级线圈的应答器之间的耦合。
如果应答器的固有谐振频率与阅读器的发送频率相符合,则处于阅读器天线的交变磁场中的应答器就能从磁场获得最大能量。
同时,与应答器线圈并接的阻抗变化能通过互感作用对阅读器线圈造成反作用,从而引起阅读器线圈回路变换阻抗ZT的变化,即接通或关断应答器天线线圈处的负载电阻会引起阻抗ZT的变化,从而造成阅读器天线的电压变化。
如图3-2所示:
图3-2负载调制原理示意图
根据这一原理,我们在应答器中以二进制编码信号控制开关S,即通过编码数据控制应答器线圈并接负载电阻的接通和断开,使这些数据以调幅的方式从应答器传输到阅读器,这就是负载调制。
在阅读器端,对阅读器天线上的电压信号进行包络检波,并放大整形得到所需的逻辑电平,实现数据的解调回收。
电感耦合式射频识别系统的负载调制有着与阅读器天线高频电压的振幅键控(ASK)调制相似的效果(见图3-3)。
图3-3负载调制实现数据传输的过程
图3-2中的负载调制方式称为电阻负载调制,其实质是一种振幅调制,调节接入电阻R2的大小可改变调制度的大小。
本实验系统中由开关管T4完成负载调制(见图2-13所示)。
T4的基极通过R15电阻与单片机U5的编码信号输出端口P3.1相连。
在单片机输出的编码信号的控制下,T4在高电平到来时导通,在低电平时截止,造成应答器线圈并接的负载电路的阻抗发生变化,应答器线圈负载阻抗的变化通过互感作用对阅读器线圈造成反作用,从而引起阅读器线圈回路变换阻抗ZT的变化,以此实现数据的变化与阅读器线圈回路变换阻抗ZT变化的同步,从而造成阅读器天线的电压变化。
因此数据便以ASK的方式由应答器传到了阅读器。
需要注意的是:
由于此处是高电平导通,低电平截止,所以载波电压的高低与数据是相反的,阅读器检波出来的信号并不是应答器发送的码字,而是其反码。
3.1.3ASK调制信号的解调
(1)包络检波:
大信号的检波过程,主要是利用二极管的单向导电特性和检波负载RC的充放电过程。
利用电容两端电压不能突变只能充放电的特性来达到平滑脉冲电压的目的,如图3-4所示。
图3-4包络检波原理
实验电路如图3-5所示,在高频信号正半周D1导通时,检波电流分三个流向:
一是流向负载R7(4.7K),产生的直流电压是二极管的反相偏压,对二极管相当于负反馈电压,可以改变检波特性的非线性;二是流向负载电容C14(103)充电;三是流向负载R8(10K)作为输出信号。
如忽略D1的压降则在电容上的电压等于D1输入端电压U2,当U2达到最大的峰值后开始下降,此时电容C14上的电压Uc也将由于放电而逐渐下降,当U2Uc时二极管再导通,再次循环下去。
图3-5包络检波电路
因为包络检波电路会改变耦合线圈L2的Q值,使谐振回路谐振状态发生变化,为了减小检波电路对谐振状态的影响,采用松耦合方式,即在耦合线圈和检波电路之间串联一个小电容C11和一个电阻R6,使检波电路的阻抗远大于谐振线圈L2的阻抗,从而使检波电路对谐振状态的影响减小。
检波电路是连续波串联式二极管大信号包络检波器。
图中R7为负载电阻,其阻值较大;C14为负载电容,它的取值应选取得在高频时,其阻抗远小于R7的阻值,可视为短路,而在调制频率比较低时,其阻抗远大于R6,可视为开路。
线圈L3有存储电能的作用,能有效提高检波电路的输出信号电压。
(2)比较电路:
经过包络检波以及放大后的的信号存在少量的杂波干扰,而且电压太小,如果直接将检波后的信号送给单片机2051进行解码,单片机会因为无法识别而不能解码或解码错误。
比较器主要是用来对输入波形进行整形,可以将正弦波或任意不规则的输入波形整形为方波输出。
比较电路由LM358组成,如图3-6所示。
R510KΩ
R510KΩ
R41KΩ
图3-6比较电路
LM358类似于增益不可调的运算放大器,其电路结构如图3-7所示。
每个比较器有两个输入端和一个输出端。
两个输入端一个称为同相输入端,用“+”表示,另一个称为反相输入端,用“-”表示。
用作比较两个电压时,任意一个输入端加一个固定电压做参考电压(也称为门限电平,它可选择LM358输入共模范围的任何一点),另一端加一个待比较的信号电压。
当“+”端电压高于“-”端时,输出管截止,相当于输出端开路。
当“-”端电压高于“+”端时,输出管饱和,相当于输出端接低电位。
两个输入端电压差别大于10mV就能确保输出能从一种状态可靠地转换到另一种状态,因此,把LM358用在弱信号检测等场合是比较理想的。
LM358的输出端相当于一只不接集电极电阻的晶体三极管,在使用时输出端到正电源一般须接一只电阻(称为上拉电阻,选3-15K)。
选不同阻值的上拉电阻会影响输出端高电位的值。
因为当输出晶体三极管截止时,它的集电极电压基本上取决于上拉电阻与负载的值。
另外,各比较器的输出端允许连接在一起使用。
信号送到LM358后先由电压跟随器进行阻抗匹配,电压跟随器的特点是输入阻抗小输出阻抗大,经过变换后使电压比较器输入阻抗匹配,完成包络的整形输出。
然后进行电压比较,通过调整比较电平的电压值来得到二进制信号,比比较电平值大的电压判为高电平,用‘1’表示;比比较电平的值小的电压判为低电平,用‘0’表示。
R5(10K)和20K可变电阻RP1给LM358的2脚比较端设定一个偏置电压,通过调整20K的可变电阻来控制比较电平的高低,使2脚的比较电平比3脚的电平值低0.5V左右即可。
经过比较后的信号由1脚输出到解码单片机U3。
3.2RFID系统的编码与解码
在RFID系统中,为使阅读器在读取数据时能很好地解决同步的问题,往往不直接使用数据的NRZ码对射频进行调制,而是将数据的NRZ码进行编码变换后再对射频进行调制。
所采用的变换编码主要有曼彻斯特码、密勒码和修正密勒码等。
RFID系统的编码与解码可以采用编码器、解码器或软件实现方法完成。
本实验系统采用软件编程方法实现应答器端的编码和阅读器端的解码。
3.2.1曼彻斯特码
(1)曼彻斯特(Manchester)码编码与解码方式:
在曼彻斯特码中,1码是前半(50%)位为高电平,后半(50%)位为低电平;0码是前半(50%)位为低电平,后半(50%)位为高电平。
NRZ码和数据时钟进行异或便可得到曼彻斯特码,曼彻斯特码和数据时钟进行异或也可得到NRZ码。
前者即是曼彻斯特码的编码方式,后者是曼彻斯特码的解码方式(如图3-8所示)。
图3-8NRZ码与曼彻斯特码
(2)编码器与解码器:
如上所述,可以采用NRZ码和数据时钟进行异或的方法来获得曼彻斯特码,但是这种简单的异或方法具有缺陷。
如图3-8所示,由于上升沿和下降沿不理想,在输出中会产生尖峰脉冲P,因此需要改进。
改进后的编码器电路如图3-9所示。
该电路在异或之后加接了一个D触发器74HC74,从而消除了尖峰脉冲的影响。
图3-8简单异或的缺陷图3-9改进的编码器电路
在图3-9所示的电路中,需要一个数据时钟的2倍频信号2CLK,在RFID系统中,2CLK信号可以从载波分频获得。
74HC74的PR端接编码器控制信号,该信号为高电平时编码器工作,该信号为低电平时编码器输出为低电平(相当于无信息传输)。
曼彻斯特码编码器通常用于应答器芯片,若应答器上有微控制器(MCU),则PR端电平可由MCU控制;若应答器芯片为存储卡,则PR端电平可由存储器数据输出状态信号控制。
起始位为1,数据为00的曼彻斯特码的时序波形如图3-10所示。
图3-10曼彻斯特编码器时序波形图示例
D触发器采用上升沿触发。
74HC74功能如表3-1所示。
由图可见,由于2CLK信号被倒相,是其下降沿对D端(异或输出)采样,避开了可能遇到的尖峰P,消除了尖峰脉冲P的影响。
曼彻斯特码和数据时钟进行异或便可恢复出NRZ码数据信号,因此,采样异或电路可以组成曼彻斯特码解码器。
实际应用系统中,曼彻斯特码解码可由阅读器MCU的软件程序实现。
(3)软件编码与解码:
采样曼彻斯特码传输数据信息时,信息块格式如图3-11所示,起始位采样1码,结束位采用无跳变低电平。
图3-11数据传输的信息块格式
当MCU的时钟频率较高时,可将曼彻斯特码和2倍数据时钟频率的NRZ码相对应,其对应关系如表3-1所示。
表3-1曼彻斯特码与2倍数据时钟频率的NRZ码
曼彻斯特码
1
0
结束位
NRZ码
10
01
00
当输出数据1的曼彻斯特码时,可输出对应的NRZ码10;当输出数据0的曼彻斯特码时,可输出对应的NRZ码01;结束位的对应NRZ码为00。
在使用曼彻斯特码时,只要编好1,0和结束位的子程序,就可方便地由软件实现曼彻斯特码的编码。
在解码时,MCU可以采用2倍数据时钟频率对输入数据的曼彻斯特码进行读入。
首先判断起始位,其码序为10;然后将读入的10,01组合转换成为NRZ码的1和0;若读到00组合,则表示收到了结束位。
例如,若曼彻斯特码的读入串为10100101100100,根据表3-1,则解码得到的NRZ码数据为10010。
如图3-12所示。
图3-12曼彻斯特码解码方法示意图
3.2.2密勒(Miller)码
(1)编码方式:
密勒码的密勒码编码规则如表3=2所示。
密勒码的逻辑0的电平和前位有关,逻辑1虽然在位中间有跳变,但是上跳还是下跳取决于前位结束时的电平。
表3-2密勒码的编码规则
bit(i-1)
biti
编码规则
X
1
biti的起始位置不变化,中间位置跳变
0
0
biti的起始位置跳变,中间位置不跳变
1
0
biti的起始位置不跳变,中间位置不跳变
密勒码的波形如图3-13所示。
图3-13密勒码波形及其与NRZ码、曼彻斯特码的波形关系
(2)编码器:
密勒码的传输格式如图3-14所示,起始位为1,结束(停止)位为0,数据位流包括传送数据及其检验码。
起始位数据位流结束位
图3-14密勒码的传输格式
密勒码的编码电路如图3-15所示。
从图3-13可见,倒相的曼彻斯特码的上跳沿正好是密勒码波形中的跳变沿,因此由曼彻斯特码来产生密勒码,编码器电路非常简单。
在图3-15中,倒相的曼彻斯特码作为D触发器74HC74的CLK信号,用上跳沿触发,触发器的Q输出端输出的是密勒码。
图3-15用曼彻斯特码产生密勒码的电路
(3)软件编码:
从密勒码的编码规则可以看出,NRZ码可以转换为用两位NRZ码表示的密勒码值,其转换关系如表3-3所示。
表3-3密勒码的两位表示法
密勒码
二位表示法的二进制数
1
10或01
0
11或00
图3-16密勒码软件解码流程图
密勒码的软件编码流程如图3-16所示,图3-13中的码串10110010转换后为1000011000111000。
在存储式应答器中,可将数据的NRZ码转换为两位NRZ码表示的密勒码,存放于存储器中,但存储器的容量需要增加一倍,数据时钟也需要提高一倍。
(4)解码:
解码功能由阅读器完成,阅读器中都有MCU,因此采用软件解码最为方便。
软件解码时,首先应判断起始位,在读出电平由高到低的跳变沿时,便获得了起始位。
然后对以2倍数据时钟频率读入的位值进行每两位一次转换:
01和10都转换为1,00和11都转换为0。
这样便获得了数据的NRZ码,如图3-17所示。
图3-17密勒码解码
3.2.3修正密勒(Miller)码
在RFID的ISO/IEC14443标准(近耦合非接触式IC卡标准)中规定:
载波频率为13.56MHz;数据传输速率为106Kbps;在从阅读器向应答器的数据传输中,ISO/IEC14443标准的TYPE中采用修正密勒码方式对载波进行调制。
(1)TYPE中定义如下三种时序:
1时序X:
在64/fc处,产生一个Pause(凹槽)。
2时序Y:
在整个位期间(128/fc)不发生调制。
3时序Z:
在位期间的开始产生一个Pause。
在上述时序说明中,fc为载波频率13.56MHz,Pause脉冲的底宽为0.5~3.0
μs,900/0幅度宽度不大于4.5μs。
这三种时序用于对帧编码,即修正的密勒码。
(2)修正密勒码的编码规则:
1逻辑1为时序X。
2逻辑0为时序Y。
但下述两种情况除外:
若相邻有两个或更多0,则从第二个0开始采用时序Z;
直接与起始位相连的所有0,用时序Z表示。
3通信开始用时序Z表示。
4通信结束用时序Y表示。
5无信息用至少两个时序Y表示。
3.2.4RFID实验系统的编码和解码
RFID实验系统的编码由应答器单片机U5通过软件编码方式完成,解码由阅读器单片机U4通过软件解码方式完成。
U4和U5均采用美国ATMEL公司生产的低电压,高性能的CMOS8位单片机AT89C2051芯片,片内含2Kbytes的可反复擦写的只读程序存储器(PERROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容MCS-51指令系统,片内置通用的8位中央处理器和Flash存储单元。
AT89C2051的主要性能参数如下:
(1)与MCS-51产品指令系统完全兼容;
(2)2K字节可擦写闪速存取器,1000次擦写周期;
(3)2.7-6V的工作电压范围,全静态操作:
0Hz-24MHz;
(4)两级加密程序存储器;
(5)128×8字节内部RAM,15个可编程I/O口,两个16位定时/计数器;
(6)可编程串行UART通道,可直接驱动LED的输出端口;
(7)内置一个模拟比较器,低功耗空闲和掉电模式。
图3-18AT89C2051引脚排列图
AT89C2051芯片的引脚排列方式如图3-18所示,现对部分引脚功能简要说明如下:
P1口:
P1口是一组8位双向I/O口,P1.2——P1.7提供内部上拉电阻,P1.0和P1.1内部无上拉电阻,主要是考虑它们分别是内部精密比较器的同相输入端(AINO)和反相输入端(AINI),如果需要应在外部接上上拉电阻。
P1口输出缓冲器可吸收20mA电流并可直接驱动LED。
当P1口引脚写入“1”时可作输入端,当引脚P1.2——P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而输出电流。
P1口还在Flash闪速编程及程序校验时接收代码数据。
P3口:
P3口的P3.0——P3.5、P3.7是带有内部上拉电阻的7个双向I/O口。
P3.6没有引出,它作为一个通用I/O口但不可访问,但可作为固定输入片内比较器的输出信号,P3口缓冲器可吸收20mA电流。
当P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
作输入端时,被外部拉低的P3口将用上拉电阻输出电流。
P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
RST:
复位输入。
RST引脚一旦编程两个机器周期以上高电平,所有的I/O口都将复位到“1”(高电平)状态,当振荡器正在工作时,持续两个机器周期以上的高电平便可以完成复位,每个机器周期为12个振荡时钟周期。
XTAL1:
振荡器反相放大器的及内部时钟发生器的输入端。
XTAL2:
振荡器反相放大器的输出端。
该系统软件设计的基本原理是:
首先通过单片机控制应答器,发送数字基带信号,经过ASK调制后,再由天线发射出去。
阅读器经天线耦合收到调制信号后,进行ASK解调,解调后的信号通过串行口送到单片机。
单片机验证信号后,再经过解码芯片对信号进行解码放大处理,最后由单片机控制显示模块LED管显示出来。
当应答器靠近阅读器,应答器上89C2051芯片拥有正常的5V工作电压后开始工作,会每隔0.1秒就通过串口P3.1向外发送一个码字“10100100”,当阅读器通过电路解调和单片机控制解码后应该还是原码,二进制编码是“10100100”。
阅读器上2051初始化后P1口清零,所以数码管上显示为“00”。
当阅读器上的2051接收到应答器发送的“10100100”后就通过P1口置“62H”,数码管便显示一卡通余额“62”。
3.2.5应答器程序设计
(1)应答器程序设计流程图:
图3-19应答器程序设计流程图
(2)应答器发码程序:
MOVSCON,#80H;设置工作方式2
MOVPCON,#00H;SMOD=0波特率不加倍
MOVR0,#86H
LOOP:
MOVA,R0;取发送数据
MOVC,P;奇偶位送TB8
MOVTB8,C
MOVSBUF,A;读取数据
WAIT:
JBCTI,NEXT;判断发送是否结束,TI=1时跳转
SJMPWAIT;TI=0时,在次此循环
NEXT:
ACALLDELAY;延时
SJMPLOOP
DELAY:
MOVR7,#0AH;延时
DEL:
MOVR6,#0FFH
DJNZR6,$
DJNZR7,DEL
RET
END
3.2.6阅读器程序设计
(1)阅读器程序设计流程图:
图3-20阅读器程序设计流程图
(2)阅读器解码程序:
ORG0000H
LJMPMAIN
ORG0023H
LJMPINTERUPUT
MAIN:
MOVP1,#00H;系统初始化
MOVR0,#86H
MOVSCON,#90H;串口工作方式2,并允许接收
MOVPCON,#00H;置SMOD=0,波特率不加倍
CLRRI
SETBEA;开串口中断
LOOP:
SJMPDISPLAY
SJMPLOOP
INTERUPUT:
CLRRI;接收中断标志清零
MOVA,SBUF;读取接收数据
MOVC,P
JNCLP0;进位为0则判断接收未结束将数据
;送入86H,接收结束则中断返回
JNBRB8,TEMP;进位为1判断接收未结束中断返回
MOVR0,A;接收结束则将数据送入86H
RETI;中断返回
LP0:
JBRB8,TEMP
MOVR0,A
TEMP:
RETI
DISPLAY:
MOVA,R0;显示部分
CLRP1.4;片选
SETBP1.3
LCALLDISP
LCALLDELAY
CLRP1.3
SETBP1.4
LCALLDISP
LCALLDELAY
CLRC
RET
DISP:
RRCA
MOVP1.0,C
RRCA
MOVP1.6,C
RRCA
MOVP1.5,C
RRCA
MOVP1.1,C
RET
DELAY:
MOVR7,#0AH;延时
DEL:
MOVR6,#0FFH
DJNZR6,$
DJNZR7,DEL
RET
END
3.2.7解码显示模块
在解码显示部分,选择用2051的P1口作为译码的动态显示输出,动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。
选亮数码管采用动态扫描显示。
所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
解码显示部分电路如图3-21所示。
图3-21解码显示模块
当2051接收到应答器发送的编码信息后,2051中存储有该应答器所对应的一卡通余额,并将其译码和显示输出。
P1.3、P1.4分别作为2位八段数码管的片选输出,P1.0、P1.1、P1.5、P1.6分别连接CD4511的四个数据输入端。
四位的二进制BCD码输入4511后,经过解码转换为1位的十进制数,并控制一个共阴极的数码管显示数字。
P1.3控制个位数的输出,P1.4控制十位的输出。
当2051有译码输出时,两个数码管所显示的数字就会由初始化的“00”变为相应的数值,并停留一秒。
这部分电路是较为简单的,关键点就是注意2051与CD4511相连各个管脚的接法,4511与数码管各个管脚的接法,以及共阴极数码管与地线之间所接电阻的选择。
2051和4511互联要注意P1.3、P1.4对数码管高低位的控制。
位选端NPN三极管9014,c接数码管阴极,b接单片机I\O口,e接地,三极管基极加了一个限流电阻。
对限流电阻没有多大的要求,只要不让数码管由于电流过大而烧毁,数码管显示的亮度适中,既不太暗也不太亮即可,选择的电阻为1KΩ。
CD4511是一个用于驱动共阴极LED(数码管)显示器的BCD码—七段码译码器,它的特点是:
具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流。
可直接驱动LED显示器。
它在同一单片结构上由COS/MOS逻辑器件和N-P-N双极型晶体管构成。
这些器件的组合,使CD4511
具有低静态耗散和高抗干扰及源电流高达25mA的性能,由此可直接驱动LED及其它器件。
CD4511芯片封装形式如图3-22所示。
CD4511芯片引脚说明:
(1)A0~A3:
二进制数据输入端,即为为8421BCD码输入端。
(2)BI:
消隐输入控制端,当BI=0时,不管其它输入端状态如何,七段数码管均处于熄灭(消隐)状态,不显示数字。
(3)LE:
锁定控制端,当LE=0时,