【0x0036/0x007F】HCI_LE_Set_Extended_Advertising_Parameters命令全面解析

目录

一、命令概述

二、命令格式

2.1. 一般格式

2.2. 示例参数结构

三、命令参数详细说明

3.1. 广播句柄 (Advertising_Handle)

3.1.1. 广播句柄的作用

3.1.2. 使用场景

3.1.3. 注意事项

3.2. 广播事件属性 (Advertising_Event_Properties)

3.2.1. 广播事件类型

3.2.2. 传统广播PDU类型与参数值

3.2.3. 扩展广播PDU类型的限制

3.2.4. 广播事件属性

3.2.5. 错误处理

3.2.6. 实际应用中的注意事项

3.3. 广播间隔 (Primary_Advertising_Interval_Min 和 Primary_Advertising_Interval_Max)

3.3.1. 广播间隔定义

3.3.2. 参数要求

3.3.3. 特例处理

3.3.4. 错误处理

3.3.5. 实际应用中的注意事项

3.4. 广播通道映射 (Primary_Advertising_Channel_Map)

3.4.1. 定义与作用

3.4.2. 要求与配置

3.4.3. 实际应用中的注意事项

3.5. 地址类型 (Own_Address_Type、Peer_Address_Type)

3.5.1. Own_Address_Type(自身地址类型)

3.5.2. Peer_Address_Type(对端地址类型)

3.5.3. 地址类型的使用场景

3.5.4. 注意事项

3.6. 对端地址(Peer_Address) 

3.6.1. 定义与功能

3.6.2. 定向广播与Peer_Address

3.6.3. Advertising_Filter_Policy参数的忽略

3.6.4. 地址类型的选择

3.6.5. 注意事项

3.7. 广播过滤策略(Advertising_Filter_Policy)

3.7.1. 定义与功能

3.7.2. 过滤策略的类型

3.7.3. 地址类型的考虑

3.7.4. 配置与应用

3.7.5. 注意事项

3.8. 广播发射功率 (Advertising_TX_Power)

3.8.1. 定义与功能

3.8.2. 功率电平的选择

3.8.3. 控制器与主机的关系

3.8.4. 注意事项

3.9. 物理层 (Primary_Advertising_PHY、Secondary_Advertising_PHY)

3.9.1. 主要广播物理信道(Primary_Advertising_PHY)

3.9.2. 次要广播物理信道(Secondary_Advertising_PHY)

3.9.3. 特殊考虑

3.10. 可跳过的最大广播事件数(Secondary_Advertising_Max_Skip)

3.10.1. 定义与功能

3.10.2. 工作原理

3.10.3. 注意事项

3.11. 广播集标识符 (Advertising_SID)

3.11.1. 定义与功能

3.11.2. 工作原理

3.11.2. 使用场景与注意事项

3.12. Scan_Request_Notification_Enable

3.12.1. 定义与功能

3.12.2. 应用场景

3.12.3. 配置与注意事项

3.13. 错误代码

3.13.1. Memory Capacity Exceeded(0x07)

3.13.2. Packet Too Long(0x45)

3.13.3. Unsupported Feature or Parameter Value(0x11)

3.13.4. Command Disallowed(0x0C)

四、返回参数详解

4.1. Status

4.2. Selected_TxPower (在某些情况下)

4.3. 使用注意事项

五、命令执行流程

5.1. 命令准备

5.2. 发送命令

5.3. 控制器处理

5.4. 启用扩展广播

5.5. 监控与调试

六、使用注意事项

6.1. 禁用现有广播活动

6.2. 参数支持和默认值

6.3. 电源效率、广播范围和兼容性

6.4. 其他注意事项

七、缺失参数的处理方式

7.1. 必须使用的values

7.2. 命令参数(Command parameters)


HCI_LE_Set_Extended_Advertising_Parameters 命令是蓝牙主机用于设置蓝牙低功耗 (BLE) 广播参数的关键命令。本篇对该命令及其参数的详细解析。

一、命令概述

