低功耗蓝牙智能硬件开发实战(txt+pdf+epub+mobi电子书下载)

作者:谭康喜

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

低功耗蓝牙智能硬件开发实战

低功耗蓝牙智能硬件开发实战试读:

前言

蓝牙技术联盟于2010年年中正式发布“蓝牙4.0核心规范”,并启动对应的认证计划。会员厂商可以提交产品进行测试,通过后获得蓝牙4.0标准认证。该技术拥有极低的运行和待机功耗,使用一粒纽扣电池甚至可连续工作数年之久。蓝牙4.0开始支持传统蓝牙、低功耗蓝牙和高速蓝牙的技术融合,具有低功耗、经典和高速3种模式,低功耗模式用于不需占用太多带宽、对功耗比较敏感的设备的连接和通信。

低功耗蓝牙在诺基亚的Wibree标准上发展而来,是诺基亚设计的一项短距离无线通信技术,其最初的目标是提供功耗最低的无线标准,并且专门在低成本、低带宽、低功耗与低复杂性方面进行优化。该技术最初考虑加入WiFi联盟,但蓝牙阵营提供了更为有利的条件,所以才加入了蓝牙标准。如果从两者的通信方式上来说,低功耗蓝牙和经典蓝牙除了名字叫蓝牙外,可以认为是两套系统,但两者在总体流程上是相似的。

小米电视部门从2013年下半年开始立项“小米电视2代”,决定在这代电视上标配由纽扣电池供电的低功耗蓝牙遥控器。电视蓝牙芯片用的是博通公司的BCM43569蓝牙/WiFi Combo芯片,遥控器用的是Ti的CC2541,电视Android版本是4.4。本人也开始重点研究低功耗蓝牙技术。由于介入较早,技术过于前卫,市场上还没有出现任何搭载BLE技术的蓝牙外设,更不用说能有BLE遥控器作为参考对象了。BLE的技术参考资料也处于空白状态,唯一的参考就是蓝牙核心协议规范,而协议规范只是描述技术和参数细节,并不会系统地讲述BLE技术,故一切都靠自己摸索。

由于BLE技术还没有商用化,电视蓝牙(博通芯片)和遥控器蓝牙(Ti芯片)又是跨芯片厂商的,两边的协议软件堆栈也不成熟,又没有现成案例可参考,也从来没有电视厂商标配过低功耗蓝牙遥控器,使用纽扣电池对遥控器功耗要求非常高,这些因素导致了当时的技术难度极大地超乎预期,致使低功耗蓝牙项目几度面临生死存亡的问题。好在当时得到了博通、Ti和江苏惠通集团的全力支持。几方人员在小米呆了半年多时间,每天工作12小时以上,周末休息半天,多方合力才勉强推出了一个Feature Ready的版本,使得小米2代电视能标配低功耗蓝牙遥控器,并于2014年5月15日得以发布。由于BLE技术商用上的不成熟,造成了小米电视2代上市后,经常有用户反馈蓝牙遥控器失灵、粘键、卡键、耗电快、无法控制电视开机、遥控损坏等问题。这使得电视团队压力非常大,蓝牙团队不断地统计、分析和解决各种蓝牙软件、硬件和结构问题,又经历近半年多时间才一点点地收敛和解决问题,蓝牙系统才算基本稳定。期间,笔者在小米论坛上发布了一个低功耗蓝牙的技术帖,用于跟米粉互动、讨论和解决问题,帖子的浏览量高达5万多次。

此后的几年,小米电视/盒子朝着语音识别、人工智能和集成传感器的方向发展,从语音、体感、触摸和蓝牙/红外二合一(红外用于控制红外机顶盒)等方向陆续推出了一系列低功耗蓝牙遥控器。作为BLE产品化的先行者,小米为业界提供了很多的参考经验,解决了很多蓝牙芯片的协议软件问题,促进了BLE产业链的成熟。与小米电视合作过的蓝牙芯片厂商有:博通、高通、联发科、RealTek、Ti、Nordic、Dialog、Cypress。

在2014年年中的时候,由Robin Heydon写作、陈灿峰和刘嘉翻译的《低功耗蓝牙开发权威指南》的中文版出版,笔者买了一本,读后受益良多。此书讲述了低功耗蓝牙的产生背景和基本原理,是一本不可多得的低功耗蓝牙技术的权威理论书籍。同时网络上讨论、研究BLE的技术贴子开始逐渐多了起来,但还是缺乏工程实践方面的系统讲述。故笔者有了写作本书来分享经验的想法,希望对读者能有所帮助。

蓝牙技术已经开始全面支持Mesh网状网络,这意味着蓝牙Mesh终于走入实用阶段。蓝牙Mesh将低功耗蓝牙无线连接功能扩展至消费产品、智能家居,以及工业物联网应用中的多节点应用。而相应更多支持Mesh组网的蓝牙解决方案与蓝牙模块正在紧锣密鼓地设计开发中。低功耗蓝牙又将迎来更快速的发展期。本书组织结构

