LLRP协议--基于低级别读写器协议的无线射频识别中间件系统

第一章  LLRP协议介绍

在一个RFID系统中,LLRP 协议为上层应用层(Clinent)与底层物理层(读写器设备)之间的中间接口(如图1-1),底层物理层因厂商不同而有差异,LLRP 协议将低层物理层的差异屏蔽掉,为上层应用提供统一的协议接口,使得上层应用可以无差别的对下层的读写器进行控制和管理。

LLRP  协定定义了客户端与读写器之间通讯的格式与过程,LLRP 协议通讯格式单元为数据协议单位(PDU),即报文(Messages)。

LLRP 协议三个作用:标签数据的处理、读写器装置的管理以及读写器之间的协调与同步。LLRP的主要操作为Inventory操作和存取操作,Inventory为读写器在其读取范围内辨识标签中的EPC的动作,而Access则是对标签数据进行存取的动作,包含了读取(Read)、写入(Write)、锁定(Lock)及删除(Kill)等操作。

图1-1  LLRP端点

第二章  LLRP操作与数据模式

从读写器端传送给客户端的报文包含读写器的状态回报、RF(Radio  Frequency)调查以及EPC盘点 (Inventory) 和标签存取结果回报等,从客户端传给读写器端的报文包含读写器配置档的获取与设置、读写器的读取能力、管理Inventory参数设定以及标签的存取操作等。

2.1  LLRP操作

EPCglobal 所定义的LLRP协议中,定义了两种主要的LLRP 操作,(1) Reader Operator和(2) Access Operator。Reader Operator (RO) 定义读写器操作参数如Inventory 及RF调查;Access Operator (AC) 定义标签数据存取操作的参数。LLRP 有二种主要的方法来传送指令给LLRP 的读写器,一种为Reader Operation Specification (ROSpec),用来驱动LLRP 读写器作Inventory的动作,将周围的标签信息识别到读写器内,依照规格书所定义,此标签信息即是EPC;另一种为Access Operation Specification (AccessSpec),目的进行标签内各存储器的存取动作,除了可读取标签内各存储器中的信息外,还可对标签作写入的动作,主要有Read、Write、Kill、Lock等动作,但是AccessSpec不能单独存在,而是需要与ROSpec作配合,即一份AccessSpec需被包含在ROSpec中才可运作。

LLRP架构中包含许多的规则 (rules) 或规格(specifications),可让客户端预先设定读写器未来操作时的动作,例如操作的触发时机以及标签相关的运作,届时让读写器全部负责这些动作而不必动用到客户端的资源。

每一份Spec被送到LLRP读写器时,并不是马上被执行,而是先进入等待,ROSpecs、AISpecs和AccessSpecs均有各自的起始状态 (state),状态的改变则是靠触发事件  (Trigger  Event),触发事件包括客户端所下的命令、特定条件或时间、特定周期以及感应器信号或GPI事件等。图2.1-1为ROSpecs的一个状态转换图实例。

图2.1-1  ROSpec状态图

ROSpec有三种状态:关闭(disabled)、未动作 (inactive)以及动作(active)状态,起始状态为关闭 (disabled) 状态,等待被读写器执行,当接收到来自客户端的启动报文后则进入未动作 (inactive) 状态;在此状态的ROSpec会经由启动触发条件 (start Trigger) 符合或是客户端发出启动报文指示,则就会将状态转换成动作 (active),但在动作状态的ROSpec也不是马上就会被执行,而是依照每份ROSpec的优先权ROSpec将被真正执行。同样的,当ROSpec的结束触发条件(StopTrigger)符合或客户端发出结束报文指示,ROSpec就会回到未动作状态,等待下一次启动条件符合。AISpecs只有两个状态:未动作 (inactive) 以及动作(active) 状态,起始状态为未动作状态,AISpecs须等待其所属的ROSpec进入动作状态,再等待被选择执行,此时AISpecs就会进入动作状态;AccessSpec有两个状态:关闭 (disabled) 和动作 (active) 状态,起始状态为关闭状态,等待客户端发出的启动报文将AccessSpec转成动作状态,接下来就等待TagSpec里面定义的条件达到时开始执行;AccessSpec由结束触发条件返回关闭状态。

