博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[BLE--Link Layer]物理信道
阅读量:7111 次
发布时间:2019-06-28

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

简述

有线通信,是用电缆直接连接。然后分距离的长短。有些会须要载入波,信号也可能会经过不同的调制方式调制。

无线通信也是一样,仅仅是信号的传输是通过射频了,通过在某一频段。对无线信道进行调制,将数据发送出去。

BLE物理信道

在Physical Layer部分提到过BLE的物理信道,一共40个,在2.4GHz的ISM频段。事实上BLE的这40个物理信道是分成了两组的。一组是Advertising信道(3个)。一组是Data信道(37个),详细情况例如以下:

这里写图片描写叙述
在连接成功建立之前。设备之间是通过Advertising信道交互数据的。而在连接成功建立之后,就使用Data信道进行数据交互了。

两个无线设备之间要进行通信。除了要遵循同一协议外,两者必须要调到同一信道,才会有正常的数据能够交换,不然一个在2404MHz,另一个在2430MHz,两者根本就不能接收到对方的数据的(就是常说的不在同一个频道……)。
因此在连接建立之前,仅仅用三个Advertising信道是有道理的,那样使得对方来扫描时。撞到同一频道的可能性就大大添加了。不然扫描扫半天,都没在同一频道过,那还怎么通信。BLE还使用了跳频,这是出于无线干扰以及安全性的考虑了。

关于Access Address

这里须要说明下Access Address,由于在考虑了无线通信时,须要两个设备调到同一个频道,才干进行通信,可是有时候可能有非常多个设备在使用。那么多个设备调到同一个频道的可能性也还是蛮大的,为了避免这样的多个设备某时刻工作在同一频率会造成的干扰。于是就设计了Access Address。该Address是一个无线发射器须要加在包中的,比如一个设备在发Advertising,它的Access Address是0x8E89BED8。那么有Scanner听到这个包后,也会用这个0x8E89BED8的Access Address与Advertiser通信,而Scanner要是听到的是别的Advertiser的包。就会使用另外一个Access Address去发Scan Request包。

关于Access Address做例如以下三点说明:

1. Access Address放在封包中。用于识别该physical channel下向哪一个设备发packet,这样某时刻工作在同一physical channel的设备就不至于packet混乱。
2. 从封包的Link Layer info能够看到每一个封包的确都有一个Access Address,Adv_pkt有一个固定Access Address。而intiator发con_req时会包括一个con_Access_Addr。连接之后的data pkt都是用的这个新的Access Addr了。
3. 每次又一次断开建立连接,Access Address会不一样。

事实上关于Access Address是另一些要求的,如不能有连续的6个1 bit位或6个连续的0 bit位,因此这样算下来。满足作为Access Address的4byte的组合中有231个是可用的。

转载于:https://www.cnblogs.com/gavanwanggw/p/7241181.html

你可能感兴趣的文章
Tomcat指定特定JDK版本
查看>>
JS字典 Dictionary类
查看>>
分离你的spring配置文件,让结构更清晰
查看>>
杜教筛 [学习笔记]【更新中】
查看>>
2014年辛星解读Javascript之DOM之事件及其绑定
查看>>
企业管理 把公司做小,把客户做大
查看>>
tiff和geotiff格式分析
查看>>
R语言低级绘图函数-arrows
查看>>
C#接口,类,集成
查看>>
js省市联动
查看>>
bzoj 4868: [Shoi2017]期末考试
查看>>
django(一)--- 安装django
查看>>
assetBundle打包脚本与LUA
查看>>
运用python抓取博客园首页的所有数据,而且定时持续抓取新公布的内容存入mongodb中...
查看>>
转 Python Selenium设计模式-POM
查看>>
vue.js应用开发笔记
查看>>
学习开淘宝网店
查看>>
计算机网络之物理层笔记
查看>>
Spring的Hello World工程
查看>>
linux可视化桌面安装
查看>>