蓝牙学习-整体概览

参考:
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:

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,064评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,606评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,011评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,550评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,465评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,919评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,428评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,075评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,208评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,185评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,191评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,914评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,482评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,585评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,825评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,194评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,703评论 2 339

推荐阅读更多精彩内容

  • 参考:《Bluetooth for Linux Developers Study Guide》 关于蓝牙Profi...
    集韵增广阅读 856评论 0 1
  • HW层:蓝牙芯片层 RF(RADIO):射频层,本地蓝牙数据通过射频信号发送给空中设备,并通过射频接收来自空中的蓝...
    集韵增广阅读 5,802评论 0 13
  • GATT全称Generic Attribute Profile,中文名叫通用属性协议,它定义了services和c...
    Ayugone阅读 2,281评论 0 1
  • 一、蓝牙BLE产生背景——蓝牙的发展历程 要说蓝牙BLE的产生背景,首先要放到蓝牙的发展历程里面去看。说起蓝牙,大...
    猫疏阅读 1,705评论 0 3
  • 什么是Profile? 众所周知,蓝牙中有很多的profile,我们接触和学习蓝牙相关的开发不可避免的需要弄懂什么...
    小时不识月z阅读 19,472评论 1 13