[BLE--Link Layer]物理信道
簡述
有線通信,是用電纜直接連接,然后分距離的長短,有些會需要加載波,信號也可能會經過不同的調制方式調制。無線通信也是一樣,只是信號的傳輸是通過射頻了,通過在某一頻段,對無線信道進行調制,將數據發送出去。
BLE物理信道
在Physical Layer部分提到過BLE的物理信道,一共40個,在2.4GHz的ISM頻段。其實BLE的這40個物理信道是分成了兩組的,一組是Advertising信道(3個),一組是Data信道(37個),具體情況如下:?
在連接成功建立之前,設備之間是通過Advertising信道交互數據的,而在連接成功建立之后,就使用Data信道進行數據交互了。?
兩個無線設備之間要進行通信,除了要遵循同一協議外,兩者必須要調到同一信道,才會有正常的數據可以交換,不然一個在2404MHz,另一個在2430MHz,兩者根本就不能接收到對方的數據的(就是常說的不在同一個頻道……)。?
因此在連接建立之前,只用三個Advertising信道是有道理的,那樣使得對方來掃描時,撞到同一頻道的可能性就大大增加了,不然掃描掃半天,都沒在同一頻道過,那還怎么通信。BLE還使用了跳頻,這是出于無線干擾以及安全性的考慮了。
關于Access Address
這里需要說明下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]物理信道的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝牙核心-L2CAP
- 下一篇: 蓝牙HCI剖析(二)