物联传媒 旗下网站
登录 注册
RFID世界网 >  技术文章  >  航空  >  正文

超高频RFID标准中编码方式的研究和S函数实现

作者:林君勉,李书芳
来源:RFID世界网
日期:2011-07-11 14:19:52
摘要:本文阐述了UHF RFID 标准中的编码方式的特性,介绍了matlab/Simulink 中S 函数的实现方法,重点用S 函数实现了RFID 的编码,以及对这些编码模块的封装,并做了基于这些模块的通信系统仿真。本文所做的工作可为基于Simulink 的通信系统仿真提供参考与支持。
    1. 引言

    RFID 作为无线领域新崛起的一项应用技术,已被广泛应用于工业自动化、商业自动化、交通运输管理等众多领域。RFID 技术以无线通信技术和大规模集成电路技术为核心,利用射频信号及其空间耦合、传输特性,驱动电子标签电路发射其存储的惟一编码。它可以对静止或移动的目标进行自动识别,并高效地获取目标信息数据,通过与互联网技术的进一步结合,还可以实现全球范围内的目标跟踪与信息共享。

    本文参照已有国际标准 ISO/IEC 18000-6,首先研究了标准中不同的编码方式的规则和特性,然后用S 函数来实现这几种编码,并利用Simulink 进行基带编码模块的封装和仿真。

    2. UHF RFID 标准中的编码方式

    在射频识别(RFID)技术中,读写器与电子标签间相互通信传递数据(信息和指令)。为了便于通信,需要对数据的基带信号进行编码,主要是对要传输的信息进行编码,以便传输信号能够尽可能最佳地与信道相匹配,并且编码后能够使频谱能量集中以节省传输所占频带宽度,其次使其具有检错能力和提供位同步信息。目前在UHF频段的RFID 标准ISO/IEC18000-6 中,采用多种形式的数据编码,见表1。 

    从表1 中可以看出,在前向链路上数据编码采用的最多的方式是PIE 编码和曼彻斯特编码,而在反向链路中采用最多的是FM0 编码。因此对RFID 标准中的编码方式进行研究是十分必要和有意义的。下面重点介绍一下编码规则。

    2.1 PIE 编码

    PIE (脉冲间隔编码)编码是在前向链路中采用。按照标准,符号波形如图1 所示。


图 1 PIE 编码符号波形

    其中,Tari 为读写器到标签通信的时间间隔参考,也是数据“0”的持续时间长度,其参数如表2 所示:

    2.2 曼彻斯特编码

    曼彻斯特编码也是在前向链路中采用的,也被称为分相编码。编码规则如图2 所示。在曼彻斯特编码中,如果原始数据为‘0’,将其编为‘01’;如果原始数据为‘1’,将其编为‘10’。这种编码的特点是每个码元中间都有跳变,低频能量较少,便于接收端提取时钟信息。


图 2 曼彻斯特编码规则

    2.3 FM0 编码

    反向链路采用 FM0 技术,也被称为双相间隔码。一个符号周期Trlb,分配给每个将被发送的位。在FMO 编码中,数据转换发生在所有的位边界。另外,数据转换发生在被发送的逻辑0 的中间位。

    数据编码先对字节的最高位进行,图3 给出了8 位'B1'的编码说明。


图 3 FM0 编码规则

    3. UHF RFID 标准中编码方式的实现

    在 Simulink 中,可以通过将现有的模块组合成子系统并进行封装实现模块,利用这种方法可以充分利用现有的Simulink 库中的资源,方便快捷地进行模块的搭建。另外,在实际的应用中,通常会发现有些过程用普通的Simulink 模块不容易搭建,这是可以利用S 函数来自己编程实现所需要的模块。S 函数可以极大的扩展Simulink 的功能,使得Simulink的仿真变得更灵活,更强大。这部分主要通过这种方法来实现RFID 标准中的编码方式。

    在使用 S 函数前,先简单介绍一下Simulink 模型的处理过程。包含以下几个方面:

    1、初始化阶段:将参数传递给 matlab 进行求值,得到的数值作为实际的参数使用,然后展开模型的层次,每个子系统被它们所包含的模块代替,接着检查信号的链接,最后确定状态初值和采样时间。
    2、运行阶段:计算输出,更新离散状态,然后计算连续状态,最后计算输出。

    S 函数既可以是M 文件,也可以是MEX 文件。M 文件的S 函数结构明晰,易于理解,书写方便,而且可以调用matlab 丰富的函数,对于一般的应用,使用matlab 语言编写S 函数就够用了。

    M 文件的S 函数由以下形式的matlab 函数组成:[sys,x0,str,ts]=f(t,x,u,flag,p1,p2,…)

    其中f 是S 函数的文件明,t 是当前时间,x 是S 函数相应的状态向量,u 是模块的输入,flag 是所要执行的任务,p1,p2 等都是模块的参数。在模型仿真的过程中,Simulink 不断调用函数f,通过flag 来说明要完成的任务。每次S 函数执行任务,都将以特定结构返回结果。

{$page$}


    我们将编写的s 函数封装成模块并搭建仿真模型,如图4所示。

    根据上述内容,结合 PIE 编码规则,设计的S 函数如下: 

    仿真模型中,中间的PIE模块就是设计封装的模块, 仿真后的结果如图5所示。仿真结果与PIE编码的编码规则吻合。 


图 4 PIE 编码的模型


图 5 PIE 编码模型的仿真结果

    从图5可以看出,由于PIE编码是不等长编码,所以在S函数实现的时候,得将原始数据进行保存,然后再进行编码。解码的时候一样,得先将数据保存,然后解码。这样就使得解码完的数据与原始数据之间产生一定时间的延时。这是不可避免的。同样用S函数来设计曼彻斯特编码和FM0编码的模块,编程的过程与PIE编码类似,这里不再重复。曼彻斯特编码和FM0编码的模型和结果如图6和图7所示。可以看出仿真的结果与编码规则一致。

    4. 结论

    本文介绍了RFID标准中的编码方式,并介绍了利用S函数编程来实现自定义模块的方法,搭建了编码仿真模型,并给出了仿真结果。本文所做的工作可以为基于Simulink的仿真提供支持,也可为实际中利用Simulink进行模块封装与仿真提供参考。