蓝牙规范

阅读: 评论:0

蓝牙规范

蓝牙规范

文章目录

  • 4 空口协议
    • 4.1 帧间隔
      • 4.1.1 帧间间隔
      • 4.1.2 最小AUX帧间隔
      • 4.1.3 最小子事件间隔
    • 4.2 timing要求
      • 4.2.1 主动时钟精度
      • 4.2.2 休眠时钟精度
      • 4.2.3 延迟范围
      • 4.2.4 窗口扩展
    • 4.3 链路层设备过滤
      • 4.3.1 白名单
      • 4.3.2 广播过滤策略
      • 4.3.3 扫描过滤策略
        • 4.3.3.1 扩展扫描过滤策略
      • 4.3.4 发起态过滤策略
      • 4.3.5 建立定期同步状态过滤策略

4 空口协议

空口协议由多重访问方案、设备发现及链路层链接方法组成。

4.1 帧间隔

4.1.1 帧间间隔

在同一个通道索引下的连续2个数据包的时间间隔成为帧间间隔,它由上一个数据包的最后一个比特的到下一个数据包的第一个比特之间的时间间隔定义,帧间间隔被成为T_IFS并且位150us。

4.1.2 最小AUX帧间隔

最小AUX帧间隔为一个包含AuxPr的数据包和它标示的辅助包之间的最小时间间隔,它是由包含AuxPtr的数据包的最后一个比特到它的辅助包的第一个比特之间的时间间隔定义,最小的AUX帧间隔被称为T_MAFS并且为300us。

图4.1展示了最小AUX帧间隔的一个示例:

4.1.3 最小子事件间隔

最小子事件间隔为一个子事件的最后数据包的最后一个比特到下一个子事件的第一个数据包的第一个bit之间的时间间隔。

最小子事件间隔被称为T_MSS且为150us。

图4.2展示了在CIS中最小子事件间隔的应用示例:

图4.2展示了在BIS中最小子事件间隔的应用示例:

4.2 timing要求

链路层使用2种时钟精度的一种:在Section 4.2.1所述情况下,应使用主动时钟精度,其他情况下使用休眠时钟精度。

本节中指出的时钟精度只适用于发送数据包时的设备,用于定时接收数据包的时钟可能有精度误差,但是接收设备需要允许这个误差,例如,如果接收设备时钟精度为2000ppm则最大的偏差为45us,对于已经进行时间同步的上一个事件1秒之后的事件,设备至少需要提前2045µs开始监听,并至少持续到比它正常结束的时间晚2045µs。

4.2.1 主动时钟精度

在连接、BIG或CIG事件期间,在主动扫描期间,以及发起连接请求时的数据包发送的平均timing由主动时钟精度决定,其中漂移小于或等于±50ppm,所有瞬时timing与平均timing的偏差不得超过2µs。

注意:这意味着数据包发送的开始时间在上一个包结束以后的150±2us

具体的说,这些要求适用于下面的这些间隔:

  • 同一个连接事件的相邻的数据包。
  • 在同一个BIG或者CIG事件的数据包,即使他们在不同的CISes或BISes或不同的子事件。
  • 广播包和包含SCAN_REQ, AUX_SCAN_REQ, CONNECT_IND, 或AUX_CONNECT_REQ PDU的数据包
  • 包含SCAN_REQ的数据包和包含SCAN_RSP PDU的响应包。
  • 包含AUX_SCAN_REQ PDU的数据包和包含AUX_SCAN_RSP PDU的响应包。
  • 包含AUX_CONNECT_REQ PDU的数据包和包含AUX_CONNECT_RSP PDU的响应包。

4.2.2 休眠时钟精度

其他所有的活动的平均timing由休眠时钟精度决定,其中漂移小于或等于±500ppm,所有瞬时timing和平均timing的偏差不得大于16us,主动时钟最坏情况下的偏差和漂移应该小于或等于休眠时钟的偏差和漂移。

