ARM9的超高频读写器基带编解码设计

发布者:诗意世界最新更新时间:2021-01-10 来源: 21ic关键字:ARM9  超高频读写器 手机看文章 扫描二维码
随时随地手机看文章

引言

普通的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所示。




a.jpg



读写器射频模块的工作流程为:发送命令时,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。


b.jpg



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


c.jpg



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设置关闭人工装载,定时器开始启动。


经过以上配置后,将定时器I/O引脚配置为PWM输出模式就可以进行PWM输出。以一个Query命令的编码为例,Query命令是由前同步码和22位数据构成,先将这22位数据计算好并保存在全局数组data[]中,发送Query命令时开启定时器1并允许定时器1中断,在中断处理函数里面更新TCNTB以及TCMPB的值来决定下一个脉冲的PWM输出。编码程序流程如图4所示。


d.jpg



正确的Query命令会让标签返回16位伪随机数RN16。为了测试Query命令是否发送正确,使用示波器观察比较器输出,如果有MILLER2编码的16位数据输出,则表明Query命令正确。使用示波器观察的结果如图5所示,可以看出是MILLER2编码的序列,详细分析其位数后确认是16位,验证了PIE编码的正确性。


e.jpg




3 MILLER2解码

3.1 MILLER2码介绍

EPC GEN2协议中规定标签反向散射的数据应该采用FM0或者MILLER的编码方式。MILLER定义在两个数据“0”之间变换相位,在数据“1”中间放置一个相转化,MILLER2码则表示每一位数据重复两个副载波周期。完整的MILLER2编码,需要在有效数据前加上前同步码。前同步码可编程选择格式,在Query命令中将M和Trext这两位设置为1,选择前同步码由16个数据“0”加上数据序列“101112”构成。MILLER2数据定义和前同步码如图6所示。MILLER2码每一位数据的时间长度由Tari值决定,本设计中为2个Tari(即1 2.8μs)。


f.jpg




3.2 解码状态机

本文使用S3C2440的外部中断捕捉比较器的输出,使用单边触发上升沿检测。对正确的MILLER2编码序列进行上升沿捕捉时,两次中断的时间间隔有a和b两种情况,其中a表示两次中断的时间间隔为Tari,即6.4μs,b表示间隔为1.5Tari,即9.6μs,据此绘制了MILLER2编码的状态以及状态转换图。状态共有22个,其中用于前导码检测的状态有13个,用于数据检测的有9个状态。部分前导码状态以及全部数据状态如图7所示。


g.jpg



下面描述各个状态的意义。

s0:解码开始,表示收到1个a间隔;

s1:前导码状态的一种,表示收到2个a间隔;

s2:表示收到3个a间隔;

s3:收到4个a间隔,s3状态若连续收到a间隔,则仍旧归于s3状态;

s4:表示s3收到b间隔,此时前导码中的16个数据“0”解码结束,进入数据序列“101112”解码状态;

s5~sa:前导码中的数据序列“101112”检测状态,依次类推,图7中省略;

sb:前导码结束状态;

d1:收到数据“0”的2/4位;

d2:收到完整数据“0”以及数据“1”的1/4位;

d3:收到完整数据“0”以及数据“0”的1/4位;

d4:收到数据“1”的3/4位;

d5:收到数据“0”的3/4位;

d6:收到完整数据“1”以及数据“0”或者“1”的1/4位;

d7:收到完整数据“0”以及数据“1”的1/4位;

d8:收到完整数据“1”;

d9:收到完整数据“0”以及数据“0”的2/4位。

以上状态中,当状态机当前状态为d2、d3、d6、d7、d8、d9的一种时,表示收到1位有效数据。状态转换图如图8所示,状态d2、d7只画出了有效输入时的转换图,在无效输入时结束状态机程序返回。


h.jpg



3.3 MILLER2解码程序设计

