BLE 链路层状态机

版权声明:本BLOG上原创文章未经本人许可,不得转载,否则属于侵权行为 https://blog.csdn.net/weixin_40204595/article/details/83743621

在链路层,BLE设备有两种角色:

(1) Master role:主设备,在通信建立的过程中起主导作用,发起连接建立。

(2) Slave role:从设备,在通信建立的过程中发送广播消息的设备会作为从设备。

链路层的状态有如下几种:

(1) Standby:在此状态下链路层不收发任何数据包,任何其它状态都可以转换为该状态。

(2) Advertising:链路层在此状态下将会发送广播消息,或者处于侦听广播响应消息。

(3) Scanning:在这种状态下,链路层会扫描是否有广播消息。

(4) Initiating:链路层在这种状态会侦听广播信道消息,链路层也会响应广播消息从而启动连接建立。

(5) Connection:设备建立连接之后就进入connection状态。

上述各个状态之间的转移图如下(图片来源于BLE协议规范):


(1) 对于主设备而言,它的状态转移路径为:standby->initiating->connection->standby;

(2) 对于从设备而言,状态转移路径为:standby->advertising->connection->standby;

(3) 对于scanning状态,主要用于如下场景:当一个设备在收到advertise消息之后,如果想要获取关于该advertiser更多的信息,会进入scanning状态。
 

猜你喜欢

转载自blog.csdn.net/weixin_40204595/article/details/83743621