藍芽協議學習整理(二)藍芽協議規範(射頻、基帶鏈路控制、鏈路管理)
第二章 藍芽協議規範(射頻、基帶鏈路控制、鏈路管理)
藍芽協議是藍芽裝置間交換資訊所應該遵守的規則。與開放系統互聯(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時隙分組 | 1010 | 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)、資料分組管理