在连接中,设备使用的睡眠时钟精度不应低于最近发送的LL_CLOCK_ACCURACY_REQ或LL_CLOCK_ACCURACY_RSP PDU的SCA字段中提示的最坏的情况。如果在最近的连接中,链路层还没有初始化或响应休眠时钟精度更新过程(见Section 5.1.14),master应使用至少与用于创建连接的CONNECT_IND or AUX_CONNECT_REQ PDU`的SCA字段中提出的最坏情况下的精度相同的精度的休眠时钟,slave需要使用精度为±500ppm或更高的休眠时钟。

注意:这些要求适用于下面的时间间隔:

  • ACL锚点之间的时间(见Section 4.5.7)
  • CIS锚点之间的时间(见Section 4.5.14.1)
  • BIG锚点之间的时间(见Section 4.4.6.4)
  • 广播和定期广播间隔和advDelay值(见Section 4.4.2.2)
  • 在同一个扩展广播事件或定期广播事件中的数据包间隔
  • 由广播PDUs中的SyncInfo字段和AuxPtr字段指定的所有偏移量

注意:这意味着具有500ppm睡眠时钟精度的2秒连接间隔的master将需要在的锚点的两侧拓宽1ms加16µs加上在连接间隔内从机实际使用的时钟精度的任何允许值的窗口。

4.2.3 延迟范围

当两个设备之间的距离超过几米时,信号在它们之间传播所花的时间与Section 4.2.1中定义的主动时钟精度有重要关系。当设备在监听一个可能在D米以外的设备时,它应该在数据包可能已经被传输的最后时间(例如T_IFS + 2µs)之后侦听额外的2D * 4 ns。

(1/c ~= 3.3 * refractive index ns/m,因此4ns是一个保守的限值)
光速时30KM/s,因此1/c ~= 3.3ns/m,refractive index为介质折射率。

图4.4 展示了master的数据包发送时的延迟范围。

4.2.4 窗口扩展

在各种情况下,链路层都期待在一个确定的窗口(从receiveWindowStart 到 receiveWindowEnd)或确定的时间(receiveWindowStart 和receiveWindowEnd相等的时候)中接收数据包。但是由于主动时钟精度(见Section 4.2.1)和休眠时钟精度(见Section 4.2.2),对于链路层发送时候来说,窗口的确切时间是不确定的,因此接收端需要调整监听时间来容纳这个不确定性。

增加的监听时间称作窗口扩展,假设时钟精度以百万分之一(ppm)表示,通过下面公式进行计算:

当使用主动时钟时,J为2,当使用休眠时钟时,J为16,其他的参数在表4.1中定义:
注意:txCA为链路层发送的时钟精度,timeOf LastSync为链路层接收能够同步它的时钟到链路层发送时钟的最近时间。


注意:这只适用于从正确的发送者接收到包的事件,不管CRC是否匹配,时间是否重新同步。

如果接收端有关于链路层发送的时钟的更准确精度信息
,它可以选择一个较小的值作为transmitterAllowance

windowWidening = transmitterAllowance + receiverAllowance

其中,receiverAllowance是接收端为自己的时钟精度所做的余量。

接收端需要在receiveWindowStart前的windowWidening开始监听,直到receiveWindowEnd后的windowWidening结束。

ACL连接中的windowWidening应小于((connInterval ÷ 2) - T_IFS μs),如果windowWidening达到了((connInterval ÷ 2) - T_IFS μs).,则这个连接被认为已经丢失(见Section 4.5.12)。

如果CIS或NSE < 3的BIS的windowWidening达到了((ISO_Interval ÷ 2) - T_IFS)us,则链路层需要终止CIS(见Section 5.1.16)或停止和BIG同步。

如果CIS或NSE ≥ 3的BIS的windowWidening达到了Sub_Interval,则链路层需要终止CIS(见Section 5.1.16)或停止和BIG同步。

4.3 链路层设备过滤

链路层通过对端设备的设备地址来进行设备过滤,链路层通过链路层设备过滤来最小化它需要响应的设备的数量。

链路层需要支持链路层设备过滤,除非它只支持广播状态并且只支持不可链接不可扫描的广播。

广播状态,扫描状态,发起状态,建立定期同步状态的过滤策略是相互独立的,当链路层在广播状态时,应使用广播过滤策略,其他状态也分别使用对应状态的过滤策略。当链路层不支持广播态,扫描态,发起态或建立定期同步状态的时候,对应的过滤策略也不要求支持。

4.3.1 白名单

链路层用来做设备过滤的设备的集合叫做白名单。

白名单包括一组用于链路层设备过滤的白名单档案,一份白名单档案包括设备地址和设备地址类型(公共地址或随机地址),同样也有特殊的设备地址类型:匿名地址:这个类型匹配所有没有附带地址的广播。所有支持链路层设备过滤的链路层需要支持存储至少一条白名单档案。

复位的时候,白名单为空。

白名单由Host来配置并由链路层用作广播,扫描或初始化设备过滤,但不应用在定期同步建立中,这允许Host配置链路层在不唤醒Host的情况下进行请求操作。

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

4.3.2 广播过滤策略

广播过滤策略决定了广播者的链路层如果处理扫描和连接请求。

当链路层使用不可链接和不可扫描的定向广播事件,可扫描的定向广播事件,可链接的定向广播事件时,广播过滤策略可以被忽略。否则链路层需要使用由Host配置的下面集中广播过滤策略之一:

  • 链路层需要处理来自所有设备的扫描和连接请求(例如,未使用白名单的情况下),这是复位以后的默认值。
  • 链路层处理来自所有设备的连接请求,并且只处理来自白名单的设备的扫描请求。
  • 链路层处理来自所有设备的扫描请求,并且只处理来自白名单设备的连接请求。
  • 链路层只处理来自白名单设备的扫描和连接请求。

4.3.3 扫描过滤策略

扫描过滤策略决定扫描者的链路层如何处理广播和扫描回应PDUs,链路层需要使用由Host配置的下面几种扫描过滤策略之一:

  • 链路层处理所有的广播和扫描回应PDUs(不使用白名单的情况下),当然,不包含扫描者设备地址的定向广播PDU会被忽略,这是复位以后的默认值。
  • 链路层只处理白名单上的设备的广播和扫描回应PDUs,不包含扫描者设备地址的定向广播PDU会被忽略。

同一时间只支持一种扫描过滤策略。

注意:扫描过滤策略不影响发起态或建立定期同步状态,尽管他们涉及到了扫描广播PDUs。

4.3.3.1 扩展扫描过滤策略

如果链路层支持扩展广播过滤策略,则下面的模式需要被支持:

  • 链路层处理所有的广播和扫描回应PDUs(不使用白名单的情况下),当然,如果定向广播PDU的TargetA不是扫描者的设备地址或可解析的私有地址的话会被忽略。
  • 链路层只处理白名单上的设备的广播和扫描回应PDU,如果定向广播PDU的TargetA不是扫描者的设备地址或可解析的私有地址的话会被忽略。

4.3.4 发起态过滤策略

发起态过滤策略决定了发起者的链路层如何处理广播PDUs,链路层使用由Host配置的下面几种发起态过滤策略之一:

  • 链路层忽略掉白名单,处理通过Host配置的一个特定设备的可链接广播的PDUs。
  • 链路层处理白名单上的所有设备的可链接广播PDUs。

如果链路层接收到从广播者处接收到了一个可连接的定向广播,但是设备不在白名单中并且不是Host指定的设备地址,则这个可链接的定向广播会被忽略。

同一时间只支持一种发起态过滤策略。

4.3.5 建立定期同步状态过滤策略

建立定期同步状态过滤策略决定了扫描者的链路层在尝试与定期广播进行同步时如何处理广播PDUs,链路层使用由Host配置的下面几种建立定期同步状态过滤策略之一:

  • 链路层忽略定期广播者列表并且处理Host配置的特定设备的广播PDUs。
  • 链路层处理定期广播者列表的所有设备的广播PDUs。

如果链路层接收到来自不在定期广播者列表或Host配置的特定设备的广播者的包含SyncInfo字段的广播PDU,或者广播具有列表或Host中没有指明的广播SID,这个SyncInfo字段需要被忽略。

同一时间只支持一种建立定期同步状态过滤策略。

定期广播的同步和扫描同时进行,但是这两个活动的过滤策略是互相独立的,建立定期同步状态而不是扫描态过滤策略来决定使用哪一个广播PDUs来对定期广播进行同步(同步成功后发送给Host)。如果接收到的PDU只符合这两种策略的一种,则它只能被使用这种策略的过程处理而不是另一个过程处理。

当链路层使用定期广播同步传输流程(见Section 5.1.13)接收到定期广播序列时,链路层应该忽略定期广播者列表。

本文发布于:2024-01-28 23:32:39,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170645596311094.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:杂记6
下一篇:java conversion
标签:蓝牙
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23