欧美日韩亚州综合,国产一区二区三区影视,欧美三级三级三级爽爽爽,久久中文字幕av一区二区不卡

你的位置:首頁 > 互連技術 > 正文

BLE入門談:從空中數據收發理解BLE(上)

發布時間:2021-08-03 責任編輯:lina

【導讀】BLE是Bluetooth Low Energy的縮寫,即低功耗藍牙,是藍牙規范的一個子集,從藍牙4.0版本開始引入。BLE技術成功地適應了物聯網時代那些需要少量無線數據傳輸,并對功耗很敏感的設備的需求。
 
BLE是Bluetooth Low Energy的縮寫,即低功耗藍牙,是藍牙規范的一個子集,從藍牙4.0版本開始引入。BLE技術成功地適應了物聯網時代那些需要少量無線數據傳輸,并對功耗很敏感的設備的需求。目前已經有為數不少的MCU器件將BLE無線收發電路集成于片內,還保持了MCU的低功耗特性,實現了單芯片的物聯網解決方案。
  
近幾年我通過論壇的活動,陸續接觸過NXP、ST、TI、ON Semi支持BLE的MCU產品,深感BLE的門檻不低。要設計一個充分發揮BLE優點的作品,需要對這一技術有比較全面的了解。學習理解BLE也需要一個過程,如果每次僅僅是把現有的例子拿來改一改,獲得的經驗很有限。從什么切入點開始學習比較好?也許不同的人習慣不同。我打算從MCU硬件工程師的角度提供一些參考,就有了這篇文章的構思。
 
在MCU上使用BLE,目的不外乎發送數據,或者是接收數據。為什么BLE入門難?對比下最簡單的:UART、SPI,和稍微復雜一點的I2C、CAN這些——它們都是有線連接(廢話),發送方對接收方有一個單獨(至少在傳輸時候是獨占)的、可靠(正常情況下發出1/0就收到1/0)的數據通道;并且數據傳遞之前主機先發出請求,或者數據自身就帶有請求標志。再看BLE,數據通過無線電波發出,接收者要判斷天線收到的電波里面有沒有給自己的信號,再從有效的信號里解調出數據……復雜程度已經不可比擬了。雖然芯片上的無線功能模塊已經把調制解調工作做了,但它的工作指令仍然是軟件下達的。
 
BLE要用無線電波傳遞信息,就是將數據編碼,調制到射頻信號中發射。通俗地講BLE使用的電波頻率是2.4G,也就是和Wi-Fi、無線鍵盤鼠標, 還有Zigbee、Thread等協議使用的2.4GHz一個概念。那么問題來了,這些信號會不會互相干擾?
  
首先要明確2.4GHz這個說法指的是一個頻段而不是單一頻率(全稱2.4GHz Industry Science Medicine band),覆蓋從2400MHz到2483.5MHz, 是一個用于短距離,無須執照使用的開放頻段。還必須明確:任何帶有信息的信號傳遞都要占用一定的帶寬,不可能是一個單一頻率。單一的頻率只能是一個永久恒定的正弦信號——它無法攜帶信息。例如,無線電廣播所指的頻率是其信號的中心頻率。AM(調幅) 639kHz的中國之聲,實際信號帶寬是它廣播音頻帶寬的2倍。
 
BLE在這個2.4GHz頻段安排了40個信道(channel),中心頻率從2402MHz開始,以2MHz為間隔。如下圖上半部分:
 
 
BLE入門談:從空中數據收發理解BLE(上)
 
上圖的下半部分是2.4G Wi-Fi的信道占用頻帶示意,注意Wi-Fi的不同信道頻帶就很可能存在交疊。Wi-Fi和BLE整體的頻率覆蓋是重疊的。至于不同的2.4GHz無線設備是否相互干擾,要看實際通信的電波的能量分布:以時間為第一維度,以頻率為第二維度看,只要不交疊,就不會產生干擾;但即使存在部分交疊,不嚴重的干擾并不損害被編碼的數據;干擾的可能性總是存在的,各種無線協議還需要校驗和重傳機制來保證數據完整性。
  
一個BLE設備,在任一時刻,只能選擇40個信道之中的一個進行發射或者監聽。發射或者試圖監聽的載波頻率,就是對應信道的中心頻率。
 
BLE使用的調制方式叫做GFSK,這是FSK調制的一個改進形式。FSK (Frequency Shift Keying) 是一種簡單的調制的:就是將輸出信號頻率從2N個頻率中根據調制編碼進行選擇切換,最簡單是1-bit調制,稱為2-FSK(本文不討論其它的)如下圖所示:
 
