2220|5

43

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【雅特力AT32WB415评测】5. 蓝牙低功耗版本(BLE)官方Demo测评 [复制链接]

接着上4篇评测报告:

(1)https://bbs.eeworld.com.cn/thread-1214040-1-1.html

(2)https://bbs.eeworld.com.cn/thread-1214570-1-1.html

(3)https://bbs.eeworld.com.cn/thread-1215784-1-1.html

(4)https://bbs.eeworld.com.cn/thread-1216799-1-1.html

 

在测评前先熟悉了蓝牙的一些专业术语,如:GAP、GATT等。

 

下载附件  保存到相册

2022-9-8 11:02 上传

 图42 广播与响应

图43 广播网络拓扑

 

2 GATTGeneric Attribute Profile

GATT是一个在蓝牙连接上收发很短数据段的通用协议。目前,低功耗蓝牙连接都是建立在GATT协议之上,它定义了两个低功耗蓝牙设备使用服务(Service)和特征(Characteristic)来进行数据通信。GATT使用ATT协议(Attribute Protocol),ATT协议把Service、Characteristic,以及对应的数据保存在一个查找表中,表中每一条数据采用16 bit ID作为索引。

一旦两个设备之间建立专用连接,GATT即可发挥作用,这意味着已经完成了由GAP管理的广播流程(说明:GATT连接,必须先经过GAP)。

GATT连接需要特别注意:GATT连接是独占(exclusive)的,这就是说一个BLE外围设备一次只能连接到一个中心设备,一旦外围设备被连接,它就会马上停止广播,这样它就对其他设备不可见了。当外围设备断开连接时,它又开始广播。

中心设备和外围设备需要进行双向通信,唯一的方式就是建立GATT连接,GATT连接的网络拓扑如图44所示。

 图44 GATT网络拓扑

 

    从上图可以看出,一个外设只能连接一个中心设备,而一个中心设备可以连接多个外设,一旦建立连接,通信就是双向的。GAP通信是单向的,如果要实现两个外围设备的通信,则只能通过中心设备中转。

 

3 GATT TransactionsGATT通信事务)

GATT通信双方是C/S关系,外围设备作为 GATT 服务端(Server),它维持了 ATT 的查找表以及 service 和 characteristic 的定义。中心设备是 GATT 客户端(Client),它向 Server 发起请求。需要注意的是,所有的通信事件,都是由客户端(也叫主设备,Master)发起,并且接收服务端(也叫从设备,Slave)的响应。GATT通信事务如图45所示。

 图45 GATT通信事务

 

一旦连接建立,外围设备将会给中心设备建议一个连接间隔(Connection Interval),这样,中心设备就会在每个连接间隔尝试去重新连接,检查是否有新的数据。但是,这个连接间隔只是一个建议,中心设备可能并不会严格按照这个间隔来执行,例如中心设备正在忙于连接其他的外围设备,或者中心设备资源不可用。

 

 

4 GATT结构

GATT事务是建立在嵌套的Profiles、Services和Characteristics之上的,如图46所示。

 图46 GATT结构

   

1profile

profile可以理解为一种规范,一个标准的通信协议,它存在于从机中。蓝牙组织规定了一些标准的profile,例如 HID OVER GATT,防丢器,心率计等。每个profile包含多个service,每个service代表从机的一种能力。

2service

service可以理解为一个服务,在BLE从机中,通常有多个服务,如:电量信息服务、系统信息服务等,每个service包含一个或多个characteristic特征值。characteristic特征值才是BLE通信的主题。比如当前的电量是80%,所以会通过电量的characteristic特征值存在从机的profile里,这样主机就可以通过这个characteristic来读取80%这个数据。

3characteristic

BLE主从机的通信均是通过characteristic来实现,可以理解为一个标签,通过这个标签可以获取或者写入想要的内容。

 

下载附件  保存到相册

2022-9-8 11:05 上传

 图47 AT32WB415评估板蓝牙通信过程

 

6.3 AT32WB415评估板官方蓝牙代码评测

官方源码和入门指南:https://www.arterytek.com/cn/product/AT32WB415.jsp#Resource

 根据官方应用笔记(BLE Application Note:AN0077),例程中已有GATT相关服务,如果要新增其他服务(自定义服务),需要6个文件。

1custom.ccustom_task.c放置…\sdk\ble_stack\com\profiles\custom\src文件夹下;

2custom.hcustom_task.h放置…\sdk\ble_stack\com\profiles\custom\api文件夹下;

3app_custom.capp_custom.h放置…projects\ble_app_gatt\app文件夹下。

目前,还没有弄清为什么要放置在这些文件夹下面,先按照入门指南评测一下蓝牙,然后再深入研究,并移植到AT32 IDE下面。

用MDK打开官方提供的蓝牙Demo工程:

…\AN0077_AT32_BLE_Application_Note_V2.0.4\SourceCode\wb415_ble_demo_2.0.3\projects\ble_app_gatt下的MDK工程文件

custom.ccustom_task.c位于工程 目录下,app_custom.c位于工程 目录下  。

  

编译后,在:

…\AN0077_AT32_BLE_Application_Note_V2.0.4\SourceCode\wb415_ble_demo_2.0.3\projects\ble_app_gatt\output\app目录下,可以看到编译后生成的*.bin文件。

继续用MDK打开MCU Demo,位于:

…\AN0077_AT32_BLE_Application_Note_V2.0.4\SourceCode\wb415_mcu_demo_2.0.3\wb415_mcu_demo_2.0.3\project\at_start_wb415\at_side\mdk_v5下的MDK工程文件

编译后,在:

…\AN0077_AT32_BLE_Application_Note_V2.0.4\SourceCode\wb415_mcu_demo_2.0.3\wb415_mcu_demo_2.0.3\project\at_start_wb415\at_side\mdk_v5\Objects目录下,可以看到编译后生成的*.hex文件

打开ArteryICPProgrammer。(1)添加蓝牙*.bin文件时,需要添加起始地址:00000000,如图48所示。

 图48 添加起始地址

 (2)添加MCU Demo *.hex文件,如图49所示。

图49 添加MCU Demo *.hex文件

 

点击

 ,完成固件下载

打开手机端LightBlue APP(需要提前安装)

,可以看到AT32WB415评估板,蓝牙名称:WB415-GATT ,点击 ,连接蓝牙,可以看到WB415-GATT蓝牙信息如图50所示。

 图50 WB415-GATT蓝牙信息

 

可以看到有些信息有Readable(可读)、Writable(可写)、Supports notifications/indications(支持通知/指示)

,打钩表示支持,打叉表示不支持。数据显示格式  。对于可读写的信息  ,点击 、 按钮    ,进行读写操作。

AT32WB415评估板上的USER Key

用于切换AT Command模式和透传模式,LED3指示灯    用于指示当前模式(亮:透传模式;灭:AT command模式)。

官方文档提示:AT Command模式和透传模式冲突,透传模式下自定义服务将无法使用。

通过串口调试助手打印信息,也可以显示是否进入透传模式,如图51所示。

 图51 透传模式选择

 

透传模式下

 ,进入F002特征 ,输入任意字符串    ,点击  ,可以看到串口调试助手显示输入的信息  。

透传模式下,进入F001特征

 ,点击  ,可以看到显示的信息为  。在串口工具中输入  ,点击发送,LightBlue APP端F001特征显示“WB415”  。

 

下一步,将对官方提供的蓝牙Demo的源码进行剖析。

 

雅特力AT32WB415开发板-评测报告-施连敏-20220806-0908.pdf (4.12 MB, 下载次数: 1)

此帖出自RF/无线论坛

最新回复

学习了,AT32还是性价比比较高的  详情 回复 发表于 2022-9-9 00:46
点赞 关注
 

回复
举报

6841

帖子

11

TA的资源

版主

沙发
 
定位的话,需要几个模块才能实现?精度可以达到多少?
此帖出自RF/无线论坛

点评

定位还没有涉及。实现了,可以分享  详情 回复 发表于 2022-9-8 14:20
 
 

回复

43

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
lugl4313820 发表于 2022-9-8 12:53 定位的话,需要几个模块才能实现?精度可以达到多少?

定位还没有涉及。实现了,可以分享

此帖出自RF/无线论坛
 
 
 

回复

6773

帖子

2

TA的资源

版主

4
 

这款蓝牙可以配置服务和特征值吗?

此帖出自RF/无线论坛
 
 
 

回复

6060

帖子

6

TA的资源

版主

5
 

里边有作为主机的命令吗?我看介绍资料里面的几个AT指令基本都是配置从机透传的

此帖出自RF/无线论坛
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 
 

回复

539

帖子

1

TA的资源

纯净的硅(中级)

6
 
学习了,AT32还是性价比比较高的
此帖出自RF/无线论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表