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

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

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

3天內不再提示

藍牙BLE是什么

電子森林 ? 來源:FPGA入門到精通 ? 作者:FPGA入門到精通 ? 2020-12-16 11:10 ? 次閱讀

什么是藍牙?

藍牙是一種短距的無線通訊技術,可實現固定設備、移動設備之間的數據交換。一般將藍牙3.0之前的BR/EDR藍牙稱為傳統藍牙,而將藍牙4.0規范下的LE藍牙稱為低功耗藍牙。

很多人對藍牙的認識還很局限于手機領域,其實藍牙的應用已經遠遠不止于此。過去幾年里,藍牙的增長量就達到了80%,當然,低功耗藍牙的出現也起到關鍵的作用,相信未來藍牙會開創一個可交互的物聯世界。

5c4c91ba-35a7-11eb-a64d-12bb97331649.png

標準分類

藍牙4.0標準包括傳統藍牙模塊部分和低功耗藍牙模塊部分,是一個雙模標準。低功耗藍牙也是建立在傳統藍牙基礎之上發展起來的,并區別于傳統模塊,最大的特點就是成本和功耗降低,應用于實時性要求比較高。

5cc42748-35a7-11eb-a64d-12bb97331649.png

BLE(Bluetooh Low Energy)藍牙低能耗技術是短距離、低成本、可互操作性的無線技術,它利用許多智能手段最大限度地降低功耗。

BLE技術的工作模式非常適合用于從微型無線傳感器(每半秒交換一次數據)或使用完全異步通信的遙控器等其它外設傳送數據。這些設備發送的數據量非常少(通常幾個字節),而且發送次數也很少(例如每秒幾次到每分鐘一次,甚至更少)。

BLE協議棧的結構和配置

1、協議有兩個部分組成:Controller和Host

2、Profiles和應用總是基于GAP和GATT之上

3、在單芯片方案中,Controller和Host,profiles,和應用層都在同一片芯片中

4、在網絡控制器模式中,Host和Controller是在一起運行的,但是應用和profiles在另外一個器件上,比如PC或者其他微控制器,可以通過UARTUSB進行操作

5、在雙芯片模式中,Controller運行在一個控制器,而應用層,profiles和Host是運行在另外一個控制器上

BLE設備連接狀態流程圖

5d184fe4-35a7-11eb-a64d-12bb97331649.png

BLE協議棧各層功能機制

低功耗藍牙體系結構

如上圖所述,要實現一個BLE應用,首先需要一個支持BLE射頻的芯片,然后還需要提供一個與此芯片配套的BLE協議棧,最后在協議棧上開發自己的應用??梢钥闯鯞LE協議棧是連接芯片和應用的橋梁,是實現整個BLE應用的關鍵。那BLE協議棧具體包含哪些功能呢?簡單來說,BLE協議棧主要用來對你的應用數據進行層層封包,以生成一個滿足BLE協議的空中數據包,也就是說,把應用數據包裹在一系列的幀頭(header)和幀尾(tail)中。具體來說,BLE協議棧主要由如下幾部分組成:

PHY層(Physical layer物理層)。PHY層用來指定BLE所用的無線頻段,調制解調方式和方法等。PHY層做得好不好,直接決定整個BLE芯片的功耗,靈敏度以及selectivity等射頻指標。

LL層(Link Layer鏈路層)。LL層是整個BLE協議棧的核心,也是BLE協議棧的難點和重點。像Nordic的BLE協議棧能同時支持20個link(連接),就是LL層的功勞。LL層要做的事情非常多,比如具體選擇哪個射頻通道進行通信,怎么識別空中數據包,具體在哪個時間點把數據包發送出去,怎么保證數據的完整性,ACK如何接收,如何進行重傳,以及如何對鏈路進行管理和控制等等。LL層只負責把數據發出去或者收回來,對數據進行怎樣的解析則交給上面的GAP或者ATT。

HCI(Host controller interface)。HCI是可選的,HCI主要用于2顆芯片實現BLE協議棧的場合,用來規范兩者之間的通信協議和通信命令等。

GAP層(Generic access profile)。GAP是對LL層payload(有效數據包)如何進行解析的兩種方式中的一種,而且是最簡單的那一種。GAP簡單的對LL payload進行一些規范和定義,因此GAP能實現的功能極其有限。GAP目前主要用來進行廣播,掃描和發起連接等。

