iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 4
0
IoT

玩玩 BLE系列 第 4

[Day 04] 藍牙廣播(Advertising) (1/2)

廣播(Advertising)

廣播的基礎(Advertising Basics)

藍牙裝置可透過廣播封包(advertising packets, PDUs)來廣播資料,讓其他該裝置是否可以建立連線。

Advertising Channel
從上圖可以看到,BLE共有40無線電頻道(RF Channel),
其中#37, #38, #39 是主要用來廣播的頻道,
這三個頻道可以避開Wi-Fi的頻道免於互相干擾,
在這通道上除了會看到廣播的封包(Advertisements)之外,
還會看到掃描請求(Scan Request)、掃描回應(Scan Response)和連線請求(Connection Request),
另外剩下的37個頻道則是用於連接時的資料傳輸。

在藍牙5 的規格中,
新增了一種叫做 secondary advertising channels 的廣播類型,
他並非使用原本用來廣播的通道 #37 ~ #39,而是使用 #0 ~ #36,之後遇到再來看。

廣播參數(Advertising Parameters)

廣播參數 描述 範圍
廣播區間(Advertising Interval) 連續兩個發起廣播事件的時間間隔。 20ms to 10.24s
廣播類型(Advertising Types) 不同類型的廣播發送不同的PDU。 參考 Advertising Packets
廣播頻道(Advertising Channels) 傳統的廣播封包在#37~39三個頻道中發送。 #37~#39的不同組合,可選其中的一到三個

Advertising Interval

上圖解釋了如果我們設定三個廣播頻道都要發送,廣播區間是連續兩次在#37頻道發出廣播的時間間隔。
舉例來說,
假設我們設定廣播區間為100ms(Advertising Interval = 100ms),
並且三個廣播頻道都要發送,
則在這三個廣播頻道中,都可以看到每100ms就有一個廣播封包被發送出來,
只是這三個頻道收到封包的時間會些微的差異,
因為天線只有一隻,必須要輪流對不同的頻道進行發送才行。
另外,文件中有提到因為廣播封包不會超過31Bytes,
所以每個頻道的廣播封包只需要不到10ms的時間就可以發送完畢。
透過加長廣播區間或是減少廣播頻道,都可以減少廣播的次數進而降低電量的消耗,
不過這樣也會降低藍牙裝置間的溝通效率並影響到使用者的體驗,
畢竟天下沒有白吃的午餐,這個取捨就要按照不同的需求來做調整。

參考文章:


上一篇
[Day 03] GAP
下一篇
[Day 05] 藍牙廣播(Advertising) (2/2)
系列文
玩玩 BLE27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言