GAP Profile: Generic Access Profile ,该Profile保证不同的Bluetooth产品可以互相发现对方并建立连接

GAP定义了蓝牙设备如何发现和建立与其他设备的安全/不安全连接。
它处理一些一般模式的业务(如询问、命名和搜索)和一些安全性问题(如担保) ,同时还处理一些有关连接的业务(如链路建立、信道和连接建立) 。
GAP规定的是一些一般性的运行任务。因此,它具有强制性,并作为所有其它蓝牙应用规范的基础

1 GAP协议栈                                              

GAP有如下四个目的 
- Profile Role 
- 可发现模式和过程 
- 连接模式和过程 
- 安全模式和过程

2 Profile Role                                            

在BLE下,GAP Role有四种 
- Broadcaster : 发送advertising events的设备(有Transmitter, 可能有Receiver) 
- Observer    : 接收advertising events的设备(可能有Transmitter, 有Receiver) 
- Peripheral  : 物理链路上接受连接的设备, 在LL层Connection State为Slave(有Transmitter和Receiver) 
- Central     : 物理链路上发起连接的设备, 在LL层Connection State为Master(有Transmitter和Receiver)

3 用户接口                                              

用户可配置的参数如下 
- Bluetooth Device Address : BD_ADDR 
- Bluetooth Device Name    : the user-friendly name 
- Bluetooth Passkey        : Bluetooth PIN 
- Class of Device          : 设备发现阶段用于指示设备类别和支持的设备类别

4 模式                                                

发现模式(Discoverablity Modes) 
- Non-discoverable Mode 
- Discoverable Mode 
- Limited discoverable Mode 
- General discoverable Mode

连接模式(Connectability Modes) 
- Non-connectable Mode 
- Connectable Mode

配对模式(Bondable Modes) 
- Non-bondable Mode 
- Bondable Mode

5 安全                                                

5.1 认证(Authentication)

认证过程,描述了两个蓝牙设备进行LMP认证和LMP配对的一般过程。过程如下:

5.2 安全模式

安全模式描述了Channel连接建立过程中的涉及的Secure问题

安全模式大体上可分为两种Legacy Security Modes(1、2、3)和Security Mode 4 ,
Legacy Security Modes用于Controller/Host不支持SSP(Secure Simple Pairing)

注意: 设备可能同时支持Security Mode 2(兼容不支持SSP设备)和Security Mode 4

详细有如下四种 
- Security Mode 1 : Non-secure 
- Security Mode 2 : Service level enforced security 
- Security Mode 3 : Link level enforced security 
- Security Mode 4 : Service level enforced security

6 Idle Mode Procedures                                      

描述了发起方Inquiry和Discovery的过程

- General Inquiry 
- Limited Inquiry 
- Name Discovery 
- Device Discovery 
- Bonding

7 Establishment Procedures                                    

进行下面过程之前需要Discovery过程提供远端设备如下信息

基本信息 
- DB_ADDR、Device Access Code 
- System Clock 
- Page Scan Mode

附加信息 
- The Class of device 
- The Device name 
- The supported Service Classes

有如下三种 
- Link Establishment 
- Channel Establishment 
- Connection Establishment

8 BLE操作模式和过程                                         

在LE物理层通道上可能同时存在多个模式和过程

- Broadcast mode and observation procedure 
- Discovery modes and procedures 
- Connection modes and procedures 
- Bonding modes and procedures

====================== 华丽的分割线 =========================

笔者能力有限,对于GAP目前只能了解这么多 
规范中有非常完整的描述 
见Core System Package[Host volume]     -Part C(Generic Access Profile)

