基于低能耗蓝牙的半双工语音通信

  被业界广泛认为是实现物联网(IoT)应用愿景的关键技术。事实上,极低的功耗使其成为电池供电的物联网产品最理想的无线通信解决方案,尽管目前技术规范还是局限于几种特定应用,但是,创新的解决方案可促使这项技术拓展到不同的应用领域,例如,多媒体流。按照这个发展方向,本文介绍一个叫做BlueVoice的

  本文从支持语音流服务所需的扩展服务集开始介绍BlueVoice应用,然后在实际硬件设备上评估BlueVoice的性能。在所选的硬件平台上,BlueVoice应用完全支持语音流服务,同时避免能源浪费。

  经历过去几十年的快速增长,互联网几乎渗透到人类社会日常生活的方方面面。未来互联网将扩展到万物互联,数十亿甚至数百亿个有唯一身份的“物品”通过无线通信与人类和周围环境交互,执行高级任务。在这一构想中,“物品”可能是传感器、致动器、家电、玩具,总之,可以是任何能够被识别的虚拟或实体物品,这种互联网演进构想被称为物联网(IoT)。

  物联网概念是通过标准协议解决方案(即互联网协议)和无线通信接口,把所有产品设备连接在一起,组成一个全球网络。实现万物互联,虽然可以使用现有的大量的射频通信技术,但是当物联网产品是部署在现场的自主型电池供电装置时,低功耗无线通信技术才会是最适合的通信解决方案。在这个方面,低能耗蓝牙(BluetoothLE)[1]技术被视为最有效的物联网通信解决方案,同时正在融入互联网世界[2]。

  在今天的物联网应用中,低能耗蓝牙解决方案主要用于生命参数监视用途。除传统的监视服务外,近几年业界开始探索基于其它技术的先进应用。例如,参考文献[3]提出并分析了基于IEEE802.15.4的网络[4]语音通信。在这个方面,通过低能耗蓝牙传输多媒体数据还是处于起步阶段,缺少可用的解决方案主要是因为最初设想时未考虑到这些应用(例如,最初主要考虑的是医疗、健身等应用)。本文以在低能耗蓝牙设备上支持语音流服务的BlueVoice应用为例,探讨如何解决这些技术限制问题。我们先了解一下低能耗蓝牙技术,然后详细介绍支持该新应用概念所需的扩展服务集,再介绍应用设计,最后在STM32NucleoL476板上测试实际性能。

  本文的有要内容安排如下:第二章介绍低能耗蓝牙工作原理,先描述整个工作栈;然后介绍配置文件(Profiles)概念。第三章介绍应用方案设计,描述其低能耗蓝牙配置文件,然后介绍其设计原则、设计实现及实际性能。第四章是结论。

  BLE低能耗蓝牙规范于2010年写入蓝牙4.0核心规范,尽管与基本蓝牙相似,但是低能耗蓝牙规范主要是为超低功耗应用设计开发。通过低能耗蓝牙技术连接电池供电设备的潜在应用非常少,医疗、健身和智慧家居是其中仅有的几例。

  如图1所示,低能耗蓝牙协议栈总体结构主要由两个部分组成:控制器和主机。应用软件使用协议栈主机层的协议提供的服务。主机层分为五层:逻辑链路控制和适配协议(L2CAP)、属性协议(ATT)、通用属性配置文件(GATT)、安全管理协议(SM)、通用访问配置文件(GAP)。控制器部分只有两层:物理层(PHY)和链路层(LL)。如图1所示,主机-控制器(HCI)接口是控制器与主机的通信通道。

  物理层负责比特调制,通过无线通道收发数据。最高数据速率是1Mb/s,典型通信距离是几十米。

  链路层规定两个设备之间双向通信的功能。低能耗蓝牙节点有两个角色:主设备和从设备。通常是主设备(例如,笔记本电脑、智能手机)搜索从设备(例如,体感设备);必要时,从设备向主设备发送数据。从设备通常处于睡眠状态,并在固定间隔内唤醒,以便被主设备搜到。

  在链路层之上,逻辑链路控制和适配协议(L2CAP)有两个主要功能。该协议的主要作用是提供多路传输功能,按照标准低能耗蓝牙分组数据格式,封装转换顶层多协议数据。安全管理协议(SM)和通用访问配置文件(GAP)分别提供数据安全和服务管理功能。详细的说,安全管理协议定义密钥的生成方式,以及如何在两个设备(主从设备)之间交换密钥,建立安全加密通信通道,而通用访问配置文件则规定两个设备如何在底层交互操作

  属性协议(ATT)和通用属性配置文件是开发新应用时需要重点考虑的两个协议组件。属性协议是一个无状态的客户机/服务器协议:不考虑设备的底层角色是主设备还是从设备,每个设备都可以设为服务器、客户机或是客户机兼服务器。客户机请求服务器数据发送数据,服务器向客户机发送数据,数据以属性的形式保存在服务器内,每个属性都含有GATT管理的数据,而且该数据被分配一个通用唯一标识符(UUID)。通过一个L2CAP专用通道,属性协议在服务器属性与客户机之间建立一条通信通道。通用属性配置文件(GATT)在属性协议层添加一个数据抽象模型,负责搜索属性协议保存的数据,在两个设备之间交换特征。每个低能耗蓝牙设备都有一套可能属性(存储服务)和特征(与存储服务相关的属性)。如果在低能耗蓝牙栈上建立一个新应用,则必须定义属性和特征。某一特定应用的特征、属性和底层规范合称配置文件,标准配置文件可保证不同品牌的产品能够互联互通。

  下面我们介绍BlueVoice应用,首先定义语音通信低能耗蓝牙配置文件,然后讨论所涉及设备的通信角色、音频处理和压缩选择、数据分组问题和带宽要求。我们提出两个在音频采集和功耗方面不同的系统配置,以满足不同的应用要求。本章最后一部分介绍在一个实际硬件设备上实现的BlueVoice应用,然后比较并讨论实际测量到的应用性能,例如,功耗、存储器占用、处理性能要求和自动语音识别(ASR)性能。

  考虑到音频流用例不属于低能耗蓝牙标准配置文件,为实现语音流服务,BlueVoice应用在低能耗蓝牙协议栈上,定义了一个叫做BlueVoiceService(BVS)的“厂商专用配置文件”,指定了服务器与客户机之间交换语音数据的方式。此外,考虑到半双工通信需要特别的设计选择,本章稍后详细讨论这个问题。

  如前文所述,属性协议ATT是通用属性配置文件GATT在不同设备之间交换数据的传输协议,属性是ATT定义的最小的实体,是可寻址的信息段(内置UUID标识码),可能含有用户数据或关于属性本身架构的元信息,例如,权限、加密和授权属性。GATT服务器属性按特定顺序组成一个服务序列,序列开始部分是服务声明属性,后面跟一个或多个特征和可能的描述符。每个特征都是一个被披露的属性。除标准配置文件UUID外,在定制应用中,开发人员可使用独有的和厂商专用的UUID开发有自己特征的新服务,BlueVoice应用就是这种情况。考虑到单向音频流系统不对称性,服务器通过BVS配置文件向客户机披露数据类型和格式以及访问方式。BVS服务包含下列属性,如图2所示。

  根据该标准,主服务声明是服务的第一个属性,其数值域包含该声明引入的UUID定义。BlueVoice应用声明使用一个128位独有的UUID(BVSUUID)。BVS包含两个特征,分别叫做音频(Audio)和同步(Sync)特征。在低能耗蓝牙规范中,每个特征至少包含两个属性,分别是特征声明和特征数值。特征声明以元数据的形式定义其属性,特征数值则是包含实际特征数据。在BlueVoice情况中,音频和同步特征都包含一个单一的由独有128位UUID定义(AudioData和SyncDataUUID)的属性,分别含有实际音频数据和边信息同步数值。音频和同步特征声明将AudioData和SyncData属性定义为”仅通知”,未取得客户机的读写权限,表示音频数据和同步数据只以通知的形式传输,服务器不答复客户机。为与低能耗蓝牙服务的分层架构一致,其它特征可能会增加到未来发布的BlueVoice应用。

  本章主要介绍BlueVoice应用设计的(i)低能耗蓝牙通信(ii)音频处理。

  按照低能耗蓝牙协议,通信可以是多点广播,也可以是点对点连接。BlueVoice应用链路层使用连接通信模式,在两个设备之间建立永久性的点对点连接,这两个设备扮演两个不同的角色:中央设备和周边设备。中央设备又称主设备,支持与周边设备(从设备)相关的复杂功能。中央设备是发起通信连接,执行自适应跳频,数据加密,管理通信时序,定义设备间数据交换方式。该角色分配符合低能耗蓝牙的非对称设计概,为能效要求高的设备分配更少的工作任务。电池供电的便携设备通常是从设备,不过,必须说明的是,根据规范[1],每个设备在每个连接事件发生时可单独发送数据,且角色不在数据吞吐量上强加限制或优先权。考虑到半双工通信情况,BlueVoice应用可运行在自主的电池供电无线传感设备上,且这些设备配备麦克风(和最终标量传感器,如典型物联网概念中无处不在的监视应用),因此,角色分配不再与收发功能有关。

  在链路层之上,GATT层定义互动设备的客户机和服务器角色,与前文描述的主设备和从设备无关。服务器是提供信息的设备,而客户机是请求或接收最新信息的设备。考虑到单向音频流是非对称系统,装备麦克风的设备是唯一有语音信息的设备,因此可将其视为通信服务器,另一个设备是客户机,向服务器发送信息请求,并接收服务器发起的含有语音数据的更新信息。在双向通信系统中,语音数据是双向传输,架构是对称的,中央设备和周边设备都配备麦克风,都可以充当服务器,输出任何属性格式的音频数据。同时,服务器也能充当客户机,发送信息请求,并接受另一个设备发送的更新信息。

  双向语音数据流是基于服务器以固定间隔向客户机发送通知,不需要接收设备发送请求或回复信号。从设备在上电阶段进入广播模式,以低频发送广播数据包,主设备进入搜索模式,扫描是否有其它设备存在,反之亦然。收到广播数据包代表主设备发现了相关从设备,然后,主设备发送一个连接请求。在连接建立过程结束后,按照所选的通信传输方向:中央设备至周边设备或周围设备-中央设备,以固定间隔从服务器向客户机发送含有音频数据的异步通知数据包。图3所示是BlueVoice在GATT层的角色分配。

  BlueVoice的音频处理目的是在根据应用所选的接收端上,取得8kHz或16kHz的目标音频采样。事实上,对于低功耗要求极其严格但是对音质要求不高的应用场景,例如,无需人耳听清楚的自动语音识别服务输入音频,8kHz采样率可能是一个不错的选择。

  使用自适应差分脉冲码调制算法压缩低能耗蓝牙音频传输信号,可使音频信号适用于现有的数据传输速率,同时最大限度缩减射频传输时间以及功耗。我们使用数字MEMS麦克风设计一个全数字解决方案,尺寸和音质等特性使其适用于无线kHz采样率的完整语音处理链。该解决方案首先采集数字MEMS麦克风生成的1MHz的1位脉冲密度调制(PDM)信号,并将其转换成16kHz的16位脉冲编码调制(PCM)采样,然后以16000个采样/秒的采样率,再将其压缩成4位ADPCM采样信号,并准备发送。

  此外,以较低的频率发送边信息同步数据集合,所需带宽是64kbps音频数据与300bps同步信息数据之和,总计64.3kbps。对于8kHz采样率,最终ADPCM采样率是8000个采样/秒,导致31.3kbps带宽需求,包括边信息。下面章节深入介绍上述模块。

  MEMS麦克风的容性传感器生成的模拟信号经放大和高速率采样后,交由整合量化和噪声修整操作的内部sigma-delta调制器处理,输出的数据是一个单一的高采样率的PDM格式比特,PCM转换是从PDM到无线通道发送压缩音频数据的整个处理链的中间环节。为了把PDM流转换成PCM数据,需要使用一个抽取滤波器和两个可单独配置的滤波器(低通滤波器和高通滤波器。该处理模块输出16位PCM格式采样流。按照所选采样频率,采用一个不同配置的抽取滤波器,以取得16位PCM数据采样。

  ADPCM编码模块压缩PCM采样,通过减少数据包传输量,节省传输带宽,降低能耗,如前文所述,ADPCM是一个用于损耗波形编码的压缩算法,其基本原理是根据上一个数值预测当前数值,只传输自适应量化步骤量化的实际值与预测值的差值。存在诸多可选压缩标准,却单单选用ADPCM标准,这是因为它是基于波形编码方法,与基于声码器的复杂解决方案相比,更适用于传感器网络设备(通常基于微控制器)。在BlueVoice应用中,每个16位PCM采样都压缩成4位ADPCM数据,这样所需的应用传输带宽是32kbps或64kbps,至于具体速率取决于采样频率,而且兼容低能耗蓝牙流媒体功能。

  如前文所述,BlueVoice应用的总体带宽实际需求高于32kbps或64kbps的理论值,这是因为BlueVoice为提高通信稳健性,在通过通道发送数据时增加了附加信息。16kHz配置采用10ms连接间隔,而8kHz配置采用25ms连接间隔。事实上,如果被传输的数据量较少,可提高连接间隔数值,从而节省能源。为尽可能地利用每个数据包现有有效载荷,语音数据包发送20个字节。

  因此,在16kHz配置中,语音数据每10ms发送4个数据包,而在8kHz配置中,语音数据每20ms发送4个数据包,结果传输带宽分别是64kbps和32kbps。发送器的边信息发送频率较低,每160ms发送一个6字节的附加包,对应16个或8个连接间隔。图5描述了低能耗蓝牙协议栈上的数据分组总体策略。通过音频特征,每10ms或20ms连接间隔,发送4个语音数据包(每包20字节),而发送器边信息的发送是,通过同步特征,每160ms间隔发送一个附加数据包。

  为了在支持低能耗蓝牙通信的不是十分复杂的实际硬件无线传感器网络平台上评估BlueVoice的可行性,我们在实际硬件设备上实现了第三章B部分所描述的应用软件的全部功能。所选硬件平台是意法半导体的STM32NucleoL476开发板[5],这是一个基于STM32L47680MHz32位ARMCortex-M4微控制器的开放式开发平台。我们选择STM32Nucleo开发板的原因是,板载微控制器的性能高于普通无线传感器网络平台,同时还具备很高的灵活性和多功能性。该开发板配备很多接口和扩展排针,插接专用扩展板扩大板子功能简单容易,方便设计人员研究、开发和验证新创意。特别值得一提的是,STM32L4微控制器具有市场领先的低功耗特性,其内置数字滤波器配合Sigma-Delta调制器(DFSDM)外设,可实现图4的PDM至PCM的格式转换,这些特性使其特别适合BlueVoice应用。通过在STM32Nucleo开发板上接插一块低能耗蓝牙连接板和一块麦克风扩展板,BlueVoice中央模块和周边模块可以组成一个基于STM32Nucleo的对称硬件配置,展示一个半双工通信通道。低能耗蓝牙连接板基于意法半导体的BlueNRG[6],BlueNRG是一个超低功耗的低能耗蓝牙单模网络处理器,兼容蓝牙规范4.0版,可设为主设备和从设备模式,当低能耗蓝牙协议栈启动时,数据传输最大电流8.2mA,可降至1.7uA。附加的麦克风扩展板用于采集语音信号,基于意法半导体的MP34DT01[7]数字万向MEMS麦克风,声学过载点120dBSPL,信噪比63dB,灵敏度-26dBFS。MP34DT01采用一个容式传感器和一个内置sigma-delta调制器和噪声修整机制的集成电路,提供1-3.25MHz的PDM输出。

  图6是实际硬件设备的框图:STM32微控制器通过与外设模块DMA相连的DFSDM模块采集麦克风的PDM采样输出,同时通过一套专用应用程序界面(API)和串行外设接口(SPI)与BlueNRG模块通信,对于中央模块和周边模块,模块化架构是对称的。框图中还有一个USB音频接口,用于向PC机提供重构的音频信号。图7是硬件设备的实际原型。

相关阅读