本书以笔者在低功耗蓝牙开发实践过程中的一些经验为背景,先介绍了低功耗蓝牙的体系结构、Android 5.1 Bluedroid的架构和一些功能模块,简要讲述了SMP协议、BLE属性协议、属性数据库的构建、查询以及服务和特性的使用,然后介绍了一些运用在小米电视/OTT 盒子/生态链投影仪的基于低功耗蓝牙的开发实战案例,最后介绍了Ellisys工具,讲述了蓝牙系统的调试,从3个方面列举并分析了4个典型Bug。

本书分为3篇,总计25章,具体内容如下。

第1篇,系统篇(第1~14章):首先介绍了蓝牙的发展历史和低功耗蓝牙的系统架构,然后介绍了Bluedroid协议栈的构架和功能模块,最后介绍了BLE的SMP、属性协议、属性数据库的构造和查询方法、BLE Hid设备的连接过程。● 第 1 章,低功耗蓝牙简介:介绍了蓝牙的发展历史、蓝牙4.0的

核心架构,以及BLE、ZigBee和WiFi的选择方法。● 第2章,Android蓝牙系统框架和代码结构:分析了Android蓝牙

的系统框架和代码结构,较为详细地介绍了Bluedroid的代码结

构。● 第3章,GKI模块简介:简要介绍了Bluedroid的GKI模块的事件原

理、任务管理和消息/事件的传递函数。● 第 4 章,Bluedroid的消息传递机制:较为详细地介绍了

Bluedroid的消息传递和处理机制,分析了消息的结构体,以及消

息管理和内存管理的有机集合的机制。● 第5章,TASK简介:简单介绍了Bluedroid的TASK之间的消息传

递和处理。● 第6章,Bluedroid状态机简介:较详细地介绍了Bluedroid的状态

机运行机制。● 第 7 章,HCI接口层简介:详细介绍了HCI层及其与Bluedroid、

libbt-vendor之间的接口调用关系,也介绍了命令/数据的发送和

接收,分析了H4层接收函数,简单解析了一帧HCI层的裸数据。● 第8章,L2CAP简介:介绍了L2CAP层及其数据的收/发处理。● 第9章,Bluedroid的初始化流程:详细介绍了打开蓝牙过程中

Bluedroid协议栈的初始化过程,包括前期初始化、蓝牙Firmware

的加载和后期初始化3个阶段。● 第10章,蓝牙设备的扫描流程:详细介绍了蓝牙设备的扫描流

程,包括扫描入口、回调机制、Inquiry过程、Discover过程和设

备信息的上报过程。● 第11章,SMP简介:简要介绍了SMP的特征交换、配对、加密

和密钥分发的过程。安全是无线传输系统最重要的考虑方向之一。● 第12章,LE属性协议简介:介绍了BLE属性数据库的构成、服务

和特性的构建方法及属性数据库的探查过程。● 第 13 章,LE 属性数据库扫描过程的代码分析:从代码角度详细

介绍了Bluedroid探查BLE设备的属性数据库的过程,探查内容包

括服务、包含服务、特性和特性描述。最后介绍了探查到的服务

的上报过程。● 第14章,低功耗蓝牙HID设备的连接过程分析:分析了Bluedroid

针对BLE Hid设备的连接过程,包括Hid Report的读取、存储过程、

输入设备的创建、按键的上报过程。

第2篇,开发篇(第15~23章):以小米电视/盒子/生态链投影仪的低功耗遥控器开发历程为背景,介绍了小米在BLE领域做的一部分开发工作,其中部分工作是开创性的,申请了多项发明专利,有些专利已经授权。● 第15章,Find Me功能的实现:介绍了Find Me的功能。此功能在

小米电视上用于寻找遥控器,此功能获得了媒体和米粉的热烈欢

迎,因为大家都曾经有过寻找遥控器的痛苦经历。此功能也为低

功耗蓝牙智能设备的控制提供了参考范例。● 第16章,低功耗蓝牙电池服务和电量的读取:介绍了BLE电池服

务和电量的读取,本案例可以为各种传感器数据的采集提供参

考。● 第17章,LE设备接近配对的实现:介绍了BLE设备的接近配对的

原理和代码实现,是一种设备间确定一对一的关系并进行关联的

常用、快捷方法。此功能申请了多个发明专利。● 第 18章,基于LE广播的无线电子设备的唤醒方法:详细介绍了

基于解析BLE广播的无线电子设备的开机方法。用于小米电视/

生态链投影仪的低功耗蓝牙遥控器控制电视/投影仪开机。此方

法属于业界首创功能,已被广泛借鉴,可用于任何无线电子设备

的无线控制其唤醒开机的实现。此方法已申请发明专利并被授权,

另外,还有多个相关发明专利在实审。● 第 19章,基于LE广播的系统Recovery的操作实现:详细介绍了

基于解析BLE广播、用低功耗遥控器控制Android设备进入

Recovery系统和操控Recovery的功能。此功能应用于小米电视/

小米盒子/小米生态链投影仪的Recovery系统,属于业界首创功

