基于低能耗蓝牙的半双工语音通信
本文从支持语音流服务所需的扩展服务集开始介绍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)和通用属性配置文件是开发新应用时需要重点考虑的两个协议组件。属性协议是一个无状态的客户机/服务器协议:不考虑设备的底层角色是主设备还是从设备,每个设备都可以设为服务器、客户机或是客户机兼服务器。客户机请求服务器数据发送数据,服务