1. 程式人生 > 實用技巧 >ble低功耗藍芽(1)

ble低功耗藍芽(1)

ble低功耗藍芽

在物聯網技術發展發展迅猛的今天,小型裝置對功耗和成本的要求越來越高,低功耗藍芽技術就得到快速發展,我學習低功耗藍芽權威指南順做下簡單記錄和總結,本文先簡單解釋下ble框架結構。
低功耗藍芽結構分為三層
控制器層,主機層,應用層
在這裡插入圖片描述

一.控制器

#物理層:主要完成資料的收發工作,一方面可將無線電磁波轉換為資料包,另一方面,可將裝置資料包轉換為無錫電磁波輻射到大氣中。

#鏈路層:廣播,掃描,連線的建立與維護,資料的加密校驗等。
因此,鏈路層中就出現下面幾個概念
1.資料傳輸通道-通道
通道分為廣播通道和資料通道,藍芽存在40個通道,至於兩種通道的劃分,廣播通道3個,資料通道37個
在這裡插入圖片描述
關於廣播通道的選擇已經儘量避免2.4g wifi常用通道可能帶來的干擾,下圖為2.4g wifi通道及其頻段

在這裡插入圖片描述
2.資料傳輸格式–報文(資料包的格式)
報文內容太多,現在簡單說明,後面具體介紹。報文是鏈路層的基石,簡單點說就是帶標籤的資料,由一個裝置傳送,一個或多個裝置接收,標籤指明瞭資料是由誰傳送的,以及由哪些資料接收,報文分為廣播報文和資料報文,廣播報文傳輸在廣播通道,資料報文傳輸在資料通道。
鏈路層資料包結構在這裡插入圖片描述
前導:一個位元組,構成01010101或者01010101,取決於接入地址的第一個數值接入地址
0;前導:01010101接入地址
1:前導:10101010
資料說調節自動增益控制,沒整明白哈哈,關於前導個人覺得可能還有種告訴控制器後面之後的資料是不是有效資料包,從而達到過濾噪聲的目的。
接入地址:存在兩種,廣播接入地址,資料接入地址。
廣播通道固定地址:0X8E89BED6
資料通道地址:一個隨機值,此值也是有一定的要求,如下
1.不能超過6個連‘0’,或連’1‘
2.與廣播通道地址至少有一個位元的不同
3.8位組必須互不相同
4.’0‘,’1‘翻轉不能超過24次
5.最後6位元至少有兩次位元翻轉
報頭:廣播報頭與資料報頭是存在基本區別的,後面報文在詳細介紹
長度:廣播報文,長度域6位元,資料報文,長度域5位元
資料:傳輸的真實資料
crc校驗對資料進行校驗

#主機控制介面:連線了主機與控制器—HCI
1.傳送命令給控制器接收來自控制器的事件
2.傳送和接收來自對端的資料

主機介面即使兩個裝置的物理上的介面,也是邏輯介面
邏輯介面:定義了命令,事件,資料封包

物理介面:主機控制器之間傳遞資料包

物理介面主要存在四種
通用非同步收發器(uart),3線uart,usb,安全數字輸入輸出(sdio)

二.報文

對廣播通道,資料通道報文做簡單介紹
藍芽幀結構
在這裡插入圖片描述
1.廣播報文(pdu)
在這裡插入圖片描述
header部分
在這裡插入圖片描述
廣播幀型別pdu type:
a.通用廣播指示—ADV_IND
在這裡插入圖片描述
b.定向連線報文–ADV_DIRECT_IND
在這裡插入圖片描述
c.不可連線廣播–ADV_NONCONN_IND
在這裡插入圖片描述
d.可掃描廣播–ADV_SCAN_IND
在這裡插入圖片描述
e.主動請求指示–SCAN_RSP
在這裡插入圖片描述
txadd,rxadd表示幀結構地址標誌位,公共地址和隨即地址
0:公共地址 1:隨機地址

今天先寫到這裡,後面接著介紹鏈路層的狀態機,資料報文結構及主機的資訊。