整体而言,LLRP提供客户端一套可针对特定空中接口协议 (例如C-1 Gen-2)以及实际读写器操作时各种参数设定的控制模块,不光只是得到标签EPC以及读取时间,更可在标签读取过程中获取更详细的信息。LLRP允许客户端对于读写器实际操作时各项功能面完全的掌控,也可以在读取过程中提供监控上的协助。在LLRP的设计理念中,透过客户端事先将Specs设定好存在于读写器,让读写器便能依照指示执行工作,与客户端的通讯除了不会因为网络环境的瓶颈造成延迟,也不会因为大量的读写器指令与回复的报告数据将网络频宽塞满,造成客户端的困扰。LLRP的架构也让客户端可依照工作环境大小来控制多部读写器。

2.2  LLRP  数据模式

LLRP所有指令操作通过报文(message)的传递来运作。

2.2.1  LLRP  报文操作模式

客户端与读写器之间典型LLRP报文序列会有以下过程,由图2.2-1显示:

1.  客户端在操作读写器之前需先了解读写器的能力,第一个过程就是客户端查询读写器的能力,包含一般装置能力、LLRP能力及监管能力等信息,其内容可能包含天线数量、软件版本、支持何种通讯协议、读取灵敏程度、是否支持RF调查等信息。

2.  取得或设定读写器的配置内容,包含设定读写器事件通知模式、天线属性、ROSpec回复报告和AccessSpec回复报告的触发条件以及报告型态、事件和报告模式等。

3.  发送读写器操作指令,也即ROSpecs,其可能包含一或多个Inventory操作细节指令。

4.  发送读写器存取指令,也AccessSpecs,其功能是要求读写器存取标签数据。

5.  获得从读写器回应的报告。

图2.2-1  LLRP Messages and Reader Actions

2.2.2  LLRP报文与动作

LLRP 指令传输的最小单位为报文,报文可能由一组或多组参数(parameter)和场域 (field)所组合而成,在LLRP中大部分的报文是双向的,当客户端传递一组报文给读写器,读写器会回应相对应的回复报告,如当客户端传送一个GET_READER_CAPABILITIES报文,则读写器必须回复GET_READER_CAPABILITIES_RESPONSE之报文,通知客户端报文是否成功及信息回复。LLRP报文依照功能分类成下列几组:

? 读写器装置能力报文: 用于查询读写器能力的message,客户端在下达指令前必需了解读写器的能力,以及读写器支持何种指令,以便让客户端清楚如何对读写器下达指令,包含以下两种:

n GET_READER_CAPABILITIES:客户可要求读写器回复部分或全部读写器的能力报文;依照客户端的要求设定,读写器会传送GET_READER_CAPABILITIES_RESPONSE报文,回复相对应的报告内容。

? 读写器操作控制报文: 控制读写器通讯协定中Inventory操作及RF调查动作的报文,Inventory 为辨识标签的操作,包含一连串的指令,当读写器下达一个Query指令时,视为一个Inventory回合的开始;当客户端想要确认读写器设备的操作环境,例如读写器频率等,则需要进行RF调查的动作,此类报文包含以下:

n ADD_ROSPEC:客户端新增一个Reader Operation  Specification(ROSpec),驱动读写器进行Inventory的操作,接收读取范围内的标签信息,此信息即为EPC。读写器会回应ADD_ROSPEC_RESPONSE报文,报文包含一组LLRPStatus Parameter,如果ADD_ROSPEC设定的参数皆正确,则会回传一个成功码,否则回传适当的错误码。

n DELETE_ROSPEC:删除由客户端指定的特定一组ROSpec或删除所有ROSpec。读写器会回应DELETE_ROSPEC_RESPONSE报文,报文包含一组LLRPStatus Parameter,如果成功删除该ROSpec,则会回传一个成功码,否则回传适当的错误码。

