蓝牙的命名来源于一个丹麦国王的名字。
蓝牙的核心是短距离无线电通讯,它的基础来自于跳频扩频(FHSS)技术。
频率:[2.4GHz, 2.4GHz + 83.5MHz]
物联网领域需要研究Bluetooth + Mesh。
两种:
在IoT中,ble更常见一些;经典蓝牙常用于手机和耳机的通信。
芯片模式有两种:
开始于爱立信在 1994 年提出的无线通信方案,以解决用户间互不兼容的移动电子设备的通信问题,用于替代 RS-232 串口通讯标准。
第一代蓝牙(传输率0.7Mbps):
BD_ADDR
;第二代蓝牙:
2009 年,3.0(比较稳定了),可调用 802.11 WiFi,传输速率高达 24Mbps。蓝牙 3.0 的核心是 AMP(Generic Alternate MAC/PHY)。代表作是蓝牙适配器。
第四代:
4.0之前的都是经典蓝牙,>=4.0的才支持BLE。
2016 年,蓝牙 5.0,iot入场,速度上限为 2Mbps,传输距离理论上可达 300 米,结合 WiFi 可以实现精度小于 1 米的室内定位;针对 IoT 物联网进行底层优化;引入Mesh网络。
说下Mesh。
Mesh 网状网络能够将蓝牙设备作为信号中继站,数据覆盖广,兼容蓝牙 4 和 5 系列的协议。
传统的蓝牙连接是通过 配对 实现的,即 [一对一] 或 [一对多] 的微型网络关系。
Mesh 网络能够使设备实现「多对多」的关系。
3种:
蓝牙设备:
硬件层,即Controller蓝牙模块(由低到高排序):
TRANSPORT层,实现HOST跟CONTROLLER的交互,有H2(USB使用), H4/H5/BCSP(UART使用)协议。5种数据:
HOST层,即蓝牙协议栈,或者说蓝牙主机,:
一些蓝牙模块:
JDY-10M模块,含底板+蓝牙模块,十几块钱,供电建议5V。两种接法:
M是Mesh的意思,JDY-10就是不支持组网的版本.
初学者先学蓝牙host(蓝牙协议栈),再学controller(蓝牙芯片)里面的协议。
可以参考《吐血推荐历史最全的蓝牙协议栈介绍_Wireless_Link的博客-CSDN博客_蓝牙协议栈》
蓝牙协议有很多,蓝牙电话(HFP),蓝牙音频(A2DP),蓝牙音乐控制(AVRCP),蓝牙电话本(PBAP),蓝牙短信(MAP),BLE,HID…
蓝牙协议分为传输协议、中介协议和应用协议:
Logical Link Control and Adaptation Protocol,逻辑链路控制与适配协议。
位于基带之上
Service Discover Protocol,服务发现协议,发现哪些服务可用,并确定这些可用服务的特征
Serial Port Emulation,串口仿真协议,为建立在串口之上的传统应用提供环境接口,用于蓝牙电话,蓝牙透传SPP等。
AT指令是区分大小写的ascii码,以\r结束。
像mesh那样,要在组网中实现通信,就不能用at那样的ascii指令了,而要用特定的二进制协议格式。
只能在透传模式下工作(设备连接手机后进入透传模式,手机是服务端)。
Hands-Free,蓝牙免提协议,用于蓝牙耳机。还有一个已经基本废弃的HSP,蓝牙耳机协议。
OBEX,对象交换协议,用于蓝牙电话本,蓝牙短信,文件传输等。
SPP(SERIAL PORT PROFILE):蓝牙串口协议。
IAP:苹果的特有协议,用于Carplay。
PBAP(Phone Book Access):蓝牙电话本访问协议。
MAP(Message Access Profile):蓝牙短信访问协议。
OPP(Object Push Profile):对象推送协议.
A2DP(Advanced Audio Distribution): 蓝牙音乐协议.
…
https://blog.csdn.net/XiaoXiaoPengBo/article/details/107727900
一文让你彻底了解市面蓝牙架构,无忧蓝牙产品选型_Wireless_Link的博客-CSDN博客
吐血推荐历史最全的蓝牙协议栈介绍_Wireless_Link的博客-CSDN博客_蓝牙协议栈
Bluetooth® Technology Website
蓝牙技术发展史 - 知乎 (zhihu.com)
pybluez/pybluez: Bluetooth Python extension module (github.com)