BLE基础知识(三)

简介: 经过前面两篇《BLE基础知识(一)》《BLE基础知识(二)》之后,我们对BLE有了基本的了解。我们平时用到比较多的GATT了。接着上篇来继续看看!!

前言

经过前面两篇《BLE基础知识(一)》《BLE基础知识(二)》之后,我们对BLE有了基本的了解。我们平时用到比较多的GATT了。接着上篇来继续看看!!


UUID

UUID就是通用唯一标识符。上一篇我们提到的Service (服务),Characteristic (特征),Descriptor (描述符) 等都有自己的UUID。因为一个设备肯定会有很多个服务,一个服务中也会包含多个特征,一个特征也可以包含多个描述符。那怎么来区分它们呢? 所以就需要UUID来进行标识区分了。


蓝牙对UUID 格式定义都有三种: 16bit UUID、32bit UUID、128bit UUID


16bit 和 32bit 的 UUID 与 128bit 的值之间转换关系:

128_bit_UUID=16_bit_UUID*2^96+Bluetooth_Base_UUID128_bit_UUID=32_bit_UUID*2^96+Bluetooth_Base_UUID

其中 Bluetooth_Base_UUID 定义为 00000000-0000-1000-8000-00805F9B34FB

上面的计算公式太复杂,我们用下面的方式记比较简单。


若 16 bit UUID为xxxx,那么 128 bit UUID 为 0000xxxx-0000-1000-8000-00805F9B34FB

若 32 bit UUID为xxxxxxxx,那么 128 bit UUID 为 xxxxxxxx-0000-1000-8000-00805F9B34FB


蓝牙联盟已经将某些UUID分配给一些公司或服务使用了。可以参考下面官方链接。

https://btprodspecificationrefs.blob.core.windows.net/assigned-values/16-bit%20UUID%20Numbers%20Document.pdf

当然了,即使被分配了,我们也可以使用,只是如果做成市场产品就要小心,可能会跟别人的冲突,出现不兼容等情况。


空口数据包

空口数据包就是在空中传输的数据包。它是最完整的数据包,一般只有抓包分析问题才会需要了解这些知识。

空口数据包有两种格式:

  • LE Uncoded PHY (1M和2M)
  • LE Coded PHY
    一种有编码,一种没有编码的。

我们先只看看未编码的格式:

20210622194900860.png

无论是广播数据包还是普通数据包,它们的空口数据包格式是一样的。区别在于Access-Address和PDU的内容不同。


1. Preamble

前导码用来同步接收端和发送端的,1M PHY使用1个字节, 2M PHY使用2个字节。前导码是0和1交替的固定顺序,前导码的第一个bit要和接入地址的最低位(小端)一样,所以前导码第一个bit是由接入地址决定的。

image.png

2. Access-Address

4个字节,用来标示接收者ID或者空中包身份。它和设备地址(48bit)是不一样的,不要混淆。

根据接入地址的不同,可以区分两种Packet类型:广播包和数据包:

广播包接入地址固定为0x8E89BED6

数据包接入地址为一个32bit的随机值,由Initiator生成。


3. PDU

2~258个字节,真正的数据内容。


4. CRC

3个字节的CRC校验





相关文章
|
7月前
|
传感器 芯片
嵌入式通信协议全解析:SPI、I²C、UART详解(附带面试题)
通信是指人与人或人与自然之间通过某种行为或媒介进行的信息交流与传递。从广义上来说,通信是指需要信息的双方或多方在不违背各自意愿的情况下采用任意方法、任意媒质,将信息从某方准确安全地传送到另方。在出现电波传递通信后,通信被单一解释为信息的传递,是指由一地向另一地进行信息的传输与交换,其目的是传输消息。通信方式包括利用“电”来传递消息的电信,这种通信具有迅速、准确、可靠等特点,且几乎不受时间、地点、空间、距离的限制,因而得到了飞速发展和广泛应用。
1396 0
|
9月前
|
程序员 网络架构 异构计算
LabVIEWCompactRIO 开发指南第七章46 Ethernet RIO
LabVIEWCompactRIO 开发指南第七章46 Ethernet RIO
50 0
|
9月前
|
传感器 物联网 芯片
低功耗蓝牙(BLE) 和 经典蓝牙(SPP) 的区别
如何选择适合的蓝牙协议以实现最佳的无线通信效果。
602 0
|
存储 物联网 数据格式
BLE基础知识(二)
上一篇《BLE基础知识(一)》聊到GAP,接下来继续来聊聊ATT, GATT等内容,这些在BLE中应用还是比较多的。
|
安全 物联网
BLE基础知识(一)
前面通过《蓝牙基础知识(一)》和《蓝牙基础知识(二)》两篇,我们了解了一些蓝牙的基本概念。之前说过蓝牙分为BR/EDR和BLE,接下来,我们先来看看BLE的内容。
|
编解码 物联网
【BLE】蓝牙5.2新特性 LEPC简介
LEPC是LE Power Control的简称,是蓝牙5.2引入的用来优化功耗的一个普惠性的新特性,它既可以优化LE Audio的功耗,还可以优化现有ble的功耗。虽然在BLE中,LEPC是一个全新的概念,但经典蓝牙BR/EDR中却很早就引入了该特性。LEPC是什么?一句话概括,LEPC是一个让蓝牙设备在建立连接后可以协商双方发射功率的机制。
580 0
【BLE】蓝牙5.2新特性 LEPC简介
|
物联网
经典蓝牙与低功耗蓝牙BLE开发基础知识:服务、特征、属性、UUID
蓝牙大致被认为是1.0 2.0 3.0 4.0版本,不过现在已经不再用版本号区分蓝牙了,蓝牙1.0~3.0都是经典蓝牙,在塞班系统就已经开始使用了。而蓝牙4.0开始就是包括蓝牙BLE了。蓝牙4.0是双模的,既包括经典蓝牙又包括低能耗蓝牙。经典蓝牙和蓝牙BLE虽然都是蓝牙,但其实还是存在很大区别的。蓝牙BLE相比于经典蓝牙的优点是搜索、连接的速度更快,关键就是BLE(Bluetooth Low Energy)低能耗,缺点呢就是传输的速度慢,传输的数据量也很小,每次只有20个字节。但是蓝牙BLE因为其低能耗的优点,在智能穿戴设备和车载系统上的应用越来越广泛。
经典蓝牙与低功耗蓝牙BLE开发基础知识:服务、特征、属性、UUID
|
Ubuntu JavaScript 虚拟化
鸿蒙开发板利用串口通信的基本原理与实现
大家好,今天主要来学习一下,如何使用Hi3861通过UART串口与其它开发板进行通信方法。
2362 0
鸿蒙开发板利用串口通信的基本原理与实现
|
安全 网络安全 数据安全/隐私保护
WiFi 安全基础知识
Wifi 或无线网络消除了在整个家庭中铺设电缆以确保每个人都有互联网连接的需要,现在您可以在家中的任何地方访问 Internet,但问题是其他人也可以访问您的 Internet 连接。以下是保护 WiFi 的方法,阻止其他人使用您的互联网。
156 0
WiFi 安全基础知识
|
安全 物联网 数据安全/隐私保护
BLE协议学习总结
(作者:LG)
1473 0
BLE协议学习总结