专业

深圳网站优化客服热线:SEO

揭秘百度SEO快排7天上首页秘籍详情

深圳网站优化

当前位置:首页 > 技术教程

蓝牙core_v5.2协议-3 - osc_n08oztl3的个人空间 - OSCHINA

来源: 作者: 访问次数:18

蓝牙core_v5.2协议-3

o
 osc_n08oztl3 发布于 20分钟前
字数 2145
阅读 5
收藏 0
点赞 0
评论 0
observeropensslperiodiccos物联网layermesh

#2020云栖大会#阿里云海量offer来啦!投简历、赢阿里云限量礼品及阿里云ACA认证免费考试资格!>>>

继续上篇文章内容,我们继续VOL1中的3.5 LOGICAL LINKS AND LOGICAL TRANSPORTS小节之后的内容学习。本章节讲述了BLE传输数据时候,不同的数据流应该采用不同的协议去传输,即使用什么样的协议去传输什么样的数据。举个比较简单的例子:之前章节我们提到,ADV的广播方式是不可靠的数据传输方式,如果应用要求传输数据可靠度很高,就不可以采用ADV的方式去传播数据。

以下列举了目前BLE支持的logical transport方式:ACL(基于connect的可靠传输), ADV(基于广播的不可靠传输), ISO(流数据传输)


1. 传输使用的Logical transports介绍

LE ACL:基于连接的,用于传输LL and L2CAP control signaling and best effort asynchronous user data。此种传输使用NESN/SN和access address来保证传输的可靠性。传输的link包括LE-C,LE-U.

LE advertising broadcast (ADVB):基于广播的,broadcast control and user data to all scanning devices in a given area。不可靠的数据传输方式。传输的link包括ADVB-C,ADVB-U.

Connectionless Slave Broadcast (CSB):多连接情况使用的,基于连接的,不可靠传输方式。一般在LE中比较少用。

LE periodic advertising broadcast (PADVB):周期广播方式,基于广播的。transport periodic broadcast control and user data to all scanning devices in a given area。

Connected Isochronous Stream (CIS):基于连接的,传输同步流数据,支持sochronous data rates, latencies, and re-transmissions。举个例子:audio codec data can be generated at a 10 ms interval while the value of ISO_Interval for the CIS can be 11.25 ms.

Connected Isochronous Group (CIG):基于连接的,传输同步组数据,即多个CIS数据传输。

Broadcast Isochronous Stream (BIS):基于广播的,传输同步流数据,支持sochronous data rates, latencies, and re-transmissions。

Broadcast Isochronous Group (BIG):基于广播的,传输同步组数据,即多个CIS数据传输。


2. BLE拓扑图

 上图中存在5个网络:

网络A:ABCDE构成,AB,AC处于连接状态,AD,CE处于广播状态。这是一个比较典型的BLE复杂应用网络,属于多连接情况下的广播数据交换。

网络F:FG构成,FG处于连接状态。这是一个简单的BLE连接应用网络,例如一个手机连接手环。

网络H:HIJ构成,HIJ处于广播状态,同时互为接受者。这是一个蓝牙SIG MESH的基本网络方式。

网络K:KLMN构成,KL,KM处于连接状态,KN处于广播状态。这类网络应用较少,尤其是K设备同时具备Master和slaver的功能,在协议的实现上很难实现。

网络O:OPQR构成,OP,OP处于连接状态,OR处于广播状态。这类网络应用也比较少,设备O能够隶属入多个master,在时序上很难保证。


这里就不得不说下BLE蓝牙设备的几种基本形态了,方便理解上述图:

如图所示,BLE设备工作基本有四种形态:ADV-ing,SCAN-ing,INIT-ing,CONNECT-ing。这四种工作形态也决定了设备处于的角色,上图中可以看出设备处于connection状态的前提是先要处于ADV或者INIT。所以人为的把由ADV到connection的设备,称为slaver;相对应的由INIT到connection的设备,称为master。

上述的几种网络中不难看出,不少设备会兼容好几种状态。例如设备A,处于connect状态下,还有能力进行ADV,这样的设备在应用中很常见,同时也加大了芯片设计的难度。设备能够同时处于几种BLE状态,其必须要能够均衡好自己的时序,尤其是connect状态的时序,因为BLE的connect状态下,必须定期进行空包交互,才不至于丢失connect关系。


3. BLE安全相关SECURITY介绍

蓝牙安全模型包括五个不同的安全功能:配对、绑定、设备身份验证、加密和消息完整性(pairing, bonding, device authentication, encryption and message integrity)。

配对:创建一个或多个共享密钥的过程。

绑定:将配对过程中创建的密钥存储起来,以便在后续连接中使用,以形成一个受信任的设备对。

设备身份验证:验证两个设备是否具有相同的密钥。

加密:消息机密性。

消息完整性:防止消息伪造。

所谓的安全,就是通过一定的加密方式,使得数据通信信息不被窃取。上图中的一些算法,尤其是AES算法,是BLE中最基本的加密方法。

正如我们之前讲到的包格式,BLE中如果想把数据包加密,可以通过以下几种方式:

a. 直接加密payload,这是一种比较常见的加密方式,即传输的有效数据进行加密;

b. 对包头的地址进行加密,BLE中发送和接受数据都会有address这个说法,对其address进行加密,也可以达到数据加密的目的;

上面的两种方式,即是协议中说到的Encryption和Privacy。其中Privacy是BLE在4.2版本中(Link Layer privacy)提出的新feature,其实目前市场蓝牙芯片大多不使用这个feature。


4. BLE的profile架构

 

GAP:Generic Access Profile (GAP)。众多的profile中,GAP是一个通用的profile,它规定了一个设备的基本属性,例如:Broadcaster, Observer, Peripheral, and Central.

