1. 掃瞄請求和掃瞄響應
廣播包含掃瞄請求scan_req和掃瞄響應scan_rsp。
處於掃瞄態的裝置可以接收廣播通道的報文,通過掃瞄可以偵聽哪些裝置正在廣播。掃瞄分為主動掃瞄和被動掃瞄。主動掃瞄傳送掃瞄請求給處於廣播態的裝置,並通過處於廣播態的裝置返回的掃瞄響應獲取額外的資料。而被動掃瞄僅僅接收廣播報文,不會傳送掃瞄請求。
掃瞄中有兩個重要的時間引數需要注意:
下圖說明了掃瞄視窗和掃瞄間隔的關係和要求。
圖1:掃瞄視窗和掃瞄間隔
1.1. 掃瞄請求
掃瞄請求pdu載荷如下圖所示,由scana(掃瞄裝置位址)和adva組成(廣播裝置位址),scana是掃瞄裝置的公共或隨機位址(由txadd確定),adva是廣播裝置的公共或隨機位址(由rxadd確定)。
圖2:掃瞄請求pdu載荷
廣播報文的報頭中的txadd指示了掃瞄裝置使用的是公共位址(public address)還是隨機位址(random address)。
rxadd指示了廣播裝置使用的是公共位址(public address)還是隨機位址(random address)。
1.2. 掃瞄響應
掃瞄響應pdu載荷如下圖所示,由adva(廣播裝置位址)和scanrspdata組成(掃瞄響應資料),adva是廣播裝置的公共或隨機位址(由txadd確定)。
圖3:掃瞄響應pdu載荷
廣播報文的報頭中的txadd指示了廣播裝置使用的是公共位址(public address)還是隨機位址(random address)。
廣播報文的長度域指示了載荷的位元組數(adva和scanrspdata)。
2. scan_req和scan_rsp解析
2.1. 捕獲scan_req
按照《藍芽4.0ble抓包(一)》中的描述進行抓包,下面是我們捕獲乙個心率計的scan_req包。
圖4:捕獲的scan_req包
2.2. 分析scan_req
為了方便分析,我們先取出這個scan_req包實際傳輸的資料,如圖3中所示。心率計完整的廣播報文如下:
d6 be 89 8e 83 0c
7f 0f 72 dd df 68
da b5 e9 d2 cc f3
bd bf 27
在分析資料之前,再次說明:廣播包含掃瞄請求和掃瞄響應,所以掃瞄請求和掃瞄響應得包格式遵循廣播包的格式。
分析報文時,需要注意一下報文各個域的位元組序。
2.1.1 接入位址
d6 be 89 8e2.1.2 pdu
1).83:廣播報文報頭。
2).0c:長度,表示scan_req報文的長度是12個位元組。
3).7f 0f 72 dd df 684).da b5 e9 d2 cc f32.1.3 校驗
bd bf 27:24位元組crc校驗。
2.3. 捕獲scan_rsp
按照《藍芽4.0ble抓包(一)
》中的描述進行抓包,捕獲乙個心率計的scan_req包。
圖5:捕獲的scan_rsp包
2.4. 分析scan_rsp
同樣,在這裡我們先取出scan_req包的資料,便於分析。
d6 be 89 8e 44 06
da b5 e9 d2 cc f3
61 6a 0f
2.4.1 接入位址
d6 be 89 8e2.4.2 pdu
1).44:廣播報文報頭。
2).06:長度,表示scan_ rsp報文的長度是6個位元組。
3).da b5 e9 d2 cc f3
2.4.3 校驗
61 6a 0f:24位元組crc校驗。
iOS藍芽4 0 BLE 開發
本文將一步一步講解如何使用corebluetooth框架來與各種可穿戴裝置進行通訊,使用 小公尺手環 來進行基本的測試。macbook pro mac os x 10.10 xcode 6.3.2 iphone 5s v8.1 小公尺手環 從上面這幅圖可以看到,我們的ios裝置是central,用來...
藍芽4 0(BLE)電子煙方案
電子香菸得到了越來越多的消費者的青睞。它不僅僅能讓吸菸者的健康不受到危害,而且還能讓他們的吸菸行為不受地點的限制。但是似乎有人認為 這些電子香菸的功能還 應該更強大點 近日,一種更加智慧型化的電子香菸問世,它就是smokio 據悉,這種電子香菸使用藍芽 針對這一產品市場,信馳達開發出藍芽4.0 電子...
藍芽4 0BLE協議棧介紹
問題 什麼是ble協議棧?ble協議棧與ble協議的關係?顧名思義,人類之間需要一種語言才能溝通,機器之間,電子之間也有乙個標準,也就是作為通訊標準,也就是通訊協議。協議 定義了一系列通訊標準,通訊雙方都按照這一標準,進行資料通訊。協議棧 協議的具體實現形式,實現的函式庫,韌體庫。把個個協議集合到了...