我是靠谱客的博主 平常短靴,最近开发中收集的这篇文章主要介绍BLE蓝牙技术,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 1.概述:
1)  技术规范

每个规范版本按通信距离可再分为Class1和Class2:
        •Class1:传输功率高、传输距离远,但成本高、耗电量大,不适合作为个人通信产品,多用于部分商业特殊应用场合,通信距离大约在80m~100m之间。
        •Class2:目前最流行的制式,通信距离大约在8~30m之间,视产品的设计而定,多用于手机、蓝牙耳机、蓝牙适配器等个人通信产品,耗电量和体积较小,方便携带。
 

 2)基本概念:
•主/从设备:蓝牙通常采用点对点的配对连接方式,主动提出通信要求的设备是主设备(主机),被动进行通信的设备为从设备(从机)。
•蓝牙设备状态:蓝牙设备有待机和连接两种主要状态,处于连接状态的蓝牙设备可有激活、保持、呼吸和休眠4种状态。
•对等网络Ad-hoc:蓝牙设备在规定的范围和数量限制下,可以自动建立相互之间的联系。由于网络中的每台设备在物理上都是完全相同的,因此又称为对等网。
•跳频扩频技术(FHSS): 只有匹配接收机知道发射机的跳频方式,可以有效排除噪音和其他干扰信号,正确地接收数据。
•时隙:蓝牙采用跳频扩频技术,跳频频率为1600跳/秒,即每个跳频点上停留的时间为625 us,这625us就是蓝牙的一个时隙。
•蓝牙时钟:蓝牙时钟是蓝牙设备内部的系统时钟

3)蓝牙的目标
•在所有移动设备之间以及任何小范围内的各种信息传输设备、各种电器设备之间建立起无线连接。
        Ø统一各类电话
        Ø无线电缆工作环境
        Ø流动办公室
        Ø外设与主机无线连接
        Ø电子商务

2.蓝牙协议体系
蓝牙协议采用分层结构,遵循开放系统互联(OSI,Open System Interconnection)
参考模型:

 

查看源图像

3.蓝牙优势
主要有低成本,低功耗,实现小尺寸,点对点连接,语音与数据混合传输以及高抗干扰能力等。
具体以下几个方面:
开放性优势:支持企业多、协议公开无偿使用
成本优势:无需基站
便携式优势:体积小,功耗较小
频带优势:使用了跳频扩频技术
安全性优势:抗干扰能力强、保密性好

4.蓝牙状态
蓝牙设备主要运行在待机和连接两种状态。
•从待机到连接状态,要经历7个子状态:寻呼、寻呼扫描、查询、查询扫描、主响应、从响应、查询响应。
•蓝牙设备默认的工作状态:待机
•一旦设备被唤醒,便处于连接状态,将在预先设定的32个跳频频率上接听信息。
•连接:

状态

描述

激活

(Active)

         该模式下,主单元和从单元通过侦听、发送或者接收数据包而主动参与信道操作。主单元和从单元相互保持同步。

呼吸

(Sniff)

        该模式下,主单元只能有规律地在特定的时隙发送数据,从单元只在指定的时隙上“嗅探”消息,可以在空时隙睡眠而节约功率。呼吸间隔可以根据应用需求做适当调整。

保持

(Hold)

        该模式下,设备只有一个内部计数器在工作,可为寻呼、扫描等操作提供可用信道。保持模式一般用于连接几个微微网或能耗低的设备。在进入该模式前,主节点和从节点应就从节点处于保持模式的持续时间达成一致。当时间耗尽时,从节点将被唤醒并与信道同步,等待主节点的指示。

休眠

(Park)

        当从单元无需使用微微网信道却又打算和信道保持同步时,可以进入休眠模式。在该模式下,设备几乎没有任何活动,不支持数据传送,偶尔收听主设备的消息并恢复同步、检查广播消息。设备被赋予一个休眠成员地址(Parking Member Address:PM_ADDR)并失去其活动成员地址(Active Member Address:AM_ADDR)。

微微网:
•蓝牙的网络结构有两种拓扑形式:微微网和散射网(分布式网络)
•微微网是蓝牙基本的组网方式,散射网由多个微微网组成
•在同一个微微网中:
        •一个蓝牙设备可以同时与最多7个其他蓝牙设备相连。
        •各单元之间共享一个信道。
        •有且只有一个主单元,其余为从单元。
        •主单元控制微微网从建立到数据传送到最后结束通信的整个过程。

 蓝牙状态转换:

子状态

描述

