BLE GAP 协议和 GATT 协议
BLE GAP 协议和 GATT 协议
最近要打算学习 Blufi 协议进行蓝牙配置,其中必然使用 GAP 协议和 GATT 协议,于是进行重新学习一番。
BLE 是一个 Bluetooth SIG 组织颁布的协议,对于使用 BLE 我们开发人员,最关注的是 上层的 GAP 协议和 GATT 协议。
1.1 GAP 和 GATT 有什么不同呢?
- GAP :定义一个 BLE 网络栈的通用拓扑结构。
- GATT:描述关于如何数据在连接中如何传输的细节。
GATT 尤其关注于数据如何被格式化、打包、然后跟据分发规则去在网络中发送。属性协议(ATT)与GATT紧密相连,那么GATT 处于 ATT 的上层,使用 ATT 去描述数据如何在两个连接的设备中交换。
1.2 GAP (Generic Access Profile)
GAP 即通用存取协议,BLE设备可以使用两种机制与外部世界通信:广播或连接。GAP 就是用来定义设备跟设备之前是用过广播呢,还是连接去通信的。
下面 GAP 将回答 怎么连接或广播? 和 连接后 GAP 可以做什么?两个问题。
怎么连接或广播?
一个设备通过选择 GAP 中指定的一个角色去连接到一个 BLE 网络。
广播: 这个过程中,设备没有连接。包含广播者和观察者两种角色。
- 广播者:一个设备广播一些信息。
- 观察者:一个设备接受广播者的信息。
连接:设备之间必须连接,一般生产环境中更常用。
外设:一个设备广播他的存在,使得中心设备能与它建立连接。在建立连接后,设备不再广播数据给其他中心设备,保持连接。
- 外设是低功耗的因为他们只定期发送一些 beacons,然后中心设备对其进行响应。
- Bean 是一种 BLE 外设。
中心设备:一个设备通过监听包,去连接一个外设,一个中心可以连很多个外设。
- 当一个中心设备想要连接外设的时候,它发一个连接请求给外设。如果外设接受了,那么就建立了连接。
- 你的电脑在连接 Bean 的时候就是一个中心设备。
连接后能做什么?
中心设备可以修改连接参数:中心设备创建一些连接的参数,中心设备可以更改参数,外设只能通过请求中心设备去更改参数。
外设或中心设备可以中止连接:两者可以主动、或者因为异常而断开连接。
1.3 GATT(Generic Attribute Profile)
类似 GAP,在这一层协议上,我们有两种角色:
- 客户端:发送请求给 GATT 服务器,能够读/写 服务器的数据。
- 服务端:服务端负责存储属性,一旦客户端发起请求,服务端进行回应。
所以,当我们使用 GAP 协议建立了连接,然后就可以使用 GATT 协议进行数据的存取实现不同的义务功能。
BLE GAP 协议和 GATT 协议的更多相关文章
- Bytom BIP-32协议和BIP-44协议
我们知道HD(分层确定性)钱包,基于 BIP-32:多币种和多帐户钱包,基于 BIP-44:最近比原社区的钱包开发者对比原的BIP-32和BIP-44协议有疑问,所以我今天就专门整理了一下该协议的内容 ...
- TCP协议和UDP协议基础介绍
TCP协议和UDP协议区别 标签(空格分隔): TCP,udp TCP的三次握手 TCP被称为可靠的数据传输协议,主要是通过许多机制来实现的其中最主要的就是三次握手的功能,当然,TCP传送数据的机制非 ...
- HTTP协议和SOCKS5协议
HTTP协议和SOCKS5协议 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们平时上网的时候基本上是离不开浏览器的,尤其是搜索资料的时候,那么这个浏览器是如何工作的呢?用的又是 ...
- python 全栈开发,Day33(tcp协议和udp协议,互联网协议与osi模型,socket概念,套接字(socket)初使用)
先来回顾一下昨天的内容 网络编程开发架构 B/S C/S架构网卡 mac地址网段 ip地址 : 表示了一台电脑在网络中的位置 子网掩码 : ip和子网掩码按位与得到网段 网关ip : 内置在路由器中的 ...
- http协议和https协议
内容: 1.http协议介绍 2.https协议介绍 3.http协议和https协议对比 1.http协议介绍 (1)http协议是什么 1 一个传输协议,协议就是双方都遵守的规范. 2 为什么叫超 ...
- (1)基于tcp协议的编程模型 (2)tcp协议和udp协议的比较 (3)基于udp协议的编程模型 (4)反射机制
1.基于tcp协议的编程模型(重中之重)1.1 编程模型服务器: (1)创建ServerSocket类型的对象,并提供端口号: (2)等待客户端的连接请求,调用accept()方法: (3)使用输入输 ...
- (1)网络编程的常识 (2)基于tcp协议的编程模型 (3)tcp协议和udp协议的比较 (4)基于udp协议的编程模型
1.网络编程的常识 目前主流的网络通讯软件有:微信.QQ.YY.陌陌.探探.飞信.阿里旺旺.... 在吗? 1.1 七层网络模型(熟悉) 为了保证数据传递的可靠安全等等,ISO(国际标准委员会组织)将 ...
- http协议及http协议和tcp协议的区别
http是应用层的协议,并且无连接,无状态的协议. http协议的特点: 1.支持c/s模式 2.简单快速:客户端向服务器端传送数据的时候,只需要发送请求方法和路径,请求方法有:post,get,he ...
- Java基础之UDP协议和TCP协议简介及简单案例的实现
写在前面的废话:马上要找工作了,做了一年的.net ,到要找工作了发现没几个大公司招聘.net工程师,真是坑爹呀.哎,java就java吧,咱从头开始学呗,啥也不说了,玩命撸吧,我真可怜啊. 摘要: ...
随机推荐
- python-多任务编程05-协程(coroutine)
协程是python个中另外一种实现多任务的方式,只不过比线程更小占用更小执行单元(理解为需要的资源). 为啥说它是一个执行单元,因为它自带CPU上下文.这样只要在合适的时机, 我们可以把一个协程 切换 ...
- java实现单链表的增删改以及排序
使用java代码模拟单链表的增删改以及排序功能 代码如下: package com.seizedays.linked_list; public class SingleLinkedListDemo { ...
- Java基础(二)流程语句与数组
Java流程语句详解:https://www.cnblogs.com/jiajia-16/p/6008200.html Java数组详解:https://www.cnblogs.com/jiajia- ...
- Python编程导论第2版|百度网盘免费下载|新手学习
点击下方即可免费下载 百度网盘免费下载:Python编程导论第2版 提取码:18g5 豆瓣评论: 介绍: 本书基于MIT 编程思维培训讲义写成,主要目标在于帮助读者掌握并熟练使用各种计算技术,具备用计 ...
- xctf-pwn pwn200
刚看完题目觉得和前面的level3差不多,只是没有给libc而已... 看完大佬的exp之后整个人都不好了.....果然我还是太菜了 32位开了NX sub_8048484,read函数,明显的栈溢出 ...
- 修改python默认版本
查看默认Python版本 python -V 1.安装gcc,用于编译Python源码 yum install gcc 2.下载源码包,https://www.python.org/ftp/pytho ...
- 为PhpStorm添加Laravel 代码智能提示功能
php artisan clear-compiled //清除bootstrap/compiled.php php artisan ide-helper:generate //为 Facades 生成 ...
- Day01_搭建环境&CMS服务端开发
学成在线 第1天 讲义-项目概述 CMS接口开发 1 项目的功能构架 1.1 项目背景 受互联网+概念的催化,当今中国在线教育市场的发展可谓是百花齐放.如火如荼. 按照市场领域细分为:学前教育.K12 ...
- Day11_基本搜索
学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"乐优商城"获取视频和教程资料! b站在线视频 0.学习 ...
- Python Tuple(元组) tuple()方法
描述 Python 元组 tuple() 函数将列表转换为元组.每组词 www.cgewang.com 语法 tuple()方法语法: tuple( iterable ) 参数 iterable -- ...