蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法
2017-04-26 14:43
302 查看
蓝牙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, 目前还不是很稳定,这个时候你又不能确定是不是你代码的问题还是从机的问题, 我们通过抓取空中传递的数据包, 就能确定到底是在主机或从机的问题。
要说的是, 上图当中, 你要问我各个字段都是什么意思, 我还真立刻回答不出来,我们要学会就着问题去找答案,而不是背诵。
转载地址:http://blog.csdn.net/mzy202/article/details/32408223
我们需要明白的是,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, 目前还不是很稳定,这个时候你又不能确定是不是你代码的问题还是从机的问题, 我们通过抓取空中传递的数据包, 就能确定到底是在主机或从机的问题。
要说的是, 上图当中, 你要问我各个字段都是什么意思, 我还真立刻回答不出来,我们要学会就着问题去找答案,而不是背诵。
转载地址:http://blog.csdn.net/mzy202/article/details/32408223
相关文章推荐
- 蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法 【原创,多图】
- 【转】蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法--不错
- 蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法
- 蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法 【原创,多图】
- cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法
- cc2540 usbdongle 安装驱动失败的终极解决方法 【原创,多图】
- usb摄像头视频数据抓取初探
- C# 从网页抓取数据的一般方法
- PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
- asp.net 动态抓取网站数据(方法二)
- PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
- PHP抓取网络数据的6种常见方法
- 从网页抓取数据的一般方法
- 从网页抓取数据的一般方法
- php发送Http请求,抓取网页数据方法(cURL,file_get_contents,snoopy)
- 从网页抓取数据的一般方法
- asp.net 动态抓取网站数据(方法一)
- 跟ArthurXF学从雅虎抓取股票数据的方法
- 从雅虎抓取股票数据的方法
- PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)