BLE入門談:從空中數據收發理解BLE(上)
 
圖上紅線代表編碼數據,藍線是輸出信號波形。注意調制后信號的瞬時頻率改變發生在編碼值改變的時刻。
 
FSK調制的一個應用是用于音頻電話線路的調制解調器(Modem),用兩個方向的數據bit流分別調制兩個不同的單音,如下圖所示。在線路一端,發出1170Hz表示0, 發出1270Hz表示1;線路另一端發出2025Hz表示0,發出2225Hz表示1.
 
BLE入門談:從空中數據收發理解BLE(上)
 
我寫了一段MATLAB程序模擬這樣的調制波,將生成的wav文件從電腦播放出來就能感受FSK的頻譜了。
FS=48000;
Tt=10;
t=0:FS*Tt-1;
f_center=1170; %2125;
f_shift=100;
baud=300;
pe0=2*pi/FS*(f_center-f_shift);
pe1=2*pi/FS*(f_center+f_shift);
 
s=zeros(1,FS*Tt);
c=s;
p=0;
enc_one=0;
for k=1:FS*Tt
s(k) = 0.9*sin(p);
c(k) = enc_one;
if enc_one
p = p+pe1;
else
p = p+pe0;
end
if mod(k,round(FS/baud))==0
if rand>0.5, enc_one=0; else enc_one=1; end
fprintf(''%d'',enc_one);
end
end
fprintf(''n'');
plot(t,s,t,0.5*c-1.5,''r'');
set(gca,''YLim'',[-1.6 1]);
wavwrite(s,48000,16,''fsktone.wav'');
  
將模擬的modem FSK (300bits/s) 調制波進行FFT分析畫圖,中心頻率1170Hz和2125Hz的載波用不同顏色表示:
 
BLE入門談:從空中數據收發理解BLE(上)
 
FSK調制的實現簡單在于只需要用一個開關信號控制振蕩器,讓振蕩器在兩個工作頻率之間二選一,輸出就是FSK調制波。從上面這個頻譜分析圖可以看出,FSK輸出波形的頻率成分能量最集中的那段也有一定跨度,并非只震蕩器的“兩個頻率”。距離中心頻率遠了之后能量分布逐漸減少,但仍可能干擾別的信號。
 
BLE使用的GFSK調制,前面加個G字母代表Gaussian, 是讓控制振蕩器頻率的信號波形先通過一個高斯型低通濾波器,讓跳變沿有個平緩的過渡。也就是說,GFSK調制器雖然也是兩個基本振蕩頻率,但切換過程是平滑的。
 
BLE入門談:從空中數據收發理解BLE(上)
 
GFSK調制比FSK調制改善了頻譜的寬度,也就是頻帶的利用效率提高了。BLE使用GFSK調制,基本數據速率是1Mbps, 也就是假若持續發射的話一秒可以發送一百萬個0或者1. BLE 5.0規范增加了2Mbps選項。
  
選擇40個信道中的一個,通過GFSK,BLE就能將一串0/1發送到空中去。這40個信道中有三個要單獨拿出來,編號是37、38、39,它們是專門用于advertising(若譯作“廣播”有些偏,因為無線電發射本來就是廣播行為,接收機都能收到)。其余37個信道用于建立連接之后的通信。
  
順便再提一下,BLE與經典藍牙(常見于藍牙音箱、耳機)是不能兼容,不能相互通信的。BLE并不是傳統藍牙的簡化版本,在信道劃分上就有所不同,從數據格式到上層協議都差異明顯。現在主流的智能手機是既支持經典藍牙又支持BLE的,我們在提及藍牙概念的時候要注意區分。
 
BLE的數據發送是以數據包(packet)為單位進行的,一個數據包就是一串有格式的0和1,經GFSK調制成某個信道上的載波,再被接收機解調還原(這當中其實還有兩個步驟分別叫做whitening和de-whitening,但不改變數據長度和功能,就姑且忽略了)。如下圖,一個原始BLE數據包由4段組成:頭部是8-bit Preamble,用于同步,然后是32-bit的Access Address (后面再看它的作用),接著才是數據包內容的payload,最后跟著24-bit的CRC校驗值。
 
BLE入門談:從空中數據收發理解BLE(上)
 
接收狀態的BLE設備需要在同一信道上監聽,才有可能收到這個數據包。接收方還需要知道數據包長度才能進行CRC校驗,包長度是包含在PDU段內的。包的類型不同,PDU的具體格式也不同。
 
