超高频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 所示。
2.2 曼彻斯特编码
曼彻斯特编码也是在前向链路中采用的,也被称为分相编码。编码规则如图2 所示。在曼彻斯特编码中,如果原始数据为‘0’,将其编为‘01’;如果原始数据为‘1’,将其编为‘10’。这种编码的特点是每个码元中间都有跳变,低频能量较少,便于接收端提取时钟信息。
反向链路采用 FM0 技术,也被称为双相间隔码。一个符号周期Trlb,分配给每个将被发送的位。在FMO 编码中,数据转换发生在所有的位边界。另外,数据转换发生在被发送的逻辑0 的中间位。
数据编码先对字节的最高位进行,图3 给出了8 位'B1'的编码说明。
在 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 函数执行任务,都将以特定结构返回结果。
我们将编写的s 函数封装成模块并搭建仿真模型,如图4所示。
根据上述内容,结合 PIE 编码规则,设计的S 函数如下:
4. 结论
本文介绍了RFID标准中的编码方式,并介绍了利用S函数编程来实现自定义模块的方法,搭建了编码仿真模型,并给出了仿真结果。本文所做的工作可以为基于Simulink的仿真提供支持,也可为实际中利用Simulink进行模块封装与仿真提供参考。
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 编码符号波形
2.2 曼彻斯特编码
曼彻斯特编码也是在前向链路中采用的,也被称为分相编码。编码规则如图2 所示。在曼彻斯特编码中,如果原始数据为‘0’,将其编为‘01’;如果原始数据为‘1’,将其编为‘10’。这种编码的特点是每个码元中间都有跳变,低频能量较少,便于接收端提取时钟信息。
图 2 曼彻斯特编码规则
反向链路采用 FM0 技术,也被称为双相间隔码。一个符号周期Trlb,分配给每个将被发送的位。在FMO 编码中,数据转换发生在所有的位边界。另外,数据转换发生在被发送的逻辑0 的中间位。
数据编码先对字节的最高位进行,图3 给出了8 位'B1'的编码说明。
图 3 FM0 编码规则
在 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 编码模型的仿真结果
4. 结论
本文介绍了RFID标准中的编码方式,并介绍了利用S函数编程来实现自定义模块的方法,搭建了编码仿真模型,并给出了仿真结果。本文所做的工作可以为基于Simulink的仿真提供支持,也可为实际中利用Simulink进行模块封装与仿真提供参考。