Chinaunix首页 | 论坛 | 博客
  • 博客访问: 125403
  • 博文数量: 30
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 280
  • 用 户 组: 普通用户
  • 注册时间: 2015-12-14 10:05
个人简介

坚持学习,每天进步一点点……

文章分类

全部博文(30)

文章存档

2017年(13)

2016年(17)

分类: C/C++

2017-06-14 19:41:06

链路层的状态机一共有五种状态:
    1.standby State
    2.Advertising State
    3.Scanning State
    4.Initiating State
    5.Connection State
    链路层的状态机同一时刻只能处于一种状态,链路层应至少拥有一个支持Advertising State或者Scanning State的状态机。(状态机:由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心)。一个设备也可以拥有多个状态机。
1.standby State
    standby状态既不进行包的发送也不接受数据包,其他任何状态都可以直接进入standby state.
2.Advertising State
    Advertising State会在广播信道上发送自己的广播数据包,同时也可能会对其它设备进行回复。处于Advertising State的设备被称为advertiser。
3.Scanning State
    处于Scanning State的设备会侦听广播信道上正在广播设备的数据包。处于此种状态的设备成为scanner。
4.Initiating State
    处于Initiating State的设备会侦听并响应广播信道上特定设备的数据包以和另外一台设备进行连接,处于此种状态的称为initiator。
5.Connection State
    处于Advertising State或者Initiating State的设备可以直接进入Connection StateConnection State可以分为master role和slave role。Initiating State进入Connection State的是master role,从Advertising State进入Connection State的则是slave role。master将和slave设备通信并定义传输定时,slave device将只和一个master通信。
五种状态的切换图如下(摘自core_v4.2.pdf p2574):

也可以参考此篇博文:http://blog.csdn.net/zhaoshuzhaoshu/article/details/51029054(写的比较详细)
    

阅读(1892) | 评论(0) | 转发(1) |
0

上一篇:iov readv以及writev

下一篇:BLE设备地址

给主人留下些什么吧!~~