当前位置: 首页 > news >正文

永久免费网站虚拟主机wordpress用户头像插件

永久免费网站虚拟主机,wordpress用户头像插件,友情链接检测的特点,官网网站域名与建设本文内容比较杂散#xff0c;只是做记录使用#xff0c;后续会整理的有条理些 link layer 基本介绍 **Link Layer Control#xff08;链路层控制#xff09;**是蓝牙低功耗#xff08;BLE#xff09;协议栈的核心部分#xff0c;负责实现设备间可靠、安全、低功耗的数… 本文内容比较杂散只是做记录使用后续会整理的有条理些 link layer 基本介绍 **Link Layer Control链路层控制**是蓝牙低功耗BLE协议栈的核心部分负责实现设备间可靠、安全、低功耗的数据传输和控制。它是蓝牙协议栈的基础在 BLE 的操作中承担了许多关键功能。 以下是 BLE Link Layer Control 的整体内容详细解析 1. 概述 链路层Link Layer, LL位于 BLE 协议栈的控制部分与物理层PHY直接交互是数据链路的核心组件。其主要职责包括 连接建立和管理数据传输安全控制状态管理 2. 链路层状态 链路层支持以下几种状态每种状态对应不同的操作模式 Standby待机状态设备处于非活动状态不执行任何操作。Advertising广播状态设备以广播包形式发送数据允许其他设备扫描或连接。Scanning扫描状态设备接收广播包用于发现其他设备。Initiating发起状态设备尝试与广播设备建立连接。Connected连接状态设备成功建立连接进入数据传输模式。 3. 核心功能 链路层控制的核心功能分为以下几个模块 (1) 设备发现 广播Advertising 广播设备发送广播包表明其可用性。支持多种广播类型如可连接、不可连接、定向广播等。 扫描Scanning 扫描设备接收广播包提取设备信息如地址、名称等。 (2) 连接管理 连接建立 发起设备通过 CONNECT_REQ 数据包与广播设备建立连接。 连接维护 定期通过 连接事件Connection Events 交换数据包。支持主设备和从设备间的双向通信。 连接参数更新 包括连接间隔、超时时间、主从时延等参数的调整。通过 Connection Update Procedure 完成。 (3) 信道管理 BLE 使用 40 个信道 3 个广播信道37、38、39。37 个数据信道0-36。 信道选择算法 BLE 通过信道跳频避免干扰提高通信可靠性。 信道映射更新 使用 Channel Map Update Procedure 动态调整信道。 (4) 数据传输 数据包结构 包括 Preamble前导符、Access Address访问地址、Header头部、Payload负载等。数据包通过 AES-CCM 加密保障安全性。 分片与重组 长数据分片后通过多个 PDUProtocol Data Unit传输。 (5) 安全管理 加密过程 使用 LTKLong Term Key进行会话加密。加密过程包括密钥分发、验证等。 身份验证 通过配对Pairing或绑定Bonding确保设备间的可信连接。 (6) 低功耗特性 支持 低功耗模式 通过调整连接间隔、监听窗口等参数降低功耗。 主从切换 主设备可以动态调整连接频率以节省资源。 4. 链路层控制过程 链路层定义了多种控制过程Control Procedures以管理连接和数据传输 控制过程描述Connection Update调整连接参数间隔、超时等。Channel Map Update更新信道映射以避免干扰。Encryption Procedure启用或关闭加密以保障数据安全。Feature Exchange主从设备交换支持的功能特性。Version Exchange主从设备交换蓝牙版本信息。PHY Update更新物理层速率如 1 Mbps 到 2 Mbps 切换。Terminate Procedure主动终止连接释放资源。 5. 链路层 PDUProtocol Data Unit 链路层数据单元PDU是链路层通信的基本单位分为以下两种类型 控制 PDU用于执行链路层控制过程。数据 PDU用于传输应用层数据。 每个 PDU 包括以下字段 Header标识 PDU 类型和长度。Payload实际的数据或控制信息。MIC可选消息完整性检查用于验证数据的完整性。 6. 链路层与其他层的交互 与物理层PHY 直接管理射频信道的切换和数据包发送接收。 与主机层Host Layer 提供基础数据传输服务如 ACL 数据通道。通过 HCIHost Controller Interface与主机层通信。 7. 链路层的特点 高效支持数据分片、信道跳频和错误恢复。安全内置加密和验证机制保障通信安全。灵活多种状态和过程支持复杂的 BLE 应用场景。低功耗通过优化连接参数和数据传输延长电池寿命。 链路层是 BLE 协议栈的核心模块其功能覆盖了连接、数据传输、安全管理等关键领域。如果需要更深入的某一部分解析如广播过程或加密机制请告诉我 Connection Update procedure 这张图展示了 BLE蓝牙低功耗设备在连接参数更新时的连接事件时序图Connection Event Timing。它描述了主设备Central和从设备Peripheral在旧连接参数和新连接参数切换时的时间关系。 图中关键部分解释 Last Event Transmitted with Old Connection Parameters 描述: 这是主设备C和从设备P之间使用旧的连接参数connInterval_old完成的最后一次数据传输。 特点: 此时仍按照旧的连接间隔 connInterval_old 进行通信。 Transmit Window (传输窗口) 位置在 Instant 时间点后出现。定义: Transmit Window 是连接参数更新的关键它标志着新连接参数connInterval_new生效的开始。主设备将在 transmitWindowOffset 和 transmitWindowOffset transmitWindowSize 之间开始第一个连接事件。 限制条件: 主设备C必须在此窗口内发送数据包从设备P需监听该窗口以便完成参数更新后的第一次连接。 First Event Transmitted with New Connection Parameters 描述: 在 Transmit Window 中主设备和从设备首次使用新的连接参数进行通信。具体的连接间隔变为 connInterval_new后续事件也将按此间隔执行。 特点: 新的连接事件开始按照 connInterval_new 重新计算定时。 Second Event Transmitted with New Connection Parameters 描述: 在第一个使用新参数的连接事件后设备继续按照 connInterval_new 的时间间隔执行后续连接事件。 关键时间参数 connInterval_old: 旧连接参数下的连接事件间隔。 transmitWindowOffset: Instant 时间点后新参数生效的延迟时间。 transmitWindowSize: 定义新参数开始生效时主设备的传输窗口大小。 connInterval_new: 更新后的新连接事件间隔。 T_IFS: T_IFS 表示设备之间数据包的间隔Inter-Frame Space。 图的实际意义 这是 BLE 中 连接参数更新过程 的标准行为确保主从设备在切换参数时不会失去同步。使用 transmitWindowOffset 和 transmitWindowSize主设备可以在规定的窗口内完成新连接参数的切换而从设备只需监听这一窗口即可。应用场景: 调整连接间隔connInterval以优化功耗或响应速度。提高通信效率满足实时性或低功耗的需求。 总结 这张图展示了 BLE 连接参数更新中的定时关系 主从设备使用旧参数完成最后一次通信。主设备进入 Transmit Window开始按照新参数通信。新的连接事件间隔生效并持续使用新参数进行通信。 主机连接流程 这两张图展示了 BLE蓝牙低功耗连接建立过程 的两种不同场景使用 CONNECT_IND 和 AUX_CONNECT_REQ 建立连接。 上图Figure 4.45Central’s view of LL connection setup with CONNECT_IND 描述 Advertising Packet广播包 从 Peripheral外设发送广播包。Central中心设备监听广播频道接收这个包。 CONNECT_IND Central 在接收到广播包后通过广播频道发送一个 CONNECT_IND 数据包表示请求建立连接。 Transmit Window Peripheral 和 Central 在 Transmit Window 时间段内开始通信。TransmitWindowOffset 和 TransmitWindowSize 决定了数据传输的起始时间和窗口大小。 Connection Interval 数据传输进入周期性模式每隔 Connection Interval 时间开始一个连接事件。 数据传输 通信以 C-PCentral 发向 Peripheral和 P-CPeripheral 发向 Central为交替模式进行确保数据双向传输。 下图Figure 4.46Central’s view of LL connection setup with AUX_CONNECT_REQ 描述 AUX_ADV_IND辅助广播包 Peripheral 通过辅助广播频道发送 AUX_ADV_IND 包提供更多的广播数据。这是 BLE 的扩展广播Extended Advertising功能。 AUX_CONNECT_REQ Central 在接收到 AUX_ADV_IND 后通过辅助频道发送 AUX_CONNECT_REQ 包表示建立连接的请求。 AUX_CONNECT_RSP Peripheral 接收到 AUX_CONNECT_REQ 后通过辅助频道发送响应包 AUX_CONNECT_RSP确认连接建立。 Transmit Window 与 CONNECT_IND 一样连接建立后进入 Transmit Window 阶段按照 TransmitWindowOffset 和 TransmitWindowSize 的约定开始传输数据。 Connection Interval 数据传输也按照设定的 Connection Interval 周期进行。 两种方式的区别 通信信道 CONNECT_IND 使用的是 主广播信道。AUX_CONNECT_REQ 使用的是 辅助广播信道适用于扩展广播场景。 使用场景 CONNECT_IND 适合传统的广播连接。AUX_CONNECT_REQ 则是 BLE 5.0 引入的特性支持更多广播数据和更灵活的连接方式。 总结 这两张图分别展示了 BLE 在传统广播和扩展广播模式下如何从连接请求到数据传输建立的全过程。核心流程相似主要区别在于所使用的广播信道不同。 NESN和SN什么意思 在蓝牙低功耗BLE通信中NESNNext Expected Sequence Number和 SNSequence Number是链路层Link Layer用于实现数据包序列控制和可靠通信的重要机制。这两个字段帮助 BLE 设备管理数据包的接收、确认和重传。 1. NESNNext Expected Sequence Number 定义指接收端期望从发送端接收到的下一个数据包的序列号。作用 表明发送端已经接收到哪些数据包。用于确认当前数据包的可靠传输并指示发送端可以继续发送新的数据。 值的取值范围通常是一个 1-bit 字段值为 0 或 1按顺序切换。 0 表示期望接收序列号为 0 的数据包。1 表示期望接收序列号为 1 的数据包。 2. SNSequence Number 定义指发送端发送的数据包的当前序列号。作用 标识当前发送的数据包是否与前一个数据包不同。帮助接收端判断是否是新的数据包防止重复接收或丢包。 值的取值范围也是一个 1-bit 字段值为 0 或 1按顺序切换。) 0 表示当前发送的数据包序列号为 0。1 表示当前发送的数据包序列号为 1。 3. NESN 和 SN 的关系 数据包传输流程 发送端 将数据包的 SN 设置为当前序列号。 接收端 检查数据包中的 SN判断是否是期望的包与自己的 NESN 匹配。 如果 SN 与 NESN 相符说明数据包接收正确接收端更新 NESN切换到下一个值。如果 SN 与 NESN 不符说明包重复或错误接收端不会更新 NESN。 接收端 在返回的确认包ACK/NACK中设置自己的 NESN告知发送端当前的接收状态。 可靠性保障 NESN 和 SN 确保每个数据包在 BLE 链路上传输时都能被正确接收或重传。如果数据包丢失发送端会根据接收端返回的 NESN 重传丢失的数据。 4. 示例 假设 A 和 B 两个设备在通信 初始状态 A 的初始 SN 0B 的初始 NESN 0 数据包传输 A 发送一个数据包SN 0。B 收到数据包发现 SN NESN都是 0说明包正确。B 更新 NESN 1并返回 ACK。 继续发送 A 收到 ACK 后更新自己的 SN 1发送下一个数据包。B 收到新的数据包检查 SN 1匹配自己的 NESN继续传输。 错误处理 如果某个数据包丢失或重复NESN 和 SN 不匹配接收端不会更新 NESN发送端据此判断需要重传。 5. 总结 NESNNext Expected Sequence Number接收端告知发送端下一个期望的序列号用于确认是否成功接收。SNSequence Number发送端标识当前数据包的序列号用于确认数据包的唯一性和顺序。 这种简单的机制通过 1-bit 序列号实现了高效的包顺序管理和丢包重传非常适合 BLE 的低功耗和低复杂度设计目标。 连接参数更新instant的作用 在 BLE Bluetooth Low Energy中连接参数更新的 instant 是一个重要的机制确保在连接参数更新时主设备Central和从设备Peripheral能以同步的方式应用新的连接参数。 Instant 的作用 同步连接参数的生效时刻 BLE 的连接是基于时间片连接事件的每个事件都有唯一的事件计数Event Count。Instant 是一个特定的事件计数指明连接参数更新将在那个时刻开始生效。通过 Instant主设备和从设备可以在同一连接事件上同时切换到新参数避免切换过程中的不一致。 防止通信中断 如果主从设备在不同步的情况下切换参数可能导致连接失败。Instant 确保在指定时刻之前双方仍使用旧参数通信在指定时刻同时切换到新参数。 提供足够的准备时间 Instant 通常是当前事件计数加上一段安全的延迟例如 6 个连接事件。这段时间允许设备完成必要的准备工作例如调整硬件定时器或通信调度。 连接参数更新流程中的 Instant 主设备发送更新请求 主设备通过 L2CAP 的 Connection Parameter Update Request向从设备提议新的连接参数包括 新的连接间隔Interval新的从设备延迟Slave Latency新的超时时间TimeoutInstant表示参数更新的生效时刻 从设备响应更新请求 从设备根据自身能力接受或拒绝请求。如果接受从设备会记录 Instant并继续使用旧参数直到 Instant 时刻。 双方同步参数更新 在 Instant 指定的事件计数到达时主从设备同时切换到新的连接参数。 Instant 的具体计算 Instant 的值 Instant 是一个 16-bit 的计数值取自 BLE 链路层的事件计数Event Counter。它通常设定为当前事件计数加上一个固定的偏移量。例如 当前事件计数 100Instant 100 6 106即 6 个事件之后生效 偏移量的作用 给设备提供足够的时间来完成切换准备例如 重新配置定时器校准新的参数 关键点 双方必须遵守 Instant 无论是主设备还是从设备只有在 Instant 指定的时刻才会切换到新的参数。 瞬态点的检查 在连接参数更新逻辑中双方都会检查当前事件计数与 Instant 的差值gap。如果 gap 0 或发生溢出gap 32767说明 Instant 到达开始切换。 失败处理 如果主设备或从设备在 Instant 到达之前断开连接参数更新将无法完成。 总结 Instant 的核心作用是为 BLE 连接参数的更新提供一个同步的切换点。它通过事件计数保证主从设备在同一时刻应用新参数防止因参数不同步而导致的通信错误。这一机制对于 BLE 的低功耗设计至关重要因为它能在不频繁通信的情况下仍保持通信的可靠性和一致性。 LL_CONNECTION_UPDATE_IND 和 LL_CONNECTION_PARAM_REQ 是蓝牙低功耗BLE链路层中两种用于连接参数更新的链路层消息主要区别在于用途、触发条件和使用场景。 LL CONNECTION UPDATE IND和LL_CONNECTION_PARAM_REQ有什么区别 1. LL_CONNECTION_PARAM_REQ LL_CONNECTION_PARAM_REQ 是主机用来请求从机更新连接参数的链路层消息属于 Connection Parameter Request Procedure。 主要特点 消息发送方主机 该消息由主机发起目的是向从机请求更新连接参数例如连接间隔、超时时间和从机延迟等。 响应机制 从机会根据本地的支持情况响应可以 接受请求并继续协商更新参数。拒绝请求并通过 LL_REJECT_IND 返回拒绝原因。 适用场景 主机检测到当前连接参数不适合应用需求如延迟过高或功耗过高。主机需要优化连接性能。典型使用场景包括主设备需要更高效的数据传输或降低能耗。 协议支持 此消息仅在从机支持 Connection Parameter Request Procedure 的情况下使用。主机会通过 Feature Exchange Procedure 确认从机是否支持该过程。 2. LL_CONNECTION_UPDATE_IND LL_CONNECTION_UPDATE_IND 是链路层更新连接参数的通知消息属于 Connection Update Procedure。 主要特点 消息发送方主机或从机 该消息既可以由主机发送也可以由从机发送具体取决于设备角色。用于通知对方连接参数更新的结果。 触发机制 当主从设备协商好新的连接参数后LL_CONNECTION_UPDATE_IND 用于指示更新参数的生效时间和内容。包含字段如新的连接间隔、超时时间、从机延迟以及更新生效的时间点。 适用场景 协商更新连接参数后用于通知双方。应用场景包括完成 LL_CONNECTION_PARAM_REQ 流程后更新连接参数。 协议要求 无需确认特性支持任何 BLE 设备都能使用 Connection Update Procedure。 3. 二者的关键区别 特性LL_CONNECTION_PARAM_REQLL_CONNECTION_UPDATE_IND作用请求更新连接参数通知连接参数的最终更新消息发送方主机主机或从机触发条件需要协商新的连接参数新的连接参数已经协商好从机特性支持要求要求从机支持 Connection Parameter Request Procedure无需特性支持要求典型用途主机希望调整连接性能延迟、功耗等连接参数更新过程的最后一步响应消息从机会通过 LL_CONNECTION_UPDATE_IND 或 LL_REJECT_IND 响应无需回应作为通知消息发送协议依赖Connection Parameter Request ProcedureConnection Update Procedure 4. 二者的协作关系 LL_CONNECTION_PARAM_REQ 是用于主机发起参数更新请求的初始消息目标是与从机协商合适的参数。在完成协商后通过 LL_CONNECTION_UPDATE_IND 指定新参数的生效时间和内容。 5. 示例流程 以下是主机通过链路层更新连接参数的完整流程 Feature Exchange主机与从机确认是否支持 Connection Parameter Request Procedure。 主机发送请求主机通过 LL_CONNECTION_PARAM_REQ 请求从机更新参数。 从机处理请求 从机接受协商新的连接参数。从机拒绝通过 LL_REJECT_IND 通知主机。 参数更新通知 如果从机接受并协商完成则由主机发送 LL_CONNECTION_UPDATE_IND通知从机新的参数及生效时间。 6. 总结 LL_CONNECTION_PARAM_REQ 用于请求更新连接参数是参数协商流程的开始。LL_CONNECTION_UPDATE_IND 用于通知新参数的生效是参数协商流程的结束。 如果有其他问题或需要更深入的协议分析可以继续讨论 Channel Map Update procedure 在 BLE蓝牙低功耗通信中Channel Map Update Procedure 是一种更新连接通道映射的机制用于优化通信质量和减少干扰。这一机制在 BLE 链接中非常重要因为它确保了数据传输的可靠性和效率。 以下是对 Channel Map Update Procedure 的详细解析 1. 背景与目的 BLE 使用 2.4 GHz ISM 频段有 40 个射频信道 3 个信道用于广播advertising channels37、38、39。37 个信道用于数据通信data channels0 到 36。 由于干扰如 Wi-Fi 或其他蓝牙设备或硬件问题如某些频段受阻某些数据通道可能无法可靠地传输数据。因此Channel Map Update 允许主设备Central通知从设备Peripheral使用哪些信道进行通信以避免干扰。 2. 过程详解 Channel Map Update Procedure 是主从设备间的协商机制主要步骤如下 (1) 触发更新 主设备发起主设备Central监测数据传输质量如发现某些通道通信质量较差会决定更新通道映射表。触发时机 周围环境发生变化如新增干扰源。通信失败率升高。 (2) Channel Map Indication 主设备通过 Link Layer 数据包中的 Channel Map Indication 向从设备发送新的通道映射表。 内容 Channel Map37 位表示每个数据通道是否被启用1 启用0 禁用。Instant表示更新生效的时间点单位为连接事件。 实例 Channel Map: 1111111111111100111111111100000000000 Instant: 12345上述映射表示禁用了几个数据通道Instant 指定了更新将在连接事件计数达到 12345 时生效。 (3) 更新生效 双方设备在 Instant 指定的连接事件时刻同时切换到新的通道映射。如果从设备在更新中丢失或未收到指令会中断连接。 3. 优点 动态调整根据实时环境变化优化通信通道。减少干扰避开被占用或干扰严重的信道提高连接稳定性。节能避免重传数据延长设备电池寿命。 4. 注意事项 主设备决定通道更新从设备只能被动接受。必须使用至少两个通道通道映射中必须至少有两个通道被启用否则协议不允许更新。即时同步主从设备需要在 Instant 同步更新否则可能导致通信中断。 5. 典型场景 拥挤环境如办公楼中有多个蓝牙设备Channel Map Update 会关闭干扰通道。动态环境如移动中的 BLE 设备手环、耳机可能需要随时调整信道映射。 Encryption procedure 在蓝牙低功耗BLE中**Encryption Procedure加密过程**是用于确保数据传输安全的关键步骤。它在主设备Central和从设备Peripheral之间协商并建立一个加密会话从而保护通信内容不被窃听或篡改。 以下是对 BLE Encryption Procedure 的详细解析 1. 加密的必要性 BLE 的加密提供以下功能 数据保密性防止未授权的第三方窃听数据。数据完整性确保传输数据未被篡改。身份验证验证通信设备的身份。 加密过程依赖于设备配对时生成的共享密钥LTKLong Term Key。 2. 加密过程的参与者 加密过程涉及以下关键实体 LTKLong Term Key配对时生成的长时密钥用于数据加密和解密。EDIVEncrypted Diversifier 和 RAND用来标识和验证 LTK。STKShort Term Key在未分发 LTK 的情况下用于临时加密。IVInitialization Vector初始化向量用于加密过程中的随机化。 3. 加密过程详解 (1) 启动加密过程 Central 发送加密请求 在连接建立后Central 向 Peripheral 发送 LL_ENC_REQ 数据包。 包含 RAND随机数用于标识 LTK。EDIV加密多样化标识符匹配 LTK。SKDm 和 IVm主设备的会话密钥分量和初始化向量。 Peripheral 响应 Peripheral 接收到 LL_ENC_REQ 后发送 LL_ENC_RSP。包含 SKDs 和 IVs从设备的会话密钥分量和初始化向量。 (2) 生成会话密钥Session Key 主从设备共同生成会话密钥(sk) SK E(SKD, LTK)SKD SKDm || SKDs合并主从设备的会话密钥分量。E 是 AES-128 加密算法。LTK 是共享密钥用于生成 SK。 (3) 启用加密 双方生成会话密钥后使用共享的 IV 初始化加密引擎。加密引擎基于会话密钥对数据包进行加密和解密。Central 向 Peripheral 发送 LL_START_ENC_REQ 指令以开始加密。 Peripheral 响应 LL_START_ENC_RSP确认启用加密。 (4) 密钥验证 双方使用 RAND 和 EDIV 确保使用的 LTK 是一致的。如果验证失败则加密过程终止连接可能会断开。 (5) 通信加密 一旦加密启用 所有数据包都通过会话密钥和 AES-CCMCounter Mode with CBC-MAC算法进行加密。数据包包含 加密的数据负载。MICMessage Integrity Check字段用于验证数据完整性。 4. 加密模式 BLE 支持以下两种加密模式 Legacy Pairing 使用 STK 作为会话密钥适用于蓝牙 4.0。安全性较低。 LE Secure Connections 使用 LTK 作为会话密钥适用于蓝牙 4.2。基于 ECC椭圆曲线密码学安全性更高。 5. 常见问题 加密失败 LTK 不匹配。环境中存在干扰或数据包丢失。配对过程中未成功分发 LTK。 安全漏洞 Legacy Pairing 存在中间人攻击MITM风险。建议使用 LE Secure Connections。 Feature Exchange procedure Feature Exchange Procedure 是蓝牙低功耗BLE链路层中的一项控制过程用于在主设备Central和从设备Peripheral之间交换各自支持的功能特性。这一过程确保设备能够根据共同支持的功能进行通信避免使用对方不支持的功能而导致错误。 以下是 Feature Exchange Procedure 的详细解析 1. 目的与作用 目的 确定主从设备共同支持的功能特性。为后续的链路层操作如加密、信道更新、物理层切换奠定基础。 作用 避免使用对方设备不支持的功能。提高设备间的兼容性和互操作性。 2. 过程详解 (1) 触发时机 Feature Exchange Procedure 通常在 连接建立后 自动启动。也可以通过其他链路层事件如功能更新需求手动触发。 (2) 消息交互 Feature Exchange Procedure 基于链路层控制数据包进行消息交互包括以下步骤 Feature Request 主设备发送 LL_FEATURE_REQ 数据包。数据包中包含主设备支持的功能特性用位字段表示。 Feature Response 从设备接收到请求后发送 LL_FEATURE_RSP 数据包。数据包中包含从设备支持的功能特性。 功能协商 主设备根据双方的特性列表选择双方都支持的功能集。 (3) 数据包结构 每个 Feature Exchange 数据包的主要字段 Opcode操作码标识这是 LL_FEATURE_REQ 或 LL_FEATURE_RSP。Features一个 64 位字段用于表示设备支持的功能特性。 例如 Features 0x000000000000002F其中每个位对应一个功能 第 0 位LE Encryption第 1 位Connection Parameters Request Procedure第 2 位Extended Reject Indication第 3 位Slave-initiated Features Exchange第 4 位LE Ping第 5 位LE Data Packet Length Extension… 3. 常见支持功能 以下是 BLE 协议中一些常见的功能特性 功能特性描述LE Encryption支持加密功能保护数据安全。Connection Parameters Request Procedure支持连接参数更新过程。Extended Reject Indication支持扩展拒绝指示用于提供更详细的错误信息。Slave-initiated Features Exchange从设备可以主动发起 Feature Exchange Procedure。LE Ping支持 LE Ping 功能确保长连接状态下的链接有效性。LE Data Packet Length Extension支持数据包长度扩展增加传输效率。LE 2M PHY支持 2 Mbps 数据传输速率。LE Coded PHY支持编码物理层长距离通信。Periodic Advertising支持周期性广播用于同步多个设备。 设备可能会根据硬件和软件支持情况实现这些特性中的一部分。 4. 后续操作 Feature Exchange Procedure 完成后链路层可以根据双方支持的功能执行其他操作 如果双方都支持加密则可以启用 Encryption Procedure。如果支持数据包长度扩展则可以启动 Data Length Update Procedure。如果支持物理层切换则可以启动 PHY Update Procedure。 5. 注意事项 兼容性问题 如果两个设备功能支持不一致则只能使用共同支持的功能集。如果从设备不支持 Feature Exchange则主设备可能会降级功能。 错误处理 如果从设备无法处理 LL_FEATURE_REQ 数据包则可能会发送 LL_UNKNOWN_RSP 响应。 低功耗影响 Feature Exchange 的数据包占用少量连接事件不会显著增加功耗。 6. 应用场景 物联网设备确保设备之间的互操作性尤其是在具有不同硬件能力的设备之间。低功耗传感器协商支持的最低功能集以优化功耗和性能。蓝牙耳机或音频设备根据主设备的功能调整传输速率和模式如 LE Audio。 总结 Feature Exchange Procedure 是 BLE 链路层中的重要步骤用于功能协商确保设备之间的兼容性。它是 BLE 协议栈中实现动态适配和优化的重要机制之一。如果需要了解具体的实现方式或调试示例请告诉我 一些常见概念和名词 ble的T_IFS表示什么 在 BLEBluetooth Low Energy 通信中T_IFS 表示 Inter-Frame Space即帧间隔时间。 T_IFS的含义 T_IFS 是两个连续 BLE 数据包之间的间隔时间。根据 BLE 规范T_IFS 的标准值为 150 µs微秒。这个时间是固定的用于确保 BLE 链路上两个设备之间数据包交换的稳定性和一致性。 BLE 协议栈中的作用 发送方与接收方之间在 BLE 通信中设备在发送数据包后需要等待一个 T_IFS 时间后才能发送下一个数据包或进行回应。保持时间同步T_IFS 保证 BLE 通信双方时间间隔的准确性以避免冲突。协议要求BLE 协议严格规定了这个时间如果 T_IFS 时间违反比如超过或不足 150 µs通信可能会出错。 从你的截图中看到 T_IFS 146.875 µs比标准的 150 µs 短了约 1.125 µs。T_IFS Violation 显示了 “1.125 µs too short”这意味着时间间隔不符合 BLE 协议要求。 可能的影响 T_IFS 违规可能会导致 数据包无法被对端设备正确接收。通信链路出现问题甚至导致连接断开。T_IFS 的不规范如过短可能导致手机无法检测到广播包。这是因为 BLE 设备严格依赖标准协议进行通信。建议尽快修复 T_IFS 定时问题确保时间间隔符合 150 µs 标准从而保证广播的正常解析和连接的稳定性。 解决方法 检查发送端和接收端的时间同步机制。确保通信栈或硬件中 T_IFS 定时器的实现符合 BLE 协议的要求150 µs。 instant概念 在 BLEBluetooth Low Energy 通信中instant 是一个用于表示 特定时刻 的概念主要用于 链路层Link Layer 的控制命令中确保通信双方在约定的时刻同步执行特定操作。 Instant 点的定义 Instant 是链路层控制消息如连接参数更新、信道映射更新等中的一个字段用于指定 何时 应执行所请求的操作。这个时间点基于 连接事件计数器Connection Event Counter即 BLE 链路层通信中事件的计数。 Instant 的作用场景 连接参数更新Connection Parameter Update 当主设备Master请求修改连接间隔、超时时间等参数时会通过 LL_CONNECTION_PARAM_REQ 消息传递新参数并设置一个 Instant 点。从设备Slave在 Instant 指定的连接事件时刻开始使用新参数。 信道映射更新Channel Map Update 信道映射表更新也使用 Instant 点确保双方在相同的连接事件时刻开始使用新的信道映射。 跳频与时钟同步 Instant 确保主从设备在指定的时刻同步更新参数避免主从设备之间出现跳频或时钟偏移导致的通信失步。 Instant 的特点 基于连接事件计数器 BLE 链路层通过 连接事件计数器 追踪每次通信的事件编号。Instant 是一个 未来的事件编号通常在当前事件之后的几次连接事件发生时触发。 确保同步执行 Instant 允许 BLE 设备双方预先知道何时应用新的设置确保同步执行操作而不会导致通信中断。 错误处理 如果从设备错过了 Instant例如设备进入睡眠状态或无法在指定事件完成更新会导致链路断开通信失败。 连接参数更新流程中的 Instant 主设备发送更新请求 主设备通过 L2CAP 的 Connection Parameter Update Request向从设备提议新的连接参数包括 新的连接间隔Interval新的从设备延迟Slave Latency新的超时时间TimeoutInstant表示参数更新的生效时刻 从设备响应更新请求 从设备根据自身能力接受或拒绝请求。如果接受从设备会记录 Instant并继续使用旧参数直到 Instant 时刻。 双方同步参数更新 在 Instant 指定的事件计数到达时主从设备同时切换到新的连接参数。 Instant 的具体计算 Instant 的值 Instant 是一个 16-bit 的计数值取自 BLE 链路层的事件计数Event Counter。它通常设定为当前事件计数加上一个固定的偏移量。例如 当前事件计数 100Instant 100 6 106即 6 个事件之后生效 偏移量的作用 给设备提供足够的时间来完成切换准备例如 重新配置定时器校准新的参数 关键点 双方必须遵守 Instant 无论是主设备还是从设备只有在 Instant 指定的时刻才会切换到新的参数。 瞬态点的检查 在连接参数更新逻辑中双方都会检查当前事件计数与 Instant 的差值gap。如果 gap 0 或发生溢出gap 32767说明 Instant 到达开始切换。 失败处理 如果主设备或从设备在 Instant 到达之前断开连接参数更新将无法完成。 总结 Instant 的核心作用是为 BLE 连接参数的更新提供一个同步的切换点。它通过事件计数保证主从设备在同一时刻应用新参数防止因参数不同步而导致的通信错误。这一机制对于 BLE 的低功耗设计至关重要因为它能在不频繁通信的情况下仍保持通信的可靠性和一致性。 LL_CONNECTION_UPDATE_IND 和 LL_CONNECTION_PARAM_REQ 是蓝牙低功耗BLE链路层中两种用于连接参数更新的链路层消息主要区别在于用途、触发条件和使用场景。 示例 假设主设备发送一个连接参数更新请求 当前 连接事件计数器 为 100。主设备在请求中指定 Instant 110表示在 第 110 次连接事件 时主从设备都开始使用新连接参数。从设备接收到这个请求后等待 第 110 次连接事件并在该时刻同步更新参数。 总结 Instant 是 BLE 链路层中一个表示未来时刻的概念主要用于同步执行控制操作如连接参数更新和信道映射更新。它基于 连接事件计数器确保 BLE 通信双方在指定的连接事件中同步完成特定任务保证通信的稳定性和一致性。 BLE蓝牙低功耗中的 1M、2M、S2、S8 是指蓝牙物理层PHY传输速率和编码方式的配置选项。这些模式影响传输速度、抗干扰能力和通信距离是蓝牙5.0及更高版本引入的重要特性。以下是每个模式的详细说明 ble 1m 2m s2 s8详解 1M PHY (1 Mbps PHY) 特性 传输速率1 Mbps每秒1兆比特。编码方式没有特殊的编码使用基本的高斯频移键控GFSK调制。范围中等通常10-50米视环境和设备功耗而定。抗干扰能力一般适用于常见的近距离低功耗通信。 应用场景 是蓝牙低功耗的基础物理层速率兼容性最广。适合大多数 BLE 设备如智能手环、心率监测器等。 2M PHY (2 Mbps PHY) 特性 传输速率2 Mbps每秒2兆比特。编码方式无特殊编码依然使用 GFSK但速率提升一倍。范围比 1M PHY 略短信号在高频传输下衰减较快。抗干扰能力略弱于 1M PHY但仍适合低干扰环境。 应用场景 高数据速率需求如音频数据传输LE Audio、固件升级 (OTA)。低延迟应用如游戏手柄、虚拟现实设备。 S2 (LE Coded PHY, 1:2) 特性 传输速率有效速率为 500 kbps1 Mbps 的一半。 编码方式使用前向纠错FEC编码 1:2 编码率。 每1位数据用2位符号表示提高数据冗余。 范围比 1M PHY 更远适合复杂环境。 抗干扰能力显著提高适用于嘈杂环境。 应用场景 需要较远距离但不追求高数据速率的场景。工业物联网IIoT、资产跟踪设备Asset Tracker等。 S8 (LE Coded PHY, 1:8) 特性 传输速率有效速率为 125 kbps1 Mbps 的八分之一。编码方式使用 FEC 编码1:8 编码率。 每1位数据用8位符号表示极大增强冗余性。 范围最远的 PHY 模式比 S2 和 1M PHY 都远。抗干扰能力最强适用于极其复杂或干扰严重的环境。 应用场景 超远距离通信户外定位、农业物联网设备。恶劣环境信号穿透力和抗干扰能力要求高的场景。 总结对比 PHY 模式传输速率范围抗干扰能力典型应用1M PHY1 Mbps中等一般智能手环、低功耗设备2M PHY2 Mbps略短较弱高速传输、LE AudioS2500 kbps更远较强工业物联网、远距离设备S8125 kbps最远最强超远距离通信、复杂环境 BLE PHY 模式的选择 优先范围 如果距离优先选择编码模式S2 或 S8。S8 最适合远距离且高可靠性要求的场景。 优先速率 高速需求如音频传输选择 2M PHY。S2/S8 不适合大数据量传输主要用于小数据包的可靠传输。 能耗权衡 编码模式S2/S8增加了冗余性解码耗电更多但通信距离延长。2M PHY 在速率提升的同时能耗变化不大。 环境干扰 干扰严重时编码模式S2/S8可以显著提高通信稳定性。 如需更深入了解或希望针对具体设备和使用场景进行分析可以提供更多细节
http://www.tj-hxxt.cn/news/221171.html

