蓝牙的Link controller单元 位于core system 中 controller sub-system 的 Baseband layer. 如下图.
Link Controller 管理的所有的连接状态有.
STANDBY, CONNECTION,和 PARK; 此外还有七个子状态page, page scan,
inquiry, inquiry scan, master response, slave response, 和 inquiry response.
1. STANDBY state
The STANDBY state is the default state in the device. In this state, the device
may be in a low-power mode. Only the native clock is running at the accuracy
of the LPO (or better).
2. CONNECTION ESTABLISHMENT SUBSTATES (建立连接需要的子状态)
建立连接需要paging 过程,这个过程包括子状态 page scan ,page 以及page response : master response ,slave response
2.1 page scan 子状态
寻呼扫描状态,在该模式下,设备监听包含自己的设备访问码(DAC)的寻呼列。一旦设备希望接受寻呼数据包时,就进入寻呼扫描模式,扫描将按照寻呼(跳频)序列(page hopping sequence)进行,如果设备接受了一个寻呼包,就会进入子设备响应状态slave response state)
2.2 page 子状态
寻呼状态 当一个设备搜索其他设备时所进入的状态。该设备使用寻呼(跳频)序列发送一个寻呼包(ID packet),用来通知其他设备,它打算了解其他设备及其服务。
2.3 page response 子状态
page response 包括 master response 和 slave response
2.3.1 master response 子状态
寻呼(主设备)响应状态
第一步:一旦源设备接收到其最初发出的寻呼消息的回复,就会进入该状态。之后,就会发送FHS packet包到其目的设备。通过使用寻呼(跳频)序列来完成发送工作。
第二步:一旦源设备接收到第二个回复(Page Slave Response State: Step2),它知道目的舍设备已经接收到源设备在第一步已经发送的FHS包,源设备现在成为目的设备(slave)的主设备(master)。
2.3.2 slave response 子状态
第一步:一旦目的设备(destination)接收到来自源设备的DAC ,就会进入该状态,它将发送一个响应信息给源设备,通过使用呼(跳频)序列完成发送工作。
第二步:一旦目的设备接收到来自源设备的FHS packet 包,目的设备就会发送一个响应给源设备(一个包含目的设备DAC 的ID包)。
第三步:目的设备将切换到源设备的信道参数上,目的设备现在成为源设备的子设备。
3. DEVICE DISCOVERY SUBSTATES (设备查询的子状态)
要发现其他蓝牙设备,蓝牙设备本身需要进入inquiry 子状态.
在这个子状态中,设备不停的发送inquiry message 在不同的hop频率上.
如果一个设备允许自身被查找到,那么它需要有按时的进入inquiry scan 子状态.以便接受查询数据包。目标设备之后将进入查询响应状态(inquiry response state),并发送一个查询回复给源设备。一旦查询过程完毕之后,就会通过寻呼过程(paging procedure)建立一个连结。
3.1 Inquiry scan substate
查询扫描状态,当设备想接受查询包时,就会进入查询扫描状态。扫描是根据查询跳频序列进行的。
3.2 Inquiry substate
查询状态,一旦设备想发现新的设备,就会进入查询状态,此时,该设备就向规定范围内的所有设备广播出其查询包(ID packet),包中包含了IAC。通过使用查询调频序列把包发送出去。在查询状态的设备也可以接受查询回复(FHS packets),但是,,该设备不会对这些包进行确认。
3.3 Inquiry Response Substate
查询响应状态,当设备接收到一个查询包之后,可以用查询响应包进行响应(一种FHS包)。通过使用查询响应跳频序列( inquiry response hopping sequence)进行发送。
4. CONNECTION STATE
连接状态主从单元使用主设备的 channel access code 和时钟,并且使用了AFH_channel_map.
在连接状态使用基本的自适应的调频信道.
连接状态开始于主单元发送POLL数据包,通过这个数据包主单元即可检查从单元是否已经交换到了主单元的时序和跳频信道。从单元即可以任何类型的数据包响应。
连接状态的蓝牙设备可以处于以下三种状态之下:活动(Active)、保持(Hold)、呼吸(Sniff)模式。
活动(Active) | 该模式下,主单元和从单元通过侦听、发送或者接收数据包而主动参与信道操作。主单元和从单元相互保持同步。 |
呼吸(Sniff) | 该模式下,为了获得主单元发送给自己的消息而侦听每个时隙的从单元在指定的时隙上嗅探。结果从单元可以在空时隙睡眠而节约功率。 |
保持(Hold) | 该模式下,某台设备可以临时不支持ACL数据包并进入低功耗睡眠模式,从而为寻呼、扫描等操作提供可用信道。 |
5. PARK STATE 暂停状态
当某台从单元无需使用微微网信道却又打算维持和信道的同步时,它可以进入暂停状态,这种状态是一种低功耗模式,几乎没有任何活动。设备放弃逻辑传输地址(Logical Transport Address : LT_ADDR),取而代之设备接受 暂停成员地址(Parked Member Address:PM_ADDR)和访问请求地址(Access Request Address:AR_ADDR)。