前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >蓝牙核心规范(V5.2)9.1-深入详解之链路层规范

蓝牙核心规范(V5.2)9.1-深入详解之链路层规范

作者头像
心跳包
发布于 2021-12-07 05:07:09
发布于 2021-12-07 05:07:09
1.8K0
举报

蓝牙篇之蓝牙核心规范(V5.2)深入详解汇总

1.链路层状态

链路状态主要包括:

链路状态

详细说明

待机状态

处于待机状态的链路层不传输或接收任何数据包。待机状态可以从任何其他状态输入。

广告状态

处于广告状态的链路层将进行广告物理传输通道数据包,并可能侦听和响应这些广告物理通道数据包触发。

扫描状态

处于扫描状态的链路层将监听来自正在做广告的设备的物理信道包。处于扫描状态的设备被称为扫描仪。扫描状态可以从待机状态中输入。

启动状态

处于启动状态的链接层将监听来自特定设备的物理信道包,并响应这些数据包,以启动与另一个设备的连接。处于启动状态的设备被称为启动器。启动状态可以从待机状态输入到启动状态。

连接状态

连接状态可以从启动状态或广告状态输入。处于连接状态的设备被称为处于连接状态。

同步状态

同步状态下的链接层将侦听形成特定周期性广告序列的周期性物理信道数据包,它们来自特定的传输周期性广告的设备。同步状态可以从待机状态中输入。在这种状态下,主机可以直接引导链路层监听来自正在传输广播等时组(BIG)的指定设备的等时数据包。一种处于同步状态并正在接收等时数据包的设备被称为同步接收器。

异步广播状态

在异步广播状态下的链路层将在等时物理信道上传输等时数据包。同步广播状态可以从备用状态输入。处于异步广播状态的设备被称为异步广播器。

关于连接状态角色定义为主机和从机:

当从启动状态输入时,连接状态应处于主机。当从广告状态输入时,连接状态应处于从机。

主机中的链路层将与从机中的设备进行通信,并定义传输的时间。

从机中的链接层将与主机中的单个设备进行通信。

链路层状态机的状态图

设备地址

使用设备地址和地址类型来标识设备;地址类型表示公共设备地址或随机设备地址。公共设备地址和随机设备地址的长度均为48位。

设备应至少使用一种类型的设备地址,也可以同时包含这两种地址。

设备的身份地址是它在传输的数据包中使用的公共设备地址或随机静态设备地址。如果设备使用可解析专用地址,它还应有一个身份地址。

当比较两个设备地址时,比较应包括设备地址类型(即如果两个地址类型不同,即使两个48位地址相同,它们也不同)。

1.3.1 公共设备地址

公共设备地址应根据[Vol2]B部分第1.2节的规定创建,除非公共设备地址的限制不用于BR/EDR控制器,否则LAP值为BD_ADDR。

1.3.2 随机设备地址

地址[47:46]

子类型

0b00

不可解析的私有地址

0b01

可解决的私有地址

0b10

预留供将来使用

0b11

静态设备地址

传输一个随机的设备地址是可选的。设备应接受从远程设备接收到的随机设备地址。

静态设备地址

静态地址是一个48位随机生成的地址,应满足以下要求:

  • 地址的随机部分中的至少一点应为0
  • 地址的随机部分中的至少一点应为1

设备可以选择在每个功率循环后将其静态地址初始化为一个新值。设备初始化后,设备不得改变其静态地址值。

注意:如果更改了设备的静态地址,则存储在对等设备中的地址将无效,使用旧地址重新连接的能力将丢失

私有设备地址的生成

私有地址可以是以下两种子类型之一:

  • 不可解析的私有地址
  • 可解决的私有地址

要生成不可解析的地址,设备应生成具有以下要求的48位地址:

  • 地址的随机部分中的至少一点应为1
  • 地址的随机部分中的至少一点应为0
  • 地址不等于公众地址

不可解析的专用地址的格式

要生成可解析的专用地址,设备必须具有本地身份解析密钥(IRK)或同行身份解析密钥(IRK)。可解析的专用地址应使用IRK和一个随机生成的24位数字来生成。随机数称为随机,应满足以下要求:

  • prand的随机部分至少有一位应为0
  • prand的随机部分至少有一位应为1

可解析的私有地址的格式

2 空中接口数据包

2.1 未编码的电话的包格式

LE未编码PHY的链接层数据包格式

