USB协议分析仪

news/2024/11/22 5:45:45/

1 ULPI PHY passive sniffing mode
概念: non driving, no pull-up, no pull-down

Function Control.opMode = 1; // non-Driving
OTG Control.DpPulldown = 0; // no pull-down
OTG Control.DmPulldown = 0; // no pull-down
USB IO.ChargerPullupEnDP = 0; // no pull-up
USB IO.ChargerPullupEnDM = 0; // no pull-up

2 Beagle USB Analyzer
2.1 Beagle USB 12 Analyzer
在USB Host和Device之间的DP/DM上连接一个Fairchild USB1T11A,Fairchild USB1T11A连接到隔离器件ADUM1400后,隔离器件再连接到FPGA;FPGA通过CY7C68013A连接到PC。
Figure 2-1 Beagle USB 12 Analyzer

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pvb3NlbnBpbg==,size_16,color_FFFFFF,t_70

2.2 Beagle USB 480 Analyzer
USB 2.0的协议分析仪有2个PHY,支持LS/FS的Fairchild USB1T11A,支持HS的USB3300(passive sniffing mode)。
Figure 2-2 Beagle USB 480 Analyzer

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pvb3NlbnBpbg==,size_16,color_FFFFFF,t_70

2.3 Beagle USB 5000 v2 analyzer
有2块PCB,下层是模拟PCB,上层是数字PCB,数字PCB上包括FPGA和CYUSB3014 BZX,其中CYUSB3014 BZX负责上传数据到PC,该芯片在数字PCB上的位置靠近Target Host Port口。
It uses British standard plug.

2.4 URLs
Review: Total Phase Beagle USB 12 Analyzer
https://eleccelerator.com/review-total-phase-beagle-usb-12-analyzer/

Beagle USB 480
https://www.bunniestudios.com/blog/?p=4106

3 OpenVizsla
3.1 FPGA-based USB analyzer
在USB Host和Device之间的DP/DM上连接一个USB3343(passive sniffing mode),USB3343连接到FPGA;FPGA通过FIFO模式连接到FT2232H,FT2232H连接到PC。
Figure 3-1 OpenVizsla board

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pvb3NlbnBpbg==,size_16,color_FFFFFF,t_70

3.2 URLs
Open Hardware FPGA-based USB analyzer
http://openvizsla.org/
https://github.com/openvizsla

USB 2.0 Bus/Protocol Analyzer Hardware/Software Comparison
http://www.summitsoftconsulting.com/UsbAnalyzers.htm

4 Teledyne LeCroy NRZI Waveform
Choose Packet - Right Click - Show Raw Bits

5 Windows软件抓包工具
5.1 Bus Hound

5.2 USBPcap
USBPcap - USB Packet capture for Windows
https://desowin.org/usbpcap/

6 Linux usbmon抓包
6.1 sniff原理
binary格式路径:/dev/usbmonX
text格式路径:/sys/kernel/debug/usb/usbmon

获得usbmon的主设备号:cat /proc/devices
创建binary节点:
mknod /dev/usbmon0 c $major 0
mknod /dev/usbmon1 c $major 1
mknod /dev/usbmon2 c $major 2

6.2 usbmon tcpdump
1)mount -t debugfs none_debugs /sys/kernel/debug
2)cat /sys/kernel/debug/usb/devices - 确定usb的总线号
3)tcpdump -D
4)tcpdump -i usbmon1 -s 128 -w /data/usb_sniff.pcap &
5)killall tcpdump
6)wireshark工具打开usb_sniff.pcap

Intel APL (Gen9, A39X0) 8-port MPH xHCI
usbmon1 - xHCI LS/FS/HS
usbmon2 - xHCI SS

6.3 Wireshark过滤规则
1)usb.src == "1.6.1" and usb.dst == "host" - 改到对应的USB bus_no.addr.ep_no
2)usb.src == host and ublox

6.4 USB协议URB解析Wireshark插件
usb_table = DissectorTable.get("usb.bulk")
usb_table:add(0xff, my_proto)
usb_table:add(0xffff, my_proto)

