背景

在学校内就用过蓝牙技术参加过比赛(并拿了奖);而蓝牙作为物联网中比较常见的协议,有必要进行深入的学习。此后的文章会以 ble(v4.0) 进行学习。

介绍

蓝牙技术最初由电信巨头爱立信公司于 1994 年创制,当时是作为 RS232 数据线的替代方案。蓝牙可连接多个设备,克服了数据同步的难题。随着蓝牙耳机、蓝牙鼠标、蓝牙音箱等蓝牙设备渐渐充斥着我们的生活,蓝牙早已不单纯是数据线的替代方案。

如今蓝牙由蓝牙技术联盟(Bluetooth Special Interest Group,简称 SIG)管理。蓝牙技术联盟在全球拥有超过 25,000 家成员公司,它们分布在电信、计算机、网络、和消费电子等多重领域。

简单地说,蓝牙是一种短程宽带无线电技术,是实现语音和数据无线传输的全球开放性标准。它使用跳频扩谱(FHSS)、时分多址(TDMA)、码分多址(CDMA)等先进技术,在小范围内建立多种通信与信息系统之间的信息传输。

蓝牙使用跳频技术,将传输的数据分割成数据包,通过79个指定的蓝牙频道分别传输数据包。每个频道的频宽为1 MHz。蓝牙4.0使用2 MHz 间距,可容纳40个频道。第一个频道始于2402 MHz,每1 MHz一个频道,至2480 MHz。有了适配跳频(Adaptive Frequency-Hopping,简称AFH)功能,通常每秒跳1600次。

最初,高斯频移键控(Gaussian frequency-shift keying,简称GFSK)调制是唯一可用的调制方案。然而蓝牙2.0+EDR 使得 π/4-DQPSK和 8DPSK 调制在兼容设备中的使用变为可能。运行GFSK的设备可以以基础速率(Basic Rate,简称BR)运行,瞬时速率可达1Mbit/s。增强数据率(Enhanced Data Rate,简称EDR)一词用于描述π/4-DPSK 和 8DPSK 方案, 分别可达2 和 3Mbit/s。在蓝牙无线电技术中,两种模式(BR和EDR)的结合统称为"BR/EDR射频"。

蓝牙是基于数据包、有着"主从架构"的协议。一个主设备至多可和同一网域中的七个从设备通讯。所有设备共享主设备的时钟。分组交换基于主设备定义的、以312.5µs为间隔运行的基础时钟。两个时钟周期构成一个625µs的槽,两个时间隙就构成了一个1250µs的缝隙对。在单槽封包的简单情况下,主设备在双数槽发送信息、单数槽接受信息。而从设备则正好相反。封包容量可长达1、3、或5个时间隙,但无论是哪种情况,主设备都会从双数槽开始传输,从设备从单数槽开始传输。

Bluetooth的主要技术特点:

(1)、工作频段 :2.4GHz的工科医(ISM)频段,无需申请许可证。大多数国家使用79个频点,载频为(2402+k)MHz(k=0,1, 2…78),载频间隔1MHz。采用TDD时分双工方式。

(2)、传输速率:1Mb/s(V2.0以上版本)

(3)、调试方式:BT=0.5的GFSK调制,调制指数为0.28-0.35。

(4)、采用跳频技术:跳频速率为1600跳/秒,在建链时(包括寻呼和查询)提高为3200跳/秒。蓝牙通过快跳频和短分组技术减少同频干扰,保证传输的可靠性。

(5)、语音调制方式:连续可变斜率增量调制(CVSD,ContinuousVariable Slope Delta Modulation),抗衰落性强,即使误码率达到4%,话音质量也可接受。

(6)、支持电路交换和分组交换业务:蓝牙支持实时的同步定向联接(SCO链路)和非实时的异步不定向联接(ACL链路),前者主要传送语音等实时性强的信息,后者以数据包为主。语音和数据可以单独或同时传输。蓝牙支持一个异步数据通道,或三个并发的同步话音通道,或同时传送异步数据和同步话音的通道。每个话音通道支持64kbps的同步话音;异步通道支持723.2/57.6kbps的非对称双工通信或433.9kbps的对称全双工通信。

