FiRa UWB Commmand Interface, 简写为UCI, UWB子系统命令接口。
定义了UWB子系统(UWB Subsystem,UWBS)和主机之间的一种命令接口通信协议。
UCI规范规定了UWB子系统(UWB Subsystem,UWBS)和主机之间的一种命令接口通信协议。FiRa联盟技术工作组,以本文件为基础,开发相关功能的测试用例以及互操作性测试。
UCI数据包的最大Payload为255字节。
术语 | 定义 | 说明 |
---|---|---|
ERDEV | Enhanced Ranging Device as defined in IEEE Std 802.15.4z-2020 | 增强测距设备 |
BPRF | Base Pulse Repetition Frequency | 基础脉冲重复频率 |
HPRF | Higher Pulse Repetition Frequency | 高脉冲重复频率 |
RCM | Ranging Control Message | 测距控制信息 |
RFRAME | Ranging frame | 测距帧 |
UCI核心包括以下所需的核心功能:
主机使用UCI控制消息来控制和配置UWBS设备。控制消息由命令、响应和通知组成。
控制消息在UCI控制分组中传输,且UCI支持将控制消息分割成多个包。
主机可以发送命令来指示UWBS执行特定动作。对于收到的每个命令,UWBS都应当回复一个响应,以确认收到命令。该响应还可以指示命令在UWBS上引起的改变(回复相关状态、参数等)。
通知只能从UWBS发送到主机,当要传递与命令相关的一些附加信息时可以发送通知。通知也可以独立于任何命令或响应发送,除非另有规定。
控制消息的有效载荷通过UCI传输,作为控制包的有效载荷。一个控制包包含控制消息有效载荷的全部或部分。主机和UWBS都应能支持有效载荷为MAX_PAYLOAD_SIZE(255)字节的控制消息。
因此,当通过UCI发送时,控制消息可以被分割成多个控制分组。
主机和UWBS可以根据需要在UCI上以任意多的分组发送完整的控制消息。UCI中的控制消息没有基于数据包的流控制。
以下流控制规则适用于控制消息:
主机收到任何命令都应被忽略。
当收到有错误的控制消息,但控制消息的类型是可以确认的,则应按一下方式处理:
UWBS收到未知命令(未知GID或OID)时应当响应一条具有相同GID和OID字段的响应,然后状态字段为STATUS_UNKNOWN_GID/STATUS_UNKNOWN_OID,且没有附加字段。
主机应忽略所有未知响应或通知(未知GID或OID)。
控制消息末尾附加的字节应被忽略,不被视为错误。
消息类型(MT)
MT字段指示数据包的内容,且应该在规定的3bit字段。信息字段的内容取决于MT字段的值。指定为RFU的MT在接收端应直接丢弃。
数据包边界标志(PBF)
数据包边界标志用于分段和组包,为1bit字段。
在主机和UWBS上都应该支持分段和重组功能。
分段控制消息的一些规则:
通过这样的限制,可以保证在接收的一方,能够有效的进行数据的拼接与重组。
每个控制分组应具有4个字节的分组报头,且可以具有一个或多个有效载荷,用于承载控制消息有效载荷或控制消息有效载荷的段。
注意,对于空的控制消息,只有包头被发送。
分组标识符(Group Identifier,GID)
UCI支持命令、响应根据其独特的组分类进行。组标识符指示消息的分类,且应包含下列4bit字段。
从当前的GID来看,包含了:
操作码标识符(Opcode Identifier, OID)
OID指示控制消息的标识,且应该是一个6bit的字段,该字段是组内一组命令、响应消息的唯一标识。
载荷长度(L),指示当前消息的载荷长度,0到MAX_PAYLOAD_SIZE。
GID | OID | 控制消息名 | 描述 |
---|---|---|---|
UCI Core Group 0b0000 | 0b000000 | CORE_DEVICE_RESET_CMD CORE_DEVICE_RESET_RSP | 请求UWBS复位 |
0b000001 | CORE_DEVICE_STATUS_NTF | 通知UWBS当前的状态 | |
暂略 | |||
UWB会话配置组 0b0001 | 0b000000 | SESSION_INIT_CMD SESSION_INIT_RSP | UWB会话创建请求 |
0b000001 | SESSION_DEINIT_CMD SESSION_DEINIT_RSP | 请求注销UWBS会话 | |
其他指令暂略过 | |||
UWB测距会话控制组 0b0010 | 0b000000 | RANGE_START_CMD RANGE_START_RSP RANGE_DATA_NTF | 激活UWB测距会话,UWBS设备测距会话激活后通知测距结果 |
暂略 | |||
0b0011 - 0b1000 | 0b000000 - 0b111111 | RFU | 保留未来使用 |
Vendor Specific Group 0b1001-0b1100 | 0b000000 - 0b111111 | 供应商自定义 | |
Test Group 0b1101 | 0b000000 - 0b111111 | 测试组命令 | 在FiRa UWB UCI测试规范中定义 |
Vendor Specific Group 0b1110-0b1111 | 0b000000 - 0b111111 | 供应商自定义 |
注:表格中仅对GID的大类进行了描述,每个GID中的具体命令略过,若需要可参考FiRa官方文件。
参考文档
1、FiRa Consortium, UCI Generic Specification v1.1.0-0.9r0.pdf。