H4、H5、BCSP 与低功耗 UART 协议

H4、H5、BCSP 与低功耗 UART 协议

1. H4

最简单framing:

1
1-byte packet type + HCI header + payload

无校验、重传或序号,依赖可靠UART和通常的RTS/CTS。h4_recv_buf()按packet descriptor组帧。

2. H5 / Three-wire

H5提供:

-SLIP式定界/转义;
-seq/ack;
-可靠包重传;
-可选CRC;
-link establishment;
-无需硬件flow control的能力。

状态机和retrans timer比H4复杂。错误波特率、peer reset或丢字节会触发重新同步。

3. BCSP

CSR BlueCore协议,同样有reliable/unreliable channels、ack、CRC和SLIP framing,主要服务旧硬件。

4. HCILL

TI Low Level协议在H4数据外加入sleep/wakeup控制,协调主机和controller UART clock/power。

5. QCA IBS

Qualcomm In-Band Sleep使用wake/sleep字节和timer管理TX/RX休眠,避免常开UART。hci_qca.c还管理regulator、clock、speed和firmware。

6. Broadcom

Broadcom仍以H4传包,但serdev driver管理shutdown GPIO、device wake/host wake、clock和runtime PM。

7. Protocol选择

选择依据controller,不是主机SoC:

  • H4:广泛;
  • H5:Realtek及部分3-wire芯片;
  • LL:TI;
  • QCA:Qualcomm;
  • BCM:Broadcom;
  • ATH3K:Atheros;
  • MRVL:Marvell。

8. 本defconfig

显式启用 BT_HCIUART_ATH3K,它select H4。没有显式启用H5/BCM/QCA等,除非其它Kconfig选择或实际构建配置追加,否则对应对象不会进入 hci_uart.o

9. 性能

UART吞吐受波特率、flow control、调度延迟和small packet开销限制。ACL吞吐高时必须使用稳定RTS/CTS;低功耗握手参数过激会增加首包时延。

文章互动

阅读 --

留言

0 条留言

正在加载留言…