ARM9芯片适用于超高频读写器的PIE编码以及MILLER2解码的实现方式

移动通信

307人已加入

描述

普通的UHF读写器主控芯片使用FPGA较多,其优点是FPGA对时序逻辑处理速度快,使用HDL语言很容易实现协议的编码与解码,但FPGA芯片本身很少具备串口、网口等通信接口模块,功能扩展较麻烦。由于ARM9芯片集成了很多扩展接口,同时进行操作系统移植等更高层次的设计也变得很容易,但对时序逻辑处理较难。因而本文提出了基于ARM9的UHF RFID读写器基带编解码方法,并加以实现。

1 基本原理

UHF RFID国际标准协议规定读写器到电子标签的通信应采用DSB—ASK、SSB—ASK或者PR—ASK调制方式。本文使用ARM9芯片S3C2440的PWM(脉宽调制)控制模块进行PIE编码,通过编码信号控制射频开关实现OOK调制。电子标签接收到命令后反向散射副载波应答,经过射频模块的天线接收后被解调电路还原成MILLER2数据。构造MILLER2解码状态机,使用S3C2440的外部中断对MILLER2时序序列进行上升沿捕捉,捕捉到的两次中断的时间间隔作为状态机输入,进而解调出标签反射回来的数据。系统的硬件框图如图1所示。

读写器
 

读写器射频模块的工作流程为:发送命令时,PIE编码电平控制射频芯片开关,当开关开启时输出射频载波,关闭则不输出,以达到OOK调制载波的目的。接收机采用零中频接收机方案,直接对天线接收到的标签反向散射信号进行解调,解调完毕得到相位相差90°的I、Q两路信号,通过差分放大器放大处理后,输出到比较器,经过比较后电路输出MILLER2编码时序信号。

2 PIE编码

2.1 PIE码简介

EPC GNE2协议规定UHF读卡器向标签发送命令时,数据应采用PIE编码。PIE码通过高低电平的时间长度不同来规定数据是“1”还是“0”。协议使用Tari代表数据“0”,时间长度在6.25~25μs范围内,容差为±1%,数据“1”的宽度在为1.5Tari~2.5Tari,如图2所示。本次编码中,Tari值为6.4μs,数据“1”的长度为11.4μs,PW的长度为3.2μs。


读写器

 

协议规定,完整的PIE码需在有效数据前加上前同步码或帧同步码。前同步码由定界符、Tari、RTcal以及TRcal这4段组成,用在Query命令上。帧同步码省去了TRcal而直接由前三项组成,用在其他命令上。前同步码示意如图3所示。




读写器
 

2.2 PWM实现PIE编码

S3C2440有5个16位的定时器,其中定时器1~4具有PWM(脉宽调制)功能,定时器使用经过分频后的系统时钟PCLK作为时钟输入。本设计中100 MHz的PCLK经过2分频得到50 MHz频率的定时器输入时钟,定时器每计数一次耗时0.02μs。定时器使用两个16位的缓冲寄存器TCNTB和TCMPB来实现PWM功能,TCNTB为一次PWM输出计数次数,采用递减的方式计数,当计数减为TCMPB的时候,PWM输出电平反转。以数据“0”为例,其脉冲总宽度为6.4μs,低电平持续时间3.2 μs,则可计算出TCNTB=6.4/0.02=320次,TCMTB=3.2/0.02=160次。

为实现连续的PWM输出,需要让定时器工作在自动重载模式,即当定时器计数器减为0的时候,在定时器中断处理函数里更新TCNTB及TCNMPB,让定时器重新开始一次脉宽输出。定时器1初始化时经过以下步骤:

①TCNMB以及TCMPB寄存器赋非零初值;

②TCON中人工装载位配置为1,TCNTB和TCMPB更新到内部计数器;

③TCON中自动重载位配置为1,为实现连续的PWM功能;

④TCON中输出翻转位配置为1,脉冲以高电平开始;

⑤TCON置为启动位;

⑥TCON设置关闭人工装载,定时器开始启动。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分