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