ac米兰队服红黑含义
發燒友10周年慶典,全網超值優惠來襲!千元現金券,下單抽獎趕緊參與》》

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

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層來完成,我們下次再講解。

收藏 人收藏
分享:

評論

相關推薦

請問CyByLyEvtGAPI DeVice連接和CyByLyEvtGATTHEA連接有什么區別?

CyByLyEvtGAPI DeVice連接的和CyByLyEvtGATTHEA連接的區別(以及它們的斷開連接)是什么區別? 對我來說,...
發表于 10-11 10:44 ? 48次 閱讀
請問CyByLyEvtGAPI DeVice連接和CyByLyEvtGATTHEA連接有什么區別?

如何使用GAP注冊HCI?

我在使用Multi Role Demo里面的multi.c時需要用到GAP_RegisterForHCIMsgs(selfEntity); 但我在編譯時搜不到這個函數...
發表于 09-25 09:59 ? 27次 閱讀
如何使用GAP注冊HCI?

怎樣用樹莓派通過HTTP從PHP網站發送SMS

  本教程演示了如何使用Raspberry Pi通過HTTP請求和響應從PHP網站發送SMS。它提供....
的頭像 39度創意研究所 發表于 09-24 11:24 ? 215次 閱讀
怎樣用樹莓派通過HTTP從PHP網站發送SMS

Altium差分信號length tuning中的gap,amplitude increase gap increase該怎么設置?

我想問一下差分信號length tuning中,gap,amplitude increase gap increase如何設置,和差分線的width和gap是什么關系 ...
發表于 09-06 05:35 ? 53次 閱讀
Altium差分信號length tuning中的gap,amplitude increase gap increase該怎么設置?

在M24SR庫中是否有任何LibNdef用于Wifi憑證?

HI, 在M24SR庫中是否有任何LibNdef用于Wifi憑證,就像用于短信,電子郵件,AAR等的lib Ndef一樣?或者我們是否...
發表于 08-12 07:05 ? 203次 閱讀
在M24SR庫中是否有任何LibNdef用于Wifi憑證?

如何使用SMS為LED供電

這里我們將LED連接到LinkitONE
的頭像 39度創意研究所 發表于 08-07 17:36 ? 581次 閱讀
如何使用SMS為LED供電

怎樣用樹莓派上的Node-RED創建一個SMS應用程序

本教程的設置包括帶有華為3G USB調制解調器的RaspberryPi 3,它連接到蜂窩網絡。
的頭像 39度創意研究所 發表于 08-01 16:42 ? 437次 閱讀
怎樣用樹莓派上的Node-RED創建一個SMS應用程序

微軟SMS2003軟件的部署

SMS2003又是微軟的一個令人興奮的軟件,微軟非常巧妙的將SMS 2003與AD進行了整合,非常方便的實現了對域環境下資源的管理...
發表于 07-19 06:19 ? 129次 閱讀
微軟SMS2003軟件的部署

使用SMS短信進行PDU編碼的詳細資料和程序免費下載

目前,發送短消息常用Text和PDU(Protocol Data Unit,協議數據單元)模式。使用....
發表于 06-21 17:43 ? 145次 閱讀
使用SMS短信進行PDU編碼的詳細資料和程序免費下載

如何進行SMS短信的PDU編碼詳細資料說明

目前,發送短消息常用Text和PDU(Protocol Data Unit,協議數據單元)模式。使用....
發表于 05-08 18:18 ? 119次 閱讀
如何進行SMS短信的PDU編碼詳細資料說明

如何使用BDS和GPRS進行智能汽車定位器的設計

企事業單位及高校外來車輛進出頻繁,單位及校園內部道路外來車輛隨意停放現象日趨嚴重。為了規范停車,本文....
發表于 03-25 08:00 ? 169次 閱讀
如何使用BDS和GPRS進行智能汽車定位器的設計

BlueNRG-1能同時支持主/從模式嗎

美好的一天,支持團隊, 我有一個關于BlueNRG-1同時主/從模式支持的問題。 正如我從文檔“BlueNRG-1,BlueNR...
發表于 02-13 12:54 ? 320次 閱讀
BlueNRG-1能同時支持主/從模式嗎