先传输preamble,然后按该顺序传输访问地址、PDU、CRC和Constant tone extension(如果存在)。整个分组以相同的符号速率传输(1Msym/s或2Msym/s调制)。

数据包(不包括Constant Tone Extension)需要在44到2128µs之间进行传输。

当存在Constant Tone Extension时,Constant Tone Extension持续时间在16到160µs之间,如图2.1所示。

数据包说明:

数据包内容

说明

Preamble

所有链路层数据包都有一个前置码,用于执行频率同步、符号定时估计和自动增益控制(AGC)训练。前缀是一个由0位和1位交替组成的固定序列。对于在LE1MPHY上传输的数据包,序言为8位;对于在LE2MPHY上传输的数据包,序言为16位。序言的第一位(按传输顺序排列)应与接入地址的LSB相同。序言如图2.2所示。

Access-Address

访问地址应为32位值。每次需要一个新的访问地址(广播等时流(BIS)除外)时,链接层应生成一个新的随机值。

PDU

序言和访问地址后面是一个PDU。当数据包在主或次广告物理频道或周期物理通道上传输时,PDU应为第2.3节定义的广告物理频道PDU。当数据包在数据物理信道上传输时,PDU应为第2.4节中定义的数据物理信道PDU。当数据包在等时物理信道上传输时,PDU应为第2.6节中定义的等时物理信道PDU之一。

CRC

PDU后面是一个24位的CRC。它应通过PDU进行计算。CRC多项式定义于第3.1.1节。

Constant Tone Extension

CRC之后是一个可选的常音扩展,它由一个不断调制的一系列未白度的1s组成。常音扩展不包含在CRC或MIC计算中。常音扩展字段不应出现在等时物理信道上发送的数据包中。常音扩展将在第2.5节中进一步讨论。

图2.2:序言

2.2 LE编码PHY的数据包格式

以下数据包格式是为LE编码的PHY定义的,并用于所有物理通道上的数据包。

为LE编码的PHY的链接层数据包格式

整个数据包通过1Msym/s的调制进行传输。

表2.1:LE编码的PHY字段大小和持续时间,单位为微秒

2.3 广告物理频道pdu

注意:尽管有名称,广告物理通道PDU也在周期性物理通道上使用。

广告物理通道PDU有一个16位的报头和一个可变大小的有效负载。其格式如图2.4所示。广告物理通道PDU的16位头字段如图2.5所示。

2.3.1 广告pdu

以下广告物理频道PDU类型称为广告PDU:

  • ADV_IND
  • ADV_DIRECT_IND
  • ADV_NONCONN_IND
  • ADV_SCAN_IND
  • ADV_EXT_IND
  • AUX_ADV_IND
  • AUX_SYNC_IND
  • AUX_CHAIN_IND

2.3.2 扫描pdu

以下广告物理信道PDU类型称为扫描PDU。

  • SCAN_REQ
  • SCAN_RSP
  • AUX_SCAN_REQ
  • AUX_SCAN_RSP

SCAN_REQ和AUX_SCAN_REQpdu被称为扫描请求pdu。SCAN_RSP和AUX_SCAN_RSPpdu被称为扫描响应pdu。

如果这些PDU用于回复可扫描的广告,则它们使用的PHY应与它们回复的PDU使用的PHY相同。

2.3.3 启动pdu

以下广告物理通道PDU类型称为启动PDU:

  • CONNECT_IND
  • AUX_CONNECT_REQ
  • AUX_CONNECT_RSP

CONNECT_IND和AUX_CONNECT_REQpdu由初始状态下的链接层发送,并由广告状态下的链接层接收。AUX_CONNECT_RSPPDU由处于广告状态的链接层发送,并由处于初始状态的链接层接收。

用于这些PDU中的PHY应与它们回复的PDU中使用的PHY相同。

2.3.4 常见的扩展广告有效载荷格式

以下扩展广告物理频道pdu共享相同的广告物理频道PDU有效负载格式,在规范中称为“通用扩展广告有效负载格式”:

• ADV_EXT_IND

• AUX_ADV_IND

• AUX_SCAN_RSP

• AUX_SYNC_IND

• AUX_CHAIN_IND

• AUX_CONNECT_RSP

2.4 数据物理通道pdu

