"); //-->
简述
GAP本身是一个Profile,并不是Protocol,其作用是定义了如何来使用蓝牙的Host的各层的Protocol。GAP中有一个GAP Service,是用来表明设备的基本信息的,只要作为GATT Server,就需要实现这个GAP Service。
GAP Service
先看一张图,对GAP Service有个整体了解:
从此图可看到,BR/EDR可以选择实现GAP Service的Device Name和Appearance属性。对于BLE而言,是分角色进行对待的,Broadcaster和Observer不需要GAP Service。对于Peripheral和Central角色,则可能会需要实现其中部分或全部实现:
Peripheral
Device Name和Appearance必须要实现,Peripheral Preferred Connection Parameters是可选的,而Central Address Resolution则要看Link Layer Privacy是否支持。
Central
Device Name和Appearance必须要实现,Peripheral Preferred Connection Parameters不需要,因为是针对peripheral的,而Central Address Resolution则要看Link Layer Privacy是否支持。
多GAP Role模式下
对于支持多GAP Role的:GAP Service必须支持所有Role的需求,即为所有Role需求的总和。而当操作于不支持某些Characteristic的Role下时,设备也必须继续暴露出其所支持的所有GAP Service的Characteristics。
Characteristic介绍
GAP Service的4个Characteristic的介绍。
Device Name
虽然这里规定Device Name长度可以到248字节,但一般不会需要那么长的名字,一般会建议最长到达40字节就好了。
Appearance
Appearance即表明这是个什么设备,如鼠标?键盘?等等,用2个字节可以表示很多种类的,某个代码对应某个具体的Appearance表示,这个需要参考SIG的Assigned Numbers,上面有列表的。另外,Device Name和Appearance都是表示本地设备属性的,因此只会有一份实例。对于多GAP Role的状况,应当还是只会维护一份Device Name和Appearance,不然一个设备有多个名字和多个Appearance,就不好表示了。
Peripheral Preferred Connection Parameters(PPCP)
主要是表明Peripheral设备这边比较偏好的一个连接参数,包括:
- Minimum connection interval
- Maximum connection interval
- Slave Latency
- Connection Supervision timeout multiplier
关于连接参数的介绍涉及的地方很多了,这里不再赘述。其实最关注的还是在哪使用这个参数?如何使用呢?我的想法是,这个是供Central来获知的。不过有点略为奇怪,Central在链路建立时是通过CONN_REQ来设置好连接参数的,而此时两者并未建立连接,因此Central此时并不同通过ATT_Read来获取Peripheral上的这个PPCP,难道是建立连接后Central有需要知道这个PPCP的必要?因为Peripheral也有直接更新连接参数的过程的啊,这样看来具体应用估计也不是必要吧。
Central Address Resolution
这个看来是BT 4.2添加的新特性了。因为在BT 4.2中,为了提高BT的安全性(原来SMP的方式是可以破解的),加入了Random Address的内容。这里的Central Address Resolution就是用来表明暴露GAP Service的这个Central设备,是否支持Resolvable Private Address(RPA)的。
Peripheral设备通过读对方Central设备的GAP Service的Central Address Resolution,就能知道其是否支持RPA了,如果其支持,那Peripheral就可以在自己的Directed Advertisement中使用RPA了。如果不支持,那还是只能使用public地址了。
关于蓝牙的public地址,private地址,请参考设备蓝牙地址这篇文章。
来看下Central Address Resolution的内容:
一份实例
最后补充下,上面的GAP Service,对于一个设备而言,应当是只有一份实例的,即不管是多GAP Role设备还是就只支持一个GAP Role,都只需要维护一份GAP Service,而该Service中的Characteristics都只有一份实例的。
原文链接:https://blog.csdn.net/suxiang198/article/details/48521335/
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。
相关推荐
蓝牙无线通讯协议V1.1
Bluetooth readies spec for 2, 10-Mbit/s data rate
Nordic助力双模模块简化Bluetooth Classic Audio和LE Audio产品开发
Silicon Labs宣布推出具有先进硬件和软件的全新 Bluetooth®定位服务
蓝牙技术及其协议栈
用Bluetooth Developer Studio缩短70%蓝牙开发时间
利用创新的Bluetooth核心规范v5.1中的到达角(AoA)增强室内定位服务
Bluetooth 蓝牙 规范 10.1版
Bluetooth的过去与未来
Bluetooth 有用過Bluetooth模組的嗎?介紹幾個廠家給我
WIDCOMM Bluetooth Software1.4.1 Build 6
Achieving best-in-class RF performance in next gen Industrial and Medical connected applications
最新蓝牙耳机系统电路设计方案
意法半导体推出单片天线匹配IC,配合Bluetooth LE SoC和STM32无线MCU,让射频设计变得更轻松、快捷
MSP430,and,Bluetooth MSP430 and Bluetooth
硕士学位论文 在蓝芽环境中传送H.263 视讯资料
BM70蓝牙解决方案
Microchip推出新型PIC单片机系列产品,以更简便方式添加Bluetooth低功耗连接功能
利用Bluetooth 低功耗技术进行定位跟踪方案解析
开发智慧驾驶无限可能,驶向未来新科技
请推荐带有bluetooth的接口芯片,谢谢!
高性价比无线MCU如何帮您将低功耗蓝牙应用到更多产品中
意法半导体推出STM32WB1MMC Bluetooth LE 认证模块
CEVA Bluetooth 5.4 IP获得蓝牙技术联盟(SIG)认证包含新功能以满足快速增长的电子货架标签(ESL)市场需求
BlueTooth Power 评估板线图
可穿戴下的危机与Bluetooth LE芯片浅析
利用Bluetooth®低功耗技术进行定位跟踪