进行MILLER2解码主要是把接收到的中断时间间隔作为状态机的输入,在状态机里进行判断和状态转换,解码出有效数据。本设计中,使用上面描述的编码方式码发送Query命令,UHF电子标签收到有效命令之后反向散射采用MILLER2编码的16位伪随机数RN16。程序在发送完毕Query命令之后立即使能外部中断,在外部中断处理函数中,把中断时间间隔保存在数组中,等接收的中断间隔超过b或者中断次数超过接收RN16所需要的次数后,关闭中断。在外部程序中通过状态机进行解码,解调的同时对有效位进行计数,计数器达到16位后,返回解调出来的数据,否则返回0。解调程序流程如图9所示。


i.jpg



在主函数里面循环发送Query命令并进行MILLER2解码,如果解码成功则使用串口工具在上位机上打印出解调出来的RN16的值,解码失败则不打印。在PC上使用串口工具SecureCRT观察到以十六进制输出的RN16,如图10所示,表明MILLER2解码成功。

j.jpg

结语

本文提出使用ARM9进行UHF RFID读卡器基带编解码,并加以实现。ARM9芯片丰富的外设使该方案拥有较好的扩展性、实用性,为进行系统级别的设计打下了基础。


关键字:ARM9  超高频读写器 引用地址:ARM9的超高频读写器基带编解码设计

上一篇:DSP和ARM的音圈电机伺服控制系统设计
下一篇:arm 裸板编程的总结(下)

推荐阅读最新更新时间:2024-11-02 03:33

基于ARM9 AT91RM9200T的嵌入式网络接口
   1 引言   当今时代设备网络化是当今科技发展的趋势。如何使用嵌入式系统将设备的远程控制、数据的远程传输数据转发到网络上呢?嵌入式网关使用嵌入式Linux操作系统,数据存储芯片SDRAM、FLASH,网络控制芯片DM9161等,实现网络通讯的传输方案便是基于这种思想而设计的。    2 硬件设计   本系统采用ATMEL公司生产的微处理器AT91RM9200T 。其处理速度可达200MIPS,同时它也具有USB、Earthnet、支持RS485的红外串口、IIC、SPI、SSC等丰富的片内资源。网口控制芯片DM9161, SDRAM和Flash接口。系统的硬件结构框架如图1所示。    2.1 AT91R
