BLE (协议栈,广播包)
文章平均质量分 80
协议栈,广播包
deepwater_zone
嵌入式开发、学习交流
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
BLE 协议栈(Host:gap,gatt,sm,att,l2cap;Ctrl:hci,LL,phy)
蓝牙是一种无线技术标准,用于短距离(2.4GHz频段)数据传输,由蓝牙技术联盟(SIG)管理。其发展经历了多个版本迭代,从4.0的低功耗设计到6.0的高精度测距功能,传输速度和覆盖范围不断提升。蓝牙协议采用分层架构,包含应用层、主机层(GAP/GATT等协议)、控制器层和物理层。GAP负责设备发现和连接管理,GATT则定义了数据传输框架,采用服务-特性-属性的层级结构,支持服务器和客户端两种角色。最新版本持续优化物联网支持、音频传输和安全性能,满足多样化应用需求。原创 2019-05-19 22:16:23 · 5059 阅读 · 2 评论
-
LE Audio框架
与传统蓝牙音频相比,LE Audio的整个架构旨在带来四大变革:1、更高音质与更低功耗:LC3编解码器实现了更高效的压缩,在提升音质的同时大幅降低了功耗。2、真无线立体声 (TWS):通过CIS机制,左右耳塞可以同时、独立地从手机接收同步音频流,彻底解决了传统“主副耳”连接方式的功耗和同步问题。3、广播音频 (Auracast™):一个音频源(如手机、电视)可以广播给无限数量的音频接收设备,将音频分享从个人扩展到公共空间。4、助听器支持。原创 2026-04-17 14:29:47 · 281 阅读 · 0 评论 -
BLE安全机制与加密流程
低功耗蓝牙(BLE)通过安全管理层协议(SMP)和链路层加密实现端到端安全通信。其安全体系包含GAP定义的安全模式(加密/签名)和4个等级。核心流程为配对-绑定-加密三阶段:配对阶段交换特性并生成短期密钥(STK)或长期密钥(LTK);绑定阶段存储密钥;加密阶段使用AES-CCM算法保护数据。安全连接(SC)采用ECDH算法,支持数值比较认证,可防范中间人攻击。每次连接动态生成会话密钥,结合包计数器防止重放攻击。密钥体系包含临时密钥(TK)、短期密钥(STK)、长期密钥(LTK)和会话密钥等多层次防护。原创 2026-04-13 15:58:24 · 340 阅读 · 0 评论 -
开源和闭源BLE协议栈
主流开源蓝牙协议栈的技术特点与适用平台。BlueZ是Linux官方协议栈,与内核深度集成;Bluedroid和Fluoride是Android系统的优化方案;NimBLE和BTstack专为资源受限设备设计;Cordio与ARM Mbed OS深度结合。Zephyr原生BLE协议栈支持Nordic、Silicon Labs、NXP等主流厂商的MCU平台,覆盖从nRF系列到STM32等多款芯片。各协议栈在开源许可、功能特性和目标平台方面存在明显差异,开发者可根据项目需求选择最适合的方案。原创 2026-04-10 18:14:14 · 268 阅读 · 0 评论 -
BLE 连接流程与参数(Master,Slave;Standby,Advertiser,Scanner,Initiator;连接流程,连接参数)
本文系统介绍了BLE(低功耗蓝牙)技术的关键特性与工作原理。主要内容包括:BLE协议栈的分层结构(Controller、Host和应用层);物理层采用2.4GHz频段和GFSK调制方式;星型拓扑结构下主从设备的关系;设备6种可能的工作状态(待机、广播、扫描等);广播事件的机制与参数设置(广播间隔、随机延时);连接建立流程及关键参数(连接间隔、监督超时、从机潜伏);连接事件的工作模式与跳频机制;不同连接参数对功耗和性能的影响;以及连接终止的两种方式。文章通过示意图详细展示了BLE通信的时序关系与状态转换,为理原创 2019-05-19 18:44:12 · 3867 阅读 · 1 评论 -
BLE 连接和通信 的过程
本文介绍了BLE(低功耗蓝牙)连接的基本原理与过程。首先说明了BLE设备分为主机(Master)和从机(Slave)两种角色,主机发起连接而从机被连接。连接过程主要包括:1)从机通过广播事件发送广播信号;2)主机扫描并接收广播信号;3)建立连接,主机发送连接请求后双方进行数据包交互;4)连接成功后,主从设备在每个连接间隔进行数据交互,但大部分时间发送空包以降低功耗。文章还详细描述了广播间隔、连接请求、数据包传输等关键概念,并配有示意图说明通信时序。最后指出蓝牙通信通过空中属性操作,使用句柄唯一标识特性,包括原创 2019-05-19 15:56:49 · 4761 阅读 · 0 评论 -
BLE 写操作详解:write_req 与 write_cmd
摘要:BLE协议栈中的write_req和write_cmd属于ATT层,分别对应可靠写入和快速写入。write_req(opcode=0x12)需要服务器响应,适合关键参数配置;write_cmd(opcode=0x52)无需响应,适合高速数据传输。两者与GATT特性属性CHAR_PROP_WRITE和CHAR_PROP_WRITE_WITHOUT_RSP直接对应。write_req提供协议层确认但吞吐量低(~10KB/s),write_cmd吞吐量高(~100KB/s)但需应用层保证可靠性。原创 2026-03-10 23:51:22 · 476 阅读 · 0 评论 -
BLE HCI Status(断开码)
断开码 描述 0x08 0x13 RemoteUserTerminatedConnection 主机断开 0x16 ConnectionTerminatedByLocalHost 设备主动断开 0x22 LMPResponseTimeout/LLResponseTimeout原创 2021-06-24 16:38:06 · 3754 阅读 · 1 评论 -
实测BLE的最小连接间隔
BLE连接间隔的理论最小值(7.5毫秒)与实际协商值(安卓12.5ms/iOS15ms)的差异,并提供了三种实测方法:1)使用专业BLE协议分析仪或开源抓包工具捕获空中数据包;2)通过电流波形分析连接间隔;3)从机端通过SDK API获取连接参数(如nRF5 SDK的ble_gap_evt_conn_param_update_t结构体)。这些方法可帮助开发者验证设备实际使用的连接间隔参数。原创 2026-03-20 20:22:24 · 133 阅读 · 0 评论 -
BLE和经典蓝牙对比(协议栈,数据传输模型,应用场景)
蓝牙经典(BR/EDR)与低功耗蓝牙(BLE)在架构设计、功耗特性和应用场景上存在显著差异。BR/EDR采用多层协议栈支持流式音频传输(如A2DP)和文件交换(如OBEX),具有较高功耗(30-50mA)和复杂连接过程;而BLE采用精简协议栈(GATT/ATT),专为低功耗(μA级)短数据包传输设计,支持快速连接和广播模式。BR/EDR主导无线音频、车载系统等场景,BLE则广泛应用于可穿戴设备、医疗监测和智能家居领域。两种技术在物理层(信道数/间隔)、数据传输模型和功耗管理机制上形成鲜明对比,满足不同物联网原创 2026-03-22 17:46:52 · 496 阅读 · 0 评论 -
常用 BLE Profile 汇总(A2DP,AVRCP,HFP,SPP)
常见的 BLE Profile 及其应用场景。主要包括:HOGP(键盘/鼠标数据传输)、HFP(车载免提通话)、A2DP(高质量音频传输)、AVRCP(音视频遥控)、SPP(串口数据透传)等12种常用Profile。每种Profile都标注了UUID、名称、主要功能及典型使用场景,如PBAP用于同步联系人、HRP用于心率监测等。这些Profile覆盖了音频传输、数据通信、远程控制、健康监测等多个领域,为蓝牙设备开发提供了标准化的功能实现方案。原创 2026-03-22 21:39:35 · 157 阅读 · 0 评论 -
BLE通用广播包(AD type / 响应包)
蓝牙广播数据格式解析:BLE广播包最大长度为37字节(BLE5.0为254字节),其中6字节为设备地址,31字节为有效数据。数据被组织为多个AD Structure,每个包含Length(1字节)、AD Type(1字节)和AD Data(n字节)。常见AD Type包括0x01(Flags,必选)、0x09(设备名称)、0xFF(厂商自定义数据)等。Flags字段(0x01)用于标识设备特性,BLE设备通常设为0x06。扫描响应机制允许主机获取从机更多信息,扫描响应数据格式与广播数据相同。原创 2023-11-23 00:35:14 · 5262 阅读 · 0 评论 -
ATT层MTU大小
不同蓝牙版本的MTU限制不同,从BLE4.0的23字节到BLE5.0+的512字节不等,有效数据载荷通常为MTU减去3字节开销。实际应用中,MTU由连接双方共同决定,设备支持存在差异(iOS上限约185字节,Android更灵活)。建议开发者确认设备支持、主动请求适当MTU大小,并进行实际测试以优化数据传输效率。增大MTU可减少分包和协议开销,但需平衡性能和兼容性。原创 2025-09-04 23:14:11 · 1159 阅读 · 0 评论 -
BLE广播包4种类型(可连接的非定向广播 ADV_IND)
文章目录1、可连接的非定向广播(ADV_IND)2、可连接的定向广播(ADV_DIRECT_IND)3、不可连接的非定向广播(ADV_NONCONN_IND)4、可扫描的非定向广播(ADV_SCAN_IND)1、可连接的非定向广播(ADV_IND)这是一种用途最广,最常见的广播类型,包括广播数据和扫描响应数据,它表示当前设备可以接受任何设备的连接请求。进行通用广播的设备能够被扫描设备扫描到,或者在接收到连接请求时作为从设备进入一个连接。通用广播可以在没有连接的情况下发出,换句话说,没有主从设备之分。原创 2021-09-20 15:45:24 · 5498 阅读 · 0 评论 -
latency 对功耗的影响
摘要: 连接间隔(Connection Interval)和从机延迟(Latency)是蓝牙低功耗(BLE)通信中的两个关键参数。连接间隔决定主从设备的固定通信频率,而Latency允许从设备动态跳过连接事件以降低功耗。二者区别在于:连接间隔为固定频率,Latency则提供灵活性。某些场景(如智能手表)需兼顾低功耗和快速响应,仅调整连接间隔会导致实时性不足或功耗过高。此时结合Latency可优化性能(如设置短连接间隔+高Latency)。原创 2025-07-04 21:35:07 · 1172 阅读 · 0 评论 -
BLE开发易错点(HID服务)
iOS系统对包含HID服务的蓝牙设备会进行系统级接管,导致应用层断开操作无效。这是由于HID设备被视为高优先级外设,系统会主动维持连接以保证稳定性,并可能快速重连以节省电量。解决方案建议:1)设备端去除HID服务;2)在iOS设置中"忘记设备"或重启蓝牙/设备。这能彻底清除系统缓存中的错误连接状态。原创 2025-09-05 00:12:29 · 321 阅读 · 0 评论 -
nRF52832
Nodic nRF52832,支持BLE,ANT,NFC和2.4G RF多种无线传输协议!nRF52832是知名的nRF51822的后续作品,它将BLE SoC带到了一个新的高度。这款产品有很多让人兴奋的地方,它带来了更高的性能、更低的功耗以及更多的功能。转载 2018-12-08 17:56:19 · 1182 阅读 · 0 评论 -
nRF5 SDK
一般来说,开发nRF51/52产品推荐使用nRF5 SDK。从形式上来说,nRF5 SDK其实就是一个产品压缩包,其官网下载地址为:https://www.nordicsemi.com/Software-and-Tools/Software/nRF5-SDK/Download#infotabs。除了nRF5 SDK,Nordic还针对某些特殊应用领域推出了一些专门的SDK,这些SDK和nRF5...原创 2019-05-25 10:19:19 · 2619 阅读 · 0 评论
分享