能,已由王兴民申请发明专利,并被授权。● 第20章,蓝牙HID设备OTA升级的设计和实现:详细介绍了基于

Hid的蓝牙设备的OTA升级的实现。此功能应用于小米低功耗蓝

牙遥控器和小米蓝牙手柄(传统蓝牙)的空中升级,可作为蓝牙

设备的无线升级的参考案例。● 第21章,加速度传感器在低功耗蓝牙设备上的应用:介绍了主

机端实现接收、处理搭载加速度传感器的小米低功耗蓝牙遥控器

的传感器数据的软件实现过程。小米蓝牙手柄也支持加速度传感

器,代码实现是一致的。本章是传感器的无线数据传输和数据处

理的一个典型案例。● 第22章,LE系统快速更新连接参数的设计和实现:详细介绍了

快速更新LE系统的连接参数的技术原理和实现方法。优化了低

功耗蓝牙语音遥控器和主机之间在复杂2.4G无线环境的语音传

输速率。该功能在复杂2.4G环境下能快速变更激进的连接参数

和快速传输语音数据,传输完毕后再快速恢复连接参数,在按键

实时传输、语音快速传输和无线负载均衡3个方面实现了一个平

衡机制。此功能属于业界首创功能,已申请多个发明专利,有1

个专利已授权。● 第23章,LE语音编解码和传输:详细介绍了ADPCM语音编解码

的软硬件技术原理和主机端的接收、解码的实现过程,以及编码

数据的传输格式分析。本章是较大容量数据传输的一个典型案例,

A2dp的数据编码、传输、解码的过程也是类似的。

第3篇,调试篇(第24、25章):首先简单介绍了蓝牙调试的一个常用工具,然后选取了开发过程中遇到的4个典型Bug进行详细讲解。● 第24章,开发工具:简要介绍了蓝牙调试的一个业界常用、被

蓝牙SIG指定为官方使用工具的开发调试工具:Ellisys Bluetooth

Analyzer。● 第25章,蓝牙系统Bug分析:从协议栈、总线传输、蓝牙协议规

范3个方面列举了4个典型Bug,以及详细的分析问题和解决问题

的过程。本书特色

本书是第一本在低功耗蓝牙、传感器、人工智能、物联网方向聚集了很多系统分析和实战经验的图书;案例具有通用性,分析和开发步骤齐全;多个功能深入到了蓝牙Firmware的定制、蓝牙规范的标准流程的修改和系统间的联动;有几个案例具有开创性。本书读者对象

本书尽量少地介绍理论知识,而多讲述工程实践,适合蓝牙应用开发工程师阅读,使他们可以较全面地了解蓝牙底层协议栈和蓝牙芯片的架构及运行机制,并能给蓝牙应用开发提供理论基础和参考案例;也适合蓝牙协议栈工程师阅读,对加深Bluedroid和BLE的了解有一定帮助;也适合蓝牙芯片固件工程师了解上层协议栈及应用程序;同样适合对BLE、人工智能和物联网感兴趣的读者,有助于他们了解BLE相关的理论知识和实战案例,特别有助于思考、解决无线相关的软硬件系统的问题,甚至为创新提供一些实际经验。

本书强调的是低功耗蓝牙的开发实战,相应的理论知识相对来说不是很丰富。读者在阅读本书之前,最好具备低功耗蓝牙体系结构、物理层、链路层、控制器接口、属性协议、蓝牙核心协议规范和Bluedroid协议栈相关的知识。理论知识请参考蓝牙核心协议规范和《低功耗蓝牙开发权威指南》。

作者水平有限,外加时间紧迫,图书中难免存在诸多不当之处,欢迎读者批评指正。第1章 低功耗蓝牙简介1.1 概述

2010年4月,蓝牙4.0发布,该版本将3种技术规格合而为一:传统蓝牙技术、蓝牙低功耗技术及高速蓝牙技术,而设备商可以根据自身的需要自行搭配,选择其中的一种或者多种。

蓝牙4.0主要添加了低功耗技术,其他相对蓝牙3.0没有太明显的变化,其高速模式的最高速度依然和蓝牙3.0是一样的,为24Mbit/s。

低功耗蓝牙无线技术拥有极低的运行和待机功耗,使用一粒纽扣电池可连续工作数年之久。同时它还拥有低成本、跨厂商互操作性、3ms低延迟、100m以上超长距离、AES-128加密等诸多特色,可以用于计步器、心律监视器、智能仪表、传感器物联网等众多领域,大大扩展了蓝牙技术的应用范围。

截止到目前,蓝牙共发布了9个版本:V1.1/1.2/2.0/2.1/3.0/4.0/4.1/4.2/5.0,以蓝牙的发射功率可再分为Class A/Class B。

Class A用在大功率/远距离的蓝牙产品上,但因成本高和耗电量大,不适合用作个人通信产品(手机/蓝牙耳机/蓝牙Dongle等),故多用在某些商业特殊用途上,通信距离大约为80~100m。

