02
調制方式
眾所周知,BLE是采用2GFSK-BT0.5的調制方式,這也是應用非常廣泛的一種調制方式,如移動通信、航空與航海通信等諸多領域中均會使用到該調制方式;其中G是Gauss Filter的縮寫,其作用就是用來限制信號的頻譜寬度,所以GFSK的意思就是說:
當原始數字信號在經過FSK調變送出前,加上一個高斯低通濾波器來限制調變后的信號頻譜寬度,使得在通訊上能限制頻譜寬度的傳輸以及功率的消耗
而BT則是高斯濾波器的一個參數,其作用如下圖所示:
從上述的兩幅圖中可以看到,BT值越小,高斯低通濾波器信號在頻域所占的帶寬越窄,頻譜利用率越高,相反時域的信號時延越長,對其他信號造成的干擾越大。所以為了減小碼間串擾且擁有較高的頻譜效率,低功耗藍牙的BT選擇為0.5;而這個時候讀者們可能會如下幾個疑問:
疑問1
那2FSK在時域和頻域又是怎么樣的呢?
疑問2
BLE為什么要選擇2GFSK,而不是2FSK?
首先,讓我們先看一看2FSK在時域上的表現是怎么樣的,如下圖所示:
又是一堆熟悉而陌生的數學公式,是不是又到了后悔莫及的環節?當年要是多放點心思在學習上,而不是忙著去泡妞,也不至于現在妞跑了,知識也沒有學習到的地步,哈哈。言歸正傳,既然時域是這樣的,那么對應的頻域又是什么樣的體現形式,如下:
從上述2FSK在時域以及頻域的表現形式看,就算我們對上述的公式不太了解,我們仍然可以得知2FSK的比特1和2FSK的比特0是通過不同的頻率來表示的,而 BLE標準則規定基于中心頻點的正頻率偏差表示為1,負頻率偏差表示為0(更多的詳情,請參考藍牙規范的Vol.6, Part A, Section 3.1) ;這里引入了一個頻率偏差的概念,其含義如下:
調制波與載波的頻率差為頻率偏差,而正頻率偏差,則表示調制波減去載波的頻率差為正數,反之為負頻率偏差
同時,BLE標準對頻率偏差是有規定的,如下:
- ≥185Khz@1Msym/s
- ≥370Khz@2Msym/s
也許讀者讀到這里,仍然一頭霧水,沒有關系,接下來為了鞏固上述的理解,這里小編舉一個例子:
如果當前BLE工作在2402MHz這個頻點,那么此時中心頻點以及載波的頻率就是2402MHz,現在BLE想在這個頻點使用1M的PHY發送01兩個比特的數據且頻率偏差為200Khz,即比特1的頻率就是2402MHz+0.2MHz,而比特0的頻率就是2402MHz-0.2MHz,而對應的接收機收到這兩個頻點的信號,就知道對端設備傳送的是01這兩個比特的數據
看完這個例子之后,或許有部分讀者仍然有如下的問題:
問題
01如果頻率偏差小于185KHz會怎么樣?首先,頻率偏差越小,對應的頻譜密度效率就越高,但是會降低接收靈敏度,所以當BLE的信號的頻率偏差小于185KHz,那么就會導致對端的設備無法解調此信號,從而造成通信失敗
02如果頻率偏差過大,如800KHz又會怎么樣?如果頻率偏差過大,那么頻譜密度的效率就會降低,而且此時的BLE信號的占用寬帶就會變大,根據卡森公式可知,2FSK調制方式的信號的理想占用寬帶為:2x頻率偏差+符號速率;如果使用了1Msps的符號速率,那么計算出來的占用寬帶就是:2x800+1000 = 2600KHz = 2.6Mhz,而BLE標準規定40個信道且其之間的間距是2MHz,這就意味著不管工作在哪個信道,均會影響到其鄰近信道的信號,雖然高斯濾波會限制最終的信號占用帶寬,但是仍然有很大的概率會干擾到鄰近的信道;這也是為什么當使用2M PHY時,鄰近的信道會很容易受到干擾
03每一個BLE芯片廠商的頻率偏差是一樣的嗎?各個芯片廠商根據自身芯片的工藝及芯片設計能力不同,而頻率偏差也是各有差異,但是基本上必須符合下述的要求:
各個芯片廠商根據自身芯片的工藝及芯片設計能力不同,而頻率偏差也是各有差異,但是基本上必須符合下述的要求:
- 1Msym/s
- 當使用00001111測試序列時,平均頻率偏差應符合225 kHz ≤?f1avg≤275 kHz的范圍
- 當使用10101010測試序列時,至少99.9%的最大頻率偏差應大于等于185Khz
- 2Msym/s
- 當使用00001111測試序列時,平均頻率偏差應符合450 kHz ≤?f1avg≤550 kHz的范圍
- 當使用10101010測試序列時,至少99.9%的最大頻率偏差應大于等于370Khz
- 更多的詳情,請參考BT RF-PHY測試規范(https://www.bluetooth.com/specifications/qualification-test-requirements/)
至此,我相信大部分讀者此時應該明白2FSK是如何進行數據傳送,以及頻率偏差與數據之間的關系;接下來,讓我們看看為什么BLE要選用2GFSK而不是2FSK,如下圖所示:
從上圖可知,就調制信號而言,頻域下的2GFSK比頻域下的2FSK更加平滑,而且旁瓣雜散信號基本被過濾干凈,同時信號占用帶更窄了。但是,相較于2FSK調制而言,性能并沒有因此惡化,基本不變,而且頻譜密度效率還更高了。那既然這么叼,BLE毫無疑問肯定要選擇2GFSK調制方式啊。
03
中心頻點
眾所周知,BLE的工作頻道為2402~2480MHz,共有40個信道且信道之間的間隔為2MHz,即每個信道的中心頻點與下一個鄰近信道的中心頻點的頻率差為2MHz,如下圖所示:
這也就是說2402~2480MHz指的是載波的頻點,想要傳送的數據是加載至載波信號之后再傳送出去,結合上述的調制方式就很好理解了。所以,為了保證所有BLE的設備能正常的互相通信,BLE標準規定載波頻率的偏差不要超過150KHz,那這意味著呢?這里小編舉個例子:
BLE芯片使用的是32MHz@50ppm的高速晶體,且工作在2402MHz下,那么32MHz倍頻到2402MHz大約是75倍,這就意味著誤差也放大了75倍,即50x32x75=120KHz;換句話說,32MHz@50ppm的高速晶體倍頻到2402Mhz,實際的值是2402MHz ± 120KHz,這已經很接近150KHz的限制了;因此,我們經常可以在BLE芯片的規格書上,看到對高速晶體的要求的上限是50ppm
所以,如果出現BLE通訊異常或者掉線嚴重就要優先查看下是不是載波的頻偏過大導致的。
04
通訊距離
小編在日常工作中經常聽到或者網上看到有人問: “你們的BLE模組或者你們的BLE芯片能做到多遠的通訊距離?” ,類似的問題小編在年輕的時候也經常這樣問代理商或者BLE芯片原廠的工程師,但是現在基本不問了,并不是說小編現在變叼了,而是這是一個需要綜合考量的問題,它涉及到芯片的接收靈敏度、芯片的發射功率、天線的增益、電路板的布局以及測試的環境等等的因素,均會影響到最終的結果;接下來,小編將給大家闡述上述提及的這些關鍵因素對通訊距離的影響。
4.1
接收靈敏度
不管是BLE還是其他的通訊技術,接收靈敏度均是一個非常關鍵的指標,很大程度上決定了芯片能傳多遠;從專業的術語來解釋的話,接收靈敏度就是對應的芯片能解調的最小的信號能量大小:
比如,某廠商的BLE芯片在1M PHY時的接收靈敏度為-97dBm,這就意味著當接收方的BLE芯片收到信號的能量大小為-97dBm時,它仍然能將這個信號解調出來;大家都知道,隨著距離的增大,信號在空中傳播的衰減就越大,從而接收方收到的信號能量就越小,而很小的能量BLE芯片都能解調,那就間接說明通訊距離就越遠。
用大白話來解釋的話,接收靈敏度就類似于一個正常人的聽力的敏捷度;如果一個人在別人說話很小聲的時候,他仍然能聽清別人說話,那說明這個人的聽力很好,那也意味著他可以聽到離他很遠的人說話。
那么,上述說的-97dBm的信號都能被解調,是不是說-97dBm信號的內容被百分之百完全正解解調出來?答案顯然是不是的,BLE標準對接收靈敏度的規定是這樣的:
基本上,BLE芯片廠商都會將0.1% BER的接收靈敏度寫入到它們的規格書,即當BLE芯片接收到信號并統計出來的BER為0.1%或者PER為30.8%時,此時該信號能量大小就是該BLE芯片的接收靈敏度。那么,有讀者可能會好奇它們之間是如何轉換的,小編此時再次祭出數學公式:
PER = 1- (1-BER)^(8*PayloadLength)
具體的計算如下圖所示:
其中上述公式中的PayloadLength = Payload(37Bytes) + Header(2Bytes) + Access Address(4Bytes) + CRC(3Bytes) = 46Bytes,而MIC則是在使用BLE安全相關加密時才會有這個字段,這里沒有采用安全相關的加密。所以,30.8% = 1-(1-0.1%)^(8*46),這也就是說30.8%@PER轉換為BER時,BER等于0.1%。
4.2
發射功率
這個也是大家見到過最多,也是最容易理解的一個概念。顧名思義,就是通過功率放大器將信號的能量放大,從而使得該信號在空中傳播時,即使有衰減,但是對端設備仍然能收到較大的能量,這也間接導致通訊的距離增大;這就好比一個人正常說話的時候,可能周邊1-2米的人都可以聽到,但是一旦這個人生氣了,那么可能周邊10-20米的人就可以聽到他的聲音了,所以不要隨便生氣,好好說話!
4.3
環境
BLE設備工作的環境,同樣對通訊的距離有很大的影響,這也是很多工程師最容易忽略的一個因素,大家可以想想這樣的一個場景:
你女朋友在圖書館跟你說悄悄話,你聽到了之后開心地跟吃了蜂蜜一樣甜;但是,當你在KTV跟朋友們唱歌時,你女朋友同樣對你說了句悄悄話,然后她就生氣地跑了
上面就是一個典型的案例,當環境比較安靜或者說沒有什么其他干擾的時候,即使信號的能量很小 (仍然大于芯片對應的接收靈敏度) ,對端設備都能接收并正確解調出來;但是,如果在一個干擾很大或者底噪很大的環境下,那么對端設備就不一定能接收并正確解調了,可能需要將信號提升到在底噪之上或者蓋過干擾,對端設備才能接收并正確解調出來。這也是為什么有的時候同樣的一個BLE設備在不同的地方,所體現出來的通訊距離不一樣,就是這個原因;同時,在我們學習BLE基礎知識的時候,也讓廣大讀者們領悟了一個道理;泡妞還是要選擇一個安靜的地方,原因你懂得!
4.4
其他
至于PCB的布局以及天線的阻坑匹配,同樣會影響到BLE的通訊距離,但是目前很多工作都可以在PCB廠完成,如50歐姆阻坑的走線,PCB廠商就可以幫你搞定,自然也就省去了后續的匹配。
4.5
神器
按照小編對目前國內工程師的了解,可能有部分的工程師就會罵小編:你只會湊字數,BB這么久我還是不知道BLE設備最終能傳多遠,我想要最終的結果,其他的我并不想知道!!!
而對于那些沒有罵小編的工程師,讓小編繼續跟你講解一下這個神器的厲害之處:
從上圖可以看出,只需要根據自己的BLE設備情況,輸入對應的參數即可快速評估出來大概的通訊距離。
05
功耗
相較于其他的無線通訊技術,低功耗藍牙憑借極具競爭力的價格以及超低功耗的優勢,占據了眾多的市場領域。然而,大部分人的眼光卻集中在了價格,往往忽略了BLE芯片的功耗;就算有部分人兼顧到功耗,卻也只是 關注峰值電流,其實這就是資本家厲害的地方,強行給用戶灌輸不會錯也不完全對的概念 ,小編為什么會這么說呢?這里小編以歐美A,B廠商為例來佐證這一點
我們從上述的參數可知,僅從峰值電流來看的話,B廠商比A廠商的功耗優秀,那這是不是意味著B廠商就比A廠商的功耗低呢? 我們先不著急下結論,小編再讓大家看一組數據:
A廠商
B廠商
從上述的這組數據可知,A廠商此時又比B廠商的功耗低了,是不是上述的結論又反轉了?為什么這組數據會比上一組數據功耗高了? 對于結論,我們仍然先不著急下結論,而對于功耗突然高了,這個小編先與大家掰扯掰扯:
之所以這組數據會比上組數據大,主要的區別是上組數據顯示的僅僅是Radio的功耗,而為了讓Radio工作起來,還需要芯片內部其他元器件的配合,才能讓Radio真正地工作起來;換句話說,功耗較大的這組數據是讓一個Radio真正工作起來的功耗,并不是Radio單獨的功耗
但是,對于整個BLE芯片的功耗而言,在只考慮BLE工作事件的前提下,功耗的高低主要取決于CPU、Radio、晶體起振時間、睡眠時的電流,而且評估整體的功耗還需要考慮工作的時長,例如:
芯片A完成一次廣播事件只需要5ms,而芯片B則僅需3ms;所以, 這個時候不能僅僅依靠峰值電流的大小來判斷一個芯片功耗的高低 ,此時功耗的大小取決于時間與電流的積分和
通過上述兩組數據的對比,那么應如何評估BLE芯片的功耗呢? (BLE SoC的其他外設功耗可以直接從規格書獲取得到,這里不細表) 為了幫助讀者正確評估BLE芯片的功耗,這里以下述的參數為例:
- DC-DC模式,0dBm的發射功率,廣播數據長度為31字節
- 供電電壓為3.3V,廣播間隔為100ms,外部的低速晶體
- 可連接不可掃描非定向廣播,37、38、39三個廣播信道,64MHz主頻
- 64KB RAM全保持
這里小編仍然以歐美A,B廠商為例,在相同的條件下,它們之間的功耗表現:
A廠商
B廠商
從上述的數據可以看出,此條件下A廠商還是遠遠優于B廠商,即使A廠商的Radio峰值電流大于B廠商。小編之所以兜兜轉轉,就是為了讓讀者們明白, 評估一個BLE SoC芯片的功耗并不能簡單地只看規格書上的Radio峰值電流值,它是一個系統的工程,涉及到CPU、Radio、晶體起振時間、睡眠時的電流等方方面面 ,希望看了這些內容之后,以后讀者們對功耗的評估有一個更精準的判斷。
06
驗證
眾所周知,加入BLE隊伍的芯片廠商越來越多了,從更大的格局來看,這也表明BLE的市場是受到大家所認可的,起碼在未來的很長時間內,對BLE的人才需求還是很旺盛的,當然前提要是真的是人才;但是,從小的格局來看的話,這反而會加劇擾亂用戶的判斷,這是因為鋪天蓋地的各個廠商的信息以及它們所說的性能一個比一個強悍:
- 一個方面,讓用戶覺得功能很強大,可以滿足項目的需求,但實際跑下去發現,與實際相關甚遠,浪費了大量的人力或者時間成本
- 另外一方面,用戶很容易會為自己不需要的功能而買單,導致成本上升
俗話說得好: “銷售的嘴,騙人的鬼” ,這里小編教大家一個方法,可以提前排雷,最后選擇自己最適合的芯片;對BLE有過了解的讀者,應該都看到過下面的這幅框圖:
從上圖我們可以很清楚地看到,整個BLE就是由App、Host、Controller三大部分組成,其中App就是大家所寫的代碼,而BLE協議棧則由Host和Controller這兩部分組成,但是Controller層中的PHY層是純硬件相關的,而BLE協議棧是純軟件的,所以平時我們口中所說的BLE協議棧是不包括物理層的;有了這樣的一個概念之后,我們接下來再講講平時我們所說的藍牙規范 (截止目前為止,最新的是5.3版本),不同版本的規范,其所支持的特性均不一樣的:
- 有的對硬件有要求,需要升級PHY層,如2M PHY以及AoA/AoD
- 有的僅僅是對Host層的內容進行升級
- 有的僅僅升級了Controller層的內容
- 有的新增的特性并不是強制的,也就是說不支持這個特性了可以認為是支持該版本的規范
因此,當某某廠商宣傳它支持某某版本或者某某功能的時候,為了辨認真偽,我只需要關注以下三個點,接下來小編將以國內某廠商的最新的一顆BLE IC為例一一講解:
物理層的特性
該廠商對外宣傳其是支持全功能BLE 5.0,所以以下的BLE 5.0硬件特性應該是支持的:
- 2M PHY
- Coded PHY
從上圖可知,物理層的確支持2M & Coded PHY,而且5.1的CTE也確實不支持
Host層
從上圖可知,PHY層的切換也是支持的,其是BLE 5.0的一項新特性
Controller層
其中BLE 5.0的擴展廣播則是軟件相關的,它屬于LL的內容,如下所示:
從上圖可以看出,擴展廣播也是支持的,而且其他的可選特性也支持非常多,基本全支持除了5.1的特性之外。
以上的內容僅僅是舉例說明,告訴大家如何辨別廠商所說的 “功能” 是否存在,通過小編查閱,該芯片也的確是達到廠商所宣傳的全功能5.0的功能,但是未必所有廠商都是內外一致的。
-
接收器
+關注
關注
14文章
2468瀏覽量
71875 -
低通濾波器
+關注
關注
14文章
474瀏覽量
47390 -
頻譜儀
+關注
關注
7文章
340瀏覽量
36030 -
GFSK
+關注
關注
0文章
12瀏覽量
8572 -
CRC效驗
+關注
關注
0文章
30瀏覽量
1102
發布評論請先 登錄
相關推薦
評論