自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

原理解析之藍(lán)牙協(xié)議棧和語音網(wǎng)關(guān)

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
文章中,我們針對藍(lán)牙協(xié)議棧和語音網(wǎng)關(guān)的內(nèi)容,闡述了藍(lán)牙耳機(jī)等相關(guān)產(chǎn)品的工作原理。那么就請大家瀏覽文章來詳細(xì)了解一下吧。

對于藍(lán)牙產(chǎn)品,我們知道的有藍(lán)牙耳機(jī),藍(lán)牙鼠標(biāo)等等內(nèi)容。單以藍(lán)牙耳機(jī)而言,大家是否知道它的工作原理呢?這里我們就針對藍(lán)牙協(xié)議棧和語音網(wǎng)關(guān)的內(nèi)容,來向大家闡述一下藍(lán)牙耳機(jī)的原理。

◆藍(lán)牙技術(shù)的特點(diǎn)

1 藍(lán)牙協(xié)議棧體系結(jié)構(gòu)

整個(gè)藍(lán)牙協(xié)議體系結(jié)構(gòu)可分為底層硬件模塊、中間協(xié)議層和高端應(yīng)用層三大部分.鏈路管理層(LMP)、基帶層(BBP)和藍(lán)牙無線電信道構(gòu)成藍(lán)牙的底層模塊.BBP層負(fù)責(zé)跳頻和藍(lán)牙數(shù)據(jù)及信息幀的傳輸.LMP層負(fù)責(zé)連接的建立和拆除以及鏈路的安全和控制,它們?yōu)樯蠈榆浖K提供了不同的訪問人口,但是兩個(gè)模塊接口之間的消息和數(shù)據(jù)傳遞必須通過藍(lán)牙主機(jī)控制器接口的解釋才能進(jìn)行.也就是說,中間協(xié)議層包括邏輯鏈路控制與適配協(xié)議(L2CAP)、服務(wù)發(fā)現(xiàn)協(xié)議(SDP)、串口仿真協(xié)議(RFCOMM)和電話控制協(xié)議規(guī)范(TCS).L2CAP完成數(shù)據(jù)拆裝、服務(wù)質(zhì)量控制、協(xié)議復(fù)用和組提取等功能,是其他上層協(xié)議實(shí)現(xiàn)的基礎(chǔ),因此也是藍(lán)牙協(xié)議棧的核心部分.SDP為上層應(yīng)用程序提供一種機(jī)制來發(fā)現(xiàn)網(wǎng)絡(luò)中可用的服務(wù)及其特性.在藍(lán)牙協(xié)議棧的最上部是高端應(yīng)用層,它對應(yīng)于各種應(yīng)用模型的剖面,是剖面的一部分.目前定義了13種剖面.

2 藍(lán)牙低層模塊

藍(lán)牙的低層模塊是藍(lán)牙技術(shù)的核心,是任何藍(lán)牙設(shè)備都必須包括的部分.

藍(lán)牙工作在2.4GHZ的ISM頻段.采用了藍(lán)牙結(jié)束的設(shè)備講能夠提供高達(dá)720kbit/s 的數(shù)據(jù)交換速率.

藍(lán)牙支持電路交換和分組交換兩種技術(shù),分別定義了兩種鏈路類型,即面向連接的同步鏈路(SCO)和面向無連接的異步鏈路(ACL).

為了在很低的功率狀態(tài)下也能使藍(lán)牙設(shè)備處于連接狀態(tài),藍(lán)牙規(guī)定了三種節(jié)能狀態(tài),即停等(Park)狀態(tài)、保持(Hold)狀態(tài)和呼吸(Sniff)狀態(tài).這幾種工作模式按照節(jié)能效率以升序排依次是:Sniff模式、Hold模式、Park模式.

