控制器与主机
从整体结构上,蓝牙可分为控制器 (Controller) 和主机 (Host) 两部分。
控制器包括了PHY、 Baseband、 Link Controller、 Link Manager、 Device Manager、 HCI 等模块,用于硬件管理、链路管理等等;
主机则包括了 L2CAP、 SMP、 SDP、 ATT、 GATT、 GAP 以及各种规范,构建了向应用层提供接串口的基础。
主机 ——HCI——控制器
Bluedoid与BlueZ
都是属于蓝牙主机的框架,或者说协议栈;
ESP-IDF 默认蓝牙主机框架是BLUEDROID;
Android 4.2 之前,Google 一直应用的是 Linux 官方蓝牙协议栈BlueZ,之后,推出了它和博通公司一起开发的 BlueDroid 以替代 BlueZ。
ATT与GATT
属性(ATT),通用属性(GATT)
属性(ATT),通用属性(GATT) =》ATT是属性协议(Protocol)而GATT是规范(Profile)名称
GATT 规范则定义了如何用特性值和描述符表示一个数据,如何把相似的数据聚合成服务 (Service),以及如何发现对端设备拥有哪些服务和数据。
服务端与客户端
这个是GATT中的概念,一般来说BLE设备是是服务器,而手机是客户端
属性(Attibute)
BLE 中的最小数据存储单位:即属性(Attibute)
特性(Characteristics)
GATT协议的数据表示方式为:特性(Characteristics),特性也有UUID,实际上,和 BLE 外设打交道,主要是通过 Characteristic。
服务(Service)
多个相类似的特性值(Characters)和描述符(Descriptor)=》服务(Service),服务也有UUID,
比如:把电池相关的特性定义成电池服务 (Battery Service),其中包括电池电量,电池的温度等等。
规范(Profile)
蓝牙的规范有:A2DP、SPP、GATT。主要分为传统的和4.0的。
传统的规范有:A2DP、SPP、等
BLE以后的规范有:GATT
关系
参考:https://blog.csdn.net/DFSAE/article/details/78202596
一个profile有很多的服务,一个服务又有很多的特性,一个特性中又有几种属性条目组成。属性是由属性句柄,属性类型(UUID),属性值和属性许可组成
BLE蓝牙与传统蓝牙
参考:https://www.jianshu.com/p/c96e0006b34d
兼容性
之间相互不兼容,BLE只能与BLE连接,传统只能和传统连接,但双模可以和BLE也可谓和传统蓝牙。
一般来说,所有手机的模块都是双模蓝牙,Android4.3和苹果4S以上才能支持BLE。
功率与传输距离
传统蓝牙有3个功率级别,Class1,Class2,Class3,分别支持100m,10m,1m的传输距离,
而低功耗蓝牙无功率级别,一般发送功率在7dBm,一般在空旷距离,达到20m
蓝牙4.0标准包含两个蓝牙标准,但部署支持单模和双模两种。
经典蓝牙支持音频(HFP/HSP, A2DP)和数据(SPP, HID, OPP, PBAP等)两大类协议;
而BLE蓝牙不支持音频协议及受数据传输速度限制。
传统的一般通过socket方式,而低功耗蓝牙是通过Gatt协议来实现。
BLE-0-基本概念 | 可夫嵌入式 (koffuxu.com)
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。