博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BLE控制器之链路层二
阅读量:5366 次
发布时间:2019-06-15

本文共 1648 字,大约阅读时间需要 5 分钟。

本部分主要描述设备的发现过程

 

广播实例:

 


广播分类

设备的发现过程是和广播分不开的,所以先来看看广播。

首先来看看广播,广播包括几种广播。

  • 通用广播
  • 定向广播
  • 不可连接广播
  • 可发现广播

来看看这几种广播的定义和区别:

通用广播

它是用途最广的广播方式,这种广播可以被扫描设备扫描到,也可以在接收连接请求时作为
从设备进入一个连接。

定向广播

什么情况下用定向广播呢?
有时候,设备间需要快速建立连接,如果从设备想这么做,就需要进行定向广播,这种广播
包含两个地址,广播者的地址和发起者的地址。那么发起设备怎么做呢?-
发起设备收到发给自己的定向广播报文后,可以立即发送链接请求作为回应。
定向广播事件的时序特殊,完整的广播事件必须3.75ms重复一次,使得扫描设备只需要扫描
3.75ms便可以收到定向广播设备的消息。
这样又会带来新的问题,如此快的发送会让报文充斥着广播信道,导致该区域内的其他设备
无法进行广播,解决方法是,定向广播不可以持续1.28s以上的时间。只要时间到,即使主机
没有要求主动停止,或者链接没有建立,都会自动停止广播。之后,主机只能使用间隔更长
的通用广播,让其他设备来链接。

注意:

当使用定向广播时,设备不能被主动扫描,同时定向广播报文的净荷中也不能带有其他
附加数据,该净荷中只能包含两个必须的地址。

 

不可连接广播

不想被连接的设备会用不可连接事件广播。这种广播的典型应用包括设备只想广播数据,而
不想被扫描或者链接。
所以此类设备永远不会进入连接状态,一旦停止广播,则转入就绪状态。

可发现广播

特点是也不能用于发起链接,但是允许其他设备扫描该广播设备,这意味着该设备可以被发现
即可以广播数据,又可以相应扫描,但是也不能建立连接。
它用于那种即要通过广播广播动态数据出去,同时也可以通过扫描响应将静态数据广播给扫描
设备。


 

广播内容

既然上面一直提到广播,那么广播些什么内容给对方呢?
首先来看看广播内容的格式:
长度:类型:数据
广播数据就由这种格式类型的数据一段段组成,长度定义的后面的数据长度,而类型则定义
了数据的类型,这样定义的好处是什么呢。因为广播的内容,接收设备不一定都能识别,此时
接收设备就可以通过长度来进行忽略这部分内容,跳过,而不影响去解析下一段内容。

注意两点:

1,定向广播中是没有广播内容的。
2,广播内容是不可靠的,因为无法确定广播是否被其他设备给扫描到。或者监听到。


 

广播间隔

 既然提到了广播,则肯定会涉及到多长时间广播一次的问题。

除了定向广播以外,其他三类型的广播的间隔范围: 20ms-10.28s,通常情况下,广播中的设备会1秒中广播一次,

主机层可以通过广播间隔参数来进行调整和设置广播的间隔时间。

由于设备间的时钟会不同程度的飘逸,两个设备可能在很长一段时间同时广播而造成干扰,为防止这一情况的发生,

除定向广播外,其他广播在除了设定的广播间隔的时间外会加上一个0-10ms的随机值,以便和其他广播错开,这样

即使当前广播冲突,在下一次继续冲突的可能性就大大降低。


 

广播及设备发现过程

有了上述的概念后,再来看看广播和设备的发现过程。

广播过程

设备依次在3个广播信道上发送相同的广播报文。这些广播报文就是所谓的广播事件。广播之后,间隔一定的广播间隔时间,

继续下一次广播。

怎么停止广播呢?

1,是用户设置主动停止广播。

2,是广播后接收到连接请求后,设备进入连接状态,此时也会停止广播。

-----------------------------------------------------------------------------------------

发现过程

主机设备通过扫描来发现广播的设备,扫描用于接收广播事件,扫描的时间取决于有多少时间用于扫描以及

需要多快来发现其他设备。

 

转载于:https://www.cnblogs.com/yunxiangworld/p/8001600.html

你可能感兴趣的文章
Java内功心法,行为型设计模式
查看>>
向github项目push代码后,Jenkins实现其自动构建
查看>>
jquery中的ajax方法参数的用法和他的含义
查看>>
BZOJ 1226: [SDOI2009]学校食堂Dining
查看>>
数组去重的几种方法
查看>>
包装类的自动装箱与拆箱
查看>>
ShareSDk的使用
查看>>
android使用web加载网页的js问题
查看>>
libvirt log系统分析
查看>>
poj 1068 Parencodings
查看>>
docker 数据卷管理
查看>>
adb
查看>>
Apache Tomcat部署java web项目
查看>>
转泛型
查看>>
第二周 9.6-9.12
查看>>
347. Top K Frequent Elements
查看>>
angular4.0配置同时使用localhost和本机IP访问项目
查看>>
用mkdirs创建目录
查看>>
[转] Web前端优化之 Server篇
查看>>
如何让一个div的大小,从某一个特定值开始,随内容的增加而自动变化?
查看>>