藍(lán)牙采用三種糾錯(cuò)方案:1/3前向糾錯(cuò)(FEC)、2/3前向糾錯(cuò)和自動(dòng)重發(fā)(ARQ).前向糾錯(cuò)的目的是減少重發(fā)的可能性,但同時(shí)也增加了額外開銷.然而在一個(gè)合理的無錯(cuò)誤率環(huán)境中,多余的投標(biāo)會(huì)減少輸出,故分組定義的本身也保持靈活的方式,因此,在軟件中可定義是否采用FEC.一般而言,在信道的噪聲干擾比較大時(shí)藍(lán)牙系統(tǒng)會(huì)使用前向糾錯(cuò)方案,以保證通信質(zhì)量:對于SCO鏈路,使用1/3前向糾錯(cuò);對于ACL鏈路,使用2/3前向糾錯(cuò).在無編號(hào)的自動(dòng)請求重發(fā)方案中,一個(gè)時(shí)隙傳送的數(shù)據(jù)必須在下一個(gè)時(shí)隙得到收到的確認(rèn).只有數(shù)據(jù)在收端通過了報(bào)頭錯(cuò)誤檢測和循環(huán)冗余校驗(yàn)(CRC)后認(rèn)為無錯(cuò)時(shí),才向發(fā)端發(fā)回確認(rèn)消息,否則返回一個(gè)錯(cuò)誤消息.

藍(lán)牙系統(tǒng)的移動(dòng)性和開放性使得安全問題變得及其重要.雖然藍(lán)牙系統(tǒng)所采用的調(diào)頻技術(shù)就已經(jīng)提供了一定的安全保障,但是藍(lán)牙系統(tǒng)仍然需要鏈路層和應(yīng)用層的安全管理.在鏈路層中,藍(lán)牙系統(tǒng)提供了認(rèn)證、加密和密鑰管理等功能.每個(gè)用戶都有一個(gè)個(gè)人標(biāo)識(shí)碼(PIN),它會(huì)被譯成128bit的鏈路密鑰(Link Key)來進(jìn)行單雙向認(rèn)證.一旦認(rèn)證完畢,鏈路就會(huì)以不同長度的密碼(Encryphon Key)來加密(此密碼以shit為單位增減,最大的長度為128bit)鏈路層安全機(jī)制提供了大量的認(rèn)證方案和一個(gè)靈活的加密方案(即允許協(xié)商密碼的長度).當(dāng)來自不同國家的設(shè)備互相通信時(shí),這種機(jī)制是極其重要的,因?yàn)槟承﹪視?huì)指定最大密碼長度.藍(lán)牙系統(tǒng)會(huì)選取微微網(wǎng)中各個(gè)設(shè)備的最小的最大允許密碼長度.例如,美國允許128bit的密碼長度,而西班牙僅允許48bit,這樣當(dāng)兩國的設(shè)備互通時(shí),將選擇48bit來加密.藍(lán)牙系統(tǒng)也支持高層協(xié)議棧的不同應(yīng)用體內(nèi)的特殊的安全機(jī)制.例如兩臺(tái)計(jì)算機(jī)在進(jìn)行商業(yè)卡信息交流時(shí),一臺(tái)計(jì)算機(jī)就只能訪問另一臺(tái)計(jì)算機(jī)的該項(xiàng)業(yè)務(wù),而無權(quán)訪問其他業(yè)務(wù).藍(lán)牙安全機(jī)制依賴PIN在設(shè)備間建立信任關(guān)系,一旦這種關(guān)系建立起來了,這些PIN就可以存儲(chǔ)在設(shè)備中以便將來更快捷地連接.

3 軟件模塊

L2CAP是數(shù)據(jù)鏈路層的一部分,位于基帶協(xié)議之上.L2CAP向上層提供面向連接的和無連接的數(shù)據(jù)服務(wù),它的功能包括:協(xié)議的復(fù)用能力、分組的分割和重新組裝(Segmentation And Reaassembly)以及提取(Group Abstraction).L2CAP允許高層協(xié)議和應(yīng)用發(fā)送和接受高達(dá)64K Byte的數(shù)據(jù)分組.

SDP為應(yīng)用提供了一個(gè)發(fā)現(xiàn)可用協(xié)議和決定這些可用協(xié)議的特性的方法.藍(lán)牙環(huán)境下的服務(wù)發(fā)現(xiàn)與傳統(tǒng)的網(wǎng)絡(luò)環(huán)境下的服務(wù)發(fā)現(xiàn)有很大的不同,在藍(lán)牙環(huán)境下,移動(dòng)的RF環(huán)境變化很大,因此業(yè)務(wù)的參數(shù)也是不斷變換的.SDP將強(qiáng)調(diào)藍(lán)牙環(huán)境的獨(dú)特的特性.藍(lán)牙使用基于客戶/服務(wù)器機(jī)制定義了根據(jù)藍(lán)牙服務(wù)類型和屬性發(fā)現(xiàn)服務(wù)的方法,還提供了服務(wù)瀏覽的方法.

