BLE藍芽那些事—深入瞭解Android藍芽Bluetooth基礎篇

codeGoogle發表於2017-08-16

什麼是藍芽?

  也可以說是藍芽技術。所謂藍芽(Bluetooth)技術,實際上是一種短距離無線電技術,是由愛立信公司公司發明的。利用“藍芽”技術,能夠有效地簡化掌上電腦、膝上型電腦和行動電話手機等行動通訊終端裝置之間的通訊,也能夠成功地簡化以上這些裝置與因特網Internet之間的通訊,從而使這些現代通訊裝置與因特網之間的資料傳輸變得更加迅速高效,為無線通訊拓寬道路。

藍芽版本的介紹

  藍芽發展至今經歷了8個版本的更新。1.1、1.2、2.0、2.1、3.0、4.0、4.1、4.2、5.0。當然5.0的藍芽模組目前Google雖已釋出,但是市場上還未見到5.0的藍芽裝置。那麼我們就盡請期待5.0藍芽裝置的到來!

  那麼在1.x~3.0之間的我們稱之為傳統藍芽,4.x開始的藍芽我們稱之為低功耗藍芽也就是藍芽ble,當然4.x版本的藍芽也是向下相容的。android手機必須系統版本4.3及以上才支援BLE API。

藍芽2.0標準:

  • 藍芽2.0標準2.0 是 1.2 的改良提升版,傳輸率約在
    1.8M/s~2.1M/s,
  • 開始支援雙工模式——即一面作語音通訊,同時亦可以傳輸檔案/高質素圖片
  • 2.0 版本當然也支援 Stereo 運作。
  • 應用最為廣泛的是Bluetooth 2.0+EDR標準,該標準在2004年已經推出,支援Bluetooth 2.0+EDR標準的產品也於2006年大量出現。
  • 雖然Bluetooth 2.0+EDR標準在技術上作了大量的改進,但從1.X標準延續下來的配置流程複雜和裝置功耗較大的問題依然存在。
    優點:
  • 資料量可以大一些、手機不需要藍芽4.0
缺點:
  • 需要MFI認證,認證後可以購買蘋果指定的解密晶片,方可使用藍芽傳輸資料。MFI認證約9.9萬美元/款產品,認證週期約半年。
  • 藍芽2.1+MFI認證晶片,可以支援蘋果iPhone4、iPhone4S、iPhone5等具有藍芽2.1以上功能的蘋果IOS裝置

    藍芽V2.1+EDR:

相比於2.0版本速度要更快,2.1+EDR 版本的理論傳輸速率能達到2.1Mbps。並且加入了“Sniff Subrating”技術。這個技術是透過設定在2個裝置之間互相確認訊號的傳送間隔來節省功耗。對於需要持續傳輸資料流的硬體裝置而言,比如鍵盤、滑鼠等,該技術可以將電池續航能力延長最多5倍。

藍芽3.0標準:

  • 2009年4月21日,藍芽技術聯盟(Bluetooth SIG)正式頒佈了新一代標準規範"Bluetooth Core Specification Version 3.0 High Speed"(藍芽核心規範3.0版 )
  • 藍芽3.0的核心是"Generic Alternate MAC/PHY"(AMP),這是一種全新的交替射頻技術,允許藍芽協議棧針對任一任務動態地選擇正確射頻。
  • 藍芽3.0的資料傳輸率提高到了大約24Mbps(即可在需要的時候呼叫802.11 WI-FI用於實現高速資料傳輸)。
  • 在傳輸速度上,藍芽3.0是藍芽2.0的八倍,可以輕鬆用於錄影機至高清電視、PC至PMP、UMPC至印表機之間的資料傳輸,但是需要雙方都達到此標準才能實現功能。
    優點
  • 在應用方面相比於V2.1+EDR版本,V3.0的資料傳輸速率理論已達24Mbps,可以用於高清電視、膝上型電腦、平板電腦和印表機之間的資料傳輸,
  • 同時相對於2.1+EDR,3.0又引入了增強電源控制機制,使空閒時功耗明顯降低。

    藍芽4.0標準:

  • 藍芽4.0規範於2010年7月7日正式釋出,新版本的最大意義在於低功耗
  • 同時加強不同OEM廠商之間的裝置相容性,並且降低延遲,理論最高傳輸速度依然為24Mbps(即3MB/s),有效覆蓋範圍擴大到100米(之前的版本為10米)。
  • 該標準晶片被大量的手機、平板所採用,如蘋果The New iPad平板電腦,以及蘋果iPhone 5、魅族MX4、HTC One X等手機上帶有藍芽4.0功能。