(7)、支持点对点及点对多点通信:蓝牙设备按特定方式可组成两种网络:微微网(Piconet)和分布式网络(Scatternet),其中微微网的建立由两台设备的连接开始,最多可由八台设备组成。在一个微微网中,只有一台为主设备(Master),其它均为从设备(Slave),不同的主从设备对可以采用不同的链接方式,在一次通信中,链接方式也可以任意改变。几个相互独立的微微网以特定方式链接在一起便构成了分布式网络。所有的蓝牙设备都是对等的,所以在蓝牙中没有基站的概念。

(8)、工作距离:蓝牙设备分为三个功率等级,分别是:100mW(20dBm)、2.5mW(4dBm)和1mW(0dBm),相应的有效工作范围为:100米、10米和1米。

蓝牙版本信息

蓝牙的主要版本:1.11.22.02.13.04.05.0

1.1版本

传输率约在748~810kb/s,因是早期设计,容易受到同频率之产品所干扰下影响通讯质量。

1.2版本

同样是只有748~810kb/s 的传输率,但在加上了(改善 Software)抗干扰跳频功能。

2.0+EDR版本

是1.2的改良提升版,传输率约在1.8M/s~2.1M/s,开始支持双工模式——即一面作语音通讯,同时亦可以传输档案/高质素图片,2.0 版本当然也支持 Stereo 运作。

应用最为广泛的是Bluetooth2.0+EDR标准,该标准在2004年已经推出,支持Bluetooth 2.0+EDR标准的产品也于2006年大量出现。虽然Bluetooth 2.0+EDR标准在技术上作了大量的改进,但从1.X标准延续下来的配置流程复杂和设备功耗较大的问题依然存在。

2.1版本

更佳的省电效果:蓝牙2.1版加入了SniffSubrating的功能,透过设定在2个装置之间互相确认讯号的发送间隔来达到节省功耗的目的。

3.0+HS版本

2009年4月21日,蓝牙技术联盟(Bluetooth SIG)正式颁布了新一代标准规范"Bluetooth Core Specification Version 3.0 High Speed"(蓝牙核心规范3.0版 ),蓝牙3.0的核心是"GenericAlternate MAC/PHY"(AMP),这是一种全新的交替射频技术,允许蓝牙协议栈针对任一任务动态地选择正确射频。最初被期望用于新规范的技术包括802.11以及UMB,但是新规范中取消了UMB的应用。

4.0 版本(也称为Bluetooth Smart)

蓝牙4.0的改进之处主要体现在三个方面:电池续航时间节能设备种类上。

4.0版本的一般性改进包括推进蓝牙低功耗模式所必需的改进、以及通用属性配置文件(GATT)和AES加密的安全管理器(SM)服务

蓝牙4.0包括2个版本,再细分的话是3个子规范,即经典蓝牙(BT、其中包括传统蓝牙技术v1.x v2.0、高速蓝牙v3.0)和新的蓝牙低功耗技术(BLE, Bluetooth Low Energy Module)。

  • 1) 经典蓝牙: 经典蓝牙包括旧有蓝牙协议
  • 2) 高速蓝牙: 高速蓝牙基于Wi-Fi
  • 3) 蓝牙低功耗协议: 蓝牙低功耗,也就是早前的Wibree,是蓝牙4.0版本的一个子集,它有着全新的协议栈,可快速建立简单的链接。

低功耗蓝牙是建立在传统蓝牙基础之上继而发展的。蓝牙低功耗技术采用可变连接时间间隔,这个间隔根据具体应用可以设置为几毫秒到几秒不等。另外,因为BLE技术采用非常快速的连接方式,因此可以处于“非连接”状态(节省能源),此时链路两端相互间仅能知晓对方,必要时可以才开启链路,然后在尽可能短的时间内关闭链路。

作为蓝牙1.0 ~ 3.0版本中蓝牙标准协议的替代方案,BLE主要面向对功耗需求极低、用纽扣电池供电的应用。芯片设计可有两种:双模、单模和增强的早期版本。

  • 单模情况下,只能执行低功耗的协议栈。意法半导体、笙科电子、CSR、北欧半导体和德州仪器已经发布了单模蓝牙低功耗解决方案。单模芯片的成本降低,使设备的高度整合和兼容成为可能。它的特点之一是轻量级的链路层,可提供低功耗闲置模式操作、简易的设备发现、和可靠地点对多数据传输,并拥有成本极低的高级节能和安全加密连接
  • 双模情况下,Bluetooth Smart功能整合入既有的经典蓝牙控制器。截至2011年3月,高通创锐讯、CSR、博通和德州仪器已宣布发表符合此标准的芯片。适用的架构共享所有经典蓝牙既有的射频和功能,相比经典蓝牙的价格上浮也几乎可以忽略不计

