認識BLE 5協議棧 —— 物理層
轉自 http://www.sunyouqun.com/2017/04/understand-ble-5-stack-physical-layer/
1. 簡介
物理層(Physical Layer)是BLE協議棧最底層,它規定了BLE通訊的基礎射頻引數,包括訊號頻率、調製方案等。
BLE工作頻率是2.4GHz,它使用GFSK頻率調製,並使用跳頻機制來解決頻道擁擠問題。
BLE 5的物理層有三種實現方案,分別是1M Sym/s的無編碼物理層、2M Sym/s的無編碼物理層和1M Sym/s的編碼物理層。其中1M Sym/s的無編碼物理層與BLE v4系列協議的物理層相容,另外兩種物理層則分別擴充套件了通訊速率和通訊距離。
2. 頻段和跳頻
大多數無線通訊的頻段需要申請授權才可以使用,不同地區開闢了少量免授權頻段,只要產品滿足當地無線電規範,即可免授權使用。下圖展示了全球免授權的頻段及其分佈(連結):
圖中2.4GHz的頻段很強勢,覆蓋了整個地圖,是專為工業(Industrial)、科學(Scientific)和醫學(Medical)三個機構使用,稱為ISM頻段。全球範圍都可以免授權使用ISM頻段。
BLE即工作在2.4GHz頻段。
2.4GHz頻段訊號有明顯的優缺點,優點是免費、技術成熟,缺點是頻段擁擠、訊號傳播特性差、遇水衰減。目前除了藍芽訊號外,WIFI、ZigBee、無線鍵盤、無線玩具甚至微波爐都工作在這個頻段,當一個空間內同時執行著多個無線裝置時,頻帶佔用情況如下圖(
其中綠色的脈衝為BLE訊號,紅色訊號分別是WIFI、微波爐和無線裝置,它們形成了干擾噪聲。
BLE工作在2.400GHz – 2.480GHz頻率區間,並將這個區間均勻分為40個頻道,相鄰頻道間隔2MHz。在不引起誤解的情況下,頻道也稱為通道,40個通道的頻率和分佈如下圖:
BLE使用跳頻技術來解決頻段擁擠問題,即令每次資料通訊發生在不同的通道上,假如某個通道擁擠,則避開該通道,選擇其他可用通道進行通訊。
一個簡單的跳頻演算法是:F(n+1) = [F(n) + hop] % 37,其中hop引數為物理層自己設定的跳頻引數。
實際中使用自適應跳頻演算法來更新通訊通道。
自適應跳頻的工作機制是,如果某個通道擁擠則做上標記,工作時維護一張通道表以記錄各通道的擁擠情況,並將擁擠通道對映到可用通道中,然後結合上述簡單跳頻演算法共同完成通道選擇。假如簡單跳頻演算法結果指向一個擁擠通道,則進一步跳轉到它對映的可用通道上,從而實現資料通訊總是工作在可用通道上。
3. 調製
3.1 調製方式
物理層定義了兩種調製方式。
一種方案採用高斯頻移鍵控GFSK,具有1MSym/s的符號速率。第二種方式是與第一種相似(Similar),但是具有2MSym/s的符號速率。
第一種方式又分成兩種型別:
- LE 1M Uncoded PHY。該方式的位元率為1Mb/s,它是BLE v4版本協議保持相容。
- LE 1M Coded PHY。該方式對報文進行編碼,使接收端收到的報文具有前向糾正的能力,在相同誤位元速率條件下,能夠顯著降低誤碼重傳次數,從而提高通訊速率。 如果採用8符號編碼,位元率為125kb/s,如果採用2符號編碼,位元率為500kb/s。
LE 1M Uncoded PHY是BLE協議強制要求實現的物理層,而LE 1M Coded PHY則是可選方案。
這兩種實現方式符號速率都是1MSym/s。
符號速率中的“符號”是指單次取樣所得到的資訊,這個資訊可能包含多個位元,也可能多個資訊等效於一個位元。比如一個電壓幅度調製系統中,用+5V表示11b, +2V表示10b, -2V表示01b, -5V表示00b,那麼取樣一次電壓可以獲得兩個位元資訊,此時位元率是符號速率的兩倍。在LE 1M Coded PHY機制中,用8個符號表示1個位元,此時位元率是符號速率的1/8。
第二種物理層實現方式為:
- LE 2M Uncoded PHY。該方案的位元率為2Mb/s,是可選的實現方式。
官方文件使用LE 1M PHY、LE Coded PHY、LE 2M PHY來表示以上三種不同的物理層實現方式:
物理層 | 調製方式 | 編碼方案 (報頭部分) |
編碼方案 (有效載荷) |
位元率 |
---|---|---|---|---|
LE 1M PHY | 1Msym/s 方式 | 無編碼 | 無編碼 | 1Mb/s |
LE 2M PHY | 2Msym/s 方式 | 無編碼 | 無編碼 | 2Mb/s |
LE Coded PHY | 1Msym/s 方式 | 編碼S=8 | 編碼S=8;
編碼S=2 |
125kb/s;
500kb/s |
表中的S=8表示8個符號編碼成1個位元。
3.2 GFSK
頻率調製是將低頻資料訊號載入到高頻載波上,資料的變化反映為調製波頻率的疏密變化,如下圖所示:
數字化的訊號僅有0、1變化,在調製時,可以定義載波頻率正向偏移視為1,負向偏移視為0。這種調製方式稱為“頻移鍵控(FSK)”。數字訊號發生0/1變換時,會產生大量噪聲,引入高斯濾波器能夠延展0/1變換時間,從而降低噪聲。這種做法稱為“高斯頻移鍵控(GFSK)”。
GFSK技術成熟,實現簡單,適合低功耗BLE的需求。
BLE協議規定,中心頻率正向偏移大於等於185kHz視為位元1, 負向偏移大於等於185kHz視為位元0。如果選擇2402MHz作為中心頻率,位元1的頻率應為2402.185MHz, 位元0的頻率應為2401.815MHz。
4. 發射機
4.1 發射機框圖
圖中訊號從左向右流動,基帶訊號經過GFSK調製分成同相(I訊號)和正交(Q訊號)兩路訊號,再依次經過DA轉換和低通濾波器,然後利用頻率合成器進行頻率上轉換,再將兩個訊號分量合成後通過PA放大將訊號推送到天線上。
I/Q相位分量並行操作用以抑制映象頻率,PLL驅動的頻率合成器可以產生穩定和精確的頻率訊號,其他的濾波和變換則比較容易理解。(連結)
4.2 發射機引數
(1)發射功率
最小輸出功率 | 最大輸出功率 |
---|---|
0.01mW (-20dBm) | 100mW (+20dBm) |
當兩個裝置首次連線時,應該避免將輸出功率調至最大,這可能導致對端裝置的接收器瞬間飽和,造成通訊失敗。
BLE協議按照輸出功率將BLE裝置分成如下幾類:
功率等級 | 最大輸出功率 | 最小輸出功率 |
---|---|---|
1 | 100mW (+20dBm) | 10mW (+10dBm) |
1.5 | 10mW (+10dBm) | 0.01mW (-20dBm) |
2 | 2.5mW (+4dBm) | 0.01mW (-20dBm) |
3 | 1mW (0dBm) | 0.01mW (-20dBm) |
第一等級值得注意,如果裝置最大輸出功率為+20dBm,那麼最小功率等於+10dBm。
(2)調製引數
調製方式:GFSK
頻寬時間積BT:0.5
調製因子:0.45-0.55
有效頻率偏移為:±185kHz
時鐘精度:±50ppm
(3)雜散波
使用某個頻率發射隨機資料,在相鄰±2MHz的頻點位置,雜散波功率應小於-20dBm,在相鄰±3MHz以上的頻點位置,雜散波功率應小於-30dBm。
(4)射頻容限
中心頻率偏移小於等於±150kHz。
最大頻率漂移小於等於±50kHz。
最大頻率漂移速率小於等於400Hz/us。
由於射頻頻率穩定性跟晶振有直接關聯,所以頻偏引數限定了外部射頻晶振的誤差值。
舉個例子,使用16MHz的外部石英晶振為射頻提供時鐘,16MHz擴頻到2.4GHz需要放大150倍,其誤差也將一同放大150倍。假如它的誤差為±50ppm,即16MHz × ±50ppm = ±800Hz,放大150倍後變成±120kHz,這幾乎達到±150kHz的頻偏限制,因此許多晶片都限制射頻晶振的誤差要小於50ppm。
假如使用24MHz的晶振,擴頻倍數降低,那麼相同的誤差等級的晶振,將獲得更優良的射頻頻偏引數。(不過16MHz的晶體更便宜和常用。)
5. 接收機
5.1 接收機框圖
接收過程是發射過程的逆過程,但相比於發射機而言更加複雜,相關研究文獻也更加豐富。
這篇專案報告(連結)詳細論述了藍芽接收機的解調器,擷取其中的接收機架構框圖如下:
藍芽訊號進入到晶片內部,首先經過低噪聲放大器(LNA),仍然是分成I/Q兩個相位分量,再通過帶通濾波器,使用VGA(Variable Gain Amplifier)進行放大,最後轉成數字訊號傳入處理器中,這裡框圖省略了GFSK的解調過程,它位於AD轉換器之後。
5.2 接收機引數
(1)誤位元速率
BLE通訊過程,可能因為外部干擾而導致資料傳送失敗,使用誤位元速率BER(Bit Error Rate)表徵位元傳輸失敗的機率。
誤位元速率過高會影響通訊速率,BLE協議要求傳輸小型報文時,誤位元速率要低於0.1%。這也是BLE裝置RF效能測試的一個標準。
BLE協議規定了傳輸不同長度報文的誤位元速率的閾值:
最大支援的Payload長度 | BER閾值(%) |
---|---|
≤ 37 | 0.1 |
38 ~ 63 | 0.064 |
64 ~ 127 | 0.034 |
≥ 128 | 0.017 |
(2)接收靈敏度
BLE協議對於編碼型和非編碼型物理層給出了不同的接收靈敏度要求:
物理層型別 | 接收靈敏度(dBm) |
---|---|
LE Uncoded PHY | ≤ -70 |
LE Coded PHY with S=2 coding | ≤ -75 |
LE Coded PHY with S=8 coding | ≤ -82 |
市面上的BLE晶片大多都宣稱達到-90dBm甚至更低的接收靈敏度,某BLE 5的晶片其接收靈敏度甚至高達-97dBm。
在理想的條件下,假設發射機輸出功率是0dBm,接收機靈敏度是-90dBm,發射機輸出訊號經過一段路徑到達接收機,功率衰減到-90dBm,意味著這段路徑上的路徑損耗等於90dB。如果輸出功率是20dBm,當衰減至-90dBm時,路徑損耗就是110dB。
路徑損耗與通訊距離有如下相關性:
path loss = 40 + 25 × log(distance)
做成表格將更加直觀:
路徑損耗(path loss) | 通訊距離(distance) |
---|---|
50dB | 2.5m |
60dB | 6.3m |
70dB | 16m |
80dB | 40m |
90dB | 100m |
100dB | 250m |
110dB | 630m |
如果通訊距離為630m,通訊系統需要能夠承受110dB的路徑損耗。
當發射功率為預設0dBm,接收靈敏度為BLE協議規定的最小值-70dBm,那麼可實現的最大距離為16m,這也是許多文件認為BLE是一個10米範圍的通訊技術的原因。考慮到大多數BLE晶片的接收靈敏度都優於-90dBm,實際通訊距離應大於10米。
BLE 5的推出,極大提升了通訊距離的潛力,各晶片廠商正努力提升通訊距離。最近Nordic和TI針對自家BLE 5晶片做了實際測試,在良好的環境下通訊距離超過1000米,令人吃驚。
(3) 抗干擾能力
一個接收機的同頻道噪聲抵抗能力為21dB,相鄰的1MHz頻點處的噪聲抵抗能力為15dB。
1M PHY與2M PHY的要求略有不同。
對帶外(2.4GHz範圍外的頻段)噪聲,也應有相應的抵抗能力。
(4)最大有效功率
接收機至少在-10dBm下能夠正常工作,保證BER優於0.1%。
6. 收發機
前面介紹了發射機和接收機,在實際的BLE晶片中,接收機和發射機放在同一個電路中,稱為收發機(Transceiver),下圖是一個2.4GHz產品框圖,有實際的參考價值(連結):