寻呼(Page)

        该子状态被主单元用来激活和连接从单元,主单元通过在不同的跳频信道内传送从单元的设备识别码(DAC)来发出寻呼消息。

寻呼扫描(Page Scan)

        在该子状态下,从单元在一个窗口扫描存活期内以单一跳频侦听自己的设备接入码(DAC)。

从响应(Slave Responce)

        从单元在该子状态下响应主单元的寻呼消息。如果处于寻呼扫描子状态下的从单元和主单元寻呼消息相关即进入该状态。

主响应(Master Responce)

        主单元在该状态下发送FHS数据包给从单元。如果主单元收到从单元的响应后即进到该子状态。当从单元收到主单元发送的FHS数据包后,将进入连接状态。

查询(Inquiry)

该子状态被主单元用于收集蓝牙设备地址,发现相邻蓝牙设备的身份。

查询扫描

(Inquiry Scan)

        在该子状态下,蓝牙设备侦听来自其他设备的查询。此时扫描设备可以侦听一般查询接入码(GIAC,General Inquiry Access Code)或者专用查询接入码(DIAC,Dedicated Inquiry Access Code)。

查询响(Inquiry Responce)

        对查询而言,只有从单元才可以响应而主单元则不能。从单元用FHS数据包响应,该数据包包含了从单元的设备接入码、内部时钟和某些其他从单元信息。

 5.蓝牙编址
设备地址:4种基本类型
        •BD_ADDR:48位的蓝牙设备地址。
                •唯一地标志了每个蓝牙设备
                •总长度48位
                •按从最小有效位(LSB)到最大有效位(MSB)主要分为3
                部分:24位低地址部分LAP、8位高地址部分UAP和16位非有效地址部分NAP
        •AM_ADDR:3位激活状态成员地址。
        •PM_ADDR:8位休眠状态成员地址。
        •AR_ADDR:访问请求地址,休眠状态的从单元通过它向主单元发送访问消息。

从节点地址:具有不唯一性,根据状态不同可分配3种不同的地址
        •AM_ADDR:处于激活状态下的从节点地址
        •PM_ADDR:处于休眠状态的成员地址。
        •AR_ADDR:从节点的访问请求地址。

 6.蓝牙数据分组
蓝牙技术同时支持数据语音信息的传送,在信息交换方式上采用了电路交换分组交换的混合方式。
在蓝牙的信道中,数据是以分组的形式进行传输的,将信息进行分组打包,时间划分为时隙,每个时隙内只发送一个数据包。

分组格式:
标准的数据分组格式如下:
                •识别码:用于数据同步、DC偏移补偿和身份识别。
                •分组头:包含了链路控制(LC)信息。
                •有效载荷:携带上层的语音和数据字段。

 识别码:蓝牙设备在不同工作模式下使用不同的识别码,识别码有三种不同类型:
                •信道识别码CAC(Channel Access Code):用于标识一个微微网。
                •设备识别码DAC(Device Access Code):用于指定的信令过程,比如寻呼和寻呼应答。
                •查询识别码IAC(Inquiry Access Code):分为通用查询识别码(GIAC)和专用查询识别码(DIAC)两种。
                                通用查询识别码(GIAC):为所有设备通用,用于检测指定范围内的其他蓝牙设备
                                和专用查询识别码(DIAC):被某种类型的蓝牙单元使用,具有同种类型的蓝牙单元使用相同的DIAC,用于发现在指定范围中符合条件的专用蓝牙设备。

有效载荷:
        •针对不同的数据链路,蓝牙分组的有效载荷可以分为语音段载荷和数据段载荷
        •ACL数据分组只有数据段载荷
        •SCO数据分组只有语音段载荷
        •DV分组同时含有语音段载荷和数据段载荷

 分组类型:
                •微微网中的分组类型和其链接方式(SCO/ACL)有关
                •不同链路的不同分组类型由分组头中的TYPE位唯一区分
                •可分为5种公共分组、4种SCO分组和7种ACL分组3大类
                              SCO分组用于同步SCO链接
                              ACL分组用于异步ACL链接方式

分组名称

描述

公共分组

ID

由设备识别码(DAC)或查询识别码(IAC)组成,长度为68位,是一种可靠的分组,常用于呼叫、查询及应答过程中。

NULL

是一种不携带有效载荷的分组,由信道识别码(CAC)和分组头组成,总长度为128位。NULL分组用于返回链接信息给发送端,其自身不需要确认。

POLL

与NULL类似,但需要一个接收端发来的确认。主单元可用它来检查从单元是否启动。