拥有低成本,跨厂商互操作性,3毫秒低延迟、100米以上超长距离、AES-128加密等诸多特色此外,蓝牙4.0的有效传输距离也有所提升。3.0版本的蓝牙的有效传输距离为10米(约 32英尺),而蓝牙4.0的有效传输距离最高可达到100米(约328英尺)。

5.0版本

蓝牙5.0针对低功耗设备,有着更广的覆盖范围和相较四倍的速度提升。蓝牙5.0会加入室内定位辅助功能,结合Wi-Fi可以实现精度小于1米的室内定位。

低功耗模式传输速度上限为2Mbps,是之前4.2LE版本的两倍。有效工作距离可达300米,是之前4.2LE版本的4倍。添加导航功能,可以实现1米的室内定位。

为应对移动客户端需求,其功耗更低,且兼容老的版本。

蓝牙 系统 构成

1、Radio : 无线射频单元:
负责数据和语音的发送和接收,特点是短距离、低功耗。蓝牙天线一般体积小、重量轻,属于微带天线。

2、LinkController :基带或链路控制单元:
进行射频信号与数字或语音信号的相互转化,实现基带协议和其它的底层连接规程。

3、LinkManager:链路管理单元:
负责管理蓝牙设备之间的通信,实现链路的建立、验证、链路配置等操作。

4、蓝牙软件协议实现:
Host部分,不同的主机可以移植不同的协议栈。一般蓝牙芯片通过UART、USB、SDIO、I2S、PcCard和主控芯片通信。

蓝牙协议规范

按照蓝牙协议的逻辑功能,协议堆栈分为3个部分:应用协议、中介协议、传输协议。

某个协议的实现代码称为协议栈(protocol stack)

传输协议

负责蓝牙设备间,互相确认对方的位置,以及建立和管理蓝牙设备间的物理链路;

  • 底层传输协议:蓝牙射频(Radio)部分、基带链路管理控制器(Baseband&Link Controller)、链路管理协议(Link ManagerProtocol LMP)。负责语言、数据无线传输的物理实现以及蓝牙设备间的联网组网。
  • 高层传输协议:逻辑链路控制与适配器(LogicalLink Control and Adaptation Protocol)L2CAP 、主机控制接口(HostControl Interface,HCI)。为高层应用屏蔽了跳频序列选择等底层传输操作,为高层程序提供有效、有利于实现数据分组格式。

中介协议

为高层应用协议或者程序,在蓝牙逻辑链路上工作提供必要的支持,为应用提供不同标准接口。

  • 串口仿真协议:RFCOMM、服务发现协议:SDP、互操作协议IrDA、网络访问协议:PPP、IP、TCP、UDP、电话控制协议:TCS、AT指令集。

应用协议

蓝牙协议栈之上的应用软件和所涉及到的协议,如:拨号上网、语言功能的应用程序。

蓝牙的应用框架如下:

  1. 通用应用类框架:查询、建立连接服务等;
  2. 蓝牙电话应用类框架:电话控制、语言;
  3. 蓝牙连网应用类框架:网络应用相关;
  4. 对象交互服务类框架:IrDA、OBEX;
  5. 蓝牙音视频控制类框架。

完整的蓝牙协议栈如下图所示,不是任何应用都必须使用全部协议,而是可以只使用其中的一列或多列。

蓝牙主从模块

  1. 主机就是能够搜索别人并主动建立连接的一方
  2. 从机则不能主动建立连接,只能等别人连接自己
  3. 主从一体就是能够在主机和从机模式间切换,即可做主机也可作从机

蓝牙技术的优缺点

优点

  • 低功率,便于电池供电设备工作
  • 便宜,可以应用到低成本设备上
  • 同时管理数据和声音传输
  • 低延时

缺点

  • 传输距离有限
  • 数据传送速率为24 Mb/s
  • 不同设备间协议不兼容
  • 需要本地数据记录,以确保数据不间断可用
  • 存在被攻击的可能性:(拒绝服务攻击、窃听、中间人攻击、消息修改、资源滥用)

蓝牙协议分类

HFP(Hands-free Profile)

