Low Level Reader Protocol (LLRP) 简介

标准描述了RFID阅读器和客户端之间的接口。是面向消息的协议。

需要用户自己保持客户端和阅读器间的状态一致性。

客户端发起的到阅读器的消息:

  • 设置阅读器的配置
  • 读取阅读器的配置
  • 发现阅读器的能力
  • 管理inventory操作
  • 管理访问操作

阅读器发起的到客户端的消息:

  • 报告阅读器状态
  • 报告RF survey
  • 报告Inventory的结果
  • 报告访问的结果
  • Keepalives

客户端发起的到阅读器的消息都需要响应。

阅读器发起的到客户端的消息只有keepalives需要响应。

LLRP (1.1版)的连接包含两个阶段:版本协商(我现在手头的设备不支持这个功能)和运行时。

运行时的执行阶段如下:

  • 发现能力
  • 设备配置
  • (可选的)inventory和访问操作设置
  • 执行inventory循环:如果标签匹配成功,访问控制操作将在inventory周期内执行。
  • 执行RF survey操作
  • 发送报告回客户端

LLRP中的RF操作有:

  • 阅读器操作(RO): 天线Inventory, RF Survey
  • 访问操作(AO)

天线Inventory(AI)是阅读器和标签间的最小交互单元,用AISpec来描述,包括N * M个天线Inventory操作,其中N是天线数,M是InventoryParameterSpecs数。

RF Survey是阅读器使用一系列频率在一个天线上执行扫描和测量电量的操作。用RFSurveySpec描述。

阅读器操作用ROSpec描述,包括至少一个Spec(AISpec或RFSuerveySpec)。

ROSpec的状态图

阅读器根据ROSpec中的优先级进行强占(我手头的设备只支持一个ROSpec,没有这种情况)。

在ROSpec进入Active状态后,依次选择ROSpec中的Spec(AISpec或RFSurveySpec)执行。

访问操作用AccessSpec描述,通过引用的ID号与ROSpec相关联。AccessSpec中包含的TagSpec和OpSpec分别表示标签匹配条件和操作说明,当ROSpec中的AISpec选择了一个标签,而这个标签符合了某个与该ROSpec关联的AccessSpec中的TagSpec,则根据OpSpec的描述对该标签执行对应操作。

有一种特殊的OpSpec——ClientRequestOpSpec,阅读器会向客户端发送请求来获取额外的参数,需要客户端响应。

AccessSpec的状态

LLRP中连接可以是客户端发起的,也可以是阅读器发起的(还没有搞清楚阅读器如何发起)。

缺省的端口是5084,缺省的TLS端口是5085(没有试验过)。

连接到一个已经建立连接的阅读器时,如果成功,原先的连接会被关闭;如果不能关闭原来的连接,则当前的请求返回错误。

当阅读器收不到客户端的keepalives响应时,阅读器会关闭连接。

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