BLE技术是BluetoothSIG规定的一套通信协议,在协议变成具体的代码之前,都只存在文档中,TI、Nordic、CSR等厂商,根据SIG发布的BLE技术协议,配合自身的芯片开发了一整套源码,并且这套源码经过了SIG的测试,服务BLE协议。这套源码就叫做协议栈,协议栈是协议的实现。不同的芯片厂商都有各自的协议栈,而这不同的协议栈,BluetoothSIG是不允许厂商开源的,所以,无论是TI的或者NORDIC的BLE芯片资料中协议栈都是做成库的形式提供,只开放部分的API层,但实际对我们开发终端产品来说足以。

BLE协议栈的构成

控制器部分(Controller):

物理层(PHY):RF特性,运行在2.4GHz ISM band,40频道2MHz的通道间隙,3个广播通道,37个自适应自动调频通道;

链路层(LL):RF控制层,控制芯片工作在

Standby            准备

Advertising     广播

Scanning           监听

Initiating           发起连接

Connected      已连接

这五个状态中的一种;

控制接口层(HCI):通信层,在Host和Controller之间提供一个标准化的接口,该层可以由软件api实现或者使用硬件接口uart,spi,usb来控制;

主机部分(Host):

逻辑链路控制及自适应协议层(L2CAP):相当于快递,将数据打包;

安全管理层(SM层):安全服务层,提供配对和秘钥的分发,实现安全连接和数据交换;

属性协议层(ATT):允许设备向另外一个设备展示一块特定的数据,称之为“属性”,展示“属性”的设备称为服务器,与之配对的设备成为客户端;链路层状态(主机从机)与设备的ATT角色是相互独立的;

通用访问配置文件层(GAP):

通用属性配置文件层(GATT):定义了使用ATT的服务框架,规定了配置文件profile的结构;

BLE广播事件:

在一个广播事件中,广播包会分别在三个广播通道中被发送一次(37,38,39);

BLE广播间隔:

是指两次广播事件之间的最小时间间隔,一般取值范围在20ms-10.24S之间,链路层会在每次广播时间期间产生一个随机广播延时时间(0ms-10ms)

BLE扫描事件:

每次扫描设备打开Radio接收器去监听广播设备,这样称为一个扫描事件,

扫描频宽比,Duty-Cycle,参数:

扫描时间:扫描设备的扫描频度;

扫描窗口:每次扫描事件持续的时间;

BLE发起连接:

发送一个连接请求,连接请求包括一套为从设备准备的连接参数,安排连接期间发生的通道和时间。如果广播设备接收了连接,两个设备会进入连接状态,发起方会称为Master(主机),而广播方会称为Slave(从机)。

BLE连接参数:

通道映射,指示连接使用的频道。

调频增量,一个5~16之间的随机,参与通道选择的算法。

连接间隔,1.25ms的倍数,在7.5ms~4s之间。

监督超时,10ms的倍数,100ms~32s之间,必须大于(1+slaveLatency)*ConnInterval

从机潜伏,允许设备跳过的最大连接次数,0~499之间,有效的连接间隔必须小于32s,不能超过(SupervisionTimeout/connInterval)-1

BLE连接事件:

所有的通信都发生在两个设备的连接事件期间;

连接事件周期的发生,按照连接参数指定的间隔联系     (连接间隔)

每个事件发生在某个数据通道(0~36)                                 (通道映射)

调频增量参数决定了下次连接时间发生的通道                   (调频增量)

在每个连接时间期间,Master先发送,Slave会在150us之后做出回应,即使一个连接事件发生(或两者),双方都没有数据发送(例外情况是从设备潜伏使能),这允许两个设备都承认对方仍然存在并保持活跃的连接;

从机的潜伏:

潜伏,Slave如果没有数据发送,允许跳过连接事件。

连接参数的设定:

☆短间隔的连接事件:

-两设备都会以高能耗运行

-高数据吞吐量

-发送等待时间短

☆长间隔的连接事件:

-两设备都会以低能耗运行

-低数据吞吐量

-发送等待时间长

☆低或者0潜伏值:

-从设备以高能耗运行

-从设备可以快速的收到来自中心设备的数据

☆高潜伏值:

-外围设备在没有数据发送的情况下可以低能耗运行

-外围设备无法及时收到来自中心设备的数据

-中心设备能及时收到来自外围设备的数据

终止连接:

监视超时参数都指定了两个数据包之间的最大时间跨度。监视超时时间必须大于有效连接间隔而小于32s。Slave和master双方都维持着自己的监视超时计时器,在每次收到数据包时清零。如果连接超时,设备会认为连接丢失,并且退出连接状态,返回广播、扫描或者待机模式。

