【链路层】:概述

目录

一、链路层状态(Link Layer states)

1.1. 允许的状态和角色组合

1.2.  仅支持部分状态的设备

二、字节序(Bit ordering)

三、设备地址(Device address)

3.1. 设备地址的定义与类型

3.2. 设备地址的使用与比较

3.3. 设备地址的应用场景

四、物理信道(Physical channel)

4.1. 物理信道的定义与分类

4.2. 物理信道的使用与同步

4.3. 物理信道的应用场景

4.3. 物理信道索引

五、总结


本文全面介绍低功耗蓝牙技术中链路层的关键部分,包括链路层状态(待机、广播、扫描和连接等)、字节序、设备地址及其应用场景,以及物理信道(广播、周期、同步物理和数据物理信道)的定义、分类、使用与同步。并介绍射频信道到物理信道索引及组的映射关系表。

一、链路层状态(Link Layer states

链路层状态机在同一时间只允许一个状态处于活动状态。链路层应至少有一个链路层状态机支持广播状态或扫描状态之一。链路层可以有多个链路层状态机的实例。

链路层的操作可以通过一个状态机来描述,该状态机包含以下状态:

  • 待机状态(Standby State)

    • 描述:链路层处于空闲状态,不执行任何发送或接收操作。
    • 转换:可以从任何状态转换回待机状态,通常是在完成当前操作或接收到特定指令后。
  • 广播状态(Advertising State)

    • 描述:设备处于广播状态,会定期发送广播数据包,以便其他设备可以发现它。并可能监听和响应由这些广播物理信道数据包触发的响应。
    • 转换:从待机状态进入广播状态。当设备需要被其他设备发现或建立连接时,会进入此状态。
    • 角色广播者(advertiser)
  • 扫描状态(Scanning State)

    • 描述:设备处于扫描状态,会监听来自正在广播的设备的广播物理信道数据包。
    • 转换:从待机状态进入扫描状态。当设备需要发现其他设备时,会进入此状态。
    • 角色扫描者(scanner)
  • 发起状态(Initiating State)

    • 描述:设备处于发起状态,会监听特定设备的广播数据包,并尝试与其建立连接。
    • 转换:从待机状态进入发起状态。当设备需要主动与其他设备建立连接时,会进入此状态。
    • 角色发起者(initiator)
  • 连接状态(Connection State)

    • 描述:设备已经与其他设备建立了连接,可以进行双向通信。
    • 转换:可以从发起状态或广播状态进入连接状态。
    • 角色
      • 中心角色(Central Role):通常由发起者扮演,负责控制连接和通信时序。
      • 外围角色(Peripheral Role):通常由广播者扮演(广播状态进入连接状态),响应中心角色的请求并进行通信。
  • 同步状态(Synchronization State)

    • 描述:设备处于同步状态,会监听来自特定设备的周期性广播数据包。
    • 转换:从待机状态进入同步状态。当设备需要接收来自正在传输广播同步组(BIG)的指定设备的同步数据包,会进入此状态。
    • 角色同步接收器(Synchronized Receiver)
  • 同步广播状态(Isochronous Broadcasting State)

    • 描述:设备处于同步广播状态,会在同步物理信道上定期发送同步数据包。
    • 转换:从待机状态进入同步广播状态。当设备需要向其他设备发送周期性数据时,会进入此状态。
    • 角色同步广播者(Isochronous Broadcaster)

状态转换概述

  • 待机状态是任何状态转换的起点和终点。
  • 广播状态扫描状态通常用于设备发现。
  • 发起状态用于建立连接。
  • 连接状态是设备之间通信的主要状态。
  • 同步状态同步广播状态用于周期性数据的传输和接收。

这个状态机为链路层操作提供了一个清晰的框架,使得设备可以根据需要在不同的状态之间切换,以实现各种无线通信功能。

1.1. 允许的状态和角色组合

链路层可以选择性地支持多个状态机。如果支持多个状态机,那么可以支持任何状态和角色的组合。特别是,在满足第蓝牙核心规范 4.5 节的要求下,链路层可以多次处于连接状态,且中心角色和外围角色可以任意混合。

注意:支持周期性广播扫描的设备(具体可以参考蓝牙核心规范第 4.4.3.4 节)必须支持至少两个状态机。

链路层实现不需要支持规范所允许的所有可能的状态组合。然而,如果它支持表 1.1 中 “组合 A” 列中给出的状态或状态组合,那么它也应该支持 “组合 B” 列中相应的状态或状态组合。

在每种情况下,其他状态 C 的组合可以为空。在最后两行中,“其他状态” 包括其他可连接的广播状态。 

1.2.  仅支持部分状态的设备

对于仅支持链路层中部分状态或连接状态内两种角色(中央角色和外围角色)之一的设备,它们无需支持那些仅由设备不支持的状态或模式所使用的功能。包括但不限于支持特定的协议数据单元(PDU)、过程、数据长度、主机控制器接口(HCI)命令或HCI命令的特定功能。

  • 链路层状态:蓝牙技术中,链路层负责处理数据包的传输和接收,以及管理连接等。链路层有多种状态,如广告状态、扫描状态、连接状态等。
  • 两种角色:在蓝牙连接中,设备可以扮演中央角色(Central)或外围角色(Peripheral)。中央角色是主动发起连接的设备,而外围角色是等待被连接的设备。
  • 无需支持的功能:如果设备不支持链路层中的某个特定状态或连接状态中的某个特定角色,那么它就不需要支持那些仅在该状态或角色下使用的功能。例如,一个仅作为外围角色的设备无需支持中央角色特有的功能。
  • 特定PDU、过程、数据长度、HCI命令:这些都是蓝牙技术中用于实现不同功能和特性的元素。PDU是蓝牙协议中用于传输数据的基本单位;过程是蓝牙协议中定义的一系列操作步骤;数据长度是指数据包中可以包含的数据量;HCI命令是主机与蓝牙控制器之间通信的命令集。

二、字节序(Bit ordering

在链路层规范中定义数据包或协议数据单元(PDU)内的字段时,字节序遵循小端格式。

  • 最低有效位(LSB)对应于 b0:在数据表示中,最低有效位被标记为 b0。
  • 最低有效位是首先在空中发送的比特:在无线传输中,首先发送最低有效位。例如在一个数据序列中,最低有效位将最先被传输出去。
  • 在书写时,最低有效位显示在左侧:当书写的方式展示数据时,最低有效位位于左侧。

此外,在链路层中定义的数据字段,如 PDU 头部字段,应首先发送最低有效位。例如,一个 3 位参数 X = 3 被发送为:b0b1b2 = 110。在空中传输时,首先发送 1,接着发送 1,最后发送 0。在规范中以 110 表示。

规范中以 0b10101010 格式指定的二进制字段值是最高有效位(MSB)在左侧书写。

对于多字节字段(循环冗余校验CRC和消息完整性检查MIC除外),应以最低有效字节为先进行传输。多字节字段中的每个字节(CRC除外)也应以最低有效位(LSB)为先进行传输。例如,在广播物理信道PDU中的48位地址应以最低有效字节为先进行传输,然后是其余五个字节,按递增顺序排列。

规范中指定的多字节字段值:在书写时,最高有效字节在左侧;例如,在0x112233445566中,0x11是最高有效字节。

在书写数据包或PDU包含多个字段时,这些字段应按从左至右的顺序进行。

报文是一比特一比特传输的,但同时也是由数据的字节组成的。当数据的各个字节传输时,总是从最低位开始。例如,0x80是按照00000001发送,而0x01是按照10000000发送的。在小端格式中,最低有效字节(LSB)存储在最低的内存地址处,而最高有效字节(MSB)则存储在最高的内存地址处。 

三、设备地址(Device address

设备通过设备地址和地址类型来识别;地址类型指示公共设备地址或随机设备地址。公共设备地址和随机设备地址的长度均为 48 位

3.1. 设备地址的定义与类型

设备地址是用于唯一识别通信系统中物理设备的标识符。在蓝牙技术中,设备地址尤为重要,它用于在设备间建立连接和传输数据。设备地址主要分为两种类型:公共设备地址(Public Device Address)和随机设备地址(Random Device Address)

  • 公共设备地址:这是一个全球唯一的48位二进制地址,类似于计算机网络中的MAC地址。它通常由设备制造商预设,并在设备生产过程中分配,无法更改。公共设备地址用于在设备间建立稳定的连接,特别是在需要设备身份验证和授权的通信中。

  • 随机设备地址:这是一个在设备启动后随机生成的地址,不是固定分配的。随机设备地址可以提高设备的隐私保护水平,因为它可以防止设备被跟踪和定位。随机设备地址又可以进一步分为静态设备地址(Static Device Address)和私密设备地址(Private Device Address)

    • 静态设备地址:这是一个在设备的一个上电周期内保持不变的随机地址。它的最高2位通常为“11”,剩余46位是随机数。静态设备地址可以在设备重新启动后保持不变,也可以更改。
    • 私密设备地址:这是一个周期性更新的随机地址,用于提供更高的隐私保护。私密设备地址又可以分为不可解析私密地址(Non-resolvable Private Address)和可解析私密地址(Resolvable Private Address)。不可解析私密地址的最高2位为“00”,剩余46位是随机数;而可解析私密地址则使用本地身份解析密钥(IRK)和一个随机生成的24位数字来生成,其地址的一部分可以通过IRK进行解析。

3.2. 设备地址的使用与比较

  • 设备地址的使用:设备应至少使用一种类型的设备地址,并可以同时使用公共设备地址和随机设备地址。设备的身份地址是它在传输的数据包中使用的公共设备地址或随机静态设备地址。如果设备使用可解析专用地址,它还应有一个身份地址。设备可以使用任何它正在使用的设备地址来被寻址。
  • 设备地址的比较:当比较两个设备地址时,除了比较48位的地址值外,还需要包括设备地址类型。如果两个地址的类型不同,即使它们的48位地址值相同,也被视为不同的地址

3.3. 设备地址的应用场景

设备地址在蓝牙技术中有着广泛的应用场景。例如,在BLE设备中,设备地址用于广播、扫描和连接等过程中。在广播过程中,设备使用其设备地址向周围设备广播其存在;在扫描过程中,设备监听来自其他设备的广播并尝试建立连接;在连接过程中,设备使用其设备地址来验证身份并建立安全的通信通道。

蓝牙MAC地址-CSDN博客

四、物理信道(Physical channel

4.1. 物理信道的定义与分类

在蓝牙技术中,物理信道是指用于传输蓝牙信号的实际通信通道。根据蓝牙核心规范([Vol 6] Part A, Section 2)的规定,在2.4 GHz ISM(工业、科学和医疗)频段内定义了40个射频(RF)信道。这些RF信道被分为两组:

  • 主要广播信道:包含3个RF信道(37,38和39),用于初始广播活动和所有传统广播活动。这些信道在设备发现、连接建立和广播数据等过程中起着关键作用。
  • 通用信道:包含37个RF信道,用于大多数通信活动。这些信道在数据传输、周期性数据传输和同步数据传输等过程中被广泛使用。

基于这些RF信道,低功耗蓝牙技术定义了四种物理信道:

  • 广播信道:使用主广播信道和通用信道来发现设备、发起连接和广播数据。其中,主广播信道构成主广播物理信道,而通用信道则构成次广播物理信道。
  • 周期信道:仅使用通用信道,用于周期性数据的传输。
  • 同步物理信道:同样仅使用通用信道,用于传输需要严格时间同步的数据。
  • 数据物理信道:也仅使用通用信道,用于大多数数据传输活动。

4.2. 物理信道的使用与同步

  • 两个希望进行通信的设备必须使用共享的物理信道。为了实现这一点,它们的收发器必须同时调整到相同的RF信道。然而,由于RF信道的数量有限,且在同一空间和时间区域内可能有多个蓝牙设备独立运行,因此很可能存在两个独立的蓝牙设备将它们的收发器调整到相同的RF信道上的情况,从而导致物理信道冲突。
  • 为了减轻这种冲突带来的不利影响,每个在物理信道上的传输都以一个接入地址(Access Address)开始。这个接入地址被调整到该物理信道的设备用作相关码。接入地址是物理信道的一个属性,并且每个传输的数据包开始时都会包含它。
  • 链路层(Link Layer)在给定时间内只使用一个物理信道。当链路层与物理信道的时序、频率和接入地址同步时,它被认为是在数据物理信道上“连接”的,或者与周期性物理信道或同步物理信道“同步”的(无论它是否正在该信道上积极参与通信)。

4.3. 物理信道的应用场景

物理信道在蓝牙技术中有着广泛的应用场景。例如,在BLE设备中,广播物理信道用于设备发现、连接建立和广播数据;数据物理信道则用于数据传输;周期性物理信道和同步物理信道则分别用于周期性数据的传输和需要严格时间同步的数据传输。了解物理信道的定义、分类和使用方法有助于更好地理解蓝牙技术的工作原理和通信过程。

物理信道是蓝牙技术中实现设备间通信的基础。通过合理规划和利用物理信道资源,可以确保蓝牙设备在有限的频谱资源下实现高效、可靠的通信。

4.3. 物理信道索引

表1.3展示了射频(RF)信道到物理信道索引以及RF信道组的映射关系。

在表1.3中,一个“●”表示该RF信道及其索引属于指定的信道组;而一个空白单元格则表示它们不属于该组。 

五、总结

蓝牙技术通过复杂的链路层状态管理和设备地址识别机制,实现了设备间的有效连接和数据传输。本文不仅详细解析了链路层的多种状态和角色,还明确了字节序的要求,深入探讨了设备地址的定义、类型和使用。同时,对物理信道的定义、分类、使用与同步进行了全面阐述,并展示了RF信道到物理信道索引的映射关系。这些内容有助于读者更好地理解蓝牙技术的工作原理和通信过程,为蓝牙技术的开发和应用提供了有力支持。

猜你喜欢

转载自blog.csdn.net/weixin_37800531/article/details/143455371