WLT8016BLE蓝牙的一些基本概念

一、什么是BLE

  • BLE全称Bluetooth Low Energy,即蓝牙低功耗。蓝牙4.0才支持BLE,蓝牙4.0向下兼容,包括传统蓝牙技术、高速技术和低耗能技术三种规格。主要用于手机与周边设备进行通信,当然也可以用于所有BLE设备之间的通信。使用BLE可以实现AndroidiOS之间的蓝牙通信,而普通蓝牙却不可以。

二、基本术语

  • Profile

Profile其实是蓝牙对应于每一个具体的应用场景以及每一种应用的不同的协议栈,也就是说它其实是实现某种功能对应的自下而上的协议的组合。类似于对于横向协议的纵向组合。Profile定义了设备如何实现一种连接或者应用,你可以把Profile理解为连接层或者应用层,也可以将其理解为“应用场景、功能、使用方式” 。每个profile中会包含多个service,每个service代表从机的一种能力。

  • Service

service可以理解为一个服务,在ble从机中,通过有多个服务,例如电量信息服务、系统信息服务等,每个service中又包含多个characteristic特征值。每个具体的characteristic特征值才是ble通信的主题。比如当前的电量是80%,所以会通过电量的characteristic特征值存在从机的profile里,这样主机就可以通过这个characteristic来读取80%这个数据。

  • Characteristic

characteristic特征值,ble主从机的通信均是通过characteristic来实现,可以理解为一个标签,通过这个标签可以获取或者写入想要的内容。

  • UUID

UUID,统一识别码,我们刚才提到的servicecharacteristic,都需要一个唯一的uuid来标识。

  • MTU

MTU:最大传输单元,指在一个PDU (Protocol Data Unit: 协议数据单元,在一个传输单元中的有效传输数据)能够传输的最大数据量(多少字节可以一次性传输到对方)。

三、ATT协议

ATT(Attribute Protocol) ,属性协议,定义了属性attribute的格式,众多的attributes组合成了一个数据库,蓝牙设备通过这个数据库对外提供服务。

由此可以看出一个attribute是由以下几部分组成:

  • Attribute Handle:访问该attribute的句柄。
  • Attribute Type:该attribute的类型,由UUID标识。
  • Attribute Value:属性值。
  • Attribute Permissions:访问该attribute的权限。

attribute代表什么含义由*GATT(Generic Attribute Profile)*定义。

四、BLE通信协议——GATT

  • GATT协议结构

BLE技术是基于GATT进行通信的,*GATT(Generic Attribute Profile)*是一种属性传输协议,简单的讲可以认为是一种属性传输的应用层协议。它的结构非常简单:

1、Service

  • GATT里,Service是由service definition来定义的。一个service definition必须包含一个service declaration,可以包含一些include definitionscharacteristic definitionsservice declarationattribute格式定义如下:

Attribute Type可以是Primary ServiceSecondary Service,其Attribute Value就是该Service 的 UUID

2、Characteristic

  • 一个characteristic definition必须包含一个characteristic declaration和一个Characteristic Value declaration,可以包含多个characteristic descriptor declaration

2.1、Characteristic declaration

  • attribute格式定义如下:

  • 各字段的大小如下:

  • Characteristic Properties为该Characteristic的属性,常用的由Write, Read, Notify,可能的值如下:

2.2、Characteristic Value declaration

  • attribute格式定义如下:

Attribute Type为该CharacteristicUUID

2.3、Characteristic descriptor declarations

  • Characteristic Value declaration目前一共有6种:

  • Characteristic Extended Properties

  • Characteristic User Description

  • Client Characteristic Configuration

  • Server Characteristic Configuration

  • Characteristic Presentation Format

  • Characteristic Aggregate Format

其中常用的为Client Characteristic Configurationattribute的格式定义如下:

  • Attribute Type固定为0x2902
  • Attribute Value为配置Characteristic的位数据,定义如下:

其中第0 位为Notification的配置位,第1位为Indication的配置位。若想要Server通知该Characteristic,将该描述符的第0位置1 即可。

  • GATT基础知识

    • GATT通信的双方是C/S关系。外设作为GATT服务端*(Server),它维持了ATT(Attribute Protocol)协议的查找表以及servicecharacteristic的定义。中心设备是GATT客户端(Client),它向Server*发起请求。需要注意的是,所有的通信事件,都是由客户端(也叫主设备,Master)发起,并且接收服务端(也叫从设备,Slave)的响应。
    • GATT连接是独占的。也就是一个BLE外设同时只能被一个中心设备连接。一旦外设被连接,它就会马上停止广播,这样它就对其他设备不可见了。当设备断开,它又开始广播。
    • Service、CharacteristicDescriptor均有一个唯一的UUID标识,UUID既有16位的也有128位的。16位的UUID是经过蓝牙组织认证的,是需要购买的,而128位的UUID则可以自定义,当然也有许多通用的UUID

WLT8016:BLE蓝牙的一些基本概念相关推荐

  1. MDK5 nRF BLE(蓝牙低功耗)

    BLE(蓝牙低功耗) 1 什么是蓝牙低功耗? BLE是蓝牙低功耗的简称(Bluetooth Low Energy).BLE技术是低成本.短距离.可互操作的鲁棒性无线技术,工作在免许可的2.4GHz I ...

  2. 轻松易懂arduino低功耗BLE蓝牙通信

    今天我们介绍蓝牙通信的另一种方式--BLE(Bluetooth Low Energy,蓝牙低功耗).         什么是BLE         在<无线通信3:HC05/HC06经典蓝牙BT ...

  3. Android BLE蓝牙4.0开发详解

    这篇博客主要讲解 蓝牙 BLE 的用法.在讲解之前先讲一些概念性的东西,对于之前没接触过蓝牙开发,现在手上又有个蓝牙BLE项目需要做的人,先看下这些概念还是很重要的.因为我之前就是这样,之前没有接触过 ...

  4. BLE蓝牙广播入门(一)

    一.概述 BLE广播是低功耗蓝牙协议最重要的组成部分之一.深入理解如何使用广播可以有效降低蓝牙模块的功率.提高连接速度以及改善连接的可靠性. BLE蓝牙协议一共有三层,分别是应用层,主机层和控制器层. ...

  5. 蓝牙Mesh的基本概念

    蓝牙mesh简介 蓝牙Mesh的基本概念   蓝牙Mesh是基于ble广播进行消息传递的一种蓝牙组网通讯网络,是一种采用网络洪泛的方式无中心.无路由的对等网络.以实现蓝牙设备与蓝牙设备之间的多对多通讯 ...

  6. 【错误记录】BLE 蓝牙搜索失效 ( 关闭了 GPS 定位导致的问题 | 蓝牙串口工具推荐 )

    文章目录 一.报错信息 二.解决方案 三.蓝牙串口工具推荐 一.报错信息 在手机上使用 BLE 蓝牙搜索功能 , 搜索不到蓝牙设备 ; 这种状态下可以根据蓝牙地址连接蓝牙设备 , 但是无法搜索到该设备 ...

  7. Android BLE学习(三):编写自己的 BLE蓝牙读写工具(功能仿照nrf master control panel)

    http://my.csdn.net/lidec 背景 由于nordic官方的nrf master control panel只提供了apk,很多同学学习起来都得自己摸索蓝牙的读写,项目中整理了BLE ...

  8. BLE 蓝牙网关与蓝牙定位

    参考:[IoT]BLE 蓝牙网关与蓝牙定位技术解析 地址:https://blog.csdn.net/liwei16611/article/details/85245109?spm=1001.2014 ...

  9. BLE蓝牙和传统蓝牙的区别

    在移动设备上使用的蓝牙协议大多都是4.0,而蓝牙的4.0又有两个分支,经典4.0蓝牙和BLE4.0蓝牙,经典4.0就是传统的3.0蓝牙升级而成,向下兼容.而BLE4.0蓝牙是一个新的分支,不向下兼容. ...

最新文章

  1. 几种常用的C#排序方法简介
  2. 如何使用NAnt 自动打包DNN模块 之二
  3. 从json到抽取关键词
  4. load xml error什么意思_XML文件解析实践(DOM解析)
  5. Matlab | Matlab从入门到放弃(9)——浮点数取整
  6. python传送带和斐波那契
  7. ASP.NET Core Kestrel部署HTTPS
  8. 网易严选Java开发三面面经:java读文件内容
  9. java修改list中对象的值_Java中List集合的一点总结
  10. rsync+inotify实现实时同步案例详解
  11. 【转】HashMap,ArrayMap,SparseArray源码分析及性能对比
  12. AlphaGo程序出BUG了——第四局观感
  13. socket长连接server c语言,使用socket建立长连接
  14. 从零开始构建嵌入式实时操作系统1——任务切换
  15. echarts中国地图(省市两级经纬度版本)
  16. MTK如何烧录IMEI码(俗称串号)
  17. 遍历上三角或者下三角
  18. python winrar 密码_python+winrar 指令压缩文件
  19. 视频或动画丢帧_概念介绍和解决策略
  20. dll 不是 PML.NET callable问题解决办法

热门文章

  1. 分享几款让你工作事半功倍的软件
  2. 【网络驱动】GMAC 系统框架
  3. 红魔8pro pro+机型NX729J解锁bl 获取root教程
  4. 英汉对照名言隽语(二)
  5. 【可救砖】CM211-1/201-1等S905L3(B)_安卓9-通刷极致精简免拆语音-线刷固件及教程202208
  6. 2021-09-10 LeetCode1894-找到需要补充粉笔的学生编号(每日一题)
  7. 好的plm软件有哪些?plm软件排行榜
  8. 2022-2028全球与中国工程项目管理软件市场现状及未来发展趋势
  9. Skype for Business支持离线消息啦
  10. 我会java什么梗_抖音不会真的有人什么梗 不会真的有人不会吧不会吧别恶心我梗意思及出处...