色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

GAP層和GATT層,SM層完成應用層數據交互和加密解密!

丫丫119 ? 來源:未知 ? 作者:肖冰 ? 2019-09-20 10:59 ? 次閱讀

實驗用到的工具:

藍牙主機:TI BTool + CC2540 dongle

藍牙從機:CC2541模塊

抓包工具:TI Sniffer + CC2540 dongle

手機工具:BLE調試工具箱 (無線技術聯盟微信公眾號關聯的藍牙測試工具)

01

連接請求

TI的Btool是個非常好用的PC主機小工具,其部分界面如下所示,在Discover/Connect界面,可以配置不同的連接參數,選擇掃描以及根據掃描到的廣播設備有選擇性的進行連接。多說一句whitelist,什么是whitelist?這個和微信公眾號的白名單一樣,是得到主機授權的從機設備,當選擇只掃描whitelist的設備時(前提是已經在主機上添加了whitelist設備),主機只會掃描過濾在whitelist里面的設備。

從下圖截獲的控制數據包可以看到,主機端在廣播掃描之后發出一條CONNECT_REQ的指令,附帶LL data,開啟了主從設備連接的過程的第一步。TI的工具做的比較人性化,可以從該條語句的注釋可以看到

Adv PDU Header Type的值為5,對應Spec的值是CONNECT_REQ。

在指令后面標注出發起端(主機)和從機端的Mac地址,然后是LL data。

這一條指令嚴格來說也是屬于廣播范疇,其數據格式說明可以參考上一篇文章。

展開CONNECT_REQ包,其數據包格式可分為前導,接入地址,數據包,CRC效驗,詳細規范如下:

PDU數據包分可分為兩個部分,Header部分是指令(CONNECT_REQ),payload是詳細LL data,拉出LL Data來看,如下圖所示:

下面對LL Data格式詳細說明:

AA:連接中的兩設備的接入地址,如下圖所示,

CRCInit:CRC 初始化

WinSize:主機發送第一包數據的時間窗口

Winoffset:主機發送第一包數據的偏移時間

WinSize和Winoffset是配和使用,主機在發起CONNECT_REQ開始的Winoffset+1.25ms內準備和從機建立連接,這段時間被稱為連接建立準備時間,WinSize是主機第一包數據發送的時間窗口范圍。

Interval:藍牙連接間隔時間。

Latency:連接延遲,主多次請求才喚醒從機交互一次數據。

Timeout:超時斷開連接。

ChM:跳頻表,主機根據信道情況給出一張跳頻表,約定和從機可用的信道(0-36信道),0表示該信道不可用,1表示該信道可用。

Hop:跳頻階躍,hop是一個5~16的值。

SCA:休眠時鐘校正范圍。

跳頻算法介紹:

跳頻算法用于數據連接時候,數據信道為37個,跳頻公式如下: unmappedChannel = (lastUnmappedChannel + hopIncrement) mod 37

fn+1=(fn+hop) mod 37

hop是一個5~16的值,每次調頻之后中心頻率加hop值 mod 37。因為都是正整數,這個表達式在軟件中非常容易實現,軟件中通過求余運算便能完成運算,協議規定第一次連接事件中fn=0,fn+1=(0+hop) mod 37,也就是hop信道編號。

02

連接事件

連接請求發出之后,開始進入連接狀態,空中數據包如下所示,由綠色部分轉變為黃色部分。

進入藍牙連接狀態,連接狀態的數據包格式如下所示,PUD數據包包含兩個部分,頭字說明和數據包,頭字說明里面有幾種類型,分別在LLID里面詳細規定,NESN和SN控制主從發送的數據包是否被正確接收。

LLID:數據包類型格式

NESN:下一個數據包序列

SN:數據包序列

NESN和SN是配合使用,他們的作用是來標識主從是否正確交互。如主從交互所示,主發心跳包或者數據時,標記NESN和SN給從機,從機在接收到主機標識的NESN和SN之后,回傳NESN和SN+1給主,主接收到和之前發送的相差1表示之前數據正確傳輸,如果主機接收到的回傳值是非(NESN和SN+1),表示數據可能在空中存在都是,此時需要重傳。

