99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

藍牙數據報文解析

1.前言

由于工作需要,初次接觸藍牙。從最基礎的知識開始了解。引用wiki中的介紹:

藍牙(英語:Bluetooth),一種無線通訊技術標準,用來讓固定與移動設備,在短距離間交換資料,以形成個人局域網(PAN)。其使用短波特高頻(UHF)無線電波,經由2.4至2.485 GHz的ISM頻段來進行通信。1994年由電信商愛立信(Ericsson)發展出這個技術。它最初的設計是希望創建一個RS-232數據線的無線通信替代版本。它能夠連接多個設備,以克服同步的問題。藍牙技術目前由藍牙技術聯盟(SIG)來負責維護其技術標準,其成員已超過三萬,分布在電信、電腦、網絡與消費性電子產品等領域[5]。IEEE曾經將藍牙技術標準化為IEEE 802.15.1,但是這個標準已經不再繼續使用。

藍牙的標準是IEEE 802.15.1,藍牙協議工作在無需許可的ISM(Industrial Scientific Medical)頻段的2.45GHz。最高速度可達723.1kb/s。為了避免干擾可能使用2.45GHz的其它協議,藍牙協議將該頻段劃分成79個信道,(帶寬為1MHz)每秒的信道轉換可達1600次。

2.工作方式

藍牙技術分為基礎率/增強數據率(BR/EDR)和低耗能(LE)兩種技術類型。其中BR/EDR型是以點對點網絡拓撲結構創建一對一設備通信;LE型則使用點對點(一對一)、廣播(一對多)和網格(多對多)等多種網絡拓撲結構

3.版本發展

version

4.數據傳輸

數據傳輸時,藍牙模塊分主機和從機兩種模式。主機模式能夠搜索別的藍牙模塊并且主動與之建立連接。從機模式不能主動的建立連接,從機處于廣播狀態等待主機連接請求。

5.BLE藍牙數據包

研究UbertoothOne(想了解UbertoothOne的可以看往期文章)有一段時間了,嵌入式段的移植以及ubertooth相關命令的運行都沒有問題。現在是對各個命令的輸出結果還是有一些不明白的地方,很有必要花時間做一個詳細的分析及記錄。結果涉及到藍牙數據包協議,需要對數據包相關字段做一個詳細的解析才能更好的開展后面的業務。

  • 信道BLE的物理通道即“頻道,分別是‘f=2402+k*2 MHz, k=0, … ,39’,帶寬為2MHz”的40個RF Channel。其中,有3個信道是advertising channel(廣播通道),分別是37、38、39,用于發現設備(Scanning devices)、初始化連接(initiating a connection)和廣播數據(broadcasting date);其他的37個信道為data channel(數據通道),用于兩個連接的設備間的通訊。
  • 數據包格式在低功耗藍牙規范中,數據包格式分廣播報文數據報文兩種。廣播報文:設備發現、連接建立、傳輸廣播數據報文:自適應跳頻以及設備間數據傳輸 設備利用廣播報文發現、連接其它設備,而在連接建立之后,便開始使用數據報文。無論是廣播報文還是數據報文,鏈路層只使用一種數據包格式。它由“前導碼”(preamble)、“訪問碼”(access code)、”有效載荷“和”循環冗余校驗“(Cyclical Redundancy Check,CRC)校驗碼組成。其中,”訪問碼“又稱為”訪問地址/接入地址“(access address)。

  • 前導碼:1個字節長度,接收中用于頻率同步、數據速率同步、自動增益控制調整。前導是一個8比特的交替序列。不是01010101就是10101010,取決于接入地址的第一個比特。若接入地址的第一個比特為0:01010101 若接入地址的第一個比特為1:10101010
  • 訪問地址:4個字節長度,訪問地址有兩種類型(廣播訪問地址和數據訪問地址) 廣播訪問地址:固定為0x8E89BED6,在廣播、掃描、發起連接時使用。數據訪問地址:隨機地址,不同的連接有不同的值。在連接建立之后的兩個設備間使用。
  • PDU1. 廣播報文PDU:廣播報文PDU頭

PDU類型:

RFU:保留 TxAdd:發送地址字段 RxAdd:接收地址字段 發送地址字段和接收地址字段指示了設備使用公共地址(Public Address)還是隨機地址(Random Address)。公共地址和隨機地址的長度一樣,都包含6個字節共48位。BLE設備至少要擁有這兩種地址類型中的一種,當然也可以同時擁有這兩種地址類型。長度:長度域包含6個比特,有效值的范圍是6~37。

廣播報文PDU數據數據:包含N個AD Structure,每個AD Structure由Length,AD Type和AD Data組成。其中:Length:AD Type和AD Data的長度。AD Type:指示AD Data數據的含義。