6.5 usbmon sysfs接口
cat /sys/kernel/debug/usb/usbmon/1u > /sdcard/1u_usbmon.txt
命令中1u表示Bus=01,通过命令获得cat /sys/kernel/debug/usb/devices

cd /sys/kernel/debug/usb/usbmon
反向查找,查找不包含"1:003:2"(总线号:设备地址:端点号)字符串的其它内容
cat 1u  |grep -v "1:003:2"
排除多个字符串:cat 1u  |grep -vE "1:003:2|1:004:1"

6.6 usbfs
echo 1 > /sys/module/usbcore/parameters/usbfs_snoop

7 Abbreviations
DSLogic:Dream Source Lab


http://www.ppmy.cn/news/59496.html

相关文章

JavaEE 第二周

计算机Z20-第2周作业 总分&#xff1a;100分 得分&#xff1a;100.0分 1 . 单选题 中等 15分 下面关于JSP注释的说法中&#xff0c;正确的是&#xff08;&#xff09; A.JSP注释语法格式&#xff1a;<!-- 注释信息 --> B.JSP注释不会发送到…

Java 的简要介绍及开发环境的搭建(超级详细)

图片来源于互联网 目录 | CONTENT Java 简介 一、什么是 Java 二、认识 Java 版本 三、选择哪个版本比较好 搭建 Java 开发环境 一、下载 Java 软件开发工具包 JDK 二、配置环境变量 自动配置 手动配置 三、下载合适的 IDE IntelliJ IDEA Visual Studio Code Eclip…

第十六章 预制件prefab(上)

本章节我们介绍一下“预制件”&#xff0c;也有人叫“预制体”&#xff0c;也就是Prefab。在游戏世界中&#xff0c;那些自然环境的游戏对象&#xff0c;我们可以提前创建在场景中&#xff0c;这个大家能够理解。但是&#xff0c;有些游戏对象&#xff0c;需要根据游戏逻辑来通…

matlab循环语句详解

MATLAB中的循环语句是一种方便的编程结构&#xff0c;可以帮助处理迭代过程中的数据和控制流。MATLAB提供了三种基本类型的循环语句&#xff1a;for循环、while循环和do-while循环。这篇文章将介绍这些循环语句&#xff0c;并提供一些易于实践的示例。 1. for循环 for循环是一…

MySQL性能监控全掌握,快来get关键指标及采集方法!

数据库中间件监控实战&#xff0c;MySQL中哪些指标比较关键以及如何采集这些指标了。帮助提早发现问题&#xff0c;提升数据库可用性。 1 整体思路 监控哪类指标&#xff1f; 如何采集数据&#xff1f; 第10讲监控方法论如何落地&#xff1f; 这些就可以在MySQL中应用起来。…

vue3 - 超详细头像裁剪并上传到服务器,支持按照自定义比例裁切图片效果组件插件(详细示例源码教程,一键复制运行开箱即用)

效果图 大部分都贼难用,而且全是bug。。并且很少有 vue3的,全是 vue2。。 本博客实现了在 vue3.js 项目中,实现图像上传后并按一定的比例进行裁剪的示例功能源码,支持各种参数、样式修改, 示例有 Element Plus + Vue3.js 版本,也有纯 Vue3.js 版本(无 UI 框架搭配),按…

重装系统后,MySQL install错误,找不到dll文件,或者应用程序错误

文章目录 1.找不到某某dll文件2.mysqld.exe - 应用程序错误使用DX工具直接修复 1.找不到某某dll文件 由于找不到VCRUNTIME140_1.dll或者MSVCP120.dll&#xff0c;无法继续执行代码&#xff0c;重新安装程序可能会解决此问题。 在使用一台重装系统过的电脑&#xff0c;再次重新…

C++的类

文章目录 class定义类声明和定义不分离成员函数声明与定义的分离 类的访问限定符类的实例化类对象的大小this指针 引入&#xff1a;什么是类呢&#xff1f; 在C语言阶段,结构体成员只能是它的属性,这个结构体就相当于张三,小时候它只被赋予了名字,性别,家庭住址等属性,但是他没…