HCI_LE_Set_Extended_Advertising_Parameters 命令是BLE核心规范中定义的一个主机控制器接口(HCI)命令,用于配置蓝牙设备的扩展广播参数。这些参数决定了设备如何广播其存在性和其他相关信息,从而允许其他设备发现它并与其建立连接。

来源:BLUETOOTH CORE SPECIFICATION Version 5.4 | Vol 4, Part E page 2446  

  • 功能:设置BLE扩展广播参数。
  • 适用场景:BLE设备在进行扩展广播时,需要配置相关参数以确保广播的有效性和可靠性。
  • 命令操作码 (OCF)
    • 版本1 (Bluetooth Core Specification 5.0 及更早版本): 操作码为 0x0036。这个版本不支持某些在后续版本中引入的扩展参数,如物理层选项。
    • 版本2 (Bluetooth Core Specification 5.1 及更高版本): 操作码为 0x007F。这个版本增加了对物理层选项(如LE 1M PHY、LE 2M PHY和LE Coded PHY)的支持,以及其他可能的增强功能。
  • 命令参数: 涵盖了广播集的各种配置参数,如广播句柄、事件属性、广播间隔、通道映射、地址类型等。
  • 返回参数: 通常包括状态码和(在某些情况下)选定的发射功率。

二、命令格式

2.1. 一般格式

HCI_LE_Set_Extended_Advertising_Parameters命令通常包含以下几个关键部分:

  • OpCode:操作码,用于标识该命令。该命令的操作码通常由蓝牙核心规范定义。
  • 参数长度:表示后续参数的总长度(以字节为单位)。
  • 广播句柄:一个唯一的标识符,用于区分设备上的不同广播集。
  • 广播参数:包括广播类型、广播事件属性、主广播物理层选项、次广播物理层选项等多个参数。

2.2. 示例参数结构

Opcode: 0x0026 (HCI_LE_Set_Extended_Advertising_Parameters)  
Parameter Length: Variable (通常为15字节,但可能因实现而异)  
Parameters:  
    - Advertising_Handle (2 octets): 广播的句柄,用于标识广播集。通常,第一个广播集的句柄为0x0000。  
    - Advertising_Properties (1 octet): 广播属性,定义广播的类型和行为。  
        - Bit 0: 0 = Legacy Advertising, 1 = Extended Advertising  
        - Bit 1: 0 = Connectable Advertising, 1 = Non-Connectable Advertising  
        - Bit 2: 0 = Scannable Advertising, 1 = Non-Scannable Advertising  
        - Bit 3: Directed Advertising (if set, bits 4-6 specify type)  
        - Bits 4-6: Directed Advertising Type (only valid if Bit 3 is set)  
    - Min_Advertising_Interval (2 octets): 广播间隔的最小值,单位为0.625毫秒。  
    - Max_Advertising_Interval (2 octets): 广播间隔的最大值,单位为0.625毫秒。  
    - Advertising_Type (1 octet): 广播类型,决定了广播的发送方式和持续时间。  
    - Own_Address_Type (1 octet): 设备自己的地址类型。  
    - Peer_Address_Type (1 octet): 目标设备的地址类型(如果广播类型需要)。  
    - Peer_Address (6 octets): 目标设备的地址(如果广播类型需要)。  
    - Advertising_Channel_Map (1 octet): 广播通道映射,指示在哪些通道上发送广播。  
    - Advertising_Filter_Policy (1 octet): 广播过滤策略,决定哪些扫描请求和连接请求被接受。

三、命令参数详细说明

3.1. 广播句柄 (Advertising_Handle)

广播句柄在BLE技术中是一个非常重要的概念,特别是在管理多个广播集时。BLE设备可以配置不同的广播集,每个广播集包含一组特定的广播参数和数据,用于向周围的设备广播其存在和可用性。广播句柄就是用来唯一标识这些广播集的。

