深入了解Android藍牙Bluetooth——《基礎篇》


什么是藍牙?

  也可以說是藍牙技術。所謂藍牙(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)通過藍牙監聽軟件可以獲取到監聽的數據包,如下

  •  Markdown

    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 微信公眾號:終端研發部

Markdown

(歡迎關注學習和交流)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM