一. 声明 本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下: ![]() 第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。 第二篇:Transport层介绍,主要介绍蓝牙协议栈跟蓝牙芯片之前的硬件传输协议,比如基于UART的H4,H5,BCSP,基于USB的H2等 第三篇:传统蓝牙controller介绍,主要介绍传统蓝牙芯片的介绍,包括射频层(RF),基带层(baseband),链路管理层(LMP)等 第四篇:传统蓝牙host介绍,主要介绍传统蓝牙的协议栈,比如HCI,L2CAP,SDP,RFCOMM,HFP,SPP,HID,AVDTP,AVCTP,A2DP,AVRCP,OBEX,PBAP,MAP等等一系列的协议吧。 第五篇:低功耗蓝牙controller介绍,主要介绍低功耗蓝牙芯片,包括物理层(PHY),链路层(LL) 第六篇:低功耗蓝牙host介绍,低功耗蓝牙协议栈的介绍,包括HCI,L2CAP,ATT,GATT,SM等 第七篇:蓝牙芯片介绍,主要介绍一些蓝牙芯片的初始化流程,基于HCI vendor command的扩展 第八篇:附录,主要介绍以上常用名词的介绍以及一些特殊流程的介绍等。 另外,开发板如下所示,对于想学习蓝牙协议栈的最好人手一套。以便更好的学习蓝牙协议栈,相信我,学完这一套视频你将拥有修改任何协议栈的能力(比如Linux下的bluez,Android下的bluedroid)。 ![]() ------------------------------------------------------------------------------------------------------------------------------------------ CSDN学院链接(进入选择你想要学习的课程):https://edu.csdn.net/lecturer/5352?spm=1002.2001.3001.4144 蓝牙交流扣扣群:970324688 Github代码:https://github.com/sj15712795029/bluetooth_stack 入手开发板:https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-22329603896.18.5aeb41f973iStr&id=622836061708 ------------------------------------------------------------------------------------------------------------------------------------------ 二. 前言 首先在介绍以下内容之前,我们先来介绍下我们的CSDN课程,以下介绍内容都会在 CSDN课程 手把手教你蓝牙协议栈入门(点击我)中第二小节介绍。 三. Wireshark/Frontline/Ellisys工具的使用 1. Wireshark的使用 我们随便打开一个用我们协议栈为例,打开界面如下: ![]() 我个人是把Wireshark分为以下几个部分 1)菜单栏位 2)工具栏位 3)视图栏位 4)选中包汇总栏位 5)选中包raw data栏位 我们分别来介绍下以上栏位 1)菜单栏位,菜单栏位没啥好讲的,我主要说下着色规则吧,因为你可能用Wireshark打开可能没有颜色,所以对各个HCI数据包类型区分的不是很清晰 选择视图->着色规则 ![]() 要勾选对应的协议,然后打开视图->着色分组列表。就可以了 2)工具栏位,没啥好讲的,就是菜单栏位的一些快捷按钮,可以按照自己的喜好加进来 3)视图栏位,视图栏位我们有以下几个要说明的 ①过滤功能 可以看到着色规则的地方有规律关键字 ![]() 比如我们先看下HCI command,那么我们敲下bthci_cmd,会过滤出来hci command ![]() 还有很多过滤的命令,具体看着色器关键字 ②协议数据包 显示整个流程的封包,可以点击某一个封包会在视图④视图⑤中具体显示内容 4)选中包汇总栏位 ![]() 5)选中包raw data栏位 ![]() 2. Frontline的使用 Frontline工具其实有很多型号,就蓝牙而言比如有抓air log sniffer的,有抓HCI log的(需要接线到蓝牙芯片TX,RX,通过夹子接都蓝牙芯片飞出来的线) 我们此部分来讲通过Frontline来打开btsnoop,首先安装完Frontline后会显示以下几个内容 ![]() 目前我们只是用到Capture File Viewer.把btsnoop文件直接拖到Carture File Viewer就行了,打开效果如图所示: 在看btsnoop的时候一般只会用到图片中①②③ ①是显示raw data的,打开如图所示: ![]() 一般是配合着②来使用,②视图选中某一个封包后①会跳转到具体的位置。 ②是显示整个交互封包的流程的整个封包视图,打开如图所示: ![]() 分别包括具体消息的解析视图,协议分层视图以及协议整个封包视图,可以选中某一个命令,最左侧就会出现对应的解析 ③实现是整个交互流程流程图,打开如图所示: ![]() 这些流程图可以dump出来,可以从协议来区分,也可以让整个流程图出来,至于其他应用菜单,可以去查看下user manual手册。 3. Ellisys工具的使用 那到了Ellisys了,是我最喜欢的工具了·,Ellisys的air log sniffer要二三十万吧·一般不是专业开发蓝牙的估计不会选择使用这个工具,但是即使我们不买这个设备,安装了Ellisys的工具也可以看btsnoop的·下面我就一步一步教你通过Ellisys来打开btsnoop. 1)首先打开APP,这个没什么好说的,Ellisys不能直接把btsnoop拖进来打开 ![]() 2)选择File->Import,出现以下界面。 ![]() 3)选择HCI data.commands and events.点击next.会出现以下界面。 ![]() 4)然后选择BT snoop HCI,通过Browser来打开特定的文件。点击next ![]() 5)到了这步就不用管了,直接Finsh就好了·打开效果如图所示 ![]() 其中下图是协议选择框 ![]() 把鼠标放上去就会有对应的是什么协议提示出来。比如上图我们选择的是All layers,就是所以协议都会显示。 ![]() 这个框就是协议交互每包数据的显示 右边的框框就是特定选中数据包协议的解析 ![]() 另外,Ellisys还有到处audio,流程图等操作,这部分文档讲解起来比较麻烦,建议看我们视频教程吧! |
GMT+8, 2025-4-30 21:19 , Processed in 0.166156 second(s), 30 queries , Gzip On, MemCached On.
Powered by Discuz! X3.5
© 2001-2025 Discuz! Team.