实战经验|关于连接参数更新进程后导致断连的问题分析

原创 STM32单片机 2024-02-29 17:19


关键词:连接,参数更新,断连


目录预览

1、引言

2、连接参数更新进程简述

3、客户可能的测试逻辑和问题现象描述

4、问题分析

5、小结


01

引言


通常客户在做低功耗蓝牙模块设计的时候,如果蓝牙模块在实际使用场景中和手持移动设备(如手机等)绑定使用的话,往往会非常注意蓝牙模块与不同品牌、不同型号的手机的兼容性测试。这些测试项目可能包括长时间连接状态的保持,频繁建立连接,或主动断连后再次建立连接等场景。本文描述的问题是客户在其兼容性测试中发现的一个比较典型的问题,即当从设备在与手机端处于连接状态下,从设备启动连接参数更新进程后,会导致断连的问题。由于是兼容性测试,测试设备,特别是作为主设备的手机来自不同的供应商,在兼容低功耗蓝牙协议的基础上,某些细节部分的差异难以避免。所以,本文只论述了该客户问题的分析过程及得出的结果,并不期望涵盖所有类似场景下导致断连的原因。


02

连接参数更新进程简述


低功耗蓝牙的核心规范中有规定,当主从设备建立连接后,可以通过启动特定的进程改变当前连接的相关参数,如连接间隔(ConnInterval),从设备延迟(SlaveLatency)和监控超时(SupervisionTimeout)等。 


低功耗蓝牙的核心规范中定义了几个不同的连接参数更新流程,有的流程主设备和从设备都可以启动,有的流程只能由从设备或主设备启动。为避免引入过多对本文关注话题的无用信息,我们在这里只介绍一种由从设备启动的连接参数更新的流程。即由从设备通过调用L2CAP 层的命令的方式启动的连接参数更新流程。 


流程图如图 1 所示。流程图的前提条件是主从设备端之间已建立连接,从设备希望改变当前已建立连接的连接参数。 


整个流程的步骤解析如下: 


第一步:从设备发起 Connection Parameter Update Request,提交新的连接参数给主设备,希望主设备可以采用这些参数。主设备接收到从设备的 Request 后,会根据自身当前条件(是否能支持这些连接参数)决定是否接受请求。如果接受,则执行第二步;如不接受,则直接跳到第四步拒绝该 Request。 


第二步:主设备接受请求,给从设备发送链路层数据包LL_CONNECTION_UPDATE_REQ,该数据包中包含了主设备在分析了从设备在第一步中提交连接参数后,决定最终使用的目标连接参数,并约定在后续的特定连接事件开始使用新的连接参数。 


第三步:从设备在接收到 LL_CONNECTION_UPDATE_REQ 数据包后发送一个链路层的空包作为响应,并结束当前连接事件。 


第四步:主设备发送 L2CAP 层的 Connection Parameter Update Response 命令,作为对第一步中 Request 命令的回复,回复中的相关标志标明是接受(Accept)还是拒绝(Reject)之前的 Request 命令。如果是接受,则主从设备双方会在第二步中LL_CONNECTION_UPDATE_REQ 数据包中所指定的后续特定连接事件中开始使用新的连接参数,并成功完成连接参数更新过程。


图1.连接参数更新流程


03

客户可能的测试逻辑和问题现象描述


客户使用智能手机和 ST 的 BlueNRG LP 作为测试的主从设备。客户的兼容性测试中需要使用预设连接间隔和监控超时时间。为了在测试过程中可以实时调整相关参数,需要手机端作为主设备通过私有逻辑将新的连接参数通过低功耗蓝牙连接发送给从设备( BlueNRGLP ), 并由从设备启动上述的更新流程,以完成连接参数的更新并继续执行后续的其他测试项。 


问题现象: 


主从设备在完成上述流程第四步后,且主设备发送 Connection Parameter UpdateResponse 命令所给出的响应也是接受的情况下,主从设备在上述流程中第二步LL_CONNECTION_UPDATE_REQ 命令所指定的特定连接事件中开始采用新的连接参数时会发生断连。从设备重新进入广播状态。 


客户的疑惑点在于主从设备已经完成了上述连接参数更新的交互,意味着应该可以顺利切换到新的连接参数,没有道理会导致后续的断连,由于作为主设备的智能手机是某大品牌产品,怀疑 BlueNRG 的协议栈是否存在兼容性问题。


04

问题分析


根据问题复现时使用低功耗蓝牙抓包工具所抓取的 log 数据,做如下分析。


4.1.分析 LL_CONNECTION_UPDATE_REQ 数据包内容


4.1.1. 如图 2 所示,LL_CONNECTION_UPDATE_REQ 数据包内容,需要重点关注如下数据:


1. Event counter:29, 表示 LL_CONNECTION_UPDATE_REQ 发送时所在的连接事件编号为 29。
2. Instant:35:约定在第 35 个连接事件中,主从设备开始使用新的连接参数。
3. Interval:816(1020msec), 表示新的连接间隔为 1.02 秒。
4. Window Size/Window Offset:第 35 个连接事件中,主从设备开始使用新的连接参数进行第一次数据包交互时,接收、发送窗口的定时信息。


图2.LL_CONNECTION_UPDATE_REQ PDU 抓包数据


4.1.2. 从下图 3 中获取从连接事件 29 到从设备进入广播状态这个过程中每个连接事件及连接时间中数据包收发的时间戳。


图3.时间戳


从图 3 中可以看出:


1. 从连接事件 29 到连接事件 34,连接间隔为 30ms,即旧的连接间隔。
2. 连接事件 35 中主设备的发包时间和连接事件 34 的开始时间差大大超过 30ms,所以可以再次确认是在连接事件 35,主从设备开始使用新的连接参数。
3. 从连接事件 35 开始及后续的 3 个连接事件中,只有主设备发送空包,从设备没有发送空包。
4. 由于新的连接参数的监控超时时间在客户的测试中为 4 秒,所以从设备没有发送空包的 4 个连接事件结束后,即发送了断连。然后,从设备重新开始发送广播包。


4.1.3. 如下图 4,通过分析抓包 LOG 中各个连接事件、即数据包发送的时间戳后发现:


1. 通过 LL_CONNECTION_UPDATE_REQ 数据包中 transmitWindowOffset 计算出TransmitWindow 的开始时间点应该在 11.477925s
2. 从抓包的 log 信息中发现,主设备实际的发包时间点在 11.477909s,也就是主设备的发包时间先于蓝牙协议中规定的 TransmitWindow 的起始点,导致从设备无法接收到来自主设备的空包,从而无法在同一连接事件(连接事件 35 及后续的 3 个连接事件)中反馈一个空包,进而导致 4 秒监控超时,最终导致断连。从设备退出连接态后重新进入广播态。


图4.连接事件即数据包发送时间分析


05

小结


上述问题的根本原因是作为主设备的智能手机虽然完成了连接参数更新流程中主从设备之间的交互,但由于其在后续规划的连接事件,规划的射频任务的时间点的偏差而导致了断连。

导致低功耗蓝牙断连的可能原因有很多,上述的情况只是其中一种。本文的意图是介绍上述问题的分析过程,读者可以参照本文展现的分析方法、将其运用到类似问题的解决过程中。

通过对抓包 LOG 中的时间戳的分析,有很大机会可以帮助找到解决问题的突破口。


完整内容请点击“阅读原文”