[嵌入式]
基于ARM9的Web服务器Boa的软/硬件设计
1.ARM简介 广义地讲,凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统。它是嵌入到对象体系中的专用计算机系统,以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。目前非常流行的ARM内核有ARM7TDM1、S t r o n g A R M 、A R M 7 2 0 T 、A R M 9 T D M 1 、ARM920T、ARM940T、ARM946T、ARM966T、ARM10TDM1等。本文所讨论的目标板的CPU为ARM920T内核的三星S3C2410芯片。 ARM9系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数
[电源管理]
基于<font color='red'>ARM9</font>的Web服务器Boa的软/硬件设计
基于ARM9和Linux的嵌入式打印终端系统
1 嵌入式打印终端系统 的设计原理 图1 打印终端原理图 嵌入式打印终端原理连接图如图1所示。主要由开发板、主机、打印机和扫描仪四部分组成。主机是一台PC机。开发板采用的是三星公司S3C2410开发板,ARM9的核,跑的是2.4内核版本的嵌入式Linux操作系统。扫描仪为超市等用的手持扫描仪。再加一台微型打印机接在开发板的GPIO口上。 工作流程为:开发板将扫描仪的数据从串口读出,然后通过网口将数据发送给主机进行检索处理。开发板等待直至接收到主机处理完毕的数据后转发给打印机,将信息打印出来。 2 嵌入式打印终端系统的硬件设计 2.1硬件开发平台S3C2410结构 三星公司的S
[单片机]
基于<font color='red'>ARM9</font>和Linux的嵌入式打印终端系统
TQ2440(ARM9)的第一个无OS实验【流水灯】
#include 2440addr.h //包含2440相关寄存器的设置 //四个LED对应GPB5.6.7.8 #define LED1 5 #define LED2 6 #define LED3 7 #define LED4 8 #define Bit(x) (1 x) //将某位置位 #define Output(x) (1 2*x) //将对应IO置为输出 /******************************************* * 名称:Delay * 功能:延时 * 入口参数:无 * 出口参数:无 ************************
[单片机]
基于S3C2440的WindML图形驱动设计
随着信息技术的迅速发展,嵌入式系统的应用领域越来越广,嵌入式系统对图形用户界面的需求日趋增强。VxWorks是美国WindRiver公司开发的一款高性能、可裁减的嵌入式实时操作系统。它以良好的可靠性和卓越的实时性被广泛地应用于通信、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通信、飞机导航等。 WindML(wind media library)是嵌入式实时操作系统VxWorks提供的一个可裁减的多媒体组件。该组件库支持基于嵌入式系统的多媒体应用程序,为各种嵌入式操作系统提供基本的图形、视频和音频技术,并可以开发基于这些操作系统的设备驱动。它提供一套与硬件无关的逻辑API给应用层调用,而给底层提供不同硬件构架
[单片机]
ARM9 S3C2440—中断和定时器的初始化配置
ARM9 S3C2440的寄存器特别多,这也是它和单片机不同处之一,对ARM的编程主要也是对寄存器的操作,可是寄存器多了以后,就很容易忘记对某个寄存器的设置,如果能够总结一下寄存器配置的步骤,使得其有章可循,那么应用的时候就可以对号入座了。如果长时间不去使用ARM的话,再次使用的时候重新翻看烦人的芯片用户手册,显得就浪费时间了,这样,趁着熟悉的时候记录下这些要点,以后稍加翻看就能唤起记忆,这也是自己写这些博客的缘由。 定时器初始化配置步骤主要有: 1、rTCFG0和rTCFG1的设置 首先要设置定时器的时钟频率, Timer input clock Frequency= PCLK / {prescaler va
[单片机]
具有硬件矢量浮点运算单元的微控制器在医疗电子中的应用
  微控制器是将微型计算机的主要部分集成在一个芯片上的单芯片微型计算机。微控制器诞生于20世纪70年代中期,经过20多年的发展,其成本越来越低,而性能越来越强大,这使其应用已经无处不在,遍及各个领域。例如电机控制、条码阅读器/扫描器、消费类电子、游戏设备、电话、HVAC、楼宇安全与门禁控制、工业控制与自动化和白色家电(洗衣机、微波炉)等。   现今的嵌入式工业及汽车系统中,有许多是基于8位或16位微控制器架构来设计的。随着新的低功耗32位架构的面市,这些应用有可能获得更高的性能、准确度和功效。此外,处理能力的提高也有助于实现新产品的差异性功能,包括先进的控制算法,GUI显示器、语音控制,以及电容式触摸感测等下一代接口。8 bit/1
[医疗电子]
具有硬件矢量浮点运算单元的微控制器在医疗电子中的应用
基于ARM9的嵌入式LINUX地震数据采集系统设计
  0 引言   随着数字技术的飞速发展,数字化仪器已成为观测技术领域的主流仪器,因而数据采集技术也成为观测技术领域中一个十分重要的技术环节。众所周知,地震预报是一个的世界性难题,作为地震预报的基础,地震及地震前兆观测数据的地位可想而知,获得真实、可靠的观测数据取决于地震观测仪(包括传感器和采集器两部分)。伴随着计算机的迅速发展,以嵌入式为平台的数据采集系统就应运而生了,它具有可靠性高,体积小,易扩展、功能强,开发周期短、成本低。本论文是基于东方地球物理公司地震采集系统设计项目,采用ARM9的嵌入式系统,因此对其研究具有非常重要的现实意义。   1 总体设计方案   作为一个通用的工业数据采集系统的硬件平台,其基本目的是获取
[单片机]
基于<font color='red'>ARM9</font>的嵌入式LINUX地震数据采集系统设计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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