zoukankan      html  css  js  c++  java
  • BLE控制器之链路层

    该部分主要描述链路层的状态以及状态的转换 

    链路层状态

    链路层状态机定义了5中状态:

    • 就绪态
    • 广播态
    • 扫描态
    • 发起态
    • 连接态

    状态转换图如下图:

    下面会结合这个转换图来介绍各个状态之间相互转换的过程

    就绪态

    就绪态是链路层的中心态,虽然是非活动状态,但是相对比较重要。能够和其他状态进行相互转化。

    其他状态转向就绪态:

    1. 上电后,链路层进入就绪态
    2. 广播状态完毕,没有建立连接的话会回到就绪态
    3. 发起态没有建立连接,也会回到就绪态
    4. 扫描态完毕后也只能回到就绪态
    5. 连接态在断开的情况下会回到就绪态。

    就绪态转向其他状态

    1. 设备需要发起扫描时,进入扫描态
    2. 设备需要发起广播时,进入广播态
    3. 设备需要发起连接时,进入发起态

     广播态

    用于设备发起广播,通过广播报文提供自己的信息给其他设备。

    在广播态的设备可以发送广播、还可以发送扫描响应回应发起扫描请求的设备。

    进入广播态

    • 设备发起广播则进入广播态

    转向其他态

    1. 停止广播并且没有建立连接则回到就绪态。
    2. 有设备发起连接请求则进入连接态

    扫描态

    扫描态用于设备发起扫描,发现周围的其他设备。在这个状态的设备能够接收广播报文。分为被动扫描

    和主动扫描: 被动扫描仅仅监听广播报文,主动扫描则发送扫描请求给广播态设备,获取附加的扫描响应数据

    扫描态的设备只能回到就绪态,转换条件爱你是停止扫描。

     发起态

    用于设备发起连接,链路层需要处于发起态。在这个状态设备可以想广播设备发起连接请求。此时会假设

     广播者也进入连接状态,自己也会进入连接状态。

    进入发起态

    设备需要向广播设备发起连接请求。则进入该状态

    退出发起态

    设备不再发起连接请求

    设备已经建立连接则进入连接态。

    连接态

     设备从广播态或者发起态建立连接后均会进入连接态。

    进入连接态

    • 广播者接收连接请求进入连接态
    • 发起者发起连接请求进入连接态

    退出连接态

    • 设备断开连接后则回到就绪态

     多状态的情况

     指的是一个设备同时被配置为从设备、主设备,即常说的主从一体,可以作为从设备发送广播,也可以作为主设备

    扫描接收广播和发起连接。

    注意:

    1. 同一时刻,要么是主设备、要么是从设备,而不能既是主设备又是从设备。

    2. 一个设备不能同时成为两个主设备的从设备。(经典蓝牙另论)

  • 相关阅读:
    C++ 将对象写入文件 并读取
    IronPython fail to add reference to WebDriver.dll
    How to Capture and Decrypt Lync Server 2010 TLS Traffic Using Microsoft Tools
    .net code injection
    数学系学生应该知道的十个学术网站
    Difference Between Currency Swap and FX Swap
    Swift开源parser
    谈谈我对证券公司一些部门的理解(前、中、后台)[z]
    JDK8记FullGC时候Metaspace内存不会被垃圾回收
    JVM源码分析之JDK8下的僵尸(无法回收)类加载器[z]
  • 原文地址:https://www.cnblogs.com/yunxiangworld/p/8004617.html
Copyright © 2011-2022 走看看