#define BLE_GAP_AD_TYPE_FLAGS                               0x01 /**< Flags for discoverability. */
#define BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_MORE_AVAILABLE   0x02 /**< Partial list of 16 bit service UUIDs. */
#define BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_COMPLETE         0x03 /**< Complete list of 16 bit service UUIDs. */
#define BLE_GAP_AD_TYPE_32BIT_SERVICE_UUID_MORE_AVAILABLE   0x04 /**< Partial list of 32 bit service UUIDs. */
#define BLE_GAP_AD_TYPE_32BIT_SERVICE_UUID_COMPLETE         0x05 /**< Complete list of 32 bit service UUIDs. */
#define BLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_MORE_AVAILABLE  0x06 /**< Partial list of 128 bit service UUIDs. */
#define BLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_COMPLETE        0x07 /**< Complete list of 128 bit service UUIDs. */
#define BLE_GAP_AD_TYPE_SHORT_LOCAL_NAME                    0x08 /**< Short local device name. */
#define BLE_GAP_AD_TYPE_COMPLETE_LOCAL_NAME                 0x09 /**< Complete local device name. */
#define BLE_GAP_AD_TYPE_TX_POWER_LEVEL                      0x0A /**< Transmit power level. */
#define BLE_GAP_AD_TYPE_CLASS_OF_DEVICE                     0x0D /**< Class of device. */
#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_HASH_C               0x0E /**< Simple Pairing Hash C. */
#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_RANDOMIZER_R         0x0F /**< Simple Pairing Randomizer R. */
#define BLE_GAP_AD_TYPE_SECURITY_MANAGER_TK_VALUE           0x10 /**< Security Manager TK Value. */
#define BLE_GAP_AD_TYPE_SECURITY_MANAGER_OOB_FLAGS          0x11 /**< Security Manager Out Of Band Flags. */
#define BLE_GAP_AD_TYPE_SLAVE_CONNECTION_INTERVAL_RANGE     0x12 /**< Slave Connection Interval Range. */
#define BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_16BIT       0x14 /**< List of 16-bit Service Solicitation UUIDs. */
#define BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_128BIT      0x15 /**< List of 128-bit Service Solicitation UUIDs. */
#define BLE_GAP_AD_TYPE_SERVICE_DATA                        0x16 /**< Service Data - 16-bit UUID. */
#define BLE_GAP_AD_TYPE_PUBLIC_TARGET_ADDRESS               0x17 /**< Public Target Address. */
#define BLE_GAP_AD_TYPE_RANDOM_TARGET_ADDRESS               0x18 /**< Random Target Address. */
#define BLE_GAP_AD_TYPE_APPEARANCE                          0x19 /**< Appearance. */
#define BLE_GAP_AD_TYPE_ADVERTISING_INTERVAL                0x1A /**< Advertising Interval. */
#define BLE_GAP_AD_TYPE_LE_BLUETOOTH_DEVICE_ADDRESS         0x1B /**< LE Bluetooth Device Address. */
#define BLE_GAP_AD_TYPE_LE_ROLE                             0x1C /**< LE Role. */
#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_HASH_C256            0x1D /**< Simple Pairing Hash C-256. */
#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_RANDOMIZER_R256      0x1E /**< Simple Pairing Randomizer R-256. */
#define BLE_GAP_AD_TYPE_SERVICE_DATA_32BIT_UUID             0x20 /**< Service Data - 32-bit UUID. */
#define BLE_GAP_AD_TYPE_SERVICE_DATA_128BIT_UUID            0x21 /**< Service Data - 128-bit UUID. */
#define BLE_GAP_AD_TYPE_3D_INFORMATION_DATA                 0x3D /**< 3D Information Data. */
#define BLE_GAP_AD_TYPE_MANUFACTURER_SPECIFIC_DATA          0xFF /**< Manufacturer Specific Data. */

2. 數據報文PDU

數據報文PDU頭

LLID(邏輯鏈路ID):0x01表示該數據包是一個幀的延續內容,或者這是一個空的“邏輯鏈路控制及適配協議”數據包;0x02表示一個“邏輯鏈路控制及適配協議”數據包的開始;0x03表示這是一個“邏輯鏈路控制”數據包的內容 NESN:下一個期望的序列號,用于對接收到的數據包進行確認 MD:更多數據字段,主要是為了說明發送方是否還有要發給接收者的數據 RFU :保留位Length:用以表示包含“信息完整性校驗碼”(Message Integrity Check,MIC)在內的“有效載荷數據”的長度。數據PDU數據同廣播報文PDU數據

  • 校驗碼:3個字節長度,“循環冗余校驗”(Cyclical Redundancy Check,CRC),可檢查數據的正確性

藍牙數據包解析先到這里,后續根據協議解析具體的UbertoothOne輸出結果。

聲明:本內容為作者獨立觀點,不代表電子星球立場。未經允許不得轉載。授權事宜與稿件投訴,請聯系:editor@netbroad.com
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 4
收藏 3
關注 37
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 一级做a爰片久久毛片一 | 风韵丰满熟妇啪啪区老老熟女百度 | 日本伊人精品一区二区三区观看方式 | 亚无码乱人伦一区二区 | 91字幕网| 久久99久久久久久 | 人人爽人人爽人人爽人人片av | 黄色免费在线观看网站 | 一区二区三区四区乱码 | 九九热六 | 欧美一区二区在线刺激视频 | 国产在线欧美日韩精品一区 | 小嫩嫩12欧美 | 国产自偷自拍 | 性猛交xxxx乱大交3 | 国产极品99热在线播放69 | 日本视频黄 | 手机毛片网 | 亚洲一区二区三区含羞草 | 亚洲国产成人精品无码区在线观看 | 国产精品无码免费视频二三区 | 美国精品一区二区 | 免费一区二区三区在线观看 | 最新免费av| 在线观看黄色片 | 这里只有精品免费 | 国产精品久草 | 国产黄大片在线观看画质优化 | 欧美美女久久 | 饥渴少妇高清VIDEOS | 国产精品亚洲а∨怡红院 | 亚洲中文字幕久久精品无码va | 少妇激情一区二区三区视频 | 高潮毛片无遮挡免费高清 | 乱中年女人伦av三区 | 亚洲黄色av网站 | 国产精品视频色 | 国产娱乐凹凸视觉盛宴在线视频 | 冈江凛性色精品一区二区 | 成人黄网在线观看 | 91精品观看 |