3.1.1. 广播句柄的作用

  • 唯一标识:每个广播集都有一个唯一的广播句柄,这使得BLE设备可以同时管理多个广播集而不会发生混淆。

  • 参数配置:通过广播句柄,BLE设备可以针对特定的广播集配置其广播参数,如广播间隔、广播类型(可连接、不可连接、扫描响应等)、广播数据的有效载荷等。

  • 资源管理:在BLE设备的资源管理中,广播句柄帮助系统有效地分配和管理内存、电源等资源,确保每个广播集都能按照预定的方式运行。

  • 应用层交互:在应用层,广播句柄可以用于区分来自不同广播集的事件和数据,从而允许应用程序根据需要进行响应或处理。

3.1.2. 使用场景

  • 多角色设备:某些BLE设备可能同时充当多个角色(如心率监测器和温度计),每个角色需要广播不同的数据。通过使用不同的广播集和相应的广播句柄,这些设备可以同时广播多个服务的数据。

  • 广播轮播:在某些情况下,BLE设备可能需要在不同的时间段内广播不同的广播信息(如设备状态更新等)。通过配置多个广播集并使用广播句柄进行切换,设备可以灵活地更新其广播内容。

  • 兼容性:不同的BLE设备或应用程序可能需要不同的广播参数或数据格式。通过配置多个广播集,BLE设备可以确保与各种设备和应用程序的兼容性。

3.1.3. 注意事项

  • 资源限制:BLE设备的资源(如内存和电源)是有限的。因此,在配置多个广播集时,需要仔细考虑资源的使用情况,以避免资源耗尽或性能下降。

  • 广播冲突:如果多个广播集同时广播,可能会产生冲突或干扰。因此,需要合理设置广播参数(如广播间隔和频道选择),以减少冲突的可能性。

  • 广播策略:在设计广播策略时,需要综合考虑设备的功耗、广播的可靠性和覆盖范围等因素。通过优化广播参数和广播集的配置,可以实现更好的性能和用户体验。

3.2. 广播事件属性 (Advertising_Event_Properties)

广播事件属性用于描述BLE设备正在配置的广播事件的类型及其基本特性。这些属性决定了广播的可见性、连接性以及其他关键参数。

3.2.1. 广播事件类型

BLE广播事件类型通常基于广播PDU(协议数据单元)的类型来定义。PDU类型可以是传统的,也可以是扩展的。传统广播PDU类型在BLE规范中有明确的定义,而扩展广播PDU类型则提供了更多的灵活性和功能。

3.2.2. 传统广播PDU类型与参数值

当使用传统广播PDU类型时,广播事件属性的参数值必须严格遵循BLE规范中表7.2的规定。

来源:BLUETOOTH CORE SPECIFICATION Version 5.4 | Vol 4, Part E page 2447  

表7.2详细列出了各种可能的广播事件类型及其对应的参数值。这些参数值通常是一组二进制位,用于表示广播的不同特性,如是否可连接、是否可扫描等。

3.2.3. 扩展广播PDU类型的限制

当使用扩展广播PDU类型时(即PDU的第4位设置为0),提供了更多的广播类型和选项,如定向广播、高占空比广播等。同时广播事件属性受到以下限制:

  • 广播不能同时是可连接和可扫描的:这意味着在扩展广播模式下,BLE设备不能同时广播其可连接性和可扫描性。设备必须在这两种特性之间做出选择。

  • 不应使用高占空比定向可连接广播(≤3.75ms广播间隔):在扩展广播模式下,如果PDU的第3位设置为0,则设备不能使用高占空比的定向可连接广播。这是因为高占空比的广播可能会增加设备的功耗,并可能干扰其他设备的正常通信。

3.2.4. 广播事件属性

广播事件属性包括广播的可见性、连接性、广播数据的长度和格式等。这些属性决定了BLE设备如何广播其存在和可用性,以及周围设备如何与之交互。

1. 可见性(Scannability):可见性决定了BLE设备是否可以被周围的扫描设备发现。

  • 配置
    • 可扫描:设备可以被周围的扫描设备发现,并读取其广播数据。
    • 不可扫描:设备不会被扫描设备发现,但可能仍然可以发起连接请求(取决于连接性设置)。

