IT学习站-137zw.com

作者: 风来时狂放
查看: 86|回复: 0

more +资源更新Forums

more +随机图赏Gallery

价值368元 从Docker到K8S实战视频教程 五年工程师主讲 百度云价值368元 从Docker到K8S实战视频教程 五年工程师主讲 百度云
价值299 opencv+tensorflow入门人工智能图像处理 百度云 网盘 下载价值299 opencv+tensorflow入门人工智能图像处理 百度云 网盘 下载
价值199元 Nginx中间件搭建负载均衡安全防护动静分离视频 ...价值199元 Nginx中间件搭建负载均衡安全防护动静分离视频 ...
价值348元 RabbitMQ消息中间件技术精讲2018视频教程 百度云价值348元 RabbitMQ消息中间件技术精讲2018视频教程 百度云
云豹直播平台全套源码无限制完美运营版(安卓+IOS)源码云豹直播平台全套源码无限制完美运营版(安卓+IOS)源码
Spring Security4企业权限管理视频,完整版课程下载Spring Security4企业权限管理视频,完整版课程下载

Bluetooth(蓝牙)连接过程分析

Bluetooth(蓝牙)连接过程分析

[复制链接]
风来时狂放 | 显示全部楼层 发表于: 2019-11-14 08:25:02
风来时狂放 发表于: 2019-11-14 08:25:02 | 显示全部楼层 |阅读模式
查看: 86|回复: 0

你还没有注册,无法下载本站所有资源,请立即注册!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
一 基本概念

  蓝牙的连接过程是十分重要的,特别是做蓝牙的技术人员来说,这个是十分重要的。理它的流程,是一件必修课。虽然进入蓝牙行业很久了,以前没怎么系统化的做一些事情,趁此机会,就梳理一下这里面的内容吧。
  在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)通过发送一个来断开链接。
如果从设备接受了主设备的连接请求。蓝牙加密过程就有可能会被唤起(因为这个是可选项目,要根据主设备或者从设备的连接需求来定的)。如果没有加密的需求,主设备就会发送连接完成的消息给从设备,等两个设备都发送完连接完成的消息之后,系统底层的连接过程就算是结束了。整个流程如下图所示:
  
Bluetooth(蓝牙)连接过程分析  技术博客 1003156-20190906165501368-314552510

二 流程分析

  其实,蓝牙的链接流程比较复杂,和wifi相比,它多了很多可选项,这就导致看起来特别复杂。所以,在学习的时候,一定要有化繁为简的思维,从最简单的入手,下面的图就是完整的蓝牙连接流程图,如下所示。这个流程图向我们揭示了整个连接流程,乍一看,还是非常复杂的。假如你把这个流程分成两个步骤来看,就比较简单了,先看实线的部分,这个就是基本的连接过程,并且是必不可少的三个步骤。就是创建连接,连接请求,建立连接,断开连接四个步骤,每个步骤都是有请求和回复,这样理解就比较简单了。那些可选项,很多适合软件的关系不大的,重点只需要了解一下role switch和data flow。别的在有问题的时候,再翻一下协议栈看看估计就明白了,东西不多的。这样梳理一下,是不是你的蓝牙连接流程就清楚了?
  还有一个比较形象的描述,就像我们的销售美女拜访客户的过程:
第一回合:起动连接:
美女销售: 确认过眼神,是对的人。那就主动一点吧。先抛个媚眼,说声你好。
客户:环顾四周,好像是在给我说话呢。只能做个回答了。答应还是拒绝,就看人家对你的印象了。答应了,你好,请问有什么事情吗?
另外一种悲剧的结果:正在忙,不想理你,就直接回复了。不好意思,我不认识你。一口就回绝了。就没有后面的事情了。
第二个回合:连接请求:
美女销售: 我是XXX,什么公司的,想要根据什么产品的什么东西和你沟通一下啊,能否有时间,聊一下?
客户: 就看客户的心情了。老总答应了,那就会给个肯定的答复,可以接下来谈点事情了。
悲剧的结果:不好意思,我正在忙,改天你再来吧。谈话结束。
第三个回合:握手认识。
美女销售:伸出手,握手,算是认识了,接下来切入正题,开始谈业务了。
客户:握手,来会议室聊吧。
Bluetooth(蓝牙)连接过程分析  技术博客 1003156-20190906165641407-741266941

三 总结

  做了多年的协议,才发现协议的东西,很多都源于生活。其实,细想一下,本来就是这样子的。协议的作用就是为了方便人们沟通。它是人设计的,肯定很多东西都是基于人的思维和常用模式来做模型的。知道了这些,把生活中的场景和协议的场景对标起来,估计你很快就知道所谓的协议其实很简单了。虽然倒腾技术比较枯燥,假如你深入了进去,把产品当作你的孩子来看,估计会增添工作中多很多乐趣的。


来源:http://www.137zw.com
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
137zw.com IT学习站致力于免费提供精品的java技术教程和python技术教程,CCNA书籍/资料/CCNP书籍/资料教程/CCIE书籍/资料/H3C学习/认证/一级建造师考试/微软学习/认证/包括基础教程和高级实战教程,同时也提供分享网站源码下载和互联网相关一系列的技术教程,我们想做的就是让知识分享更有价值!(IT学习站官方唯一域名地址:www.137zw.com 请谨防假冒网站!)本站所有资源全部收集于互联网或网友自行分享,分享目的仅供大家学习与参考,如无意中侵犯您的合法权益,请联系本站管理员进行删除处理!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

浙ICP备19022368号-1|Archiver|手机版|IT学习站-137zw.com

GMT+8, 2020-7-6 00:37 , Processed in 0.264358 second(s), 32 queries .

快速回复 返回顶部 返回列表