概述
ANCS(Apple Notification Center Service)即蘋果通知中心服務(wù),此服務(wù)為外圍藍牙設(shè)備(手表、耳機等)訪問IOS設(shè)備(iPhone、iPad等)上生成的多種通知提供了一種簡單方便的機制。ANCS圍繞三個原則設(shè)計:簡單性、高效性和可擴展性,因此,不論是簡單的LED設(shè)備還是具有大顯示屏的功能強大的“配套”設(shè)備等配件來說,這項服務(wù)都具有很高的可用性。ANCS是基于BLE協(xié)議中的通用屬性協(xié)議(Generic Attribute Profile,GATT)來實現(xiàn)的,即ANCS是GATT協(xié)議的一個子集。作為GATT客戶端的藍牙設(shè)備可以在使用ANCS時自由訪問和使用IOS設(shè)備提供的其他服務(wù)。通常ANCS傳輸?shù)乃袛?shù)值的字節(jié)序都應(yīng)為小端,傳輸?shù)淖址刀紤?yīng)由UTF-8編碼的unicode字符組成。
AT32WB415 ANCS程序設(shè)計
ANCS服務(wù)特征
ANCS的服務(wù)UUID為7905F431-B5CE-4E99-A40F-4B1E122D00D0。由于IOS的特性,BLE設(shè)備應(yīng)查找并訂閱GATT服務(wù)的Service Changed特征,以便隨時監(jiān)控ANCS潛在的發(fā)布和發(fā)布取消。ANCS提供三個服務(wù)特征:通知源(Notification Source):UUID 9FBF120D-6301-42D9-8C58-25E699A21DBD(通知)控制點(Control Point):UUID 69D1D8F3-45E1-49A8-9821-9BBDFDAAD9D9(可寫響應(yīng))數(shù)據(jù)源(Data Source):UUID22EAC6E9-24D6-4BB5-BE44-B36ACE7C7BFB(通知)所有這些特征都需要授權(quán)才能訪問,即BLE設(shè)備連接上IOS設(shè)備并且完成配對和綁定后才能進行訪問。這三個特征中對通知源特征的支持是強制性的,而對控制點特征和數(shù)據(jù)源特征的支持是可選的。關(guān)于ANCS更多詳細內(nèi)容請參閱:Apple通知中心服務(wù)(ANCS)規(guī)范(進入文末閱讀原文查看AN0147文檔)
BLE模塊軟件設(shè)計
對于BLE模塊部分的軟件,主要就是依據(jù)上述ANCS規(guī)范來設(shè)計的,也就是ANCS規(guī)范的軟件實現(xiàn)。在使用ANCS服務(wù)前需要進行服務(wù)設(shè)置,流程如下:1) 等待IOS設(shè)備連接BLE模塊,并完成配對和綁定2) BLE模塊獲取ANCS服務(wù)和特征3) BLE模塊訂閱數(shù)據(jù)源(可選項)和通知源,等待ANCS發(fā)送通知圖1. 服務(wù)設(shè)置流程下面以來電通知為例講解通知接收流程1) IOS設(shè)備發(fā)送來電通知,UID=32) BLE模塊獲取通知屬性,UID=3,需要獲取內(nèi)容包含Title,Message和AppID3) IOS設(shè)備將UID=3的通知數(shù)據(jù)發(fā)送給BLE設(shè)備4) BLE模塊發(fā)送得到的AppID獲取App屬性,需要獲取內(nèi)容為DisplayName5) IOS設(shè)備將該AppID的DisplayName發(fā)送給BLE設(shè)備圖2. 通知接收流程對于本案例,BLE模塊能夠處理的ANCS通知包括來電通知和應(yīng)用通知兩種,用戶可按照這兩種通知的處理方式來開發(fā)其他ANCS通知處理函數(shù)。對于不同的通知產(chǎn)生的不同事件BLE模塊會通過串口發(fā)送不同的數(shù)據(jù)標(biāo)志給MCU端,如下:
- 0x5AA501,表示接收到來電通知添加事件(CategoryID=1,EventID=0)
- 0x5AA502,表示接收到來電通知移除事件(CategoryID=1,EventID=4)
- 0x5AA503,表示接收到應(yīng)用通知添加事件(CategoryID=4,EventID=0)
- 0x5AA504,表示接收到應(yīng)用通知移除事件(CategoryID=4,EventID=4)
MCU軟件設(shè)計
上面提到BLE端對接收到的數(shù)據(jù)進行判斷后會通過串口發(fā)送不同的數(shù)據(jù)標(biāo)志給到MCU端,MCU端對接收到的BLE串口數(shù)據(jù)處理方式如下:1) 通過串口(USART3)接收BLE模塊發(fā)送的通知數(shù)據(jù)2) 接收到0x5AA501,點亮LED2提示來電通知3) 接收到0x5AA502,關(guān)閉LED2提示來電通知移除4) 接收到0x5AA503,點亮LED3提示應(yīng)用通知5) 接收到0x5AA504,關(guān)閉LED3提示應(yīng)用通知移除6) 除ANCS通知外,對藍牙連接狀態(tài)也會進行顯示:接收到0x5AA505,點亮LED4提示藍牙連接配對成功接收到0x5AA506,關(guān)閉LED4提示藍牙連接斷開7) 除LED表示通知類型外,還會將接收到的通知數(shù)據(jù)發(fā)送到串口(USART2)來模擬通知顯示
-
BLE
+關(guān)注
關(guān)注
12文章
660瀏覽量
59413 -
藍牙模塊
+關(guān)注
關(guān)注
30文章
575瀏覽量
55738 -
雅特力
+關(guān)注
關(guān)注
0文章
158瀏覽量
8025
發(fā)布評論請先 登錄
相關(guān)推薦
評論