FiRa标准——UCI通用规范(一)

2023-09-01  本文已影响0人  UWB老兵Luo

FiRa UCI通用规范(一)

FiRa UWB Commmand Interface, 简写为UCI, UWB子系统命令接口。

定义了UWB子系统(UWB Subsystem,UWBS)和主机之间的一种命令接口通信协议。

UCI规范规定了UWB子系统(UWB Subsystem,UWBS)和主机之间的一种命令接口通信协议。FiRa联盟技术工作组,以本文件为基础,开发相关功能的测试用例以及互操作性测试。

UCI数据包的最大Payload为255字节。

UCI核心框架

UCI核心包括以下所需的核心功能:

- 通过UCI传输命令、响应和通知消息的数据包格式

- 主机与UWBS之间用于不同操作的命令、响应和通知定义

- 命令/响应消息交换的流控制机制

- 所有UCI消息的分段和重组

- UWBS的重启、初始化和配置

UCI控制消息

主机使用UCI控制消息来控制和配置UWBS设备。控制消息由命令、响应和通知组成。

    - 命令只允许从主机到UWBS的方向发送

    - 响应和通知只允许从UWBS到主机的方向

控制消息在UCI控制分组中传输,且UCI支持将控制消息分割成多个包。

主机可以发送命令来指示UWBS执行特定动作。对于收到的每个命令,UWBS都应当回复一个响应,以确认收到命令。该响应还可以指示命令在UWBS上引起的改变(回复相关状态、参数等)。

通知只能从UWBS发送到主机,当要传递与命令相关的一些附加信息时可以发送通知。通知也可以独立于任何命令或响应发送,除非另有规定。

控制消息的有效载荷通过UCI传输,作为控制包的有效载荷。一个控制包包含控制消息有效载荷的全部或部分。主机和UWBS都应能支持有效载荷为MAX_PAYLOAD_SIZE(255)字节的控制消息。

因此,当通过UCI发送时,控制消息可以被分割成多个控制分组。

控制消息的流控制

主机和UWBS可以根据需要在UCI上以任意多的分组发送完整的控制消息。UCI中的控制消息没有基于数据包的流控制。

以下流控制规则适用于控制消息:

    - 发送命令后,主机在未收到该命令的响应之前不能发送任何命令,或等待超时,可采取措施恢复与UWBS的交换消息的能力

    - 发送命令后,主机应该能够接收响应

    - 发送响应后,UWBS应该准备从主机接收下一个命令

    - 主机应该在任何时刻都可以接收UWBS的通知。

控制消息的异常处理

主机收到任何命令都应被忽略。

当收到有错误的控制消息,但控制消息的类型是可以确认的,则应按一下方式处理:

    - 如果控制消息是命令,则UWBS应忽略命令的内容,并发送具有与命令中相同的GID和OID字段值以及STATUS_SYNTAX_ERROR状态值。响应不应包含任何附加字段。

    - 如果控制消息是响应,则主机应忽略响应的内容,并可以自由发送另一条命令。

    - 如果控制消息是通知,主机应忽略该通知。

UWBS收到未知命令(未知GID或OID)时应当响应一条具有相同GID和OID字段的响应,然后状态字段为STATUS_UNKNOWN_GID/STATUS_UNKNOWN_OID,且没有附加字段。

主机应忽略所有未知响应或通知(未知GID或OID)。

控制消息末尾附加的字节应被忽略,不被视为错误。

上一篇 下一篇

猜你喜欢

热点阅读