1. 程式人生 > >認識BLE 5協議棧 —— 物理層

認識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. 頻段和跳頻

大多數無線通訊的頻段需要申請授權才可以使用,不同地區開闢了少量免授權頻段,只要產品滿足當地無線電規範,即可免授權使用。下圖展示了全球免授權的頻段及其分佈(連結):

Free frequency band in the world

圖中2.4GHz的頻段很強勢,覆蓋了整個地圖,是專為工業(Industrial)、科學(Scientific)和醫學(Medical)三個機構使用,稱為ISM頻段。全球範圍都可以免授權使用ISM頻段。

BLE即工作在2.4GHz頻段。

2.4GHz頻段訊號有明顯的優缺點,優點是免費、技術成熟,缺點是頻段擁擠、訊號傳播特性差、遇水衰減。目前除了藍芽訊號外,WIFI、ZigBee、無線鍵盤、無線玩具甚至微波爐都工作在這個頻段,當一個空間內同時執行著多個無線裝置時,頻帶佔用情況如下圖(

連結):

Crowded Frequency Band

其中綠色的脈衝為BLE訊號,紅色訊號分別是WIFI、微波爐和無線裝置,它們形成了干擾噪聲。

BLE工作在2.400GHz – 2.480GHz頻率區間,並將這個區間均勻分為40個頻道,相鄰頻道間隔2MHz。在不引起誤解的情況下,頻道也稱為通道,40個通道的頻率和分佈如下圖:

BLE frequency channels

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

頻率調製是將低頻資料訊號載入到高頻載波上,資料的變化反映為調製波頻率的疏密變化,如下圖所示:

frequency modulation

數字化的訊號僅有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 發射機框圖

RF Transmitter

圖中訊號從左向右流動,基帶訊號經過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 接收機框圖

接收過程是發射過程的逆過程,但相比於發射機而言更加複雜,相關研究文獻也更加豐富。

這篇專案報告(連結)詳細論述了藍芽接收機的解調器,擷取其中的接收機架構框圖如下:

RF Receiver

藍芽訊號進入到晶片內部,首先經過低噪聲放大器(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產品框圖,有實際的參考價值(連結):

RF Transceiver