Class B是目前最流行的制式,通信距离大约为8~30m,视产品的设计而定,多用于手机/蓝牙耳机/蓝牙Dongle(适配器)等个人通信产品上,耗电量较少和封装较小,便于对结构空间要求苛刻的系统的集成。1.2 蓝牙历史版本介绍1.2.1 蓝牙1.1标准和1.2标准

蓝牙1.1标准为最早期版本,传输速率为1Mbit/s,实际传输速率约在748~810kbit/s,因是早期设计,容易受到同频率产品干扰,影响通信质量。

1.2标准同样只有748~810kbit/s的传输速率,但在加上了自适应跳频(AFH)抗干扰跳频功能,同时加入eSCO,为SCO添加重传窗口,提高通话时语音的质量。

1.1/1.2版本的蓝牙产品,本身基本可以支持立体音效的传输要求,但是音带频率响应不太够,并不算是最好的立体声传输工具。1.2.2 蓝牙2.0标准

蓝牙2.0是1.2的改良版,传输速率由原来的1Mbit/s提高到3Mbit/s,实际传输速率约在1.8~2.1Mbit/s,可以支持双重工作方式,即一面进行语音通信,一面传输文档/高质量图片。现在市场上还有少量2.0设备在售。1.2.3 蓝牙2.1+EDR标准

蓝牙2.0+EDR标准在2004年已经推出,支持蓝牙2.0+EDR标准的产品也于2006年大量出现。虽然蓝牙2.0+EDR标准在技术上做了大量的改进,但从1.X标准延续下来的配置流程复杂和设备功耗较大的问题依然存在。

为了改善蓝牙技术目前存在的问题,蓝牙技术联盟(Special Interest Group,SIG)推出了蓝牙2.1+EDR版本的蓝牙技术。● 改善设备配对流程,引入简单配对机制。之前规范中,使用Pin

码配对使用不方便。耳机通常使用固定Pin码的方式来配对,配

对过程容易被破解侦听。简单配对的引入,使配对流程更加简单、

方便,并且使得安全级别更高。同时,简单配对中OOB(Out

Of Band,带外数据传递)的机制使设备可以借助第三方信息交

互机制更加安全、便捷地配对。一个比较典型的应用就是蓝牙技

术配合NFC技术,通过NFC技术来传输OOB信息进行配对。● 更佳的省电效果。蓝牙2.1版加入了减速呼吸模式(Sniff

Subrating)的功能,通过设定在2个设备之间互相确认信号的发

送间隔达到节省功耗的目的。一般来说,当2个已进行连接的蓝

牙设备进入待机状态之后,蓝牙设备之间仍需要通过相互的呼叫

来确定彼此是否仍在连接状态,也因为这样,蓝牙芯片就必须随

时保持工作状态,即使手机的其他组件都已经进入休眠模式。为

了改善这样的状况,蓝牙2.1将设备之间相互确认的信号发送时

间间隔从旧版的0.1秒延长到0.5秒左右,这可以让蓝牙芯片的工

作负载大幅降低,也可让蓝牙有更多的时间彻底休眠。根据官方

的报告,采用此技术之后,蓝牙设备在开启蓝牙连接之后的待机

时间可以有效延长 5倍以上。1.2.4 蓝牙3.0+HS标准

蓝牙3.0的核心是HS(High Speed,即高速)。为了高速,蓝牙引入交替射频技术(Alternate MAC/PHY,AMP)。这使得蓝牙可以在底层使用802.11无线协议作为传输层,而上层仍使用蓝牙协议。

作为新版规范,蓝牙3.0的传输速度自然会更高,而秘密就在802.11无线协议上。通过集成802.11协议适应层(802.11 PAL),蓝牙3.0的数据传输率提高到了大约24Mbit/s,是蓝牙2.0的8倍,可以轻松用于录像机至高清电视、PC至手机、PC至打印机之间的文件传输。

蓝牙3.0允许消费类设备使用已有的蓝牙技术,同时通过使用第二种无线技术来实现更大的吞吐量。蓝牙模块仅仅用来创建两台设备之间的配对,数据传输本身则通过WiFi射频来完成,如果两部手机中有一部没有内建WiFi模块,蓝牙传输的速度就会降到蓝牙2.0的速率。

功耗方面,通过蓝牙3.0高速传送大量数据自然会消耗更多能量,但由于引入了增强电源控制(EPC)机制,再辅以802.11,实际空闲功耗会明显降低,蓝牙设备的待机耗电问题得到了初步解决。事实上,蓝牙联盟也着手制定了新规范的低功耗版本。除此之外,蓝牙3.0还具备通用测试方法(GTM)和单向广播无连接数据(UCD)两项技术。

蓝牙3.0的诞生背景是无线局域网(WLAN)的崛起。WLAN在高速率个人网络的应用成为趋势。“一山不容二虎”,SIG组织希望蓝牙同样能够应用在高速个人网络场景。针对高速个人网络,引入一种新的传输层在所难免。蓝牙3.0规范制定过程中,主要有两个方向,一个是使用UWB(Ultra Wideband,一种超带宽无线载波通信技术),另一个是使用802.11。最终802.11被采用。原因在于当时UWB技术过于超前,不够成熟。不过很遗憾,之后由于商业上的原因,蓝牙3.0中的High Speed并没有被推广开来。这也催生了后续的蓝牙4.0。1.2.5 蓝牙4.0标准

