搜罗
| | | | | | | | |
打印

[资料分享] CC26xx BLE 增加indication属性的特征值

[复制链接]
65 | 13
跳转到指定楼层
楼主
楼主 | 2020-9-19 21:34 | 只看该作者 | | 加入气泡模式 回帖奖励 | 倒序浏览 | 阅读模式
摘要
CC26xx 是TI 提供的高职能2.4GHz射频SOC芯片。最新一代CC2652可以支持BLE,大概BLE+2.足球交流论坛。4G 公有协议,BLE+TI15.4,足球交流论坛。TI15.4以及公有协议。能以multi-protocol模式同时运行BLE+ZigBee ,Thread,ZigBee。
TI提供CC26xx的SDK,但又不一样,唯独没有indication属性的特征值。足球交流论坛。Indication 属性和notify属性类似,notify属性的特征值,虎扑足球论坛。 write,里面提供了BLE最根本的各种read,球迷007足球论坛。TI提供了很多例程。其中simple peripheral例程是最为遍及利用的一个,其中就包罗BLE。BLE协议里,SDK里面包罗了各种协议支持。
本文基于CC2652的SDK V3.30版本的simple peripheral 例程杀青indication。最火的足彩论坛。本文提供的方式适用于所有CC26xx系列的芯片。

利用特权

评论回复
沙发
楼主 | 2020-9-19 21:44 | 只看该作者
目录
1. BLE 特征值的indication属性.............................足球论坛哪个火。.............................足球吧论坛。................................................. 2
2. CC2652 indication的杀青........................足球社区。........................CC26xxBLE增进indi足球交流论坛cation属性的特征值。........................TI无线络续论坛。........................................ 2
2.1 特征值2的定义..................................TI论坛。..................................德州仪器TI官方技术帮助社区。......................................................... 2
2.1.1 特征值2 属性修正..............................3A足球论坛。...............................cc26xxble。....................................................... 2
2.1.2 特征值2 的配置属性增加...........................增进。............................indi。.................................................. 3
2.2 特征值2的CCC值操作........................足球。........................交流。........................论坛。......................................... 4
2.3 特征值2的indication数据发送...........................cation。...........................属性。................................................ 4
2.3.1 调用GATTServApp_ProcessCharCfg()......................特征值。.......................ti。...................................... 4
2.3.2 调用GATT_Indication()............................无线。.............................论坛。................................................... 5
2.4 应用层代码增加..................................ti。..................................论坛。....................................................... 6
3. Indication 测试...........................德州仪器。...........................ti。...........................官方。............................................... 7
4. 参考文献......................................方技。......................................技术。............................................................... 9
,帮助。图表
图1. BLE indication...........................社区。...........................3a。...................................................................... 2
图2. 特征值2的属性.............................a。.............................足球。.................................................................... 8
图3. 使能特征值2的indication.............................论坛。.............................CC26xxBLE增进indi足球交流论坛cation属性的特征值。................................................... 9
图4. Indication发送和确认...............................TI无线络续论坛。...............................TI论坛。..................................................... 9

利用特权

评论回复
板凳
楼主 | 2020-9-19 21:44 | 只看该作者
1 BLE 特征值的indication属性
BLE特征值的indication是由server端主意向client端发送数据的一种方式,并可以关照client应用层对方乐成接收数据。德州仪器TI官方技术帮助社区。由于有自动确认机制,3A足球论坛。但indication不一样的场所是必要client端收到数据后回复confirm包给server端。足球。这些行为都是在GATT层完成,和notification方式类似。
图1. BLE indication

利用特权

评论回复
地板
楼主 | 2020-9-19 21:44 | 只看该作者
2 CC2652 indication的杀青
本文基于CC2652的SDK V3.30版本的simple peripheral 例程杀青indication,交流。在simple GATT service中的特征值2上增加indication机制。
2.1 特征值2的定义

利用特权

评论回复
5
楼主 | 2020-9-19 21:45 | 只看该作者
2.1.1 特征值2 属性修正
在simple_gatt_profile.c中。
同时,完全交由后面定义的simpleProfileChar2Props来决定,论坛。把GATT_PERMIT_READ这肯定义去掉,特征值2的读写属性里,在特征值定义表格中。

利用特权

评论回复
6
楼主 | 2020-9-19 21:45 | 只看该作者
2.1.2 特征值2 的配置属性增加
就像带有notification属性的特征值一样,也必需有一个CCC(Client Characteristic Configuration)紧随该特征值的value定义,作为带有indication属性的特征值。
同时,位置是在特征值2的value定义之后,我们必要在特征值定义表格中把这个CCC的定义attribute也增加进去。
注意,表格数组的尺寸定义也要加1,由于在表格里增加了一个attribute。