n START_ROSPEC:由客户端指定一组ROSpec,让此未动作状态(inactive state)的ROSpec进入启动状态 (active state)。读写器会回应START_ROSPEC_RESPONSE 报文,报文包含一组LLRPStatus Parameter,如果成功,则会回传一个成功码,否则回传适当的错误码。

n ENABLE_ROSPEC:由客户端指定一组ROSpec,让此关闭状态(disable state)的ROSpec 进入未动作状态(inactive state)。读写器会回应ENABLE_ROSPEC_RESPONSE报文,报文包含一组LLRPStatus Parameter,如果成功,则会回传一个成功码,否则回传适当的错误码。

n DISABLE_ROSPEC:由客户端指定一组ROSpec,让该ROSpec进入关闭状态(disable state),不管该ROSpec的原始状态为未动作状态(inactive state)或是动作状态(active state)。读写器会回应DISABLE_ROSPEC_RESPONSE报文,报文包含一组LLRPStatus Parameter,如果成功,则会回传一个成功码,否则回传适当的错误码。

n GET_ROSPECS:由客户端要求读写器回传所有的ROSpec在读写器中配置的状态。读写器会回应GET_ROSPECS_RESPONSE报文,如果在读写器中没有ROSpec的配置,则报文包含一组回传成功码的LLRPStatus Parameter,否则除了回应一组LLRPStatus Parameter外,还会回传一组ROSpecs的状态列表。

? 读写器存取控制报文:  客户端控制标签数据的存取操作的报文以及读写器回复的报文,如对标签进行读取(Read)、写入(Write)、锁定(Lock)及删除(Kill)等存取操作,包含以下:

n ADD_ACCESSSPEC:由客户端新增一个Access Specification(AccessSpec),此AccessSpec起始状态为关闭状态 (disable state)。读写器会回应ADD_ACCESSSPEC_RESPONSE报文,报文包含一组LLRPStatus Parameter,如果成功设定,则会回传一个成功码,否则回传适当的错误码。

n DELETE_ACCESSSPEC:由客户端指定一组AccessSpec或所有AccessSpec 进 行 删 除 动 作 。读 取 器 会 回 应DELETE_ACCESSSPEC_RESPONSE 报文,报文包含一组LLRPStatus Parameter,如果成功删除该AccessSpec,则会回传一个成功码,否则回传适当的错误码。

n ENABLE_ACCESSSPEC:由客户端指定一组AccessSpec,让该AccessSpec由离线状态 (disable state) 进入动作状态 (active state)。读写器会回应ENABLE_ACCESSSPEC_RESPONSE报文,报文包含一组LLRPStatus Parameter,如果成功,则会回传一个成功码,否则回传适当的错误码。

n DISABLE_ACCESSSPEC:由客户端指定一组AccessSpec,让该AccessSpec由动作状态(active state)进入关闭状态(disable state)。读写器会回应DISABLE_ACCESSSPEC_RESPONSE报文,报文包含一组LLRPStatus Parameter,如果成功,则会回传一个成功码,否则回传适当的错误码。

n GET_ACCESSSPECS:客户端要求读写器回传所有的AccessSpec在读取器中配置的状态。读取器会回应GET_ACCESSSPECS_RESPONSE报文,如果在读写器中没有AccessSpec的配置,则报文包含一组回传成功玛的LLRPStatus Parameter,否则除了回应一组LLRPStatus Parameter外,还会回传一组AccessSpec的状态列表。

n CLIENT_REQUEST_OP:由读写器执行ClientRequestOpSpecOpSpec 后向客户端发出此报文,这个报文挟带着TagReportData Parameter包含从标签收集的信息和OpSpecs执行的结果。由客户端回复CLIENT_REQUEST_OP_RESPONSE 报文,报文包含一组ClientRequestResponse Parameter。

? 读写器装置配置报文: 查询及设定读写器装置的配置内容以及管理关闭客户端与读写器之间连线的报文,包含以下:

n GET_READER_CONFIG:由客户端传送给读写器端,并要求需要何种配置档数据回复。读写器会回应GET_READER_CONFIG_RESPONSE报文,依照客户端的设定,回复相对应的信息。

