A. 藍牙4.0 如何實現低功耗
藍牙4.0,低功耗的秘密
它和經典藍牙技術相比,主要的改變集中體現在待機功耗的減少、高速連接的實現和峰值功率的降低三個方面。
待機功耗的下降
傳統藍牙設備的待機耗電量大一直是為人所詬病的缺陷之一,這與傳統藍牙技術動輒採用16~32個頻道進行廣播不無關系,而低功耗藍牙僅使用了3個廣播通道,且每次廣播時射頻的開啟時間也由傳統的22.5ms減少到0.6~1.2ms,這兩個協議規范上的改變顯然大大降低了因為廣播數據導致的待機功耗;此外低功耗藍牙設計了用深度睡眠狀態來替換傳統藍牙的空閑狀態,在深度睡眠狀態下,主機長時間處於超低的負載循環(DutyCycle)狀態,只在需要運作時由控制器來啟動,因主機較控制器消耗更多的能源,因此這樣的設計也節省了最多的能源;在深度睡眠狀態下,協議也針對此通訊模式進行了優化,數據發送間隔時間也增加到0.5~4s,感測器類應用程序發送的數據量較平常要少很多,而且所有連接均採用先進的嗅探性次額定(Sn i f f-Subrating)功能模式,因此此時的射頻能耗幾乎可以忽略不計,綜合以上因素,低功耗藍牙的待機功耗較傳統藍牙大大減少。
高速連接的實現
要明白這一過程,我們必須先介紹一下藍牙設備和主機設備的連接步驟。
第一步:通過掃描,試圖發現新設備
第二步:確認發現的設備沒有而已軟體,也沒有處於鎖定狀況
第三步:發送IP地址
第四步:收到並解讀待配對設備發送過來的數據
第五步:建立並保存連接
按照傳統的藍牙協議的規范,若某一藍牙設備正在進行廣播,則它不會響應當前正在進行的設備掃描,而低功耗藍牙協議規范允許正在進行廣播的設備連接到正在掃描的設備上,這就有效避免了重復掃描,而通過對連接機制的改善,低功耗藍牙下的設備連接建立過程已可控制在3ms內完成,同時能以應用程序迅速啟動鏈接器,並以數毫秒的傳輸速度完成經認可的數據傳遞後並立即關閉連結,而傳統藍牙協議下即使只是建立鏈路層連接都需要花費100ms,建立L2CAP(邏輯鏈路控制與適應協議)層的連接建立時間則更長。
藍牙低功耗協議還對拓撲結構進行了優化,通過在每個從設備及每個數據包上使用32位的存取地址,能夠讓數十億個設備能被同時連接。此技術不但將傳統藍牙一對一的連結優化,同時也利用星狀拓撲來完成一對多點的連結。在連接和斷線切換迅速的應用場景下,數據能夠在網狀拓撲之間移動,但不至於為了維持此網路而顯得過於復雜,這也有效減輕了連接復雜性,減少了連接建立時間。
降低峰值功率
低功耗藍牙對數據包長度進行了更加嚴格的定義,支持超短(8~27Byte)數據封包,並使用了隨機射頻參數和增加了GSFK調制索引,這些措施最大限度地減少了數據收發的復雜性;此外低功耗藍牙還通過增加調變指數,並採用24位的CRC(循環冗餘檢查)確保封包在受干擾時具有更大的穩定度,低功耗藍牙的射程增加至100m以上,以上措施結合藍牙傳統的跳頻原理,有效降低了峰值功率。
B. 關於經典藍牙和低功耗藍牙的區別
藍牙可分為經典藍牙模塊(v1.1/1.2/2.0/2.1/3.0),低功耗藍牙模塊(v4.0/4.1/4.2),以及藍牙雙模模塊(支持藍牙所有版本,兼容低功耗藍牙及經典藍牙)。經典藍牙支持音頻(HFP/HSP, A2DP)和數據(SPP, HID, OPP, PBAP等)兩大類協議,在音箱,耳機,汽車電子及傳統數傳行業,由於蘋果對經典藍牙數據傳輸介面有限制(需要過MFI認證),加上功耗偏大,因此在目前移動互聯應用中慢慢地被淘汰。因此低功耗藍牙4.0順勢而出,由於可支持蘋果4S以上及安卓4.3系統以上的數據傳輸,且功耗極低,目前正在被越來越多的移動互聯設備所採用,但不支持音頻協議及受數據傳輸速度限制,其應用也被限制在小數據傳輸行業。而藍牙雙模則是綜合了兩者的優缺點,既可以支持音頻傳輸,同樣可支持數據傳輸,並且兼容性也是兩者之和(安卓可不受系統限制,同樣支持蘋果4S以後的數據傳輸),在對功耗要求不苛刻的情況下,是比較理想的選擇。
C. 藍牙存儲的位置在哪裡
一般在「文件管理--本地--內部存儲--bluetooth「文件夾中。
藍牙下載或傳輸數據,需要進行以下幾個必要的步驟:
一、兩個設備是否都具有藍牙功能(如果是電腦還需要正確安裝藍牙驅動,還得在「設備與列印機」中正確添加藍牙設備);
二、設備是否打開藍牙功能(不打開的話設備不能被找到),筆記本藍牙開關用組合鍵(一般是Fn+F5),手機一般在「設置--無線和網路」中找;
三、要成功連接兩個設備(一般要用到PIN碼和配對碼。PIN碼一般是「0000」、「1111」或「1234」,配對碼是當下設置並使用的,兩個設備要求配對必須一致);
四、傳送距離一般不得超過10米,否則傳送會中斷;
五、傳送成功會有成功提示,只需在接收方找到文件即可打開;
六、選中要傳輸的文件,在菜單中選「分享」,再選擇「藍牙」,然後按提示操作,如操作正確會有傳輸成功完成的提示
D. 請問哪裡有TI低功耗藍牙Bluetooth 4.0 CC2540 BLE中文數據資料手冊
集成電路查詢網有。。。裡面有七千萬的數據手冊。。。
E. 低功耗藍牙 notify數據怎麼處理
搜索不到藍牙的一般原因及處理方法:一,一般都會認為打開藍牙之後,手機就能搜索到藍牙,並且成功與之連接,其實這是錯誤的。若要手機搜索到藍牙,藍牙就必須進入一個特殊的狀態:配對狀態。二,具體操作步驟 :1、確認藍牙處於關機狀態 :長按多功能鍵2-3秒,藍牙指 示紅燈快速閃爍3次左右,即關閉藍牙。2、藍牙進入配對狀態:長按多功能鍵7-8秒,藍牙進入配對狀態,表現為指示燈紅藍兩種顏色交替 快速閃爍或者是指示燈常亮。三,藍牙成功進入配對狀態 後,接下來進入手機的操作:1、打開手機 的藍牙功能,搜索藍牙 的型號。2、手機與藍牙連接,如果提示輸入pin碼,一般為0000或1234。3、配對成功。這時就可以用藍牙接聽、打電話了,如果藍牙支持A2DP協議,還可以用來聽音樂。
F. 低功耗藍牙的數據連接間隔是什麼意思
藍牙低能耗(BLE)技術是低成本、短距離、可互操作的魯棒性無線技術,工作在免許可的2.4GHz ISM射頻頻段。它從一開始就設計為超低功耗(ULP)無線技術。它利用許多智能手段最大限度地降低功耗。藍牙低能耗技術採用可變連接時間間隔,這個間隔根據具體應用可以設置為幾毫秒到幾秒不等。另外,因為BLE技術採用非常快速的連接方式,因此平時可以處於「非連接」狀態(節省能源),此時鏈路兩端相互間只是知曉對方,只有在必要時才開啟鏈路,然後在盡可能短的時間內關閉鏈路。
G. 經典藍牙和低功耗藍牙區別
Android中的藍牙
說到Android中的藍牙,大家聽到的可能有藍牙1.0、藍牙2.0、藍牙3.0、藍牙4.0之類的以數字結尾的藍牙版本號,而實際上,在最新的標准中,已經不再使用數字版本號作為藍牙版本的區分了,取而代之的是經典藍牙與低功耗藍牙(BLE)這兩種區別。
這里提到的低功耗藍牙也會有很多人會誤解為就是藍牙4.0,但是完整的藍牙4.0規范中實際上包括有經典藍牙和低功耗藍牙這兩個部分,大家看看如下這張分類表就能夠明白這其中的關系了。
然而實驗發現 BluetoothAdapter.startDiscovery是可以同時發現經典藍牙和ble的
低功耗藍牙:低功耗藍牙中則有一個主設備(Central)和從設備(Peripheral,也叫外圍設備)的概念。主設備作為發現方,調用發現設備的方法,通過BluetoothAdapter的startLeScan()方法實現。從設備則作為被發現方,發出廣播,以供發現。同樣,這個startLeScan()方法也僅能夠發現低功耗藍牙從設備。
總結:BluetoothAdapter.startDiscovery在大多數手機上是可以同時發現經典藍牙和Ble的,但是startDiscovery的回調無法返回Ble的廣播,所以無法通過廣播識別設備,且startDiscovery掃描Ble的效率比StartLeScan低很多。所以在實際應用中,還是StartDiscovery和StartLeScan分開掃,前者掃傳統藍牙,後者掃低功耗藍牙。
注意:當兩種藍牙設備被某設備(包括當前的設備)配對/綁定後,可能不會再被掃描到。
2. 配對/綁定
有很多小夥伴都不太理解配對和綁定究竟有什麼區別,或者它們根本就是同一個東西。好吧,嚴格說配對和綁定是有區別的,也就是不是指的同一件事情。但是這兩者的區別比較模糊,也不好解釋。目前JACK的機器人的理解是,配對是建立兩者的對應關系,而綁定則把這層關系保存固定下來並進行了強化,暫時這么理解著吧。
不管是經典藍牙還是低功耗藍牙,綁定方法都是通用的,可以調用相同的綁定方法。
3. 建立連接
在建立連接的方式上,兩者就千差萬別了。
——藍牙小知識——
在藍牙設備中,存在著物理地址,我們也叫作藍牙的MAC地址,這個地址是唯一的,就像咱們網路上的IP地址。同時還存在著一個叫做UUID的東西,可以把它理解為是IP地址中的埠號。正如知道了IP地址和埠號,就知道了怎麼鏈接到目標網路伺服器位置,知道了藍牙設備的MAC地址和UUID也就能夠確定到具體是哪一台藍牙設備了,這兩者合起來就是藍牙的唯一身份標識。
經典藍牙:經典藍牙建立連接的方式實際上就是Socket的連接的建立。只不過這里不是直接用Socket,而是BluetoothSocket。獲取BluetoothSocket的方式也很簡單,利用搜索找到的BluetoothDevice,調用其方法(UUID)。最後,使用獲取到的BluetoothDevice調用其方法connect()就建立了經典藍牙設備之間的連接通道。
低功耗藍牙:低功耗藍牙則用了一種看起來比較怪異的方式建立連接。
——關於BLE的一些基本概念——
Generic Attribute Profile (GATT)
通過BLE連接,讀寫屬性類小數據的Profile通用規范。現在所有的BLE應用Profile都是基於GATT的。
Attribute Protocol (ATT)
GATT是基於ATT Protocol的。ATT針對BLE設備做了專門的優化,具體就是在傳輸過程中使用盡量少的數據。每個屬性都有一個唯一的UUID,屬性將以characteristics and services的形式傳輸。
Characteristic
Characteristic可以理解為一個數據類型,它包括一個value和0至多個對次value的描述(Descriptor)。
Descriptor
對Characteristic的描述,例如范圍、計量單位等。
Service
Characteristic的集合。例如一個service叫做「Heart Rate Monitor」,它可能包含多個Characteristics,其中可能包含一個叫做「heart rate measurement」的Characteristic。
這里舉個例子,例如現在需要使用一個智能手機作為主設備去連接一個作為從設備的智能手環,那麼,此時這個作為主設備的智能手機連接過程中實際是一個客戶端(Client),而作為從設備的智能手環在此過程中則是服務端(Server)。這里的主設備和從設備,客戶端和服務端一定要區分清楚。
想要和一台BLE從設備建立連接,一般是某個智能設備,例如智能手環、智能燈泡之類的。如果使用智能手機作為測試平台,其硬體條件是,藍牙得至少是低功耗藍牙版本,然後安卓系統的話,至少得是Android 4.3以上系統才行,因為Google在Android 4.3以上才做了BLE主設備的支持,如果想將智能手機作為BLE從設備,則必須在Android 5.0以上才行。
具體建立GATT連接的順序則是,首先通過BluetoothAdapter的getRemoteDevice(address)方法獲取大相應BLE從設備的BluetoothDevice,其中的address為目標藍牙設備MAC地址。然後通過此BluetoothDevice的connectGatt(this, false, mGattCallback)方法獲取設備連接。
此時的連接,只能夠進行監聽,也就是獲取到當前BLE從設備廣播出來的數據。
4. 數據通信
經典藍牙:當建立連接後,就可以直接使用BluetoothSocket的getOutputStream()方法獲取輸出流寫入需要發送的數據。讀取發送回來的數據,則是調用BluetoothSocket的getInputStream()方法獲取輸入流讀取。這點和Java中的Socket通信幾乎是一模一樣。
低功耗藍牙:想要實現主設備對從設備的數據發送,則需要直接讀取獲取到的從設備的Characteristic,而Characteristic又是Service下面的一層,所以操作順序是:
(1)通過BLE從設備相應的Service_UUID獲取對應的BluetoothGattService,獲取方法是:使用BluetoothDevice的connectGatt(this, false, mGattCallback)方法返回的BluetoothGatt對象,調用BluetoothGatt的方法getService(Service_UUID)獲取相應的BluetoothGattService;
(2)調用BluetoothGattService和對應的Characteristic的寫入UUID獲取相應的BluetoothGattCharacteristic,獲取方法是:調用BluetoothGattService的getCharacteristic(Characteristic_UUID)方法獲得;
(3)設置需要發送的命令值,調用BluetoothGattCharacteristic的方法setValue(value)進行設置,其中value一般為byte[];
(4)最後,使用BluetoothGatt的寫入方法writeCharacteristic(TxChar)完成命令發送。
可以看到,想要實現BLE的數據通信,步驟相當繁瑣,這里只是做一個簡單的概念理解,如果想要獲取到BLE從設備的返回值,還需要設置Notification,然後調用BluetoothGatt的readCharacteristic(characteristic)方法進行數據的讀取,這里不做詳細說明了,放在以後詳細說明BLE通信的時候再做解釋。
藍牙的選用
既然有經典藍牙和低功耗藍牙之分,我們在設計物聯網產品和智能硬體產品的時候,如何選擇呢?
經典藍牙:藍牙最初的設計意圖,是打電話放音樂。3.0版本以下的藍牙,都稱為「經典藍牙」。功耗高、傳輸數據量大、傳輸距離只有10米。
低功耗藍牙:就是BLE,通常說的藍牙4.0(及以上版本)。低功耗,數據量小,距離50米左右。
傳聲音的,用經典藍牙:
如藍牙耳機、藍牙音箱。藍牙設計的時候就是為了傳聲音的,所以是近距離的音頻傳輸的不二選擇。
電池供電、連手機APP的,用BLE:
如共享單車鎖、藍牙智能鎖、藍牙防丟器、藍牙室內定位,是目前手機和智能硬體通信的性價比最高的手段。直線距離約50米,一節5號電池能用一年,傳輸模組成本10塊錢,遠比WIFI、4G等大數據量的通信協議更實用。
又要聲音又要數據的,用雙模藍牙: 雙模藍牙,就是同時支持經典藍牙音頻和低功耗藍牙。
如智能電視遙控器、降噪耳機等。很多智能電視配的遙控器帶有語音識別,需要用經典藍牙才能傳輸聲音
傳大數據量的,用經典藍牙: 如某些工控場景,使用Android或Linux主控,外掛藍牙遙控設備的,可以使用經典藍牙里的SPP協議,當作一個無線串口使用。速度比BLE傳輸快多了。
遠距離的,不用藍牙。 固定供電的、不考慮功耗的、要傳超過幾十米距離的、要傳高速數據的,這些都不適合藍牙。遠距離的可以用2G、4G、NB-IOT,大數據量的可以用WIFI。
H. BLE(低功耗藍牙)的MTU是什麼,最大多少位元組
MTU是最大傳輸單元,低功耗藍牙實際傳輸的有效數據為MTU-3。藍牙4.0支持最大的MTU為23個byte, 藍牙4.2或以上支持最大MTU為255個byte。低功耗藍牙模塊還有其他問題可來雲里物里。
I. 低功耗藍牙適合以下哪些應用場景
一般來說需要低功耗的產品都是自帶電池,數據傳輸量小的產品.實際應用時可以根據需要來選擇合適的藍牙模塊.