由于WLAN的兴起,以及蓝牙3.0的High Speed的颓势,蓝牙在高速个人网络中难有作为,蓝牙SIG组织将目光转向低功耗网络。在此背景下,蓝牙4.0规范于2010年7月7日正式发布,新版本的最大亮点在于低功耗和低成本。新的规范使得低功耗、低成本的蓝牙芯片被广泛使用成为可能。目前,4.0/4.1/4.2标准芯片被手机、平板、电视、OTT盒子、智能家居设备和可穿戴设备等产品大量采用。1.2.6 蓝牙4.1标准

蓝牙4.1标准于2013年12月6日发布,引入BR/EDR安全连接(BR/EDR Secure Connection),进一步提高蓝牙的安全性。此外,针对4.0规范中的一些问题,4.1标准在低功耗蓝牙方面进一步增强,引入LE dual mode topology(LE双模技术)和LE隐私(LE Privacy 1.1)等多项新技术,进一步提高低功耗蓝牙使用的便利性和个人安全。如果同时与LTE无线电信号之间传输数据,那么蓝牙4.1可以自动协调两者的传输信息,理论上可以减少其他信号对蓝牙4.1的干扰。这些改进提升了连接速度并且使设备更加智能化,比如减少了设备之间重新连接的时间,这意味着用户如果走出了蓝牙4.1的信号范围并且断开连接的时间不算很长,当用户再次回到信号范围中之后设备将自动连接,反应时间要比蓝牙4.0更短。最后一个改进之处是提高传输效率,如果用户连接的设备非常多,比如连接了多部可穿戴设备,彼此之间的信息都能即时发送到接收设备上。除此之外,蓝牙4.1也为开发人员增加了更多的灵活性,这个改变对普通用户没有很大影响,但是对于软件开发者来说是很重要的,因为为了应对逐渐兴起的可穿戴设备,蓝牙必须能够支持同时连接多个设备。1.2.7 蓝牙4.2标准

2014年12月4日,蓝牙4.2标准颁布。蓝牙4.2标准的公布,不仅提高了数据传输速度和隐私保护程度,而且使设备可直接通过IPv6和6LoWPAN(IPv6 over IEEE 802.15.4)接入互联网。

首先,速度更快。尽管蓝牙4.1版本已在之前的基础上提升了不少,但远远不能满足用户的需求,同WiFi相比,显得优势不足。而蓝牙4.2标准提高了蓝牙智能(Bluetooth Smart)数据包的容量,其可容纳的数据量相当于此前的10倍左右,两部蓝牙设备之间的数据传输速度提高了2.5倍。

其次,隐私保护程度的加强也获得众多用户的好评。我们知道,蓝牙4.1以及其之前的版本在隐私安全上存在一定的隐患,连接一次之后无需再确认便自动连接,这容易造成隐私泄露。而在蓝牙4.2新的标准下,蓝牙信号想要连接或者追踪用户设备必须经过用户许可,否则蓝牙信号将无法连接和追踪用户设备。

当然,最令人期待的还是通过IPv6和6LoWPAN接入互联网的功能。早在蓝牙4.1版本时,蓝牙技术联盟便已经开始尝试接入,但由于之前版本传输率的限制以及网络芯片的不兼容性,并未完全实现这一功能。而据蓝牙技术联盟称,蓝牙4.2标准已可直接通过IPv6和6LoWPAN接入互联网。相信在此基础上,一旦IPv6和6LoWPAN可广泛运用,此功能将会吸引更多的关注。

另外不得不提的是,对较老的蓝牙适配器来说,蓝牙4.2的部分功能将可通过软件升级的方式获得,但并非所有功能都可获取。蓝牙技术联盟称:“隐私功能或可通过固件升级的方式获得,但要视制造商的安装启用而定。速度提升和数据包扩大的功能则将要求硬件升级才能做到。”而到目前为止,蓝牙4.0仍是消费者设备最常用的标准,不过Android等移动平台已经实现对蓝牙4.1标准和蓝牙4.2标准的原生支持。1.2.8 蓝牙5.0标准

美国时间2016年6月16日,蓝牙SIG在华盛顿正式发布了第五代蓝牙技术(简称蓝牙5.0)。

性能方面,蓝牙5.0标准LE传输速度是之前蓝牙4.2 LE版本的两倍,有效距离则是上一版本的4倍,即蓝牙发射和接收设备之间的理论有效工作距离增至300米。

另外,蓝牙5.0还允许无需配对就能接受信标的数据,比如广告、Beacon、位置信息等,传输率提高了8倍。同时,蓝牙5.0标准还针对IoT物联网进行底层优化,更快更省电,力求以更低的功耗和更高的性能为智能家居服务。蓝牙5.0标准蓝牙芯片已经被一些旗舰手机使用。

