Controller Baseband commands速览
目录
一、设备连接与通信控制类(34条)
1.1. 连接参数相关
1.1.1. 连接建立超时设置
1.1.2. 链路监督超时设置
1.1.3. Page操作超时设置
1.1.4. 扩展Page操作超时设置
1.1.5. 安全连接主机支持
1.2. 扫描操作相关
1.2.1. 扫描启用与禁用
1.2.2. page扫描活动设置
1.2.3. 查询扫描活动设置
1.2.4. 扫描类型设置
1.2.5. 查询模式与扩展查询长度设置
1.2.6. 扩展询问响应相关
1.3. 传输功率相关
1.3.1. 基本传输功率读取与设置
1.3.2. 查询响应传输功率读取
1.3.3. 增强型传输功率读取
1.4. 流量控制相关
1.4.1. 同步流量控制启用与禁用
1.4.2. 控制器到主机的流量控制设置
1.4.3. 流量控制模式读取与设置
二、设备标识与配置管理类(11 条)
2.1. 设备名称相关命令
2.2. 设备类别相关命令
2.3. 链路密钥相关命令
2.4. 配对相关命令
三、设备安全保障类(9条)
3.1. 加密相关
3.2. 认证相关
四、设备状态维护与功能调整类(22 条)
4.1. 重置与刷新相关
4.2. 设备模式相关
4.3. 语音设置与自动刷新
4.4. MWS(媒体无线服务)配置
4.5. 地址与同步参数配置
五、事件与通知处理类(4 条)
5.1. 事件掩码相关
5.2. 事件过滤相关
5.3. 通知相关
六、其他(14条)
6.1. PIN 类型相关
6.2. 广播相关
6.3. 数据路径相关
6.4. IAC(Inquiry Access Code)相关
6.5. AFH(Adaptive Frequency Hopping)相关
Controller & Baseband命令为蓝牙硬件的各种能力提供了访问和控制手段。这些参数可以控制BR/EDR(基本速率/增强数据率)控制器,以及BR/EDR控制器中的链路管理器和基带,还有低功耗(LE)控制器中的链路层的能力。主机可以使用这些命令来修改本地控制器的行为。对于HCI(主机控制器接口)控制和基带命令,其操作组功能码(OGF)被定义为0x03。
以下是对Bluetooth Core Specification Version 6.0中列出的Controller & Baseband commands汇总。总共94条有效命令。
一、设备连接与通信控制类(34条)
1.1. 连接参数相关
连接参数相关命令在蓝牙设备的连接管理、链路监督以及page操作等方面发挥着重要作用,通过合理调整这些参数的设置值,可以优化蓝牙设备的性能和稳定性,提高蓝牙通信的可靠性和效率。
1.1.1. 连接建立超时设置
- Read Connection Accept Timeout command
- 功能:读取设备在蓝牙连接建立过程中,等待对方设备接受连接请求的最大时间(即连接接受超时时间)。
- 使用场景:适用于需要了解或监控蓝牙设备连接接受策略的场景,特别是在物联网环境中,确保传感器等设备能够及时响应控制中心的连接请求。
- Write Connection Accept Timeout command
- 功能:设置设备在蓝牙连接建立过程中的连接接受超时时间。
- 使用场景:根据网络环境、设备性能等实际情况,调整连接接受超时时间以优化连接建立的效率和稳定性。例如,在复杂无线环境下,可能需要适当延长超时时间以提高连接成功率。
1.1.2. 链路监督超时设置
- Read Link Supervision Timeout command
- 功能:读取蓝牙通信链路建立后,用于检测链路故障而设定的时间间隔(即链路监督超时时间)。
- 使用场景:适用于需要监控蓝牙链路健康状况的场景,确保在链路出现问题时能够及时发现并处理。例如,在医疗设备之间的数据传输中,需要高可靠性的通信链路,因此可以适当缩短链路监督超时时间来快速发现链路故障。
- Write Link Supervision Timeout command
- 功能:设置蓝牙通信链路建立后的链路监督超时时间。
- 使用场景:根据通信需求调整链路监督超时时间以优化通信质量和故障检测机制。例如,在需要长时间保持蓝牙连接但数据传输频率较低的场景中,可以适当延长链路监督超时时间来减少不必要的链路断开。
1.1.3. Page操作超时设置
- Read Page Timeout command
- 功能:读取蓝牙设备在执行page扫描、查找等操作时等待响应的最大时间(即page超时时间)。
- 使用场景:适用于需要了解或监控蓝牙设备page操作策略的场景。例如,在蓝牙设备配对过程中,了解page超时时间有助于判断配对过程是否成功以及是否需要延长超时时间以增加配对成功率。
- Write Page Timeout command
- 功能:设置蓝牙设备在执行page扫描、查找等操作时的page超时时间。
- 使用场景:根据操作环境、设备数量等实际情况调整page超时时间以优化操作效率和成功率。例如,在设备密集的环境中,可能需要适当延长page超时时间以增加找到目标设备的概率。
1.1.4. 扩展Page操作超时设置
- Read Extended Page Timeout command
- 功能:读取蓝牙设备在执行复杂或特殊page操作时的额外等待时间(即扩展page超时时间)。
- 使用场景:适用于需要了解或监控蓝牙设备在复杂或特殊page操作中的超时设置情况的场景。例如,在进行蓝牙设备固件升级或配置文件更新等涉及多page、长流程的操作时,了解扩展page超时时间有助于判断操作是否能在规定时间内完成。
- Write Extended Page Timeout command
- 功能:设置蓝牙设备在执行复杂或特殊page操作时的扩展page超时时间。
- 使用场景:根据操作需求调整扩展page超时时间以优化操作性能和稳定性。例如,在进行蓝牙设备新功能开发测试时,可能需要调整扩展page超时时间来适应测试需求并确保操作能够稳定进行。
1.1.5. 安全连接主机支持
- Read Secure Connections Host Support command
- 功能:读取主机对安全连接(Secure Connections)的支持情况。
- 使用场景:在初始化蓝牙连接时,用于确定设备是否支持安全连接特性,以选择适当的加密和认证机制。
1.2. 扫描操作相关
扫描操作相关命令在蓝牙设备的扫描管理、扫描活动设置、扫描类型选择以及查询模式与扩展查询长度等方面发挥着重要作用,通过合理调整这些参数的设置值,可以优化蓝牙设备的扫描性能和效率,提高蓝牙通信的可靠性和稳定性。
1.2.1. 扫描启用与禁用
- Read Scan Enable command
- 功能:读取蓝牙设备的扫描启用状态,包括page扫描和查询扫描的启用情况。
- 使用场景:适用于需要了解当前蓝牙设备扫描状态的应用场景,如蓝牙设备管理系统在监控设备状态时,可以读取扫描启用状态以判断设备是否处于可被发现或可连接的状态。
- Write Scan Enable command
- 功能:设置蓝牙设备的扫描启用状态,允许或禁止page扫描和inquiry扫描。
- 使用场景:在需要控制蓝牙设备扫描行为的场景中,如蓝牙音箱在不需要被发现或连接时,可以通过禁用扫描来减少功耗和避免不必要的连接请求。
- 【0x001A】HCI_Write_Scan_Enable详解-CSDN博客
1.2.2. page扫描活动设置
- Read Page Scan Activity command
- 功能:读取蓝牙设备page扫描活动的参数,包括page扫描间隔和page扫描窗口。
- 使用场景:适用于需要了解蓝牙设备page扫描行为的应用场景,如蓝牙设备配对过程中,可以读取page扫描活动参数以优化配对速度和成功率。
- Write Page Scan Activity command
- 功能:设置蓝牙设备page扫描活动的参数,调整page扫描间隔和page扫描窗口。
- 使用场景:在需要调整蓝牙设备page扫描行为的场景中,如蓝牙设备在低功耗模式下,可以通过调整page扫描间隔和窗口来减少功耗并维持一定的连接性能。
- 【0x001C】HCI_Write_Page_Scan_Activity详解-CSDN博客
1.2.3. 查询扫描活动设置
- Read Inquiry Scan Activity command
- 功能:读取蓝牙设备查询扫描活动的参数,包括查询扫描间隔和查询扫描窗口。
- 使用场景:适用于需要了解蓝牙设备查询扫描行为的应用场景,如蓝牙设备在查找周围设备时,可以读取查询扫描活动参数以优化查找速度和范围。
- Write Inquiry Scan Activity command
- 功能:设置蓝牙设备查询扫描活动的参数,调整查询扫描间隔和查询扫描窗口。
- 使用场景:在需要调整蓝牙设备查询扫描行为的场景中,如蓝牙设备在需要快速发现周围设备时,可以通过调整查询扫描间隔和窗口来加快查找速度。
- 【0x001E】HCI_Write_Inquiry_Scan_Activity详解-CSDN博客
1.2.4. 扫描类型设置
- Read Inquiry Scan Type command
- 功能:读取蓝牙设备查询扫描的类型,包括标准查询扫描和有限查询扫描。
- 使用场景:适用于需要了解蓝牙设备查询扫描类型的应用场景,如蓝牙设备在需要限制查询范围或提高查询效率时,可以读取查询扫描类型以选择合适的扫描模式。
- Write Inquiry Scan Type command
- 功能:设置蓝牙设备查询扫描的类型。
- 使用场景:在需要调整蓝牙设备查询扫描类型的场景中,如蓝牙设备在需要减少功耗或提高查找准确性时,可以通过设置查询扫描类型来优化扫描行为。
- 【0x0043】HCI_Write_Inquiry_Scan_Type详解-CSDN博客
- Read Page Scan Type command
- 功能:读取蓝牙设备页page扫描的类型。
- 使用场景:适用于需要了解蓝牙设备page扫描类型的应用场景,如蓝牙设备在需要优化page扫描性能时,可以读取page扫描类型以了解当前扫描模式。
- Write Page Scan Type command
- 功能:设置蓝牙设备page扫描的类型。
- 使用场景:在需要调整蓝牙设备page扫描类型的场景中,如蓝牙设备在需要提高连接稳定性或降低功耗时,可以通过设置page扫描类型来优化扫描行为。
- 【0x0047】HCI_Write_Page_Scan_Type详解-CSDN博客
1.2.5. 查询模式与扩展查询长度设置
- Read Inquiry Mode command
- 功能:读取蓝牙设备的查询模式,包括标准查询模式和同时查询模式。
- 使用场景:适用于需要了解蓝牙设备查询模式的应用场景,如蓝牙设备在需要同时查询多个设备时,可以读取查询模式以判断当前是否支持同时查询。
- Write Inquiry Mode command
- 功能:设置蓝牙设备的查询模式。
- 使用场景:在需要调整蓝牙设备查询模式的场景中,如蓝牙设备在需要提高查询效率或降低功耗时,可以通过设置查询模式来优化查询行为。
- 【0x0045】HCI_Write_Inquiry_Mode详解-CSDN博客
- Read Extended Inquiry Length command
- 功能:读取蓝牙设备扩展查询的长度,即查询过程中可以返回的设备数量上限。
- 使用场景:适用于需要了解蓝牙设备扩展查询长度的应用场景,如蓝牙设备在需要控制查询结果数量的场景中,可以读取扩展查询长度以限制查询结果的数量。
- Write Extended Inquiry Length command
- 功能:设置蓝牙设备扩展查询的长度。
- 使用场景:在需要调整蓝牙设备扩展查询长度的场景中,如蓝牙设备在需要增加或减少查询结果数量的场景中,可以通过设置扩展查询长度来优化查询行为。
1.2.6. 扩展询问响应相关
-
Read Extended Inquiry Response command
- 功能:读取扩展查询响应数据。
- 使用场景:在蓝牙设备被查询时,用于提供比标准查询响应更详细的信息,如设备名称、服务类等。
-
Write Extended Inquiry Response command
- 功能:写入扩展查询响应数据。
- 使用场景:在需要自定义设备被查询时的响应信息时使用,如修改设备名称或添加特定服务类。
1.3. 传输功率相关
传输功率相关命令在蓝牙设备的传输功率管理、查询与响应过程中的传输功率设置以及增强型传输功率支持等方面发挥着重要作用。通过合理调整这些参数的设置值,可以优化蓝牙设备的通信性能和效率,提高蓝牙通信的可靠性和稳定性。
1.3.1. 基本传输功率读取与设置
- Read Transmit Power Level command
- 功能:读取当前蓝牙设备的传输功率级别。传输功率决定了蓝牙设备在通信过程中发送信号的强度。
- 使用场景:该命令适用于需要了解蓝牙设备当前传输功率级别的应用场景。例如,在蓝牙设备的功耗管理中,通过读取传输功率级别,可以评估设备的能耗情况,并据此调整传输功率以平衡功耗和通信距离。此外,在蓝牙设备的性能测试中,传输功率级别也是重要的测试指标之一。
- Write Inquiry Transmit Power Level command
- 功能:设置蓝牙设备在查询(inquiry)过程中的传输功率级别。查询是蓝牙设备发现其他设备的一种方式。
- 使用场景:该命令适用于需要调整蓝牙设备在查询过程中传输功率级别的应用场景。例如,在需要提高蓝牙设备发现其他设备的速度或范围的场景中,可以通过增加传输功率级别来实现。同样,在需要降低功耗或避免对其他设备造成干扰的场景中,可以通过降低传输功率级别来实现。
1.3.2. 查询响应传输功率读取
- Read Inquiry Response Transmit Power Level command
- 功能:读取蓝牙设备在查询响应过程中的传输功率级别。查询响应是蓝牙设备对其他设备查询请求的回应。
- 使用场景:该命令适用于需要了解蓝牙设备在查询响应过程中传输功率级别的应用场景。例如,在蓝牙设备的配对过程中,通过读取查询响应传输功率级别,可以评估设备之间的通信质量,并据此调整传输功率以优化配对速度和成功率。此外,在蓝牙设备的性能测试中,查询响应传输功率级别也是重要的测试指标之一。
1.3.3. 增强型传输功率读取
- Read Enhanced Transmit Power Level command
- 功能:读取蓝牙设备支持的增强型传输功率级别。增强型传输功率级别通常比基本传输功率级别更高,适用于需要更长通信距离或更高通信质量的场景。
- 使用场景:该命令适用于需要了解蓝牙设备是否支持增强型传输功率级别以及具体级别的应用场景。例如,在需要实现远距离蓝牙通信的场景中,可以通过读取增强型传输功率级别来评估设备的通信能力,并据此选择合适的设备或调整通信参数以满足通信需求。此外,在蓝牙设备的性能测试中,增强型传输功率级别也是重要的测试指标之一,可以用于评估设备的极限通信能力和性能表现。
1.4. 流量控制相关
流量控制相关命令在蓝牙设备的流量管理、数据传输速率控制和数据传输质量优化等方面发挥着重要作用。通过合理调整这些参数的设置值,可以优化蓝牙设备的通信性能和效率,提高蓝牙通信的可靠性和稳定性。
1.4.1. 同步流量控制启用与禁用
- Read Synchronous Flow Control Enable command
- 功能:读取蓝牙设备是否启用了同步流量控制功能。同步流量控制是一种用于管理蓝牙设备间数据传输速率的机制,旨在确保数据的稳定传输并避免数据丢失。
- 使用场景:该命令适用于需要了解蓝牙设备当前同步流量控制状态的应用场景。例如,在蓝牙音频设备中,通过读取同步流量控制启用状态,可以判断设备是否具备管理数据传输速率的能力,从而优化音频数据的传输质量和稳定性。
- Write Synchronous Flow Control Enable command
- 功能:设置蓝牙设备是否启用同步流量控制功能。
- 使用场景:该命令适用于需要调整蓝牙设备同步流量控制状态的应用场景。例如,在蓝牙数据传输过程中,如果检测到数据传输速率不稳定或数据丢失的情况,可以通过启用同步流量控制来优化数据传输性能。同样,在需要降低功耗或提高数据传输效率的场景中,也可以根据实际需求调整同步流量控制的启用状态。
1.4.2. 控制器到主机的流量控制设置
- Set Controller To Host Flow Control command
- 功能:设置蓝牙控制器到主机的流量控制参数。这些参数通常包括数据传输的缓冲区大小、传输间隔等,用于控制蓝牙控制器向主机发送数据的速率和量。
- 使用场景:该命令适用于需要调整蓝牙控制器到主机数据传输速率的场景。例如,在蓝牙音频传输中,为了确保音频数据的实时性和连续性,可以通过设置合适的流量控制参数来优化数据传输性能。此外,在蓝牙数据传输过程中,如果检测到数据缓冲区溢出或数据丢失的情况,也可以通过调整流量控制参数来解决问题。
1.4.3. 流量控制模式读取与设置
- Read Flow Control Mode command
- 功能:读取蓝牙设备当前使用的流量控制模式。流量控制模式决定了蓝牙设备如何管理数据传输速率和避免数据丢失。
- 使用场景:该命令适用于需要了解蓝牙设备当前流量控制模式的应用场景。例如,在蓝牙设备配置过程中,通过读取流量控制模式,可以判断设备是否支持特定的流量控制机制,从而选择合适的配置参数以优化数据传输性能。
- Write Flow Control Mode command
- 功能:设置蓝牙设备使用的流量控制模式。
- 使用场景:该命令适用于需要调整蓝牙设备流量控制模式的场景。例如,在蓝牙数据传输过程中,如果发现当前流量控制模式无法满足数据传输需求或导致数据丢失的情况,可以通过调整流量控制模式来优化数据传输性能。此外,在蓝牙设备升级或更新过程中,也可以根据需要调整流量控制模式以支持新的数据传输需求。
二、设备标识与配置管理类(11 条)
2.1. 设备名称相关命令
-
Write Local Name command
- 功能:该命令用于设置蓝牙设备的本地名称。本地名称是蓝牙设备在广播、查询响应或建立连接时向其他设备展示的名称。
- 使用场景:在蓝牙设备的初始化配置阶段,或当用户希望更改设备名称以更易于识别时,可以使用此命令。例如,在智能手机或蓝牙音箱上,用户可以通过此命令将设备名称更改为更具个性化的名称。
-
Read Local Name command
- 功能:该命令用于读取蓝牙设备的本地名称。
- 使用场景:当其他蓝牙设备需要了解当前设备的名称时,可以使用此命令。例如,在蓝牙设备搜索过程中,当找到一个新的蓝牙设备时,可以通过读取其本地名称来了解该设备的身份或用途。
2.2. 设备类别相关命令
- Read Class of Device command
- 功能:该命令用于读取蓝牙设备的类别信息。设备类别信息描述了设备的类型和主要功能,例如计算机、电话、音频设备等。
- 使用场景:在蓝牙设备搜索和配对过程中,设备类别信息可以帮助用户快速识别设备的类型和用途,从而选择是否与其建立连接。此外,设备类别信息还可以用于优化蓝牙设备间的互操作性。
- Write Class of Device command
- 功能:该命令用于设置蓝牙设备的类别信息。
- 使用场景:当蓝牙设备的类型或功能发生变化时,可以使用此命令更新其类别信息。例如,当用户将蓝牙音箱连接到计算机上作为音频输出设备时,可以通过此命令更新音箱的设备类别信息,以反映其当前的角色和功能。
2.3. 链路密钥相关命令
- Read Stored Link Key command
- 功能:该命令用于读取蓝牙设备中存储的链路密钥。链路密钥是蓝牙设备在建立安全连接时使用的加密密钥。
- 使用场景:在蓝牙设备的安全管理中,当需要验证或恢复与特定设备的连接时,可以使用此命令读取存储的链路密钥。例如,在蓝牙耳机与手机重新配对时,如果之前已经存储了链路密钥,则可以通过读取该密钥来加速配对过程。
- Write Stored Link Key command
- 功能:该命令用于在蓝牙设备中存储新的链路密钥。
- 使用场景:当蓝牙设备与另一个设备建立新的安全连接时,可以使用此命令将新生成的链路密钥存储到设备中。这样,在未来的连接过程中,就可以使用存储的链路密钥来快速建立安全连接。
- Delete Stored Link Key command
- 功能:该命令用于删除蓝牙设备中存储的特定链路密钥。
- 使用场景:当用户不再需要与某个蓝牙设备建立安全连接时,或当链路密钥可能已泄露时,可以使用此命令删除存储的链路密钥。这有助于保护蓝牙设备的安全性。
2.4. 配对相关命令
- Read Simple Pairing Mode command
- 功能:该命令用于读取蓝牙设备的简单配对模式设置。简单配对模式是一种简化的配对过程,旨在提高用户配对的便利性和安全性。
- 使用场景:在蓝牙设备的初始化配置阶段,或当用户希望了解当前设备的简单配对模式设置时,可以使用此命令。通过了解简单配对模式的设置,用户可以更好地掌握设备的配对方式和安全性。
- Write Simple Pairing Mode command
- 功能:该命令用于设置蓝牙设备的简单配对模式。
- 使用场景:当用户希望更改设备的简单配对模式设置时,可以使用此命令。例如,在需要提高配对安全性或降低配对复杂性的场景中,可以通过调整简单配对模式的设置来实现。
- Read Local OOB Data command
- 功能:该命令用于读取蓝牙设备中存储的本地OOB(Out Of Band)数据。OOB数据是在蓝牙设备配对过程中用于增强安全性的额外信息。
- 使用场景:在支持OOB数据的蓝牙设备配对过程中,可以使用此命令读取存储的OOB数据。通过结合OOB数据和蓝牙设备的其他信息,可以实现更高级别的安全性验证。
- Read Local OOB Extended Data command
- 功能:该命令用于读取蓝牙设备中存储的扩展本地OOB数据。与Read Local OOB Data命令相比,此命令提供了更丰富的OOB数据读取功能。
- 使用场景:在需要更高安全性要求的蓝牙设备配对过程中,可以使用此命令读取存储的扩展OOB数据。通过结合扩展OOB数据和蓝牙设备的其他信息,可以实现更严格的安全性验证和更高级别的安全保护。
三、设备安全保障类(9条)
3.1. 加密相关
- Refresh Encryption Key command
- 功能:该命令用于更新蓝牙设备间的加密密钥。在蓝牙通信中,加密密钥用于确保数据传输的安全性。通过定期更新加密密钥,可以增强蓝牙设备的安全性,防止密钥被破解或泄露。
- 使用场景:当蓝牙设备间的连接已经建立,但出于安全考虑需要更新加密密钥时,可以使用此命令。例如,在长时间使用蓝牙设备后,为了增强安全性,可以定期执行此命令来更新加密密钥。
- Write Secure Connections Host Support command
- 功能:该命令用于设置蓝牙设备是否支持安全连接(Secure Connections)。安全连接是一种增强的蓝牙配对机制,它提供了更高的安全性,包括使用更强大的加密算法和防止中间人攻击等。
- 使用场景:在蓝牙设备的配置阶段,或当需要确保蓝牙设备间的通信安全性时,可以使用此命令来启用或禁用安全连接支持。如果设备支持安全连接,则建议启用该功能以增强安全性。
- Read Authenticated Payload Timeout command
- 功能:该命令用于读取蓝牙设备中设置的认证有效负载超时时间。认证有效负载是指在蓝牙通信中经过认证的数据包。超时时间是指在没有接收到新的认证有效负载之前,设备将保持认证状态的最长时间。
- 使用场景:在需要了解蓝牙设备认证状态保持时间的应用场景中,可以使用此命令。通过读取超时时间,可以评估设备的安全性,并根据需要调整超时设置以优化安全性。
- Write Authenticated Payload Timeout command
- 功能:该命令用于设置蓝牙设备中认证有效负载的超时时间。通过调整超时时间,可以控制设备在多长时间内保持认证状态。
- 使用场景:在需要调整蓝牙设备认证状态保持时间的应用场景中,可以使用此命令。例如,在需要提高设备安全性的场景中,可以缩短超时时间来减少潜在的安全风险;在需要保持长时间连接稳定性的场景中,可以延长超时时间来避免频繁重新认证导致的连接中断。
- Set Min Encryption Key Size command
- 功能:该命令用于设置蓝牙设备加密密钥的最小长度。加密密钥的长度是影响蓝牙通信安全性的重要因素之一。通过设置最小密钥长度,可以确保设备使用的加密密钥具有足够的安全性。
- 使用场景:在需要提高蓝牙设备通信安全性的应用场景中,可以使用此命令来设置加密密钥的最小长度。例如,在涉及敏感数据传输的场景中,可以设置较长的密钥长度以增强安全性。
3.2. 认证相关
- Read Authentication Enable command
- 功能:该命令用于读取蓝牙设备是否启用了认证功能。认证是蓝牙通信中的一项重要安全机制,用于验证设备的身份和确保通信的合法性。
- 使用场景:在需要了解蓝牙设备认证状态的应用场景中,可以使用此命令。通过读取认证启用状态,可以评估设备的安全性,并根据需要启用或禁用认证功能以优化安全性。
- Write Authentication Enable command
- 功能:该命令用于设置蓝牙设备是否启用认证功能。通过启用认证功能,可以确保只有经过验证的设备才能与蓝牙设备建立连接和通信。
- 使用场景:在需要增强蓝牙设备安全性的应用场景中,可以使用此命令来启用认证功能。例如,在涉及敏感数据传输或需要确保设备间通信合法性的场景中,建议启用认证功能以增强安全性。
- Read Default Erroneous Data Reporting command
- 功能:该命令用于读取蓝牙设备是否启用了默认错误数据报告功能。错误数据报告功能是指在接收到错误或无效的数据包时,设备是否向主机报告这些信息。
- 使用场景:在需要了解蓝牙设备错误数据处理方式的应用场景中,可以使用此命令。通过读取默认错误数据报告状态,可以评估设备在接收到错误数据时的行为,并根据需要调整设置以优化设备的稳定性和安全性。
- Write Default Erroneous Data Reporting command
- 功能:该命令用于设置蓝牙设备是否启用默认错误数据报告功能。通过调整设置,可以控制设备在接收到错误或无效数据包时的行为。
- 使用场景:在需要调整蓝牙设备错误数据处理方式的应用场景中,可以使用此命令。例如,在需要提高设备稳定性的场景中,可以启用错误数据报告功能以便及时发现和处理错误数据;在需要减少设备通信负担的场景中,可以禁用该功能以减少不必要的通信开销。
四、设备状态维护与功能调整类(22 条)
4.1. 重置与刷新相关
- Reset command
- 功能:该命令用于将蓝牙设备重置到其初始状态。这通常意味着清除所有当前配置、连接状态和缓存的数据,使设备恢复到出厂设置或某个预设的初始状态。
- 使用场景:当蓝牙设备出现问题、需要清除所有配置以重新开始时,或者需要将设备恢复到初始状态以进行故障排除或重新配置时,可以使用此命令。例如,在设备无法正常连接或响应时,重置设备可能有助于解决问题。
- 【0x0003】HCI_Reset详解-CSDN博客
- Flush command
- 功能:该命令用于清除蓝牙设备中的未处理或待处理的传入和传出数据。这有助于确保设备不会因缓存的数据而导致通信延迟或错误。
- 使用场景:在需要清理设备缓存数据的场景中,可以使用此命令。例如,在设备长时间运行后,可能需要清除旧的或无效的数据包,以避免对设备性能产生负面影响。此外,在测试或调试过程中,清除缓存数据也有助于确保测试结果的准确性。
- Enhanced Flush command
- 功能:该命令是Flush命令的增强版本,提供了更精细的控制选项,允许用户指定要清除的数据类型(如ACL数据、SCO数据等)和清除范围(如特定连接的数据、所有连接的数据等)。
- 使用场景:在需要更精细地控制设备缓存数据清除的场景中,可以使用此命令。例如,在需要保留某些特定类型的数据而清除其他类型的数据时,或者在需要清除特定连接的数据而不影响其他连接时,可以使用此命令。
4.2. 设备模式相关
- Read Hold Mode Activity command
- 功能:该命令用于读取蓝牙设备当前是否处于保持模式(Hold Mode)以及保持模式下的活动状态。保持模式是一种低功耗模式,当设备没有数据传输时,可以进入该模式以节省电源。
- 使用场景:在需要了解设备当前是否处于保持模式以及保持模式下的活动状态的场景中,可以使用此命令。例如,在开发低功耗蓝牙应用时,了解设备的电源管理状态对于优化设备性能和延长电池寿命至关重要。
- Write Hold Mode Activity command
- 功能:该命令用于设置蓝牙设备是否进入保持模式以及保持模式下的活动参数。通过调整这些参数,可以控制设备在何时进入保持模式以及在该模式下保持多长时间。
- 使用场景:在需要调整设备电源管理策略以优化性能和电池寿命的场景中,可以使用此命令。例如,在需要确保设备在长时间空闲时能够自动进入低功耗模式的场景中,可以配置适当的保持模式参数。
- Read LE Host Support command
- 功能:该命令用于读取蓝牙设备是否支持低功耗蓝牙(LE)主机功能。低功耗蓝牙是一种旨在降低功耗并延长设备电池寿命的蓝牙技术。
- 使用场景:在需要了解设备是否支持低功耗蓝牙主机功能的场景中,可以使用此命令。例如,在开发低功耗蓝牙应用或设备时,了解设备是否支持低功耗蓝牙主机功能对于选择合适的硬件和软件平台至关重要。
- Write LE Host Support command
- 功能:该命令用于启用或禁用蓝牙设备的低功耗蓝牙(LE)主机功能。通过启用或禁用此功能,可以控制设备是否支持低功耗蓝牙通信。
- 使用场景:在需要启用或禁用设备低功耗蓝牙主机功能的场景中,可以使用此命令。例如,在需要确保设备在特定条件下能够使用低功耗蓝牙进行通信的场景中,可以配置适当的低功耗蓝牙主机支持参数。此外,在需要节省设备电源或降低设备功耗的场景中,也可以禁用低功耗蓝牙主机功能以减少不必要的通信开销。
4.3. 语音设置与自动刷新
- Read Voice Setting command
- 功能:读取设备的语音设置参数,这些参数可能包括语音编码方式、音量控制、回声消除等。
- 使用场景:在需要了解设备当前语音配置状态的场景中,如进行语音通话或音频播放时,可以使用此命令来检查设备的语音设置是否满足要求。
- Write Voice Setting command
- 功能:设置设备的语音参数,以调整语音通话或音频播放的质量。
- 使用场景:在需要根据具体应用场景调整设备语音参数时,如优化通话质量、降低背景噪音等,可以使用此命令进行配置。
- Read Automatic Flush Timeout command
- 功能:读取设备自动刷新超时时间,即设备在没有接收到新数据时,缓存数据保留的时间。
- 使用场景:在需要了解设备缓存管理策略的场景中,可以使用此命令来检查自动刷新超时时间,以确保数据不会因长时间未处理而丢失。
- Write Automatic Flush Timeout command
- 功能:设置设备自动刷新超时时间,以控制缓存数据的保留时间。
- 使用场景:在需要根据具体应用场景调整设备缓存管理策略时,如减少数据延迟、提高数据传输效率等,可以使用此命令进行配置。
4.4. MWS(媒体无线服务)配置
- Set MWS Channel Parameters command
- 功能:设置MWS使用的信道参数,包括信道频率、带宽等。
- 使用场景:在配置MWS设备时,需要根据具体的通信需求设置合适的信道参数,以确保数据传输的稳定性和可靠性。
- Set External Frame Configuration command
- 功能:设置MWS外部帧的配置参数,如帧长度、帧格式等。
- 使用场景:在需要根据具体应用场景调整MWS外部帧配置时,可以使用此命令进行配置,以满足数据传输的需求。
- Set MWS Signaling command
- 功能:设置MWS的信令参数,包括信令类型、信令格式等。
- 使用场景:在配置MWS设备时,需要根据具体的通信协议设置合适的信令参数,以确保设备之间的正确通信。
- Set MWS Transport Layer command
- 功能:设置MWS传输层的参数,如传输协议、传输速率等。
- 使用场景:在需要根据具体应用场景调整MWS传输层参数时,可以使用此命令进行配置,以优化数据传输的性能。
- Set MWS Scan Frequency Table command
- 功能:设置MWS扫描频率表,用于指定设备在扫描时使用的频率范围。
- 使用场景:在配置MWS设备时,需要根据具体的通信环境和需求设置合适的扫描频率表,以确保设备能够正确地扫描到可用的信道。
- Set MWS_PATTERN Configuration command
- 功能:设置MWS的模式配置参数,如模式类型、模式持续时间等。
- 使用场景:在需要根据具体应用场景调整MWS模式配置时,可以使用此命令进行配置,以满足设备在不同工作模式下的需求。
4.5. 地址与同步参数配置
- Set Reserved LT_ADDR command
- 功能:设置保留的LT_ADDR(本地终端地址),用于在MWS或其他通信协议中标识设备。
- 使用场景:在配置设备时,需要为每个设备分配一个唯一的LT_ADDR,以确保设备之间的正确识别和通信。
- Delete Reserved LT_ADDR command
- 功能:删除已设置的保留LT_ADDR。
- 使用场景:在设备不再需要使用某个LT_ADDR时,可以使用此命令将其删除,以释放资源。
- Read Synchronization Train Parameters command
- 功能:读取同步训练参数,这些参数可能包括同步信号的频率、持续时间等。
- 使用场景:在需要了解设备同步训练状态或进行同步性能评估时,可以使用此命令来检查同步训练参数。
- Write Synchronization Train Parameters command
- 功能:设置同步训练参数,以调整设备的同步性能。
- 使用场景:在需要根据具体应用场景调整设备同步性能时,如提高同步精度、减少同步误差等,可以使用此命令进行配置。
- Set Ecosystem Base Interval command
- 功能:设置生态系统基础间隔,即设备在生态系统中的周期性活动时间间隔。
- 使用场景:在配置设备时,需要根据生态系统的需求和设备的性能设置合适的基础间隔,以确保设备在生态系统中的正常运行和协同工作。
五、事件与通知处理类(4 条)
5.1. 事件掩码相关
- Set Event Mask command
- 功能:此命令用于设置设备的事件掩码,即指定哪些类型的事件会被设备捕获并上报。事件掩码通常是一个位掩码,每一位代表一种特定类型的事件。
- 使用场景:在设备初始化或配置阶段,根据应用需求,通过此命令设置设备的事件捕获策略。例如,如果设备只需要关注按键事件和电池电量变化事件,那么可以通过设置事件掩码来仅捕获这两种类型的事件,从而避免处理不必要的事件,提高设备效率。
- Set Event Mask Page 2 command
- 功能:此命令是事件掩码设置的扩展,用于设置更多类型的事件掩码。当设备支持的事件类型超过一个事件掩码所能表示的范围时,需要使用此命令来设置额外的事件掩码。
- 使用场景:在设备支持多种复杂事件类型的情况下,通过此命令可以进一步细化事件捕获策略,确保设备能够准确捕获并处理所有需要关注的事件。
5.2. 事件过滤相关
- Set Event Filter command
- 功能:此命令用于设置设备的事件过滤器,即指定在满足哪些条件时,设备才会上报特定类型的事件。事件过滤器可以基于事件的属性(如事件类型、事件参数等)进行过滤。
- 使用场景:在需要更精细地控制事件上报行为的场景中,通过此命令可以设置事件过滤器来减少不必要的事件上报。例如,可以设置过滤器来仅上报特定范围内的按键事件或特定条件下的传感器数据变化事件。
5.3. 通知相关
- Send Keypress Notification command
- 功能:此命令用于向设备发送按键通知,即模拟按键事件并通知设备进行处理。这通常用于远程控制或自动化测试等场景。
- 使用场景:在需要远程控制设备或模拟用户按键行为的场景中,通过此命令可以发送按键通知来触发设备的相应操作。例如,在智能家居系统中,可以通过发送按键通知来控制电视的开关或调整音量等。
这些命令共同构成了设备事件处理机制的重要组成部分,通过灵活配置事件掩码、事件过滤器和通知机制,可以实现设备的高效、准确的事件处理,从而满足各种应用场景的需求。
六、其他(14条)
6.1. PIN 类型相关
- Read PIN Type command
- 功能:读取设备的PIN类型设置。PIN类型通常用于确定PIN码的安全级别和用途,例如,用于配对、解锁或其他安全验证。
- 使用场景:在需要了解设备当前PIN类型设置的场景中,如进行安全配置审查或确保设备符合特定安全要求时,可以使用此命令。
- Write PIN Type command
- 功能:设置设备的PIN类型。通过更改PIN类型,可以调整设备的安全级别和PIN码的使用方式。
- 使用场景:在需要更改设备安全策略或更新PIN码使用方式的场景中,如设备初始化、安全升级或用户更换PIN码时,可以使用此命令。
6.2. 广播相关
- Read Num Broadcast Retransmissions command
- 功能:读取设备广播重传次数设置。广播重传次数决定了设备在广播消息时,如果未收到响应,会重新广播消息的次数。
- 使用场景:在需要了解设备广播消息重传策略的场景中,如优化设备连接性能、减少广播开销或评估设备在弱信号环境下的表现时,可以使用此命令。
- Write Num Broadcast Retransmissions command
- 功能:设置设备广播重传次数。通过调整重传次数,可以优化设备连接性能和资源利用率。
- 使用场景:在需要根据具体应用场景调整设备广播重传策略的场景中,如提高设备连接成功率、减少广播冲突或平衡设备功耗时,可以使用此命令。
- Set Connectionless Peripheral Broadcast Data command
- 功能:设置无连接外设广播数据。此命令允许设备在无连接模式下广播特定数据,以便其他设备可以接收并处理这些数据。
- 使用场景:在需要实现设备间无连接通信的场景中,如广播设备状态、发送广告信息或进行设备发现时,可以使用此命令。
6.3. 数据路径相关
- Host Buffer Size command
- 功能:设置主机缓冲区大小。缓冲区大小决定了主机可以存储的数据量,进而影响数据传输的效率和延迟。
- 使用场景:在需要根据具体应用场景调整数据传输性能和资源利用率的场景中,如优化数据传输速度、减少数据丢失或平衡设备功耗时,可以使用此命令。
- Host Number Of Completed Packets command
- 功能:读取主机已完成的数据包数量。此命令用于获取主机已经成功接收并处理的数据包数量,有助于评估数据传输性能和设备状态。
- 使用场景:在需要监控数据传输性能或进行故障排查的场景中,如评估设备数据传输能力、检测数据丢失或分析设备运行状态时,可以使用此命令。
- Configure Data Path command
- 功能:配置数据路径。此命令允许设备管理员根据具体应用场景设置数据传输路径和参数,以实现数据传输的优化和定制。
- 使用场景:在需要根据具体应用场景调整数据传输路径和参数的场景中,如优化数据传输效率、实现数据分流或支持特定通信协议时,可以使用此命令。
6.4. IAC(Inquiry Access Code)相关
- Read Current IAC LAP command
- 功能:读取当前设置的IAC的LAP(Lower Address Part,低地址部分)。
- 使用场景:在需要查询或验证当前IAC设置的LAP值时使用,通常用于调试或特定连接场景。
- Write Current IAC LAP command
- 功能:设置当前IAC的LAP值。
- 使用场景:在需要更改IAC的LAP值时使用,以满足特定的连接需求或配置要求。
-
Read Number Of Supported IAC command
-
功能:读取设备支持的IAC(Inquiry Access Code,查询访问码)数量。
-
使用场景:在蓝牙设备初始化或配置阶段,用于确定设备支持多少个IAC,以便进行后续的查询和连接操作。
-
6.5. AFH(Adaptive Frequency Hopping)相关
- Read AFH Channel Assessment Mode command
- 功能:读取自适应跳频(Adaptive Frequency Hopping, AFH)的信道评估模式。
- 使用场景:在需要了解设备当前使用的AFH信道评估策略时使用,以优化连接质量和抗干扰能力。
- Set AFH Host Channel Classification command
- 功能:设置AFH主机信道分类。
- 使用场景:在需要优化蓝牙连接质量时,通过分类信道来避免干扰和提高通信稳定性。
- Write AFH Channel Assessment Mode command
- 功能:写入AFH信道评估模式。
- 使用场景:在需要更改AFH信道评估策略时使用,以适应不同的通信环境和需求。
Controller & Baseband commands为蓝牙技术的实现提供了重要的控制和访问手段。通过合理使用这些命令,可以实现对蓝牙设备的全面控制和管理,从而满足各种应用场景的需求。