HFP(Hands-free Profile),让蓝牙设备可以控制电话,如接听、挂断、拒接、语音拨号等,拒接、语音拨号要视蓝牙耳机及电话是否支持。

HSP

HSP 描述了 Bluetooth 耳机如何与计算机或其它 Bluetooth 设备(如手机)通信。连接和配置好后,耳机可以作为远程设备的音频输入和输出接口,这是最常用的配置,为当前流行支持蓝牙耳机与移动电话使用。它依赖于在64千比特编码的音频/s的CVSD的或PCM以及AT命令从GSM 07.07的一个子集,包括环的能力最小的控制,接听来电,挂断以及音量调整。典型的使用情景是使用无线耳机与手机进行连接。可能会使用HSP的若干设备类型:耳机、手机、PDA、个人电脑、手提电脑

A2DP

A2DP全名是Advanced Audio Distribution Profile(蓝牙音频传输模型协定),A2DP是能够采用耳机内的芯片来堆栈数据,达到声音的高清晰度。有A2DP的耳机就是蓝牙立体声耳机。声音能达到44.1kHz,一般的耳机只能达到8kHz。如果手机支持蓝牙,只要装载A2DP协议,就能使用A2DP耳机了。还有一般所说的技术参数提到蓝牙V1.0 V1.1 V1.2 V2.0——这些是指蓝牙的技术版本,是指通过蓝牙传输的速度,他们是否支持A2DP具体要看蓝牙产品制造商是否使用这个技术

AVRCP

  1. AVRCP(Audio/Video Remote Control Profile),也就是音频/视频远程控制规范
  2. AVRCP设计用于提供控制TV、Hi-Fi设备等的标准接口。此配置文件用于许可单个远程控制设备(或其它设备)控制所有用户可以接入的A/V设备。它可以与 A2DP 或 VDP 配合使用
  3. AVRCP定义了如何控制流媒体的特征。包括
    1) 暂停
    2) 停止
    3) 启动重放
    4) 音量控制
    5) 其它类型的远程控制操作
  4. AVRCP 定义了两个角色
    1) 控制器: 控制器通常为远程控制设备,控制器将检测到的用户操作翻译为 A/V 控制信号,然后再将其传输至远程 Bluetooth 设备。对于"随身听"类型的媒体播放器,控制设备可以是允许跳过音轨的耳机
    2) 目标设备: 目标设备为特征可以更改的设备。在 AVRCP 中,目标设备则是实际的播放器。常规红外遥控器的可用功能可以在此协议中实现
  5. AVRCP 协议规定了AV/C 数字接口命令集的应用范围,实现了简化实施和易操作性。此协议为控制消息采用了AV/C 设备模式和命令格式,这些消息可以通过音频/视频控制传输协议 (AVCTP) 传输

OPP

蓝牙通信程序部分需采用用于设备之间传输数据对象OPP Profile: Object Push Profile由于OPP profile又细分为OPPC (client)端和OPPS(server)端profile,这两个profile区别在于只有client端可以发起数据传输的过程,但是附件设备与手机通信的情景中,既有手机发起数据传输请求也有设备侧发起传输请求的需要,所以要在设备中实现OPPC和OPPS两个profile

PBAP

电话号码簿访问协议(Phonebook Access Profile)

蓝牙 BLE 协议学习: 000-有关概念介绍的更多相关文章

  1. 蓝牙 BLE 协议学习: 001-BLE协议栈整体架构

    背景 在深入BLE协议帧之前,我们先看一下BLE协议栈整体架构. 转载自:<深入浅出低功耗蓝牙(BLE)协议栈> 架构 如上图所述,要实现一个BLE应用,首先需要一个支持BLE射频的芯片, ...

  2. 蓝牙 BLE 协议学习: 3种蓝牙架构实现方案(蓝牙协议栈方案)

    导言 不同的蓝牙架构可以用在不同的场景中.从而协议帧的架构方案也会不同. 转载自:<三种蓝牙架构实现方案(蓝牙协议栈方案)> 蓝牙架构实现方案有哪几种?我们一般把整个蓝牙实现方案叫做蓝牙协 ...

  3. [蓝牙] 2、蓝牙BLE协议及架构浅析&&基于广播超时待机说广播事件

    第一章 BLE基本概念了解 一.蓝牙4.0和BLE区别   蓝牙4.0是一种应用非常广泛.基于2.4G射频的低功耗无线通讯技术.蓝牙低功耗(Bluetooth Low Energy ),人们又常称之为 ...

  4. USB2.0协议学习笔记---基本概念

    概念  USB是一种串行通信总线(Universal Serial Bus),经历的版本有USB1.0,USB1.1.USB2.0等.USB是一种主从模式的结构,因此它无法在设备与设备.主机与主机之间 ...

  5. 蓝牙(Bluetooth) IEEE 802.15.1 协议学习

    catalogue . 蓝牙概念 . 配对和连接 . 机密安全性 . 蓝牙协议分类 . 蓝牙协议栈 1. 蓝牙概念 蓝牙(Bluetooth)是一种无线技术标准,可实现固定设备.移动设备和楼宇个人域网 ...

  6. 玩转BLE(3)_使用微信蓝牙精简协议伪造记步数据

    1. 前言 在物联网时代,有一个问题肯定会让人头疼(现在已经初露端倪了): 物联网中的IOT设备有两个主要特点: 1)简单小巧(不具备复杂的人机交互接口,需要手机等终端设备辅助完成配置.控制等功能). ...

  7. 蓝牙协议分析(3)_BLE协议栈介绍

    1. 前言 通过“蓝牙协议分析(2)_协议架构”的介绍,大家对蓝牙协议栈应该有了简单的了解,但是,肯定还有“似懂非懂.欲说还休”的感觉.有这种感觉太正常了,毕竟蓝牙协议是一个历史悠久又比较庞大的协议, ...

  8. 蓝牙BLE: ATT协议层中属性(Attribute)

    ATT(Attribute Protocol)属性层是GATT和GAP的基础,它定义了BLE协议栈上层的数据结构和组织方式. 属性(Attribute)概念是ATT层的核心,ATT层定义了属性的内容, ...

  9. 【miscellaneous】 GStreamer应用开发手册学习笔记之基础概念介绍

    第3章. 基础概念介绍 本章将介绍GStreamer的基本概念. 理解这些概念对于你后续的学习非常重要,因为后续深入的讲解我们都假定你已经完全理解了这些概念. 3.1. 元件(Elements) 元件 ...

随机推荐

  1. Github 结合 Hexo 搭建轻量博客

    http://www.open-open.com/lib/view/open1481532171287.html 开始 Hexo 是一个快速.简洁且高效的博客框架.Hexo 使用 Markdown(或 ...

  2. java 操作 csv文件

    CSV是逗号分隔文件(Comma Separated Values)的首字母英文缩写,是一种用来存储数据的纯文本格式,通常用于电子表格或数据库软件.在 CSV文件中,数据“栏”以逗号分隔,可允许程序通 ...

  3. Lesson 16 The modern city

    What is the author's main argument about the modern city? In the organization of industrial life the ...

  4. 【原】openresty学习

    参考文档: 1.openresty最佳实践:https://moonbingbing.gitbooks.io/openresty-best-practices/content/ 2.openResty ...

  5. Python学习第十五课——类的基本思想(实例化对象,类对象)

    类的基本思想 类:把一类事物的相同的特征和动作整合到一起就是类类是一个抽象的概念 对象:就是基于类而创建的一个具体的事物(具体存在的)也是特征和动作整合到一块 对象写法 # 对象写法 def scho ...

  6. JS 数组相关

    数组 function SelectLoadTable() { var mids = $("#mids").val(); var halls = $("#halls&qu ...

  7. 【PAT甲级】1017 Queueing at Bank (25 分)

    题意: 输入两个正整数N,K(N<=10000,k<=100)分别表示用户的数量以及银行柜台的数量,接下来N行输入一个字符串(格式为HH:MM:SS)和一个正整数,分别表示一位用户到达银行 ...

  8. Linux centos7 rsync工具介绍、rsync常用选项、rsync通过ssh同步

    一.rsync工具介绍 rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync.rsync是Linux系统下的文件同步和数据传输工具,它采用“rsync ...

  9. CF1285D Dr. Evil Underscores

    挂个链接 Description: 给你 \(n\) 个数 \(a_1,a_2,--,a_n\) ,让你找出一个 \(x\) ,使 \(x\) 分别异或每一个数后得到的 \(n\) 个结果的最大值最小 ...

  10. shell 脚本通过Webhook 发送消息到微信群

    代码如下: #!/bin/sh # Filename: msg.sh # # Usage msg.sh "message text" # # 1. check if missing ...