L2CAP層(Logic link control and adaptation protocol)。L2CAP對LL進行了一次簡單封裝,LL只關心傳輸的數據本身,L2CAP就要區分是加密通道還是普通通道,同時還要對連接間隔進行管理。

SMP(Secure manager protocol)。SMP用來管理BLE連接的加密和安全的,如何保證連接的安全性,同時不影響用戶的體驗,這些都是SMP要考慮的工作。

ATT(Attribute protocol)。簡單來說,ATT層用來定義用戶命令及命令操作的數據,比如讀取某個數據或者寫某個數據。BLE協議棧中,開發者接觸最多的就是ATT。BLE引入了attribute概念,用來描述一條一條的數據。Attribute除了定義數據,同時定義該數據可以使用的ATT命令,因此這一層被稱為ATT層。

GATT(Generic attribute profile )。GATT用來規范attribute中的數據內容,并運用group(分組)的概念對attribute進行分類管理。沒有GATT,BLE協議棧也能跑,但互聯互通就會出問題,也正是因為有了GATT和各種各樣的應用profile,BLE擺脫了ZigBee等無線協議的兼容性困境,成了出貨量最大的2.4G無線通信產品

BLE藍牙模塊主要應用領域

1、移動擴展設備

2、汽車電子設備

3、健康醫療用品:心跳帶、血壓計等

4、定位應用:室內定位、井下定位等

5、近距離數據采集:無線抄表、無線遙測等

6、數據傳輸:智能家居室內控制、藍牙調光、打印機等

BLE協議棧詳解

協議概述

所謂協議,即將指定的字節按照一定的順序排列起來,以便他人使用自己的設備時,能通過該協議同其他設備進行通信。協議一特點,就是有固定的幀格式,通過該格式發送,接收者通過解讀幀格式,進而得到新息內容;

BLE連接過程

一般通信協議,一類通信是直接發生數據,當設備接送到數據時,直接對數據進行解析,當接受到的數據合法時,即為有效數據,該類型的通信協議,主要用在有線通信協議中,比如Modbus,Can通常采用的即為該類型的通信方式。
另一類通信協議,則需要新建立連接,當雙方連接建立成功了方可通信,例如TCP、BLE;BLE協議在需要進行通信時,即需要向外發送廣播信號,告訴接收者,即將和它進行通信,接受者接收到廣播內容后,確認是與自己通信,于是向廣播者發送一響應信息,這樣當廣播者和接受者都有了對方的身份信息時,即表示雙方連接成功。
因此,在連接過程中,必定有相應的廣播幀格式。在BLE通信過程中,假設設備A需要連其他設備假設為B,則A需要不斷地發送廣播信號(此過程一般有一個時間間隔,在沒發送廣播數據時間內,芯片處于低功耗狀態),每發送一次廣播包,稱之為一次廣播事件。

廣播幀格式

611d7538-35a7-11eb-a64d-12bb97331649.png


前導:
是一個8比特的交替序列
接入地址的第一個比特為0:01010101
接入地址的第一個比特為1:10101010
接入地址:廣播幀為固定地址:0x8E89BED6(低字節在前)
廣播報文的報頭:
包含4bit廣播報文類型、2bit保留位、1bit發送地址類型和1bit接收地址類型。
廣播報文類型:

61a0f1ce-35a7-11eb-a64d-12bb97331649.png


發送地址類型:
0:公共地址
1:隨機地址
長度:廣播報文的長度域包含8個比特,有效值的范圍是6~37
數據:廣播者地址(6個字節)+廣播數據(31個字節)
校驗:3個字節,為CRC校驗。
廣播數據:分為有效數據和無效數據

623e8628-35a7-11eb-a64d-12bb97331649.png


有效數據部分:
包含N個AD Structure,每個AD Structure由Length,AD Type和AD Data組成。其中:
Length:AD Type和AD Data的長度。
ADType:指示AD Data數據的含義。詳見https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile/

BLE連接建立過程

1. BLE廣播與掃描

設備B不斷發送廣播信號給手機(Observer),如果手機不開啟掃描窗口,手機是收不到設備B的廣播的,如下圖所示,不僅手機要開啟射頻接收窗口,而且只有手機的射頻接收窗口跟廣播發送的發射窗口匹配成功,而且廣播射頻通道和手機掃描射頻通道是同一個通道,手機才能收到設備B的廣播信號。也就是說,如果設備B在37通道發送廣播包,而手機在掃描38通道,那么即使他們倆的射頻窗口匹配,兩者也是無法進行通信的。由于這種匹配成功是一個概率事件,因此手機掃到設備B也是一個概率事件,也就是說,手機有時會很快掃到設備B,比如只需要一個廣播事件,手機有時又會很慢才能掃到設備B,比如需要10個廣播事件甚至更多。

