蓝牙学习-整体概览

参考:
https://bluekitchen-gmbh.com/btstack/#protocols/#sdp-service-discovery-protocol
https://www.bluetooth.com/specifications/specs/


蓝牙协议和配置

蓝牙概念

经典蓝牙(4.0之前):Bluetooth Basic Rate、Enhanced Date Rate(BR/EDR),提供可靠的设备间无线连接方式,提供数据的高速传输能力;

低功耗蓝牙(4.0之后):Low Energy (LE),提供更快的连接能力和同时连接多个设备的能力;

Profile和Protocol的区别

无论是经典蓝牙还是低功耗蓝牙都实现了一个或多个蓝牙Profile,蓝牙Profile具体规定了如何使用一个或多个蓝牙核心协议完成一个具体的功能。如上图所示,所有蓝牙设备都需要实现GAP(Generic Access Profile,定义了如何发现设备,建立连接和断开连接的功能),为达到GAP的目标,GAP主要调用HCI(Host Controller Interface Protocol,底层API接口实现了蓝牙芯片的具体命令)。GAP还有另外一个功能就是一个蓝牙外设设备可以通过SPP(Serial Port Profile,定义了一个包含RFCOMM通道号的服务发现(SDP,Service Discovery Protocol)数据,根据此通道号后续可实现具体的通信)。通用的,每个低功耗蓝牙设备都需要实现GATT(Gereric Attribute Profile,定义在ATT(Attribute Protocol)之上提供本蓝牙设备被远端设备通过GATT服务沟通的方式)

总结:Profile是争对具体蓝牙功能的组合实现,他利用Protocol的接口实现自己的功能,有时也依赖其他Profile组合,如GAP和SPP。

蓝牙应用现状

目前最广泛的方案就是蓝牙外设设备通过SPP进行连接(Android2.0及更高)和同过GATT进行连接(Android 4.3及更高和iOS 5及更高)

蓝牙Protocol

SMP:Security Manager Protocol,提供建立授权和加密LE连接的能力;
ATT:Attribute Protocol,提供客户端读写服务端属性值的能力和服务端通知客户端属性值变更的能力;
RFCOMM:Radio Frequency Communication,提供通过L2CAP协议的串口仿真和重新组装的能力,为SPP和其他远距离通信功能如HSP,HFP,OBEX提供底层支持;
SDP:Service Discovery Protocal,提供声明服务和发现服务的方法;
BNEP:Bluetooth Network Encapsulation,提供通过标准网络协议(如TCP)传输控制命令和数据包;
AVDTP:AUDIO/VIDEO Control Transport,提供音视频控制接口,是AVRCP底层支撑;
AVCTP:AUDIO/VIDEO Distribution Transport:提供音视频分布传输接口,是A2DP底层支撑;
L2CAP:Logical Link Control and Adaptation,提供逻辑链路控制与适配协议,将ACL数据分组交换为便于高层应用的数据分组格式,并提供协议复用和服务质量交换等功能;
HCI:Host Control Interface,提供蓝牙芯片的命令接口;

蓝牙Profile

GATT:General Attribute,提供LE设备定义自己能力,属性和操作方法的功能,LE设备间可以通过GATT互相读写对方的属性以及接收对应的属性变更通知;
SPP:Serial Port Profile,提供建立虚拟串口以及两个设备通过虚拟串口建立连接的功能,需要注意虚拟串口不提供分包能力即收到的数据是按照发送顺序连续的,但不保证多个包之间是分段传输的。
HSP:Headset Profile,提供蓝牙耳机所需的具体功能,包括音频网关和耳机端
HFP:Hands-Free Profile,提供如蓝牙耳机和蓝牙车载设备接听来电和短信通知
MFi iARP2:
PBAP:Phonebook Access Profile,提供电话本的访问能力,包括访问电话本客户端和服务端;
SDAP:
PAN:Personal Area Networking,提供蓝牙设备间的蓝牙网络功能,包括:PANU(PAN User,客户端),NAP(Network Access Point,接入点),GN(Group Ad-hoc Network,自组网络)
A2DP:Advanced Audio Distribution,提供音频流通过蓝牙连接传输的功能,包括音频流发送端(如手机,mp3)和音频流播放端(如音响,耳机)
AVRCP:Audio/Video Remote Control Profile,提供音视频控制功能,通常每个设备实现两个角色,控制角色发送控制命令,如play,stop;目标角色执行命令,如执行play,stop;
HID:Human-Interface Device,提供host连接多个HID外设的功能,人机交互设备指键盘,鼠标等输入设备和温湿度传感设备等;
GAP:Generic Access Profile(Classic/LE),提供广播,发现,连接,断开远端蓝牙设备的功能;
MESH:

你可能感兴趣的:(蓝牙学习-整体概览)