RFCOMM是射頻通信協(xié)議,它可以仿真串行電纜接口協(xié)議,符合ETSI0710串口仿真協(xié)議.通過RFCOMM,藍(lán)牙可以在無線環(huán)境下實(shí)現(xiàn)對高層協(xié)議,如PPP、TCP/IP、WAP等的支持.另外,RFCOMM可以支持AT命令集,從而可以實(shí)現(xiàn)移動(dòng)電話機(jī)和傳真機(jī)及調(diào)制解調(diào)器之間的無線連接.

藍(lán)牙對語音的支持是它與WLAN相區(qū)別的一個(gè)重要的標(biāo)志.藍(lán)牙電話控制規(guī)范是一個(gè)基于ITU-T建議Q.931的采用面向比特的洗衣,它定義了用于藍(lán)牙設(shè)備間建立語音和數(shù)據(jù)呼叫的呼叫控制信令以及用于處理藍(lán)牙TCS設(shè)備的移動(dòng)性管理過程.

藍(lán)牙協(xié)議棧我們就介紹到這里,下面我們看一下語音網(wǎng)關(guān)的內(nèi)容。#p#

◆語音網(wǎng)關(guān)(Audio Gate)

Windows Embedded CE supports Headset Profile and the Hands-Free Profile by providing the Audio Gateway (AG) service that links Bluetooth devices by using the Winsock interface to the Bluetooth Protocol Stack. This service provides the functionality to interface with TAPI to control a cellular phone and route audio to the Bluetooth chip.

The AG service is implemented as a DLL, Btagsvc.dll that resides in Services.exe and can be controlled by external modules through IOCTLs provided by Services.exe.

The AG service supports audio routing by using the audio driver message, WODM_BT_SCO_AUDIO_CONTROL, that routes audio to the Bluetooth chip.

Headset and Hands-free Profiles架構(gòu)圖:

由此可見,微軟已經(jīng)提供了語音網(wǎng)關(guān)服務(wù)來支持藍(lán)牙耳機(jī),所以,我們要做的也就是將語音網(wǎng)關(guān)服務(wù)(AG)Enable.#p#

◆藍(lán)牙耳機(jī)的工作原理

下面重點(diǎn)講述下藍(lán)牙耳機(jī)的工作原理:

關(guān)于音頻流的藍(lán)牙傳輸可以通過兩個(gè)方式:

1) 通過PCM接口來傳送

2)通過模擬UART來傳送

下面分別來講述:

1)通過PCM接口來傳送

通過音頻播放器(eg: Media Player)來打開音頻文件,調(diào)用Audio驅(qū)動(dòng),音頻文件通過解碼后,由PCM輸出到Host端藍(lán)牙模塊的PCM輸入端,接著,經(jīng)過藍(lán)牙模塊的處理后,由RF無線模塊發(fā)送給Client 端藍(lán)牙設(shè)備.

Client 端藍(lán)牙設(shè)備經(jīng)由無線接收模塊后,濾波,穩(wěn)壓,經(jīng)微處理芯片處理后,直接由Speaker播放.

2)通過模擬UART來傳送

通過設(shè)置注冊表【HKEY_LOCAL_MACHINE\Services\BTAGSVC】   IsEnabled =1 使得系統(tǒng)引導(dǎo)時(shí)自動(dòng)加載語音網(wǎng)關(guān)(AG)服務(wù).

首先,通過手動(dòng)配置建立Host端藍(lán)牙設(shè)備與Client端藍(lán)牙設(shè)備ACL鏈接(面向無連接的異步鏈路),接著在Applicaiton或Audio Driver中調(diào)用 IOCTL_AG_OPEN_AUDIO,重新建立Host端藍(lán)牙設(shè)備與Client端藍(lán)牙設(shè)備SCO鏈接(面向連接的同步鏈路),接著AG自動(dòng)發(fā)送waveOutMessage((HWAVEOUT)i, WODM_BT_SCO_AUDIO_CONTROL, 0, TRUE); 從而建立了Audio至藍(lán)牙芯片之間的通道,也即,實(shí)現(xiàn)了音頻流到藍(lán)牙模塊的傳送.