2. 建立連接(connection establishment)

根據藍牙spec規定,advertiser發送完一個廣播包之后150us(T_IFS),advertiser必須開啟一段時間的射頻Rx窗口,以接收來自observer的數據包。Observer就可以在這段時間里給advertiser發送連接請求。如下圖所示,手機在第三個廣播事件的時候掃到了設備B,并發出了連接請求CONN_REQ(CONN_REQ又稱為CONNECT_IND)。


注:圖中M代表手機,S代表設備B,M->S表示手機將數據包發給設備B,即手機開啟Tx窗口,設備B開啟Rx窗口;S->M正好相反,表示設備B將數據包發給手機,即設備B開啟Tx窗口,手機開啟Rx窗口。

如圖所示,手機在收到A1廣播包ADV_IND后,以此為初始錨點(這個錨點不是連接的錨點),T_IFS時間后給Advertiser發送一個connection request命令,即A2數據包,告訴advertiser我將要過來連你,請做好準備。Advertiser根據connect_req命令信息做好接收準備,connect_req包含如下關鍵信息:

Transmit window offset,定義如上圖示

Transmit window size,定義如上圖所示

connect_req數據包完整定義如下所示


connect_req其實是在告訴advertiser,手機將在Transmit Window期間發送第一個同步包(P1)給你,請在這段時間里把你的射頻接收窗口打開。設備B收到P1后,T_IFS時間后將給手機回復數據包P2(ACK包)。一旦手機收到數據包P2,連接即可認為建立成功。當然,實際情況會比較復雜,手機有可能收不到P2,這個時候手機將持續發送同步包直到超時時間(supervision timeout)到,在此期間只要設備B回過一次ACK包,連接即算成功。所以一旦P1包發出,主機(手機)即認為連接成功,而不管有沒有收到設備的ACK包。這也是為什么在Android或者iOS系統中,應用經常收到連接成功的回調事件(該回調事件就是基于P1包有沒有發出,只要P1包發出,手機即認為連接成功,而不管有沒有收到設備的ACK包),但實際上手機和設備并沒有成功建立連接。后續手機將以P1為錨點(原點),Connection Interval為周期,周期性地給設備B發送數據包(Packet),Packet除了充當數據傳送功能,它還有如下兩個非常重要的功能:

同步手機和設備的時鐘,也就是說,設備每收到手機發來的一個包,都會把自己的時序原點重新設置,以跟手機同步。

告訴設備你現在可以傳數據給我了。連接成功后,BLE通信將變成主從模式,因此把連接發起者(手機)稱為Master或者Central,把被連接者(之前的Advertiser)稱為Slave或者Peripheral。BLE通信之所以為主從模式,是因為Slave不能“隨性”給Master發信息,它只有等到Master給它發了一個packet后,然后才能在規定的時間把自己的數據回傳給Master。

3. 連接失敗

有如下幾種典型的連接失敗情況:

如步驟2圖所示,如果slave在transmit window期間沒有收到master發過來的P1,那么連接將會失敗。此時應該排查master那邊的問題,看看master為什么沒有在約定的時間把P1發出來。

如果master在transmit window期間把P1發出來了,也就是說master按照connect_req約定的時序把P1發出來了,但slave沒有把P2回過去或者沒有在超時時間內把P2回過去,那么連接也會失敗。此時應該排查slave這邊的問題,看一看slave為什么沒有把P2回過去

如果master把P1發出來了,slave也把P2回過去了,此時主機或者從機還是報連接失敗,這種情況有可能是軟件有問題,需要仔細排查master或者slave的軟件。

還有一種比較常見的連接失敗情況:空中射頻干擾太大。此時應該找一個干凈的環境,比如屏蔽室,排除干擾后再去測試連接是否正常。

數據幀格式


連接成功后,雙方將可以互相發送數據,那么將涉及到其數據幀格式:

64359e12-35a7-11eb-a64d-12bb97331649.png


字段釋義:
LLID:表示此包數據是 LL Date PDU 還是 LL Control PDU
00b: Reserved
01b: LL Date PDU:Continuation fragment of L2CAP message, or an Empty PDU.
10b: LL Date PDU:Start of an L2CAP message or a complete L2CAP message with no fragmentation.
11b: LL Control PDU