n SET_READER_CONFIG:由客户端下达报文给读写器,该报文包含一组LLRP的参数,依照参数内容要求,读写器更改其配置档数据。读取器会回应SET_READER_CONFIG_RESPONSE报文,报文包含一组LLRPStatus Parameter,如果成功,则会回传一个成功码,否则回传适当的错误码。

n CLOSE_CONNECTION:由客户端要求关闭与读写器端的连线,正常工作环境下,客户端须尝试下达CLOSE_CONNECTION指令,读写器会回复CLOSE_CONNECTION_RESPONSE,并且关闭与客户端的连线。

? 报告报文: 这类报文主要有Report、Notifications、Keepalives这三大类,当回传报告触发条件成立时、使用者下达取得报告指令时以及通知事件发生时,读写器须回传相对应的报告到客户端,报告可能包含读写器的状态、标签数据、RF分析报告结果等信息。Keepalives主要是由读写器向客户端发送,以确保与客户端的连线,包含以下:

n GET_REPORT:由客户端向读写器要求回复报告。

n RO_ACCESS_REPORT:由读写器向客户端传送Rrader Operations及Access Operations的结果。

n READER_EVENT_NOTIFICATION:当先前客户端设定的事件发生,读写器须向客户端发出此报文,此报文会包含事件信息由ReaderEventNotificationData parameter所表示。

n KEEPALIVE:当读写器需要客户端保持连线状态时,由读写器向客户端发出。客户端需回应KEEPALIVE_ACK报文,已通知读写器客户端还在连线状态中。

n ENABLE_EVENTS_AND_REPORTS:当LLRP读写器建立连线后,由客户端向读写器发出的报文,客户端由此报文告知读写器可以移除在读写器内所保留的事件或报告报文。

? 客户延伸报文: 这个报文可以包含版本内容,客户需额外定义的数据格式以及数据内容等。

n CUSTOM_MESSAGE:此报文会携带版本定义内容由读写器发送给客户端或是由客户端发送给读写器,除了版本报文之外,CUSTOM_MESSAGE也可以携带一些客户端特定的数据。

? 错误报文: 此类报文负责定义错误事件或错误码,典型的错误在定义LLRP报文内容,此错误报文会由读写器回应给客户端。除了报文内容错误之外,如果有接收到不支持的报文类型或是一个CUSTOM_MESSAGE,在此情况下,读写器也需要回应给客户端一个错误报文。

n ERROR_MESSAGE:由读写器给客户端的报文,包含一组LLRPStatus Parameter去描述报文中的错误。

由图2.2.-2所示,当读写器接收到客户端传送的报文 (message) 之后,读写器须做相对应的回复及动作,由图简单显示其客户端与读写器之间的互动,以及各类报文的传递,例如当读写器接收到GET_READER_CAPABILITIES报文时,读写器此时应该回应读写器的能力数据,除了回应客户端的要求之外,读写器还需要时常发送KEEPALIVE报文给客户端,要求客户端保持连线以接收报文,而此时客户端需回应告知读写器,没有回应读写器将视为连线中断。客户端最后发送CLOSE_CONNECTION报文表示结束与读写器的连线。

图2.2.-2  LLRP Messages and Reader Actions

第三章  ADD_ROSPEC报文举例

实现对标签盘存操作的报文为ADD_ROSPEC,报文格式如图3-1所示。

方向:Client  ==> Reader

图3-1  ADD_ROSPEC报文

图3-1所示ADD_ROSPEC报文中:

Rsvd: 3 bits,保留位,全部设为0;保留位服从规则:终端忽略保留位;读写器中判断保留位不为全0时报错;

Ver: 3 bits,LLRP的版本编码,本协议版本为LLRP v1.1;故Ver区应为2;

Message Type: 10bits;报文类型编码,具体见llrp_1_1-standard-20101013.pdf的Table5;

Message Length: 32bits,整个报文的字节数;