2. 连接性(Connectability):连接性决定了BLE设备是否可以被周围的设备发起连接请求。

  • 配置
    • 可连接:设备可以接受来自周围设备的连接请求,并建立BLE连接。
    • 不可连接:设备不会响应来自周围设备的连接请求,仅用于广播数据。

需要注意的是,某些广播类型可能同时支持扫描和连接,而某些则可能仅支持其中之一。

3. 广播数据(Advertising Data):广播数据包含了BLE设备希望广播给周围设备的信息,如设备名称、服务UUID等。

  • 长度和格式
    • 长度:广播数据的长度受到PDU(协议数据单元)大小的限制。传统广播PDU的数据长度较短,而扩展广播PDU可以支持更长的数据。
    • 格式:广播数据的格式由BLE规范定义,包括广播标志、类型长度值(TLV)对等。不同的广播数据类型用于表示不同的信息,如设备名称、制造商特定数据等。

3.2.5. 错误处理

如果广播事件属性的参数值不符合BLE规范的要求,或者控制器不支持指定的广播事件类型,控制器将返回错误代码“Invalid HCI Command Parameters”(0x12)。这表示提供的参数无效或不受支持。

3.2.6. 实际应用中的注意事项

  • 兼容性:在配置广播事件属性时,需要确保它们与BLE规范和周围设备的兼容性。不同的BLE设备和应用程序可能需要不同的广播参数和数据格式。

  • 资源限制:BLE设备的资源(如内存和电源)是有限的。在配置广播事件属性时,需要仔细考虑资源的使用情况,以避免资源耗尽或性能下降。

  • 广播策略:在设计广播策略时,需要综合考虑设备的功耗、广播的可靠性和覆盖范围等因素。通过优化广播事件属性和广播数据的配置,可以实现更好的性能和用户体验。

广播事件属性在BLE通信中至关重要。它们决定了BLE设备的广播行为,并影响着周围设备如何与之交互。因此,在配置广播事件属性时,需要仔细考虑各种因素,以确保广播的可靠性和有效性。

3.3. 广播间隔 (Primary_Advertising_Interval_Min 和 Primary_Advertising_Interval_Max)

广播间隔是BLE设备广播其存在和可用性时的重要参数。这些参数定义了设备广播的频率,即两次连续广播之间的时间间隔。

3.3.1. 广播间隔定义

  • Primary_Advertising_Interval_Min:广播间隔的最小值,表示BLE设备广播的最小频率。较小的值意味着设备更频繁地广播,从而增加了被周围设备发现的机会。
  • Primary_Advertising_Interval_Max:广播间隔的最大值,表示BLE设备广播的最大频率。较大的值意味着设备广播的频率较低,可能减少了被发现的机会,但有助于节省电源。

3.3.2. 参数要求

  • 范围要求:Primary_Advertising_Interval_Min 必须小于或等于 Primary_Advertising_Interval_Max。这是为了确保广播间隔有一个明确的范围,而不是一个固定的值或无效的范围。
  • 不等性要求:为了避免控制器在最小和最大间隔之间做出不必要的选择(即总是选择相同的间隔),这两个参数不应相等。通过提供一个范围,控制器可以根据设备的当前活动、电源管理策略或其他因素选择最佳的广播间隔。

3.3.3. 特例处理

  • 对于高占空比的可连接定向广播事件类型(ADV_DIRECT_IND),Primary_Advertising_Interval_Min 和 Primary_Advertising_Interval_Max 这两个参数不被使用,应被忽略。这是因为高占空比的可连接定向广播通常用于与特定设备进行快速连接,其广播间隔更加灵活或特定于实现。

3.3.4. 错误处理

  • 如果主机提供的广播间隔范围与控制器支持的广播间隔范围不重叠,控制器应返回错误代码“UnsupportedFeatureorParameterValue(不支持的特性或参数值)”(0x11)。这表示主机请求的广播间隔范围超出了控制器的能力或规范定义的限制。

