0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

经典蓝牙抓包解析说明

泰凌微电子 来源: 泰凌微电子 2024-07-24 09:04 次阅读

无线通信协议的开发过程中,抓包器是工程师们不可或缺的工具。掌握抓包器的使用,就如同拥有了能够洞察无线电波的“火眼金睛”。这不仅使我们能够验证发出的数据包是否准确,检查流程或时序的合理性,还能帮助我们更便捷地定位和解决各种技术难题。对于蓝牙技术而言,抓包器的作用同样不可小觑。它强大的捕获功能让我们能够轻松获取空中传输的包的详细信息,包括频率、频率偏差、长度、信号强度以及具体传输内容等。此外,抓包器还具备出色的解析能力,能够按照协议层级对捕获的包进行分类,从而更有效地分析各个层面可能出现的问题。

本文将通过使用广泛认可的Ellisys抓包器为例,首先简要介绍其基本使用方法,然后结合实际案例,展示抓包器在蓝牙开发中的高效应用。我们会特别针对Ellisys在分析经典蓝牙连接过程、加密数据和通信频率等常用功能上进行解析。

对于低功耗蓝牙的抓包和解析,您还可以参考我们之前发布的经典教程:【技术专栏】蓝牙抓包工具Ellisys(上)——原来Debug这么容易。这将为您提供更多深入的指导和帮助。

1

ellisys抓包器用法简介

市面上众多品牌的抓包器中,Ellisys因其全面的功能和高效性能成为我们的首选工具。它采用全频带并发通道嗅探技术,能够实时捕捉所有蓝牙频点,提供便捷的使用体验和丰富的数据捕获。除了捕获空中数据包,Ellisys还能通过USBUART、SPI等接口获取HCI信息,进一步增强了其分析能力。内置的逻辑分析器功能允许我们将逻辑信号与空中包进行对比,为开发和调试过程中的问题定位提供了强有力的支持。

ddd6b660-4954-11ef-b8af-92fbcf53809c.png

图1.ellisys抓包器

首先,接通抓包器电源,并使用USB线直接连接至电脑的USB端口,避免使用USB集线器以保证数据传输的效率。接着,在电脑上打开Ellisys提供的上位机软件,按照图2的指示,进入菜单栏选择“Record”->“Recording Options”。在弹出的配置窗口中,根据您的需求选择要捕获的无线或有线协议、逻辑分析仪的信号通道等,完成设置后点击“OK”保存配置,即可开始高效的数据捕获与分析。

ddf93096-4954-11ef-b8af-92fbcf53809c.png

图2.抓包器上位机界面

de235e5c-4954-11ef-b8af-92fbcf53809c.png

图3.抓包器配置界面

点击工具栏中的Record按钮,抓包器就会开始抓取空中包,并将获取到的信息实时显示在下方的各个窗口中如图4所示,A区为抓到的所有空中包的总览,可以通过该区域上方的工具栏来筛选出各个协议的包或者包含指定数据的包;B区为选中空中包的详细信息,这里会自动解析出在A或C区选中的包的信道、能量以及内容等;C区则以时间为横轴,显示了空中包的时序,可以直观地看出空中包发送的时间以及长度;D区为包的原始信息,通过这里我们可以直接分析空中包的数据是否正确等。上位机的layout可能会有所不同,如果找不到这些区域可点击菜单栏中的layout->reset layout就可以将layout恢复成原始设定。

de3d4c22-4954-11ef-b8af-92fbcf53809c.png

图4.抓包器上位机各区域

我们已经概述了抓包器的基本操作,这为您提供了分析问题所需的初步技能。现在,让我们通过一些实际案例来深化对抓包器的理解,并探索其更高级的功能。通过这些示例,您将学习到如何更有效地利用抓包器,以提升您的分析技巧和效率。

2

蓝牙抓包解析实例

在以下实例中我们使用泰凌B91开发板作为Central device来连接蓝牙耳机,同时使用ellisys抓包器来抓取两者发送的空中包,并对连接流程以及数据交换等行为进行分析。

de751c06-4954-11ef-b8af-92fbcf53809c.png

图5.B91开发板

3

建立连接流程分析

