Bluetooth 报文知识点

Posted kevin-yin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bluetooth 报文知识点相关的知识,希望对你有一定的参考价值。

阅读目录

    一、 Bluetooth报文结构

   1、 BLE报文结构如下,它由下图所示的各个域组成。因为有的域的长度超过了一个字节,所以在传输的过程中就涉及到多字节域中哪个字节先传输的问题,BLE报文传输时的字节序和比特序如下:

  •  字节序:大多数多字节域是从低字节开始传输的。注意,并不是所有的多字节域都是从低字节开始传输的。

  •  比特序:各个字节传输时,每个字节都是从低位开始。

       技术分享图片

      1.1 前导

  前导是一个8比特的交替序列。它不是01010101就是10101010,取决于接入地址的第一个比特。

  • 若接入地址的第一个比特为0:01010101
  • 若接入地址的第一个比特为1:10101010

  接收机可以根据前导的无线信号强度来配置自动增益控制。

       1.2 接入地址

  接入地址有两种类型:广播接入地址和数据接入地址。

  • 广播接入地址:固定为0x8E89BED6,在广播、扫描、发起连接时使用。

  • 数据接入地址:随机值,不同的连接有不同的值,在连接建立之后的两个设备间使用。

     对于数据信道,数据接入地址是一个随机值,但需要满足下面几点要求:

         1)  数据接入地址不能超过6个连续的“0”或“1”。

         2)  数据接入地址的值不能与广播接入地址相同。

         3)  数据接入地址的4个字节的值必须互补相同。

         4)  数据接入地址不能有超24次的比特翻转(比特0到1或1到0,称为1次比特翻转)。

         5)  数据接入地址的最后6个比特需要至少两次的比特翻转。

         6)  符合上面条件的有效随机数据接入地址大概有231个。

      1.3 报头

         1.3.1 广播报文报头

          报头的内容取决于该报文是广播报文还是数据报文。广播报文的报头如下图所示:

                    技术分享图片

                                                            图2:广播报文报头

 

         广播报文的报头包含4bit广播报文类型、2bit保留位、1bit发送地址类型和1bit接收地址类型。

        1) 广播报文类型

        Core_v4.2的2583页描述了广播报文类型,共有7种类型,如下图所示。

          技术分享图片

                                                               图3:广播报文类型

       2) 发送地址类型和接收地址类型

  发送地址类型和接收地址类型指示了设备使用公共地址(Public Address)还是随机地址(Random Address)。公共地址和随机地址的长度一样,都包含6个字节共48位。BLE设备至少要拥有这两种地址类型中的一种,当然也可以同时拥有这两种地址类型。

  •  公共地址(Public Address)

      公共地址由两部分组成,如下图。公共地址由制造商从IEEE申请,由IEEE注册机构为该制造商分配的机构唯一标识符OUI(Organizationally Unique Identifier)。这个地址是独一无二,不能修改的。Core_v4.2 P2576的1.3.1节描述了公共地址。

                         技术分享图片

                                                                                                           图4:公共地址结构

  •    随机地址

        随机地址有包含两种:静态地址(Static Device Address)和私有地址(PrivateDevice Address)。Core_v4.2 P2577的1.3.2.1节描述了静态地址。

                       技术分享图片

                                                                                                                                      图5:静态地址格式

       静态地址有如下要求:

           a) 静态地址的最高2位有效位必须是1。

           b) 静态地址最高2位有效位之外的其余部分不能全为0。

           c) 静态地址最高2位有效位之外的其余部分不能全为1。

    在私有地址的定义当中,又包含了两个子类:不可解析私有地址(Non-resolvable Private Address)和可解析私有地址(Resolvable Private Address,RPA)。nRF51822使用的是静态地址,芯片在出厂时已经设置好了48位地址,我们可以从下面两个寄存器读出地址类型和地址。

           a)  DEVICEADDRTYPE寄存器。

          DEVICEADDR[n]寄存器:包含DEVICEADDR[0]和DEVICEADDR[1]两个寄存器。

        技术分享图片

 

                                                                                              图6:地址类型寄存器

        技术分享图片

                                                                                                 图7:地址寄存器

 

以上是关于Bluetooth 报文知识点的主要内容,如果未能解决你的问题,请参考以下文章

Bluetooth基础知识

Bluetooth基础知识

Bluetooth基础知识

Bluetooth基础知识

浅谈Bluetooth蓝牙开发

Android Bluetooth模块学习笔记