标头的CTEInfo PreSent(CP)字段指示数据物理通道PDU标头是否具有CTEInfo字段,因此数据物理通道数据包是否具有常音扩展。如果CP字段为0,则数据通道PDU头中没有CTEInfo字段,并且数据物理通道包中没有常数音调扩展。如果CP字段为1,则存在数据物理信道PDU头中的CTEInfo字段,并且数据物理信道包包含一个常音调扩展。

2.4.1 LL Data PDU

LL数据PDU是一种用于发送L2CAP数据的数据信道PDU。标题中的LLID字段应设置为0b01或0b10。

一个LLDataPDU,头中的LLID字段设置为0b01,长度字段设置为0b000000000,被称为空PDU。主链路层可以向从端发送一个空的PDU,以允许从端使用任何数据物理通道PDU进行响应,包括一个空的PDU。

标题中LLID字段设置为0b10的LL数据PDU的“长度”字段不应设置为0b00000000。

注意:如果链接层接收到Data_Total_Length等于0b000000000(即开始片段),则链接层不能简单地通过空中传输片段,而必须将其与以下一个或多个继续片段组合,形成LLID设置为0b10和非零长度的PDU。

2.4.2 LL Control PDU

LL控制PDU是一种用于控制链路层连接的数据物理信路PDU。

LL控制PDU不应将长度字段设置为0b00000000。

有效载荷由操作码和CtrData字段组成。

LL控制PDU中的CtrData字段由“操作码”字段指定,并在以下小节中定义。对于给定的操作码,CtrData字段的长度是固定的。

LL_CONNECTION_UPDATE_IND

LL_CHANNEL_MAP_IND

LL_TERMINATE_IND

LL_ENC_REQ

LL_ENC_RSP

LL_UNKNOWN_RSP

LL_FEATURE_REQ

LL_FEATURE_RSP

2.5 恒定tone扩展和IQ采样

2.5.1常音扩展结构和类型

2.5.2 CTEInfo字段

2.5.3传输恒定音调扩展

当传输包含AoA常音扩展的数据包时,发射器不得切换天线。当传输包含AOD常音扩展的数据包时,发射机应按照主机配置的切换模式进行天线切换。支持传输恒音调扩展的装置应能够传输至少16µs长的恒音调扩展。

2.5.4 IQ采样

当主机要求时,接收器在接收包含常音扩展的有效包时应该执行IQ采样,在接收包含常音扩展但不正确CRC的包时可以执行IQ采样。本节的其余部分适用于接收器对包进行智商采样。

当接收到包含AOD常音扩展的数据包时,接收器不需要切换天线。当接收到包含AoA常音扩展的数据包时,接收器应按照主机配置的切换模式进行天线切换。在这两种情况下,接收者应在参考期间每微秒取一个智商样本,每个样本槽有一个智商样本(因此将有8个参考智商样本,1到37个2µs槽,2到74个1µs槽的智商样本,即总共9到82个样本)。控制器应向主机报告IQ样本。接收器采样整个恒定音调扩展,无论长度如何,除非这与其他活动相冲突。

注:为了获得优质的角度估计数据,应在每个IQ采样窗口的同一点进行智商采样,从开始后0.125µs开始,到每微秒周期结束前0.125µs结束(见图2.56)。如果使用2个µs样槽,应在后一微秒内进行采样(见图2.57)。

图2.56:1个µs采样插槽的IQ采样窗口

图2.57:2个µs采样插槽的IQ采样窗口

支持IQ采样的控制器应能够测量用于接收包主体的任何天线上接收包的RSSI(在两种情况下不包括任何持续音调扩展),并且能够接收和采样任何有效长度的持续音调扩展。

如果控制器没有足够的资源来对它接收到的所有常音扩展执行采样,它可能会在向主机报告至少一组IQ样本后停止采样。如果控制器停止采样,它应向主机报告,并应在下一个定期广告事件或连接事件开始时恢复采样。

2.6 异步物理通道pdu

2.6.1连接的异步PDU

2.6.2 异步PDU广播

广异步PDU(BISPDU)应为BIS数据PDU或BIG控制PDU。BIS数据PDU用于携带等时数据。大控制器PDU用于发送大控制器的控制信息。

广播等时PDU的等时物理信道PDU的报头字段如图2.60所示。

2.6.3 BIG控制PDU

BIG_CHANNEL_MAP_IND

BIG_TERMINATE_IND

3.比特流处理

图3.1显示了LE未编码PHYs上的pdu的位流处理

