原文网址: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 抓取数据方法--不错的更多相关文章

  1. 蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法 【原创,多图】

    蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法 [原创,多图] spm=a1z10.1.w4004-5319414070.11.Zd ...

  2. 蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法

    蓝牙4.0的开发, 现在真热火的很, 但是很多朋友买了我们出品的cc2540 usb-dongle后, 都反馈说不知道如何抓包, 并且, 即使很多朋友到TI官网论坛去找信息,不少朋友依然是无功而返,实 ...

  3. 蓝牙4.0BLE cc2540 cc2541 ios OAD课程(空中固件升级)[原版的,多图]

           蓝牙4.0BLE cc2540 cc2541 ios OAD课程(件) 为阿莫单片机论坛  www.AmoMcu.com 原创.仅仅公布于csdn博客, 如需转载,请注明出处,谢谢!   ...

  4. CC2540 USB DONGLE 使用 BTool 调试BLE 说明

    一.Btool软件界面介绍 首先您要将USBDONGLE插入电脑的USB口,然后打开双击打开Btool软件,打开后如下图所示: 在安装驱动的教程中,我们已经记住了我们的USB DONGLE的串口号,在 ...

  5. CC2540 USB Dongle 使用说明

    CC2540做的USB Dongle可以烧写不同的固件从而做很多PC端的应用,下面我们来介绍下下载固件的方法和一些典型应用: 下载接口: 3V3引脚连接到CC Debugger的Target Volt ...

  6. 蓝牙4.0BLE 手机控制 cc2540 CC2541 的串口透传功能已实现

           蓝牙4.0BLE 手机控制 cc2540 CC2541 的串口透传功能已实现        尽管蓝牙4.0 BLE芯片CC2540 是单芯片(即用户能够对它进行芯片级代码编写), 是80 ...

  7. PIC24FJ64GB002 with bluetooth USB dongle

    PIC24FJ64GB002 with bluetooth USB dongle I will explain my project (how to control a bluetooth USB d ...

  8. 蓝牙4.0BLE抓包(三) – 扫描请求和扫描响应

    版权声明:本文为博主原创文章,转载请注明作者和出处.    作者:强光手电[艾克姆科技-无线事业部] 1. 扫描请求和扫描响应 广播包含扫描请求SCAN_REQ和扫描响应SCAN_RSP. 扫描请求: ...

  9. 蓝牙4.0BLE抓包(二) – 广播包解析

    版权声明:本文为博主原创文章,转载请注明作者和出处.    作者:强光手电[艾克姆科技-无线事业部] 在使用EN-Dongle捕获和解析广播包之前,我们先了解一下BLE报文的结构,之后,再对捕获的广播 ...

随机推荐

  1. 29、Jquery Ajax

    Ajax Asynchronsous Javascript and XML(异步Javascript和XML). Ajax 是一种无需重新加载整个页面的情况下,更新局部页面的技术. 不是指一种单一的技 ...

  2. Call to undefined function curl_init()解决方法

    今天在使用php中的 curl 扩展时 在开启

  3. php 的一个pg_fetch_assoc的怪问题

    遇到过一种问题 . if($row=pg_fetch_assoc($result)){ while($row=pg_fetch_assoc($result)){ echo '3333'; $koCd ...

  4. [压缩解压缩] SharpZip--压缩、解压缩帮助类

    里面有三个类都是用于压缩和解压缩的.大家看下图片 看下面代码吧 /// <summary> /// 类说明:SharpZip /// 编 码 人:苏飞 /// 联系方式:361983679 ...

  5. [DEncrypt] C# DEncrypt加密/解密帮助类(转载)

    点击下载 DEncrypt.rar 这个类是关于加密,解密的操作,文件的一些高级操作1.使用 缺省密钥字符串 加密/解密string2.使用 给定密钥字符串 加密/解密string3.使用 缺省密钥字 ...

  6. 日志记录组件[Log4net]详细介绍

    转载:http://www.cnblogs.com/liwei6797/archive/2007/04/27/729679.html 因为工作中有要用到Log记录,找到一篇不错的文章,就转了过来. 一 ...

  7. (转)分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)

    分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...

  8. Linked Server for SQL Server 2012(x64) to Oracle Database 12c(x64)

    因为把两台数据库装了同一台机机器上,所以没有安装oracle Client的部分,Oracle部分使用netca创建的Net Service Name,使用tnsping以及登入方式的确认用户权限的以 ...

  9. linux命令行抓取网页快照-(xvfb+CutyCapt)

    目的: 在一台没有安装X-server的Debian服务器上实现命令行抓取网页快照 软件: xvfb(在命令行下实现对X-server的模拟,渲染图形进行缓存)-在没有安装X-Server的环境下提供 ...

  10. JavaScript设置右下角悬浮窗

    很多时候,我们需要设置一个dom节点到浏览器窗口的右下角.我们需要那个元素可以在窗口Scroll滚动或者变换大小resize的时候都可以保持浮动在那个位置.这个时候,我在网上看了看,发现很多框架什么啊 ...