非淡泊无以明志,非宁静无以致远
全部博文(408)
分类: Android平台
2016-05-06 15:41:16
蓝牙的连接状态转换图如下:
Connection State:蓝牙连接状态,连接状态又有四个子状态,分别如下:
1. Active Mode:
在主动模式下,在微微网内部所有的从设备都可以和主设备通信,最多只能有七个从设备。所有的通信都有主设备来主导。微微网所有的从设备都会在主设备-> 从设备时隙上监听数据包。如果一个从设备没有被寻址,它将等待下一个数据传输。从设备能从主设备传输的包头获取传输占用的时隙,在此期间没有被寻址的设备将会等待传输时隙。具体可以查看下图,多从设备传输时序图:
2. Sniff Mode:
如果在主动模式下,从设备要时刻监听主设备发送过来的数据包,但是在Sniff模式下不需要,从而降低设备的功耗。在sniff模式下主设备将每隔Tsniff向从设备发送数据包,所以每隔Tsniff去监听主设备的数据包即可!slave就是只在下图中所示的sniff anchor point时监听。sniff mode只能应用于异步传输,不能应用于同步逻辑传输。
3.Hold Mode:
从机和主机协商一个保持时间,在此期间从设备进入低功耗模式但仍然保持LT_ADDR。异步传输在此模式下,不响应当然微微网的任何数据包。但在同步传输模式下(SCO,eSCO)需要支持保留时隙的数据包。在此模式下的设备可以scanning, paging, inquiring, 或者加入其它的微微网。
4. Connectionless Slave Broadcast Mode:
用来传输特性广播数据(profile broadcast data)。
5. Park State:
当一个从设备不需要一直参与微微网的信道,但是却需要保持跟信道的同步时,从设备可以进入Park state。
处于Park state状态下的从设备只有很少的活动,它会选择放弃它的逻辑传输地址 LT_ADDR,取而代之的是,它会使用两个新的地址:
PM_ADDR: 8-bit Parked Member Address
AR_ADDR: 8-bit Access Request Address
另外,为了达到低功耗的目的,在Park state下,一个master可以连接多于七个slaves. 在一时刻, 只有七个slaves可以开始连接状态。但是,通过交换active slave 和park slave, 在微微网中的slaves的数目可以达到更多(255 如果PM_ADDR被使用的时候,并且如果用了BD_ADDR,这个数目还可以随机大);