Message ID: 32bits,在多包报文通信中用于关联终端发出的命令/请求与读写器相应的响应;

ROSpec Parameter场域参数格式见图3-2:

图3-2  ROSpec Parameter

图3-2中ROBoundarySpec Parameter场域参数格式见图3-3:

SpecParameter场域参数为AISpec Parameter时参数格式见图3-8:

SpecParameter场域参数为RFSurveySpec Parameter 时参数格式见图3-12:

SpecParameter场域参数为LoopSpec Parameter 时参数格式见图3-14:

SpecParameter场域参数为Custom Parameter 时参数格式见图3-15:

ROReportSpec Parameter场域参数格式见图3-15:

图3-3  ROSpec Parameter

图3-3中ROSpecStar tTrigger Parameter场域参数格式见图3-4:

图3-3中ROSpecStop Trigger Parameter场域参数格式见图3-7:

图3-4  ROSpecStar tTrigger Parameter

图3-4中PeriodicTriggerValue Parameter (0 - 1)场域参数格式见图3-5:

图3-4中GPITriggerValue Parameter (0 - 1)场域参数格式见图3-6:

图3-5  PeriodicTriggerValue Parameter

图3-6  GPITriggerValue Parameter

图3-7  ROSpecStop Trigger Parameter

图3-8  AISpec Parameter

图3-8中AISpecStopTrigger Parameter场域参数格式见图3-9:

图3-8中Invento ry ParameterSpec Parameter场域参数格式见图3-11:

图3-8中Custom Parameter场域参数格式见图3-15:

图3-9  AISpecStopTrigger Parameter

图3-9中GPITriggerValue Parameter场域参数格式见图3-6:

图3-9中TagObservationTrigger Parameter场域参数格式见图3-10:

图3-10  TagObservationTrigger Parameter

图3-11  Invento ry ParameterSpec Parameter

图3-12  RFSurveySpec Parameter

图3-12中RFSurveySpec Stop Trigger Parameter场域参数格式见图3-13:

图3-13  RFSurveySpec Stop Trigger Parameter

图3-14  LoopSpec Parameter

图3-15  Custom Parameter

图3-16  ROReportSpec Parameter

原文地址:https://www.cnblogs.com/fire909090/p/9723707.html

时间: 2024-10-11 16:23:20

LLRP协议--基于低级别读写器协议的无线射频识别中间件系统的相关文章

WebDav协议基于HTTP 1

首先第一篇提供配置WebDav的方式 网上找了两篇比较好的配置方式分别适用于Win7 Win2003,而且都经过测试配置可以正常使用 原文中保留了引用地址,这个纯属为了要尊重别人的劳动成果 在第二篇中会提供使用webDava组件开发 以及相关示例代码 在Win 8/7中建立WebDAV服务器的方法: 转自http://www.xitonghome.com/article/html/5461.html 第一.您必须安装互联网信息服务(IIS)和WebDAV publishing.在Windows

蓝牙协议 基于TI cc2540 模块的理解(转)

源:蓝牙协议 基于TI cc2540 模块的理解 Bluetooth 4.0开发 Platform:TI IC:cc2540 Environment:windows 7 tools:IAR 8.20.2 demo Code:BLE_CC254x_1.4.0 from TI 物理层:是1Mbps自适应跳频GFSK射频,工作于免许可证的2.4GHz ISM(工业.科学与医疗)频段. 链路层:用于控制设备的辐射状态,设备将处于五种状态之一:等待.广告.扫描.初始化.连接.广播设备不需要建立连接 就可以

基于文件传输的UDP协议分析(1)

网络通信与数据交换已经成为现代软件必备的基础功能. 目前公司上下位机的网络通信均采用TCP/ UDP协议进行数据交换和控制.这种低层次的网络通信协议在小数据量,少互交的领域有着较大的优势.但是随着网络功能需求的日趋旺盛,TCP/UDP协议日渐无法满足需求,其弊端日渐明显 *TCP/UDP通信编程可分为: 1  通信控制层 通信控制层负责网络的配置,连接,发送数据, 接受数据响应, 中断等服务 2数据处理层 数据处理层主要负责数据的封包,解包,校验等工      作.简称: "数据协议的程序化过程