蓝牙5.0标准的新特性如下。● 2倍BLE带宽提升:在BLE4.2的1Mbit/s的PHY增加可选的LE

Coded调制解调方式,支持125Kbit/s和500Kbit/s,同时增加一个

可选的2Mbit/s的PHY。● 4倍通信距离提升:通过上述降低带宽、提升通信距离,同时保

持功耗不变,且允许的最大输出功率从之前的10毫瓦提升至100

毫瓦。● 8倍广播数据容量提升:从BLE4.2的31字节提升至255字节,并

且可以将原有的3个广播信道扩展到37个广播通道。增加通道选

择算法#2。● BR/EDR时间槽可用掩码:检测可用的发送接收的时间槽并通知

其他蓝牙设备。1.2.9 蓝牙2016年技术蓝图

蓝牙联盟在2016年的主要方针集中在以蓝牙低功耗为首的物联网布局,主要有3大方向,包括使蓝牙低功耗的传输距离提高4倍、蓝牙传输提升到2Mbit/s,以及支持物联网行业期待已久的蓝牙网状网络(Mesh)。

其中延伸蓝牙低功耗以及支持蓝牙Mesh对于物联网都是相当重大的布局。距离延伸的优点使自动化、工业控制、智慧家庭等应用变得更实用。支持Mesh最大的优点就是使蓝牙设备与终端不再仅有点对点以及延伸模式,而是使各个蓝牙设备之间可彼此相连,同时也可借此网络模式延伸蓝牙管理的距离。而提升100%的传输速度,不仅增加频宽,同时使蓝牙也能用于重视延迟的应用,例如医疗设备等领域。蓝牙新标准的颁布使信息传输以及管理更及时。

除了物联网以及用于连接设备等应用外,蓝牙技术在近年也有更多的的应用,尤其是信标(Beacon)技术正在改变定位与服务,藉由Beacon技术取代条码,使用者可轻松地获取相关信息,且能进行室内的定位服务,如百货或是车站的室内导航,百货商品业者的找寻柜位等应用。另外,通过距离的拓展以及即将导入的Mesh,蓝牙也可为自动化解决方案带来更多的变化以及弹性。

在上述的新发展目标之外,蓝牙联盟也公布了一项新的技术——传输发现技术(TDS)。通过蓝牙搜寻启动范围内的可用无线链路,借此侦测附近的无线装置与服务,并且使用者可以关闭设备中功耗较高的技术,并于需要时再开启。蓝牙联盟希望借此技术能够在物联网的环境中使能源管理变得更好。1.2.10 蓝牙版本演进编年史

蓝牙版本的编年史如表1.1所示。表1.1  蓝牙版本编年史版本发布日速率增加功能期0.71998.Baseband、LMP10.190.81999.1.HCL、L2CAP、RFCOMM120.91999.4.OBEX和IrDA的互通性301.0 1999.7.SDP、TCSDraft51.0 A1999.7.第一个正式版本发布261.0 B2000.安全性、设备间连接兼容性10.11.12001.2.748~810kIEEE 802.15.122bit/s1.22003.748~810k快速连接、自适应跳频、错误监测和流程控制、同步11.5bit/s能力2.2004.1.8~3Mbit/EDR速率提升到1.8~3Mbit/s0+ED11.9sR2.2007.7.3Mbit/s扩展查询响应、简单安全配对、暂停与继续加密、1+ED26Sniffer省电R3.2009.4.24Mbit/s交替射频技术、802.11协议适配层、电源管理、取消0+HS21UMB的应用4.2010.6.24Mbit/s低功耗物理层和链路层、AES加密、ATT、GATT、0+BL30SME4.12013.24Mbit/s与4G不构成干扰、IPV6联网、可同时发射接收12.64.22014.4.1 LE的FIPS加密、安全连接、物联网12.42.5倍5.02016.6.4.2 LE的2室内定位、物联网16倍1.3 蓝牙4.0概述1.3.1 什么是蓝牙4.0

蓝牙4.0为蓝牙3.0的升级标准。蓝牙4.0实际是三位一体的蓝牙技术,它将3种规格合而为一,分别是传统蓝牙、低功耗蓝牙和高速蓝牙技术,这3个规格可以组合或者单独使用。蓝牙4.0最重要的特性是省电,极低的运行和待机功耗使得设备使用一粒纽扣电池即可工作数年之久。1.3.2 蓝牙4.0的架构

蓝牙4.0加入了LE控制器模块,允许多种构架共存。蓝牙4.0版本分为两种模式:单模式和双模式。单模式面向高度集成、紧凑的设备,采用一个轻量级连接层(Link Layer)提供超低功耗的待机模式操作、简单设备恢复和稳定可靠的点对多点数据传输,同时还有高效节能和安全加密连接。双模式是将低功耗蓝牙功能集成在现有的经典蓝牙控制器中,包含低功耗部分和经典蓝牙部分。双模式里面的低功耗性能没有单模式出色,它在现有经典蓝牙技术(2.1+EDR/3.0+HS)芯片上增加低功耗堆栈,整体架构基本不变,成本增加有限。1.3.3 蓝牙4.0协议增加的新特性

