蓝牙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 抓取数据方法--不错

    原文网址:http://blog.csdn.net/mzy202/article/details/32408223 蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet ...

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

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

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

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

  4. CC2540 USB Dongle 使用说明

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

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

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

  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. [RxJS] Combination operators: concat, startWith

    Some Observables may complete, and we may want to append another Observable to the one which just co ...

  2. Qt Creator 你必须要掌握的快捷操作

    多使用快捷键能显著提高工作效率,尽可能减少键盘,鼠标之间切换所浪费的时间.我这里列出个人认为非常重要必须掌握的 Qt Creator 快捷键.看你知道几个? . 1 .Ctrl(按住)+ Tab快速切 ...

  3. SpringMVC + Spring 3.2.14 + Hibernate 3.6.10 集成详解

    注:此文档只说明简单的框架集成,各个框架的高级特性未涉及,刚刚接触框架的新人可能需要参考其他资料. PS:本次练习所用jar包都能在此下载到:http://pan.baidu.com/s/1sjmgd ...

  4. Android 中 SQLite 性能优化

    数据库是应用开发中常用的技术,在Android应用中也不例外.Android默认使用了SQLite数据库,在应用程序开发中,我们使用最多的无外乎增删改查.纵使操作简单,也有可能出现查找数据缓慢,插入数 ...

  5. android MediaCodec 音频编解码的实现——转码

    原文地址:http://blog.csdn.net/tinsanmr/article/details/51049179 从今天开始 每周不定期更新博客,把这一周在工作与学习中遇到的问题做个总结.俗话说 ...

  6. js时间字符串转Date对象

    var DATE_REGEXP = new RegExp("(\\d{4})-(\\d{2})-(\\d{2})([T\\s](\\d{2}):(\\d{2}):(\\d{2})(\\.(\ ...

  7. opencar二次开发常用代码

    <?php //创建Registry对象 //注册所有公共类 //创建Front类对象,作为请求分发器(Dispatcher) //根据用户请求(url)创建控制器对象及其动作. // 在Fro ...

  8. 【转】iOS开发UI篇—程序启动原理和UIApplication

    原文 http://www.cnblogs.com/wendingding/p/3766347.html   一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程 ...

  9. 基于ProGuard-Maven-Plugin的自定义代码混淆插件

    介绍 大家可能都会碰到一些代码比较敏感的项目场景,这个时候代码被反编译看到就不好了,这个时候就需要代码混淆插件来对代码进行混淆了. 基于Maven的项目一般会去考虑使用proguard-maven-p ...

  10. ios开发之UIImageView

    废话少说,直接进入正题!!! 1.创建一个UIImageView: 创建一个UIImageView对象的几种方法: UIImageView *imageView1 = [[UIImageView al ...