MIC( Message Integrity Check):信息完整性檢測。涉及到加密操作,上圖中是用虛線表示的,并不是一定要有此項。
MD:這個標志位是用來通知對方設備自己還有其他數據準備發送。0 表示沒有更多數據發送, 1 表示有更多數據準備發送。這樣,只要還有數據需要發送,連接事件會自動擴展。一旦不再有數據發送,連接事件立即關閉。

Note:如何區分是確定包、新包還是重發包?
SN:只有一個 bit 位,所以值是在 0 和 1 之間進行切換。如果序列號與之前的一樣,則為重傳報文,如果序列號和之間的不同,則為新報文。
NESN:預期序列號,它是接收方希望接到的下一包的序列號,也就是數據包的確認標志。當設備接收到序列(SN)為 0 的報文后,在發送給對方的數據包中,應將 NESN 設為 1,這樣對方接收到這個包后,會發送一個新的數據包過來,否則就會重發上一次序列號為 0 的包。這個標志可以用來判斷數據包是否被正確接收還是需要重傳。

責任編輯:xj

原文標題:“藍牙”技術專題周2 - 藍牙BLE詳解

文章出處:【微信公眾號:FPGA入門到精通】歡迎添加關注!文章轉載請注明出處。

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

    關注

    114

    文章

    5809

    瀏覽量

    170192
  • BLE
    BLE
    +關注

    關注

    12

    文章

    660

    瀏覽量

    59391

原文標題:“藍牙”技術專題周2 - 藍牙BLE詳解

