基于低能耗藍牙的半雙工語(yǔ)音通信
摘要:低能耗藍牙被業(yè)界廣泛認為是實(shí)現物聯(lián)網(wǎng)(IoT)應用愿景的關(guān)鍵技術(shù)。事實(shí)上,極低的功耗使其成為電池供電的物聯(lián)網(wǎng)產(chǎn)品最理想的無(wú)線(xiàn)通信解決方案,盡管目前低能耗藍牙技術(shù)規范還是局限于幾種特定應用,但是,創(chuàng )新的解決方案可促使這項技術(shù)拓展到不同的應用領(lǐng)域,例如,多媒體流。按照這個(gè)發(fā)展方向,本文介紹一個(gè)叫做BlueVoice的低能耗藍牙設備語(yǔ)音流應用。
本文引用地址:http://dyxdggzs.com/article/201606/292280.htm本文從支持語(yǔ)音流服務(wù)所需的擴展服務(wù)集開(kāi)始介紹BlueVoice應用,然后在實(shí)際硬件設備上評估BlueVoice的性能。在所選的硬件平臺上,BlueVoice應用完全支持語(yǔ)音流服務(wù),同時(shí)避免能源浪費。
I. 前言
經(jīng)歷過(guò)去幾十年的快速增長(cháng),互聯(lián)網(wǎng)幾乎滲透到人類(lèi)社會(huì )日常生活的方方面面。未來(lái)互聯(lián)網(wǎng)將擴展到萬(wàn)物互聯(lián),數十億甚至數百億個(gè)有唯一身份的“物品”通過(guò)無(wú)線(xiàn)通信與人類(lèi)和周?chē)h(huán)境交互,執行高級任務(wù)。在這一構想中,“物品”可能是傳感器、致動(dòng)器、家電、玩具,總之,可以是任何能夠被識別的虛擬或實(shí)體物品,這種互聯(lián)網(wǎng)演進(jìn)構想被稱(chēng)為物聯(lián)網(wǎng)(IoT)。
物聯(lián)網(wǎng)概念是通過(guò)標準協(xié)議解決方案(即互聯(lián)網(wǎng)協(xié)議)和無(wú)線(xiàn)通信接口,把所有產(chǎn)品設備連接在一起,組成一個(gè)全球網(wǎng)絡(luò )。實(shí)現萬(wàn)物互聯(lián),雖然可以使用現有的大量的射頻通信技術(shù),但是當物聯(lián)網(wǎng)產(chǎn)品是部署在現場(chǎng)的自主型電池供電裝置時(shí),低功耗無(wú)線(xiàn)通信技術(shù)才會(huì )是最適合的通信解決方案。在這個(gè)方面,低能耗藍牙(Bluetooth LE) [1]技術(shù)被視為最有效的物聯(lián)網(wǎng)通信解決方案,同時(shí)正在融入互聯(lián)網(wǎng)世界[2]。
在今天的物聯(lián)網(wǎng)應用中,低能耗藍牙解決方案主要用于生命參數監視用途。除傳統的監視服務(wù)外,近幾年業(yè)界開(kāi)始探索基于其它技術(shù)的先進(jìn)應用。例如,參考文獻[3]提出并分析了基于IEEE802.15.4的網(wǎng)絡(luò )[4]語(yǔ)音通信。在這個(gè)方面,通過(guò)低能耗藍牙傳輸多媒體數據還是處于起步階段,缺少可用的解決方案主要是因為最初設想時(shí)未考慮到這些應用(例如,最初主要考慮的是醫療、健身等應用)。本文以在低能耗藍牙設備上支持語(yǔ)音流服務(wù)的BlueVoice應用為例,探討如何解決這些技術(shù)限制問(wèn)題。我們先了解一下低能耗藍牙技術(shù),然后詳細介紹支持該新應用概念所需的擴展服務(wù)集,再介紹應用設計,最后在STM32 Nucleo L476板上測試實(shí)際性能。
本文的有要內容安排如下:第二章介紹低能耗藍牙工作原理,先描述整個(gè)工作棧;然后介紹配置文件(Profiles)概念。第三章介紹應用方案設計,描述其低能耗藍牙配置文件,然后介紹其設計原則、設計實(shí)現及實(shí)際性能。第四章是結論。
II. 低能耗藍牙技術(shù)概述
BLE低能耗藍牙規范于2010年寫(xiě)入藍牙4.0核心規范,盡管與基本藍牙相似,但是低能耗藍牙規范主要是為超低功耗應用設計開(kāi)發(fā)。通過(guò)低能耗藍牙技術(shù)連接電池供電設備的潛在應用非常少,醫療、健身和智慧家居是其中僅有的幾例。