如何選擇GUI上的類型?

你好, 我想在PSoC 4 BLE設備中使用“可連接定向”的廣告包,但是在拉低“廣告類型”功能時,在組件GUI中找不到GAP...
發表于 10-30 10:22 ? 303次 閱讀
如何選擇GUI上的類型?

BlueNRG-MS設備名稱可公開寫入嗎

嗨, 使用GAP_INIT啟動芯片時,它會自動創建設備名稱和外觀特征。這些是使用寫屬性創建的,允許任何人重寫設備的...
發表于 09-28 16:50 ? 403次 閱讀
BlueNRG-MS設備名稱可公開寫入嗎

SMS的功能及結構介紹

SMS(Short Messaging Service)是最早的短消息業務,也是現在普及率最高的一種....
發表于 09-27 11:31 ? 358次 閱讀
SMS的功能及結構介紹

輸電線路覆冰在線監測研究

 研發基于通用移動通信系統/短信息服務(GSMSMS)的輸電線路覆冰在線監測系統,整個系統主要由省監....
發表于 09-08 14:34 ? 297次 閱讀
輸電線路覆冰在線監測研究

使用AT命令控制SMS(演示軟件)(PDF)

使用AT命令控制SMS(演示軟件)(PDF)
發表于 02-25 18:08 ? 265次 閱讀
使用AT命令控制SMS(演示軟件)(PDF)

一種基于STM32的SMS短消息收發系統_宋維

一種基于STM32的SMS短消息收發系統_宋維
發表于 01-14 22:32 ? 306次 閱讀
一種基于STM32的SMS短消息收發系統_宋維

手把手教你用藍牙:初探藍牙協議中的通用訪問規范GAP

初探藍牙協議中的通用訪問規范GAP 青云開發板資料,介紹GAP的基礎知識。
發表于 07-26 15:18 ? 830次 閱讀
手把手教你用藍牙:初探藍牙協議中的通用訪問規范GAP

基于PDA和無線模塊的SMS程序設計

本文討論了基于微軟Windows CE的PDA設備串口通信,通過將PDA的串口與一個無線模塊相連,實....
發表于 04-18 10:46 ? 304次 閱讀
基于PDA和無線模塊的SMS程序設計

基于SMS%2fWLAN的嵌入式Linux工控預警傳輸系統

發表于 08-24 19:11 ? 327次 閱讀
基于SMS%2fWLAN的嵌入式Linux工控預警傳輸系統

基于STM32的SMS短消息收發系統

短消息服務作為GSM網絡提供的一種基本服務,已成為諸多領域遠程控制的一種通信手段。討論一類通用的SM....
發表于 11-26 14:44 ? 968次 閱讀
基于STM32的SMS短消息收發系統

手機短信點播內容的廣播方式及其原理

隨著手機應用和用戶生成型內容(UGC)的飛速增長,將SMS和MMS信息等手機內容發布到廣播系統中的能....
發表于 07-20 17:45 ? 1228次 閱讀
手機短信點播內容的廣播方式及其原理

基于SMS的智能家居遠程監控系統

該系統通過手機短信不但可以遙控家居的電器設備,而且還可以對家居安防系統進行遠程監視,具有結構簡單、運....
發表于 07-11 09:46 ? 930次 閱讀
基于SMS的智能家居遠程監控系統

sms是什么意思

sms是什么意思,sms的體系結構介紹。SMS是一種存儲和轉發服務。也就是說,短消息并不是直接從發送....
發表于 12-21 16:29 ? 12358次 閱讀
sms是什么意思

基于GSM模塊的移動購物系統設計

隨著社會經濟的發展和生活水平的提高,人們的消費觀念不再局限于傳統的零售業,移動支付作為一種新的移動互....
發表于 09-23 12:02 ? 936次 閱讀
基于GSM模塊的移動購物系統設計

Web+SMS技術在公路地質災害監測中的應用

為了減少或消除公路邊坡地質災害的影響,利用先進的通信和計算機技術建立公路邊坡 地質災害監測 預警系統....
發表于 08-05 14:49 ? 441次 閱讀
Web+SMS技術在公路地質災害監測中的應用

基于PDA和無線模塊的SMS程序設計

本內容提供了基于PDA和無線模塊的SMS程序設計,歡迎大家下載學習
發表于 06-27 15:54 ? 429次 閱讀
基于PDA和無線模塊的SMS程序設計

基于ARM9工控主板的SMS短信息應用

英創公司的嵌入式工控主板均預裝WinCE5.0正版操作系統,在工業控制及終端檢測設備中,具有低成本、....
發表于 06-09 15:58 ? 650次 閱讀
基于ARM9工控主板的SMS短信息應用

移動短信SMS綜合資料

GSM中唯一不要求建立端-端業務路徑的業務就是短消息,即使移動臺已處于完全電路通信情況下仍可進行短消....
發表于 05-10 15:41 ? 412次 閱讀
移動短信SMS綜合資料

基于GAP技術的網絡隔離設備的設計

簡要介紹GAP技術的原理,提出一種基于現場可編程門陣列(FPGA)的實現方案。通過詳細分析SCSI協....
發表于 12-03 16:35 ? 303次 閱讀
基于GAP技術的網絡隔離設備的設計

基于GSMSMS的輸電線路覆冰在線監測系統

研發基于通用移動通信系統/ 短信息服務(GSMSMS) 的輸電線路覆冰在線監測系統, 整個系統主要由....
發表于 10-13 15:32 ? 327次 閱讀
基于GSMSMS的輸電線路覆冰在線監測系統

SMSC推出USB333x/334x ULPI收發器系列

  智能混合信號連接解決方案(Smart Mixed-Signal Connectivity)的領先....
發表于 09-02 09:03 ? 675次 閱讀
SMSC推出USB333x/334x ULPI收發器系列

SMS模塊TC351及其外圍電路設計

摘 要:詳細介紹了Siemens新一代短消息收發模塊TC35I的主要特性、SMS AT指令集和PDU....
發表于 05-17 11:07 ? 862次 閱讀
SMS模塊TC351及其外圍電路設計

基于SMS的單片機無線監控系統設計

本文介紹了基于SMS 的單片機遠程監控系統,采用內置CAN 控制器的AT90CAN128作為控制器來....
發表于 01-13 16:09 ? 326次 閱讀
基于SMS的單片機無線監控系統設計

SMS有獎問答游戲的設計與實現

        介紹在Linu....
發表于 09-15 08:21 ? 276次 閱讀
SMS有獎問答游戲的設計與實現

基于SMS 和WAP Push 的移動商務系統設計

        本文在SMS ....
發表于 09-14 09:46 ? 324次 閱讀
基于SMS 和WAP Push 的移動商務系統設計

基于智能手機平臺的SMS系統測試技術研究

        &n....
發表于 09-14 09:30 ? 246次 閱讀
基于智能手機平臺的SMS系統測試技術研究

SMS在真空控制系統維護中的應用

隨著企業規模的不斷擴大,設備的維護成本在不斷增加。將短消息業務應用在遠程監測系統中,就可以大幅降低設....
發表于 09-07 09:45 ? 209次 閱讀
SMS在真空控制系統維護中的應用

基于SMS 通信的直放站監控系統設計

論述直放站遠程監控系統的方案、系統的組成、硬件的配置、軟件設計、工作原理、功能以及技術性能。該系統通....
發表于 05-14 14:58 ? 2137次 閱讀
基于SMS 通信的直放站監控系統設計

遠程監控系統通過SMS發送電子郵件-Remote Monit

Abstract: This application note demonstrates how t....
發表于 05-07 11:37 ? 1301次 閱讀
遠程監控系統通過SMS發送電子郵件-Remote Monit
ac米兰队服红黑含义 博远棋牌 好彩客手机版App二维码 河北11选五胆拖投注表 竞彩足球比分即时比分 神鹰3肖6码的网址 云顶娱乐安卓版1.8.0 测你注定靠什么挣钱 欢乐生肖计划 重庆时时三星彩走势图360 吉林11选5胆拖投注表 时时彩宝典 上海时时预测软件