Bluetooth GAP介绍
目录
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介绍的更多相关文章
- Bluetooth GATT介绍
目录 1. 介绍 2 内容 2.1 Configured Broadcast 2.2 GATT Profile Hierarchy 3 Service Interoperability Require ...
- Bluetooth ATT介绍
目录 1 介绍 2 详细内容 2.1 Attribute Type 2.2 Attribute Handle 2.3 Attribute Handle Grouping 2.4 Attribute V ...
- Bluetooth LMP介绍
目录 1. 介绍 2. 数据包格式(Packet Format) 3. Procedure Rules 4. 通用回应消息(General Response Messages) 5. 设备特性(Dev ...
- Bluetooth Baseband介绍
目录 1. 概述 1.1 Clock(时钟) 1.2 寻址方式 2. 物理信道(Physical Channels) 3. 物理链路(Physical Links) 4. 逻辑传输层(Logical ...
- Bluetooth HFP介绍
目录 1. 介绍 1.1 目的 1.2 使用场景 1.3 依赖关系 1.4 协议栈 1.5 角色 2. 应用层 3. 空白章节 4. 互操作性要求 4.1 介绍 4.2 Service Level C ...
- Bluetooth RFCOMM介绍
目录 1. 介绍 2. 服务概述 2.1 RS-232控制信号 2.2 Null Modem Emulation 2.3 多串口仿真 3. 服务接口描述 4. RFCOMM帧类型 5. RFCOMM帧 ...
- Bluetooth HCI介绍
目录 1. HCI功能 2. HCI Packet 1. HCI Command 2. HCI Event 3. HCI Data 3. HCI传输层 HCI, 主机控制接口(Host Control ...
- Bluetooth L2CAP介绍
目录 1. 通用操作 1. L2CAP Channel 2. 设备间操作 3. 层间操作 4. 操作模式 2. 数据包格式(Data Packet Format) 1. B-Frame 2. G-Fr ...
- Bluetooth SDP介绍
目录 1. 概念 2. 服务记录(Service Record) 3. 服务属性(Service Attribute) 4. 服务类(Service Class) 5. 服务查找 5.1 UUID 5 ...
随机推荐
- Memcached GUI工具
1, http://www.junopen.com/memadmin/ 或 https://github.com/junstor/memadmin 帐号和密码都是:admin 在左下的数据读取里面 ...
- 枚举 POJ 2965 The Pilots Brothers' refrigerator
题目地址:http://poj.org/problem?id=2965 /* 题意:4*4的矩形,改变任意点,把所有'+'变成'-',,每一次同行同列的都会反转,求最小步数,并打印方案 DFS:把'+ ...
- Color the Ball[HDU1199]
Color the Ball Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- winform学习之----进程和线程
Process[] pros = Process.GetProcesses();//获取多个进程 foreach(var item in pros) { ...
- Add SSH Key to GitLab on Windows
Download Git for windows Open Git Bash Type in "ssh-keygen -t rsa", and then press Enter b ...
- Solve problem 'SURF' is not a member of 'cv'
SIFT and SURF were moved to nonfree module. You need to add #include <opencv2/nonfree/nonfree.hpp ...
- Odoo Auto Backup Database And Set Linux task schedualer
First ,Write Database Backup Script: pg_dump -Fc yourdatabasename > /home/yourfilepath/yourdataba ...
- shell中的函数、数组
函数定义: 数组:
- [转] - QThread应用探讨
QThread 似乎是很难的一个东西,特别是信号和槽,有非常多的人(尽管使用者本人往往不知道)在用不恰当(甚至错误)的方式在使用 QThread,随便用google一搜,就能搜出大量结果出来.无怪乎Q ...
- Canvas - 气泡
Main.html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> & ...