圖1. 低能耗藍牙協(xié)議棧
如圖1所示,低能耗藍牙協(xié)議??傮w結構主要由兩個(gè)部分組成:控制器和主機。應用軟件使用協(xié)議棧主機層的協(xié)議提供的服務(wù)。主機層分為五層:邏輯鏈路控制和適配協(xié)議(L2CAP)、屬性協(xié)議(ATT)、通用屬性配置文件(GATT)、安全管理協(xié)議(SM)、通用訪(fǎng)問(wèn)配置文件(GAP)??刂破鞑糠种挥袃蓪樱何锢韺?PHY)和鏈路層(LL)。如圖1所示,主機-控制器(HCI)接口是控制器與主機的通信通道。
物理層負責比特調制,通過(guò)無(wú)線(xiàn)通道收發(fā)數據。最高數據速率是1 Mb/s,典型通信距離是幾十米。
鏈路層規定兩個(gè)設備之間雙向通信的功能。低能耗藍牙節點(diǎn)有兩個(gè)角色:主設備和從設備。通常是主設備(例如,筆記本電腦、智能手機)搜索從設備(例如,體感設備);必要時(shí),從設備向主設備發(fā)送數據。從設備通常處于睡眠狀態(tài),并在固定間隔內喚醒,以便被主設備搜到。
在鏈路層之上,邏輯鏈路控制和適配協(xié)議(L2CAP)有兩個(gè)主要功能。該協(xié)議的主要作用是提供多路傳輸功能,按照標準低能耗藍牙分組數據格式,封裝轉換頂層多協(xié)議數據。安全管理協(xié)議(SM)和通用訪(fǎng)問(wèn)配置文件(GAP)分別提供數據安全和服務(wù)管理功能。詳細的說(shuō),安全管理協(xié)議定義密鑰的生成方式,以及如何在兩個(gè)設備(主從設備)之間交換密鑰,建立安全加密通信通道,而通用訪(fǎng)問(wèn)配置文件則規定兩個(gè)設備如何在底層交互操作
屬性協(xié)議(ATT)和通用屬性配置文件是開(kāi)發(fā)新應用時(shí)需要重點(diǎn)考慮的兩個(gè)協(xié)議組件。屬性協(xié)議是一個(gè)無(wú)狀態(tài)的客戶(hù)機/服務(wù)器協(xié)議:不考慮設備的底層角色是主設備還是從設備,每個(gè)設備都可以設為服務(wù)器、客戶(hù)機或是客戶(hù)機兼服務(wù)器??蛻?hù)機請求服務(wù)器數據發(fā)送數據,服務(wù)器向客戶(hù)機發(fā)送數據,數據以屬性的形式保存在服務(wù)器內,每個(gè)屬性都含有GATT管理的數據,而且該數據被分配一個(gè)通用唯一標識符(UUID)。通過(guò)一個(gè)L2CAP專(zhuān)用通道,屬性協(xié)議在服務(wù)器屬性與客戶(hù)機之間建立一條通信通道。通用屬性配置文件(GATT)在屬性協(xié)議層添加一個(gè)數據抽象模型,負責搜索屬性協(xié)議保存的數據,在兩個(gè)設備之間交換特征。每個(gè)低能耗藍牙設備都有一套可能屬性(存儲服務(wù))和特征(與存儲服務(wù)相關(guān)的屬性)。如果在低能耗藍牙棧上建立一個(gè)新應用,則必須定義屬性和特征。某一特定應用的特征、屬性和底層規范合稱(chēng)配置文件,標準配置文件可保證不同品牌的產(chǎn)品能夠互聯(lián)互通。
III. BLUEVOICE應用
下面我們介紹BlueVoice應用,首先定義語(yǔ)音通信低能耗藍牙配置文件,然后討論所涉及設備的通信角色、音頻處理和壓縮選擇、數據分組問(wèn)題和帶寬要求。我們提出兩個(gè)在音頻采集和功耗方面不同的系統配置,以滿(mǎn)足不同的應用要求。本章最后一部分介紹在一個(gè)實(shí)際硬件設備上實(shí)現的BlueVoice應用,然后比較并討論實(shí)際測量到的應用性能,例如,功耗、存儲器占用、處理性能要求和自動(dòng)語(yǔ)音識別(ASR)性能。
A. 服務(wù)定義
考慮到音頻流用例不屬于低能耗藍牙標準配置文件,為實(shí)現語(yǔ)音流服務(wù),BlueVoice應用在低能耗藍牙協(xié)議棧上,定義了一個(gè)叫做BlueVoice Service(BVS)的“廠(chǎng)商專(zhuān)用配置文件”,指定了服務(wù)器與客戶(hù)機之間交換語(yǔ)音數據的方式。此外,考慮到半雙工通信需要特別的設計選擇,本章稍后詳細討論這個(gè)問(wèn)題。
如前文所述,屬性協(xié)議ATT是通用屬性配置文件GATT在不同設備之間交換數據的傳輸協(xié)議,屬性是ATT定義的最小的實(shí)體,是可尋址的信息段(內置UUID標識碼),可能含有用戶(hù)數據或關(guān)于屬性本身架構的元信息,例如,權限、加密和授權屬性。GATT服務(wù)器屬性按特定順序組成一個(gè)服務(wù)序列,序列開(kāi)始部分是服務(wù)聲明屬性,后面跟一個(gè)或多個(gè)特征和可能的描述符。每個(gè)特征都是一個(gè)被披露的屬性。除標準配置文件UUID外,在定制應用中,開(kāi)發(fā)人員可使用獨有的和廠(chǎng)商專(zhuān)用的UUID開(kāi)發(fā)有自己特征的新服務(wù),BlueVoice應用就是這種情況??紤]到單向音頻流系統不對稱(chēng)性,服務(wù)器通過(guò)BVS配置文件向客戶(hù)機披露數據類(lèi)型和格式以及訪(fǎng)問(wèn)方式。BVS服務(wù)包含下列屬性,如圖2所示。
服務(wù)聲明(Handle 0x0010)
– UUID: 標準16位UUID,用于主服務(wù)聲明(0x2800).
– 權限:讀
– 數值: 獨有128位BVS UUID.
特征聲明 (Handle 0x0011)
– UUID: 標準16位UUID,用于特征聲明 (0x2803).
– 權限: 讀
– 數值: 獨有128位音頻UUID, 僅用于通知, Handle: 0x012.
特征數據 (Handle 0x0012)
– UUID: 獨有128位音頻UUID.
– 權限: 無(wú)
– 數值: 實(shí)際音頻數據
特征聲明 (Handle 0x0014)
– UUID: 標準16位UUID,用于特征聲明 (0x2803).
– 權限:讀
– 數值: 獨有128位同步UUID,僅用于通知,Handle: 0x0015.
特征數據 (Handle 0x0015)
– UUID: 獨有128位同步UUID.
– 權限: 無(wú)
– 數值: 實(shí)際同步數據
根據該標準,主服務(wù)聲明是服務(wù)的第一個(gè)屬性,其數值域包含該聲明引入的UUID定義。BlueVoice應用聲明使用一個(gè)128位獨有的UUID(BVS UUID)。BVS包含兩個(gè)特征,分別叫做音頻(Audio)和同步(Sync) 特征。在低能耗藍牙規范中,每個(gè)特征至少包含兩個(gè)屬性,分別是特征聲明和特征數值。特征聲明以元數據的形式定義其屬性,特征數值則是包含實(shí)際特征數據。在BlueVoice情況中,音頻和同步特征都包含一個(gè)單一的由獨有128位UUID定義 (AudioData和SyncData UUID) 的屬性,分別含有實(shí)際音頻數據和邊信息同步數值。音頻和同步特征聲明將AudioData和SyncData屬性定義為”僅通知”,未取得客戶(hù)機的讀寫(xiě)權限,表示音頻數據和同步數據只以通知的形式傳輸,服務(wù)器不答復客戶(hù)機。為與低能耗藍牙服務(wù)的分層架構一致,其它特征可能會(huì )增加到未來(lái)發(fā)布的BlueVoice應用。

