藍牙作為一種新的短距離無線通信技術在當今社會的使用是越來越高了,其中最為常見的就是藍牙耳機。手機呼叫手機呼叫免提接聽的功能。在藍牙Head Set 模型中首先需要明確兩個角色: 一個是A G(A udio Gateway) , 他充當音頻網關, 既可以作為音頻輸入也可以作為音頻輸出; 另一個是HS (Head Set) , 即藍牙耳機, 他是一個作為藍牙遠端音頻輸入與輸出的設備, 並且提供了一些遠端控制方式。
1、藍牙系統的功能模塊
藍牙系統的基本功能模塊如圖1 所示。他的功能模塊包括天線單元、鏈路控制器、鏈路管理、軟體功能。
111 無線技術規範
藍牙天線屬於微帶天線, 藍牙無線接口是基於常規無線發射功率0 dBm 設計的, 符合美國聯通訊委員會(FCC) 的ISM 頻段的規定。擴展頻譜技術的應用使得功率可增至100 dBm, 可滿足不同國家的需要。在日本、西班牙、法國, 由於當地規定的頻段相對較窄, 可用內部軟體轉換實現。
112 基帶技術規範
基帶描述了設備的數位訊號處理部分, 即藍牙鏈路控制器, 他完成基帶協議和其他底層的鏈路規程。主要包括以下幾個方面:
(1) 網絡連接的建立
(2) 鏈路類型和分組類型
鏈路類型決定了哪種分組模式能在特定的鏈路上使用, 藍牙基帶技術支持2 種鏈路類型: 即同步面向連接類型SCO (主要用於語音) 和異步非連接類型ACL (主要用於分組數據)。
(3) 糾錯
基帶控制器採用3 種糾錯方式: 1ö3 速率前向糾錯編碼(FEC) , 2ö3 速率前向糾錯編碼(FEC) , 對數據的自動請求重傳(ACL )。
(4) 鑑權和加密
藍牙基帶部分在物理層為用戶提供保護和信息保密機制。鑑權基於「請求響應」運算法則。鑑權是藍牙系統中的關鍵部分, 他允許用戶為個人的藍牙設備建立一個信任域, 比如只允許主人自己的筆記本電腦通過主人自己的行動電話通信。加密被用來保護連接的個人信息。密鑰由程序的高層來管理。網絡傳送協議和應用程式可以為用戶提供一個較強的安全機制。
2、Head Set 應用模型的協議棧結構
藍牙的協議棧採用分層結構, 如圖2 所示。
各層功能簡要介紹如下:
基帶(baseband) 是藍牙的物理層, 主要負責物理信道的編解碼, 底層的定時控制, 以及在單個數據包傳送期間的鏈路管理等業務, 在原始的荷載數據上增加地址域和控制域, 並進行錯誤檢測或糾正。
LC (L ink Cont ro l) 層負責在一批數據包傳送期間, 響應上層LM 命令(如執行建立數據包的傳輸鏈路, 維持鏈路等功能的LM 命令)。
LM (L inkM anager) 層是藍牙協議棧的鏈路管理層協議, 他負責將上層HC I 命令翻譯成基帶能接受的操作, 建立ACL (數據) 和SCO (語音) 連結, 以及使藍牙設備進入節能狀態的工作模式等。
M E (M anagement Ent ity) 為管理實體, 他的功能是發現遠端設備並且與他們建立連接, 為需要管理藍牙微微網的應用層和其他系統層提供接口A P I。
SE (SecurityM anager) 和M E 一起工作允許應用程式對鑑權和加密進行設置, 真正的鑑權和加密是由硬體來實現的。
邏輯鏈路控制協議(L 2CA P) 採用了信道的概念在藍牙設備不同應用之間建立不同的路徑, 但他只支持ACL鏈路。主要功能是為高層應用層提供協議復用, 允許他們共享低層數據鏈路。並對超過低層支持的大數據包進行分組和重組操作, 同時提供了對上層服務的質量管理。
業務搜尋協議(SDP) 是極其重要的部分, 他提供了一種SDP 客戶向SDP 伺服器查詢關於服務信息的方式。伺服器維護一個服務記錄列表, 服務記錄列表描述與該伺服器有關的服務特徵。客戶端可以通過發送一個SDP 請求從伺服器記錄中索取服務信息, 業務及業務特徵, 並在查詢之後建立兩個或多個藍牙設備間的連接。
RFCOMM 提供串口仿真, 藍牙的低層負責提供無線的連接方式, 但在此之前已經存在很多傳統的應用都是基於有線方式開發的, 藍牙如果不能解決對傳統協議的適配問題, 就很難成為一個廣泛應用的標準。為此, 藍牙制定了像RFCOMM 的適配協議來實現對傳統應用的支持。
Head Set 控制層: 主要是實現Head Set 的P rofile 定義的功能, 例如對音頻網關的M IC (麥克風) 的音量控制,對SPK (揚聲器) 的音量控制, SCO 連結的建立與釋放,以及音頻轉移等。
音頻埠應用層: 是一些針對應用的功能, 耳機應用層必須實現的應用特徵有:
(1) 接到A G 的呼叫時能建立音頻連結, 通話結束後能斷開音頻連結。
(2) 能發起對遠方的呼叫, 通話結束後同樣能斷開音頻連結。
(3) 音頻連結轉移。
(4) 對遠端A G 的音量控制。
3、Head Set 的建鏈
當藍牙音頻網關A G 接收到一個呼叫, 發起與HS 的連結時, 為使應用層語音通信可靠, 需要藍牙協議棧建立可靠的通信鏈路。根據藍牙協議棧運行, 從底層到高層的建鏈一般要經過以下幾個過程:
(1) 建立ACL 即基帶層的連結;
(2) 建立L 2CA P 層的連結;
(3) 進行SDP 的查詢過程;
(4) 建立RFCOMM 層的鏈路;
(5) RFCOMM 鏈路建好後, 將通過RFCOMM 信道傳輸Head Set 控制層的一些A T 命令;
(6) 建立SCO 連結;
(7) 根據應用層的動作執行藍牙HS 與A G 之間的音頻通信。
藍牙協議棧的建鏈過程具體討論如下。
3.1 建立ACL 即基帶層的連結
A G 接收到一個呼叫時, 首先建立與HS 之間的ACL連結, 此HS 與A G 之間需預先綁定, 或者把原來處於休眠狀態下的HS 喚醒。這是通過page 進程完成的, 在用page 進程建立ACL 時, 定義A G 是M aster 角色, 於是A G首先發起查詢, 通過查詢A G 獲得HS 的藍牙地址。然後A G 在應用層的驅動下向查詢到的HS 發起一個page 進程, 當接收到HS 返回的應答時, 這時A G 與HS 之間的
ACL 連結已經成功建立。
一旦ACL 連結建立, 他可以被用來傳送振鈴信號。振鈴信號的發送是通過A T 命令R IN G 來完成的。振鈴信號也可以在SCO 鏈路上發送。
3.2 建立L 2CA P 層的連結
ACL 連結好後, 接著建L 2CA P 鏈路。A G 首先在信令信道上發送一個連結請求信令, 要求建立信道標號為0x0040 的L 2CA P (0x0001~ 0x003F 是協議保留不可動態分配的, 0x0040~ 0xFFFF 可以自由分配) , 此信道的PSM (協議服務復用) 標誌0001, 當對方返回連結響應信號, 表明0x0040 信道已經建好。然後對此信道進行配置,配置完信道後, 就可以利用此C ID 為0x0040 的L 2CA P 信道進行SDP 查詢了。
3.3 進行SDP 的查詢過程
利用C ID 為0x0040 的L 2CA P 信道進行SDP 的查詢過程, 首先是A G 在此L 2CA P 信道上發送一個SDP 查詢包, SDP 查詢包將查詢SDP 伺服器端HS 是否具有所需要的服務。若查詢成功, 在ACL 鏈路上再建一條標號為0x0041 的L 2CA P 鏈路, 此信道的PSM 為0003, 用來傳輸RFCOMM 數據流的。同時斷開用作SDP 查詢的標號為0x0040 的L 2CA P 鏈路。
3.4 建立RFCOMM 層的鏈路
當C ID 為0x0041 的L 2CA P 信道建好之後, 接著就是RFCOMM 的建鏈過程, 如圖3 所示。首先建控制信道, 建鏈發起方A G 在信道上發送一個SABM 幀, 即要求建RFCOMM 層上的Channel0, 如果響應方HS 希望建立連結, 返回一個UA 幀, 表明已經建立好了Channel0 這條RFCOMM 信道。此信道為控制信道, 用來傳送攜帶控制消息和命令的U IH 幀。如果響應方HS 不希望建立連結,返回一個DM 幀。
其次建立數據信道, 先是對數據傳送信道的參數進行協商, 協商命令PN 參數包括對將要建立的信道Channel1的優先級, 最大幀長等, 當雙方協商好後建立傳輸數據的信道Channel1。
RFCOMM 層的數據信道建好後, 再對Head Set 控制層的控制命令進行傳輸。即在數據傳送信道Channel1 上利用U IH 幀傳送A T + CKPD= 200 等命令, 當接收到對方的響應OK 之後, 就可以開始建立SCO 連結。
3.5 建立SCO 連結
初始化時HC I 發一個WR ITE_ VO ICE_ SETT IN G命令, 對音頻狀態進行設置, 當接收到A G 的建立SCO 連結的請求時, 若HS 允許, 發送一個接收的HC I 命令, 在命令完成之後, 傳輸音頻信號的SCO 鏈路就建好了, 此時就可以進行語音通信。
4、應用層的狀態機設計
在協議棧的通信鏈路建立後, 可以進行應用層通信。應用層有一個主狀態機在運行, 如圖4 所示。根據用戶的動作以及A G 發送的命令, HS 應用進程將在各狀態之間跑動。
空閒狀態 HS 與A G 之間可能已經存在ACL 連結,但沒有RFCOMM 信道建立, 也沒有音頻信號的SCO 鏈路存在。當A G 響應內部事件或者用戶請求時, 便發起連結建立的請求, HS 接收到建立連結的請求時, HS 與A G開始建ACL , L 2CA P, RFCOMM 鏈路, 建好RFCOMM信道後, A G 發送一個或多個A T + R IN G 的振鈴指示命令, 通知HS 用戶有入呼的音頻連結到達。此時狀態將轉至來電振鈴狀態。
來電振鈴狀態 此時音頻網關A G 已經建立了與HS的ACL 與RFCOMM 信道, 並且HS 已經接收到振鈴信號, 這預示著音頻網關要求建立SCO 連結, 若用戶不對振鈴做出響應, 音頻網關將終止RFCOMM 信道, 狀態將重新回到空閒狀態, 若用戶按下HS 上的Bluetoo th 鍵, 則表示用戶接受入呼音頻連結的請求, 這時HS 將發送A T 控制命令A T+ CKPD 給A G, 這時兩者之間將建立SCO 鏈
接, 狀態將轉至連結狀態。
呼叫狀態 當HS 用戶按下HS 上的Bluetoo th 鍵, 用戶發出呼叫音頻網關的請求, 這時HS 將先建立ACL 連結, 再對音頻網關進行SDP 查詢。若SDP 查詢成功, HS打開與A G 連結的RFCOMM 信道, 並且發送A T 命令+CKPD 要求建立SCO 的音頻連結。當SCO 連結建立時, 狀態將轉移到連接狀態, 若SCO 連結建立失敗, 狀態將轉到空閒狀態。
連結狀態 連結狀態下, ACL , L 2CA P, RFCOMM都已經建立, 而且已經執行了SDP 查詢, 音頻通話就緒。若用戶對HS 講話, 語音將通過SCO 鏈路傳送至A G, 並通過A G 將語音傳到遠端。
連結斷開狀態 連結斷開可以通過HS 上的Bluetoo th 鍵完成, 也可以通過A G 的內部事件或用戶幹預觸發產生。無論那一種原因引起, 實質上都是A G 鏈路釋放的結果。如果HS 發出了斷開連結的請求, 並且發送一個A T 命令+ CKPD 到音頻網關要求音頻網關斷開連結, 於是音頻網關斷開SCO 連結和RFCOMM 信道。當RFCOMM 斷開時, 狀態將轉換到空閒狀態。而ACL 連結有可能處於斷開狀態也有可能處於連結狀態。
5、Head Set 的實現方案
以摩託羅拉藍牙解決方案為例, 摩託羅拉在先進射頻技術方面很有經驗。摩託羅拉藍牙解決方案可利用UART, RS 232, U SB 或SP I 連接主處理器, 而主處理器可通過這些接口處理藍牙協議上的堆棧及主控制器的接口等功能; 而這個藍牙解決方案則負責執行下堆棧(主控制器接口, 鏈路管理程序協議, 基帶及射頻) 其餘的功能。並採用摩託羅拉的MCORETM 32 位精簡指令集運算
(S ISC) 處理器內核, 內含一個高度靈活的外圍設備集, 適用於多種不同的嵌入式藍牙應用方案。圖5 為一個採用摩託羅拉解決方案用於蜂窩式電話的例子。通用異步收發器是連接蜂窩式電話基帶處理器與摩託羅拉解決方案的接口, 而SS I 則為語音通訊提供支持。
近年來移動通信、可攜式計算機以及網際網路的迅速發展, 使人們對電話通信以外的各種數據信息傳遞的需求日益增長。「藍牙」技術把各種可攜式電腦與蜂窩行動電話用無線電路連接起來, 使計算機與通信更加密切結合起來,使人們能隨時隨地進行數據信息的交換與傳輸。
打開APP閱讀更多精彩內容聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