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

什麼是藍牙?

  也能夠說是藍牙技術。所謂藍牙(Bluetooth)技術,其實是一種短距離無線電技術,是由愛立信公司公司發明的。利用「藍牙」技術,可以有效地簡化掌上電腦、筆記本電腦和移動電話手機等移動通訊終端設備之間的通訊,也可以成功地簡化以上這些設備與因特網Internet之間的通訊,從而使這些現代通訊設備與因特網之間的數據傳輸變得更加迅速高效,爲無線通訊拓寬道路。android

藍牙版本的介紹

  藍牙發展至今經歷了8個版本的更新。1.一、1.二、2.0、2.一、3.0、4.0、4.一、4.二、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認證芯片,能夠支持蘋果iPhone四、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 五、魅族MX四、HTC One X等手機上帶有藍牙4.0功能。
優勢:
  • 不需作蘋果解密芯片,不需MFI蘋果認證。
缺點:
  • 數據量不能太大、手機必須是藍牙4.0的;(藍牙4.0能夠支持蘋果
  • iPhone4S、iPhone5等具備藍牙4.0功能的蘋果IOS設備)
優勢主要體如今:
  • 一、它擁有高出3.0藍牙版本30%以上的續航時間。便是在同等電量下,當藍牙3.0版本的用電量已經到達100%時,傑克的用電僅70%,甚至不到。
  • 二、高出3.0藍牙版本4倍以上的降噪技術。其CVC6.0消噪技術,比3.0版本的CVC4.0消噪技術更上一層樓,更深度的降噪,讓你的每一次通話、每一首歌曲均可以近在咫尺。
  • 三、4.0以上版本的真智能—80HZCPU,高出3.0藍牙版本5倍以上的無線傳輸速率。更爲快捷的傳輸速度,讓你不管聽歌、通話,或者是遊戲均可以擁有更加順暢的體驗。
  • 目前4.0的藍牙最好,傳輸率最大,距離也較遠,待機時間最長,節約電池。
兼容性:

藍牙4.0有幾種模式,若是是藍牙4.0低功耗模式單模的設備(常稱爲BLE模式),是不向下兼容的。app

如今主流 4.0BLE藍牙

BLE(4.x)低功耗藍牙

    1. 低功耗藍牙比傳統藍牙,傳輸速度更快,覆蓋範圍更廣,安全性更高,延遲更短,耗電極低等等優勢
    1. 傳統的通常經過socket方式,而低功耗藍牙是經過Gatt協議來實現。
  • ps: 如果以前沒作過傳統藍牙開發,也是能夠直接上手低功耗藍牙開發的。由於它們在通訊協議上都有所改變,關聯不大。固然有興趣的能夠去下載些傳統藍牙開發的demo看看

  如今咱們所處在一個藍牙4.x的時代。在此以前如咱們常用的藍牙耳機就已經跨越了好多的版本 藍牙耳機有v1.1 v1.2 v2.0 v2.1...等諸多版本,究竟有什麼樣的優點呢?固然是版本越高信號越好,2.0以上支持藍牙立體聲。socket

那麼咱們如今所處的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

(歡迎關注學習和交流)

相關文章
相關標籤/搜索