圖2. BlueVoice服務(wù)(BVS)定義
B. 應用設計
本章主要介紹BlueVoice應用設計的(i)低能耗藍牙通信(ii)音頻處理。
1) 低能耗藍牙通信
按照低能耗藍牙協(xié)議,通信可以是多點(diǎn)廣播,也可以是點(diǎn)對點(diǎn)連接。BlueVoice應用鏈路層使用連接通信模式,在兩個(gè)設備之間建立永久性的點(diǎn)對點(diǎn)連接,這兩個(gè)設備扮演兩個(gè)不同的角色:中央設備和周邊設備。中央設備又稱(chēng)主設備,支持與周邊設備(從設備)相關(guān)的復雜功能。中央設備是發(fā)起通信連接,執行自適應跳頻,數據加密,管理通信時(shí)序,定義設備間數據交換方式。該角色分配符合低能耗藍牙的非對稱(chēng)設計概,為能效要求高的設備分配更少的工作任務(wù)。電池供電的便攜設備通常是從設備,不過(guò),必須說(shuō)明的是,根據規范[1],每個(gè)設備在每個(gè)連接事件發(fā)生時(shí)可單獨發(fā)送數據,且角色不在數據吞吐量上強加限制或優(yōu)先權??紤]到半雙工通信情況,BlueVoice應用可運行在自主的電池供電無(wú)線(xiàn)傳感設備上,且這些設備配備麥克風(fēng)(和最終標量傳感器,如典型物聯(lián)網(wǎng)概念中無(wú)處不在的監視應用), 因此,角色分配不再與收發(fā)功能有關(guān)。
在鏈路層之上,GATT層定義互動(dòng)設備的客戶(hù)機和服務(wù)器角色,與前文描述的主設備和從設備無(wú)關(guān)。服務(wù)器是提供信息的設備,而客戶(hù)機是請求或接收最新信息的設備??紤]到單向音頻流是非對稱(chēng)系統,裝備麥克風(fēng)的設備是唯一有語(yǔ)音信息的設備,因此可將其視為通信服務(wù)器,另一個(gè)設備是客戶(hù)機,向服務(wù)器發(fā)送信息請求,并接收服務(wù)器發(fā)起的含有語(yǔ)音數據的更新信息。在雙向通信系統中,語(yǔ)音數據是雙向傳輸,架構是對稱(chēng)的,中央設備和周邊設備都配備麥克風(fēng),都可以充當服務(wù)器,輸出任何屬性格式的音頻數據。同時(shí),服務(wù)器也能充當客戶(hù)機,發(fā)送信息請求,并接受另一個(gè)設備發(fā)送的更新信息。
雙向語(yǔ)音數據流是基于服務(wù)器以固定間隔向客戶(hù)機發(fā)送通知,不需要接收設備發(fā)送請求或回復信號。從設備在上電階段進(jìn)入廣播模式,以低頻發(fā)送廣播數據包,主設備進(jìn)入搜索模式,掃描是否有其它設備存在,反之亦然。收到廣播數據包代表主設備發(fā)現了相關(guān)從設備,然后,主設備發(fā)送一個(gè)連接請求。在連接建立過(guò)程結束后,按照所選的通信傳輸方向:中央設備至周邊設備或周?chē)O備-中央設備,以固定間隔從服務(wù)器向客戶(hù)機發(fā)送含有音頻數據的異步通知數據包。圖3所示是BlueVoice在GATT 層的角色分配。

