BLE Link Layer 物理通道

2021-08-09 05:19:45 字數 1409 閱讀 5069

有線通訊,是用電纜直接連線,然後分距離的長短,有些會需要加載波,訊號也可能會經過不同的調製方式調製。無線通訊也是一樣,只是訊號的傳輸是通過射頻了,通過在某一頻段,對無線通道進行調製,將資料傳送出去。

在physical layer部分提到過ble的物理通道,一共40個,在2.4ghz的ism頻段。其實ble的這40個物理通道是分成了兩組的,一組是advertising通道(3個),一組是data通道(37個),具體情況如下: 

在連線成功建立之前,裝置之間是通過advertising通道互動資料的,而在連線成功建立之後,就使用data通道進行資料互動了。 

兩個無線裝置之間要進行通訊,除了要遵循同一協議外,兩者必須要調到同一通道,才會有正常的資料可以交換,不然乙個在2404mhz,另乙個在2430mhz,兩者根本就不能接收到對方的資料的(就是常說的不在同乙個頻道……)。 

因此在連線建立之前,只用三個advertising通道是有道理的,那樣使得對方來掃瞄時,撞到同一頻道的可能性就大大增加了,不然掃瞄掃半天,都沒在同一頻道過,那還怎麼通訊。ble還使用了跳頻,這是出於無線干擾以及安全性的考慮了。

這裡需要說明下access address,因為在考慮了無線通訊時,需要兩個裝置調到同乙個頻道,才能進行通訊,但是有時候可能有很多個裝置在使用,那麼多個裝置調到同乙個頻道的可能性也還是蠻大的,為了避免這種多個裝置某時刻工作在同一頻率會造成的干擾,於是就設計了access address,該address是乙個無線發射器需要加在包中的,例如乙個裝置在發advertising,它的access address是0x8e89bed8,那麼有scanner聽到這個包後,也會用這個0x8e89bed8的access address與advertiser通訊,而scanner要是聽到的是別的advertiser的包,就會使用另外乙個access address去發scan request包。關於access address做如下三點說明: 

1. access address放在封包中,用於識別該physical channel下向哪乙個裝置發packet,這樣某時刻工作在同一physical channel的裝置就不至於packet混亂; 

2. 從封包的link layer info可以看到每個封包的確都有乙個access address,adv_pkt有乙個固定access address,而intiator發con_req時會包含乙個con_access_addr,連線之後的data pkt都是用的這個新的access addr了; 

3. 每次重新斷開建立連線,access address會不一樣。

其實關於access address是還有一些要求的,如不能有連續的6個1 bit位或6個連續的0 bit位,因此這樣算下來,滿足作為access address的4byte的組合中有231個是可用的。

BLE Link Layer 物理通道

有線通訊,是用電纜直接連線,然後分距離的長短,有些會需要加載波,訊號也可能會經過不同的調製方式調製。無線通訊也是一樣,只是訊號的傳輸是通過射頻了,通過在某一頻段,對無線通道進行調製,將資料傳送出去。在physical layer部分提到過ble的物理通道,一共40個,在2.4ghz的ism頻段。其實...

mysql物理id mysql物理結構

mysql是通過檔案系統對資料和索引進行儲存的。mysql從物理結構上可以分為日誌檔案和資料索引檔案。mysql在linux中的資料索引檔案和日誌檔案都在 var lib mysql目錄下。日誌檔案採用順序io方式儲存 資料檔案採用隨機io方式儲存。首先可以檢視mysql的檔案在linux中的那個目...

python物理庫 Python物理庫?

您只需要基本的物理運動方程式.即使這些問題已經得到解答,如果我是你,我仍然會手工完成,因為使用圖書館似乎有點矯枉過正.啟動速度等式 velocity initial velocity acceleration time 從那裡,我們整合找到位置 position initial position i...