信道37、38和39用于advertising, 這是BLE從設備用來表示自己存在的三個信道,也是主設備用來掃描和發起連接用的。在這三個信道中,數據包格式如下圖:
 
BLE入門談:從空中數據收發理解BLE(上)
 
Advertising信道中的數據包類型有7種,由PDU header字段的PDU Type域決定。包長度信息是header字段的Length域。根據包類型不同,Payload的內容也不同。ADV_IND, ADV_NONCONN_IND, ADV_SCAN_IND和ADV_DIRECT_IND類型的包是從設備按照自己的間隔發出來的,其中AdvA數據字段是自己的地址(手機上的BLE掃描工具看到的就是這個地址),AdvData數據字段提供其它信息比如設備名稱、廠商代碼等,還可以包括溫度傳感器數據這樣的自定信息。ADV_DIRECT_IND這個類型要特殊一點,它是給指定的主設備發起連接用的,不附加不必要的數據。
  
ADV_IND和ADV_SCAN_IND類型的包被主設備收到后,主設備可以馬上發送SCAN_REQ包,請求掃描這個設備,然后從設備再以SCAN_RSP包回應,提供補充數據(ScanRspData)。
  
只有當主設備要發起連接時,才會對從設備發送的包(僅ADV_IND和ADV_DIRECT_IND型有效)以CONNECT_REQ包回應。這樣,主從設備之間就算建立起了連接,接下來將在另外的37個信道中進行信息交換。
 
剛提到過的從設備advertising有自己的間隔,這由BLE的API中advInterval參數(就是“隔多長時間廣播一次”的意思)決定。但是,如果兩個設備的advInterval參數剛好一樣,就有可能碰巧每次都同時廣播,相互干擾。為了緩解這個問題,BLE規定實際兩個advertising事件之間的間隔還要加上一個隨機的延遲,如下圖:
 
BLE入門談:從空中數據收發理解BLE(上)
 
這里的間隔越短,其它條件不變的話,設備越容易被發現。當然,付出的代價是耗電也增加。前面說了用于advertising的信道有3個,通常主設備也會在這三個信道上輪流監聽,因此,一個advertising事件一般來說是在三個信道上分別發送一個數據包。這么做可以防止一個信道被干擾了就無法使用的情況(注意信道37、38和39的頻率并不是接近的)。下面是一個示意圖,其中38信道上主機進行了一次掃描。
 
BLE入門談:從空中數據收發理解BLE(上)
 
現在我要提醒大家一點:接收(監聽)狀態下BLE無線部分也是消耗很多能量的,沒有比發射狀態少太多。與片上的CPU耗電相比,BLE的無線功能的確是耗電大戶,各廠商會把TX/RX時的電流作為省電能力衡量的重要指標——重點,RX的耗電不能想當然忽略。
  
作為從設備,在進行advertising事件的時候,才需要把無線發射功能打開。在此外的間歇期間(幾十毫秒到幾秒)設備可以休眠等待,因此平均功耗可能很低。但是主設備想發現從設備,可就不能長時間睡大覺了,因為從設備只有一瞬間發射,如果主設備那時沒有監聽,就錯過了。但主設備一直處于(三個信道輪流的)監聽狀態,無線部分的耗電就很大了。通常主設備也會間歇性地監聽來查找從設備,也就是持續接收一段時間,再休息一陣的策略。如果從設備為了減少自身功耗,將廣播的間隔設得很長,那么主設備要發現它就要付出更多的功耗。
 
BLE要做到主機和從機的功耗都小,其要點,我概括為“在事先約定的時間地點碰頭”。上面所描述的從機advertising階段,主機因為無法得知從機在哪個時刻在三個信道中的哪一個廣播,不得不采取守株待兔的辦法,所以主機耗電不能像從機那樣低。但是兩者建立BLE連接之后就不一樣了,現在回顧主機為了建立連接向從機發送的CONNECT_REQ包的Payload內容:
 
除了主機和從機的BLE地址之外,LLData部分包含了許多字段:
 
AA: Access Address, 用于數據信道數據包中
CRCInit: 隨機生成的CRC初始值
WinSize: Connection Event Transmit Window Size, 以1.25ms為單位
WinOffset: 同上,Transmit Window的時間偏移量
Interval: Connection Event的間隔時間
Latency: Slave Latency參數
Timeout: connSupervisionTimeout參數,以10ms為單位
ChM: 標記要使用的數據信道
Hop: hopIncrement, 是跳頻算法的參數
SCA: 主機的sleep時鐘誤差參數
  
