【BLE进阶日记】⑥BLE调试工具

本章介绍了一些用于与BLE一起使用的有用调试工具,可以查看实际上通过空气传输的内容。


一、BLE调试工具简介

本章介绍了与蓝牙低功耗技术(Bluetooth Low Energy)相关的几种有用的调试和开发工具。其中包括硬件工具,比如无线协议分析仪或抓包器(能够抓包到空中的通信数据,并通过用户界面显示捕获的数据以供后续分析),以及在调试过程中直接与蓝牙低功耗外围设备进行交互的工具。

为了使事情对于小型初创公司或初学蓝牙低功耗的工程师和开发人员更易于接近,本章主要关注的是便宜的工具,而不是那些可以千元或数万元运行的高端产品。

二、PCA10000 USB Dongle和主控面板

PCA10000是Nordic Semiconductor的nRF51822-EK低成本评估套件中包含的USB dongle。这个套件是为嵌入式硬件工程师设计的,他们正在设计自己的BLE外设。即使您只是开发移动应用程序,购买这个套件也是值得的,因为它包含了一些非常有用的调试工具,价格相对较低。

其中一个工具是主控面板(MCP),它是一个基于Windows的实用程序,可以将PCA10000 USB dongle变成可以模拟BLE中央设备的东西。它具有易于使用的界面,允许您查看范围内可用的任何BLE外设的数据,或将数据发送回您连接到的任何外设。这在Windows 7上特别有用,因为它不包含对低功耗蓝牙(BLE)的本机支持(BLE支持是在Windows 8中引入的,但该操作系统不包含用于测试和调试的类似应用程序)。

此外,Nordic还提供了一个用于Android的主控面板应用程序,该应用程序包含一些相同的功能,而无需任何附加硬件要求,尽管在撰写本文时,使用PCA10000的独立工具支持更大的命令集。

如果您正在为现有外设编写应用程序,还可以使用MCP快速逆向工程BLE配件,显示其各个数据结构和配置设置,然后使用发现的服务和特征UUID在移动应用程序中访问它们。

MCP使用与工具安装程序一起提供的特殊固件映像来与PCA10000进行通信。使用Nordic的nRFGo Studio(在注册nRF51822-EK后可以在Nordic的网站上获得),您可以更新USB dongle以使用此固件映像。

一旦PCA10000使用适当的固件进行了更新,您可以打开MCP并通过易于导航的用户界面与外设进行交互,这使您可以执行几乎与普通中央设备相同的任何功能。这包括绑定、打开或关闭连接、读取和写入GATT特征等。

连接到外设并发送服务发现请求后,您可以查看设备上可用的服务和特征列表,此时您可以像与任何常规BLE中央设备一样读取或写入它们。

您可以通过选择适当的特征,修改“Value”文本框中的值,然后点击“Send update”来更新值。您还可以通过选择特征并点击“Read”按钮来检索任何特征的最新值,对于尚未启用通知或指示的特征,这可能很有用。
在这里插入图片描述
MCP在硬件开发过程中是非常有价值的工具,尤其是当您还没有用于与您的BLE外围设备进行通信的移动应用程序时。主控面板可以模拟几乎所有您的应用程序将执行的操作,包括验证传入和传出数据的通信。MCP还包括一组C#库,可以用于自动化其提供的任何功能,使应用程序开发人员能够创建具有简单但完整的集中API的桌面或命令行应用程序。这对于自动化回归测试或生产测试非常有用。
在这里插入图片描述

三、PCA10000 USB Dongle and Wireshark

“PCA10000 USB Dongle和Master Control Panel”可能是与BLE外设交互的最简便方式,但某些使用场景需要对BLE数据进行较底层的访问。针对这些情况,Nordic还提供了适用于PCA10000或PCA10001(两者都包含在nRF51822-EK开发套件中)的自定义固件映像和工具,可以对单个外设设备的流量进行抓包,并将其推送到Wireshark中。

Wireshark是一个成熟且功能强大的开源数据捕获和分析工具,它允许您轻松地将数据可视化到数据包和字节级别。Nordic的Wireshark插件在您在Nordic支持网站注册nRF51822-EK套件后即可获得,它可以对通过nRF51822-EK板捕获的数据添加有用的描述,帮助理解原始数据。
在这里插入图片描述
如果你只对设计与现有BLE外设通信的应用程序感兴趣,你很少需要深入到这个层次。但对于独立设计和编码自己的外设或尝试调试特定延迟或吞吐量问题的硬件设计师或固件工程师来说,这可能非常有用。

四、CC2540 USB Dongle and SmartRF Sniffer

作为CC254x系列集成电路开发生态系统的一部分,德州仪器设计了CC2540EMK-USB,这是一个低成本的基于CC2540的USB适配器,可与他们的免费SmartRF软件一起使用,将开发板转换为BLE嗅探器。这个组合使您能够以最低的水平查看您周围空中传输的所有BLE数据。

它执行了与PCA10000 / Wireshark组合类似的功能,但提供了不同的用户界面,在某些情况下可能更容易使用。这些套件在某些地区可能更容易获得。

五、智能RF到Wireshark转换器

如果你更喜欢使用Wireshark作为数据分析工具,并且能够访问CC2540 USB插头,那么你会很高兴了解到smartRFtoPcap这个免费工具,它可以将保存的SmartRF数据转换为Wireshark能够理解的文件格式。

你无法像使用PCA10000和Nordic的Wireshark插件那样即时传输数据到Wireshark,但是有了将先前捕获的文件转换的选项可能仍然很有用,因为Wireshark包含了许多工具以对记录的数据进行过滤和搜索。
在这里插入图片描述

六、蓝牙工具hcitool和gatttool

如果您使用Linux工作站,可以利用蓝牙堆栈中两个有用的工具hcitool和gatttool,以便通过命令行与BLE设备进行交互。

如果您没有专用的Linux工作站,蓝牙也可以在廉价的Linux设备上运行,如树莓派或BeagleBone Black,将它们变成非常有用和便携的BLE调试工具。

hcitool允许您在范围内扫描BLE外设、连接到它们,或使用支持的BLE 4.0 USB dongle模拟BLE设备。要扫描范围内的BLE设备,您可以发出以下命令(假设我们的USB dongle枚举为hci0):

sudo hcitool -i hci0 lescan

一旦您获得设备的地址(通过之前的扫描命令检索),您可以使用以下命令连接到外设(假设外设地址为6C:60:B3:6E:7C:B1):

sudo hcitool lecc 6C:60:B3:6E:7C:B1

gatttool允许您与GATT服务进行交互,例如读取或写入设备上的特征。
能够从命令行中进行此操作意味着您可以轻松地对某些重复操作或测试用例进行脚本编写,并在多个硬件设备上一致可靠地运行相同的测试。


总结

本章介绍了一些用于与BLE一起使用的有用调试工具,可以查看实际上通过空气传输的内容。

关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>