藍芽學習(四)-- 低功耗藍芽(BLE)鏈路層資料包
- octet : 八位位元組
鏈路層定義了兩個裝置如何利用無線電傳輸資訊。它包含了報文、廣播資料通道的詳細定義,也規定了發現其他裝置的流程、廣播的資料、連線的建立、連線的管理以及連線中的資料傳輸。
下圖是報文的基本結構,適用於所有的報文,無論其用途是什麼。報文一開始是一小段訓練序列,被稱為前導,佔1個位元組。之後是接入地址,接收機用它將報文和背景區分開來。接入地址之後是報頭和長度位元組。再之後是報文的淨荷,以及用於確保淨荷正確性的迴圈冗餘校驗碼(CRC)。
低功耗藍芽規範中,有兩類報文:廣播報文和資料報文。兩類報文具有兩種完全不同的用途。裝置利用廣播報文發現、連線其他裝置。一旦連線建立之後,則開始使用資料報文。是廣播報文還是資料報文由其傳輸所在的通道決定。
如上圖,報文的內容就像個洋蔥,一層套一層。最外層是通用的:前導(Preamble)、接入地址(Access Address)、CRC。而在接入地址與CRC之間的內容就是根據是廣播報文還是資料報文來確定的。
相關推薦
藍芽學習(四)-- 低功耗藍芽(BLE)鏈路層資料包
octet : 八位位元組 鏈路層定義了兩個裝置如何利用無線電傳輸資訊。它包含了報文、廣播資料通道的詳細定義,也規定了發現其他裝置的流程、廣播的資料、連線的建立、連線的管理以及連線中的資料傳輸。 下圖是報文的基本結構,適用於所有的報文,無論其用途是什麼。報文一開始是一小段訓練
藍芽學習(五)-- 低功耗藍芽(BLE)主機:屬性、服務
在BLE中服務、屬性、特性、行為很難理解。講得極其抽象,讓我疑惑的是它是一種邏輯上面的概念還是資料結構上的概念? 服務是一種或多種特性的組合,特性則由一種或多種屬性組成 BLE的對於服務上的概念上居然是來源於“面向物件程式設計(OOP)”: 類 物件 屬
藍芽學習(三)-- 低功耗藍芽(BLE)協議棧
BLE協議棧為什麼要分層?怎麼理解BLE“連線”?如果BLE協議只有ATT層沒有GATT層會發生什麼? 協議棧框架 一般而言,我們把某個協議的實現程式碼稱為協議棧(protocol stack),BLE協議棧就是實現低功耗藍芽協議的程式碼,理解和掌握BLE協議是實現BLE協議棧的前
Android 藍芽開發(2)——低功耗藍芽
低功耗藍芽官方文件 本文章是參考官網,然後加入自己實踐中的理解完成!沒有看上一篇的讀者,可以先閱讀一下前一篇,這是一個系列。 官網地址:https://developer.android.com/guide/topics/connectivity/bluetooth-le Android 4.3 (API
STM32小白入門(第八天)-------低功耗藍芽模組
藍芽是現在智慧生態下運用的最多的,比如智慧手環,智慧手錶,智慧家居也離不開它的身影。我用的是,CC2541低功率藍芽模組4.0 BLE 串列埠 帶底板直排針 無線藍芽模組藍芽是無線短距離傳輸的一種,有79個頻段,工作頻段範圍是2402~2480MHz,通常傳輸距離為10米,經
藍芽學習(二)
通訊距離 路徑損耗是指發射機天線到接收機天線的能量消耗,路徑損耗與距離的關係: p a
Android BLE學習(三):編寫自己的 BLE藍芽讀寫工具(功能仿照nrf master control panel)
背景 由於nordic官方的nrf master control panel只提供了apk,很多同學學習起來都得自己摸索藍芽的讀寫,專案中整理了BLE模組的基本讀寫方法以及一些常用的UUID,並且抽取了一些藍芽操作的流程,方便Android app程式碼開發,
Python基礎學習(四)
python 函數 集合 Python 集合: set 顧明思義,就是個集合,集合的元素是唯一的,無序的。一個{ }裏面放一些元素就構成了一個集合,set裏面可以是多種數據類型(但不能是列表,集合,字典,可以是元組) 它可以對列表裏面的重復元素進行去重list1 = [1,2,3,23
爬蟲庫之BeautifulSoup學習(四)
所有 字符串 判斷 href gin int 過濾器 amp link 探索文檔樹: find_all(name,attrs,recursive,text,**kwargs) 方法搜索當前tag的所有tag子節點,並判斷是否符合過濾器的條件 1、name參數,可
java學習(四)代碼的設計
方法 聯系 string 封裝 代碼 his 站點 add 團隊 一、目的 1、為了使程序員編寫的代碼更加的簡潔,使人閱讀起來更加流暢 2、將運算代碼與界面代碼完全分離開來,利於團隊開發,提高團隊之間的工作效率 3、 在很短的時間內可以替換整個站點的外觀; 4、使程
Linux基礎學習(四)
ubuntu pad 檢查 rom run 文件和目錄 mis fdisk 內存 十一、 系統監控 11.1 系統監視和進程控制工具 11.1.1 top 1) top命令的功能:top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用狀況,類似於
java學習(四)static靜態變量 和this
java學習 方便 private setname 局部變量 變量 告訴 應該 size java中的this /* this:是當前類的對象引用。簡單的記,它就代表當前類的一個對象。 註意:誰調用這個方法,在該方法內部的this就代表誰
java源碼學習(四)ArrayList
mem mov elements fail ren pac runt 語義 tran ArrayList ? ArrayList是基於數組實現的,是一個動態數組,其容量能自動增長,類似於C語言中的動態申請內存,動態增長內存。 ? ArrayList不是線程安全的,只能用在單
CSS學習(四)
last checked charset event 大小寫 emp 技術 let -h 偽類(Pseudo-classes) CSS偽類是用來添加一些選擇器的特殊效果。 偽類的語法: selector:pseudo-class {property:valu
HBase概念學習(四)Java API之掃描和過濾器
影響 產生 str 實例 分享 get 批量 java api track HBase主要的CRUD操作就不多介紹了,無非就是Put,Get。Delete三個類的運用。 本文相當於是閱讀HBase權威指南的總結。 一、掃描(Scan) 如今看一下掃
shiro的源碼學習(四)-- 深入理解realm
instance his face 成功 返回 void exce gen 調用 IniRealm的類結構如下圖: 下面分析每個類: (1)Ream: 域的頂點,其代碼如下:securityManager會使驗證器來調用,驗證器通過Realm返回用戶信息,確定用戶是否登錄
【轉】JMeter學習(四)參數化
一個 ngx adr conf 英文逗號 .net 註意 itl ron JMeter也有像LR中的參數化,本篇就來介紹下JMeter的參數化如何去實現。 參數化:錄制腳本中有登錄操作,需要輸入用戶名和密碼,假如系統不允許相同的用戶名和密碼同時登錄,或者想更好的模擬多個
wordpress學習(四)---url偽靜態簡單了解
var rewrite 月份 word lob ont cal page true 在page-url.php頁面做測試 <h2>url偽靜態</h2> 接收到的pagename參數是:<? echo $wp_query->query
Maven學習(四)-- Maven的核心概念
pue nlj 人員 gbk provided spi vts 源代碼 -s 摘自:http://www.cnblogs.com/xdp-gacl/p/4051819.html 一、Maven坐標 1.1、什麽是坐標? 在平面幾何中坐標(x,y)可以標識平面中唯一的一
算法學習(四)
ket ets amp 出棧 使用 append {} elif 算法 1.Bit Count(位計算) 說明:計算機中的所有值都以二進制系統表示。在這個簡單的任務中,您要編寫一個程序,該程序計算給定值中的非零位數。我們使用的是32位整數值,所以應該從0到32個非零位。