FHS

表明蓝牙设备地址和发送方时钟的特殊控制分组,常用于寻呼、主单元响应、查询响应及主从切换等。采用2/3 FEC纠错编码。

DM1

一种通用分组,可以为两种物理链路传输控制消息,也可携带用户数据。

SCO分组

HV1

含有10个信息字节,使用1/3 FEC纠错码,无有效载荷头和CRC码,常用于语音传输。

HV2

含有20个信息字节,使用2/3 FEC纠错码,无有效载荷头和CRC码,常用于语音传输。

HV3

含有30个信息字节,无FEC纠错码,无有效载荷头和CRC码,常用于语音传输。

DV

数据-语音组合包,有效载荷段分语音段和数据段两部分,可进行数据和话音的混合传输。语音字段没有FEC保护,从不重传;数据字段采用2/3 FEC,可以重传。

ACL

分组

DM1

      一种只能携带数据信息的分组,含有18个信息字节和16位CRC,采用2/3 FEC编码。

DH1

     类似于DM1分组,含有28个信息字节和16位CRC,无FEC编码。

DM3

     一种具有扩展有效载荷的DM1分组,含有123个信息字节和16位CRC,采用2/3 FEC编码。

DH3

     类似DM3分组,含有185个信息字节的和16位CRC,无FEC编码;

DM5

      一种具有扩展有效载荷的DM1分组,含有多达226个信息字节,采用2/3 FEC编码;

DH5

     类似于DM5分组,含有多达341个字节的信息和16位CRC,但无FEC编码;

AUX1

     类似于DH1分组,含有30个信息字节,没有CRC。

 7.蓝牙4.0
蓝牙4.0是蓝牙技术联盟于2010年推出的标准,包含高速蓝牙、经典蓝牙和低功耗蓝牙(Bluetooth Low Energy,BLE)三种模式,分别应对以数据交换与传输、信息沟通与设备连接、低带宽设备连接为主的不同应用需求。

低功耗蓝牙BLE设备状态:
•低功耗蓝牙规范中,有两类报文:广播报文和数据报文。
•设备利用广播报文发现、连接其它设备。一旦连接建立之后,则开始使用数据报文。

查看源图像

BLE报文结构

1)前导
  前导是一个8比特的交替序列。不是01010101就是10101010,取决于接入地址的第一个比特。
2)接入地址
  两种类型:广播接入地址和数据接入地址。
广播接入地址:固定为0x8E89BED6,在广播、扫描、发起连接时使用。
数据接入地址:随机值,不同的连接有不同的值。在连接建立之后的两个设备
间使用。
       报头的内容取决于该报文是广播报文还是数据报文。广播报文的报头如下图所示:

 

 蓝牙4.0的信道:
•传统蓝牙通过79个指定的蓝牙频道进行数据包传输每个频宽1MHZ。
•蓝牙4.0只有40个信道,编号0-39,BLE4.0每个信道带宽为2MHZ,在相同的总带宽下, 蓝牙4.0的信道数减少一半。
•低功耗蓝牙规定了3个广播信道和37个数据信道。

 低功耗蓝牙特点:
•1.最低功耗-----以最低的功耗进行设计
•2.高效益------有蓝牙低功耗技术的双模技术和传统蓝牙功能。
•3. 稳定性,安全性和可靠性------使用适应跳频(AFH)技术,从而确保低功耗蓝牙可以在 “嘈
杂”的RF环境中保持稳定的传输。
•4.无线共存-----蓝牙技术,无线局域网,IEEE802.15.4/无线个人局域网和许多专有无线电都使用2.4GHz医疗(ISM)频段
•5.连接范围------可实现长达300米的连接范围。
•6.多种工作模式------低功耗蓝牙通常基于连接到多个从属设备的主设备,并且一个设备可以同时进行扫描和广播。

传统蓝牙和低功耗蓝牙的技术对比:

技术规范

传统蓝牙

低功耗蓝牙

无线电频率

2.4GHz

2.4GHz

理论通信距离

100m

>100m

空中数据率

1~3Mbps

1Mbps

支持活跃从设备数

7

未定义(理论最大值为232)

延迟

100ms

6ms

安全性

64/128-bit

128-bit AES

语音能力

耗电量

1W

(参考值)

0.01~0.5W

(依赖使用情况)

峰值电流消耗

<30mA

<15mA

最后

以上就是平常短靴为你收集整理的BLE蓝牙技术的全部内容,希望文章能够帮你解决BLE蓝牙技术所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部