引言
低功耗蓝牙是由蓝牙技术联盟(Bluetooth SIG)设计和销售的无线个人局域网技术,该技术面向医疗保健、健身、信标、
安全和家庭娱乐行业的创新应用。
与标准蓝牙相比,低功耗蓝牙大大降低了功耗和成本,同时保持了相似的通信范围。
标准 HCI 指令在“蓝牙核心规范 V5.3”(蓝牙®低功耗规范是其中一部分)中定义。
此应用笔记描述了专有指令。
本文档适用于基于 Arm®核心的 STM32WB 系列微控制器。
HCI_DISCONNECT
指令用于终止已有连接。Connection_Handle 参数表示要断开的连接,Reason 参数表示结束连接的原因。远程控制器在 HCI_DISCONNECTION_COMPLETE_EVENT 事件中接收原因参数。在断开同一物理连接上的ACL 连接之前,须断开物理链路上的所有同步连接。在发送任何新指令(包括系统硬件复位)之前务必留有100 ms 的空窗期,因为在 HCI_DISCONNECTION_COMPLETE_EVENT 事件发生后,系统可将重要信息保存在非易失性存储器中。
HCI_READ_REMOTE_VERSION_INFORMATION
该指令会获取 Connection_Handle 参数标识的远程设备的版本信息值。Connection_Handle 必须是 ACL 或LE 连接的 Connection_Handle。
HCI_SET_EVENT_MASK
该指令用于控制 HCI 为主机生成哪些事件。如果 Event_Mask 中的该位设为 1,则会启用相关联的事件。对于LE 控制器,Event_Mask 中的 LE 元事件位启用或禁用 LE 元事件中的所有 LE 事件。主机必须处理每一个发生的事件。事件掩码允许主机控制多少个中断。
HCI_RESET
该指令复位 LE 控制器上的链路层,但不影响使用的 HCI 传输层,因为这些层可以有自己的复位机制。复位完成后,当前操作状态会丢失,会进入待机模式,控制器会自动恢复为在规范中定义了默认值的参数的默认值。
HCI_READ_TRANSMIT_POWER_LEVEL
该指令读取为 ACL 连接指定的 Connection_Handle 的 Transmit_Power_Level 参数的值。
主机使用此指令启用或禁用从控制器到主机方向发送的数据和/或语音的流量控制。如果流量控制关闭,主机不发送 HCI_HOST_NUMBER_OF_COMPLETED_PACKETS 指令:如果主机发送该指令,且流量控制关闭,则该指令将被控制器忽略。
如果为 HCI ACL 数据包启用/禁用流量控制,并为 HCI 同步数据包禁用/启用流量控制,则主机发送的HCI_HOST_NUMBER_OF_COMPLETED_PACKETS 指令须仅包含 ACL/同步连接的 Connection_Handles。如果为 HCI ACL 数据包和 HCI 同步数据包启用流量控制,则主机会为 ACL 连接和同步连接发送HCI_HOST_NUMBER_OF_COMPLETED_PACKETS 指令。如果没有连接,则只更改 Flow_Control_Enable参数。