leaps_bh_xfer

写入下行链路数据并读取上行链路数据块。 模块必须配置为关接节点。

通过 SPI 接口传输上行和下行数据时,上行和下行数据都被编码为 tlv 帧,如 SPI上的多TVL 所述。

SPI 主站通过 downlink_byte_cnt 告诉从站要传输多少个下行链路字节。 从站在第一次 SPI 传输中读取 下行链路字节数。 从站在读取下行链路数据时,已经准备好了一些上行链路数据,它希望将这些数据传输给主站。 要同时从主站向从站传输下行链路数据和从站向主站传输上行链路数据,从站必须计算出需要多少字节和多少次 SPI 传输。 主站在第二次 SPI 传输中读取字节数和传输数,详见 通过 SPI 传输多个 TVL。 最后,执行传输,并传输上行链路和下行链路。 目前支持的最大传输次数为 5 次,最大有效载荷为 253 字节,即 255 -(TLV 标头)的大小。 一次调用 leaps_bh_xfer 最多支持 5 个上行链路帧和 2 个下行链路帧。


输入
  • downlink_byte_cnt: 16 位无符号整数(不含 TLV 头的下行链路数据字节数,最多 506 字节)

输出
  • downlink_chunk:最多 253 字节(作为下行链路发送到从属设备的不透明数据)

  • output: 5 [上行链路_chunk]。

  • uplink_chunk: 最多 253 字节 (不透明数据作为上行链路发送到主站)


UART 示例

UART 接口不可用。

SPI示例(关接除外)

TLV 请求

类型

长度

价值

downlink_byte_cnt = 下行数据大小 (244 字节)

0x37

0x02

0xF4 0x00

0x37 表示命令 leaps_bh_xfer

TLV 响应

类型

长度

价值

0x40

0x01

0x02

SPI 示例关

下行链路字节数:244
上行链路字节数:980

TLV 请求

类型

长度

值downlink_byte_cnt = 下行链路数据的大小 (244 字节)

0x37

0x02

0xF4 0x00

0x37 表示命令 leaps_bh_xfer

此调用具有可变的连续传输次数,它遵循 TLV 请求,请参阅 “API over SPI 接口描述 <#example-interrupt-leaps_bh_xfer>”

TLV 下行链路编号1,2, 3,4,5

类型

长度 (244 字节)

价值

0x64

0xF4 (244)

下行链路数据块 nr.1

0x65

0x00

空

0x66

0x00

空

0x67

0x00

空

0x68

0x00

空

TLV上行链路编号1,2,3,4,5

类型

长度(980 字节)

价值

0x6E

0xFD (253)

上行链路数据块 1

0x6F

0xFD

上行链路数据块nr.2

0x70

0xFD

上行链路数据块 nr.3

0x71

0xDD (221)

上行链路数据块 nr.4

0x72

0x00

空

类型0x64表示下行链路数据块nr.1
类型0x65表示下行链路数据块nr.2
…
类型 0x68 表示下行链路数据块nr.5
类型0x6E表示上行链路数据块nr.1
类型0x6F表示上行链路数据块nr.2
…
类型0x72表示上行链路数据块nr.5

通过USB进行BH传输

通过 USB 传输 BH 数据与通过 SPI 传输不同. SPI 数据传输以中断为基础,但 LEAPS RTLS 设备与 PC 之间的 USB 连接无法使用中断线路,因此在 USB 接口上,LEAPS RTLS 设备将主动发送通知(TLV_TYPE_NOTIF_STATUS, TLV_TYPE_NOTIF_BH_STATUS)和上行数据块给网关主控(PC),而不是使用 TLV_TYPE_CMD_BH_XFER TLV 命令的请求-响应方式. 通知和上行链路数据可以启用/禁用,类似于使用 leaps_int_cfg_set 的中断。