文档章节

蓝牙GAP-通用接入规范

h
 houj
发布于 2015/01/12 12:20
字数 1549
阅读 270
收藏 1

蓝牙GAP-通用接入规范


  BLE协议栈的GAP层负责处理设备的接入方式和过程,包括设备发现,链路建立,链路终止,启动安全功能,设备配置。
  GAP层通常扮演以下四种角色中的一种:
广播者 广告发送者,不是可连接的设备
观察者 扫描广告,不能够启动连接
外围设备 广告发送者,是可连接的设备,在单一链路层连接时作为一个从机
中央设备 扫描广告启动连接,在单一或者多链路层连接时作为主机,支持三个同时连接

  连接前,外围设备需要先广播,向中央设备通告自己的存在,主要有这几个参数:
广播间隔   单位0.625ms,广播快,容易被中央设备发现,慢则省电.
广播持续时间   为了省电,可以广播一段时间之后

  在一个典型的蓝牙系统中,外围设备发送具体的广告数据让任何中央设备知道他是一个可连接的设备。广告内容包含设备地址,还可以包含一些额外的额数据,比如设备名称。中央设备接收到广告后发送一个搜索请求给外围设备,外围设备答复一个搜索答复。这就是设备发现的过程,这样中央设备就知道外围设备是一个可连接的设备。中央设备可以发送一个建立连接的请求给外围设备,一个连接情况包含一些连接参数:
连接间隔   在一个BLE连接中跳频机制需要被使用,这样两个设备之间可以在一个特定的通道上进行数据收发,在一个特定的时间之后会跳到一个新的通道上,LL层负责通道切换。这个遇见设备收发数据被称作是连接事件。尽管没有应用程序数据需要收发,两个设备之间仍然会交换链路层数据来保持连接。连接间隔是两个连接事件之间的时间,使用一个单元值为1.25ms的步进。连接间隔从最小值6(7.5ms)到最大值3200(4.0s)。
  不同的应用也许需要不同的连接间隔,一个长时间的连接间隔将会节约更多的能量,因为设备可以在两个连接事件之间睡眠更长的时间。但是他会导致数据发送不及时,如果有数据要发送那么他只能够在下一次连接事件到来时才能被发送。
从机潜伏周期   这个参数描述了从机跳过连接事件的次数。这使外围设备具有一定的灵活性,如果它不具有任何数据传送,它可以选择跳过连接事件,并保持睡眠,从而提供了一些积蓄力量。这一决定取决于外围设备。
监督超时   这是两个成功的连接事件之间间隔的最大值。如果超过这个时间还未出现成功的连接事件,那么设备将会考虑失去连接,返回一个未连接状态。这个参数值使用10ms的步进。监督超时时间从最小10(100ms)到最大3200(32.0s)。同时超时时间必须大于有效连接事件。
有效连接事件时间 = 连接间隔 X (1 + 从机延迟值)
短连接间隔 高功耗,高数据吞吐量,发送等待时间短
长连接间隔 低功耗,低数据吞吐量,发送等待时间长
低或者0潜伏值 从机在没有数据发送的情况下高功耗,从机可以快速的收到主机的数据
高潜伏值 从机在没有数据发送的情况下可以低功耗;从机无法及时收到主机的数据,但主机能及时收到从机的数据 


  在某些情况下,中央设备请求与外围设备建立连接包含连接参数对外围设备而言是不利的。在其他情况下,外围设备可以在连接过程中改变连接参数这个取决于外围设备的应用程序。外围设备可以请求中央设备改变连接参数通过设置连接参数更新请求。这个请求是被协议栈的L2CAP处理的。
  这个请求包含四个参数:最小连接间隔、最大连接间隔、从机延迟、监督超时时间。这些值代表了外围设备针对连接的期望参数,连接间隔是以范围的形式提供的。当中央设备接收到这个请求,他有权利决定是接受还是拒绝这些参数。
  GAP通常还会负责启动BLE连接的安全功能。只有对通过身份验证的连接而言某些数据是可读或可写的。一旦形成一个连接,两个设备可以通过一个过程被称为配对。进行配对时,密钥建立加密和认证的链接。在一个典型的案例,外围设备需要中央设备提供密钥以完成配对过程。这可能是一个固定值,如“000000”,或可能是一个随机生成的值被提供给用户。中央设备发送正确的密钥后,两台设备交换安全密钥加密和验证的链接。
  在许多情况下,相同的中央设备和外围设备将会经常建立连接和断开连接。BLE具有一个安全功能允许两个设备在配对的时候给对方一个长久的安全密钥。此功能称为绑定,使得两个重连设备能够迅速重新确立加密和认证而不需要经过充分的配对过程,只要它们存储长期的密钥信息。

© 著作权归作者所有

h
粉丝 9
博文 81
码字总数 57985
作品 0
长沙
技术主管
私信 提问
[蓝牙] 1、蓝牙核心技术了解(蓝牙协议、架构、硬件和软件笔记)

声明:这篇文章是楼主beautifulzzzz学习网上关于蓝牙的相关知识的笔记,其中比较多的受益于xubin341719的蓝牙系列文章,同时还有其他网上作者的资料。由于有些文章只做参考或统计不足,如涉及...

史迪奇2号
2017/06/11
0
0
Android: Android Bluetooth

Android Bluetooth 一、Android Bluetooth现状 (1)Android2.2版 支持的蓝牙核心版本是Bluetooth 2.0 + EDR。 (2)Android 的蓝牙 使用了BlueZ协议栈,但只实现了 Handset/Handfree和A2DP/...

长平狐
2012/06/20
1K
0
bluetooth 蓝牙协议和标准,配置

Bluetooth 配置文件表达了一般行为,Bluetooth 设备可以通过这些行为与其它设备进行通信。Bluetooth 技术定义了广泛的配置文件,描述了许多不同类型的使用案例。为了使用 Bluetooth 无线技术...

sflfqx
2014/08/07
252
0
蓝牙协议栈

蓝牙协议框架体系基本上就是这个图了,有点乱。 然后,我们先从底层开始分析,主要是由基带层和链路管理层组成。 无线连接(RF)通过2.4GHZ无需申请的ISM频段,实现数据的过滤与传输。 基带层...

xiaocui911
2016/07/25
141
0
Android 蓝牙栈 bluez 使用方法

在现代智能手机领域,蓝牙功能已经显得很常用了,那么Android应用程序开发过程中对于蓝牙怎么开发,今天先给大家介绍Android的蓝牙栈bluez使用方法。 很多开发人员在最新的Android 0.9 SDK中...

无鸯
2011/09/15
3.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

【AngularJS学习笔记】02 小杂烩及学习总结

本文转载于:专业的前端网站☞【AngularJS学习笔记】02 小杂烩及学习总结 表格示例 <div ng-app="myApp" ng-controller="customersCtrl"> <table> <tr ng-repeat="x in names | orderBy ......

前端老手
昨天
9
0
Linux 内核的五大创新

在科技行业,创新这个词几乎和革命一样到处泛滥,所以很难将那些夸张的东西与真正令人振奋的东西区分开来。Linux内核被称为创新,但它又被称为现代计算中最大的奇迹,一个微观世界中的庞然大...

阮鹏
昨天
7
0
【Medium 万赞好文】ViewModel 和 LIveData:模式 + 反模式

原文作者: Jose Alcérreca 原文地址: ViewModels and LiveData: Patterns + AntiPatterns 译者:秉心说 View 和 ViewModel 分配责任 理想情况下,ViewModel 应该对 Android 世界一无所知。...

秉心说
昨天
12
0
重学计算机组成原理(十二) - 异常和中断

1 概览 完好的程序都满足以下特征 自动运行 我们的程序和指令都是一条条顺序执行,不需要通过键盘或者网络给这个程序任何输入 正常运行 没有遇到计算溢出之类的程序错误。 不过,现实的软件世...

JavaEdge
昨天
10
0
程序设计基础(C)第06讲例程

1summing.c /* summing.c -- 根据用户键入的整数求和 */#include <stdio.h>int main(void){ long num; long sum = 0L; /* 把sum 初始化为0 */ int status; p......

树人大学数字媒体吴凡
昨天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部