基于W5500+STM32的SNMP协议应用

概述 工具: PC  W5500EVB Net-SNMP软件包 编译环境:Keil4 &IAR 功能:通过网络管理协议SNMP及基本的控制命令实现简单的LED控制 一.W5500简介 韩国WIZnet公司生产的以太网控制芯片W5500整合了五层结构中的前四层,即物理层.数据链路层.网络层和传输层,并在内部利用硬件实现了TCP/IP协议栈.开发者无需专业的网络知识,使用W5500如同控制外部存储器一样简单,为用户提供了最简单的网络接入方法.全硬件TCP/IP协议栈完全独立于主控芯片,可以降低主芯片

涨知识-VI 基于TCP/UDP的应用层协议

基于TCP/UDP的应用层协议: 基于TCP: Telnet(Teletype over the Network, 网络电传),通过一个终端(terminal)登陆到网络 FTP(File Transfer Protocol 文件传输协议) SMTP(Simple Mail Transfer Protocol 简单邮件传输协议),用来发送电子邮件 POP3(Post Office Protocol 3)邮件读取协议,协议通常被用来接受电子邮件 HTTP HTTPS 基于UDP: NFS(net

基于AVR128的简单Modbus协议实现

Modbus通讯协议是由Modicon公司在1979年开发的,应用于工业现场控制的总线协议.Modbus通讯系统包括带有可编程控制的芯片节点和公共传输线组成,其目的是用于多节点数据的采集和监控.Modbus协议采用主从模式,通讯系统中有一个主机对多个节点从机进行监控,从机节点最多支持247个.每个从机均有自己独立的从机地址,而且改地址能够被主机识别. 能够支持Modbus协议的通讯系统有RS-232,RS-422,RS-485等.同时Modbus协议具有标准.开放.免费.帧格式简单等特点而被广大

MQTT是IBM开发的一个即时通讯协议,构建于TCP/IP协议上,是物联网IoT的订阅协议,借助消息推送功能,可以更好地实现远程控制

最近一直做物联网方面的开发,以下内容关于使用MQTT过程中遇到问题的记录以及需要掌握的机制原理,主要讲解理论. 背景 MQTT是IBM开发的一个即时通讯协议.MQTT构建于TCP/IP协议上,面向M2M和物联网IoT的连接协议,采用轻量级发布和订阅消息传输机制.Mosquitto是一款实现了 MQTT v3.1 协议的开源消息代理软件,提供轻量级的,支持发布/订阅的的消息推送模式,使设备对设备之间的短消息通信简单易用. 基本概念 [MQTT协议特点]——相比于RESTful架构的物联网系统,MQ

物联网常见通信协议与通讯协议梳理【上】- 通讯协议

先说明, 这是在微信公众号看到的,不是自己所写, 觉得别人总结的很好, 就拿过来了.对于学习, 做一个搬运工也不可耻了,将好的知识自己吸收.  在微信公众号里, 没有找到连接. 1  "通信"与"通讯"傻傻分得清 传统意义上的"通讯"主要指电话.电报.电传.通讯的"讯"指消息(Message),媒体讯息通过通讯网络从一端传递到另外一端.媒体讯息的内容主要是话音.文字.图片和视频图像.其网络的构成主要由电子设备系统和无线电系统构

Mifare系列6-射频卡与读写器的通信(转)

文/闫鑫原创转载请注明出处http://blog.csdn.net/yxstars/article/details/38085415 1. 复位应答(Answer to request) 读写器呼叫磁场内的卡片,卡片对呼叫做出应答.对刚进入磁场得到电复位处于休闲状态的卡片,卡请求(REQA,0x26):对于已进行过读写操作并进入 休眠状态的卡片,卡唤醒(WAKE-UP,0x52).其中卡请求(REQA)只能呼叫处于休闲(Idle)状态的卡片,卡唤醒(WAKE-UP)可以呼 叫所有卡片,包括处于休