3.3.5. 实际应用中的注意事项

  • 兼容性:在配置广播间隔时,需要确保它们与BLE规范和周围设备的兼容性。不同的BLE设备和控制器可能支持不同的广播间隔范围。
  • 功耗考虑:较长的广播间隔有助于节省电源,但可能减少了设备被发现的机会。因此,在设计广播策略时,需要权衡功耗和被发现的机会之间的平衡。
  • 广播策略:根据设备的应用场景和用户需求,可以设计不同的广播策略。例如,对于需要频繁交互的设备,可以选择较短的广播间隔;而对于只需要偶尔连接的设备,可以选择较长的广播间隔以节省电源。

Primary_Advertising_Interval_Min 和 Primary_Advertising_Interval_Max 是BLE设备广播时的重要参数,它们定义了设备广播的频率和范围。在配置这些参数时,需要仔细考虑各种因素,以确保广播的可靠性和有效性。

3.4. 广播通道映射 (Primary_Advertising_Channel_Map)

3.4.1. 定义与作用

Primary_Advertising_Channel_Map是一个位字段,它指示了在传输广播包时应使用的广播通道索引。BLE广播是在特定的频率通道上进行的,这些通道被称为广播通道。通过设置Primary_Advertising_Channel_Map参数,可以指定设备在哪些通道上广播其信息。

3.4.2. 要求与配置

  • 至少设置一个通道位:在Primary_Advertising_Channel_Map参数中,至少应设置一个通道位。这意味着设备至少应在一个广播通道上进行广播。BLE规范通常定义了三个主要的广播通道(37、38、39),但在BLE 5.0及更高版本中,还引入了额外的次要广播通道。因此,在设置Primary_Advertising_Channel_Map时,应确保至少选择了一个有效的广播通道。
  • 位字段配置:Primary_Advertising_Channel_Map是一个位字段,每个位代表一个广播通道。如果某个位被设置为1,则表示设备应在该通道上广播。例如,如果位字段为0011,则表示设备应在通道37和38上进行广播(假设最低位代表通道37,次低位代表通道38,以此类推)。