图3.2显示了在LE编码的phy上的pdu的位流处理。

3.1 错误检查

在接收数据包时,应首先检查访问地址。如果访问地址不正确,则应拒绝该包,否则应视为已接收到该包。如果CRC不正确,应拒绝包,否则应认为包已成功接收,因此有效。只有在包被认为有效的情况下才应处理包,但即使CRC不正确,接收方也可以进行IQ采样。具有不正确CRC的数据包可能会导致连接事件继续发生。

3.2 DATA WHITENING

数据增白用于避免数据位流中的0或1的长序列,例如,0b000000000或0b1111111。美白应应用于所有链路层数据包的PDU和CRC上,并在发射机中生成CRC后进行。数据包的其他部分都没有变成白色。在CRC检查接收机之前进行去美白。

3.3 编码

编码仅适用于LE编码的方法。

编码包括两个过程。数据首先由第3.3.1节中定义的前向误差校正(FEC)卷积编码器进行编码,然后由第3.3.2节中定义的模式映射器进行传播。

3.3.1 前向纠错编码器

卷积FEC编码器使用了一个非系统的、非递归率的½码,约束长度为K=4。

3.3.2 模式映射器

模式映射器将卷积FEC编码器中的每个位转换为P符号,其中P的值取决于正在使用的编码方案,根据表3.1(输出序列按传输顺序排列):

4.空中接口协议

空中接口协议由多址方案、设备发现和链路层连接方法组成。

.4.1 帧空间

4.1.1 内帧空间

在同一信道索引上的两个连续数据包之间的时间间隔称为帧间空间。它被定义为从前一个包的最后一位结束到后续数据包的第一位开始的时间。框架间空间被指定为“T_IFS”,且应为150µs。

4.1.2 最小AUX帧空间

包含AuxPtr的数据包与其指示的辅助数据包之间的最小时间间隔称为最小AUX帧空间。它被定义为从包含AuxPtr的包的最后一位结束到辅助包开始的最小时间。最小的AUX框架空间被指定为“T_MAFS”,并且应为300µs。

图4.1说明了应用最小AUX框架空间的一个示例。

图4.1:应用于最小AUX框架空间的示例

4.1.3最小子事件空间

在一个子事件中最后一个包的最后一个位结束到下一个子事件中第一个包的第一个位开始之间的最小时间间隔称为最小子事件空间。

最小子事件空间被指定为“T_MSS”,且应为150µs。

图4.2:CIS中的最小子事件空间

图4.3:A bis中的最小子事件空间

4.2 时间要求

链路层应使用两种可能的时钟精度之一:在第4.2.1节所述的情况下,它应使用活动时钟精度;否则,它应使用睡眠时钟精度。

本节中规定的时钟精度仅适用于设备传输数据包时的设备。用于计时分组接收的时钟可能具有任何精度,但接收设备将需要允许这一点。例如,如果接收设备时钟的精度为2000ppm,最大抖动为45µs,那么,对于时间同步的最后事件之后的事件1秒,设备需要开始监听至少2045µs并且比它晚继续监听到至少2045µs。

4.2.1 活动时钟精度

在活动扫描期间,连接、BIG或CIG事件期间以及请求连接时使用活动时钟精度确定,漂移小于或等于±50ppm。所有瞬时时间偏离平均时间不得超过2µs。

注意:这意味着包的开始在前一个包结束后发送150±2µs。

更具体地说,这些要求适用于以下时间段之间的时间间隔:

  • 同一连接事件中的相邻数据包
  • 在同一BIG或CIG事件中的数据包,即使它们在不同的BISes或CISes中,或在不同的子事件中
  • 一个广告包和一个包含SCAN_REQ、AUX_SCAN_REQ、CONNECT_IND或AUX_CONNECT_REQPDU的广告包
  • 包含SCAN_REQ的数据包和包含SCAN_RSPPDU的响应数据包
  • 包含AUX_SCAN_REQPDU的数据包和包含AUX_SCAN_RSPPDU的响应数据包
  • 包含AUX_CONNECT_REQPDU的数据包和包含AUX_CONNECT_RSPPDU的响应数据包。

4.2.2 睡眠时钟精度

所有其他活动的平均时间都是使用睡眠时钟精度来确定的,其漂移小于或等于±500ppm。所有瞬时定时偏离平均定时不得超过16µs。活动时钟的最坏情况下的漂移和瞬时偏差应小于或等于睡眠时钟。