Broadcaster role(广播者):advertising to broadcast data. The Broadcaster role does not support connections. 即对应LL层以下的ADV设备。

Observer role (观察者):receives broadcast data contained in advertisements. The Observer role does not support connections. 即对应LL层的SCAN设备。
Peripheral role(外设):即连接中的slaver设备,只能隶属于一个master。

Central role(中心):即连接中的master设备,可以连接多个slaver设备。

一般的用户应用profile,基本都会包括GAP。如下图所示:


5. 共存问题和定位问题

蓝牙的工作频段位于2.4G,许多其他的无线设备也工作在这个频段。所以如何保证共存,是一个值得探讨的问题,蓝牙官方spec中也对此做出了探讨。目前市场上出现了不少wifi和ble同时可以使用的芯片,这种芯片能够使用wifi连接云端,同时还可以使用ble和其他设备进行通信,这在物联网时代是很不错的产品,这个是一个新的市场商机。

我们重点探讨如何实现wifi和ble进行共存的问题,在这个章节,spec提到了AFH是面临的一个基本问题,spec中不做具体说明。后面会继续涉及。

关于定位的问题,BLE提出了一种新的定位方式:(AoA和AoD),需要注意的是,使用这种方式必须工作在LE Uncoded PHYs。

关于AoA的基本框架图:

发送者在发送数据时候,正常发送。但是作为接收者,需要有多组天线接收数据,这样可以通过天线之间接收数据的差异来定位自己的位置。 这里有个重要的值:IQ采样值(不知道和智商IQ有没有关系。。。。),spec指出通过这个IQ采样值,就可以计算出自己的位置。

假设接收端有2根天线,同时天线之间的距离d为已知数据。

根据上图,我们可以计算出来,天线1和天线2的信号相位差ψ:

                                               ψ = (2πd cos(θ))/λ   (λ信号的波长,θ为到达角度)
那么:                                   

                                               θ = arccos((ψλ)/(2πd))

也就是说,一旦我们能够通过一定手段知道ψ这个值,我们就可以算出到达角θ。即可以知道自己设备的相对位置。

关于AoD的基本框架图:

和AoA存在很大的相似度,这里就不做描述。


6.  历届版本的新feature

4.2版本到5.0版本的更新,添加了以下几个feature:

 

5.0版本到5.1版本的更新,添加了以下几个feature:

5.1版本到5.2版本的更新,添加了以下几个feature:

之所以把版本更新列出来,主要是因为目前市场上的4.2芯片居多。很多自称5.0的芯片,其实只是部分支持5.0的相关feature,很少有芯片能够全部支持所有feature。 

 

本篇文章继续了之前Vol1剩下的章节,后面我们会接着探讨BLE的Vol 3:Host协议。。。。。

  • 全面实用的SEO竞争对手研究
  • seo优化逻辑和品牌如何进行口碑建设
  • 「飞优seo」手把手教你如何安装宝塔面板
  • 移动端SEO优化应该注意的几点
  • 你不知道的SEO常见术语,万词霸屏带你深入了解!
  • seo如何获取长尾流量
  • 企业网站建设seo优化如何写好软文
  • SEO优化案例中常犯的7个错误
  • SEO需要抛弃老旧观点才能跟上节奏
  • SEO优化对一个企业的影响力有多大
  • 让您的网站提升排名的SEO四步策略
  • 单页网站怎么做SEO优化与推广
  • 评价分析、FB兴趣发现、客户管理、SEO相关,我们推荐这50个工具
  • 想让网站流量翻倍,那你会做seo优化吗
  • SEO搜索优化,你可以不做外链吗?
  • seo软文写作必备知识
  • 杭州优化公司教你怎样通过SEO做产品宣传推广?
  • 网站SEO标题规划操作,网页标题修改后应该怎么办?
  • 2020年10个步骤让你从SEO小白到专家
  • 企业网站建设seo优化排名不稳定是什么原因?
  • SEO优化|如何判断是否过度优化 爱帮网络总结五点
  • 当心SEO优化行业中的伪科学
  • SEO指南:学习如何对网站进行SEO
  • SEO常用的关键词扩展分析工具有哪些?
  • 新手SEO需要学习十大要点我们相信许多企业都知道SEO优化是非常重要的,当他们第一次进入互联网。他们希望通过搜索引擎的免费频道获得大量流量。那么如何学习搜索引擎优化呢?这里我们给你一些建议。 1、准备空间和域名 SEO有很多概念术语,当然,这些都是要记住的,但不建议死记硬背,而是在实践中(操作网站优化时)要记住,因为死记硬背很容易忘记,而且你也不会真正理解它的含义。因此,我们主张我们应该从学习SEO的第一天开始操作。学习SEO一定要实践,即使你学了2年SEO课程,如果你没有实践过,你只会成为SEO的理
  • 有效SEO优化攻略已备好,咨询、转化不再“愁”
  • SEO网站诊断怎么做?几点基本因素和大家分享
  • SEO指南:学习如何对网站进行SEO
  • 如何做好seo优化内链工作
  • 如何做好seo优化内链工作
  • 网站改版的SEO注意事项!
  • 网站SEO课程笔记整理版!
  • 外贸网站优化所需采用的SEO策略
  • 百度SEO优化,什么时间增加内容与反向链接?
  • SEO网站数据分析调整
  • 雇佣SEO公司前请尝试15个SEO技巧
  • 关于网站seo的几点小常识,你知道多少?
  • SEO内容策划和文案是根基
  • 什么是SEO文章?seo文章的作用方法
  • SEO优化外包公司该怎么选?