2.GAP:通用访问协议

GAP的简单理解

GAP这个名字,直接翻译过来不好理解。
简单点可以理解为:

  1. 这是蓝牙设备在互联之前,过程中,第一个用于交流的协议。
  2. 在代码上,会给这个协议实现,连接参数的设置,连接事件的实现(如断开连接,连接成功等好多事件)

BLE的两种通信方式

  • 面向连接的通信:设备之间存在专用连接,形成双向通信。
  • 广播通信:设备无需先建立连接即可进行通信,通过向范围内的所有设备广播数据包。(信标,温湿度计会常用这种,它只需要将数据发出去就行。不用和用户交互。)

GAP的角色

在BLE里,涉及到角色概念的,就两个地方。

  • GAP角色 :定义了两种角色:Central(中央设备)和Peripheral(外围设备)
  • GATT角色:定义了两种角色:服务器和客户端。

GAP角色和GATT角色其实是两个分开的概念,他们并没有联系。所以在记的时候不要混在一起。

GAP分角色的原因
主要是简化设计省电两个原因。

**穿插个知识点:BLE建立连接从广播开始,**

 1. A设备广播自己的信息,B设备收到广播。
 2. B设备对A设备有兴趣,就发起连接,A会在广播后短暂开启接收,如果有人要连接我,就连接,没人连接,A就会关闭无线电。

简化设计: 设备要连接上,必须有人发起连接,有人接收连接。如果让一个人会发起连接也会接受连接,那协议栈就会复杂一些。所以蓝牙将这部分的功能分开指定了,Central(只能接收广播),Peripheral(只能发起广播)

省电: :蓝牙的很多设备是电池供电的,或对功耗要求很高。因此在没有通信的时候,设备需要关闭其无线电以达到省电的目的。但是如果双方都经常关闭无线电,那不就导致通信经常会失败了。为了避免这个问题,会让Central定义为一直接收BLE广播,(接收相对发送功耗小一些)。因此Central设备通常是功耗不敏感的设备来做这个角色。

GAP的Central是负责扫描(或叫接收)蓝牙广播的,常见为手机,PC这种设备
GAP的Peripheral,负责广播自己,让有需要和我通信的人可以连接我,平时无线电关闭状态。以达到省电目的。通常是一些传感器设备。

GAP的Broadcaster 和observer 角色

这两种角色,可以认为是Central(中央设备)和Peripheral(外围设备)的特殊用法。

主要是有些场景,设备直接不需要建立连接,他只需要周期性的广播自己的信息,或者持续的监听有没有设备广播新的数据就行。所以才引入了这两种简单的角色。

蓝牙的网络拓扑结构

只要是设备之间多起来,就可以形成网络,那么他们就会有网络关系,也就是拓扑结构。

广播拓扑:A设备单纯通报状态信息,其他设备只接收状态。双方不会有连接建立。
在这里插入图片描述连通拓扑
设备之间是可以建立双向连接的。
在这里插入图片描述多角色拓扑
一个设备有两种角色
在这里插入图片描述

文章主要是主观的个人理解多,难免有以偏概全的地方。有错误的地方欢迎指正。共勉!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值