由以上這些字段決定了BLE連接的初始參數。從機如何知道主機會在什么時候,在那個信道發送數據包?請看下面這個圖:
 
實際上,主機和叢機約定了一個未來的時間窗口,主機會在那個時間窗口內發送第一個數據包,從機需要保持監聽。因為雙方約定了一個時間窗口,無線電RX狀態的時間就可以縮短了,就控制了功耗。主機發送數據包之后,轉到接收狀態,叢機接收到主機的數據包,也會很快回應一個數據包,這兩次雙向的數據交互時間是可以預計的,不存在無用的RX等待狀態。然后,主機在一個連接間隔(connInterval)之后的時刻再次發出數據包,也就是新的connection事件開始,不過通信信道由自適應跳頻算法重新選擇。上圖只畫了最簡單的狀態,實際一個connection事件可以有多次的雙向數據包交互。
  
把從機和主機并排起來看:
 
BLE入門談:從空中數據收發理解BLE(上)
 
上圖還展示了BLE連接狀態的一個特性: slave latency, 即允許從機不響應一些(可能是沒有收到的)數據包,而連接暫時能保持,不斷掉。因為雙方的時間間隔約定還在,后續只要成功交互就可以恢復通信。
 
BLE連接狀態下的數據包格式本文就不列出了,因為涉及到Link Layer層的許多內容,要深入了解的朋友可以參閱藍牙Core specification 4.0以后版本文檔。
  
本文的目的在于給大家一個BLE的底層是怎么工作的一個整體印象,以及認識到它是怎樣實現低功耗的無線數據交互的。
 
免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請電話或者郵箱聯系小編進行侵刪。
 
推薦閱讀:
2021年第二季度快包市場研究報告——AI/IoT主板、PLC模組方案備受業界關注 
LED驅動電路不同模塊電路保護元器件的應用
電池電壓偵測電路“踩坑”:分壓電阻的精度竟然是5%,不是1%
Wi-Fi HaLow將推動物聯網發展的十大原因
貿澤電子宣布與Marktech Optoelectronics簽訂全球分銷協議
特別推薦
技術文章更多>>
技術白皮書下載更多>>
熱門搜索

關閉

?

關閉

