【BLE】低功耗蓝牙开发重点注意项

本文介绍了蓝牙低功耗设备的开发要点,包括从设备的广播内容和间隔、MTU设置、连接参数、配对过程、服务配置、特征配置以及通知和指示的启用。重点讨论了如何调整广播数据以定制设备特性,以及如何通过MTU协商优化数据传输效率。此外,还提到了连接参数如连接间隔和从机延迟对功耗和通信速度的影响。主设备的服务发现和使能通知或指示是实现双向通信的关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在蓝牙应用开发中,干得最多的就是修改参数,然后调调相关初始化接口,因为最难的协议栈相关部分芯片厂家都已经做好了的,很多厂家的DEMO可能都覆盖了你需求的全部应用了。基于原厂给的DEMO上,可以快速开发出你想要的蓝牙产品,与此同时,还需要了解开发中高频修改的点或参数。

从设备

从设备是被连接那一端设备。

广播

对于从设备而言,在连接之前要干的事情是广播,广播是为了让主设备发现并连接自己。在广播时,我们常常需要修改的参数是广播内容和广播间隔。

广播内容

广播是为了告诉附近的人自己的存在以及自己是谁,如下图。
在这里插入图片描述

上图是通过nRF Connect来发现附近的设备的,显示了M1_HRM这个蓝牙设备广播的内容:

  • 设备名称:M1_HRM
  • Device type:LE only(代表仅支持低功耗蓝牙)
  • Advertising type:Legacy(Legacy:BLE 4.2 版本的 ADV;Extend:BLE 5.x 版本的 ADV)
  • Appearance:Heart rate Sensor(表达的是什么类型的产品,这里是心率传感器)
  • Flags:GeneralDiscoverable,BrEdrNotSupported(通用可发现,不支持经典蓝牙)
  • Complete list of 16-bit Service UUIDs:0x180D(设备服务类型的唯一标识)
  • Complete Local Name:M1_HRM(设备完整名字)
    广播数据是开发一个从设备最先需要修改的,它代表了自己的特性以及包含了什么功能,更多广播包数据里面的数据类型可以参数蓝牙核心文档,以下展示出其中一小部分:
    在这里插入图片描述
    关于广播类型数据详细信息请看这里,进来然后找到CSS

广播间隔

广播间隔的设置会影响被发现的速度,间隔越小,被发现的概率就越大越快,同时自身的功耗也会相应增加。
补充以下两种广播间隔定义:

  • 最大最小广播时间设置
    在这里插入图片描述

  • 周期广播
    在这里插入图片描述

MTU

MTU: 最大传输单元(MAXIMUM TRANSMISSION UNIT) , 指在一个PDU(Protocol Data Unit: 协议数据单元,在一个传输单元中的有效传输数据)能够传输的最大数据量。
MTU协商一般在两个设备连接成功之后且进行大数据通信之前,比如说,主设备发出一个247个字节的MTU请求,但是从设备回应MTU是23字节,那么今后双方要以较小的值23字节作为以后的MTU),主从双方约定每次在做数据传输时不超过这个最大数据单元。

连接参数

主要修改连间隔和从机延迟。Connection Interval增长,主从设备间通信频率降低,功耗降低;Connection Interval减短,通信频率增加,功耗增加。
Slave Latency减少或者设置为 0,每次Connection Events中都需要回复Master的包,功耗会上升,数据发送速度会提高;Slave Latency加长,功耗下降,数据发送速度降低。

配对

有些设备连接后需要配对,这部分细节可能多,但是对于应用来说只需要修改个别参数。

服务配置

一个蓝牙从设备一般会有多个服务,这些服务需要开发人员自行添加,大部分设备都有的电池服务,设备信息服务。

特征配置

服务里面可以添加特征,特征有可读、可写、可通知、可指示这些属性。

发送通知或指示

当主设备请求了通知或指示,需要可以向主设备发送通知或指示。

主设备

主设备是发起连接的那一端设备。

服务发现

当主设备与从设备连接成功后,主设备发去发现从设备里面包含哪些服务及特征,如果发现了自己想要的则会做相应标记或记录下来。

使能通知或指示

当发现服务里面的特征后,且该特征具有可通知或可指示的属性,主设备可以去请求通知或属性,然后从设备就可以通过通知或属性向主设备发送数据了。

举例演示

下图是主设备连接从设备后发现服务及特征的表现:
在这里插入图片描述

总结

本文主要描述低功耗蓝牙开发的高频修改项,很多细节没有展开描述,如果想进一步了解,可以点进主页的 BLE协议剖析专栏。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

强人电子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值