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协议知识相关推荐

  1. 泰凌微8258入门教程 BLE篇②——BLE Single Connection 蓝牙BLE 软件架构

    文章目录 一.前言 二.标准BLE软件架构 三.标准BLE数据流 四.Telink BLE 软件架构 一.前言 教程目录大纲请查阅:泰凌微8258入门教程--导读 开发环境搭建请查阅:泰凌微8258入 ...

  2. 蓝牙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 ...

  3. 蓝牙BLE(BlueTooth BLE)入门及爬坑指南

    前言 最近比较忙,两三周没有更新简书了,公司正好在做蓝牙BLE的项目,本来觉得挺简单的东西从网上找了个框架,就咔咔地开始搞,搞完以后才发现里面还有不少坑呢,故而写一篇蓝牙BLE入门及爬坑指南,旨在帮助 ...

  4. 蓝牙技术|蓝牙BLE促进物联网资产跟踪的发展

    蓝牙BLE连接相对靠近的设备,同时设备消耗的能量比传统蓝牙低10倍.这是一种节能.低成本的将数据从一系列传感器传输到中央网关的方式.然后网关利用WiFi.手机信号塔或两者将数据发送给决策者,无论他们身 ...

  5. 物联协议整理——蓝牙BLE

    最近公司很多物联设备都使用BLE蓝牙和ZigBee通信,中间对设备功耗要求很高,补充下相关知识. 蓝牙协议栈 PHY层(Physical layer物理层).PHY层用来指定BLE所用的无线频段,调制 ...

  6. 蓝牙 BLE 协议学习: 有关概念介绍

    背景 在学校内就用过蓝牙技术参加过比赛(并拿了奖):而蓝牙作为物联网中比较常见的协议,有必要进行深入的学习.此后的文章会以 ble(v4.0) 进行学习. 介绍 蓝牙技术最初由电信巨头爱立信公司于 1 ...

  7. 【Funpack】低功耗蓝牙 BLE 协议架构

    想要开发蓝牙应用,了解蓝牙协议架构是必不可少的.本文以低功耗蓝牙 BLE 为例,简要介绍 BLE 蓝牙协议架构,帮助开发者快速了解蓝牙协议概况. BLE 协议分层 BLE 协议栈主要由如下几部分组成: ...

  8. 经典蓝牙与低功耗蓝牙BLE开发基础知识:服务、特征、属性、UUID

    经典蓝牙和低功耗蓝牙BLE的区别 蓝牙大致被认为是1.0 2.0 3.0 4.0版本,不过现在已经不再用版本号区分蓝牙了,蓝牙1.0~3.0都是经典蓝牙,在塞班系统就已经开始使用了.而蓝牙4.0开始就 ...

  9. 从空中截获BLE数据包看蓝牙5协议流程【第四部分:Ellisys蓝牙5连接分析】

    ---------------------------------------------------------------------------------------------------- ...

  10. 蓝牙技术基础知识总结笔记1 - 蓝牙版本及 4.0 和 BLE 的关系等

    1.蓝牙技术的起源 蓝牙的创始人是瑞典爱立信公司. 爱立信早在 1994 年就已进行研发. 1997 年,爱立信与其他设备生产商联系,并激发了他们对该项技术的浓厚兴趣. 1998 年 2 月,5 个跨 ...

最新文章

  1. 深度学习中的线代基础
  2. node中的流的介绍(Stream)
  3. HTML5 Canvas 绘制佛教万字
  4. 计算机项目管理报告,《软件项目管理》报告.doc
  5. 寒冬悟道者马云:阿里巴巴逢单出击(4)
  6. Netty 简单样例分析(io传输的框架)
  7. 计算机中的数(一):数在计算机中的表示
  8. centos7下载elasticsearch7版本(超详细)
  9. 记一次生产数据库系统内存使用过高的案例
  10. bdc注意清空bdcdata【否则bdc可能…
  11. 最近在我的python博客上花时间!
  12. sublime html乱码,HTML5 sublime 编码出现乱码怎么处理
  13. 多个漏洞可导致施耐德电气继电器遭重启或设备遭接管
  14. C#中public函数的用法_python中的lambda函数用法
  15. 无法启动调试--未安装 Silverlight Developer 运行时。请安装一个匹配版本
  16. python 老师和父亲_父亲节丨有个当老师的爸爸是怎样的体验
  17. ios真机中Text组件出现多余边框
  18. latex 编译缺少STXingkai字体
  19. 网络安全学习路线(顶级白帽黑客)
  20. word中html在哪,Win10 word模板路径在哪?Win10如何修改word模板路径?

热门文章

  1. unity3d学习笔记-特效(1.粒子系统)
  2. 小型温控系统c语言程序,温度控制的PID算法的C语言程序
  3. 计算机毕业设计springboot基于springboot框架的企业合同管理系统设计与实现
  4. 服务器IO测试(Iozone使用)
  5. mac下Flash cc2014的破解方法
  6. CAD制图软件中如何设置CAD打印样式表(CTB)?
  7. 推荐一款基于.Net Core开发简约漂亮的 WPF UI库
  8. MSA移动安全联盟 获取OAID 异常问题
  9. 纯C语言编程-游戏之Fly Bird
  10. 体育硕士代码_研究生专业代码是什么