在连接上,设备不得使用比最近发送的LL_CLOCK_ACCURACY_REQ或LL_CLOCK_ACCURACY_RSPPDU的SCA字段中指示的最坏情况更准确的睡眠时钟。如果链接层没有启动或响应睡眠时钟精度更新程序,主应使用至少用于创建连接的CONNECT_IND或AUX_CONNECT_REQPDUSCA字段中指示的睡眠时钟,从机应使用精度为±500ppm或更高的睡眠时钟。

注:因此,这些要求适用于ACL锚点之间、CIS锚点之间、大锚点之间的时间,以及广告和定期广告间隔以及提前延迟值、同一扩展广告事件或周期性广告事件中的数据包之间的所有间隔,以及广告PDU的AuxPtr和SyncInfo字段指定的所有偏移量。 注意:这意味着具有500ppm主睡眠时钟精度的2秒连接间隔需要拓宽1ms+16µs,再加上奴隶在连接间隔期间实际使用的时钟的精度。

4.2.3 范围延迟

当两个设备间隔超过几米时,与第4.2.1节中定义的主动时钟精度相比,在它们之间传播的信号所花费的时间将是显著的。当设备侦听可能达D米的包时,它应该在该包传输的名义最新时间(例如T_IFS+2µs)后侦听额外的2D*4ns。

(1/c~=3.3*折射率ns/m,因此4ns给予保守允许。)

图4.4显示了相对于主数据包传输的范围延迟。

4.2.4 窗口扩大

在各种情况下,链接层期望在特定窗口(从接收窗口扩展到接收窗口)或接收窗口和接收窗口)接收包,但由于活动时钟精度(见4.2.1节)和睡眠时钟精度(见4.2.2节),该窗口在发送链接层上的确切时间存在不确定性。因此,接收者应该调整其收听时间,以考虑到这种不确定性。

收听时间的增加被称为窗口扩大。假设时钟不准确性仅以百万分之一(ppm)给出,则计算如下:

transmitterAllowance = ( txCA / 1000000) * ( receiveWindowEnd - timeOfLastSync ) + J µs

4.3 链路层设备过滤

链路层可以根据对等设备的设备地址执行设备过滤。链路层设备过滤被链路层用于最小化其响应的设备数量。

链接层应该支持链接层设备过滤,除非它只支持广告状态,并且只支持不可连接和不可扫描的广告。

广告状态、扫描状态、启动状态和定期同步建立的过滤器策略是相互独立的。当链接层处于广告状态时,应使用广告过滤策略。当链路层处于扫描状态时,应使用扫描过滤器策略。当链路层处于启动状态时,应使用启动器过滤器策略。当链接层执行定期同步建立时,应使用定期同步建立过滤器策略。如果链接层不支持广告状态、扫描状态、启动状态或定期同步建立,则不需要支持相应的过滤器策略.

4.3.1 白名单

链接层用于设备过滤的设备集称为白名单。

白名单包含一组用于链接层设备过滤的白名单记录。白名单记录同时包含设备地址和设备地址类型(公共或随机)。还有一个特殊的设备地址类型“匿名”;具有此类型的条目与没有地址发送的所有广告相匹配。所有支持链接层设备过滤的链接层应支持能够存储至少一个白名单记录的白名单。

白名单由主机配置,并被链接层用于过滤广告商、扫描仪或启动器,但不定期同步建立。这允许主机配置链接层以对请求进行操作,而不会唤醒主机。

所有的设备过滤器策略都应使用相同的白名单。

4.3.2 广告过滤器策略

广告筛选器策略确定广告商的链接层如何处理扫描和/或连接请求。当链接层使用不可连接和不可扫描的定向广告事件、可扫描的定向广告事件和可连接的时定向广告事件的广告过滤政策应被忽略。否则,链接层应使用主机配置的以下广告过滤器策略模式之一:

  • 链接层应处理来自所有设备的扫描和连接请求(即不使用白名单)。这是重置时的默认值。
  • 链接层应处理来自所有设备的连接请求,并应只处理来自白名单中设备的扫描请求。
  • 链接层应处理来自所有设备的扫描请求,并应只处理来自白名单中设备的连接请求。
  • 链路层应仅处理来自白名单中设备的扫描和连接请求。

每个广告集一次只支持一个广告过滤策略模式。

4.3.3 扫描仪过滤器策略