蓝牙核心规范V4.0版本的几个新特点如下所示,改进的主要领域是:● 包含蓝牙低功耗;● 低功耗物理层;● 低功耗链路层;● 低功耗增强HCI层;● 低功耗直接测试模式;● 高级加密标准;● 为低功耗增强;● 为低功耗增强;● 属性协议(Attribute Protocol,ATT);● 通用属性配置文件(Generic Attribute Profile,GATT)。● 安全管理(Security Manager,SM)。1.4 蓝牙4.0核心架构分析1.4.1 低功耗蓝牙概述

蓝牙4.0版本有两种形式的蓝牙无线技术系统:● 基本速率(Basic Rate,BR)。● 低功耗(Low Energy,LE)。

两种系统都包含设备发现、建立连接和连接通信的机制。

基本速率系统(Basic Rate System)包括可选的增强数据速率(EDR)交替媒体访问控制(MAC)和物理(PHY)层的扩展。基本速率系统提供同步和异步连接,数据速率包括721.2kbit/s的基本速率、2.1Mbit/s的增强速率和高达24Mbit/s的高速速率(由802.11 AMP射频技术来  实现)。

LE系统包含很多旨在满足极低功耗要求的产品所期望的特征,比BR/EDR复杂度低且成本低。LE系统也是为低数据速率的用例和应用程序设计的,并且具有较低的占空比。根据用例或应用程序,相较于其他系统,这个系统所选择的部件要更优化,更合适。

实现这两种系统的设备都可以与实现这两个系统的其他设备以及实现这两个系统的任何一个设备进行通信。一些配置文件(Profile)和用例可能只得到了一个系统的支持,因此,实现了这两个系统的设备支持的用例会更多。

蓝牙核心系统由主机和一个或多个控制器组成。主机是一个逻辑实体,它定义为非核心配置文件(Profile)之下,并且位于主控制器接口(HCI)之上。控制器是一个逻辑实体,定义为HCI下面的所有层。主机和控制器的实现可以包含HCI的各个部分。在这个版本的核心规范中定义了两种类型的控制器:● 主控制器(Primary Controller);● 辅助控制器(Secondary Controller)。

蓝牙核心的实现只有一个主控制器,它可能是以下配置之一:● BR/EDR控制器包含射频、基带、链路管理和可选的HCI层;● LE控制器包含LE物理层、链路层和可选的HCI层;● 一个组合的BR/EDR控制器和一个LE控制器组合成一个单独的控

制器后,这种控制器的BR/EDR部分和LE部分共享一个蓝牙设备

地址。

蓝牙核心系统还可以具有由以下配置描述的一个或多个辅助控制器,如图1.1和图1.2所示。图1.1 蓝牙主机和控制器组合(从左至右):LE单模主控制器、BR/EDR主控制器、BR/EDR主控制器加AMP辅助控制器、BR/EDR主控制器加多个AMP辅助控制器图1.2 蓝牙主机和控制器组合(从左至右):BR/EDR和LE主控制器、BR/EDR和LE主控制器加一个AMP辅助控制器、BR/EDR和LE主控制器加多个AMP辅助控制器

AMP控制器包含802.11协议适配层(Protocol Adaptation Layer,PAL)、802.11 MAC层和物理层以及可选的HCI层。

LE蓝牙操控射频的方式和BR/EDR射频操控的方式一样。LE射频工作在免牌照的2.4GHz工业/科学/医疗频段。LE系统采用了跳频传输来抗干扰和衰落,提供了许多跳频展频(Frequency-Hopping Spread Spectrum,FHSS)技术载体。LE无线电操作使用一种简单的二进制频率调制,即高斯频移键控(Gauss Frequency Shift Keying,GFSK)来最小化收发器的复杂度,并支持1Mbit/s的比特率。蓝牙5.0可选支持2Mbit/s,空中速率提升了1倍。

LE采用了两种复用方法:频分多址(FDMA)和时分多址(TDMA)。LE具有40个物理信道,每个信道2M的频宽,用于频分多址方案。其中3个信道(37、38、39)用作广播通道,其余37个信道用作数据通道。基于TDMA的轮询方案采用的机制是:某一个设备在一个预定的时间间隔发送一个数据包给相应的设备;相应的设备在预定的时间间隔之后收包和响应。

物理信道被分为时间单元,也称为事件。在这些事件中,LE设备之间的数据以包的形式,以协议指定的传输方法进行传输。LE设备有两种类型的事件:广播事件和连接事件。

在广播物理信道上传输广播数据包的设备称为广播主。在广播信道上接收广播而不打算连接广播设备的设备称为扫描器。广播物理信道上的传输发生在广播事件中。在每个广播事件开始时,广播者发送对应于广播事件类型的广播分组。根据广播分组的类型,扫描器可以在同一广播物理信道上向广播者发出请求,然后广播者在同一广播物理信道上响应来自扫描器的请求,并决定是否需要回应。在同一广播事件中由广播者发送的下一个广播分组会发生广播物理信道的变化(37、38和39信道轮流发送广播消息分组)。广播者可在事件期间随时结束广播。第一个广播物理信道(信道37)在下一个广播事件开始时使用。

