【转】蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法--不错
原文网址:http://blog.csdn.net/mzy202/article/details/32408223
蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法 【原创,多图】
(只发布于csdn博客, 如需转载,请注明出处,谢谢! )
蓝牙4.0的开发, 现在真热火的很, 但是很多朋友买了我们出品的cc2540 usb-dongle后, 都反馈说不知道如何抓包, 并且, 即使很多朋友到TI官网论坛去找信息,不少朋友依然是无功而返,实际上, 用cc2540 usb-dongle来进行ble数据的抓包,并不像用电脑的wireshark等软件来抓取ip包一样简单。
我们需要明白的是,ble的广播是可以指定广播信道的,广播信道分别是37、38、39, 但TI的协议栈官方例程里已经默认设置了在广播阶段 同时三个信道一起广播,但是一旦跟主机连接上后,就只在其中的一个信道传输数据,所以我们是要指定其中的一个信道的, 可恶的是, 这个连接上的信道也是随机的, 我们可以在抓取到连接包后, 填入发起者(即是主机)的地址和信道即可。
下面我们用 TI官方例程 SimpleBLEPeripheral 结合 cc2540 usb-dongle 和 SmartRF Packet Sniffer 软件来实现数据包的抓取和读写
【1】首先要让开发板跑 SimpleBLEPeripheral , 这里不是重点, 先不说哈。
【2】然后,把烧录了“ sniffer_fw_cc2540_usb.hex” 固件的 usb-dongle插入到pc, 如果没有安装驱动, 是要安装的驱动的, 但是如果你已经安装了 SmartRF Packet Sniffer 软件, 那么驱动就已经默认安装了。
【3】 运行 SmartRF Packet Sniffer 。如下图:

上图, 描述的是, 一旦主机和从机连接上后, 到
这一行, 抓包就不在显示了, 这个时候, 如上填入地址, 并选好信道号, 然后再重新复位从机,主机重新连接,这个时候不一定 SmartRF Packet Sniffer 就能显示到连接后的数据包, 如果不能连接上, 就试试 把 改成 38、 39等等, 多试试几次, 就会出现下面图了。(下图表明抓取到了ble的数据包)

下面用lightblue进行一个char1的读操作, lightblue读取到了0x04.(lightblue是ios上很牛的一个软件, 如果不知道, 可以先看看我先前的文章哈,
http://blog.csdn.net/mzy202/article/details/23600587)

下面用lightblue进行一个char1的写操作, lightblue写入0x01.

在实际开发中, 这个抓包还是显得比较重要的, 比如android4.3的ble, 目前还不是很稳定,这个时候你又不能确定是不是你代码的问题还是从机的问题, 我们通过抓取空中传递的数据包, 就能确定到底是在主机或从机的问题。
要说的是, 上图当中, 你要问我各个字段都是什么意思, 我还真立刻回答不出来,我们要学会就着问题去找答案,而不是背诵。
打个小广告哈:
低功耗蓝牙4.0 CC2540 USBdongle 带外壳 协议分析 :
如果需要蓝牙4.0BLE开发开发板和资料, 请看这里 http://amomcu.taobao.com/ , 这里能提供基于cc2540或cc2541的蓝牙4.0BLE开发的详细硬件和软件资料, QQ群257318688, 阿莫单片机论坛 www.AmoMcu.com提供技术, 更多项目实例介绍持续更新中。
【转】蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法--不错的更多相关文章
- 蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法 【原创,多图】
蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法 [原创,多图] spm=a1z10.1.w4004-5319414070.11.Zd ...
- 蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法
蓝牙4.0的开发, 现在真热火的很, 但是很多朋友买了我们出品的cc2540 usb-dongle后, 都反馈说不知道如何抓包, 并且, 即使很多朋友到TI官网论坛去找信息,不少朋友依然是无功而返,实 ...
- 蓝牙4.0BLE cc2540 cc2541 ios OAD课程(空中固件升级)[原版的,多图]
蓝牙4.0BLE cc2540 cc2541 ios OAD课程(件) 为阿莫单片机论坛 www.AmoMcu.com 原创.仅仅公布于csdn博客, 如需转载,请注明出处,谢谢! ...
- CC2540 USB DONGLE 使用 BTool 调试BLE 说明
一.Btool软件界面介绍 首先您要将USBDONGLE插入电脑的USB口,然后打开双击打开Btool软件,打开后如下图所示: 在安装驱动的教程中,我们已经记住了我们的USB DONGLE的串口号,在 ...
- CC2540 USB Dongle 使用说明
CC2540做的USB Dongle可以烧写不同的固件从而做很多PC端的应用,下面我们来介绍下下载固件的方法和一些典型应用: 下载接口: 3V3引脚连接到CC Debugger的Target Volt ...
- 蓝牙4.0BLE 手机控制 cc2540 CC2541 的串口透传功能已实现
蓝牙4.0BLE 手机控制 cc2540 CC2541 的串口透传功能已实现 尽管蓝牙4.0 BLE芯片CC2540 是单芯片(即用户能够对它进行芯片级代码编写), 是80 ...
- PIC24FJ64GB002 with bluetooth USB dongle
PIC24FJ64GB002 with bluetooth USB dongle I will explain my project (how to control a bluetooth USB d ...
- 蓝牙4.0BLE抓包(三) – 扫描请求和扫描响应
版权声明:本文为博主原创文章,转载请注明作者和出处. 作者:强光手电[艾克姆科技-无线事业部] 1. 扫描请求和扫描响应 广播包含扫描请求SCAN_REQ和扫描响应SCAN_RSP. 扫描请求: ...
- 蓝牙4.0BLE抓包(二) – 广播包解析
版权声明:本文为博主原创文章,转载请注明作者和出处. 作者:强光手电[艾克姆科技-无线事业部] 在使用EN-Dongle捕获和解析广播包之前,我们先了解一下BLE报文的结构,之后,再对捕获的广播 ...
随机推荐
- hao123 百度品专 按品类 计算 下单数量 商品数量 下单金额?
SELECT * FROM t_tag_source WHERE s_name='hao123'; +--------+----------+---------+--------+-------- ...
- gitcafe 使用hexo搭建博客
--缘由:因为看大家都用github等搭建博客,作为半个程序员的自己,也按捺不住了,终于有空来尝试一把了,选择了和github 相同功能的gitcafe网站,因为在国内比较快,这是大家的看法,下面写一 ...
- [Mime] MimeHeaders--MimeHeader帮助类 (转载)
点击下载 MimeHeaders.rar 这个类是关于Mime的Headers类看下面代码吧 /// <summary> /// 类说明:Assistant /// 编 码 人:苏飞 // ...
- 在C#中实现Socket端口复用
转载:http://www.csharpwin.com/csharpspace/68.shtml 一.什么是端口复用: 因为在winsock的实现中,对于服务器的绑定是可以多重绑定的,在 ...
- T-SQL切割字符串方法小结 2
有表tb, 如下: id value ----------- ----------- 1 aa,bb 2 aaa,bbb,ccc 欲按id,分拆value列, 分拆后结果如下: id value -- ...
- Android - This Handler class should be static or leaks might occur.
今天学习了使用 HTTP协议,从Android客户端往Tomcat服务器端以GET发送请求,途中无意中发现自己写的Handler类被Android提示:This Handler class shoul ...
- C语言malloc()函数:动态分配内存空间
头文件:#include <stdlib.h> malloc() 函数用来动态地分配内存空间(如果你不了解动态内存分配,请查看:C语言动态内存分配及变量存储类别),其原型为:void* m ...
- juquery验证插件validation addMethod方法使用笔记
该方法有三个api接口参数,name,method,messages addMethod(name,method,message)方法 参数 name 是添加的方法的名字. 参数 method 是一个 ...
- Action配置
Action是一个逻辑控制器,并不直接对浏览器生成响应,而是返回指定逻辑视图(一个字符串). 不推荐在Action的name属性值中使用点(.)和中划线(-),有可能会引发一些未知异常. 1使用A ...
- PLSQL性能优化技巧
1.理解执行计划1-1.什么是执行计划 oracle数据库在执行sql语句时,oracle的优化器会根据一定的规则确定sql语句的执行路径,以确保sql语句能以最优性能执行.在oracle数据库系统中 ...