圖3:BlueVoice配置文件角色分配
2)音頻處理
BlueVoice的音頻處理目的是在根據應用所選的接收端上,取得8kHz 或16 kHz的目標音頻采樣。事實(shí)上,對于低功耗要求極其嚴格但是對音質(zhì)要求不高的應用場(chǎng)景,例如,無(wú)需人耳聽(tīng)清楚的自動(dòng)語(yǔ)音識別服務(wù)輸入音頻,8kHz采樣率可能是一個(gè)不錯的選擇。
使用自適應差分脈沖碼調制算法壓縮低能耗藍牙音頻傳輸信號,可使音頻信號適用于現有的數據傳輸速率,同時(shí)最大限度縮減射頻傳輸時(shí)間以及功耗。我們使用數字MEMS麥克風(fēng)設計一個(gè)全數字解決方案,尺寸和音質(zhì)等特性使其適用于無(wú)線(xiàn)傳感器設備。圖4所示是16 kHz采樣率的完整語(yǔ)音處理鏈。該解決方案首先采集數字MEMS麥克風(fēng)生成的1 MHz 的1位脈沖密度調制(PDM)信號,并將其轉換成16 kHz 的16位脈沖編碼調制(PCM)采樣,然后以16000個(gè)采樣/秒的采樣率,再將其壓縮成4位ADPCM采樣信號,并準備發(fā)送。
此外,以較低的頻率發(fā)送邊信息同步數據集合,所需帶寬是64 kbps音頻數據與300 bps同步信息數據之和,總計64.3 kbps。對于8kHz采樣率,最終ADPCM采樣率是8000個(gè)采樣/秒,導致31.3 kbps帶寬需求,包括邊信息。下面章節深入介紹上述模塊。

