• 周六. 4 月 20th, 2024

基于低能耗蓝牙的半双工语音通信-原理图|技术方案

5 月 5, 2019

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

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

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

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

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

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

M. Gentili and R. Sannino are with AST Audio/Sensors Platforms R&D and Audio SW Ecosystem, STMicroelectronics, Agrate Brianza, Italy (e-mail: [maurizio.gentilijroberto.sannino]@st.com).

M. Petracca is with Scuola Superiore Sant’Anna di Pisa and National Inter-University Consortium for Telecommunications, Pisa, Italy (e-mail:matteo.petracca@sssup.it) .

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

 

基于低能耗蓝牙的半双工语音通信-原理图|技术方案

图1. 低能耗蓝牙协议栈
 

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

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

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

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

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

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

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

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

服务声明(Handle 0x0010)

– UUID: 标准16位UUID,用于主服务声明(0x2800).

– 权限:读

– 数值: 独有128位BVS UUID.

特征声明 (Handle 0x0011)

– UUID: 标准16位UUID,用于特征声明 (0x2803).

– 权限: 读

– 数值: 独有128位音频UUID, 仅用于通知, Handle: 0x012.

特征数据 (Handle 0x0012)

– UUID: 独有128位音频UUID.

– 权限: 无

– 数值: 实际音频数据

特征声明 (Handle 0x0014)

– UUID: 标准16位UUID,用于特征声明 (0x2803).

– 权限:读

– 数值: 独有128位同步UUID,仅用于通知,Handle: 0x0015.

特征数据 (Handle 0x0015)

– UUID: 独有128位同步UUID.

– 权限: 无

– 数值: 实际同步数据

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

 

基于低能耗蓝牙的半双工语音通信-原理图|技术方案

图2. BlueVoice服务(BVS)定义

 

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

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

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

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

 

基于低能耗蓝牙的半双工语音通信-原理图|技术方案

图3:BlueVoice配置文件角色分配

 

。 (本文来源网络整理,目的是传播有用的信息和知识,如有侵权,可联系管理员删除)

版权声明:网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时联络我们,采取适当措施,避免给双方造成不必要的经济损失。