上一讲我们把免连接服务比作街头问路,问完就散。这一讲的故事要长得多:两台设备从敲响对方的大门,到互相出示证件、换锁、正式开始合作,最后好聚好散。这就是经典蓝牙里最核心的一条主线——ACL 连接的建立与拆除。整个流程在规范的概述图里被拆成十个步骤,其中有些是必选项,有些则像自助餐里的配菜,按需取用。
目录
一、一张地图看懂十步流水线
二、Step 1:敲门——HCI_Create_Connection 与寻呼
三、Step 2:门口换名片——特征交换
四、Step 3 与 Step 4:递拜访函,三种回复
4.1 剧本 A:被拒绝
4.2 剧本 B:接受,维持现状
4.3 剧本 C:接受,但我要当主设备(Step 4c)
五、Step 5:自适应跳频——让开拥挤的信道
六、Step 6 到 Step 8:安全三部曲
6.1 Step 6:索要钥匙
6.2 Step 7a:没有钥匙,现场配对(老式 PIN 流程)
6.3 Step 7b:有钥匙,直接鉴权
6.4 Step 8:换锁——启动加密
七、Step 9:握手收工
八、Step 10:好聚好散
九、实测log1:手机主动建链全景
十、实测log2:角色切换的真实耗时
十一、实测log3:拆链的层次与加密切换的互斥
十二、代码示例:一个最小的建链状态机
十三、测验
十四、写在最后
一、一张地图看懂十步流水线
先把这张总览图翻译成人话。十步分别是:发起建链、特征交换、连接请求、可选角色切换、可选 AFH、可选安全流程(又分成可选配对和可选鉴权两支)、可选加密、建链收尾、数据传输、拆链。
打个比方,这整个过程像一次商务拜访:
发起建链就是你敲对方公司的门(寻呼);
特征交换是双方在门口交换名片,摸清对方支持哪些业务;
连接请求是正式递上拜访函,对方可以拒绝、接受、甚至要求换他来坐主位(角色切换);
安全流程是出示身份证件、核对暗号(配对/鉴权),必要时把谈话内容加密(加密);
建链收尾是双方握手确认合作开始;