ble

K成长日志7 天前
物联网·网络协议·嵌入式·蓝牙·iot·ble·bluetooth
BLE Host层L2CAP -- 配置参数选项写过蓝牙协议栈或抓过 HCI 包的同学对 L2CAP_CONFIGURATION_REQ / RSP 一定不陌生:两个设备通过 L2CAP_CONNECT_REQ 建立面向连接的信道(Channel)之后,并不会立刻传数据,而是要进入 CONFIG 状态,互相"讨价还价"一番——你我各自能收多大的包?要不要重传?要不要校验?QoS 怎么保证?
K成长日志7 天前
物联网·网络协议·无线通信·蓝牙·iot·ble
BLE Host层L2CAP -- 状态机L2CAP 的面向连接信道从生到死要经历一连串阶段:发起连接 → 等待应答 → 双向协商参数 → 传数据 → 拆链。不同阶段能处理哪些信令报文、收到报文后该干什么,如果没有统一的规定,各家芯片厂各写各的,互操作性就是灾难。
dozenyaoyida14 天前
ble·广播信道·wifi干扰·hci抓包
BLE 广播信道 37/38/39 选频设计解析:为什么 2402/2426/2480 MHz 专门避开 WiFiBLE 在 2.4GHz 划了 40 个 2MHz 信道,广播却只占 3 个,且编号是排在最后的 37/38/39,频率分别落在 2402/2426/2480 MHz——正好卡在 WiFi 信道 1/6/11 的三处缝隙里。本文从频谱叠层、AFH 兜底差异、真实 HCI 抓包三个角度拆解这套"躲位"设计,并给出广播可靠性场景的工程建议。
你的强来了99819 天前
网络·串口·调试·usb·ble·分析
WCHToolKit场景实战上一篇介绍了WCHToolKit的整体定位。本文继续向下走一步:不再逐个罗列软件,而是看它如何围绕不同使用场景来组织工具。
K成长日志22 天前
网络·物联网·无线通信·蓝牙·iot·ble
BLE Host层L2CAP--数据包格式在 BLE 中,L2CAP 主要运行在基本模式下,数据帧被称为 B-frame(Basic information frame)。此外,LE Credit Based Flow Control 模式(用于 CoC 面向连接信道)也使用 K-frame。
K成长日志1 个月前
网络·物联网·蓝牙·iot·ble
BLE链路层-隐私保护为什么BLE需要隐私保护?BLE设备在广播和连接过程中使用48位设备地址进行身份标识。如果设备始终使用固定的公共地址,任何具备BLE嗅探能力的第三方都可以通过持续监听,将该地址与特定设备(乃至特定用户)关联起来,实现长期位置追踪和行为画像。这对于智能手表、健康监测器、资产标签等随身设备而言,是一个严重的隐私威胁。
K成长日志1 个月前
网络·嵌入式·无线通信·蓝牙·iot·ble
BLE链路层-Feature Support为什么要理解链路层支持特性?蓝牙核心规范 v5.4 于 2023 年发布,重点面向物联网场景优化能效、连接稳定性和广播安全。它引入了四项关键新特性:
wotaifuzao2 个月前
低功耗蓝牙·ble·nrf52·zephyr·gatt·cccd
(十)BLE GATT与ATT深度解剖-从属性表到CCCD-订阅收不到数据的终极答案本文是 BLE 系列第十篇。上一篇 MTU 讲的是"管道有多粗",这一篇讲"管道里运的是什么、怎么运、为什么你的手机收不到"。
YONYON-R&D2 个月前
ble·蓝牙鼠标
[特殊字符] 解决:蓝牙鼠标从其他电脑切回后“能扫到但连不上”🏷️ 标签:Windows技巧 蓝牙故障 注册表 罗技鼠标 Logitech Pebble蓝牙鼠标(如 Logitech Pebble)之前连接过其他电脑,再次连回本机时,出现:
dozenyaoyida2 个月前
controller·嵌入式开发·ble·host·zephyr·协议栈·软链路层
Zephyr BLE 上行链路源码拆解:一个空中报文怎么从 radio 跑到应用回调(NCS v3.2.1)数据来源说明:本文上行链路以 Zephyr 软链路层(controller/ll_sw/,开源)为主线讲清机制,关键函数已用 gitee 镜像 main 分支核对(https://gitee.com/zephyrproject-rtos/zephyr/raw/main/)。gitee 镜像只有 main 分支,ncs-v3.2.1 tag 不在镜像上,文中行号以 main 为参考并标注版本差异(main 与 v3.2.1 行号有偏移,函数名与机制一致)。nRF54L15 实际用的是 SoftDevice
dozenyaoyida2 个月前
ble·zephyr·gatt·ble协议栈
Zephyr BLE GATT Server 注册到收发调用链源码解析(NCS v3.2.1)数据来源说明:本文基于 Zephyr BLE 协议栈 Host 开源部分(subsys/bluetooth/host/gatt.c、att.c、include/zephyr/bluetooth/gatt.h)撰写。GATT/ATT 均为 Host 开源代码,可对照源码阅读。文中行号依据 NCS v3.2.1 研究文档标注,因本机联网限流(raw.githubusercontent.com 返回 429)未对每一行独立联网核对,以实际源码为准。SoftDevice Controller 部分闭源,本文不涉及
K成长日志2 个月前
物联网·网络协议·蓝牙·低功耗·iot·ble
BLE不可连接状态--广播态很多开发者对BLE广播的理解停留在“设备往外发数据包”这个层面,但当你翻开蓝牙核心规范(Bluetooth Core Specification)的链路层(Link Layer)章节,会发现广播态(Advertising State)远比想象中复杂。尤其在蓝牙5.4中,广播态的能力被进一步扩展。
K成长日志2 个月前
网络·物联网·网络协议·蓝牙·iot·ble·无线
BLE链路层--比特流处理在BLE通信中,我们讨论的PDU(协议数据单元)在通过天线发送之前,需要经历一个关键的“预处理”环节——比特流处理(Bit Stream Processing)。这个过程决定了数据包在空口传输的可靠性、安全性和物理兼容性。
K成长日志3 个月前
网络·物联网·网络协议·嵌入式·蓝牙·iot·ble
BLE链路层空口包--数据物理信道PDU连接建立之后,BLE通信便从广播信道切换到了数据物理信道。数据物理信道(Data Physical Channel)PDU是蓝牙通信中的核心组成部分,它负责在已建立的连接上高效、可靠地传输数据。
K成长日志3 个月前
物联网·嵌入式·蓝牙·iot·ble·无线·通信
BLE链路层空口包--LE Uncoded PHY在BLE协议栈中,链路层(Link Layer)定义了唯一一种空中包(Air Interface Packet)格式。然而,根据物理层的不同,这个统一格式在具体实现上又分为LE Uncoded PHY和LE Coded PHY两种变体。本文将深入剖析LE未编码物理层(LE Uncoded PHY)的空口包结构——这也是BLE最基础、最常用的包格式。
六bring个六3 个月前
ble·open harmony·gatt·分布式软总线
连接模块中的BLE方式GATT协议分析在蓝牙的世界里,GATT(通用属性配置文件)就是这套“交接规则”。它专门负责在两个蓝牙设备连接之后,数据该如何组织和传输。
奔跑吧 android4 个月前
ble·bluetooth·att·gatt·core_v6.2·sig
【Bluetooth-SIG】【CoreV6.2】【Vol3 Part G】【GATT】【零】【GATT 逐句逐段学习计划 2】ATT_READ_BLOB_REQoffsetMTU 限制分段读取长字符串、长证书、长配置数据场景多 handle 读取
HiDev_4 个月前
蓝牙·ble·蓝牙连接·ble 蓝牙广播·蓝牙hci command
BLE Legacy 连接【读取当前连接所使用 PHY 类型 HCI_LE_Read_PHY command】这部分内容讲的是 HCI_LE_Read_PHY command,也就是 BLE 中用于读取当前连接所使用 PHY 类型 的 HCI 命令。
HiDev_4 个月前
蓝牙·ble·蓝牙连接·ble 蓝牙广播·蓝牙hci command
BLE Legacy 连接【断开连接 Disconnect command】下面这部分讲的是 HCI_Disconnect command,也就是:注意:它不是 LE Controller commands 里的命令,而是在:
K成长日志4 个月前
网络·物联网·网络协议·嵌入式·蓝牙·ble
BLE协议之设备地址BLE设备地址(Bluetooth Device Address,BD_ADDR)是一个48位(6字节) 的标识符,用于在蓝牙低功耗网络中唯一识别一个设备。