ble原理(1)蓝牙ble协议知识
1蓝牙技术联盟
2:窝窝科技
3.网友参考1
1:协议体系结构图
2:协议部分说明
控制器:基本是一个物理设备,能发射和接收无线电信号,且如何能将这些信号翻译成携带信息数据包
主机: 是一个软件栈,管理两台以上 的设备间如何进行通信,以及如何利用无线电同时提供几种服务
应用程序:则使用软件栈,进而是控制器,来实现用户实例功能
3:物理层介绍------无线电波产生 0-1
原理:采用2.4GHZ无线电波。本质上,只是传输和接收电磁辐射,采用
高斯频移键控调制(GFSK)
频段:2402MHz-2480MHz,各信道宽度
2MHz
信道:40个RF信道,
广播信道3个:37、38、39
数据信道37,动态自适应数据信道
物理层比特率为1Mbit/s,每个符号1比特, 2m
发射功率规定最大发射功率为+10dBm,最小发射功率不能低于 -20dBm
GFSK是把调制前数据经高斯低通滤波器滤波后,再进行FSK调制的调制方式。它具有恒幅包络、功率谱集中、频谱较窄等优点。协议同时规定,数字1将会被调制成正频率偏移,而数据0将会被调制成负频率偏移
3.1 广播通道
4 链路层----数据详细定义
作用:链路层定义了两个设备如何利用无线电传输信息,包含了报文、
广播、数据通道的详细定义,也规定了发现其他设备的流程、
广播的数据、连接建立、连接管理以及连接中的数据传输
信道:广播信道和数据信道
报文格式:广播报文和数据报文。带有标签数据,定义了由谁发出该谁接收
4.1 链路层的状态
Master role:主设备,在通信建立的过程中起主导作用发起连
接建立
Slave role: 从设备,在通信建立的过程中发送广播消息设
备会作为从设备。
链路层的状态有如下几种:
(1) Standby:在此状态下链路层不收发任何数据包,任何其它
状态都可以转换为该状态。(就绪态)
(2) Advertising:链路层在此状态下将会发送广播消息,或者处于侦听
广播响应消息。
(3) Scanning:在这种状态下,链路层会扫描是否有广播消息。
(4) Initiating:链路层在这种状态会侦听广播信道消息,也会
响应广播消息从而启动连接建立。
(5) Connection:设备建立连接之后就进入connection状态
5 主机控制器接口-----------两层之间接口层
定义主机和控制器 如何进行信息数据交互。它允许主机将命令和数据发送给控制器,控制器将事件和数据发送到主机
HCI 就是一个接口,这个接口是连接主机和控制器的,既然是连接两个东西的接口,那么必定是控制器有部分 HCI 的程序,主机也有部分 HCI 的程序
有两个独立的部组成:逻辑接口和物理
1:逻辑接口定义了命令和事件以及相关的行为。
(1). HCI信道:会提供一个连接后的句柄,用来标识信道和数据
(2). 命令数据包:向控制器传命令数据包,来执行命令
:2:而物理接口则是具体的通过硬件实现具体传输的接口。
常见的物理接口包括USB/SDIO/UART ,但是对于低功耗而言,
由于usb需要大量硬件,而且不属于低功耗的接口,所以一般ble不用usb
5.1主机发起连接----控制器
6 逻辑链路控制和适配协议--------数据疏导员
L2CAP 相当于一个交通疏导员,控制器的数据来到了主机层,相当于一辆车来到了一个十字路口,
驾驶员决定自己是直行还是左右拐弯(控制层的数据头中包含了数据是什么数据即包含了流向),
车往哪走需要看交通灯(数据到了 L2CAP 层后就由 L2CAP 层进行疏导,根据头部信息判断流向,再进行数据传输)。
信道独立的。该层只用固定信道:一个用于信令信道,一个用于安全管理
7安全管理器协议-----安全管理员
作用:实现简单配对和秘钥分发协议。配对用认证方式实现的,是一个获取对方设备信任的过程。
之后就是链路的加密和加密和秘钥分发。
从设备将秘钥共享给主设备,当这两个设备在重新连接时,就可以很快认证彼此身份。
8 属性协议(ATT)------定义数据结构
ATT(Attribute Protocol)属性层是GATT和GAP的基础,它定义了BLE协议栈上层的数据结构和组织方式
ATT层定义了属性的内容,规定了访问属性的方法和权限
属性是一个数据结构,它包括了数据类型 和 数据值
属性包括三种类型:服务项、特征值和描述符。服务项包含一个或多个特征值,特征值包含一个或多个描述符,
多个服务项组织在一起,构成属性规范(Attribute Profile)
8.1 属性数据结构
属性数据结构包含:句柄、类型、属性值、权限
句柄:数据地址,某个属性值查询的地址
类型:用以区分当前属性是服务项或是特征值等,它用UUID来表示
属性值:是存放数据的地方
权限: 只读、只写、可读写。加密、不加密 ,需要认证、无需认证
需要授权、无需授权
9 通用属性规范(GATT)-----服务器数据(profile)
定义如何去被发现与使用服务、特性与描述符的方法,如何发现首要服务,
所有次要服务,次服务下的所有特征值。定义服务器和客户端如何相互发送符合标准的消息进行通信
10 通用访问规范(GAP)----定义访问设备
作用:它在用来控制设备连接和广播。GAP 使你的设备被其他设备可见,并决定了你的设备是否可以或者怎样与合同设备进行交互。例如 Beacon 设备就只是向外广播,不支持连接,小米手环就等设备就可以与中心设备连接
定义四类角色;
1: 广播者:广播报文设备
2:观察者:扫描设备
3:外围设备:可以利用可连接广播报文进行广播的设备,
一旦连接就成为从设备
4:中央设备:向外围设备发起连接设备连接后变成主设备
11用户应用层
应用层规约定义了三种类型:特性、服务和规范。这些规约构建在通用属性规范上,
通用属性规范为特性和服务定义了属性分组,应用程序为使用这些属性组定义了规约,
就是我们用户怎么去自己定义去使用ble的属性表。
可以加入QQ群:687360507
与大伙沟通交流,技术在于分享而进步
ble原理(1)蓝牙ble协议知识相关推荐
- 泰凌微8258入门教程 BLE篇②——BLE Single Connection 蓝牙BLE 软件架构
文章目录 一.前言 二.标准BLE软件架构 三.标准BLE数据流 四.Telink BLE 软件架构 一.前言 教程目录大纲请查阅:泰凌微8258入门教程--导读 开发环境搭建请查阅:泰凌微8258入 ...
- 蓝牙BLE之系统学习
文章目录 1 蓝牙BLE简介 2 蓝牙BLE概述 2.1 ISM Band 2.4GMHz 3 蓝牙BLE协议架构 3.1 Physical Layer 3.2 Link Layer 3.2.1 Ph ...
- 蓝牙BLE(BlueTooth BLE)入门及爬坑指南
前言 最近比较忙,两三周没有更新简书了,公司正好在做蓝牙BLE的项目,本来觉得挺简单的东西从网上找了个框架,就咔咔地开始搞,搞完以后才发现里面还有不少坑呢,故而写一篇蓝牙BLE入门及爬坑指南,旨在帮助 ...
- 蓝牙技术|蓝牙BLE促进物联网资产跟踪的发展
蓝牙BLE连接相对靠近的设备,同时设备消耗的能量比传统蓝牙低10倍.这是一种节能.低成本的将数据从一系列传感器传输到中央网关的方式.然后网关利用WiFi.手机信号塔或两者将数据发送给决策者,无论他们身 ...
- 物联协议整理——蓝牙BLE
最近公司很多物联设备都使用BLE蓝牙和ZigBee通信,中间对设备功耗要求很高,补充下相关知识. 蓝牙协议栈 PHY层(Physical layer物理层).PHY层用来指定BLE所用的无线频段,调制 ...
- 蓝牙 BLE 协议学习: 有关概念介绍
背景 在学校内就用过蓝牙技术参加过比赛(并拿了奖):而蓝牙作为物联网中比较常见的协议,有必要进行深入的学习.此后的文章会以 ble(v4.0) 进行学习. 介绍 蓝牙技术最初由电信巨头爱立信公司于 1 ...
- 【Funpack】低功耗蓝牙 BLE 协议架构
想要开发蓝牙应用,了解蓝牙协议架构是必不可少的.本文以低功耗蓝牙 BLE 为例,简要介绍 BLE 蓝牙协议架构,帮助开发者快速了解蓝牙协议概况. BLE 协议分层 BLE 协议栈主要由如下几部分组成: ...
- 经典蓝牙与低功耗蓝牙BLE开发基础知识:服务、特征、属性、UUID
经典蓝牙和低功耗蓝牙BLE的区别 蓝牙大致被认为是1.0 2.0 3.0 4.0版本,不过现在已经不再用版本号区分蓝牙了,蓝牙1.0~3.0都是经典蓝牙,在塞班系统就已经开始使用了.而蓝牙4.0开始就 ...
- 从空中截获BLE数据包看蓝牙5协议流程【第四部分:Ellisys蓝牙5连接分析】
---------------------------------------------------------------------------------------------------- ...
- 蓝牙技术基础知识总结笔记1 - 蓝牙版本及 4.0 和 BLE 的关系等
1.蓝牙技术的起源 蓝牙的创始人是瑞典爱立信公司. 爱立信早在 1994 年就已进行研发. 1997 年,爱立信与其他设备生产商联系,并激发了他们对该项技术的浓厚兴趣. 1998 年 2 月,5 个跨 ...
最新文章
- 深度学习中的线代基础
- node中的流的介绍(Stream)
- HTML5 Canvas 绘制佛教万字
- 计算机项目管理报告,《软件项目管理》报告.doc
- 寒冬悟道者马云:阿里巴巴逢单出击(4)
- Netty 简单样例分析(io传输的框架)
- 计算机中的数(一):数在计算机中的表示
- centos7下载elasticsearch7版本(超详细)
- 记一次生产数据库系统内存使用过高的案例
- bdc注意清空bdcdata【否则bdc可能…
- 最近在我的python博客上花时间!
- sublime html乱码,HTML5 sublime 编码出现乱码怎么处理
- 多个漏洞可导致施耐德电气继电器遭重启或设备遭接管
- C#中public函数的用法_python中的lambda函数用法
- 无法启动调试--未安装 Silverlight Developer 运行时。请安装一个匹配版本
- python 老师和父亲_父亲节丨有个当老师的爸爸是怎样的体验
- ios真机中Text组件出现多余边框
- latex 编译缺少STXingkai字体
- 网络安全学习路线(顶级白帽黑客)
- word中html在哪,Win10 word模板路径在哪?Win10如何修改word模板路径?