CH582 CH573 CH579 BLE indication 属性

WCH提供CH582 CH573 CH579的SDK,SDK里面包含了各种协议支持,其中就包含BLE。BLE协议里,WCH提供了很多例程。其中simple peripheral例程是最为广泛使用的一个,里面提供了BLE最基本的各种read, write,notify属性的特征值,唯独没有indication属性的特征值。Indication 属性和notify属性类似,但又不一样,它是需要BLE Client设备收到数据后回复确认的一种机制。

在ATT层协议框架内,拥有一组属性的设备称为服务端(Server),读写该属性值的设备称为客户端(Client),Server和Client通过ATT PDU进行交互。属性协议共有6种:

主机RX 从机TX 方向:

通知(Notify):从机端上传数据给主机,不需要主机回复一个响应

指示(Indicate):从机端上传数据给主机,需要主机端发一个确认给服务器

通知和指示之间不同之处在于指示有应用层上的确认,而通知没有。

从机设备流程

1. 开启广播

2. 被主机成功连接,并交互连接参数

3. 等待主机获取服务

4. 等待主机成功使能notify功能

5. 从机给主机发送相应的notify数据包

本文基于WCH CH582  的SDK 的simple peripheral 例程实现indication。本文提供的方式适用于所有WCH的BLE系列的芯片。

1       BLE 特征值的indication属性

BLE特征值的indication是由server端主动向client端发送数据的一种方式,和notification方式类似,但indication不一样的地方是需要client端收到数据后回复confirm包给server端。这些行为都是在GATT层完成,并可以通知client应用层对方成功接收数据。由于有自动确认机制,indication在很多应用层级的协议制定中有比较广泛应用。

2       CH582 indication的实现

本文基于CH582的SDK V1.60版本的simple peripheral 例程实现indication,在simple GATT service中的特征值4上修改Notify属性为indication

具体实现参考这个博客,附带源码链接

CH582芯片句柄指示\确认(Handle Value Indication\Confirmation) - SweetTea_lllpc - 博客园 (cnblogs.com)

 

 
posted @ 2022-12-06 15:10  debugdabiaoge  阅读(517)  评论(0编辑  收藏  举报