然后,經(jīng)由主機(jī)端藍(lán)牙模塊將音頻流打包經(jīng)由RF模塊發(fā)送出去.

客戶端藍(lán)牙耳機(jī)接收到無線音頻包后,濾波,穩(wěn)壓,經(jīng)微處理芯片處理后,由PCM傳送給音頻編解碼器芯片,最后,由Speaker播放.

下面這段段碼是建立Host端藍(lán)牙設(shè)備與Client端藍(lán)牙設(shè)備SCO鏈路

  1. HANDLE h = CreateFile(L"BAG0:",0,0,NULL,OPEN_EXISTING,0,NULL);  
  2.     if (INVALID_HANDLE_VALUE == h) {  
  3.         wprintf(L"Error calling CreateFile on Audio Gateway.\r\n");  
  4.         return 0;  
  5.     }  
  6.  
  7. if (onaudio==1) {  
  8.                 wprintf(L"Opening Bluetooth audio...\n");  
  9.                   
  10.                 BOOL fStatus = DeviceIoControl(h,IOCTL_AG_OPEN_AUDIO,NULL,0,NULL,0,NULL,NULL);  
  11.                 if (FALSE == fStatus) {  
  12.                     wprintf(L"Operation failed: %d.\n", GetLastError());  
  13.                 }  
  14.                 else {  
  15.                     wprintf(L"Operation successful.\n");      
  16.                 }  
  17.               
  18.                 CloseHandle(h);  
  19.                 return 0;  
  20.             }  
  21.             else if (onaudio==0) {  
  22.                 wprintf(L"Closing Bluetooth audio...\n");  
  23.                   
  24.                 BOOL fStatus = DeviceIoControl(h,IOCTL_AG_CLOSE_AUDIO,NULL,0,NULL,0,NULL,NULL);  
  25.                 if (FALSE == fStatus) {  
  26.                     wprintf(L"Operation failed: %d.\n", GetLastError());  
  27.                 }  
  28.                 else {  
  29.                     wprintf(L"Operation successful.\n");      
  30.                 }  
  31.                   
  32.                 CloseHandle(h);  
  33.                 return 0;  
  34.             } 

到這里,相信大家對藍(lán)牙協(xié)議棧和語音網(wǎng)關(guān)的相關(guān)知識(shí)都有所掌握了,那么希望本文的總結(jié),對大家能夠有所幫助。

責(zé)任編輯:佟健 來源: hi.baidu.com
相關(guān)推薦

2010-09-08 11:59:38

藍(lán)牙協(xié)議棧

2010-09-08 09:49:28

藍(lán)牙協(xié)議棧

2010-09-08 12:16:18

2010-09-08 14:59:27

藍(lán)牙協(xié)議棧

2010-09-08 15:06:26

藍(lán)牙協(xié)議棧

2020-07-09 08:14:43

TCPIP協(xié)議棧

2022-08-04 08:44:31

Android系統(tǒng)攻擊鏈

2024-06-27 08:26:10

LooperAndroid內(nèi)存

2023-02-28 09:07:18

ChatGPTAI

2010-09-08 14:49:09

藍(lán)牙協(xié)議棧

2024-08-14 18:18:47

2010-09-10 09:29:29

藍(lán)牙IVT Bluelet協(xié)議棧

2019-12-06 10:59:20

JavaScript運(yùn)行引擎

2021-07-12 09:45:36

NameServer 核心Conusmer

2021-01-12 14:46:34

Kubernetes開發(fā)存儲(chǔ)

2021-07-05 07:51:43

JVM底層Python

2010-07-08 14:54:30

BitTorrent協(xié)

2010-09-08 15:15:12

TCP IP協(xié)議棧

2017-09-14 14:43:07

NLP入門模型

2023-08-11 07:44:40

TCP滑動(dòng)窗口數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)