STM32单片机 ST MCU (产品+工具+资料+技术+市场+活动)x 您的关注x您的支持 = STM32 单片机蝴蝶乐园
评论 (0)
  • 温度传感器的工作原理依据其类型可分为以下几种主要形式:一、热电阻温度传感器利用金属或半导体材料的电阻值随温度变化的特性实现测温:l ‌金属热电阻‌(如铂电阻 Pt100、Pt1000):高温下电阻值呈线性增长,稳定性高,适用于工业精密测温。l ‌热敏电阻‌(NTC/PTC):NTC 热敏电阻阻值随温度升高而下降,PTC 则相反;灵敏度高但线性范围较窄,常用于电子设备温控。二、热电偶传感器基于‌塞贝克效应‌(Seebeck effect):两种不同
    锦正茂科技 2025-05-09 13:31 69浏览
  • 二位半 5线数码管的驱动方法这个2位半的7段数码管只用5个管脚驱动。如果用常规的7段+共阳/阴则需要用10个管脚。如果把每个段看成独立的灯。5个管脚来点亮,任选其中一个作为COM端时,另外4条线可以单独各控制一个灯。所以实际上最多能驱动5*4 = 20个段。但是这里会有一个小问题。如果想点亮B1,可以让第3条线(P3)置高,P4 置低,其它阳极连P3的灯对应阴极P2 P1都应置高,此时会发现C1也会点亮。实际操作时,可以把COM端线P3设置为PP输出,其它线为OD输出。就可以单独控制了。实际的驱
    southcreek 2025-05-07 15:06 344浏览
  • 飞凌嵌入式作为龙芯合作伙伴,隆重推出FET-2K0300i-S全国产自主可控工业级核心板!FET-2K0300i-S核心板基于龙芯2K0300i工业级处理器开发设计,集成1个64位LA264处理器,主频1GHz,提供高效的计算能力;支持硬件ECC;2K0300i还具备丰富的连接接口USB、SDIO、UART、SPI、CAN-FD、Ethernet、ADC等一应俱全,龙芯2K0300i支持四路CAN-FD接口,具备良好的可靠性、实时性和灵活性,可满足用户多路CAN需求。除性价比超高的国产处理器外,
    飞凌嵌入式 2025-05-07 11:54 61浏览
  • 这款无线入耳式蓝牙耳机是长这个样子的,如下图。侧面特写,如下图。充电接口来个特写,用的是卡座卡在PCB板子上的,上下夹紧PCB的正负极,如下图。撬开耳机喇叭盖子,如下图。精致的喇叭(HY),如下图。喇叭是由电学产生声学的,具体结构如下图。电池包(AFS 451012  21 12),用黄色耐高温胶带进行包裹(安规需求),加强隔离绝缘的,如下图。451012是电池包的型号,聚合物锂电池+3.7V 35mAh,详细如下图。电路板是怎么拿出来的呢,剪断喇叭和电池包的连接线,底部抽出PCB板子
    liweicheng 2025-05-06 22:58 479浏览
  • UNISOC Miracle Gaming奇迹手游引擎亮点:• 高帧稳帧:支持《王者荣耀》等主流手游90帧高画质模式,连续丢帧率最高降低85%;• 丝滑操控:游戏冷启动速度提升50%,《和平精英》开镜开枪操作延迟降低80%;• 极速网络:专属游戏网络引擎,使《王者荣耀》平均延迟降低80%;• 智感语音:与腾讯GVoice联合,弱网环境仍能保持清晰通话;• 超高画质:游戏画质增强、超级HDR画质、游戏超分技术,优化游戏视效。全球手游市场规模日益壮大,游戏玩家对极致体验的追求愈发苛刻。紫光展锐全新U
    紫光展锐 2025-05-07 17:07 255浏览
  • 文/郭楚妤编辑/cc孙聪颖‍相较于一众措辞谨慎、毫无掌舵者个人风格的上市公司财报,利亚德的财报显得尤为另类。利亚德光电集团成立于1995年,是一家以LED显示、液晶显示产品设计、生产、销售及服务为主业的高新技术企业。自2016年年报起,无论业绩优劣,董事长李军每年都会在财报末尾附上一首七言打油诗,抒发其对公司当年业绩的感悟。从“三年翻番顺大势”“智能显示我第一”“披荆斩棘幸从容”等词句中,不难窥见李军的雄心壮志。2012年,利亚德(300296.SZ)在深交所创业板上市。成立以来,该公司在细分领
    华尔街科技眼 2025-05-07 19:25 319浏览
  • 硅二极管温度传感器是一种基于硅半导体材料特性的测温装置,其核心原理是利用硅二极管的电学参数(如正向压降或电阻)随温度变化的特性实现温度检测。以下是其工作原理、技术特点及典型应用:一、工作原理1、‌PN结温度特性‌硅二极管由PN结构成,当温度变化时,其正向电压 VF与温度呈线性负相关关系。例如,温度每升高1℃,VF约下降2 mV。2、‌电压—温度关系‌通过jing确测量正向电压的微小变化,可推算出环境温度值。部分型号(如SI410)在宽温域内(如1.4 K至475 K)仍能保持高线性度。
    锦正茂科技 2025-05-09 13:52 71浏览
  • Matter协议是一个由Amazon Alexa、Apple HomeKit、Google Home和Samsung SmartThings等全球科技巨头与CSA联盟共同制定的开放性标准,它就像一份“共生契约”,能让原本相互独立的家居生态在应用层上握手共存,同时它并非另起炉灶,而是以IP(互联网协议)为基础框架,将不同通信协议下的家居设备统一到同一套“语义规则”之下。作为应用层上的互通标准,Matter协议正在重新定义智能家居行业的运行逻辑,它不仅能向下屏蔽家居设备制造商的生态和系统,让设备、平
    华普微HOPERF 2025-05-08 11:40 227浏览
  • 随着智能驾驶时代到来,汽车正转变为移动计算平台。车载AI技术对存储器提出新挑战:既要高性能,又需低功耗和车规级可靠性。贞光科技代理的紫光国芯车规级LPDDR4存储器,以其卓越性能成为国产芯片产业链中的关键一环,为智能汽车提供坚实的"记忆力"支持。作为官方授权代理商,贞光科技通过专业技术团队和完善供应链,让这款国产存储器更好地服务国内汽车厂商。本文将探讨车载AI算力需求现状及贞光科技如何通过紫光国芯LPDDR4产品满足市场需求。 车载AI算力需求激增的背景与挑战智能驾驶推动算力需求爆发式
    贞光科技 2025-05-07 16:54 179浏览
  • 后摄像头是长这个样子,如下图。5孔(D-,D+,5V,12V,GND),说的是连接线的个数,如下图。4LED,+12V驱动4颗LED灯珠,给摄像头补光用的,如下图。打开后盖,发现里面有透明白胶(防水)和白色硬胶(固定),用合适的工具,清理其中的胶状物。BOT层,AN3860,Panasonic Semiconductor (松下电器)制造的,Cylinder Motor Driver IC for Video Camera,如下图。TOP层,感光芯片和广角聚焦镜头组合,如下图。感光芯片,看着是玻
    liweicheng 2025-05-07 23:55 238浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