BLE简介及连接过程相关推荐

  1. (十六)深入理解蓝牙BLE之“建立连接过程和连接失败分析”

    目录 建立连接过程: 连接失败分析: 连接失败原因1: 连接失败原因2:

  2. WFD简介和连接过程

    WiFI Display(WFD)是WiFI Alliance 开发出的一种规范,使多媒体设备之间建立和维持一个基于WiFi的连接,并且利用这个连接推进视频/音频的在目标设备的呈现播放. 1 WFD简 ...

  3. ble连接过程建立_BLE配对绑定过程梳理

    (一)BLE SM为以下三种procedure提供支持: 1. Pairing; 2. Bondig; 3. Encryption Re-establishment; 区别于传统蓝牙的配对过程,BLE ...

  4. 蓝牙BLE的连接过程,自动连接过程

    BLE连接,再次连接 BLE的第一次连接 1 蓝牙连接过程中的角色 2 连接过程中两个角色对应的状态 ble蓝牙的连接过程 二. 再次自动连接 1 二次连接的特点: BLE的第一次连接 所谓连接,分为 ...

  5. 【智能优化算法】基于闪电连接过程优化算法求解单目标优化问题含Matlab源码

    1 简介 闪电连接过程算法( Lightning Attachment Procedure Optimization,LAPO)是受自然界中闪电上迎先导与下行先导连接过程的启发,于2017年提出的一种 ...

  6. Android ble连接过程,Android BLE的一些基础知识及相关操作流程 - 全文

    前言: 本文主要描述Android BLE的一些基础知识及相关操作流程,不牵扯具体的业务实现,其中提供了针对广播包及响应包的解析思路,希望对正在或即将面临Android BLE开发的伙伴们有所引导. ...

  7. ble连接过程建立_BLE4.0教程一 蓝牙协议连接过程与广播分析

    1.蓝牙简介 什么是蓝牙4.0 蓝牙无线技术是使用范围最广泛的全球短距离无线标准之一,蓝牙4.0版本涵盖了三种蓝牙技术,即传统蓝牙.高速蓝牙和低功耗蓝牙技术,将三种规范合而为一.它继承了蓝牙技术在无线 ...

  8. IoT:BLE4.0教程一 蓝牙协议连接过程与广播分析

    IoT:BLE4.0教程一 蓝牙协议连接过程与广播分析 1.蓝牙简介 什么是蓝牙4.0 蓝牙无线技术是使用范围最广泛的全球短距离无线标准之一,蓝牙4.0版本涵盖了三种蓝牙技术,即传统蓝牙.高速蓝牙和低 ...

  9. BLE4.0教程一 蓝牙协议连接过程与广播分析

    1.蓝牙简介 什么是蓝牙4.0 蓝牙无线技术是使用范围最广泛的全球短距离无线标准之一,蓝牙4.0版本涵盖了三种蓝牙技术,即传统蓝牙.高速蓝牙和低功耗蓝牙技术,将三种规范合而为一.它继承了蓝牙技术在无线 ...

最新文章

  1. 【软件工程】技术规格说明书
  2. 信息系统项目管理师-信息系统项目管理基础核心知识点思维脑图
  3. 【译】 Sparky: A Lightning Network in Two Pages of Solidity
  4. Tomcat——访问错误[Invalid character found in method name. HTTP method names must be tokens]解决方案
  5. Java 注解 Annotation
  6. 20135313_exp5
  7. android所有颜色代码
  8. mysql kafka binlog_为什么使用kafka处理mysql binlog?
  9. html鼠标滚动图片折叠,鼠标滑过图片3D折叠效果
  10. 分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(2月6日-2月12日)
  11. 信息学奥赛一本通(1259:【例9.3】求最长不下降序列)
  12. realme GT大师版核心参数曝光:同样一亿像素主摄
  13. 雷军:小米11的屏幕是小米手机有史以来最贵且最好的屏幕
  14. GB28181协议中的事件系统设计
  15. C语言基础教程之强制类型转换
  16. android ndk r10d.rar,[Android] 环境配置之Android Studio开发NDK
  17. 三维家可以导入别人的方案吗_酷家乐怎么用别人的模型(如何从酷家乐软件做的方案导入到另一个酷家乐账号上)...
  18. 计算机 在职硕士报考条件,2022在职硕士-在职研究生报考条件-中公考研
  19. LTspice绘制方波
  20. linux格式化只读u盘,linux下FAT32格式u盘只读的问题及解决方法

热门文章

  1. golang包管理解决之道——go modules初探
  2. 关系数据库是如何工作的
  3. Spring Boot 性能优化
  4. Linux:nice函数
  5. 计算机工程与科学电话,【计算机工程与科学杂志社】计算机工程与科学杂志社编辑部...
  6. 关键帧动画html例子,Bounce.js 是一个漂亮的CSS3关键帧动画生成工具和类库_前端开发者...
  7. 环境监控告警系统之TIM即时消息推送部署(二)
  8. 成功解决⑧NVIDIA安装程序无法继续 此NVIDL驱动程序与此Windows版本不兼容。 此图形驱动程序无法找到兼吝的图形硬件。
  9. 成功解决r2_score函数输出值始终为0的情况
  10. DL之CNN:利用CNN(keras, CTC loss, {image_ocr})算法实现OCR光学字符识别