文章出處:【微信號:xiaojiaoyafpga,微信公眾號:電子森林】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    BES3008/3016/3024藍牙低能耗(BLE)/專用2.4GHz片上系統芯片手冊

    低功耗低成本藍牙BLE芯片BES3000,來自于必爾易半導體。功耗低至2uA,成本低于1元。是非常具有性價比的藍牙BLE芯片。
    發表于 12-16 11:46 ?0次下載

    打破局限,共創新章,BLE與LoRa的“混合雙打”

    低功耗藍牙BLE)與LoRa是兩種具有代表性的無線通信技術,它們分別在近距離與遠距離上擁有著獨特的優勢,具備著相互取長補短的特性。因此,將BLE與LoRa作為組合方案應用至具體的使用場景之中,將可以充分發揮兩者的優勢,實現更為
    的頭像 發表于 11-28 14:48 ?185次閱讀
    打破局限,共創新章,<b class='flag-5'>BLE</b>與LoRa的“混合雙打”

    BLE、UWB和RFID,“定位技術”哪家強?

    它們的工作原理。BLE低功耗藍牙BLE是低功耗藍牙的縮寫,是一種專為短距離交互而設計的無線通信技術。它于2011年作為藍牙4.0的一部分推出
    的頭像 發表于 10-11 08:03 ?1142次閱讀
    <b class='flag-5'>BLE</b>、UWB和RFID,“定位技術”哪家強?

    【BearPi-Pico H3863星閃開發板體驗連載】藍牙 BLE 透傳測試

    藍牙 BLE 透傳測試 小熊派 Pico-H3863 開發板支持 BLE 1MHz/2MHz 頻寬、BLE4.0/4.1/4.2/5.0/5.1/5.2 協議、
    發表于 10-04 11:57

    PDF記錄儀新增藍牙?接口型號HK-LIBERO CL-Y

    、HK-LIBEROCH和HK-LIBEROCL,虹科ELPRO提供了一系列高品質的藍牙BLE)多用途PDF記錄儀。這些設備非常多功能,既適用于監控房間和設備,也適用于運輸監控。
    的頭像 發表于 08-03 08:09 ?271次閱讀
    PDF記錄儀新增<b class='flag-5'>藍牙</b>?接口型號HK-LIBERO CL-Y

    什么是藍牙芯片?

    傳輸、數據傳輸、位置服務和設備網絡等多個領域,極大地簡化了現代通信設備之間的通信過程,使數據傳輸更加迅速高效。 二、分類與特性 根據藍牙傳輸標準,藍牙芯片主要可分為經典藍牙芯片和低功耗藍牙
    的頭像 發表于 07-17 16:49 ?1423次閱讀

    ESP32-D0WDQ6芯片可以不接外置flash嗎?

    在學習開發一個項目,僅僅用到了藍牙BLE UART ,請問這個情況下不外接FLASH,芯片可以工作嗎
    發表于 07-02 07:54

    BK7238 高度集成的單芯片Wi-Fi802.11n和低功耗藍牙(BLE)5.2 MATTER認證,適用于iot產品

    Wi-Fi802.11n和低功耗藍牙(BLE)5.2組合解決方案,專為低功耗和小空間應用設計的,BK7238集成了功能強大的32位MCU和全套外設和接口,是高級物聯網(IoT)應用的理想選擇,BK7238
    發表于 07-01 10:05

    mesh與藍牙ble一起使用時會出現錯誤,為什么?

    mesh與藍牙ble一起使用時會周期出現打印 wifi:Error! Should use default passive scan time parameter for WiFi scan when Bluetooth is enabled!!!!!! wifi:sca
    發表于 06-28 07:26

    請問esp32如何修改spp藍牙的密碼在ardunio環境下?

    大家好,我是esp32的小白。剛剛入手三天,原本是用8266外借一個spp藍牙完成我自己做的小項目,然后發現esp32帶有spp藍牙ble藍牙,不過
    發表于 06-25 07:10

    mesh與藍牙ble一起使用時會出現錯誤的原因?

    mesh與藍牙ble一起使用時會周期出現 E (537372) wifi:Error! Should use default passive scan time parameter for WiFi scan when Bluetooth is enabled!!!!!!
    發表于 06-25 06:59

    ESP32-D0WD-V3藍牙BLE連接失敗的原因?

    問題描述:項目使用BLUFI進行配網,IDF v.4.4.1,之前采購的模塊是ESP32-D0WDQ6,所有功能正常。最近一次采購的模塊使用了ESP32-D0WD-V3芯片,出現了經常掃描不到藍牙
    發表于 06-13 06:12

    BK7238 高度集成的單芯片Wi-Fi802.11n和低功耗藍牙(BLE)5.2 MATTER認證

    Wi-Fi802.11n和低功耗藍牙(BLE)5.2組合解決方案,專為低功耗和小空間應用設計的,BK7238集成了功能強大的32位MCU和全套外設和接口,是高級物聯網(IoT)應用的理想選擇,BK7238
    發表于 06-04 15:51

    藍牙網關是什么?具有哪些功能?

    的數據,并將其發送給服務器。 數據傳輸功能:通過藍牙 BLE 和 WiFi 之間的串口,將藍牙 BLE 設備的數據通過WiFi 或者以太網傳送到服務器,并且將服務器端的數據傳送到
    發表于 01-19 15:05

    藍牙雙模的優勢有哪些?

    藍牙雙模是針對藍牙在數據傳輸應用領域,集合了經典藍牙BLE低功耗藍牙,支持藍牙BR/EDR(S
    的頭像 發表于 01-16 16:22 ?1115次閱讀
    <b class='flag-5'>藍牙</b>雙模的優勢有哪些?
    主站蜘蛛池模板: 国产色青青视频在线观看 | 日本亚洲电影| 国自产精品手机在线视频| 自拍黄色片| 性按摩AAAAAAA片| 欧美人与动牲交ZOOZ特| 精品国产自在现线拍国语| 操老太太的逼| 97视频在线观看免费视频| 亚洲精品无码久久久久A片| 日本又黄又裸一级大黄裸片| 久久精品18| 国产麻豆精品传媒AV国产在线| jzz大全18| 91精品国产色综合久久| 亚洲一卡二卡三卡四卡无卡麻豆| 十九岁韩国电影在线观看| 蜜桃成熟时2在线观看完整版hd| 国产精品香蕉视频在线| 把腿张开老子CAO烂你动态图| 中文字幕精品视频在线| 亚洲中文字幕永久在线| 性做久久久久久久久浪潮| 日本漫画之无彩翼漫画| 嫩草影院地址一二三| 考好老师让你做一次H| 久久国产精品高清一区二区三区| 冰山高冷受被c到哭np双性| 91极品蜜桃臀在线播放| 中文字幕亚洲无限码| 亚洲中文字幕无码一去台湾| 亚洲精品拍拍央视网出文| 亚洲成在人线视频| 偷窥 亚洲 色 国产 日韩| 神电影院午夜dy888我不卡| 日本一卡精品视频免费| 秋霞午夜理论理论福利无码| 欧美精品AV一区二区无码| 女人高潮特级毛片| 欧美美女一区二区三区| 青草影院天堂男人久久|