在service初始化函数中,把特征值2的CCC值也进行初始化。


特征值的定义部门完成。

利用特权

评论回复
7
楼主 | 2020-9-19 21:45 | 只看该作者
2.2 特征值2的CCC值操作
Indication大概notification的CCC值是由client(通常是central设备,增加代码如下,区分和例程里特征值4的notification的CCC值,而写操作的管束在simpleProfile_WriteAttrCB()函数里,极个体profile可以是peripheral设备)来用来使能server端的indication大概notification。这个操作素质上是client对CCC值的一个写操作。
注意GATT_CLIENT_CFG_INDICATE和GATT_CLIENT_CFG_NOTIFY的区别,就会修正simpleProfileChar2Config值,划分对应indication和notification。这里的增加。
另外注意simpleProfileChar2Config素质是一个指针。


每一个CCC的value,这就为每个BLE连接都只身预留了indication的CCC的配置,simpleProfileChar2Config被分配了MAX_NUM_BLE_CONNS个gattCharCfg_t尺寸的空间,也就是对应一个BLE的连接。从其在SimpleProfile_AddService()函数里的初始化也可以看出,对应一个connection handle。

利用特权

评论回复
8
楼主 | 2020-9-19 21:46 | 只看该作者
2.3 特征值2的indication数据发送
在CC26xx的SDK中,一种是调用封装的函数GATTServApp_ProcessCharCfg(),发送indication大概notification有两种方式。

利用特权

评论回复
9
楼主 | 2020-9-19 21:46 | 只看该作者
2.3.1 调用GATTServApp_ProcessCharCfg()
在SimpleProfile_SetParameter()中,应用层会调用该函数来做特征值操作。
这里把len的长度加1的目的是为了取得应用层的task ID。这就是indication和notification的区别之一,接收这个行动是必需的)。所以indication发送的光阴必必要提早制定确认音问的接收task ID。这里就会经过议定SimpleProfile_SetParameter() 被应用层调用来指定发送的indication的值和接收确认音问的task ID,只是当作一个indication乐成的关照,这个确认必必要有一个对应的实体也就是task去接收并且管束(也可以不管束,蓝牙协议规矩indication发送后是必要对方回复confirm确认的。

利用特权

评论回复
10
楼主 | 2020-9-19 21:46 | 只看该作者
2.3.2 调用GATT_Indication()
另一种手段直接调用GATT层API GATT_Indication(),所有面前目今保存的BLE链路都要进行占定,于是乎代码的杀青也考虑到这一点,所以有可能同时保存多条BLE链路,杀青代码如下。由于CC26xx支持一从多主模式。
下面这段代码同时也杀青了如何在service的表格里查找某特征值对应的attribute handle。

利用特权

评论回复
11
楼主 | 2020-9-19 21:46 | 只看该作者
2.4 应用层代码增加
增加用于indication的值。


在SimplePeripheral_performPeriodicTask()中定时发送特征值2的indication。


针对特征值2操作的参数是两个字节长度,第二个字节就是indication发送后central回复确认的光阴进行接收的task ID,第一个字节是要发送的值。
注意,TI-RTOS的每个task有个entity ID。


在应用层中增加indication发送后。


这里只简单打印一下结果,具体可以凭据现实情形进行修正,打印的值为这一次发送乐成的indication的值。

利用特权

评论回复
12
楼主 | 2020-9-19 21:47 | 只看该作者
3 Indication 测试
  • 编译下载代码到CC2652 LaunchPad上。
  • 翻开手机上BLE的APP,好比LightBlue,查找Simple Peripheral,找到后连接。可以看到特征值2一经带indication属性。
图2. 特征值2的属性
3. 点进特征值2界面,点击Listetn for notification。这里“notification”只是界面夸口。
图3. 使能特征值2的indication
4. 手机收到CC2652发送过去的indication。
图4. Indication发送和确认

利用特权

评论回复
13
楼主 | 2020-9-19 21:47 | 只看该作者
4 参考文献
  • simplelink_cc13x2_26x2_sdk_3_30_00_03, simple_peripheral Project.


利用特权

评论回复
14
| 2020-9-20 15:13 | 只看该作者
谢谢楼主分享

利用特权

评论回复
扫描二维码,随时随地手机跟帖
您必要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 赞扬建议 创立版块 请求版主

快速回复

您必要登录后才可以回帖
登录 | 注册
初级模式

论坛热帖

| | | | | | | | |
在线客服 快速回复 前往顶部 前往列表