優點:
  • 不需做蘋果解密晶片,不需MFI蘋果認證。
缺點:
  • 資料量不能太大、手機必須是藍芽4.0的;(藍芽4.0可以支援蘋果
  • iPhone4S、iPhone5等具有藍芽4.0功能的蘋果IOS裝置)
優點主要體現在:
  • 1、它擁有高出3.0藍芽版本30%以上的續航時間。即是在同等電量下,當藍芽3.0版本的用電量已經到達100%時,傑克的用電僅70%,甚至不到。
  • 2、高出3.0藍芽版本4倍以上的降噪技術。其CVC6.0消噪技術,比3.0版本的CVC4.0消噪技術更上一層樓,更深度的降噪,讓你的每一次通話、每一首歌曲都可以近在咫尺。
  • 3、4.0以上版本的真智慧—80HZCPU,高出3.0藍芽版本5倍以上的無線傳輸速率。更為快捷的傳輸速度,讓你無論聽歌、通話,或者是遊戲都可以擁有更加順暢的體驗。
  • 目前4.0的藍芽最好,傳輸率最大,距離也較遠,待機時間最長,節約電池。
相容性:

藍芽4.0有幾種模式,如果是藍芽4.0低功耗模式單模的裝置(常稱為BLE模式),是不向下相容的。

現在主流 4.0BLE藍芽

BLE(4.x)低功耗藍芽

    1. 低功耗藍芽比傳統藍芽,傳輸速度更快,覆蓋範圍更廣,安全性更高,延遲更短,耗電極低等等優點
    1. 傳統的一般通過socket方式,而低功耗藍芽是通過Gatt協議來實現。
  • ps: 若是之前沒做過傳統藍芽開發,也是可以直接上手低功耗藍芽開發的。因為它們在通訊協議上都有所改變,關聯不大。當然有興趣的可以去下載些傳統藍芽開發的demo看看

  現在我們所處在一個藍芽4.x的時代。在此之前如我們經常使用的藍芽耳機就已經跨越了好多的版本 藍芽耳機有v1.1 v1.2 v2.0 v2.1...等諸多版本,究竟有什麼樣的優勢呢?當然是版本越高訊號越好,2.0以上支援藍芽立體聲。

那麼我們現在所處的4.x的裝置大多是屬於主從模式的。

什麼是主從模式

一個主裝置比如手機,一個從裝置(這裡也成為子裝置或從機)主動搜尋從機 可以傳送 也可以接收, 從機也可以傳送和接收 但只能被搜尋
主動搜尋從機 可以傳送 也可以接收 從機也可以傳送和接收 但只能被搜尋。

常見的藍芽模組BLE工作模式

對於BLE單裝置來講常見的藍芽模組的工作模有四種:

  • 主裝置模式
  • 從裝置模式
  • 廣播模式
  • Mesh組網模式
    那麼這四個模式分別是什麼樣的情況呢,那麼我們繼續開車

1. 主裝置模式

  USR-BLE100支援主裝置模式,可以與一個從裝置進行連線。在此模式下可以對周圍裝置進行搜尋並選擇需要連線的從裝置進行連線。同時可以設定預設連線從裝置的MAC地址,這樣模組上電之後就可以查詢此模組並進行連線。並且支援白名單功能,使用者只需要把需要連線的裝置的MAC寫入白名單中,模組搜尋到符合白名單的裝置時進行連線。

  使用者不需要關注串列埠資料與無線資料包之間的資料轉換過程,只需通過簡單的引數設定,即可實現主裝置串列埠與從裝置串列埠之間的資料透明通訊。

  主機連線從裝置可以分為3種方式:

第一種採用搜尋的方式,使用前需要設定如下引數:

  • (1)設定工作模式為主裝置模式 AT+MODE=M
  • (2)開啟搜尋模式 AT+SCAN
  • (3)如果搜尋到從裝置,如果序號是1,可以使用快速連線命令進行連線。 AT+CONN=1
  • (4)完成設定後,等待指示燈常亮即可代表連線成功,此時兩個串列埠可以進行資料的透明傳輸。

    第二種方式

      如果你知道要連線的從裝置的MAC地址也可以採用下面的方式進行連線:

  • (1)使用 MAC 繫結AT指令設定模組上電預設連線從裝置MAC地址 AT+CONNADD=FFFFFFFFFF11

  • (2)設定完成之後使用重啟指令重啟模組,模組重啟之後連線設定的從裝置的地址。
    AT+Z

    2. 從裝置模式

      BLE支援從裝置模式,在此模式下完全符合BLE4.1協議,使用者可以根據協議自己開發APP。此模式下包含一個串列埠收發的Service,使用者可以通過UUID找到它,裡面有兩個通道,分別是讀和寫。使用者可以操作這兩個通道進行資料的傳輸。

      如果使用者使用USR-BLE100的主裝置與該從裝置相連線,那麼就無需關注裡面的協議,兩個裝置的串列埠直接就可以進行資料的透明傳輸,為使用者建立一個簡單的無線傳輸通道。

       在此模式下,使用者需要將模組的工作模式設定為從裝置模式。使用者如果自己開發APP需要我們模組的UUID進行連線,UUID為:0x31,0x01,0x9b,0x5f,0x80,0x00,0x00,0x80,0x00,0x10,0x00,0x00,0xd0,0xcd,0x03,0x00我們提供連線的示例程式。

    • (1)設定模組工作模式為從裝置,指令為 AT+MODE=S
    • (2)使用者可以通過下面指令查詢模組的連線情況 AT+LINK
    • (3)使用者也可以使用下面指令將現在連線斷開 AT+DISCONN
    • (4)使用者如果不想模組被發現和連線,可以使用下面指令關閉廣播資料 AT+ADP=OFF

      3. 廣播模式

        比如說USR-BLE100支援廣播模式,在這種模式下模組可以一對多進行廣播。使用者可以通過AT指令設定模組廣播的資料,模組可以在低功耗的模式下持續的進行廣播,應用於極低功耗,小資料量,單向傳輸的應用場合,比如無線抄表,室內定位等功能。

  常見的藍芽模組的工作模式
在此模式下,使用者可以設定模組進行小資料量廣播,使用者需要在APP開發時呼叫BLE標準的介面進行獲取,資料需要使用AT指令進行設定

  • (1) 首先將模組模式設定到廣播模式 AT+MODE=B
  • (2)使用AT指令設定模組要傳送的資料,資料位16進位制長度不超過30位元組,廣播格式請參考BLE 協議。 AT+ADVDATA=0201041Aff4c000215B9407F30F5F8466EAFF925556B57FE6D0001000251
  • (3)通過藍芽監聽軟體可以獲取到監聽的資料包,如下
    監聽資料包
    監聽資料包

4. Mesh組網模式

  USR-BLE100支援Mesh組網模式,在這種模式下模組可以實現簡單的自組網路,每個模組只需要設定相同的通訊密碼就可以加入到同一網路當中,每一個模組都可以發起資料,每個模組可以收到資料並且進行回覆。並且不需要閘道器,即使某一個裝置出現故障也會跳過並選擇最近的裝置進行傳輸。

   USR-BLE100支援Mesh組網模式,可以簡單的將多個模組加入到網路中來,利用星型網路和中繼技術,每個網路可以連線超過65000個節點,網路和網路還可以互連,最終可將無數藍芽模組通過手機、平板電腦或PC進行互聯或直接操控。並且不需要閘道器,即使某一個裝置出現故障也會跳過並選擇最近的裝置進行傳輸。整個聯網過程只需要裝置上電並設定通訊密碼就可以自動組網,真正實現簡單互聯。

  • (1)首先我們需要將模組模式切換到Mesh組網模式
    AT+MODE=F
  • (2)設定通訊密碼,模組間聯網靠密碼進行區分 AT+PASS=123456
  • (3)重啟模組,模組進入組網模式 AT+Z
  • (4)此時我們將多個模組按照這種方式進行設定,當一個模組串列埠傳送資料時,周圍靠近的模組就會收到, 然後將其輸出到串列埠,並且將資料再傳送給周圍未收到資料的模組,依次類推。
  • (5)當收到資料的裝置需要回復時直接串列埠傳送,最終第一次傳送的模組會收到回覆,完成網路內部通訊。

Android BLE藍芽通訊學習 《本篇是深入瞭解Android藍芽:Bluetooth》 基礎篇,最近一直和醫療打交道,做些藍芽有關的app,所以查些資料研究總結了一下,把應用的東西總結一下。接下來請期待-------深入瞭解Android藍芽:Bluetooth《進級篇》

如果你覺得此文對您有所幫助,歡迎入群 QQ交流群 :232203809
微信公眾號:終端研發部

專攻技術
專攻技術

(歡迎關注學習和交流)

相關文章