蓝牙协议链路层状态机

Dave Du bio photo By Dave Du

  • 扫描态:处于扫描态的设备能够接收广播信道的报文。有两个子状态:主动扫描和被动扫描,被动扫描仅接收广播报文,主动扫描则发送扫描请求给广播态的设备,并获取附加的扫描响应数据。
  • 就绪态:上电后即进入就绪态,可以从其它状态进入就绪态
  • 广播态:处于广播态的链路层可以发送广播报文,也可以发送扫描响应,用以回应主动扫描的设备。可被发现或者可被连接的设备需要处于广播态。想向一定区域内其他设备广播数据的设备也需要处于广播态。 广播态的设备停止广播后进入就绪态,在收到发起者的连接请求后进入连接态。
  • 发起态:为了发起连接,链路层需要处于发起态。处于发起态的发起者,其接收机用于侦听自己试图连接的设备,如果收到了来自该设备的广播报文,链路层会向其发送连接请求并进入连接态,并假设广播者也进入了连接态。如果发起者不再试图发起连接,也可以进入就绪态。
  • 连接态:从广播态或发起态均可进入连接态,两种情况均源于发起者向广播者发送连接请求报文。连接态有两个子状态:主或从。这也是唯一一个用到数据信道的状态,其它各状态均使用广播信道。 主连接态只能从发起态进入,成为主设备,它必须向对端设备发起连接,主设备必须定期向从设备发送报文,从设备只有通过回复这些报文才能发送自己的数据。 从连接态只能从广播态进入,成为从设备,它必须向对端设备进行广播。