我们在日常生活中可以见到许许多多的蓝牙设备,比如蓝牙耳机、蓝牙键盘、手机、电脑、汽车车机等等,本文就谈谈蓝牙通信中的主要概念、基本原理和流程,尝试建立起对蓝牙通信的基本认知。
蓝牙通信是什么?
蓝牙通信和4G、5G、wifi、NFC、电报、雷达等都属于无线电通信,都是利用某个频率范围内的电磁波进行通信,无线电通信原理可以看之前的文章——《无线电发射和接收原理》。
蓝牙协议是什么?
一种协议就是一种有着严格的语义语法的计算机交流语言,只有通信双都遵循同一个协议,双方才能准确、清晰的理解对方意图。
蓝牙协议规定了蓝牙通信的前置条件和通信双方交流用的语法语义:比如蓝牙通信使用什么频率的波段,蓝牙通信双方身份识别流程,通信中断了怎么办,通信恢复了如何处理,通信双方传输消息的格式是什么,蓝牙传输的信息如何编码和解码等等;
为什么叫蓝牙?
蓝牙是一种短距离无线通信协议,名字来源于蓝牙王,他统一了混乱的丹麦,蓝牙协议也是如此,它的出现统一了混乱的短距离无线通信协议,它是世界著名的5家大公司一爱立信(Ericsson)、诺基亚(Nokia)、东芝(Toshiba)、国际商用机器公司(IBM)和英特尔(Intel),在1998年5月联合宣布的一种无线通信新技术,统一之后不同厂商只要遵循蓝牙协议生产蓝牙设备,就能够相互通信。
什么是蓝牙设备?
蓝牙设备是包含蓝牙发射模块或者蓝牙接收模块的设备,具体来说:
蓝牙发射模块可以把信息(比如说音频)包装成蓝牙协议要求的格式,最终加载到蓝牙协议规定波段的电磁波上发射出去。具体看之前文章《无线电发射和接收原理》
蓝牙接收模块可以接收符合蓝牙协议的电磁波,并从中解析出原始信息。
目前市面上很多产品是把蓝牙接收和发射模块做在一起,统称蓝牙模块。比如常见的蓝牙耳机、蓝牙音箱、手机、汽车车机,都安装了蓝牙模块,他们能把自己设备上的信息比如音频通过蓝牙模块发射出去,也可以接收到配对的设备发来的蓝牙信息,解析出来后进行下一步处理,比如接收到音频消息后用音乐播放器播放。
蓝牙通信的基本步骤
1. 发现设备
发现设备的关键在于一方在一直“发声“,一方”听到了”,举例如下:
蓝牙耳机处于未连接状态的时候,它的蓝牙发射模块会周期性(比如0.5s一次)的广播身份信息,身份信息主要包括设备名称、标号、功率等,具体来说大概是这样的“我是华为耳机、我的编码号是9527,我发射功率是100(如果接收功率是10, 可以根据这个计算大致距离)”
手机打开蓝牙后,它的蓝牙接收模块就会在蓝牙频谱范围内 ,以一个频率去接收广播的身份信息,并根据信号强度判断是否在通信范围内,如果在通信范围内,就记录下它的身份信息,这就完成了设备的发现,然后在蓝牙频谱范围内,以一定规律变更频率继续接收广播,这个过程叫蓝牙设备扫描。
2. 建立链接
我们周围空间充斥着各种无线电波,蓝牙设备不可能对所有的信息都进行回应,所以就有了建立链接这一个步骤,蓝牙设备只对建立了链接的设备进行数据回应。
建立链接本质是通信双方约定“信物”,以后双方看到约定信物才会响应对方消息,比如他们会告诉对方身份、使用的电磁波频率图谱(跳频),使用的协议版本、使用的链路密钥 、数据格式等等,这些都可以认为是通信“信物”一部分,接下来通信(数据传输)时候只有这些信物都对,才能进行正常响应。
3. 数据传输
数据传输考虑的就是如何安全可靠的发送和接收数据,它主要涉及:数据如何封装和解析、“信物”如何附加和辨别、数据传输一半链接断开怎么办,链接如何恢复,数据完整性怎么校验等等问题,这些都是蓝牙协议的重要内容。
4. 断开连接
断开链接的本质是维持该通信信道的资源(内存、发数据和取数据线程)主动或者被动释放,比如蓝牙耳机突然没有电,蓝牙耳机维持信道的资源就释放了,手机端发送的音频消息迟迟没有回应,手机端也会释放相应的数据发射线程、内存等资源。