管理后台HTML页面是Web开发中一种常见的实践,主要用于构建企业或组织内部的管理界面,具备数据监控、用户管理、内容编辑等功能。本文将探讨一套美观易用的二级菜单目录设计,帮助开发者创建高效且直观的后台管理系统。 HTML5:作为超文本标记语言的最新版本,HTML5增强了网页的互动性和可访问性,提供了更多语义元素,如<header>、<nav>、<section>、<article>等,有助于清晰地定义网页结构。在管理后台中,HTML5可用于构建页面布局,划分功能区域,并集成多媒体内容,如图像、音频和视频。 界面设计:良好的管理后台界面应具备清晰的导航、一致的布局和易于理解的图标。二级菜单目录设计能够有效组织信息,主菜单涵盖大类功能,次级菜单则提供更具体的操作选项,通过展开和折叠实现层次感,降低用户认知负担。 CSS:CSS是用于控制网页外观和布局的语言,可对HTML元素进行样式设置,包括颜色、字体、布局等。在管理后台中,CSS能够实现响应式设计,使页面在不同设备上具有良好的显示效果。借助CSS预处理器(如Sass或Less),可以编写更高效、模块化的样式代码,便于维护。 文件结构: guanli.html:可能是管理页面的主入口,包含后台的主要功能和布局。 xitong.html:可能是系统设置或配置页面,用于管理员调整系统参数。 denglu.html:登录页面,通常包含用户名和密码输入框、登录按钮,以及注册或忘记密码的链接。 image文件夹:存放页面使用的图片资源,如图标、背景图等。 css文件夹:包含后台系统的样式文件,如全局样式表style.css或按模块划分的样式文件。 响应式设计:在移动设备普及的背景下,管理后台需要支持多种屏幕尺寸。通过媒体查询(Media Queries)和流式布局(Fluid Grids),可以确保后台在桌面、平板和手机上都能良好展示。
双闭环直流电机调速系统是一种高效且应用广泛的直流调速技术。通过设置转速环和电流环两个闭环,系统能够对电机的转速和电流进行精准控制,从而提升动态响应能力和稳定性,广泛应用于工业自动化领域。 主电路设计:主电路采用三相全控桥整流电路,将交流电转换为可调节的直流电,为电机供电。晶闸管作为核心元件,通过调节控制角α实现输出电压的调节。 元部件设计:包括整流变压器、晶闸管、电抗器等元件的设计与参数计算,这些元件的性能直接影响系统的稳定性和效率。 保护电路:设计过载保护、短路保护等保护电路,确保系统安全运行。 驱动电路:设计触发电路和脉冲变压器,触发电路用于触发晶闸管导通,脉冲变压器用于传递触发信号。 控制器设计:系统核心为转速调节器(ASR)和电流调节器(ACR),分别对转速和电流进行调控。检测电路用于采集实际转速和电流值并反馈给调节器。 仿真分析:利用MATLAB/SIMULINK等工具对系统进行仿真分析,验证其稳定性和性能指标是否达标。 方案确定与框图绘制:明确系统构成及各模块连接方式。 主电路设计:选择整流电路形式,设计整流变压器、晶闸管等元部件并计算参数。 驱动电路设计:设计触发电路和脉冲变压器,确保晶闸管准确触发。 控制器设计: 转速调节器(ASR):根据转速指令调整实际转速。 电流调节器(ACR):根据ASR输出指令调整电流,实现快速响应。 参数计算:计算给定电压、调节器、检测电路、触发电路和稳压电路的参数。 仿真分析:通过软件模拟系统运行状态,评估性能。 电气原理图绘制:完成调速控制电路的电气原理图绘制。 双闭环控制策略:转速环在外,电流环在内,形成嵌套结构,提升动态响应能力。 晶闸管控制角调节:通过改变控制角α调节输出电压,实现转速平滑调节。 仿真分析:借助专业软件验证设计的合理性和有效性。 双闭环直流电机调速系统设计涉及主电路、驱动电路和控制器设计等多个环节,通过仿
电池管理系统(Battery Management System,简称BMS)是电动汽车及储能系统的关键部件,主要负责监控、保护、控制和优化电池组性能。本文重点探讨基于Simulink构建的BMS模型。Simulink是Matlab环境下一款强大的数学建模工具,广泛应用于工程仿真与控制设计,其可视化平台让复杂系统如电池BMS的设计和测试更加直观。 电池均衡是BMS的核心功能之一,旨在确保电池组中各单体电池电压和容量一致,避免因个别电池过充或过放影响系统性能。在Simulink模型中,电池均衡可通过电流注入或能量转移实现,涉及电流控制电路和算法的建模,例如电阻分压、电感平衡或开关电容等方法。 SOC计算(State of Charge,即电池荷电状态)也是BMS的重要功能,它是评估电池剩余能量的关键指标。在BMS模型中,SOC估算通常基于电池的电压、电流、温度数据以及特定电池模型,如阶跃响应模型、等效电路模型或基于物理的模型。这些模型能够精准跟踪电池状态,为充电策略和故障检测提供依据。 在相关文件中,“license.txt”可能包含Simulink模型的使用许可信息,这对于模型的商业应用和合规性至关重要。“batteryBalancing”文件可能是电池均衡模块的具体实现,详细描述了Simulink构建的均衡算法,包括均衡触发条件、控制逻辑及电路模型等。 一个完整的BMS Simulink模型还应涵盖电池健康状态(SOH,State of Health)估计、热管理、安全保护(如过压、欠压、过流保护等)以及通信接口(用于与车辆其他系统交互)等功能模块。这些模块需要精心设计和参数校准,以确保BMS在各种工况下保持稳定性和准确性。 在开发BMS模型时,用户可以借助Matlab的Simulink库,如控制库、信号处理库和电力电子库,并结合电池特性的实验数据进行模型搭建和仿真验证。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

byte轻骑兵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值