白话BLE技术 第五篇

GAP中的发现有几种模式

  • 不可发现的模式,其他设备不会意识到该设备的存在
  • 有限发现的模式,在一定的时间内允许被发现
  • 一般发现的模式,只要有请求,就可以被发现

发现过程

有2种发现过程,有限发现过程和一般发现过程。

  • 有限发现过程是指查询Limited Discoverable flag的包
  • 一般发现过程是指不预设条件,发现所有的包

建立连接

中心设备会初始化一个连接,与周边设备建立连接。在建立连接的时候,周边设备需要保持在可以连接connectable的模式。类似于发现的过程中,建立连接也有几个模式和几个过程来控制整个过程。

建立连接的模式

  • 不可以连接的模式

在这种模式下,设备不会发送包,或者发出的包都是带有ADV_NONCONN_IND或者ADV_SCAN_IND的标志位。在这两种情形下,设备都是不可以被连接的,没有中心设备可以连接到他们。

  • 直接的可连接的模式

在这种模式下,设备会发送带有ADV_DIRECT_IND的广播包。当执行直接广播时,设备会以高频率短时间发送这种类型的包,而不会带有用户数据和指定的中心设备地址为目标。

  • 非直接的可连接的模式

在这种模式下,周边设备会发送ADV_IND标志位的广播包。在这种模式下,周边设备会把自己暴露到外部空间很长时间并且尝试去连接到一个新的中心设备,但是这是一种标准的连接模式。

连接建立的过程

因为中心设备没有办法决定广播包的类型,中心设备只能扫描发送出来的广播包。中心设备可以做的是过滤掉不需要的广播包。

自动连接建立过程

中心设备对于已知设备有一个白名单,并且连接到第一个自动检测出来的周边设备上。

一般连接建立过程

中心设备扫描广播包,对于每一个检测出来的中心设备,应用程序需要判断是否要连接。一旦一个周边设备被选择,中心设备会连接到到使用直接连接建立过程direct connection establishment procedure。

有选择性的连接建立过程

这个过程和一般连接建立过程是一样的,不一样的地方是中心设备有一个白名单来过滤周边设备。

直接连接建立过程

这个过程会使用链路层来初始化一个连接到一个特定的周边设备,使用蓝牙地址来识别。

中心设备有2种方法来建立连接,一个是首先进行扫描,然后通过指定蓝牙地址直接连接到一个设备上。第二种方法是掉过扫描阶段,使用控制器来选择一个设备进行连接。

 

其他的GAP过程

名字发现过程 Name discovery procedure

在广播包中,可以携带很多不同类型的用户数据,比如设备名称。设备名称使用UTF-8格式保存,来描述一个设备。有时,这个过程也在GATT传输时完成

连接参数更新过程 Connection parameter update procedure

每一个连接都需要中心设备来设置一些的参数来控制连接过程。这些参数对于控制负载平衡以及吞吐量,店里消耗等内容是非常关键的。而且这些参数是可以被修改的。中心设备可以设置参数,如果周边设备想要修改参数,可以通过对中心设备提出请求的方式来完成。当然,中心设备可以拒绝也可以接收这些请求。

终止连接的过程 Terminate connection procedure

这个过程是自解释的并且是完全对称的。中心设备或者周边设备可以在任何时候终止连接。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值