1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 低功耗蓝牙BLE之连接建立

低功耗蓝牙BLE之连接建立

时间:2023-11-11 03:49:56

相关推荐

低功耗蓝牙BLE之连接建立

从设备可以自行决定广播的时间,它们是最需要保存电量的设备,这样的设计并无不妥。但是,如果主设备已经在做其他事情,也许是一些更重要的事情,那么它必须让低功耗蓝牙错开当前的活动。在连接建立期间,有两个参数用来传递上述信息:窗口大小和窗口间隔。

当连接请求数据包发送完毕,存在一个1.25ms的强制时延,紧接着是发送窗口偏移和发送窗口。发送窗口偏移可以是0到连接间隔之间的任意值,但必须为1.25ms的整数倍。从发送窗口开始,从设备打开其接收器,并等待来自主设备的数据包。如果到发送窗口结束时仍未收到数据包,从设备终止侦听,并会在一个连接的间隔后再次尝试。

关于连接过程,最有趣的一个地方是,一旦发送了连接请求,主设备便认为自身有了连接;该连接已经创建(created),但还不能算是完全确立(established)。当从设备收到连接请求时,它也认为自己已经处在连接之中;连接已经创建,但不能证明完全确立。

出于效率的考虑,连接已经创建,主机就会立即收到通知。连接可能不会成功,从设备也许收不到连接请求,或者两个设备的距离很远。这些情况如果发生,连接失败的概率将变得很高。然而,由于主机收到了连接已创建的通知,它可以开始将数据发给控制器从而为首个无线数据包的传输做好准备,并且节约时间和能量。因为第一个数据包的发送至少会在1.25ms延迟之后,主机堆栈应该有足够的时间向控制器提供数据,以便在第一时间发送出去。这种强制性的延迟为设备提供了喘息的机会:在繁重的广播规程与连接正式确立之间,电池获得了宝贵的恢复时间。

只有收到了数据包确认,连接才能视为正式确立。确立不改变连接的工作方式,但它改变了链路监控超时的时间从之前的6个连接间隔,变为了在连接请求中设定的值。这样一来,如果连接不能迅速确立的话将会立即终止。

连接事件和连接参数

这部分是重点内容,所以下一篇博文来详细阐述。

博文地址:点击打开链接

自适应跳频信道图

自适应跳频信道图是数据信道的位掩码,用来标记信道的好坏。由于共有37个数据信道,信道图的长度于是设为37位。如果某一位被设置为1,表明该信道良好,可用于数据通信;如果该位为0,表明该信道很糟,不可用于数据通信。

跳频算法的跳数值是在5 ~ 16之间的一个随机数。跳数值被用在自适应重映射之前的跳频算法中。显然,跳数值不能为0,否则频率永远不会改变。

非常低的跳数也是不可取的,因为大多数的干扰一般会占据好几兆带宽,使用非常小的跳数值将不会快速地将传输带离干扰源,可能造成持续干扰。同样的逻辑也适用于17或更高的值。试想,如果增量为17,由于跳频算法中要对37个信道取模,每两个频率之间的差距将紧紧只有3个信道。

睡眠时钟精度

最后,主设备发往从设备的信息中还包括睡眠时间精度值。该值定义了时钟能够保证的精度范围。如果时钟由晶振提供,晶振有一个根据温度变化的精度范围,比如在室温下为20ppm,在0℃ 或85℃ 时为50ppm。如此一来,设备可以声明其时钟精度达到50ppm。

时钟精度可以帮助从设备消除连接事件的不稳定性。如果从设备与主设备的不同步时间达到1s,而这两个设备的定时精度均为500ppm,那么,将合并的不确定性1000ppm乘以上述时间,就得到一个1ms的不确定窗口。也就是说,从设备必须提早1ms醒来,并在这额外的1ms内保持侦听,以仿主设备和从设备的时钟在不同的方向发生了最大漂移。

更精确的时钟可以降低功耗。还是以使用晶振的设备为例,如果两个设备的时钟精度分别为50ppm和150ppm,二者合并后的精度只有200ppm。一秒钟之后,从设备只需要提前200μs醒来并保持侦听。如果设备被唤醒的频率不高,他们的可用工作时间将5倍于两个使用500ppm晶振的设备。因此,如果对降低功耗有特别的要求,建议在设备中使用高精度的晶振。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。