專利名稱:基于藍(lán)牙技術(shù)的多跳語音傳輸方法
技術(shù)領(lǐng)域:
本發(fā)明是一種用于拓展藍(lán)牙應(yīng)用范圍的方法,屬于區(qū)域性無線互聯(lián)通信技術(shù) 領(lǐng)域。
背景技術(shù):
藍(lán)牙是一種短距離無線通信技術(shù),用于替代數(shù)字設(shè)備和計(jì)算機(jī)外設(shè)間的電纜 連線以及實(shí)現(xiàn)數(shù)字設(shè)備間的無線組網(wǎng)。藍(lán)牙的設(shè)計(jì)初衷是利用一種小型化、低成 本和微功率的無線通信技術(shù)來構(gòu)造一種個(gè)域網(wǎng)(Personal Area Network, PAN), 以使PAN覆蓋范圍內(nèi)各種移動(dòng)或固定設(shè)備都能實(shí)現(xiàn)資源共享。為了更好地推廣應(yīng)用藍(lán)牙技術(shù),1998年愛立信、諾基亞、東芝、IBM和英特 爾成立了藍(lán)牙特別專業(yè)組(Special Interesting Group, SIG),負(fù)責(zé)制定藍(lán)牙 規(guī)范。藍(lán)牙設(shè)備工作在2. 4 GHz的工科醫(yī)(Industry Science Medicine, ISM) 頻段,使用79頻道,間隔均為1 MHz;采用時(shí)分雙工(Time Division Duplex, TDD)方式;調(diào)制方式為BT=0. 5的高斯頻移鍵控(Gaussian Frequency Shift Keying, GFSK),調(diào)制指數(shù)為0. 28 0. 35;最大發(fā)射功率分為三個(gè)等級(jí),分別是 lOOmW (20dBm), 2. 5mW (4dBm) 和lmW (OdBm),在4 20dBm范圍內(nèi)要求采用 功率控制,由此可見,藍(lán)牙支持的標(biāo)準(zhǔn)通信距離為10 100米,但配置射頻功率 放大器可以將通信距離進(jìn)一步放大。藍(lán)牙基帶提供兩種物理連接同步面向連接 (Synchronous Connection Oriented, SCO) 禾口異步無連接(Asynchronous Connection-less, ACL) 。 ACL適用于數(shù)據(jù)分組,SCO適用于話音分組。 一個(gè)藍(lán)牙 節(jié)點(diǎn)最多可以支持7條激活的ACL鏈路或3條激活的SCO鏈路。另外,藍(lán)牙技術(shù) 使用跳頻技術(shù),使得藍(lán)牙通信具有足夠高的抗干擾能力。在組網(wǎng)方面,藍(lán)牙基本的組網(wǎng)形式是微微網(wǎng)(Piconet)。在一個(gè)Piconet中, 只能有一個(gè)主設(shè)備,最多有7個(gè)處于活躍模式的從設(shè)備,此外還可以有最多255 個(gè)處于非活躍模式的從設(shè)備。 一個(gè)設(shè)備可以是某個(gè)Piconet的成員,也可以同時(shí) 是多個(gè)Piconet的成員,當(dāng)兩個(gè)或多個(gè)Piconet相互連接通信時(shí),就構(gòu)成了散射
網(wǎng)(Scatternet)。所有Piconet需要遵循的原則,在Scatternet中同樣適用, 即每個(gè)Piconet都有一個(gè)主設(shè)備和若干個(gè)處于活動(dòng)或休眠的從設(shè)備,每個(gè) Piconet的跳頻序列由主設(shè)備決定。通過時(shí)分的方式與周圍的主設(shè)備保持同步與 連接, 一個(gè)藍(lán)牙設(shè)備可以同時(shí)成為多個(gè)Piconet的從設(shè)備。當(dāng)然, 一個(gè)藍(lán)牙設(shè)備 可以在一個(gè)Piconet中作為主設(shè)備的同時(shí),在另一個(gè)Piconet中作為從設(shè)備。由 此可見,Scatternet的拓?fù)浣Y(jié)構(gòu)與網(wǎng)絡(luò)組織都非常靈活。為了使藍(lán)牙設(shè)備在組網(wǎng)和交換信息方面具有互操作性,藍(lán)牙SIG根據(jù)IEEE 802. 3/Ether- net定義了藍(lán)牙網(wǎng)絡(luò)封裝協(xié)議(Bluetooth Network Encapsulation Protocol, BNEP)。 BNEP被定義在邏輯鏈路控制和適配協(xié)議層(Logical Link Control and Adaptation Protocol, L2CAP)之上,它對(duì)上層IP協(xié)議提供了類 似于以太網(wǎng)的接口。 BNEP主要實(shí)現(xiàn)了兩種功能 一是對(duì)網(wǎng)絡(luò)層數(shù)據(jù)包的封裝; 二是對(duì)兩個(gè)BNEP實(shí)體間交換控制信息提供支持。BNEP定義了三種控制功能連 接建立、網(wǎng)絡(luò)協(xié)議類型過濾、多播地址過濾。兩個(gè)BNEP對(duì)等實(shí)體只有在建立了 連接之后才能利用BNEP相互通信,兩個(gè)設(shè)備之間只能有一條BNEP鏈路,建立 BNEP連接的過程實(shí)際上就是一個(gè)請(qǐng)求, 一個(gè)應(yīng)答。當(dāng)建立了連接之后還可以對(duì) 已經(jīng)建立的鏈路進(jìn)行配置,配置網(wǎng)絡(luò)協(xié)議類型和多播地址過濾。前者是協(xié)商在 BNEP鏈路上可以支持那些網(wǎng)絡(luò)層協(xié)議,后者是協(xié)商哪些多播地址可以在這條鏈 路上使用。當(dāng)通信完成后,通信雙方需斷開連接。本發(fā)明內(nèi)容中的藍(lán)牙多跳鏈路 就是采用BNEP組建的。目前,藍(lán)牙在實(shí)際應(yīng)用中存在如下限制① 藍(lán)牙傳輸距離受限。在背景技術(shù)部分己提到過,藍(lán)牙在不外接射頻功率 放大器的情況下,支持的最大功率為lOOmW (20dBm),其標(biāo)準(zhǔn)的傳輸距離為100 米。在有障礙物存在的情況下,藍(lán)牙的傳輸距離與傳輸速率都會(huì)大大下降,甚至 可能無法通信。② 藍(lán)牙承載的語音鏈路數(shù)目受限。理論上,每個(gè)藍(lán)牙最多可支持3條激活 的SCO語音鏈路。發(fā)明內(nèi)容技術(shù)問題本發(fā)明的目的是提供一種基于藍(lán)牙技術(shù)的多跳語音傳輸方法以 克服藍(lán)牙在實(shí)際應(yīng)用中的限制。
① 通過組建藍(lán)牙多跳鏈路,大大增加藍(lán)牙的通信距離,在有障礙物存在的 情況下,可以增加藍(lán)牙通信節(jié)點(diǎn)來解決通信障礙問題。② 通過采用語音處理與傳輸技術(shù),使得每個(gè)藍(lán)牙最多可支持7條激活的IP 語音鏈路。技術(shù)方案本發(fā)明的基于藍(lán)牙技術(shù)的多跳語音傳輸方法主要包含兩個(gè)內(nèi)容: 一是通過采用BNEP組建能承載IP的藍(lán)牙多跳鏈路;二是通過釆用語音處理與傳 輸技術(shù)在藍(lán)牙多跳鏈路上傳輸語音。1. 該方法是采用藍(lán)牙組建多跳鏈路并在此多跳鏈路上傳輸語音,具體實(shí)現(xiàn)包 括以下步驟并按所述順序進(jìn)行① 設(shè)備初始化包含藍(lán)牙設(shè)備的啟動(dòng)與藍(lán)牙協(xié)議棧模塊的加載;② 鄰居發(fā)現(xiàn)利用藍(lán)牙查詢功能查找周圍設(shè)備的藍(lán)牙地址并將其保存在本 地的鄰居表中,同時(shí)在后臺(tái)運(yùn)行鄰居表維護(hù)進(jìn)程,對(duì)鄰居表中的鄰居信息進(jìn)行定 期更新;③ 路徑發(fā)現(xiàn)利用藍(lán)牙邏輯鏈路控制與適配層的廣播功能,尋找一條從主 叫方到被叫方的通信路徑,并在后臺(tái)運(yùn)行路由表維護(hù)進(jìn)程,對(duì)路由表進(jìn)行定期整 理與更新; 藍(lán)牙多跳鏈路建立根據(jù)上述步驟③所發(fā)現(xiàn)的路徑,從被叫方到主叫方 建立一條能承載IP的藍(lán)牙多跳鏈路,并在后臺(tái)運(yùn)行鏈路維護(hù)進(jìn)程;⑥ 語音通信屬于上層應(yīng)用,主叫方與被叫方之間進(jìn)行雙向語音通信;⑦ 藍(lán)牙多跳鏈路斷開當(dāng)主叫方或被叫方要求斷開通信鏈路時(shí),從主叫方 到被叫方或從被叫方到主叫方,根據(jù)通信鏈路中各節(jié)點(diǎn)路由表中的路由信息依次 斷開連接,并終止后臺(tái)運(yùn)行的鏈路維護(hù)進(jìn)程。2. 組建藍(lán)牙多跳鏈路時(shí),采用一種適于在藍(lán)牙邏輯鏈路控制與適配層實(shí)現(xiàn)的 分布式路徑發(fā)現(xiàn)算法,該算法描述如下21) 如果本地節(jié)點(diǎn)作為源節(jié)點(diǎn)即主叫方發(fā)起建鏈請(qǐng)求,則轉(zhuǎn)至步驟22),否 則轉(zhuǎn)至23);22) 源節(jié)點(diǎn)將建鏈請(qǐng)求幀廣播給各鄰居節(jié)點(diǎn),并在本地路由表中添加相應(yīng)的路由項(xiàng),轉(zhuǎn)至23);23) 處于等待狀態(tài),如果接收到建鏈請(qǐng)求幀,則轉(zhuǎn)至24);24) 本地節(jié)點(diǎn)解析接收到的建鏈請(qǐng)求幀,首先,搜索路由表,如果在路由
表中已存在相應(yīng)的路由項(xiàng),則比較累計(jì)跳數(shù),如果收到的建鏈請(qǐng)求幀中的累計(jì)跳 數(shù)大于等于已存路由項(xiàng)中的累計(jì)路由,則轉(zhuǎn)至26),否則更新相應(yīng)的路由項(xiàng);其 次,如果本地節(jié)點(diǎn)就是目的節(jié)點(diǎn)即被叫方,則轉(zhuǎn)至27);最后,如果累計(jì)跳數(shù)達(dá) 到x,則轉(zhuǎn)至26),否則,轉(zhuǎn)至25);25) 本地節(jié)點(diǎn)將接收到的建鏈請(qǐng)求幀中的本地藍(lán)牙地址項(xiàng)修改為本地的藍(lán) 牙地址,將累計(jì)跳數(shù)加l,將本地的部分鄰居即不同于接收到的建鏈請(qǐng)求幀中的 鄰居個(gè)數(shù)累加到擴(kuò)展地址個(gè)數(shù)中,將本地的部分鄰居地址即不同于接收到的建鏈 請(qǐng)求幀中的鄰居添加在建鏈請(qǐng)求幀最后,然后,廣播修改后的建鏈請(qǐng)求幀至本地 的部分鄰居即不同于接收到的建鏈請(qǐng)求幀中的鄰居,并在路由表中添加或修改相應(yīng)的路由項(xiàng),轉(zhuǎn)至23);26) 丟棄該建鏈請(qǐng)求幀,轉(zhuǎn)至23);27) 路徑發(fā)現(xiàn)完成,調(diào)用鏈路建立進(jìn)程在后臺(tái)運(yùn)行,轉(zhuǎn)至23)。3. 在藍(lán)牙多跳鏈路上,主叫方發(fā)送語音信息或被叫方發(fā)送語音信息,具體實(shí) 現(xiàn)包括以下步驟并按所述順序進(jìn)行31) 語音數(shù)字化通過模/數(shù)轉(zhuǎn)化將模擬語音轉(zhuǎn)化為數(shù)字語音,并進(jìn)行基本 的語音編碼;32) 語音壓縮根據(jù)音頻壓縮與解壓縮的標(biāo)準(zhǔn),將輸出的數(shù)字語音進(jìn)行壓縮;33) 語音發(fā)送采用實(shí)時(shí)傳輸/實(shí)時(shí)傳輸控制協(xié)議實(shí)現(xiàn)語音發(fā)送。4. 在藍(lán)牙多跳鏈路上,被叫方接收語音信息或主叫方接收語音信息,具體實(shí) 現(xiàn)包括以下步驟并按所述順序進(jìn)行41) 語音接收采用實(shí)時(shí)傳輸/實(shí)時(shí)傳輸控制協(xié)議實(shí)現(xiàn)語音接收;42) 語音解壓縮根據(jù)音頻壓縮與解壓縮的標(biāo)準(zhǔn),將輸出的數(shù)字語音進(jìn)行解 壓縮;43) 語音播放通過數(shù)/模轉(zhuǎn)化,將步驟42)輸出的數(shù)字語音轉(zhuǎn)化為模擬語 音輸出°為了實(shí)現(xiàn)主叫方與被叫方之間的雙向語音通信,主叫方與被叫方可以分別運(yùn)行兩個(gè)進(jìn)程(一個(gè)發(fā)送進(jìn)程與一個(gè)接收進(jìn)程),如圖7所示。由于RTP/RTCP支持組播與廣播功能,在藍(lán)牙多跳鏈路上還可以進(jìn)行語音的 組播與廣播。有益效果本發(fā)明具有以下優(yōu)點(diǎn)
① 增加了藍(lán)牙的通信距離,拓展了藍(lán)牙的應(yīng)用范圍;② 在有障礙物存在的情況下,可以增加藍(lán)牙通信節(jié)點(diǎn)來解決通信障礙問題;③ 增加了藍(lán)牙承載語音的鏈路數(shù)目,每個(gè)藍(lán)牙最多可支持7條激活的IP語 音鏈路; 可以進(jìn)行語音的組播與廣播;⑤可以與其它IP網(wǎng)絡(luò)(如Internet, GPRS等)進(jìn)行融合。
圖1藍(lán)牙多跳鏈路示意圖,其中包含了多條同時(shí)進(jìn)行通信的藍(lán)牙多跳鏈路。 圖2藍(lán)牙節(jié)點(diǎn)硬件框圖,其中主機(jī)與藍(lán)牙之間采用USB線纜進(jìn)行連接,也可以采用串口線纜進(jìn)行連接,但從提高通信速率的角度考慮,推薦采用USB線纜進(jìn)行連接。圖3藍(lán)牙節(jié)點(diǎn)協(xié)議棧與上層應(yīng)用程序剖面圖,由圖可見,在多跳通信時(shí),上 層應(yīng)用程序只運(yùn)行在主叫方與被叫方,中間節(jié)點(diǎn)只需運(yùn)行網(wǎng)絡(luò)層及其以下的協(xié) 議。圖4藍(lán)牙多跳鏈路的路由實(shí)現(xiàn)框圖,主要描述了藍(lán)牙多跳鏈路的路由實(shí)現(xiàn), 其中語音通信的實(shí)現(xiàn)見圖7。圖5藍(lán)牙多跳組網(wǎng)的幀格式定義,其中,前/后向指示為0x00時(shí),表示前向 建鏈請(qǐng)求幀,前/后向指示為OxFF時(shí),表示后向建鏈幀;累計(jì)跳數(shù)定義為本地節(jié) 點(diǎn)與源節(jié)點(diǎn)之間的藍(lán)牙跳數(shù);IP地址指示用于鏈路建立時(shí)藍(lán)牙多跳鏈路中各節(jié) 點(diǎn)的IP地址分配;擴(kuò)展地址個(gè)數(shù)n表示本幀后續(xù)填寫的鄰居藍(lán)牙地址的個(gè)數(shù)。圖6藍(lán)牙多跳組網(wǎng)的路由表項(xiàng)格式定義,其中,有/無效指示為0x00時(shí),表 示本路由表項(xiàng)為可用于建鏈,有/無效指示為OxOF時(shí),表示本路由表項(xiàng)已用于建 鏈,有/無效指示為OxFF時(shí),表示本路由表項(xiàng)為無效。圖7基于藍(lán)牙技術(shù)的多跳語音通信流程圖,主叫方與被叫方分別采用一個(gè)發(fā) 送進(jìn)程與一個(gè)接收進(jìn)程進(jìn)行語音發(fā)送與接收,從而實(shí)現(xiàn)雙向的語音通信。圖8基于藍(lán)牙技術(shù)的多跳語音傳輸?shù)臄U(kuò)展應(yīng)用模型,其中多條藍(lán)牙多跳鏈路 可以通過網(wǎng)關(guān)接入Internet或GPRS,從而實(shí)現(xiàn)藍(lán)牙多跳網(wǎng)絡(luò)與Internet、 GPRS 的融合。
具體實(shí)施方式
1.本發(fā)明所述的基于藍(lán)牙技術(shù)的多跳語音傳輸方法采用以下步驟并按所述 順序進(jìn)行① 設(shè)備初始化包含藍(lán)牙設(shè)備的啟動(dòng)與藍(lán)牙協(xié)議棧模塊的加載;② 鄰居發(fā)現(xiàn)利用藍(lán)牙査詢功能査找周圍設(shè)備的藍(lán)牙地址并將其保存在本 地的鄰居表中,同時(shí)在后臺(tái)運(yùn)行鄰居表維護(hù)進(jìn)程,對(duì)鄰居表中的鄰居信息進(jìn)行定 期更新;③ 路徑發(fā)現(xiàn)利用藍(lán)牙L2CAP層的廣播功能,尋找一條從主叫方到被叫方 的通信路徑,并在后臺(tái)運(yùn)行路由表維護(hù)進(jìn)程,對(duì)路由表進(jìn)行定期整理與更新; 藍(lán)牙多跳鏈路建立根據(jù)上述③所發(fā)現(xiàn)的路徑,從被叫方到主叫方建立 一條能承載IP的藍(lán)牙多跳鏈路,并在后臺(tái)運(yùn)行鏈路維護(hù)進(jìn)程,該后臺(tái)進(jìn)程的主 要功能包含通信鏈路異常中斷時(shí)鏈路的修復(fù)以及通信鏈路性能的優(yōu)化;◎語音通信屬于上層應(yīng)用,主叫方與被叫方之間進(jìn)行雙向語音通信;⑦藍(lán)牙多跳鏈路斷開當(dāng)主叫方或被叫方要求斷開通信鏈路時(shí),從主叫方 到被叫方或從被叫方到主叫方,根據(jù)通信鏈路中各節(jié)點(diǎn)路由表中的路由信息依次 斷開連接,并終止后臺(tái)運(yùn)行的鏈路維護(hù)進(jìn)程。2.在組建藍(lán)牙多跳鏈路時(shí),路徑發(fā)現(xiàn)采用一種適于在藍(lán)牙L2CAP層實(shí)現(xiàn)的分 布式路徑發(fā)現(xiàn)算法,該算法實(shí)現(xiàn)如下21) 如果本地節(jié)點(diǎn)作為源節(jié)點(diǎn)S (即主叫方)發(fā)起建鏈請(qǐng)求,則轉(zhuǎn)至22), 否則轉(zhuǎn)至23);22) S將建鏈請(qǐng)求幀RREQ(其格式如圖5所示,包含基本部分與擴(kuò)展部分) 廣播給各鄰居節(jié)點(diǎn),并在本地路由表中添加相應(yīng)的路由項(xiàng)(其格式如圖6所示), 轉(zhuǎn)至23);23) 處于等待狀態(tài),如果接收到RREQ,則轉(zhuǎn)至24);24) 本地節(jié)點(diǎn)解析接收到的RREQ,首先,搜索路由表,如果在路由表中已存 在相應(yīng)的路由項(xiàng),則比較累計(jì)跳數(shù),如果收到的RREQ中的累計(jì)跳數(shù)大于等于已 存路由項(xiàng)中的累計(jì)路由,則轉(zhuǎn)至26),否則更新相應(yīng)的路由項(xiàng);其次,如果本地 節(jié)點(diǎn)就是目的節(jié)點(diǎn)D (即被叫方),則轉(zhuǎn)至27);最后,如果累計(jì)跳數(shù)達(dá)到x(根 據(jù)需要可修改此設(shè)置,推薦取值為5~8),則轉(zhuǎn)至26),否則,轉(zhuǎn)至25);25) 本地節(jié)點(diǎn)將接收到的RREQ中的本地藍(lán)牙地址項(xiàng)修改為本地的藍(lán)牙地址,
將累計(jì)跳數(shù)加1,將本地的部分鄰居(即不同于接收到的RREQ中的鄰居)個(gè)數(shù) 累加到擴(kuò)展地址個(gè)數(shù)中,將本地的部分鄰居地址(即不同于接收到的RREQ中的 鄰居)添加在RREQ最后,廣播修改后的RREQ至本地的部分鄰居(即不同于接收 到的RREQ中的鄰居),并在路由表中添加或修改相應(yīng)的路由項(xiàng),轉(zhuǎn)至23);26) 丟棄該RREQ,轉(zhuǎn)至23);27) 路徑發(fā)現(xiàn)完成,調(diào)用鏈路建立進(jìn)程在后臺(tái)運(yùn)行,轉(zhuǎn)至23)。 根據(jù)上述分布式路徑發(fā)現(xiàn)算法編寫的程序采用后臺(tái)服務(wù)進(jìn)程的方式在各節(jié)點(diǎn)上運(yùn)行。3. 本發(fā)明所述的藍(lán)牙多跳鏈路建立后,主叫方發(fā)送語音信息或被叫方發(fā)送語音信息,包括以下步驟并按所述順序進(jìn)行31) 語音數(shù)字化通過A/D將模擬語音轉(zhuǎn)化為數(shù)字語音,并進(jìn)行基本的語音 編碼,如64kbps的A/n律脈沖編碼調(diào)制(Pulse Code Modulation, PCM)、128kbps 的16位線性PCM等;32) 語音壓縮根據(jù)音頻壓縮與解壓縮的標(biāo)準(zhǔn),如ITU-T的G.7xx系列,將 步驟31)輸出的數(shù)字語音進(jìn)行壓縮;33) 語音發(fā)送:采用實(shí)時(shí)傳輸協(xié)議(Real-time Transport Protocol, RTP) /實(shí)時(shí)傳輸控制協(xié)議(Real-time Transport Control Protocol, RTCP)實(shí)現(xiàn)語 音發(fā)送。4. 本發(fā)明所述的藍(lán)牙多跳鏈路建立后,被叫方接收語音信息或主叫方接收語 音信息,包括以下步驟并按所述順序進(jìn)行41) 語音接收采用RTP/RTCP實(shí)現(xiàn)語音接收;42) 語音解壓縮根據(jù)音頻壓縮與解壓縮的標(biāo)準(zhǔn),如ITU-T的G.7xx系列, 將步驟41)輸出的數(shù)字語音進(jìn)行解壓縮;43) 語音播放通過D/A將步驟②輸出的數(shù)字語音轉(zhuǎn)化為模擬語音輸出。 為了實(shí)現(xiàn)主叫方與被叫方之間的雙向語音通信,主叫方與被叫方分別運(yùn)行兩個(gè)進(jìn)程(一個(gè)發(fā)送進(jìn)程與一個(gè)接收進(jìn)程),如圖7所示。實(shí)施例l:發(fā)明人提供了一個(gè)具體例子來支持本發(fā)明的可行性。1)軟硬件配置在本實(shí)施例中,藍(lán)牙節(jié)點(diǎn)的硬件框圖如圖2所示。藍(lán)牙采用的是DETA公司 的DFBM-CF121模塊,藍(lán)牙芯片中燒寫的是bc02的主機(jī)控制接口層(Host ControlInterface, HCI)以下的固件。主機(jī)采用的是PC,其Linux安裝版本為Redhat 2.4.20-8。 PC上運(yùn)行HCI層以上的藍(lán)牙協(xié)議棧,采用的是開源的藍(lán)牙協(xié)議棧 BlueZ , 其安裝版本為 bluez-libs-2. 3-3 、 bluez-utils-2. 2-3 、 bluez-libs-devel-2.3-3。 RTP/RTCP采用的是開源的jrtplib庫,其安裝版本 為jrtplib3. 6. 0。 PC的聲卡型號(hào)為VT8233 AC97 Audio Controller。模擬語音 數(shù)字化與語音播放編程采用的是開源的OSS庫,其安裝版本為 oss3994d-linux-x86- v24。在藍(lán)牙多跳鏈路中,各節(jié)點(diǎn)上運(yùn)行的協(xié)議棧與上層程序剖面如圖3所示。其 中,基帶、鏈路管理協(xié)議(Link Manager Protocol, LMP)與L2CAP運(yùn)行在藍(lán)牙 芯片上,其它的協(xié)議與上層應(yīng)用程序都運(yùn)行在PC上。針對(duì)本發(fā)明,需要在PC 上實(shí)現(xiàn)的主要是組網(wǎng)路由與語音通信應(yīng)用程序。組網(wǎng)路由實(shí)現(xiàn)的是藍(lán)牙多跳鏈路 的建立、維護(hù)與斷開,如圖4所示,其中,鏈路的建立包含鄰居發(fā)現(xiàn)、路徑發(fā)現(xiàn) 與鏈路建立,鏈路的維護(hù)包含鄰居表維護(hù)、路由表維護(hù)與鏈路維護(hù)。語音通信 應(yīng)用程序?qū)崿F(xiàn)的是語音發(fā)送進(jìn)程與語音接收進(jìn)程,如圖7所示,其中,語音發(fā)送 進(jìn)程包含模擬語音數(shù)字化、語音壓縮與語音發(fā)送,語音接收進(jìn)程包含語音接收、 語音解壓縮與數(shù)字語音播放。在實(shí)現(xiàn)模擬語音數(shù)字化與數(shù)字語音播放時(shí),在0SS庫中選用的基本語音編解 碼為128kbps的16位線性PCM。在實(shí)現(xiàn)語音壓縮與解壓縮時(shí),采用的是ITU-T 的G.726標(biāo)準(zhǔn)中的32kbps自適應(yīng)差分脈沖編碼調(diào)制(Adaptive Differential PCM, ADPCM)。在實(shí)現(xiàn)語音傳輸時(shí),RTP包的有效載荷大小設(shè)為256字節(jié)。2)操作步驟各藍(lán)牙節(jié)點(diǎn)的操作步驟如下① 主叫方A發(fā)起語音通信請(qǐng)求,組建了如圖1所示的一條藍(lán)牙多跳鏈路 A-B-C-D,藍(lán)牙節(jié)點(diǎn)D為被叫方,藍(lán)牙節(jié)點(diǎn)A D的IP (即PAN0)分別被設(shè)置為 10.0.0.24、 10.0.0.1、 10.0.0.1、 10.0.0.25,其中,主叫方與被叫方的IP為 兩個(gè)連續(xù)的IP,且由主叫方在發(fā)起通信請(qǐng)求時(shí)從10.0.0.8 10.0.0.255的IP 段中隨機(jī)抽取,而中間節(jié)點(diǎn)的IP都釆用默認(rèn)IP為10. 0. 0.1。② 在主叫方與被叫方分別運(yùn)行上層的語音通信應(yīng)用程序;◎通過與PC聲卡相連的麥克風(fēng)與耳機(jī),在主叫方與被叫方之間進(jìn)行雙向語 音通信;
④ 主叫方或被叫方發(fā)起結(jié)束語音通信的命令,則主叫方與被叫方終止各自 的語音通信應(yīng)用程序;⑤ 主叫方或被叫方發(fā)起鏈路斷開的命令,則藍(lán)牙多跳鏈路A-B-C-D依次斷開,整個(gè)語音通信過程結(jié)束。3)性能測(cè)試針對(duì)上述的雙向語音通信進(jìn)行了主觀測(cè)試,結(jié)果如下① 人耳基本感覺不到語音的延時(shí);② 語音音質(zhì)良好;③ 無背景噪聲??梢姡谒{(lán)牙技術(shù)的多跳語音傳輸方法具有很好的可行性。 實(shí)施例2:發(fā)明人提供了一個(gè)應(yīng)用模型來擴(kuò)展本發(fā)明的應(yīng)用范圍。 如圖8所示的是基于藍(lán)牙技術(shù)的多跳語音傳輸?shù)囊粋€(gè)擴(kuò)展應(yīng)用模型,其中多 條藍(lán)牙多跳鏈路可以通過網(wǎng)關(guān)接入Internet或GPRS,從而實(shí)現(xiàn)藍(lán)牙多跳鏈路與 Internet 、 GPRS的融合,即藍(lán)牙多跳鏈路中的末端節(jié)點(diǎn)可以與Internet或GPRS 網(wǎng)絡(luò)中的任意節(jié)點(diǎn)進(jìn)行通信。由于藍(lán)牙多跳鏈路提供對(duì)IP的支持,所以只要修 改網(wǎng)關(guān),使其接入其它的IP網(wǎng)絡(luò),就可以實(shí)現(xiàn)藍(lán)牙多跳鏈路與其它IP網(wǎng)絡(luò)的融合。綜上所述僅為本發(fā)明的兩個(gè)實(shí)施例而已,并非用來限制本發(fā)明的實(shí)施范圍。 即凡依本發(fā)明申請(qǐng)專利范圍的內(nèi)容所做的等效變化與修飾,都應(yīng)為本發(fā)明的技術(shù) 范疇。
權(quán)利要求
1、基于藍(lán)牙技術(shù)的多跳語音傳輸方法,其特征在于該方法是采用藍(lán)牙組建多跳鏈路并在此多跳鏈路上傳輸語音,具體實(shí)現(xiàn)包括以下步驟并按所述順序進(jìn)行①設(shè)備初始化包含藍(lán)牙設(shè)備的啟動(dòng)與藍(lán)牙協(xié)議棧模塊的加載;②鄰居發(fā)現(xiàn)利用藍(lán)牙查詢功能查找周圍設(shè)備的藍(lán)牙地址并將其保存在本地的鄰居表中,同時(shí)在后臺(tái)運(yùn)行鄰居表維護(hù)進(jìn)程,對(duì)鄰居表中的鄰居信息進(jìn)行定期更新;③路徑發(fā)現(xiàn)利用藍(lán)牙邏輯鏈路控制與適配層的廣播功能,尋找一條從主叫方到被叫方的通信路徑,并在后臺(tái)運(yùn)行路由表維護(hù)進(jìn)程,對(duì)路由表進(jìn)行定期整理與更新;④藍(lán)牙多跳鏈路建立根據(jù)上述步驟③所發(fā)現(xiàn)的路徑,從被叫方到主叫方建立一條能承載IP的藍(lán)牙多跳鏈路,并在后臺(tái)運(yùn)行鏈路維護(hù)進(jìn)程;⑥語音通信屬于上層應(yīng)用,主叫方與被叫方之間進(jìn)行雙向語音通信;⑦藍(lán)牙多跳鏈路斷開當(dāng)主叫方或被叫方要求斷開通信鏈路時(shí),從主叫方到被叫方或從被叫方到主叫方,根據(jù)通信鏈路中各節(jié)點(diǎn)路由表中的路由信息依次斷開連接,并終止后臺(tái)運(yùn)行的鏈路維護(hù)進(jìn)程。
2、 根據(jù)權(quán)利要求1所述的基于藍(lán)牙技術(shù)的多跳語音傳輸方法,其特征在于 組建藍(lán)牙多跳鏈路時(shí),采用了適于在藍(lán)牙邏輯鏈路控制與適配層實(shí)現(xiàn)的分布式路 徑發(fā)現(xiàn)算法,該算法描述如下-21) 如果本地節(jié)點(diǎn)作為源節(jié)點(diǎn)即主叫方發(fā)起建鏈請(qǐng)求,則轉(zhuǎn)至步驟22),否 則轉(zhuǎn)至23);22) 源節(jié)點(diǎn)將建鏈請(qǐng)求幀廣播給各鄰居節(jié)點(diǎn),并在本地路由表中添加相應(yīng)的路由項(xiàng),轉(zhuǎn)至23);23) 處于等待狀態(tài),如果接收到建鏈請(qǐng)求幀,則轉(zhuǎn)至24);24) 本地節(jié)點(diǎn)解析接收到的建鏈請(qǐng)求幀,首先,搜索路由表,如果在路由 表中已存在相應(yīng)的路由項(xiàng),則比較累計(jì)跳數(shù),如果收到的建鏈請(qǐng)求幀中的累計(jì)跳數(shù)大于等于己存路由項(xiàng)中的累計(jì)路由,則轉(zhuǎn)至26),否則更新相應(yīng)的路由項(xiàng);其次,如果本地節(jié)點(diǎn)就是目的節(jié)點(diǎn)即被叫方,則轉(zhuǎn)至27);最后,如果累計(jì)跳數(shù)達(dá) 到x,則轉(zhuǎn)至26),否則,轉(zhuǎn)至25);25) 本地節(jié)點(diǎn)將接收到的建鏈請(qǐng)求幀中的本地藍(lán)牙地址項(xiàng)修改為本地的藍(lán) 牙地址,將累計(jì)跳數(shù)加l,將本地的部分鄰居即不同于接收到的建鏈請(qǐng)求幀中的 鄰居個(gè)數(shù)累加到擴(kuò)展地址個(gè)數(shù)中,將本地的部分鄰居地址即不同于接收到的建鏈 請(qǐng)求幀中的鄰居添加在建鏈請(qǐng)求幀最后,然后,廣播修改后的建鏈請(qǐng)求幀至本地 的部分鄰居即不同于接收到的建鏈請(qǐng)求幀中的鄰居,并在路由表中添加或修改相 應(yīng)的路由項(xiàng),轉(zhuǎn)至23);26) 丟棄該建鏈請(qǐng)求幀,轉(zhuǎn)至23);27) 路徑發(fā)現(xiàn)完成,調(diào)用鏈路建立進(jìn)程在后臺(tái)運(yùn)行,轉(zhuǎn)至23)。
3、 根據(jù)權(quán)利要求1所述的基于藍(lán)牙技術(shù)的多跳語音傳輸方法,其特征在于 在藍(lán)牙多跳鏈路上,主叫方發(fā)送語音信息或被叫方發(fā)送語音信息,具體實(shí)現(xiàn)包括 以下步驟并按所述順序進(jìn)行31) 語音數(shù)字化通過模/數(shù)轉(zhuǎn)化將模擬語音轉(zhuǎn)化為數(shù)字語音,并進(jìn)行基本 的語音編碼;32) 語音壓縮根據(jù)音頻壓縮與解壓縮的標(biāo)準(zhǔn),將輸出的數(shù)字語音進(jìn)行壓縮;33) 語音發(fā)送采用實(shí)時(shí)傳輸/實(shí)時(shí)傳輸控制協(xié)議實(shí)現(xiàn)語音發(fā)送。
4、 根據(jù)權(quán)利要求1所述的基于藍(lán)牙技術(shù)的多跳語音傳輸方法,其特征在于在藍(lán)牙多跳鏈路上,被叫方接收語音信息或主叫方接收語音信息,具體實(shí)現(xiàn)包括以下步驟并按所述順序進(jìn)行41) 語音接收采用實(shí)時(shí)傳輸/實(shí)時(shí)傳輸控制協(xié)議實(shí)現(xiàn)語音接收;42) 語音解壓縮根據(jù)音頻壓縮與解壓縮的標(biāo)準(zhǔn),將輸出的數(shù)字語音進(jìn)行解 壓縮;43) 語音播放通過數(shù)/模轉(zhuǎn)化,將步驟42)輸出的數(shù)字語音轉(zhuǎn)化為模擬語音輸出。
全文摘要
基于藍(lán)牙技術(shù)的多跳語音傳輸方法是一種用于拓展藍(lán)牙應(yīng)用范圍的方法,屬于區(qū)域性無線互聯(lián)通信技術(shù)領(lǐng)域。本發(fā)明基于開源的藍(lán)牙協(xié)議棧BlueZ,提出了一種分布式、無環(huán)路由、按需驅(qū)動(dòng)以及承載IP的藍(lán)牙多跳鏈路的實(shí)現(xiàn)方案,并設(shè)計(jì)了一種適于在藍(lán)牙邏輯鏈路控制與適配層實(shí)現(xiàn)的分布式路徑發(fā)現(xiàn)算法,同時(shí),結(jié)合語音處理與傳輸技術(shù),提出了一種在藍(lán)牙多跳鏈路上實(shí)現(xiàn)雙向語音通信的方法。本發(fā)明大大增加了藍(lán)牙的通信距離,在有障礙物存在的情況下,可以通過增加藍(lán)牙通信節(jié)點(diǎn)來解決通信障礙問題;同時(shí),本發(fā)明增加了藍(lán)牙承載語音的鏈路數(shù)目,每個(gè)藍(lán)牙最多可支持7條激活的IP語音鏈路,而且可以進(jìn)行語音的組播與廣播;另外,由于藍(lán)牙多跳鏈路能承載IP,可以與其他IP網(wǎng)絡(luò)進(jìn)行融合。
文檔編號(hào)H04L29/08GK101127537SQ200710133228
公開日2008年2月20日 申請(qǐng)日期2007年9月30日 優(yōu)先權(quán)日2007年9月30日
發(fā)明者夏瑋瑋, 宋鐵成, 劍 張, 沈連豐, 靜 胡, 波 許 申請(qǐng)人:東南大學(xué)