欢乐熊大话蓝牙知识1:蓝牙通信全流程拆解:从广播到连接的每一步
——当蓝牙设备开始“社交”,它们都聊了些什么?
你有没有想过,你手上的蓝牙耳机和手机,在悄悄连上之前,是不是也经历了一段暗送秋波、互发短信、最后牵手成功的过程?
别笑,其实还真差不多。
今天,我们就来看看蓝牙设备在“谈恋爱”时的全过程:从第一眼看对方(广播)、到开始搭话(扫描)、互表心意(连接)、再到正式交往(数据传输),整个流程,堪称无线通信界的“恋爱剧本”。
一、谁主动?谁被追?——设备角色介绍
在 BLE(蓝牙低功耗)世界里,每个设备都有自己的“社交身份”:
- Central(主机):像个主动出击的搭讪王,总是在寻找目标。比如你的手机、蓝牙网关。
- Peripheral(从机):像个安静发呆的文艺青年,坐在那里不停发广播,希望被注意。比如耳机、温湿度传感器、智能灯泡。
两者角色分明,一个负责找人,一个负责等人。
二、“嘿,我在这!”——广播(Advertising)
广播就像你在广场上喊话:“我单身,爱钓鱼,会煮咖喱,想找人聊天!”
BLE 外设设备(如传感器)会周期性地发广播包,告诉路过的 Central:“哥在这,快来连我!”
广播包里一般塞着:
- 名字(Device Name)
- 特征(服务 UUID)
- 特别说明(厂商自定义字段)
- 是否能被连(这很重要)
广播类型也有“性格分类”:
广播类型 | 性格描述 |
---|---|
Connectable | 可以被连接的“开放型” |
Non-Connectable | 只想分享不想被打扰的“佛系型” |
Scannable | 可以多聊几句,但别拉我入伙的“社恐型” |
而且它们只在三个信道上喊(37/38/39),这叫“集中发力,躲开Wi-Fi”。
三、“你喊我听”——扫描(Scanning)
主机这边(比如你的手机)则像一个在广场上戴着耳机逛街的“猎人”,不停地听谁在喊。
扫描有两种方式:
- Passive Scan(被动听):装作路人,默默听你说什么
- Active Scan(主动搭话):听完还会问一句:“你还有啥更多信息?”
如果广播包对它口味,比如有“心率服务 UUID”,Central 就准备出手啦。
四、“要不要在一起?”——连接建立(Connect Request)
当 Central 觉得“这个外设还挺靠谱”,它就会发出正式的Connection Request:“我们来聊聊吧?”
如果 Peripheral 愿意(一般都愿意),就开始进入“稳定交往期”,也就是连接建立成功!
此时双方要约法三章,商量几个重点:
- 多久聊一次?(连接间隔)
- 能否迟到几次?(从机延迟)
- 多长时间不说话就分手?(连接超时)
- 一次最多说多少字?(MTU size)
这几个参数对BLE设备的功耗有直接影响。设太紧张,就累,设太松散,又容易断。
五、“咱们正式聊天吧!”——GATT 数据交换
蓝牙 BLE 的聊天协议叫 GATT,别看名字像哈利波特魔法咒,其实是 Generic Attribute Profile 的缩写。
Peripheral 会开个“服务清单”,像这样:
-
服务1:体温服务
- 特征值1:当前温度
- 特征值2:单位(摄氏/华氏)
-
服务2:电量服务
- 特征值1:当前电量百分比
Central 这边可以:
- 读(Read):比如“你现在多少度?”
- 写(Write):比如“切换成华氏!”
- 订阅(Notify):比如“有温度变化随时告诉我!”
整个过程其实就是:你问我答、我说你听,乖巧又规范。
六、断开也讲究礼貌
连接结束有两种情况:
- 和平分手:主机或从机主动说再见
- 冷暴力:一方太久不理会,超时断开
建议在代码里加好“断开事件回调”,否则连接一断,主控还在“等消息”,那就尴尬了。
七、总结:蓝牙通信就是一场“设备社交剧”
所以,如果你觉得蓝牙通信难,那是因为你把它当成“技术协议”在学。
但你要是把它当“交朋友”的过程来看,瞬间豁然开朗:
- 外设:广场喊话,坐等表白
- 主机:扫描信息,挑个合适下手
- 成功后:建立连接,定下聊天频率
- 正式通信:GATT 交换感情内容
- 断开连接:礼貌说再见,或尴尬离场
掌握这个流程,无论你是要做蓝牙灯控、BLE传感器、还是智能门锁,都能轻松搞定设备之间的“感情线”。
喜欢的盆友点赞加收藏,关注欢乐熊,下一期为大家分享的题目是《BLE 是怎么省电的?核心机制全解析》”,不要错过哈~~