BLE簡(jiǎn)介

常見(jiàn)藍(lán)牙名稱的簡(jiǎn)寫(xiě)

MFI ======= make for ipad ,iphone, itouch 專們?yōu)樘O(píng)果設(shè)備制作的設(shè)備

BLE ==== buletouch low energy趾浅,藍(lán)牙4.0設(shè)備因?yàn)榈秃碾姡砸步凶鯞LE

peripheral,central == 外設(shè)和中心,發(fā)起連接的時(shí)central,被連接的設(shè)備為perilheral

service and characteristic === 服務(wù)和特征 每個(gè)設(shè)備會(huì)提供服務(wù)和特征,類似于服務(wù)端的api冬耿,但是機(jī)構(gòu)不同开镣。每個(gè)外設(shè)會(huì)有很多服務(wù)戴涝,每個(gè)服務(wù)中包含很多字段吩屹,這些字段的權(quán)限一般分為 讀read膘掰,寫(xiě)write章姓,通知notiy幾種,就是我們連接設(shè)備后具體需要操作的內(nèi)容识埋。

Description 每個(gè)characteristic可以對(duì)應(yīng)一個(gè)或多個(gè)Description用戶描述characteristic的信息或?qū)傩?/p>

Profile Profile 并不是實(shí)際存在于 BLE 外設(shè)上的凡伊,它只是一個(gè)被 Bluetooth SIG 或者外設(shè)設(shè)計(jì)者預(yù)先定義的 Service 的集合。所有官方通過(guò) GATT Profile 的列表可以從這里找到窒舟。

Service Service 是把數(shù)據(jù)分成一個(gè)個(gè)的獨(dú)立邏輯項(xiàng)系忙,它包含一個(gè)或者多個(gè) Characteristic。每個(gè) Service 有一個(gè) UUID 唯一標(biāo)識(shí)惠豺。 UUID 有 16 bit 的银还,或者 128 bit 的。16 bit 的 UUID 是官方通過(guò)認(rèn)證的洁墙,需要花錢(qián)購(gòu)買(mǎi)蛹疯,128 bit 是自定義的,這個(gè)就可以自己隨便設(shè)置热监。官方通過(guò)了一些標(biāo)準(zhǔn) Service完整列表在這里捺弦。以 Heart Rate Service為例,可以看到它的官方通過(guò) 16 bit UUID 是 0x180D,包含 3 個(gè) Characteristic:Heart Rate Measurement, Body Sensor Location 和 Heart Rate Control Point羹呵,并只有第一個(gè)是必須的骂际,其它是可選實(shí)現(xiàn)的。

MFI === 開(kāi)發(fā)使用ExternalAccessory 框架

4.0 BLE === 開(kāi)發(fā)使用CoreBluetooth 框架

一個(gè)主設(shè)備最多能連7個(gè)外設(shè)

GAP(Generic Access Profile)冈欢,它在用來(lái)控制設(shè)備連接和廣播歉铝。GAP 使你的設(shè)備被其他設(shè)備可見(jiàn),并決定了你的設(shè)備是否可以或者怎樣與合同設(shè)備進(jìn)行交互凑耻。

GAAT : Generic Attribute Profile , GATT配置文件是一個(gè)通用規(guī)范太示,用于在BLE鏈路上發(fā)送和接收被稱為“屬性”的數(shù)據(jù)塊。目前所有的BLE應(yīng)用都基于GATT香浩。 藍(lán)牙SIG規(guī)定了許多低功耗設(shè)備的配置文件类缤。配置文件是設(shè)備如何在特定的應(yīng)用程序中工作的規(guī)格說(shuō)明。注意一個(gè)設(shè)備可以實(shí)現(xiàn)多個(gè)配置文件邻吭。例如餐弱,一個(gè)設(shè)備可能包括心率監(jiān)測(cè)儀和電量檢測(cè)。GATT Profile 簡(jiǎn)介

Characteristic 一個(gè)characteristic包括一個(gè)單一變量和0-n個(gè)用來(lái)描述characteristic變量的descriptor囱晴,characteristic可以被認(rèn)為是一個(gè)類型膏蚓,類 似于類。

Descriptor Descriptor用來(lái)描述characteristic變量的屬性畸写。例如驮瞧,一個(gè)descriptor可以規(guī)定一個(gè)可讀的描述,或者一個(gè)characteristic變量可接受的范圍枯芬,或者一個(gè)characteristic變量特定的測(cè)量單位论笔。 Service service是characteristic的集合。例如千所,你可能有一個(gè)叫“Heart Rate Monitor(心率監(jiān)測(cè)儀)”的service狂魔,它包括了很多characteristics,如“heart rate measurement(心率測(cè)量)”等淫痰。你可以在bluetooth.org 找到一個(gè)目前支持的基于GATT的配置文件和服務(wù)列表毅臊。


CoreBluetooth框架的核心其實(shí)是兩個(gè)東西,peripheral和central, 可以理解成外設(shè)和中心黑界。上圖為它們對(duì)應(yīng)的API和類。

左側(cè)叫做中心模式皂林,就是以你的app作為中心朗鸠,連接其他的外設(shè)的場(chǎng)景,而右側(cè)稱為外設(shè)模式础倍,使用手機(jī)作為外設(shè)別其他中心設(shè)備操作的場(chǎng)景烛占。我們app所做的都說(shuō)對(duì)應(yīng)中心模式

iOS 藍(lán)牙中心模式流程如下

1. 建立中心角色

2. 掃描外設(shè)(discover)

3. 連接外設(shè)(connect)

4. 掃描外設(shè)中的服務(wù)和特征(discover)

- 4.1 獲取外設(shè)的services

- 4.2 獲取外設(shè)的Characteristics,獲取Characteristics的值,獲取Characteristics的Descriptor和Descriptor的值

5. 與外設(shè)做數(shù)據(jù)交互(explore and interact)

6. 訂閱Characteristic的通知

7. 斷開(kāi)連接(disconnect)

藍(lán)牙外設(shè)模式流程

1. 啟動(dòng)一個(gè)Peripheral管理對(duì)象

2. 本地Peripheral設(shè)置服務(wù),特性,描述,權(quán)限等等

3. Peripheral發(fā)送廣告

4. 設(shè)置處理訂閱忆家、取消訂閱犹菇、讀characteristic、寫(xiě)characteristic的委托方法

中心設(shè)備和外設(shè)需要雙向通信的話芽卿,唯一的方式就是建立 GATT 連接揭芍。

GATT 連接,必需先經(jīng)過(guò) GAP 協(xié)議卸例。藍(lán)牙芯片發(fā)起連接称杨,總是先掃描設(shè)備,掃描到了才會(huì)發(fā)起連接筷转。

GATT 連接是獨(dú)占的姑原。也就是一個(gè) BLE 外設(shè)同時(shí)只能被一個(gè)中心設(shè)備連接。一旦外設(shè)被連接呜舒,它就會(huì)馬上停止廣播锭汛,這樣它就對(duì)其他設(shè)備不可見(jiàn)了。當(dāng)設(shè)備斷開(kāi)袭蝗,它又開(kāi)始廣播唤殴。

在 GAP 中外圍設(shè)備通過(guò)兩種方式向外廣播數(shù)據(jù): Advertising Data Payload(廣播數(shù)據(jù))和 Scan Response Data Payload(掃描回復(fù)),每種數(shù)據(jù)最長(zhǎng)可以包含 31 byte呻袭。這里廣播數(shù)據(jù)是必需的眨八,因?yàn)橥庠O(shè)必需不停的向外廣播,讓中心設(shè)備知道它的存在左电。掃描回復(fù)是可選的廉侧,中心設(shè)備可以向外設(shè)請(qǐng)求掃描回復(fù),這里包含一些設(shè)備額外的信息篓足,例如設(shè)備的名字段誊。

GATT 通信的雙方是 C/S 關(guān)系。外設(shè)作為 GATT 服務(wù)端(Server)栈拖,它維持了 ATT 的查找表以及 service 和 characteristic 的定義连舍。中心設(shè)備是 GATT 客戶端(Client),它向 Server 發(fā)起請(qǐng)求涩哟。需要注意的是索赏,所有的通信事件,都是由客戶端(也叫主設(shè)備贴彼,Master)發(fā)起潜腻,并且接收服務(wù)端(也叫從設(shè)備,Slave)的響應(yīng)器仗。

每個(gè)設(shè)備都會(huì)有一些服務(wù)融涣,每個(gè)服務(wù)里面都會(huì)有一些特征童番,特征就是具體鍵值對(duì),提供數(shù)據(jù)的地方

// characteristic的屬性威鹿,是一個(gè)結(jié)構(gòu)體剃斧,每個(gè)特征值常用的權(quán)限分為讀,寫(xiě)忽你,通知這么幾種方式