Bluetooth GAP介绍的更多相关文章

  1. Bluetooth GATT介绍

    目录 1. 介绍 2 内容 2.1 Configured Broadcast 2.2 GATT Profile Hierarchy 3 Service Interoperability Require ...

  2. Bluetooth ATT介绍

    目录 1 介绍 2 详细内容 2.1 Attribute Type 2.2 Attribute Handle 2.3 Attribute Handle Grouping 2.4 Attribute V ...

  3. Bluetooth LMP介绍

    目录 1. 介绍 2. 数据包格式(Packet Format) 3. Procedure Rules 4. 通用回应消息(General Response Messages) 5. 设备特性(Dev ...

  4. Bluetooth Baseband介绍

    目录 1. 概述 1.1 Clock(时钟) 1.2 寻址方式 2. 物理信道(Physical Channels) 3. 物理链路(Physical Links) 4. 逻辑传输层(Logical ...

  5. Bluetooth HFP介绍

    目录 1. 介绍 1.1 目的 1.2 使用场景 1.3 依赖关系 1.4 协议栈 1.5 角色 2. 应用层 3. 空白章节 4. 互操作性要求 4.1 介绍 4.2 Service Level C ...

  6. Bluetooth RFCOMM介绍

    目录 1. 介绍 2. 服务概述 2.1 RS-232控制信号 2.2 Null Modem Emulation 2.3 多串口仿真 3. 服务接口描述 4. RFCOMM帧类型 5. RFCOMM帧 ...

  7. Bluetooth HCI介绍

    目录 1. HCI功能 2. HCI Packet 1. HCI Command 2. HCI Event 3. HCI Data 3. HCI传输层 HCI, 主机控制接口(Host Control ...

  8. Bluetooth L2CAP介绍

    目录 1. 通用操作 1. L2CAP Channel 2. 设备间操作 3. 层间操作 4. 操作模式 2. 数据包格式(Data Packet Format) 1. B-Frame 2. G-Fr ...

  9. Bluetooth SDP介绍

    目录 1. 概念 2. 服务记录(Service Record) 3. 服务属性(Service Attribute) 4. 服务类(Service Class) 5. 服务查找 5.1 UUID 5 ...

随机推荐

  1. 分享Kali Linux 2016.2最新镜像201609

    分享Kali Linux 2016.2最新镜像20160919   Kali Linux官方继9月9日发布Kali Linux 2016.2的第36周镜像W36后,9月19日发布了Kali Linux ...

  2. MVC ViewEngineResult实际上是一种设计

    概述 MVC中, IView代表一个视图,最后是要表现为HTML或者其他的HttpResponse的应答流的: IViewEngine提供了类似工厂的作用或者提供器的作用,以返回一个视图. OO的视觉 ...

  3. android Intent.ACTION_SEND

    ACTION_SEND intent 可以把自己的应用添加到系统的发送(分享)列表中. <intent-filter> <action android:name="andr ...

  4. linux eclipse cdt make error 127

    不知道为啥,copy原来的eclipse环境到新的地方后,编译总是出错: make:*** error 127 解决方案是:属性Properties---C++编译 c++build---build ...

  5. Underscore.js 中 _.throttle 和 _.debounce 的差异

    两个方法都是用来控制事件的频率的,在mousemove,resize等这种高频率触发事件中,控制其响应频率可以明显提高程序的流畅性,减少资源的占用. 通过分析其源代码: _.throttle方法源码 ...

  6. js html5推送 实例

    <!DOCTYPE html>   <html>   <head>   <title>Simple Webkit notification exampl ...

  7. silverlight 跨域访问 wcf

    先介绍一下我的测试项目,我用flash和silverlight一同来调用一个webservice,一个flash客户端,一个silverlight客户端,一个web项目来host flash和silv ...

  8. 用edtftpj实现Java FTP客户端工具

    edtftpj是一个java FTP工具包,使用非常方便,感觉比Apache的好用,但Apache更灵活.edtftpj有多种版本,分别是java..net和js版本.对于Java版的有一个免费版本. ...

  9. HTML5怎样在网页中使用摄像头功能

    怎样在网页中使用摄像头,html5越来越多的使用到实际工作中,那么他怎样调用摄像头呢进行视频聊天,视频监控等活动呢,今天为大家抛砖引玉,教大家怎样实现怎样利用html5实现摄像头视频监控功能.废话不多 ...

  10. 如何"格式化"用过的磁带,让他被新磁带机重复利用

    1. 2.  套用翁磊的话: 勾上表示和之前的磁带信息进行协商(但是会失败), 不勾则表示强行擦除.