扫描器筛选器策略决定了扫描器的链路层如何处理广告和扫描响应pdu。链路层应使用由主机配置的以下扫描仪过滤器策略模式之一:

  • 链路层应处理所有广告和扫描响应PDU(即,不使用白名单)。但是,应忽略不包含扫描仪设备地址的定向广告PDU。这是重置时的默认值。
  • 链路层应仅处理来自白名单中的设备的广告和扫描响应pdu。应忽略不包含扫描仪设备地址的定向广告PDU。

一次只支持一个扫描仪过滤器策略模式。

注意:扫描器过滤器策略不影响启动或定期同步建立,即使它们涉及到对广告pdu的扫描。

4.3.4 发起者过滤策略

发起者筛选策略决定了启动器的链接层如何处理广告pdu。链路层应使用以下由主机配置的发起者过滤器策略模式之一:

  • 链接层应忽略白名单,并处理来自主机指定的特定单个设备的可连接的广告pdu。
  • 链接层应处理来自白名单中所有设备的可连接的广告pdu。

如果链接层接收到来自白名单中不包含的广告商或主机指定的单个地址,则应忽略可连接的定向广告PDU。

一次只支持一个发起者过滤器策略模式

4.3.5 定期同步建立过滤器策略

定期同步建立过滤器策略确定了当试图同步到定期广告列车时,扫描仪的链接层如何处理广告pdu。链路层应使用以下由主机配置的定期同步建立过滤器策略模式之一:

  • 链接层应忽略定期广告商列表,并处理来自主机指定的特定单个设备的广告pdu
  • 链接层应处理来自定期广告商列表中所有设备的广告pdu。

如果链接层接收到的广告PDU中包含的广告商不包含在定期广告商列表或主机指定的单一地址的广告SID,则同步信息字段应被忽略。

一次只支持一个定期同步建立过滤器策略模式。

与定期广告的同步与扫描同时进行,但这两个活动的过滤策略是独立的。定期同步建立过滤器策略,而不是扫描仪过滤器策略,应确定哪些广告pdu用于同步到定期广告列车(然后将成功的同步报告给主机)。如果接收到的PDU仅匹配两个策略中的一个,则应仅针对使用该策略的目的进行处理,而不是针对另一个策略。

链接层在与定期广告传输同步时,应忽略定期广告商列表,并使用定期广告同步传输程序接收定期广告同步信息。

4.4 非连接状态

4.4.1 待机状态

待机状态是链接层中的默认状态。链路层不得在备用状态下发送或接收数据包。链接层可以离开待机状态,以进入广告状态、扫描状态、发起状态、同步状态或同步广播状态。

4.4.2 广告状态

链接层应在主机的指示下进入广告状态。当处于广告状态时,链接层应在广告事件、定期广告事件或两者同时发送广告pdu。

每个广告活动由一个或在使用的主要广告渠道索引上发送的多个广告pdu组成。广告活动应在每个使用的主要广告渠道索引上发送一个广告PDU后关闭。广告事件中的某些广告pdu可能被省略,导致广告事件开始较晚或提前关闭,或者整个广告事件可能被省略以适应其他功能。

4.4.3 扫描状态

链路层应在主机指示时进入扫描状态。扫描时,链接层应在主广告物理频道上进行监听。由主机确定的扫描类型:被动扫描和主动扫描。

没有严格的时间或广告频道索引选择规则进行扫描。

在扫描过程中,链接层会在扫描窗口、扫描窗口期间监听主广告频道索引。扫描间隔定义为两个连续扫描窗口开始之间的间隔。

除非存在调度冲突,否则链接层应监听主机指示的整个扫描窗口。在每个扫描窗口中,链接层应该在不同的主广告信道索引上进行扫描。链接层应使用所有主要的广告渠道索引。

扫描窗口和扫描间隔参数应小于40.96s。扫描窗应小于或等于扫描间隔。如果扫描窗口和扫描间隔参数设置为相同的值,则链接层应连续扫描。

当扫描时收到广告PDU或扫描响应PDU时,应适用扫描仪过滤器策略。

在接收到有AuxPtr字段的PDU时,扫描仪还应该侦听它指向的辅助PDU(只要它支持AuxPtr字段中指定的PHY),然后应该尝试接收PDU的整个从属集。