typedef NS_OPTIONS(NSInteger, CBCharacteristicProperties) {

// 標(biāo)識(shí)這個(gè)characteristic的屬性是廣播

CBCharacteristicPropertyBroadcast= 0x01,

// 標(biāo)識(shí)這個(gè)characteristic的屬性是讀

CBCharacteristicPropertyRead= 0x02,

// 標(biāo)識(shí)這個(gè)characteristic的屬性是寫(xiě)-沒(méi)有響應(yīng)

CBCharacteristicPropertyWriteWithoutResponse= 0x04,

// 標(biāo)識(shí)這個(gè)characteristic的屬性是寫(xiě)

CBCharacteristicPropertyWrite= 0x08,

// 標(biāo)識(shí)這個(gè)characteristic的屬性是通知

CBCharacteristicPropertyNotify= 0x10,

// 標(biāo)識(shí)這個(gè)characteristic的屬性是聲明

CBCharacteristicPropertyIndicate= 0x20,

// 標(biāo)識(shí)這個(gè)characteristic的屬性是通過(guò)驗(yàn)證的

CBCharacteristicPropertyAuthenticatedSignedWrites= 0x40,

// 標(biāo)識(shí)這個(gè)characteristic的屬性是拓展

CBCharacteristicPropertyExtendedProperties= 0x80,

// 標(biāo)識(shí)這個(gè)characteristic的屬性是需要加密的通知

CBCharacteristicPropertyNotifyEncryptionRequiredNS_ENUM_AVAILABLE(NA, 6_0)= 0x100,

// 標(biāo)識(shí)這個(gè)characteristic的屬性是需要加密的申明

CBCharacteristicPropertyIndicateEncryptionRequiredNS_ENUM_AVAILABLE(NA, 6_0)= 0x200

};

app作為外設(shè)被連接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末幼东,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子檀夹,更是在濱河造成了極大的恐慌筋粗,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件炸渡,死亡現(xiàn)場(chǎng)離奇詭異娜亿,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)蚌堵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)买决,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人吼畏,你說(shuō)我怎么就攤上這事督赤。” “怎么了泻蚊?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵躲舌,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我性雄,道長(zhǎng)没卸,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任秒旋,我火速辦了婚禮约计,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘迁筛。我一直安慰自己煤蚌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布细卧。 她就那樣靜靜地躺著尉桩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贪庙。 梳的紋絲不亂的頭發(fā)上魄健,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音插勤,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛农尖,可吹牛的內(nèi)容都是我干的析恋。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼盛卡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼助隧!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起滑沧,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤并村,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后滓技,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體哩牍,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年令漂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了膝昆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡叠必,死狀恐怖荚孵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情纬朝,我是刑警寧澤收叶,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站共苛,受9級(jí)特大地震影響判没,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜俄讹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一哆致、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧患膛,春花似錦摊阀、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至跃捣,卻和暖如春漱牵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背疚漆。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工酣胀, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留刁赦,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓闻镶,卻偏偏與公主長(zhǎng)得像甚脉,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子铆农,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Introduction to Bluetooth Low Energy 簡(jiǎn)介 Bluetooth Low Ene...
    小時(shí)不識(shí)月z閱讀 4,498評(píng)論 1 13
  • 藍(lán)牙 藍(lán)牙的波段為2400-2483.5MHz(包括防護(hù)頻帶)牺氨。這是全球范圍內(nèi)無(wú)需取得執(zhí)照(但定不是無(wú)管制的)的工...
    蘇永茂閱讀 6,154評(píng)論 0 11
  • Key Terms And Concepts 關(guān)鍵術(shù)語(yǔ)和概念 Here is a summary of key B...
    Jaesoon閱讀 2,431評(píng)論 0 5
  • 前言: 本文主要描述Android BLE的一些基礎(chǔ)知識(shí)及相關(guān)操作流程,不牽扯具體的業(yè)務(wù)實(shí)現(xiàn)墩剖,其中提供了針對(duì)廣播包...
    幻影宇寰閱讀 5,340評(píng)論 6 19
  • 這里我們具體說(shuō)明一下中心模式的應(yīng)用場(chǎng)景猴凹。主設(shè)備(手機(jī)去掃描連接外設(shè),發(fā)現(xiàn)外設(shè)服務(wù)和屬性岭皂,操作服務(wù)和屬性的應(yīng)用郊霎。一般...
    丶逝水流年閱讀 2,263評(píng)論 3 4