ibeacon 和 藍牙4.0BLE有什麼區別?

ibeacon 和 藍牙4.0BLE有什麼區別? 硬體一樣嗎?


BLE是藍牙4.0裡面的低功耗規範,藍牙版本每一次的升級都是對原來版本的擴充和兼容,包括BR EDR AMP LE(BLE就是BT4.x裡面的LE部分,我們習慣稱為BLE),現在的5.0主要擴充了4.x裡面的LE,多了些通訊的方式,同時把一些原來沒有使用的RFU(RESERVED FOR FUTURE USE)Field用上了。

iBeacon使用標準的BLE廣播協議,如下為LL包的數據格式,PDU是他的數據單元

圖1

PDU內部如下,帶一個頭部和真正的載荷。

圖2

頭部的內容如下,其中第一個Field是指該PDU的類型。

圖3

iBeacon因為應用場景是廣播,並不需要交互,一般會設為ADV_NONCONN_IND模式(並不是絕對),就是發送不可連接的廣播包。

圖4

有了上邊對LL包PDU類型的指定後,iBeacon就是對PDU裡面的Payload的定義了,這個是關鍵。

Payload的格式根據每個不同的PDU Type略有不同,具體可以看 Bluetooth Core Specification:4.2 Vol. 6, Part B, section 2.3 。

iBeacon就利用規範裡面的 Manufacturer Specific Data (這個本來就是分配給廠商使用的一個Field)來構造自己。Manufacturer Specific Data的格式定義如下圖(見Core Specification Supplement, Part A, section 1.4)

現在來看一段實際抓包的iBeacon數據(只取了 AdvData fields 部分,即實際的廣播數據),如下一坨

02 01 06 1A FF 4C 00 02 15 E2 0A 39 F4 73 F5 4B C4 A1 2F 17 D1 AD 07 A9 61 00 00 00 00 C8

分析一下,0到2位元組是BLE的一般標誌,具體含義見Core Specification Supplement, Part A, section 1.3

Byte 0-2: Standard BLE Flags

Byte 0: Length : 0x02
Byte 1: Type: 0x01 (Flags)
Byte 2: Value: 0x06 (Typical Flags)

3到29位元組就是水果家做的iBeacon數據了,利用Manufacturer Specific Data欄位。

Byte 3-29: Apple Defined iBeacon Data

Byte 3: Length: 0x1a //這裡表示該Field的長度,26位元組
Byte 4: Type: 0xff (Custom Manufacturer Packet) //這裡表示後邊就是
Manufacturer Specific Data 類型的數據
Byte 5-6: Manufacturer ID : 0x4c00 (Apple)//這是蘋果家的ID號,其他家的見
https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers
Byte 7: SubType: 0x2 (iBeacon) //水果家自定義的SubType
Byte 8: SubType Length: 0x15 //SubType的數據長度
Byte 9-24: Proximity UUID
Byte 25-26: Major
Byte 27-28: Minor
Byte 29: Signal Power

按照上述標準構造數據(1. 先定義LL PACKET廣播數據包的類型,2. 按照格式填充PDU裡面的Manufacturer Specific Data,公司ID和SubType=0x2是固定的哦),就會被水果機認為是自家的iBeacon了。其實還是基於BLE的ADV(廣播)包規範的,並不是非標的數據包哦。 :)

參考:

1. Generic Access Profile

2. Company Identifiers

3. Adopted Specifications

4. iBeacon - Wikipedia


首先得區分3個概念

  1. beacon
  2. ble
  3. ibeacon

beacon是用於室內定位基於 BLE協議的在 在 廣播搜索稍作變化 變更了數據類型 實現的一個 應用場景。

廣播搜索協議 位於標準的 藍牙協議的GAP層,設備通過這個層的協議進行交互溝通數據。

所以可以理解為 beacon是非標準BLE的一個應用場景,因為他不符合 GAP規範(《Supplement to the Bluetooth Core Specification V6》 Part A 14 July 2015) 採用了未定義的數據類型。

主要應用場景舉例:

- 商場路徑引導

- 特定位置提醒(參觀動物園時 大熊貓館到了

- 直接推送到你手機提醒) 廣告推送

- PayPal 支付 (類NFC應用)

然後是 ibeacn 它是apple提出的,對beacon的變種。

同類型的變種有

1. apple ibeacon

2. Radius Networks : AltBeacon

3. google : Eddystone

現在從硬體角度來將:

是不是只要支持BLE的硬體就支持 ibeacon呢?

不是的, 需要在GAP層做變動, 有些晶元封裝好了,上文提到的稍作變化 變更了數據類型是無法實現的。 所以,應該說所有ble晶元都能輕鬆支持ibeacon, 但並不是都支持。不需要動晶元本身的硬體,但需要動晶元的固件(開發者可能沒法動)

以上有誤 參考 方言 答案

參考資料

    iBeacon wikipediaBeacon Technology Using Bluetooth Smart for Interacting with Consumers

  1. 《The Bluetooth Beacon Primer》 Martin Woolley
  2. Getting Started with iBeacon

  3. 《Supplement to the Bluetooth Core Specification V6》 Part A 14 July 2015


iBeacon是蘋果公司13年發布的移動設備用iOS(iOS7)上配備的新功能,其工作方式是,配備有低功耗藍牙(BLE)通信功能的設備使用BLE技術向周圍發送自己特有的ID,接收到該ID的應用軟體會根據該ID採取一些行動。

而Beacon正是基於此技術發射信號的小設備,其功能是建立在低功耗藍牙協議基礎上的。Beacon設備一般體積較小,但是在實際應用中其功能是很強大的,通常是放在室內的某個固定位置,周期性向外廣播發送信號,接收端接收到信號後會回傳給後台伺服器並對上報的數據進行處理。

像SKYLAB的beacon和藍牙4.0BLE硬體都是一樣的,不需要動晶元本身的硬體,但需要動晶元的固件。


推薦閱讀:

基於Bluetooth beacon的技術,藍牙4.0是否可以實現室內定位?精準度能達到多少?需要對定位環境布署外設嗎?

TAG:Bluetooth40 | beacon |