当扫描仪接收到包含AuxPtr字段的ADV_EXT_INDpdu时,它可能总是侦听辅助数据包或有时可能跳过侦听。在后一种情况下,应适用以下要求:

  • 控制器应保留每个广告设备使用的一个或多个最近的广告DID值的缓存(为此,所有匿名广告被视为来自不同于所有真实设备的单个设备),并应在收到包含ADI字段的PDU时更新它们。控制器可以随时删除任何高速缓存条目。如果控制器未能接收到该ADV_EXT_INDPDU的整个下属集,则该控制器应该删除与该ADV_EXT_INDPDU相关的缓存条目。
  • 只有当缓存具有指定设备正在使用的ADI字段中的广告DID值的条目时,控制器才能跳过监听辅助数据包;如果ADV_EXT_INDPDU包含AdvA字段,该条目适用为该设备。否则,控制器不得跳过侦听辅助数据包。
  • 无论缓存内容如何,如果另一个广告商开始使用相同的广告DID值或现有广告商对扩展报头进行了重大更改(例如,包括SyncInfo字段),控制器有时应该收听AUX_ADV_INDPDU。

4.4.4 发起状态

链路层应进入发起状态。启动时,链接层应监听主广告物理频道。

没有严格的时间或广告渠道索引选择规则。

在启动过程中,链接层在扫描窗口、扫描窗口期间监听主广告频道索引。

除非存在调度冲突,否则链接层应监听主机指示的整个扫描窗口。在每个扫描窗口中,链接层应该收听不同的主广告频道索引。链接层应使用所有主要的广告渠道索引。

扫描窗和扫描间隔参数应小于或等于40.96s。扫描窗应小于或等于扫描间隔。如果扫描窗口和扫描间隔参数被主机设置为相同的值,则链接层应该连续侦听。

连接指示或响应可连接广告的请求应在主或次要广告物理通道上发送,这取决于哪个广告PDU包含AdvA字段。以下各小节描述了这两个过程。

4.4.5 同步状态

在同步状态下,链接层监听来自另一个设备的常规广播。这类的广播有两种类型:定期广告传输和同步流。

同步状态有两个子状态:同步中和同步完成。链路层应在由主机指示时,进入同步子状态的同步状态,只要它拥有定位常规广播所需的必要信息。一旦它成功地从广播中接收到一个PDU,它就会过渡到同步的子状态,然后说是同步到广播中;在此之前,据说它是同步的。同步状态有两个子状态:同步和同步。链路层应在由主机指示时,进入同步子状态的同步状态,只要它拥有定位常规广播所需的必要信息。一旦它成功地从广播中接收到一个PDU,它就会过渡到同步的子状态,然后说是同步到广播中;在此之前,据说它是同步的。

一旦同步,如果它在主机指定的一段时间内没有接收到形成广播的任何pdu,它应过渡到待机状态并通知主。

4.4.6 同步广播状态

链路层应在主机指示时输入等时广播状态,只要它能够安排主机所请求的大型广播状态要传输。在这种状态下,链路层应按照以下小节所述传输BISpdu。

在传输第一个BIS数据PDU后,链路层应通知主机。

在这种情况下,主机可能会禁用并随后重新启用与BIG相关联的定期广告传输。

处于同步广播状态的链路层状态机的每个实例都应传输一个由一个或多个BISes组成的大实例。每个BIS都携带一个单独的等时数据流。一个最多有31个Bisec。

注意:等时广播状态是每个BIG(即每个新的BIG都会实例化一个新的链路层状态机)。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/10/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
springboot(十一):Spring boot中mongodb的使用
mongodb是最早热门非关系数据库的之一,使用也比较普遍,一般会用做离线数据分析来使用,放到内网的居多。由于很多公司使用了云服务,服务器默认都开放了外网地址,导致前一阵子大批 MongoDB 因配置漏洞被攻击,数据被删,引起了人们的注意,感兴趣的可以看看这篇文章:场屠戮MongoDB的盛宴反思:超33000个数据库遭遇入侵勒索,同时也说明了很多公司生产中大量使用mongodb。 mongodb简介 MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是可以应用于各种规模的企业、各个行
纯洁的微笑
2018/04/19
2.3K0
尚医通-MongoDB
NoSQL(NoSQL = Not Only SQL),意即反SQL运动,指的是非关系型的数据库,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于目前铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入
用户9615083
2022/12/30
4.1K0
尚医通-MongoDB
芋道 Spring Boot MongoDB 入门
MongoDB 中的许多概念在 MySQL 中具有相近的类比。本表概述了每个系统中的一些常见概念。
芋道源码
2020/04/15
2.7K0
芋道 Spring Boot MongoDB 入门
MongoDB
​ MongoDB 是由 C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。
OY
2022/09/28
4.7K0
MongoDB
Springboot 整合 MongoDB
这节我们将整合 Spring Boot 与 Mongo DB 实现增删改查的功能,并且实现序列递增。
用户7630333
2023/12/07
7030
Springboot 整合 MongoDB
springboot之Mongo
MongoDB 是一个高性能,开源,无模式的文档型数据库,是当前 NoSql 数据库中比较热门的一种。
Vincent-yuan
2020/11/24
1.5K0
SpringBoot入门建站全系列(二十六)Mongodb非关系型数据库的使用
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
品茗IT
2019/09/09
4630
【探花交友】学习MongoDB快速入门上手
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
陶然同学
2023/02/24
3.5K0
【探花交友】学习MongoDB快速入门上手
Spring Boot 与 Kotlin 使用MongoDB数据库
下面就来简单介绍一下 MongoDB,并且通过一个例子来介绍 SpringBoot中对 MongoDB访问的配置和使用。
全科
2018/08/15
1.7K0
Spring和Mongodb非关系型数据库整合详解
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
品茗IT
2019/09/12
9260
SpringBoot整合MongoDB多数据源
依赖 // build.gradle implementation 'org.springframework.boot:spring-boot-starter-data-mongodb' 配置文件 # application.yml spring: data: mongodb: primary: uri: mongodb://localhost:27017/db1 secondary: uri: mongodb://localhost:
wo.
2021/06/15
8100
[Java基础篇]Spring Boot整合MongoDB
1970 年 EFCodd 提出的关系模型的论文“Arelational model of data for large shared databases”,这部分数据有很大一部分关系数据库管理系统(RDBMS)来。简单。
苏州程序大白
2022/04/14
1.1K0
[Java基础篇]Spring Boot整合MongoDB
Spring Boot 2.x基础教程:使用MongoDB
前段时间因为团队调整,大部分时间放在了团队上,这系列的更新又耽误了一下。但既然承诺持久更新,那就不会落下,今天开始继续更新这部分的内容!
程序猿DD
2021/03/09
1.8K0
SpringBoot整合mongoDB
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 这一片文章介绍一个springboot整合mongodb,如果你了解整合mysql之类的
dalaoyang
2018/06/14
6620
springboot 整合 MongoDB 实现登录注册,html 页面获取后台参数的方法
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
Krry
2018/09/10
4.2K0
springboot 整合 MongoDB 实现登录注册,html 页面获取后台参数的方法
【探花交友】day03—MongoDB基础
在tanhua-server工程创建SettingsController完成代码编写
陶然同学
2023/04/08
3.2K0
【探花交友】day03—MongoDB基础
SpringBoot整合Spring Data Mongodb
文章目录 1. SpringBoot整合Spring Data Mongodb 1.1. 简介 1.2. 何时使用 1.3. 安装 1.4. 概念解析 1.5. 使用 1.6. 分页查询 1.7. 常用的查询关键字 1.8. 事务 1.9. 源码 SpringBoot整合Spring Data Mongodb 简介 MongoDB是一款面向文档的数据库,类似json(Bson)的数据存储格式 何时使用 数据量大 数据价值较低 安装 docker pull mongo docker run --name
爱撒谎的男孩
2019/12/31
1.7K0
Spring Data MongoDB问题汇总
Spring Data除了常用的JPA(Hibernate)关系型数据库的模块外,还有其他用于非关系型数据库的数据交互模块:比如Redis、MongoDB、Elasticsearch等。
雨临Lewis
2022/01/12
2.1K0
springboot整合mongodb
想写这篇文章有好久了,可是一直没有时间坐下来去好好去写这一篇自己喜欢的文章了,也算是自己的一次总结吧。
码农王同学
2020/03/25
4580
Spring Cloud整合MongoDB示例
1. 文档型数据库:MongoDB 中的数据以JSON-like的BSON(Binary JSON)格式存储,数据模型更加灵活,每个文档可以有不同的字段和结构,这不同于关系型数据库的严格表格结构。
用户7353950
2024/04/15
4700
Spring Cloud整合MongoDB示例
相关推荐
springboot(十一):Spring boot中mongodb的使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档