欧美日韩亚州综合,国产一区二区三区影视,欧美三级三级三级爽爽爽,久久中文字幕av一区二区不卡
国产一区二区福利视频| 天天综合色天天综合| 欧洲国内综合视频| 久久国产剧场电影| 一区二区三区免费网站| ww久久中文字幕| 一本大道av伊人久久综合| 国内精品伊人久久久久av影院| 一区二区三区在线免费视频| 精品国产污污免费网站入口 | 成人99免费视频| 日本不卡一区二区| 亚洲精品免费在线| 国产精品每日更新| 久久久综合激的五月天| 欧美二区在线观看| 欧美最新大片在线看| 大胆欧美人体老妇| 精品一区二区影视| 免费成人结看片| 午夜精品成人在线| 亚洲黄色小说网站| 中文一区一区三区高中清不卡| 欧美一区二区三区啪啪| 欧美精品免费视频| 在线观看免费亚洲| 色婷婷综合久久久中文一区二区| 国产福利电影一区二区三区| 国产一区二区三区免费播放| 丝袜亚洲另类欧美综合| 亚洲高清中文字幕| 亚洲精品国产第一综合99久久| 中文字幕精品一区二区精品绿巨人| 亚洲欧美视频一区| 国产精品美女久久久久久| 亚洲福利视频三区| 成人开心网精品视频| 欧美肥妇bbw| 国产精品久久久久四虎| 日韩国产欧美在线视频| 波波电影院一区二区三区| 欧美日韩欧美一区二区| 884aa四虎影成人精品一区| 99久久伊人精品| 一本一道久久a久久精品综合蜜臀| 成年人网站91| 色婷婷综合久色| 欧美视频日韩视频| 欧美日韩国产不卡| 精品国产麻豆免费人成网站| 久久婷婷久久一区二区三区| 中日韩av电影| 亚洲免费色视频| 丝袜美腿亚洲色图| 久久电影网站中文字幕| 国产精品一品二品| 99精品视频一区二区三区| 一本久久a久久精品亚洲| 在线观看中文字幕不卡| 欧美一区二区三区在线视频| 日韩免费一区二区三区在线播放| 久久久噜噜噜久噜久久综合| 国产精品国产a级| 亚洲国产精品精华液网站| 久久不见久久见免费视频7| 国产成人免费视频一区| 99天天综合性| 欧美日韩精品福利| 久久综合色天天久久综合图片| 国产精品国产三级国产普通话蜜臀| 亚洲女人****多毛耸耸8| 亚洲成va人在线观看| 韩国欧美一区二区| 91片在线免费观看| 3d动漫精品啪啪一区二区竹菊| 久久影视一区二区| 一区二区三区视频在线看| 蜜乳av一区二区三区| 懂色av一区二区三区蜜臀| 欧美亚洲动漫另类| 国产午夜精品福利| 亚洲成人av一区二区三区| 国产成人av资源| 91超碰这里只有精品国产| 国产喂奶挤奶一区二区三区| 亚洲电影视频在线| 成人激情小说乱人伦| 欧美精品色综合| 国产精品网站导航| 久久精品国产99久久6| 一本色道亚洲精品aⅴ| 久久这里都是精品| 日产国产欧美视频一区精品| 欧美日韩国产综合一区二区| 亚洲一区二区三区自拍| 日韩视频永久免费| 国产不卡免费视频| 亚洲精品成人悠悠色影视| 欧美疯狂做受xxxx富婆| 国产一区二区三区综合| 国产精品激情偷乱一区二区∴| 色8久久精品久久久久久蜜| 蜜桃视频第一区免费观看| 日韩欧美电影一区| 最新欧美精品一区二区三区| 国产综合久久久久久久久久久久| 欧美日韩精品一区视频| 亚洲另类在线制服丝袜| 国产精品一区二区果冻传媒| 欧美一级二级在线观看| 亚洲一级在线观看| 波多野结衣中文字幕一区二区三区 | 免费成人在线网站| 欧美曰成人黄网| 中文字幕亚洲综合久久菠萝蜜| 国产成人综合在线观看| 日韩欧美aaaaaa| 奇米四色…亚洲| 欧美二区三区的天堂| 午夜伊人狠狠久久| 欧美丝袜自拍制服另类| 亚洲精品一二三| 99国产精品久久| 国产精品亲子乱子伦xxxx裸| 九色porny丨国产精品| 91精品麻豆日日躁夜夜躁| 亚洲国产精品久久久男人的天堂| 色哟哟一区二区三区| |精品福利一区二区三区| av一区二区久久| 亚洲精品中文在线| 欧美丝袜自拍制服另类| 性做久久久久久久久| 色婷婷狠狠综合| 亚洲激情在线激情| 91国偷自产一区二区三区成为亚洲经典| 中文字幕成人av| 成人免费毛片嘿嘿连载视频| 国产精品麻豆视频| 91丝袜国产在线播放| 一区二区在线观看免费视频播放| 99视频在线观看一区三区| 亚洲欧美日韩中文字幕一区二区三区| 91影院在线观看| 怡红院av一区二区三区| 欧美日韩成人综合在线一区二区| 亚洲成人激情自拍| 欧美一级欧美一级在线播放| 久久不见久久见免费视频7| 国产亚洲1区2区3区| 波多野结衣亚洲| 夜夜嗨av一区二区三区| 欧美一级夜夜爽| 国产91精品免费| 一区二区三区久久| 在线播放91灌醉迷j高跟美女| 麻豆成人免费电影| 久久亚洲一级片| 国产精品一二三四五| 2021国产精品久久精品| 久久久久88色偷偷免费| 国产精品国产三级国产普通话三级| 国产精品乱人伦一区二区| 17c精品麻豆一区二区免费| 亚洲乱码国产乱码精品精可以看| 亚洲激情图片小说视频| 亚洲一区二区三区四区五区黄| 亚洲另类一区二区| 亚洲va欧美va人人爽午夜| 另类小说图片综合网| 三级影片在线观看欧美日韩一区二区 | 94-欧美-setu| 日日噜噜夜夜狠狠视频欧美人 | 欧美日韩日本视频| 国产麻豆视频一区二区| 亚洲少妇30p| 精品乱码亚洲一区二区不卡| 91日韩在线专区| 国产在线一区观看| 亚洲永久精品国产| 久久精品视频一区二区| 欧美日韩免费在线视频| 国产成人夜色高潮福利影视| 亚洲成人免费在线| 国产精品色在线| 日韩亚洲欧美一区| 色国产综合视频| 国产成人精品一区二区三区四区| 亚洲成在线观看| 欧美激情一区在线观看| 欧美乱妇15p| aaa国产一区| 国产乱码字幕精品高清av| 亚洲电影第三页| 国产精品久久久久久久久图文区 | 亚洲黄色录像片| 国产欧美日韩综合| 欧美成人性战久久| 欧美人狂配大交3d怪物一区| 97久久精品人人做人人爽50路|