相关文章:

  • 公益网站建设郑州开发小程序平台
  • 服务器iis做网站杭州网站开发后端招
  • 汽车专业网站网站建设费用包括哪些
  • 请问婚庆网站建设该怎么做呢做选择的网站首页
  • 花生壳怎么建设购物网站教育网站制作公司
  • 网站开发简述100个最好的微信小程序
  • 襄阳谷城网站建设免费seo软件推荐
  • 淘宝内部卷怎么做网站商务邮箱注册
  • 做试卷的网站编程一小时网站
  • 西安外贸网站建设wordpress邮件发送类
  • 自己如何制作一个网页seo软件开发
  • 自己做网站需要多少资金wordpress菜单手机显示下拉
  • 怎么看网站用什么平台做的网页设计项目模板代码
  • 消防网站建设的风格项目立项流程
  • 网站建设公司排行百度怎样做网站
  • 访问自己做的网站中石化工建设宁波分公司网站
  • 沣东新城开发建设集团有限公司网站xampp如何安装wordpress
  • 如何攻击Wordpress站点嵊州网站
  • 宁夏住房城乡建设厅网站青柠影院免费观看电视剧高清
  • 门户网站建设报告wordpress 前台插件
  • 婚纱摄影手机网站模板win10怎么删除2345网址导航
  • 产品销售类网站 模板ppt模板免费素材
  • 高端建站和普通建站有哪些不同网站欣赏公司网站案例
  • 做一些购物网站如何通过网站后台修改网站
  • 福建省建设系统网站icp备案综合查询网站
  • 厦门网站制作公司如何申请营业执照
  • 免费文档模板素材网站angularjs 做团购网站
  • php网站制作实例教程wordpress调用文章缩略图
  • 常州二建建设有限公司官方网站网站域名到期如何续费
  • 河东苏州网站建设宝塔面板加wordpress