一 基本概念
蓝牙的连接过程是十分重要的,特别是做蓝牙的技术人员来说,这个是十分重要的。理它的流程,是一件必修课。虽然进入蓝牙行业很久了,以前没怎么系统化的做一些事情,趁此机会,就梳理一下这里面的内容吧。
在paging流程结束之后,链接管理流程(LMP)一般就启动了,刚开始会完成时钟校准,版本,支持特性,名字和一些连接状态的初始化。paging 设备(设备A)会首先发起一个LMP_host_connection_req PDU.当另外一个设备(设备B)接收到这个消息时,会通知上层接收这个连接信息,设备B这时会相应的回一个接受连接(LMP accedpted PDU)或拒绝连接(LMP_not_accepted PDU)。 于此同时,如果这个从设备(slave)需要一个role switch, 它就会在接收到一个连接请求帧(LMP_host_connection_req PDU)之后,发送一个clock 偏转信息(LMP_slot_offset PDU)和 转换请求帧(LMP_switch_req PDU).如果role switch 成功,旧的slave设备会回复一个接受连接或者拒绝连接的命令。如果失败,对方就会发送一个拒绝role switch 的消息,原因码为(0x14)。
如果发起paging 的设备接收到一个对方拒绝连接的消息。它就会立即发送(LMP_detach)通过发送一个来断开链接。
如果从设备接受了主设备的连接请