03

數據交互

從機發起了MTU更新:

可以發現該LL Data出現橙黃色部分,抓包工具對數據進行的解析,橙黃部分表示從機要求更新MTU的大小,然后和主機相互約束一個MTU的值,后面數據包的格式及按照新約定的MTU大小來傳輸數據。

總結

用一張圖作為總結,整個鏈路層的連接的流程圖如下所示:

所以要想連接一個藍牙設備,主設備只需要做幾個動作,自身初始化,掃描周邊設備,對特點設備發出連接請求,開始交換數據。

到此低功耗藍牙就相互連接上了,后面應用層數據交互和加密解密就要交給GAP層和GATT層,SM層來完成,我們下次再講解。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • SMS
    SMS
    +關注

    關注

    0

    文章

    78

    瀏覽量

    28601
  • GAP
    GAP
    +關注

    關注

    0

    文章

    15

    瀏覽量

    8313
收藏 人收藏

    評論

    相關推薦

    在OSI模型中哪一負責處理加密解密數據

    OSI模型是一個七的網絡通信框架,每一都承擔著特定的職責,以確保數據能夠從源頭順利傳輸到目的地。從底部的物理開始,這一負責在物理媒介
    的頭像 發表于 12-26 15:27 ?197次閱讀

    MultiGABSE-AU物理PMA子及PMD子的相關機制

    在之前的文章中,我們介紹了IEEE 802.3cz[1]協議,MultiGABSE-AU物理中XMII、PCS子以及兩個可選功能的相關內容,本篇將介紹MultiGABSE-AU物理PMA子
    的頭像 發表于 12-23 10:20 ?207次閱讀
    MultiGABSE-AU物理<b class='flag-5'>層</b>PMA子<b class='flag-5'>層</b>及PMD子<b class='flag-5'>層</b>的相關機制

    OSI七模型中的數據封裝過程

    數據能夠在不同網絡之間順利傳輸,按層次將數據添加相應的協議頭和尾的過程。每一在傳輸數據時,會在接收到的
    的頭像 發表于 11-24 11:11 ?835次閱讀

    OSI七模型在網絡故障排查中的應用

    模型在網絡故障排查中的具體應用: 一、OSI七模型概述 OSI七模型是一個概念性的框架,它將網絡通信的功能劃分為七個層次。這些層次從低到高分別是:物理數據鏈路層、網絡
    的頭像 發表于 11-24 11:01 ?478次閱讀

    OSI七模型中各層的協議 OSI七模型的優勢與不足

    功能。以下是OSI七模型中各層的協議: 物理(Physical Layer) : 主要負責傳輸比特流,即實際的數據信號傳輸和物理連接的建立。 協議包括Ethernet(以太網,如IEEE
    的頭像 發表于 11-24 10:54 ?407次閱讀

    OSI七模型的每一功能

    開放系統互聯(OSI)模型是一個概念性框架,用于標準化網絡通信過程,以便不同的計算機系統和網絡能夠相互通信。OSI模型分為七,每一都有其特定的功能和協議。以下是OSI七模型的每一
    的頭像 發表于 11-24 10:46 ?404次閱讀

    詳解KiCad中的

    “ ?不同EDA對于PCB中物理的定義基本相同,比如信號、絲印、阻焊、助焊等。但對于工藝(輔助)的定義會略有不同,比如Altium Designer沒有專門的板框
    的頭像 發表于 11-12 12:21 ?458次閱讀
    詳解KiCad中的<b class='flag-5'>層</b>

    PCM2707C是否支持Android系統?PCM2707C Android應用層怎么寫?

    有如下兩個問題,幫忙看看,謝謝! 1,PCM2707C是否支持Android系統 2,PCM2707C Android應用層怎么寫?如何獲取USB上的音頻數據
    發表于 10-30 07:46

    金屬2工藝是什么

    金屬2(M2)工藝與金屬1工藝類似。金屬2工藝是指形成第二金屬互連線,金屬互連線的目的是實現把第一金屬或者第三
    的頭像 發表于 10-24 16:02 ?317次閱讀
    金屬<b class='flag-5'>層</b>2工藝是什么

    Linux應用層控制外設的兩種不同的方式

    眾所周知,linux下一切皆文件,那么應用層如何控制硬件,同樣是通過 文件I/O的方式來實現的,那么應用層控制硬件通常有兩種方式。
    的頭像 發表于 10-05 19:03 ?589次閱讀
    Linux<b class='flag-5'>應用層</b>控制外設的兩種不同的方式

    神經網絡中的卷積、池化與全連接

    在深度學習中,卷積神經網絡(Convolutional Neural Network, CNN)是一種特別適用于處理圖像數據的神經網絡結構。它通過卷積、池化和全連接的組合,實現了
    的頭像 發表于 07-11 14:18 ?6457次閱讀

    反向傳播神經網絡分為多少

    層數可以根據具體問題和數據集來確定,但通常包括輸入、隱藏和輸出。 輸入 輸入
    的頭像 發表于 07-03 11:02 ?433次閱讀

    在STM32F407官方LWIP例程中,怎樣修改把需要發送的數據直接由應用層映射到數據鏈路層?

    STM32F407 以太網DMA數據發送問題,最近在做一個關于電網IEC61850通信項目,其中9-2SV協議要求應用層數據直接映射到數據鏈路層,不需經表示、會話
    發表于 04-29 06:21

    什么是PCB疊?PCB疊設計原則

    對于信號,通常每個信號都與內電直接相鄰,與其他信號有有效的隔離,以減小串擾。在設計過程中,可以考慮多層參考地平面,以增強電磁吸收能力。
    的頭像 發表于 04-10 16:02 ?2524次閱讀
    什么是PCB疊<b class='flag-5'>層</b>?PCB疊<b class='flag-5'>層</b>設計原則

    華為顯示面板專利公布,聚焦介質、平坦化、像素界定及電路設計

    該專利主要內容如下:顯示面板由間介質、平坦化和像素界定有序堆疊而成;在顯示面板非像素區的第一功能內置入內切結構和至少一個電極搭接結
    的頭像 發表于 02-21 09:40 ?748次閱讀
    華為顯示面板專利公布,聚焦介質<b class='flag-5'>層</b>、平坦化<b class='flag-5'>層</b>、像素界定<b class='flag-5'>層</b>及電路設計
    主站蜘蛛池模板: 日本美女阴道| 超碰在线视频97| 久久综合久久伊人| jiapanese50欧美熟妇| 亚洲AV无码国产精品色午夜情| 久久久擼擼擼麻豆| 第一次处破女高清电影| 一二三四在线观看韩国| 入禽太深视频免费视频| 久久综合视频网站| 国产真实露脸乱子伦| 抽插内射高潮呻吟V杜V| 诱受H嗯啊巨肉各种play| 色婷婷综合久久久中文字幕 | 美国xaxwaswaskino| 国产精品嫩草影院在线观看免费| 97人妻丰满熟妇AV无码| 亚洲不卡视频在线观看| 日韩爽爽影院在线播放| 女生下面免费看| 久久视热频国产这里只有精品23| 国产精品亚洲专区在线播放| 99在线免费视频| 7723手机游戏破解版下载 | 朝鲜美女bbwbbw撒尿| 中文在线免费看视频| 亚洲高清中文字幕| 少妇精品久久久一区二区三区| 免费精品国产人妻国语| 久久国产av偷拍在线| 国产在线精品亚洲二品区| 国产成人mv 在线播放| beeg日本老师按摩| 91综合久久久久婷婷| 在线观看亚洲 日韩 国产| 亚洲精品国产AV成人毛片| 撕烂衣服扒开胸罩揉爆胸| 日本免费一区二区三区四区五六区 | 男女牲交大战免费播放| 狼人大香伊蕉国产WWW亚洲| 久久99精品涩AV毛片观看|