ibeacon是什么
iBeacon是蘋果公司2013年9月發(fā)布的移動設備用OS(iOS7)上配備的新功能。其工作方式是,配備有 低功耗藍牙(BLE)通信功能的設備使用BLE技術(shù)向周圍發(fā)送自己特有的ID,接收到該ID的應用軟件會根據(jù)該ID采取一些行動。比如,在店鋪里設置iBeacon通信模塊的話,便可讓iPhone和iPad上運行一資訊告知服務器,或者由服務器向顧客發(fā)送折扣券及進店積分。此外,還可以在家電發(fā)生故障或停止工作時使用iBeacon向應用軟件發(fā)送資訊。
蘋果 WWDC 14 之后,對 iBeacon 加大了技術(shù)支持和對其用于室內(nèi)地圖的應用有個更明確的規(guī)劃。蘋果公司公布了 iBeacon for Developers 和 Maps for Developers 等專題頁面。
iBeacon技術(shù)作為利用低功耗藍牙技術(shù)研發(fā)者,有不少團隊對其進行研究利用。
BLE設備如何通信
BLE的通信包括兩個主要部分:advertising(廣告)和connecting(連接)。
廣告(Advertising)是一種單向的發(fā)送機制。想要被搜索到的設備可以以20毫秒到10秒鐘的時間間隔發(fā)送一段數(shù)據(jù)包。使用的時間間隔越短,電池消耗的越快,但設備被發(fā)現(xiàn)的速度也就會快。數(shù)據(jù)包長度最多47個字節(jié),由以下部分組成:
1 byte preamble(1字節(jié)做報頭)
4 byte access address(4字節(jié)做地址)
39 bytes advertising channel PDU(39個字節(jié)用于PDU數(shù)據(jù)包)
3 bytes CRC(3個字節(jié)用于CRC數(shù)據(jù)校驗)
對于廣告通信信道,地址部分永遠都是0x8E89BED6。對于其它數(shù)據(jù)信道,地址部分由不同的連接決定。
返回的PDU數(shù)據(jù)也擁有自己的數(shù)據(jù)報頭(2個字節(jié):聲明有效載荷數(shù)據(jù)的長度和類型——設備是否支持連接等等)和當前有效載荷數(shù)據(jù)(最多37個字節(jié))。
最終,有效載荷數(shù)據(jù)中的頭6個字節(jié)是設備的MAC地址,所以實際信息數(shù)據(jù)最高可占31個字節(jié)。
BLE設備可以運行在單一的不可連接的廣告模式中(在這種模式下所有的信息都包含在廣告數(shù)據(jù)包中),然而設備也是允許運行在可被連接的模式下(通常情況下都是這種模式)。
當設備被發(fā)現(xiàn)之后,一個連接就會被建立起來。之后就可以讀取BLE設備提供的Service,以及每個Service的characteristic(屬性,類似于GATT Profile實例)。每一個characteristic都會提供一些值,這些值可以被讀取或者修改。例如,一個小型溫控器可以開放一個service用于獲取當前的溫度或者濕度讀數(shù)(相當于是service的characteristic),同時也可以開放其它的service和characteristic用于設置期望的溫度。這里因為beacon不使用連接模式,我將會跳過這些細節(jié)。如果你想要了解更多關(guān)于連接BLE設備的內(nèi)容,可以參考Apple‘s Core Bluetooth guide,盡管你可能不是一個IOS開發(fā)者。更多相關(guān)技術(shù)性的文章,可以參考Introduction to BLE,Making the most out of BLE Advertising mode。
評論
查看更多