该篇文章主要讲蓝牙设备的测试环境搭建以及能使用到的程序。
硬件设备的话是针对那些没有app的或者没有Android的app的环境下进行的。 这里列出的工具有:
设备固件等内容地址 :https://github.com/greatscottgadgets/ubertooth 包含环境安装、常见问题、wireshark联动、固件升级等内容等内容。
环境安装参照https://github.com/greatscottgadgets/ubertooth/wiki/Build-Guide –
1 2 |
sudo apt-get install cmake libusb-1.0-0-dev make gcc g++ libbluetooth-dev \ pkg-config libpcap-dev python-numpy python-pyside python-qt4 |
1 2 3 4 5 6 7 8 9 |
#wget https://github.com/greatscottgadgets/libbtbb/archive/2017-03-#R2.tar.gz -O libbtbb-2017-03-R2.tar.gz #tar xf libbtbb-2017-03-R2.tar.gz #cd libbtbb-2017-03-R2 #mkdir build #cd build #cmake .. #make #sudo make install #sudo ldconfig |
1 2 3 4 5 6 7 8 9 |
#wget #https://github.com/greatscottgadgets/ubertooth/releases/download/2017-03-R2/ubertooth-2017-03-R2.tar.xz -O ubertooth-2017-03-R2.tar.xz #tar xf ubertooth-2017-03-R2.tar.xz #cd ubertooth-2017-03-R2/host #mkdir build #cd build #cmake .. #make #sudo make install #sudo ldconfig |
1 2 3 4 5 6 7 |
#sudo apt-get install wireshark wireshark-dev libwireshark-dev cmake #cd libbtbb-2017-03-R2/wireshark/plugins/btbb #mkdir build #cd build #cmake -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu/wireshark/libwireshark3/plugins .. #make #sudo make install |
1 2 3 4 5 6 7 |
#sudo apt-get install wireshark wireshark-dev libwireshark-dev cmake #cd libbtbb-2017-03-R2/wireshark/plugins/btbredr #mkdir build #cd build #cmake -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu/wireshark/libwireshark3/plugins .. #make #sudo make install |
1 |
ubertooth-btle -f -c /tmp/pipe |
1 |
btle.data_header.length > 0 || btle.advertising_header.pdu_type == 0x05 |
选择了ubertooth one启动,必须让三个LED灯亮起来。其中两个绿色的LED(RST和1.8V)都亮说明Ubertooth成功插在了你的主机上,红色LED(USB LED)亮了表示Ubertooth可以通过USB端口进行通讯了。
参考链接:
https://github.com/greatscottgadgets/ubertooth/wiki/Getting-Started
http://www.freebuf.com/sectool/95426.html
http://www.freebuf.com/articles/wireless/106298.html
http://www.freebuf.com/news/88281.html
BLE设备是在37,38,39这3个频道进行广播,有时候是在一个频道广播,有时候是在这3个频道中轮询广播,而这些BLE Sniffer却只能监听某一个频道的数据,或者是轮询监听3个频道的数据,若只监听一个频道的数据,那么就有可能找不到不在这个频道广播的设备,当然用轮询监听3个频道的数据是可以解决这个问题,但是还是会有新的问题,那就是监听BLE设备连接问题,因为BLE设备在建立连接的时候,除了单频道广播的设备,其他多频道广播设备建立连接的频道是不固定的,这样就会导致轮询监听3个频道数据的BLE Sniffer存在丢失数据的可能。 Hollong BLE Sniffer内部使用3颗BLE芯片,同时抓取37,38,39这3个频道的数据。
参考链接:http://blog.csdn.net/viewtool2017/article/details/73887641
该工具相关程序资料下载地址http://www.viewtool.com/product/BLE-Sniffer/
下载并安装软件(一路下一步即可), 将设备通过USB线连接到电脑,等待驱动自动安装完毕。
启动软件,点击“Start”按钮,然后选择设备列表中的你需要查看数据的设备即可。
软件操作流程演示
NORDIC的意思是使用nrf的sdk的dongle(另一位一起参加众测的iot设备的师傅推荐用这种)通常叫 EN-Dongle。 德州仪器(TI)CC2540这种雪碧师傅说过这种嗅探方案优点是廉价,不足是只能嗅探到广播信道的数据包,无法捕获连接完成后也就是设备通信过程中的数据包。
引用地址 http://www.freebuf.com/articles/wireless/106298.html
在Radio Configuration tab选项中勾上Connect to Initiator Address并填入主机地址,捕抓设备将根据填入的地址去跟随主机与从机之间的数据连接,如果不选择这个选项,捕抓设备不会跟踪指定连接,会开始跟随在当前广播通道上(37)的出现第一个数据连接; 从机开始广播,捕捉到数据如下:
主机连接从机,捕抓数据如下:
参考链接:https://blog.csdn.net/zhuangjitongxue/article/details/49337445
SmartRF Packet Sniffer使用手册中文版:http://pan.baidu.com/s/1o6AbAqu
SmartRF Packet Sniffer使用手册英文版:http://pan.baidu.com/s/1o608kL8
软件需求:ble-sniffer_win_1.0.1和Wireshark
驱动及软件安装
安装CP2102驱动 :
解压“CP210x_VCP_Windows.zip”,解压后如下图,根据具体情况选择安装32位版本或64位版本驱动。
wireshark安装 : 此处正常下载安装即可
安装Sniffer : Sniffer是绿色软件,无需安装,解压后双击“ble-sniffer_win_1.0.1_1111_Sniffer.exe”即可运行。
上图中信息栏显示了Sniffer读取的串口是:COM25。设备列表中显示Sniffer已经抓取到两个BLE设备,编号分别是“0”和“1”。
选中一个BLE包(这里捕获的是广播包),展开树形目录,即可看到Wireshark对这个广播包的分析
参考链接:https://blog.csdn.net/lep150510/article/details/78770398
参考链接: http://www.waveshare.net/txt/CC-Debugger-Interface.htm
该物件要连到蓝牙芯片上后安装SmartRF Packet Sniffer查看数据可以针对一些设备接收数据进行收集
注:
使用手册https://wenku.baidu.com/view/fb7271af941ea76e58fa04e7.html
cc debugger 与 smartrfo4eb
答:该问题几乎是所有打算购买CC-Debugger仿真器用户的第一个问题,区别非常大,但是可以总结为下面三个方面
1、所支持的芯片差异
A) SmartRF04EB实测后支持的芯片有CC2430、CC2530、CC2531、CC2540,不支持CC2541
B) CC-Debugger支持的芯片非常之多,除了和04eb相同的仿真及下载功能外,还可以通过SPI总线控制CC系列的收发器。
2、能够连接的目标板电压不同
A) SmartRF04EB仿真器只能链接3.3V目标板电压,如果强行连接非3.3V接口,可能会烧坏芯片。仿真器目标接口的第2脚和第9脚是相同的,电压是3.3V
B) CC-debugger仿真器则支持宽目标板电压,从1.2V到3.6V均支持,为什么CC-Debugger能够支持这么宽的目标电压呢,这是因为CC-Debugger与目标芯片之间加了信号电平转换芯片:SN74AVC4T245DR。
3、所具有的的功能不同
A) 我们的SmartRF04EB只有仿真器的功能,如通过IAR软件在线仿真单步调试,以及通过Flash Programmer直接烧写hex文件
B) CC-Debugger除了具有和SmartRF04EB相同的功能外,还有具有协议分析的功能 使用CC-Debugger作为协议分析仪和独立的USBDongle协议分析仪有些区别,CC25xxUSBDongle作为协议分析仪时,独立工作,只需连接USB,就可以通过PacketSniffer抓包 而使用CC-Debugger用来协议分析时,需要连接目标芯片,连接的接口如上图,必须要接SPI。
答:到目前为止,用户反映的不识别的情况只有下面三种:
1、没有向CC-Debugger放着器目标接口 第2脚提供Target Voltage,没有电压的愿意有两种,一个是你的板子没有供电,第二个就是你的板子debugger接口的第2脚没有接VCC。详情参加焦点问题1 如果你用的不是标准的10Pin,而是只有DC DD RESET GND四个信号,开发板无法提供连接VCC时,可以用杜邦线将CC-Debugger目标接口的第2脚和第9脚短接,自己对自己供电。
2、你自己做的板子存在虚焊,CC2540等CC系列的芯片通常是QFN封装,这种封装手工焊时非常容易出现虚焊。
3、忘记按复位按键,连接目标板之后,记住一定要按复位按键,然后仿真器识别到目标芯片后,再进行下一步操作。
答:CC-Debugger是支持Win7 64位系统的,有对应的驱动程序。 安装下列软件会自动安装CC-Debugger驱动: SmartRF Studio、Flash Programmer、IAR For 8051、PacketSniffer等。如果软件已经安装,CC-Debugger驱动仍未能成功安装时,请到设备管理器中,右击带黄色感叹号的CC-Debugger,手动更新驱动程序, Flash Programmer软件自带的驱动程序位于(默认路径):C:\Program Files\Texas Instruments\SmartRF Tools\Drivers\cebal IAR For 8051软件自导的驱动程序位于(默认路径):C:\Program Files\IAR Systems\Embedded Workbench 6.0\8051\drivers\Texas Instruments
如有意成为绿盟科技博客作者,欢迎进入作者群讨论!
绿盟科技博客作者QQ群:695158981
绿盟科技博客作者微信群: