標籤:平台 工作
關鍵詞:藍芽核心技術協議射頻基帶鏈路控制鏈路管理
xubin341719(歡迎轉載,請註明作者,請尊重著作權,謝謝!)
歡迎指正錯誤,共同學習、共同進步!!
下載連結:Bluetooth PROFILE SPECIFICATIONS (基本涵蓋所有藍芽協議)、buletooth core 2.1-4.0 SPECIFICATION(三藍芽版本的核心協議v2.1\v3.0\v4.0)、藍芽核心技術與應用 馬建倉 版(藍芽協議相關初學者必讀,開發人員參考)
藍芽核心技術概述(一):藍芽概述
藍芽核心技術概述(二):藍芽使用情境
藍芽核心技術概述(三): 藍芽協議規範(射頻、基帶鏈路控制、鏈路管理)
藍芽協議是藍牙裝置間交換資訊所應該遵守的規則。與開放系統互聯(OSI)模型一樣,藍芽技術的協議體系也採用了分層結構,從底層到高層形成了藍芽協議棧,各層協議定義了所完成的功能和使用資料分組格式,以保證藍芽產品間的互通性。
一、射頻協議
射頻位置如紅色部分。
1、工作頻率
藍芽工作在2.4GHz ISM頻段上,藍芽採用跳頻擴譜技術主動的避免工作頻段受幹擾(微波爐的工作頻率也是2.4GHz)。
|
地理位置 |
ISM頻段範圍 |
射頻通道頻率 |
|
中國、美國、歐洲 |
2400.0~2483.5MHz |
F=(2402+k)MHz,k在0、1、……78中隨機取值 |
|
法國 |
2446.5~2483.5MHz |
F=(2454+k)MHz,k在0、1、……22中隨機取值 |
|
日本 |
2471.0~2497.0MHz |
F=(2473+k)MHz,k在0、1、……22中隨機取值 |
|
西班牙 |
2445.0~2475.0MHz |
F=(2449+k)MHz,k在0、1、……22中隨機取值 |
我國的藍芽頻率在2.402GHz~2.483GHz,藍芽每個頻道的寬度為1MHz,為了減少帶外輻射的幹擾,保留上、下保護為3.5MHz和2MHz,79個跳頻點中至少75個偽隨機碼跳動,30S內任何一個頻點使用時間長度不能超過0.4S。
2、跳頻技術、發射功率、時隙
(1)、發射功率:藍芽發射功率分三級:一級功率100mW(20dBm);二級功率2.5mW(4dBm);三級功率1mW(0dBm);
(2)、物理通道:藍芽物理通道有偽隨機序列控制的79個跳頻點構成,不同跳頻序列代表不同的通道。
(3)、時隙:藍芽跳頻速率為1600次/s,每個時間為625uS(1S/1600)稱為一個時隙;
二、基帶與鏈路控制協議
藍芽發送資料時,基帶部分將來自高層的資料進行通道編碼,向下發給射頻進行發送;接收資料時,將解調恢複空中資料並上傳給基帶,基帶進行通道編碼傳送給上層。
作用:跳頻選擇、藍芽編址、鏈路類型、通道編碼、收發規則、通道控制、音頻規範、安全設定。
1、藍芽分組編碼為小端模式;
2、藍芽地址
BD_ADDR:BluetoothDevice Address;
LAP:LowerAddress Part 低地址部分;
UAP: UpperAddress Part 高地址部分;
NAP: Non-significantAddress Part 無效地址部分。
3、藍芽時鐘
每個藍牙裝置都有一個獨立啟動並執行內部系統時鐘,稱為本地時鐘(Local Clock),決定定時器的收發跳頻。為了與其他裝置同步,本地時鐘要加一個位移量(offset),提供給其他裝置同步。
藍芽基帶四個關鍵周期:312.5uS、625uS、1.25mS、1.28S。
CLKN:本地時鐘:
CLKE:預計時鐘,掃描呼叫過程中用到;
CLK:裝置實際啟動並執行時鐘頻率。
CLKE、CLK由CLKN加上一個位移量得到的。
4、藍芽物理鏈路:
通訊裝置間物理層的資料連線通道就是物理鏈路。
ACL(Asynchronous Connectionless)非同步無串連鏈路;對時間要求不敏感的資料通訊,如檔案資料、控制信令等。
SCO(Synochronous Connection Oriented)同步連線導向鏈路;對時間比較敏感的通訊,如:語音;最多隻支援3條SCO鏈路,不支援重傳。
ACL用於資料轉送;
5、藍芽基帶分組:
基帶分組至少包括:接入碼、分組頭、有效載荷;
(1)、接入碼用於同步、直流、載頻泄漏偏置補償標識;
(2)、分組頭包含鏈路資訊,確保糾正較多的錯誤。
分組類型如下:
|
分組類別 |
Type(b3b2b1b0) |
時隙 |
SCO |
ACL |
|
鏈路控制分組 |
0000 |
1 |
NULL |
NULL |
|
0001 |
POLL |
POLL |
|
0010 |
FHS |
FHS |
|
0011 |
DM1 |
DM1 |
|
單時隙分組 |
0100 |
1 |
未定義 |
NULL |
|
0101 |
HV1 |
|
0110 |
HV2 |
|
0111 |
HV3 |
|
1000 |
DV |
|
1001 |
NULL |
AUX1 |
|
3時隙分組 |
1010 |
3 |
未定義 |
DM3 |
|
1011 |
DH3 |
|
1100 |
未定義 |
|
1101 |
|
5時隙分組 |
1110 |
5 |
未定義 |
DM5 |
|
1111 |
ACL分組形式為:D(M|H)(1|3|5),D代表資料分組,M代表用2/3比例的FEC的中等速率分組;H代表不使用錯誤修正碼的高速率分組;1、3、5分別代表分組所佔用的時隙數目;
DM1、DM3、DM5、DH1、DH3、DH5
SCO分組形式為:HV(1|2|3)。HV代表高品質語言分組,1、2、3有效載荷所採用的錯誤修正碼方法。1為1/3比例FEC,裝置2個時隙發送一個單時隙分組;2為2/3比例FEC,裝置4個時隙發送一個單時隙分組;3為不使用錯誤修正碼,裝置6個時隙發送一個單時隙分組
HV1、HV2、HV3
ALC 分組:
|
類型 |
有效載荷頭/位元組 |
使用者有效載荷/位元組 |
FEC |
CRC |
對稱最大速率/kbps |
非對稱速率/kbps |
|
前向 |
後向 |
|
DM1 |
1 |
0~17 |
2/3 |
有 |
108.8 |
108.8 |
108.8 |
|
DH1 |
1 |
0~27 |
無 |
有 |
172.8 |
172.8 |
172.8 |
|
DM3 |
2 |
0~121 |
2/3 |
有 |
258.1 |
387.2 |
54.4 |
|
DH3 |
2 |
0~183 |
無 |
有 |
390.4 |
585.6 |
86.4 |
|
DM5 |
2 |
0~224 |
2/3 |
有 |
286.7 |
477.8 |
36.3 |
|
MH5 |
2 |
0~339 |
無 |
有 |
433.9 |
723.2 |
57.6 |
|
AUX1 |
1 |
0~29 |
無 |
無 |
185.6 |
185.6 |
185.6 |
SCO分組:
|
類型 |
有效載荷頭/位元組 |
使用者有效載荷/位元組 |
FEC |
CRC |
有效載荷長度 |
同步速率/kbps |
佔用Tsco數目/語言長度 |
|
HV1 |
無 |
10 |
1/3 |
|
240位 |
64 |
2/1.25ms |
|
HV2 |
20 |
2/3 |
4/2.5ms |
|
HV3 |
30 |
無 |
6/3.75ms |
|
DV |
1D |
10+(0-9)D |
2/3D |
有D |
|
64+57.6D |
|
注釋:D 只對資料區段有用,DV分組包含資料區段,也包含語言段。
(3)、有效載荷
分語言有效載荷、資料有效載荷。
6、藍芽的邏輯通道
鏈路控制通道:LinkControl LC
鏈路管理通道:Link Manage LM
使用者非同步資料通道:User AsynchronizationUA
使用者同步資料通道:UserSynchronization US
使用者等時資料通道:UserIsochronous UI UI
7、藍芽的收發規則
為RX緩衝。
為TX緩衝。
新分組到達時,ACL鏈路的RX緩衝器要流量控制,SCO資料不需要流量控制;
8、藍芽基帶通道和網路控制
1)、鏈路控制器狀態:
待機、串連
呼叫page、呼叫掃描pagescan、查詢inquiry、查詢掃描inquiry scan、主裝置相應Master Response、從裝置相應Slave Response、查詢相應inquiry response
2) 、串連狀態
啟用模式active、呼吸模式sniff、保持模式hold、睡眠模式park。
3)、待機狀態
待機狀態是藍牙裝置預設低功耗狀態,此狀態下本地時鐘以低精度運行。藍芽從待機轉入呼叫掃描狀態,對其他呼叫進行響應成為從裝置;也可以從待機狀態進入查詢掃描狀態,完成一個完整的呼叫,成為主裝置。
9、接入過程
注釋:
IAC Inquiry AccessCode 查詢接入碼;
GIAC:通用查詢接入碼 DIAC:專用查詢接入碼;
DAC:DeviceAccess Code 裝置接入碼;
LAP:
建立串連,必須使用查詢、呼叫;查詢過程使用IAC,發現覆蓋地區內的裝置、裝置的地址及其時鐘;串連過程使用DAC,建立串連的裝置處理呼叫過程,成為主裝置。、(1)、查詢過程
藍牙裝置通過查詢來發現通訊範圍內的其他藍牙裝置。查詢資訊分為GIAC、DIAC兩種。查詢發起裝置收集所有相應裝置的地址、時鐘資訊。
一裝置進入查詢狀態去發現其他裝置,查詢狀態下連續不斷的在不同頻點發送查詢訊息。查詢的跳頻序列有GIAC的LAP匯出。
一裝置想被其他裝置發現,就要周期性進入 查詢掃描狀態,以便相應查詢訊息。如:我們選擇裝置多長時間可見,其實就是 進入查詢掃描狀態。
A、查詢掃描
查詢掃描狀態下,接收裝置掃描接入碼的時間長度,足以完成對16個頻率的掃描。掃描區間長度Twindow inquiry scan。掃描在同一個頻率上進行,查詢過程用32跳專用查詢跳頻序列,此序列有通用查詢的地址決定,相位有本地時鐘決定,每隔1.28S變化一次。
B、查詢
與呼叫類似,TX用查詢跳頻序列、RX用查詢相應跳頻序列。
C、查詢相應
從裝置響應查詢操作。每個裝置都有自己的時鐘,使用查詢序列相位相同的幾率比較小。為了避免多個裝置在同一查詢跳頻通道同時啟用,從裝置查詢響應規定:從裝置收到查詢訊息,產生0-1023隻覺得額一個隨機數,鎖定當時相位輸入值進行跳頻選擇,從裝置此後的RAND時隙中返回到串連或者待機狀態。
(2)、呼叫掃描
DAC:DeviceAccess Code 裝置接入碼
呼叫掃描狀態下的裝置掃描視窗Twindowpage scan內監聽自己的DAC。監聽只在一個跳頻點進行。Twindow page scan足夠覆蓋16個呼叫掃描頻點。
呼叫掃描狀態,掃描在同一個頻率上進行,持續1.28S,在選擇另一個不同頻率。
|
SR模式 |
Tpage scan |
呼叫次數Npage |
|
R0 |
連續 |
>=1 |
|
R1 |
<=1.28S |
>=128 |
|
R2 |
<=2.56S |
>=256 |
|
預留 |
-- |
-- |
(3)、呼叫
主裝置使用呼叫發起一個主—從裝置串連,通過在不同的跳頻點上重複發送從裝置DAC來撲捉從裝置,從裝置在呼叫掃描狀態被喚醒,接收呼叫。
(4)、呼叫相應過程
三、鏈路管理器
如紅色部分,負責完成裝置:功率管理、鏈路品質管理、鏈路控制管理、資料分組管理、鏈路安全管理。
1、鏈路管理協議資料單元
藍芽鏈路管理器接收到高層的控制資訊後,不是向自身的基帶部分分發控制資訊,就是與另一台裝置的鏈路管理器進行協商管理。這些控制資訊封裝在鏈路管理協議資料單元LMP_PDU中,由ACL分組的有效載荷攜帶。
2、鏈路管理器協議規範
(1)、裝置功率管理
RSSI保持模式、呼吸模式、睡眠模式。
(2)、鏈路品質管理 QoSQuality of Service
A、ACL鏈路。
B、SCO鏈路。
(3)、鏈路控制管理
裝置呼叫模式、裝置角色轉換、時鐘計時設定、資訊交換:版本資訊、支援特性、裝置名稱;建立串連、鏈路釋放。
(4)、資料分組管理