概述
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文章
652浏览量
59327 -
蓝牙模块
+关注
关注
30文章
565浏览量
55687 -
雅特力
+关注
关注
0文章
156浏览量
7973
发布评论请先 登录
相关推荐
评论