首先,我们需要将抓包器开启,然后使用我们的开发板与耳机进行配对,抓包器就会抓取到建立连接的整个流程,观察抓到的空中包我们就会发现除了我们的设备发出的包还会有很多其它的包,这是因为往往我们生活环境中不只有一两个蓝牙设备,其它蓝牙设备发出的包也会被抓包器抓取到,这将会对我们的分析造成一定的困难,这时我们就可以使用filter来筛选出我们想要的设备,如图6所示,我们可以通过设备名称和address来选出想要的设备,然后将其添加到左侧,点击ok返回到主界面我们就可看到只剩下了选中设备发出或收到的包。

deb2cd8a-4954-11ef-b8af-92fbcf53809c.png

图6.通过filter筛选出需要抓取的设备

接下来从空中包中找到paging连接从这里开始,如图7所示,我们可以清晰地看到连接建立的全部流程,先通过page获取到基础的时钟、设备名等信息,然后通过LMP去交换双方的版本、特性、名字等,之后Central发起Host connection,Peripheral回复表示接受,最后双方都发送Setup Complete表示连接正式建立。

dedbf85e-4954-11ef-b8af-92fbcf53809c.png

图7.抓包器抓取到的连接流程

4

加密数据包分析

蓝牙协议为了保证数据的安全加入了加密的能力,大部分数据包都是在加密的情况下发送的,所以抓包器也为我们提供了解密的能力。找到上位机中的Security窗口,如果我们已经抓到了一些连接的话,这里将会把它们显示出来,如图7所示,可见Key的位置为missing,因为蓝牙是通过一个密钥来加密的,抓包器作为第三方无法得知密钥是什么,这就需要我们在开发过程中使用一些debug手段来获取,这里我们使用Telink开发板的串口将link key打印出来,然后双击missing就会弹出一个输入框,将获取到的key输入其中点击ok就可以发现原本加密的空中包已经可以看到真实的内容了。

df08131c-4954-11ef-b8af-92fbcf53809c.png

图8.Security窗口

df25e0ae-4954-11ef-b8af-92fbcf53809c.png

图9.输入link key进行解密

df3f5552-4954-11ef-b8af-92fbcf53809c.png

图10.解密出来的空中包

5

通信频点分析

由于生活中有大量设备使用着与蓝牙相同的2.4G频段,这都会对蓝牙通信造成干扰,因此蓝牙选择使用跳频技术来对抗干扰,抓包器也为我们提供了相应的功能来让我们可以直接看到一段时间内空中各个频段包的使用情况,这将极大地便利了我们对此类问题的分析。

同样我们需要在上位机中找到对应的窗口,这里使用的是Spectrum和Channels两个窗口,前者可以直观显示空中所有频点上的包在时序上的情况,而后者则是统计了各个频点上的包数量以及丢包率等。如下图所示,红框圈住的地方是环境中WiFi的信号,而我们的蓝牙为了提高通信质量就将这一块干扰严重的频段避开了,从图中可以看到这些频点中的蓝牙包数量非常的少。

df72acc2-4954-11ef-b8af-92fbcf53809c.png

图11.Spectrum和Channels窗口

6

总结

抓包器的用途远不止于此,它在经典蓝牙开发中扮演着至关重要的角色。精通抓包器的操作,不仅能帮助我们深入理解蓝牙通信的细节,还能显著提高开发效率。因此,熟练掌握抓包器的使用方法对于蓝牙开发者来说是非常宝贵的技能。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 蓝牙
    +关注

    关注

    114

    文章

    5803

    浏览量

    170150
  • 无线通信
    +关注

    关注

    58

    文章

    4557

    浏览量

    143490
  • 泰凌微
    +关注

    关注

    7

    文章

    146

    浏览量

    10806

原文标题:【技术专栏】经典蓝牙抓包解析说明

文章出处:【微信号:telink-semi,微信公众号:泰凌微电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    USB软件分析工具之三:Wireshark-华山派华山剑法

    Wireshark虽然以以太网闻名于江湖,尤其是其分析能力,借助USBPcap其也在USB领域也占有一席之地。好比“以气为体、以剑
    的头像 发表于 05-02 21:41 3.4w次阅读
    USB软件<b class='flag-5'>抓</b><b class='flag-5'>包</b>分析工具之三:Wireshark-华山派华山剑法

    WIZnet芯片通讯时怎么?

    `Q:WIZnet芯片进行公网通讯或者芯片间通讯的话怎么?A:芯片和PC通讯的话可以直接通过Wireshark,如果芯片和公网直接通讯或者通讯是发生在芯片之间,则没有办法直接
    发表于 03-13 11:32

    Packet Sniffer遇到的问题

            我用的是CCDebuger +CC2531 USB Dongle,按照TI官方文档的顺序进行,每次出来的数据基本上全都是错的,按用户指南说的是数据解析错误,但是具
    发表于 06-01 02:30

    请问蓝牙USB Dongle是否可以蓝牙2.0数据

    各位社区朋友, 现在蓝牙USB Dongle可以蓝牙4.0数据,是否可以2.0数据呢?
    发表于 09-26 10:32

    使用wireshark分析TCP及UDP的资料详细说明

    本文档的主要内容详细介绍的是使用wireshark分析TCP及UDP的资料详细说明
    发表于 05-09 17:36 27次下载
    使用wireshark<b class='flag-5'>抓</b><b class='flag-5'>包</b>分析TCP及UDP的资料详细<b class='flag-5'>说明</b>

    USB数据软件程序下载

    USB数据软件程序下载
    发表于 09-09 16:01 9次下载

    ZigBee3.0数据解析

    ZigBee3.0是ZigBee联盟推出的可以互联互通的标准协议,用之前的Packet Sniffer包工具是无法解析ZigBee3.0的数据,因ZigBee3.0的安全机制所有的数据
    发表于 02-28 11:48 2661次阅读
    ZigBee3.0数据<b class='flag-5'>包</b><b class='flag-5'>解析</b>

    SRT协议的工作流程、数据结构及Wireshark分析

    摘 要:本文从SRT协议的工作流程谈起,着重介绍和解析了SRT协议的数据结构,并举例说明如何利用Wireshark软件进行链路故障分
    的头像 发表于 05-17 10:08 3486次阅读

    【RT-Thread学习笔记】好用高性价比的BLE蓝牙

    作为基于蓝牙协议的开发者,少不了各种需要分析蓝牙报文的应用场景;而专业的蓝牙
    的头像 发表于 07-30 11:45 2748次阅读
    【RT-Thread学习笔记】好用高性价比的BLE<b class='flag-5'>蓝牙</b><b class='flag-5'>抓</b><b class='flag-5'>包</b>器

    蓝牙包工具Ellisys—原来Debug这么容易

    在开发BLE的时候,市面上有多种包工具,对于多通道/多连接/蓝牙Mesh 的开发,往往需要一些更强大的工具,这里推荐使用Ellisys的蓝牙
    的头像 发表于 04-20 09:38 1.1w次阅读

    基于树莓派的蓝牙协议

    前段时间尝试用虚拟机安装Ubuntu系统和一款软硬件开源的蓝牙器Ubertooth One来搭建蓝牙嗅探环境,从官方推荐的Ubuntu16.04版本一直测试到22.04版本
    的头像 发表于 07-04 17:11 869次阅读
    基于树莓派的<b class='flag-5'>蓝牙</b>协议<b class='flag-5'>抓</b><b class='flag-5'>包</b>

    如何抓取app数据 网络原理及实现

    要实现对App的网络数据,需要监控App与服务器交互之间的网络节点,监控其中任意一个网络节点(网卡),获取所有经过网卡中的数据,对这些数据按照网络协议进行解析,这就是
    发表于 08-11 09:30 3199次阅读
    如何抓取app数据<b class='flag-5'>包</b> 网络<b class='flag-5'>抓</b><b class='flag-5'>包</b>原理及实现

    如何利用eNSP进行实验?

    使用Wireshark工具进行ping,并分析报文
    的头像 发表于 09-12 09:32 4220次阅读
    如何利用eNSP进行<b class='flag-5'>抓</b><b class='flag-5'>包</b>实验?

    解析经典蓝牙设备连接过程

    应用中,蓝牙设备发现、连接、断开等使用场景较为常见,其中设备连接是至关重要的一环,它涵盖了设备之间建立连接的整个过程。本文将对经典蓝牙设备连接过程进行解析,带大家一起了解连接的整个过程
    的头像 发表于 06-05 09:11 2160次阅读
    <b class='flag-5'>解析</b><b class='flag-5'>经典</b><b class='flag-5'>蓝牙</b>设备连接过程

    CentOS中使用tcpdump

    CentOS中使用tcpdump
    的头像 发表于 10-28 14:48 218次阅读