LE和2.4G WiFi的物理信道分布如图1.3所示。LE的广播信道选取了两边和中间的3个信道,用于减少3个信道都受到干扰的可能性。如果广播信道是连续的3个信道且受到较强干扰,有可能导致接收方无法侦听到广播,从而遭遇无法通信的问题。图1.3 LE信道分布1.4.2 核心系统架构

蓝牙核心系统由主机、主控制器和零个或多个辅助控制器组成。

实现蓝牙BR/EDR的最小核心系统涵盖4个底层和蓝牙规范定义的相关协议,以及一个公共服务层协议。服务发现协议(SDP)和所有必要的配置文件在通用访问配置文件(Generic Access Profile,GAP)中定义。BR/EDR核心系统包括对MAC/PHY(AMP)的支持以及AMP管理协议(AMP Manager Protocol)和协议适配层(Protocol Adaptation Layer,PAL),也支持相应的外部MAC/PHY。

实现蓝牙LE的最小核心系统涵盖4个底层和蓝牙规范定义的相关协议,以及两个公共服务层协议;安全管理(Security Manager,SM)、属性协议(Attribute Protocol,ATT)与所有必要的配置文件定义在通用属性配置文件(Generic Attribute Profile,GATT)和通用访问配置文件。

实现蓝牙BR/EDR及LE的核心系统包含上述两个最小要求。

核心系统构架如图1.4所示。图1.4 蓝牙核心系统构架

图1.4显示了核心块,每个块都有相关的通信协议。链路管理器、链路控制器和BR/EDR射频物理层组成一个BR/EDR控制器。AMP协议适配层、AMP媒介访问控制和AMP物理层组成一个AMP控制器。链路管理器、链路控制器和LE射频物理层组成一个LE控制器。逻辑链路控制和适配协议(L2CAP)、服务发现协议和通用访问配置文件组成BR/EDR Host(在图1.4中未标示)。逻辑链路控制和适配协议、安全管理协议、属性协议、通用访问配置文件和通用属性配置文件组成一个LE Host(在图1.4中未标识)。一个BR/EDR/LE Host结合了各自的主机模块。这是一个常见的实现,包含涉及控制器和主机之间的标准物理通信接口。虽然这个接口是可选的,但架构是为了允许它的存在和特性而设计的。蓝牙规范通过定义等价层之间交换的协议消息和独立蓝牙子系统之间的互操作性,定义蓝牙控制器和蓝牙主机之间的通用接口,从而实现独立蓝牙系统之间的互操作性。

图1.4中显示了许多功能块和它们之间的服务和数据的路径。其中显示的功能块是描述性的,一般来说,蓝牙规范不定义实现的细节,除非这是互操作性所需要的。因此,图1.4中所示的功能块是为了帮助描述系统行为,实现可能不同于其中所示的系统。

蓝牙4.0核心系统架构的另一种观点如图1.5所示。图1.5 蓝牙4.0核心系统构架1.4.3 核心构架模块介绍1.信道管理器

信道管理器负责创建、管理和结束用于服务协议和应用数据流传输的L2CAP信道。信道管理器通过L2CAP与远程(对等)设备上的信道管理器交互,以创建这些L2CAP信道并将它们的端点连接到对应的实体。信道管理器与本地链路管理器交互来创建新的逻辑链路(如有此需要)和配置这些链路,以提供被传输数据类型要求的质量服务(Quality of Service,QoS)。2.L2CAP资源管理器

L2CAP资源管理器负责管理发送至基带的协议数据单元(Protocol Data Unit,PDU)片段的提交顺序以及信道间的相关调度,以确保不会因为Bluetooth控制器资源耗尽而导致带有QoS承诺的L2CAP信道对物理信道的访问被拒绝。这是必须的,因为架构模型不会假设Bluetooth控制器拥有无限大缓冲,也不会假设HCI是具有无限大带宽的管道。

L2CAP资源管理器也可以执行通信量符合性管制功能,以确保这些应用在它们协商好的QoS设置的限制范围内提交L2CAP服务数据单元(Service Data Unit,SDU)。一般的Bluetooth数据传输模型会假设每项应用都符合相关要求,而不会定义某项具体实施应如何处理此类问题。3.设备管理器

设备管理器是基带的功能块,用于控制启用Bluetooth的设备的一般行为。它负责Bluetooth系统所有与数据传输无直接关系的操作,例如查询附近是否有其他启用Bluetooth的设备,连接到其他启用Bluetooth的设备,或使本地启用Bluetooth的设备可被其他设备发现或连接。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书

若在网站上没有找合适的书籍,可联系网站客服获取,各类电子版图书资料皆有。

客服微信:xzh432

登入/注册
卧槽~你还有脸回来
没有账号? 忘记密码?