圖4:16kHz 配置的BlueVoice數據傳輸鏈
MEMS麥克風(fēng)的容性傳感器生成的模擬信號經(jīng)放大和高速率采樣后,交由整合量化和噪聲修整操作的內部sigma-delta調制器處理,輸出的數據是一個(gè)單一的高采樣率的PDM格式比特,PCM轉換是從PDM到無(wú)線(xiàn)通道發(fā)送壓縮音頻數據的整個(gè)處理鏈的中間環(huán)節。為了把PDM流轉換成PCM數據,需要使用一個(gè)抽取濾波器和兩個(gè)可單獨配置的濾波器(低通濾波器和高通濾波器。該處理模塊輸出16位PCM格式采樣流。按照所選采樣頻率,采用一個(gè)不同配置的抽取濾波器,以取得16位PCM數據采樣。
ADPCM編碼模塊壓縮PCM采樣,通過(guò)減少數據包傳輸量,節省傳輸帶寬,降低能耗,如前文所述,ADPCM 是一個(gè)用于損耗波形編碼的壓縮算法,其基本原理是根據上一個(gè)數值預測當前數值,只傳輸自適應量化步驟量化的實(shí)際值與預測值的差值。存在諸多可選壓縮標準,卻單單選用ADPCM標準,這是因為它是基于波形編碼方法,與基于聲碼器的復雜解決方案相比,更適用于傳感器網(wǎng)絡(luò )設備(通?;谖⒖刂破?。在BlueVoice應用中,每個(gè)16位PCM采樣都壓縮成4位ADPCM數據,這樣所需的應用傳輸帶寬是32 kbps或64 kbps,至于具體速率取決于采樣頻率,而且兼容低能耗藍牙流媒體功能。
如前文所述,BlueVoice應用的總體帶寬實(shí)際需求高于32 kbps或64 kbps的理論值,這是因為BlueVoice為提高通信穩健性,在通過(guò)通道發(fā)送數據時(shí)增加了附加信息。16 kHz 配置采用10 ms連接間隔,而8 kHz 配置采用25 ms連接間隔。事實(shí)上,如果被傳輸的數據量較少,可提高連接間隔數值,從而節省能源。為盡可能地利用每個(gè)數據包現有有效載荷,語(yǔ)音數據包發(fā)送20個(gè)字節。
因此,在16 kHz配置中,語(yǔ)音數據每10 ms發(fā)送4個(gè)數據包,而在8 kHz配置中,語(yǔ)音數據每20 ms發(fā)送4個(gè)數據包,結果傳輸帶寬分別是64 kbps和32 kbps。發(fā)送器的邊信息發(fā)送頻率較低,每160 ms發(fā)送一個(gè)6字節的附加包,對應16個(gè)或8個(gè)連接間隔。圖5描述了低能耗藍牙協(xié)議棧上的數據分組總體策略。通過(guò)音頻特征,每10ms或20 ms連接間隔,發(fā)送4個(gè)語(yǔ)音數據包(每包20字節),而發(fā)送器邊信息的發(fā)送是,通過(guò)同步特征,每160ms間隔發(fā)送一個(gè)附加數據包。

圖5:BlueVoice數據分組機制
C. 在實(shí)際硬件上實(shí)現應用
為了在支持低能耗藍牙通信的不是十分復雜的實(shí)際硬件無(wú)線(xiàn)傳感器網(wǎng)絡(luò )平臺上評估BlueVoice的可行性,我們在實(shí)際硬件設備上實(shí)現了第三章B部分所描述的應用軟件的全部功能。所選硬件平臺是意法半導體的STM32 Nucleo L476開(kāi)發(fā)板[5],這是一個(gè)基于STM32L476 80 MHz 32位ARM Cortex-M4微控制器的開(kāi)放式開(kāi)發(fā)平臺。我們選擇STM32 Nucleo開(kāi)發(fā)板的原因是,板載微控制器的性能高于普通無(wú)線(xiàn)傳感器網(wǎng)絡(luò )平臺,同時(shí)還具備很高的靈活性和多功能性。該開(kāi)發(fā)板配備很多接口和擴展排針,插接專(zhuān)用擴展板擴大板子功能簡(jiǎn)單容易,方便設計人員研究、開(kāi)發(fā)和驗證新創(chuàng )意。特別值得一提的是,STM32L4微控制器具有市場(chǎng)領(lǐng)先的低功耗特性,其內置數字濾波器配合Sigma-Delta調制器(DFSDM)外設,可實(shí)現圖4的PDM至PCM的格式轉換,這些特性使其特別適合BlueVoice應用。通過(guò)在STM32Nucleo開(kāi)發(fā)板上接插一塊低能耗藍牙連接板和一塊麥克風(fēng)擴展板,BlueVoice中央模塊和周邊模塊可以組成一個(gè)基于STM32Nucleo的對稱(chēng)硬件配置,展示一個(gè)半雙工通信通道。低能耗藍牙連接板基于意法半導體的BlueNRG [6],BlueNRG是一個(gè)超低功耗的低能耗藍牙單模網(wǎng)絡(luò )處理器,兼容藍牙規范4.0版,可設為主設備和從設備模式,當低能耗藍牙協(xié)議棧啟動(dòng)時(shí),數據傳輸最大電流8.2 mA,可降至1.7 uA。附加的麥克風(fēng)擴展板用于采集語(yǔ)音信號,基于意法半導體的MP34DT01 [7]數字萬(wàn)向MEMS 麥克風(fēng),聲學(xué)過(guò)載點(diǎn)120 dBSPL, 信噪比63 dB,靈敏度-26 dBFS。MP34DT01采用一個(gè)容式傳感器和一個(gè)內置sigma-delta調制器和噪聲修整機制的集成電路,提供1-3.25 MHz的PDM輸出。
圖6是實(shí)際硬件設備的框圖:STM32微控制器通過(guò)與外設模塊DMA相連的DFSDM模塊采集麥克風(fēng)的PDM采樣輸出,同時(shí)通過(guò)一套專(zhuān)用應用程序界面(API)和串行外設接口(SPI)與BlueNRG模塊通信,對于中央模塊和周邊模塊,模塊化架構是對稱(chēng)的??驁D中還有一個(gè)USB音頻接口,用于向PC機提供重構的音頻信號。圖7是硬件設備的實(shí)際原型。
評論