您尚未登录。

楼主 # 2023-02-28 01:24:50

metro
会员
注册时间: 2019-03-09
已发帖子: 441
积分: 485

怒开新坑,自制低成本高速USB分析仪(随缘更新)

最近参加了沁恒举办的[RISC-V MCU创新应用大赛](https://www.wch.cn/RISC-V-MCU-competition),虽然很可惜没能在限定的时间内完成所有工作,不过毕竟也做了一些有意义的事情。在deadline来临之际,这里我把之前整理的一些资料和已经完成的部分分享给大家,后续有时间会尽力完成这个设计,争取把BOM成本降低到可以自制的水平,做一个有实用价值的东西出来。
考虑到参加比赛的情况,这里暂时不会把参赛用的代码直接发出来,但后续会提供一个开源版本,希望能够和大家一起讨论相关技术,一起改进现有的设计。
由于楼主工作繁忙,更新进度比较随缘,还请大家见谅。

离线

楼主 #1 2023-02-28 01:51:18

metro
会员
注册时间: 2019-03-09
已发帖子: 441
积分: 485

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

既然要做一个USB分析仪,那自然要对它的原理有一个初步的了解,只知其然不知其所以然总归是不好的嘛。

在大多数应用中,USB分析仪也就是一个特殊的逻辑分析仪,通过抓取逻辑信号的方式来获取USB传输的物理层信号,之后通过层层翻译最终得到USB协议包、USB类乃至应用层的信息。当然,相对于一般意义上的逻辑分析仪,USB分析仪有以下几点不同:

  • USB的传输速率和当前的USB模式有关,如果是全速(12Mbps)或者低速(1.5Mbps)的话,普通的逻辑分析仪就可以实现(事实上sigrok等逻辑分析仪上位机已经支持USB全速和低速分析了);但是,高速(480Mbps)还是比较有难度的,这个速率超过了大部分逻辑分析仪可以达到的速度。

  • 从物理层来看,高速USB其实是个比较蛋疼的存在:一方面为了兼容性需要使用3.3V CMOS电平进行握手和一些特定状态的处理,一方面为了传输效率使用了17.78mA的差分电流源,而这两种电平需要两路驱动和接收器在不同状态下进行切换。因此,如果要抓取高速USB信号,也必须要有相应的设计才行。

  • 相对于通用的逻辑分析仪,USB传递的数据基本上是遵循一些上层协议的(如USB类),所以分析得到的数据时最好也要整理为相应形式以呈现给开发者,否则由于USB数据量大于大部分常见协议,可能会造成分析上的困难。

除了抓取物理层信号分析的方式,其实我们还有其它方式可以分析USB,比如在计算机上使用软件(例如Bus Hound等)进行抓包。实际上,软件抓包在大多数场合都要比USB分析仪好用,毕竟在计算机上更容易实现数据过滤和分析,但是,在有些场合,USB分析仪还是无法替代的:

  • 最典型的情况是在嵌入式开发USB主机相关应用。在嵌入式中,通常难以使用软件抓包的方式来分析,即使能够通过输出log等方式获取一些简略的信息,但终究无法反映所有的信息。

  • 对于USB无法正常使用的场合,USB分析仪能够抓取错误的波形和数据,而软件抓包只能在驱动层进行操作,对于USB控制器自动过滤或者忽略的情况则毫无办法。一个典型的例子是,Windows在获取描述符失败后无法识别设备,因此在驱动层面无法给出具体的错误信息。

  • USB分析仪可以抓取更精确的信息,例如时间戳等。由于驱动层给出的信息可能不准确(比如说驱动层反馈信息的时间有延迟),这个时候就需要USB分析仪补充相关信息了。

  • USB分析仪可以在一些特殊情况下使用,例如系统启动时、休眠时等。

考虑到USB分析仪的使用场景,我们通常可以假定其不需要分析物理层的内容,可以从协议层开始看起。那么,一个完整的USB分析仪系统,就可以分为以下这三个部分:

  • USB信号采集,也就是把抓取到的物理层信号翻译为USB协议包,并且附加一些信息(如时间戳等)。

  • USB数据转发,一般是把采集到的USB协议包传输到上位机,当然也可以保存下来之类的。

  • 上位机分析,也就是把USB协议包翻译成方便人类阅读的方式,从而高效的定位和分析问题。

不考虑USB物理层的原因不外乎以下几点:

  • 这部分内容以分析信号传输质量为主,通常由专业仪器测定,一般只有IC和PCB设计时会考虑,程序猿不用头疼这个事情。

  • 高速USB的鲁棒性其实挺强的,你想想一般情况下接个几米的线都没问题,如果不是板子画得太离谱,一般不需要往这个方面去考虑问题。

  • 退一步说,就算高速USB出问题,一般情况下都会回退到全速,这个就真的是“拉通了就能用”的程度,以USB堪比Windows的兼容性来看,只要全速USB能工作,剩下的问题应该就容易定位了。

luna-r04-top-preliminary.jpg

LUNA(现在硬件部分改名为Cynthion)就是一个完整的USB分析仪实现,也是本文的主要技术参考和灵感来源。可以从官方网站Cynthion - Great Scott Gadgets获取更多信息。

USB分析仪有一点和逻辑分析仪很像:作为调试程序时使用的工具,USB分析仪的上位机是非常重要的,一个成熟可靠的上位机才是吸引大家使用的关键。对于个人来说,开发USB分析仪上位机是一件比较庞杂的工作,好在我们可以搭上开源的快车,像Great Scott Gadgets开源的ViewSB(不得不说这个名字在汉语语境中十分微妙)Packetry都是可以参考的对象。

综上所述,如果要自制USB分析仪,我们至少需要完成以下工作:

  • 设计一套能够抓取USB信号,并将信号传输到上位机的硬件

  • 为这套硬件编写必要的代码,使之可以和上位机通信

  • 在上位机中适配新的USB分析仪

接下来的帖子也将围绕这些工作展开。

离线

#3 2023-02-28 08:59:38

lanlanzhilian
会员
注册时间: 2021-12-21
已发帖子: 94
积分: 69

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

期待楼主更新

离线

#4 2023-02-28 09:22:28

zjsx133
会员
注册时间: 2018-07-23
已发帖子: 60
积分: 45

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

支持楼主,这个开源吗

离线

#5 2023-02-28 09:27:23

david
会员
注册时间: 2018-03-05
已发帖子: 334
积分: 274.5

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

usb抓包都不算问题 协议分析软件比较繁琐 没有好的分析软件 抓到数据也是一头雾水

离线

#6 2023-02-28 09:52:41

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 437
积分: 304.5
个人网站

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

给楼主点个赞!

离线

#7 2023-02-28 09:58:56

llinjupt
会员
注册时间: 2020-12-21
已发帖子: 92
积分: 177

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

前排围观,期待尽量使用已经开源软件,这样参与度比较高,后期功能也容易扩展

离线

#8 2023-02-28 11:24:49

wxws
会员
注册时间: 2019-11-29
已发帖子: 26
积分: 34.5

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

这款不错,
比http://openvizsla.org/  好

离线

#9 2023-02-28 12:37:21

wonderfullook
会员
注册时间: 2021-04-09
已发帖子: 3
积分: 2.5

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

前排围观,坐等更新

离线

#10 2023-02-28 13:25:25

libc0607
会员
注册时间: 2018-12-13
已发帖子: 24
积分: 47.5

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

期待

离线

#11 2023-02-28 19:44:54

echo
会员
注册时间: 2020-04-16
已发帖子: 311
积分: 314.5

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

高速USB分析仪用得还是少一些,大部分时候直接在PC端通过驱动抓包就行了。我也看过openvizsla,用得还是少。
全速USB直接用逻辑分析仪即可,稍微好点的逻辑分析仪就带USB协议解析,很多隐藏的比较深的bug,只能通过逻辑分析仪来debug。

离线

#14 2023-03-03 12:32:26

Blueskull
会员
注册时间: 2020-02-20
已发帖子: 458
积分: 444.5

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

讲道理,楼主的比力科沁恒和Vizsla都好。楼主这个是俩PHY,一个上行一个下行,中间插一个FPGA,这个方案可以截获、注入信号,而且可以延长线缆,改善信号完整性问题。上面那几个都是上下行直连,和PHY并联,相当于三通,PHY只能被动收包,还影响信号完整性。

最近编辑记录 Blueskull (2023-03-03 12:32:41)

离线

#15 2023-03-05 19:02:54

histimes
会员
注册时间: 2022-05-31
已发帖子: 30
积分: 30

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

这淘宝上已经在卖了

离线

楼主 #16 2023-03-07 00:15:21

metro
会员
注册时间: 2019-03-09
已发帖子: 441
积分: 485

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

@Blueskull

LUNA确实底子挺不错的,这也是主要参考它的原因(这个项目没有参与过哈哈,顶多就是产品的使用者而已)。可惜HDL部分更新缓慢,现在HyperRAM都还没用上,等到USB分析以外的功能都做好估计得等到众筹发货了(是的,前年的众筹发货时间已经推迟到今年年中了),不过倒是已经有不少人已经有板子了(毕竟硬件都全开源了)。
我也有一块LUNA的板子,价格不贵(接近200),作为FPGA感觉性价比尚可。不过如果只是想做个USB分析仪的话,感觉还是有些浪费,所以在考虑做一个低成本方案,只做一件事情的话应该可以把FPGA砍成低容量的型号。

离线

楼主 #17 2023-03-07 00:17:48

metro
会员
注册时间: 2019-03-09
已发帖子: 441
积分: 485

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

@echo

是的,我这边目前调试USB也是以全速设备为主,逻辑分析仪其实就够用了。之前也用逻辑分析仪找出了不少USB相关的问题。
不过我也在考虑一个问题,如果USB分析仪可以做更高级的事情(比如做USB Class层面的分析),那样的话还是有意义的——因为总有一些情况是没法把USB设备直接接电脑调试的,而一个靠谱的USB分析仪能够以更小的代价解决问题。

离线

#18 2023-03-07 08:16:47

echo
会员
注册时间: 2020-04-16
已发帖子: 311
积分: 314.5

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

@metro
FPGA可以考虑AGM的AG10KL144H,价格便宜,焊接容易。还有内置64Mbits SDRAM的版本AG10KSDE176。

离线

#19 2023-03-07 09:40:59

johnnyzhong
会员
注册时间: 2023-03-06
已发帖子: 7
积分: 2

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

给楼主点赞,板凳准备好了

离线

楼主 #20 2023-03-07 12:53:40

metro
会员
注册时间: 2019-03-09
已发帖子: 441
积分: 485

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

echo 说:

@metro
FPGA可以考虑AGM的AG10KL144H,价格便宜,焊接容易。还有内置64Mbits SDRAM的版本AG10KSDE176。

这个挺适合做高配版本的,加上CH569可以实现功能完整的USB分析仪了,BOM成本可以做到80-100。
不过呢,这次我打算从低配版本做起,先验证下功能再确定高配版本的设计。
这一版计划使用更低端的MCU和FPGA,成本减半应该没啥问题,主要看功能是否满足需要。估计月底可以画好板子,之后看软硬件要调试到什么时候了。

离线

#21 2023-03-07 19:52:33

echo
会员
注册时间: 2020-04-16
已发帖子: 311
积分: 314.5

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

@metro
关键看需要多少LE资源了,AG10KL144H价格大约三四十,10k LE资源,要便宜只有1k资源AG1280不到10块钱,AGM还有2k,3k资源的,不过用得比较少,也没有P2P兼容的Altera型号。openvizsla用的是xc6slx9,这东西前一阵和cyclone4一样涨成天价了,不知道现在回来没。AGM价格倒是一直很稳定。

离线

楼主 #22 2023-03-07 23:39:41

metro
会员
注册时间: 2019-03-09
已发帖子: 441
积分: 485

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

@echo

嗯,所以接下来需要确认下需要使用多少资源,如果AG1280够用的话那当然是最好的(虽然估计只能实现部分功能,buffer长度也比较堪忧),不够用就上更大资源的FPGA呗。
如果没记错的话,LUNA的USB分析仪使用了4K左右的LUT(包括了一个完整的USB控制器,用于连接PC)。不过LUNA实现的功能太少,连基础的USB速度自动识别和时间戳功能都不支持,HyperRAM目前也是闲置的状态。

离线

#23 2023-03-08 08:08:35

astankvai
会员
注册时间: 2021-02-23
已发帖子: 28
积分: 28

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

楼主的这个是USB 2.0 HS 还是想USB 3.0?    手上有一个WCH 的 2.0 HS, 2000不到, 性价比还可以。 支持楼主!

离线

#24 2023-03-08 13:25:44

bigniudiy
会员
注册时间: 2022-04-18
已发帖子: 11
积分: 6

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

我是来劝退的,楼主我按照官方的文档自己做了一个,有些物料不好买,我还自己找了替代料(价格也贵)
接下来说说坑:
                 1,官方的LUNA固件,要自己编译,中间会遇到各种库不对的问题,不过按照官方文档的步骤来基本上都没问题
                 2,  固件烧录进去了,测试脚本运行也OK,但不代表这个板子就好了。请看第3
                 3,最重要的是上位机,目前官方的上位机,我还未成功运行出来,找到了viewsb的代码,也编译安装OK,但是按照文档运行,一直出错。
我也是卡在第3点,板子已经吃灰好几个月了。中间也了解到,LUNA 连接到WINDOWS 也是要安装驱动的
当初买物料打板花了2000+ ,楼主考虑一下

离线

#25 2023-03-08 14:23:45

Blueskull
会员
注册时间: 2020-02-20
已发帖子: 458
积分: 444.5

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

@bigniudiy

楼主是手撸USB协议栈的大神,这些问题不大

离线

楼主 #26 2023-03-08 14:53:26

metro
会员
注册时间: 2019-03-09
已发帖子: 441
积分: 485

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

@bigniudiy

我手头也有LUNA,是之前淘宝那个众筹的版本,从FPGA到上位机都跑过了,ViewSB可以正常抓包,Windows和Linux都能用。这方面有问题可以交流下。
另外,LUNA那个协议栈我也尝试过移植到其它FPGA板子,Sipeed Tang Primer 20K的USB demo就是俺搞的🤣不过导出Verilog这事儿做起来太麻烦,最好还是能用Lattice这样有全套EDA工具的FPGA来玩。

离线

楼主 #27 2023-03-08 14:55:00

metro
会员
注册时间: 2019-03-09
已发帖子: 441
积分: 485

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

astankvai 说:

楼主的这个是USB 2.0 HS 还是想USB 3.0?    手上有一个WCH 的 2.0 HS, 2000不到, 性价比还可以。 支持楼主!

目前是抓2.0的信号,有考虑用3.0的USB和上位机连接。
想抓3.0信号的话需要FPGA支持5G的serdes,这个成本就上去了,先不着急吧(反正3.0的spec还没看过(逃

最近编辑记录 metro (2023-03-08 15:18:43)

离线

#28 2023-03-09 07:58:50

echo
会员
注册时间: 2020-04-16
已发帖子: 311
积分: 314.5

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

@metro
那1k的AG1280不用想了,起码准备10k LE,这东西体积和成本都不太可能很低。当然最重要的还是上位机软件。
比如Saleae Logic这个逻辑分析仪,做得最好的其实是上位机软件。

最近编辑记录 echo (2023-03-09 08:09:41)

离线

#29 2023-03-09 10:05:16

bigniudiy
会员
注册时间: 2022-04-18
已发帖子: 11
积分: 6

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

@metro
看来是我板子的问题,回头有时间了拿出来再看看

离线

#30 2023-03-09 11:10:55

zzm24
会员
注册时间: 2018-05-07
已发帖子: 99
积分: 16

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

咸鱼500收了一个2.0 HS的,顺手拆给大家看看
_20230309110857.jpg

离线

#31 2023-03-09 13:18:35

Winston
会员
注册时间: 2023-03-09
已发帖子: 15
积分: 45

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

收藏了,如果有需要的话可以拉个qq群,对usb系列协议还是挺感兴趣的,当时调STM32USB的时候就碰到很多问题,Win端也确实缺少很多好用的抓包设备,包是抓到了,但是分析包很头疼。期待楼主的更多工作

离线

#32 2023-03-09 13:19:53

海石生风
会员
注册时间: 2019-07-02
已发帖子: 339
积分: 446

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

120通道逻辑分析仪

https://github.com/gusmanb/logicanalyzer

树莓派单片机24通道100Msps逻辑分析仪提升至支持120通道。

支持了菊花链方式级联五个设备,从而允许捕获120个通道。包括渲染引擎的性能改进和可见性改进、屏幕中的更多样本、自动选择捕获模式、编辑功能等。
摘自:硬汉嵌入式 https://www.bilibili.com/read/cv22245829?spm_id_from=333.999.0.0 出处:bilibili

离线

#33 2023-03-09 16:34:07

david
会员
注册时间: 2018-03-05
已发帖子: 334
积分: 274.5

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

设计不错 就是内存小 要是能跟sigrok连上 功能会更好些

离线

#34 2023-03-09 16:40:58

david
会员
注册时间: 2018-03-05
已发帖子: 334
积分: 274.5

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

这个实用还是要靠软件 最好有个结构可以第三方协议解析 这样开源出来大家好一起加东西

离线

#35 2023-03-09 16:44:00

david
会员
注册时间: 2018-03-05
已发帖子: 334
积分: 274.5

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

初步想的是 框架软件做基本的usb数据包标识 然后由协议分析插件对数据做进一步的解析和标注 最后交给框架软件做ui

离线

楼主 #36 2023-03-09 23:39:50

metro
会员
注册时间: 2019-03-09
已发帖子: 441
积分: 485

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

david 说:

设计不错 就是内存小 要是能跟sigrok连上 功能会更好些

其实sigrok可能未必是最好的,原因上面有总结过,主要是USB分析仪需要能分层次呈现相关信息。至于其它方案,我想到的比较好的有两种:

  1. 使用已有的开源USB分析上位机,比如上面提到的ViewSB(不过这玩意实在是太半成品了一些),或者是同一个作者正在优化的Packetry。这个比较适合实时捕获,不过功能上还比较简陋,需要优化。

  2. 将数据保存为其它工具可以打开的形式,之后可以进行离线分析。这个我能想到最好的软件是Wireshark,配合相应插件可以实现USB Class级的分析,并且有强大的功能支持(例如正则表达式筛选)。按理来说这个工作量不会很大,不过似乎没有看到过成品。

离线

#37 2023-03-10 09:48:37

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 437
积分: 304.5
个人网站

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

Wireshark+1

离线

#38 2023-03-10 11:15:55

Blueskull
会员
注册时间: 2020-02-20
已发帖子: 458
积分: 444.5

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

话说有个简单粗暴的方案 -- 用PHY收发2.0信号,然后通过3.0接口发出去。这样就可以假设大水管包的下小水管,也就是说所有处理可以都丢到上位机。

CH569+小FPGA+UTMI PHY似乎可行。有些厂商甚至提供了软PHY,可以IP核直接调用(高云),没错,是480M的,这个很逆天。

可以用FPGA收USB包,做个简单的识别解析,压到SRAM里面,然后乒乓模式把SRAM里的东西吐到CH569里面,之后就全是上位机的了。

现代多核x86处理器实时分析USB2.0应该是轻松的,虽然风扇可能会狂转,但是连续抓包连续分析还是香啊。

离线

楼主 #39 2023-03-11 00:42:20

metro
会员
注册时间: 2019-03-09
已发帖子: 441
积分: 485

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

@Blueskull

其实LUNA也是类似这样的方案,如果去看LUNA的代码(从抓USB信号到转发全都是nMigen写的,哦不这玩意现在应该叫做Amaranth了),就会发现逻辑其实很清晰:抓ULPI信号,加上包长度,一个FIFO给USB控制器,直接往一个端点发数据就完事了。
至于高云的那个SoftPHY 2.0,俺也玩过,确实能跑,但是成本其实不算低(记得单一个PHY至少需要2k的LUT,加上控制器大概4k),也就是说最少需要GW1N-LV4级别的才够用,成本其实比MCU要高一些(CH32V307也就十块出头)。

离线

#40 2023-03-11 01:34:56

曾半仙
会员
注册时间: 2020-01-08
已发帖子: 5
积分: 15

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

考虑下商业软件的上位机 比如totalphase的data center, ellisys的visualusb

离线

楼主 #41 2023-03-13 18:03:26

metro
会员
注册时间: 2019-03-09
已发帖子: 441
积分: 485

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

曾半仙 说:

考虑下商业软件的上位机 比如totalphase的data center, ellisys的visualusb

目前没有适配商业软件的计划,不过到时候应该会开源全部代码,可以自行适配。

离线

楼主 #42 2023-03-16 00:02:43

metro
会员
注册时间: 2019-03-09
已发帖子: 441
积分: 485

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

趁下班时间画了一版,大家猜猜这是什么方案😏
AQUA-Lite.png

离线

#43 2023-03-16 08:57:16

Blueskull
会员
注册时间: 2020-02-20
已发帖子: 458
积分: 444.5

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

metro 说:

趁下班时间画了一版,大家猜猜这是什么方案😏
https://whycan.com/files/members/1510/AQUA-Lite.png

这是要用PIO做USB PHY?也就是只能测FS/LS咯?

离线

#45 2023-03-16 10:56:12

wls
会员
注册时间: 2022-09-23
已发帖子: 1
积分: 1

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

metro 说:

趁下班时间画了一版,大家猜猜这是什么方案😏
https://whycan.com/files/members/1510/AQUA-Lite.png

RP2040的逻辑分析仪🤭

离线

楼主 #46 2023-03-16 11:19:25

metro
会员
注册时间: 2019-03-09
已发帖子: 441
积分: 485

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

Blueskull 说:
metro 说:

趁下班时间画了一版,大家猜猜这是什么方案😏
https://whycan.com/files/members/1510/AQUA-Lite.png

这是要用PIO做USB PHY?也就是只能测FS/LS咯?

是的,先从简单的做起,熟悉下上位机。
不过这个会按照自己的想法做一些功能,具体的话可以期待一下🤭

离线

#47 2023-03-19 11:58:18

1847123212
会员
注册时间: 2019-11-21
已发帖子: 61
积分: 37

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

@metro
寂寞哥不考虑用agrv2k做一个吗,2k逻辑可能勉强够用

离线

#48 2023-03-19 16:51:28

MosesChan
会员
注册时间: 2023-03-19
已发帖子: 4
积分: 4

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

大佬问一下他们的板子上用的带通孔的SWD接口是什么? 淘宝上有卖的吗?

离线

楼主 #49 2023-03-20 14:21:25

metro
会员
注册时间: 2019-03-09
已发帖子: 441
积分: 485

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

1847123212 说:

@metro
寂寞哥不考虑用agrv2k做一个吗,2k逻辑可能勉强够用

AGRV2K挺可惜的,带了DWC2但接了个只支持到全速的PHY,如果能够把ULPI拉出来就很合适,可以用2K逻辑做很多想做的事情了。

离线

楼主 #50 2023-03-22 12:03:38

metro
会员
注册时间: 2019-03-09
已发帖子: 441
积分: 485

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

来个图,有空就开始写代码
IMG_20230321_142531.jpg

离线

#51 2023-03-22 12:11:13

echo
会员
注册时间: 2020-04-16
已发帖子: 311
积分: 314.5

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

metro 说:

趁下班时间画了一版,大家猜猜这是什么方案😏
https://whycan.com/files/members/1510/AQUA-Lite.png

为啥你们都喜欢用TypeC,USB2.0 HS也只需要D+D-两个信号,MicroUSB足够了,TypeC多出来一堆无用管脚,焊接麻烦,体积还大。

离线

#52 2023-03-22 13:01:20

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 437
积分: 304.5
个人网站

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

实在受不了各种线了,统一多好。我现在单纯供电的都用6脚的type-c了。
DIY不打板的话,有type-c座子的小板可以买现成的。

离线

楼主 #53 2023-03-22 13:14:27

metro
会员
注册时间: 2019-03-09
已发帖子: 441
积分: 485

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

@echo
主要原因是我手上的AtoC线比其它线都多,插座也是😂当然USB-C也有优势,比如说电源触点多能过大电流(USB-C插座基本上都能过3A),对只有USB-C的笔记本更友好(CtoMicro的线基本上只能另外买),线材质量相对更好(毕竟成本本来就更高)等,正反插毕竟也还是更方便的。

最近编辑记录 metro (2023-03-22 13:16:35)

离线

#54 2023-03-22 19:26:35

usbbios
会员
注册时间: 2023-03-22
已发帖子: 8
积分: 61

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

很高兴能找到组织,支持LZ保持热情,把这项工作持续下去。

我不是硬件/固件开发者,但因为研究U盘USB启动需要,掉入USB协议分析仪大坑。
现在手头上已经有了支持HS抓包的USB packet viewer,ellisys USB explorer 200(二手乞丐版)两套分析仪。


我赞同楼上很多同学反复强调的观点:抓包不算问题,关键在上位机软件,协议解析。我也是花了大价钱才直观认识到这一点。

由于USB packet viewer的协议解析软件,不支持USB启动用到的几个UFI/SCSI命令解析,所以,我才不得不购买二手
ellisys USB explorer 200,他家的Mass storage解析很漂亮。

但我没想到从一个坑掉入更大的坑,ellisys USB explorer 200的协议解析,Pro版才有,basic版没有。basic版只有帧解析
(类似沁恒的USB2分析仪那样,对这样的没诚意解析,兴趣顿时大减)。升级需要单独付费,且协议解析软件费用 >> 分析仪硬件本身,
这就很坑了。

=========================================================================
看了一下ViewSB,decode部分似乎完成度也不高,这将是严重障碍,需要特别注意避坑。想要用起来,几个急需的
基础协议解析要完成,例如Mass storage/SCSI命令的解析。

离线

#55 2023-03-22 23:16:39

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 437
积分: 304.5
个人网站

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

Wireshark+2 还是投入Wireshark的怀抱吧

离线

#56 2023-03-24 10:19:40

usbbios
会员
注册时间: 2023-03-22
已发帖子: 8
积分: 61

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

最关心上位机解析软件。我是门外汉发言,仅供参考,说错了请多包涵。

一、USB packet viewer的上位机软件是实时捕获解析。其解析器开源,LUA script,
不知有没有参考价值。


二、数据保存、离线分析可行。能不能考虑Save as输出多种格式,便于交换。

wireshark用得不多,似乎是pcapng格式?前面有同学说ellisys的visualusb,
我们倒不一定适配它这个闭源软件。但其数据保存格式策略,是不是可以借鉴
一下? 

举例来说,其export格式有pkg、txt、xml等常见几种。pkt 实质就是自定义的TXT
文件,也是visualusb可以直接import的格式,而txt、xml不能import(蛋疼)。


这样一个枚举:
sample.jpg



pkt内容是这个样子:
Reset duration<3.742 192 317> time<-3.432 116 117>
PowerChange state<ON> time<0.000 000 000>
Suspended duration<0.892 170 267> time<0.310 076 233>
Reset duration<0.057 357 367> time<1.202 244 483>
HighSpeedHandshake status<Success> time<1.259 316 100>
RawPacket data<2D 00 10> speed<HS> time<1.277 298 550>
RawPacket data<C3 80 06 00 01 00 00 08 00 EB 94> speed<HS> time<1.277 298 883>
RawPacket data<D2> speed<HS> time<1.277 299 383>
RawPacket data<69 00 10> speed<HS> time<1.277 468 467>
RawPacket data<4B 12 01 10 02 00 00 00 40 55 41> speed<HS> time<1.277 468 900>
RawPacket data<D2> speed<HS> time<1.277 469 517>



xml内容是这样:
<Reset duration="3.7 seconds" time="-3.432 116 117"></Reset>
<Power state="OFF" time="0.000 000 000"></Power>
<Suspended duration="892.2 milliseconds" time="0.310 076 233"></Suspended>
<Reset duration="57.4 milliseconds" time="1.202 244 483"></Reset>
<HighSpeedHandshake status="Success" time="1.259 316 100"></HighSpeedHandshake>
...



txt内容是这样:
______________________________________________________________________________
Reset duration<3.7 seconds> time<-3.432 116 117>
______________________________________________________________________________
Power state<OFF> time<0.000 000 000>
______________________________________________________________________________
Suspended duration<892.2 milliseconds> time<0.310 076 233>
______________________________________________________________________________
Reset duration<57.4 milliseconds> time<1.202 244 483>
______________________________________________________________________________
HighSpeedHandshake status<Success> time<1.259 316 100>
______________________________________________________________________________
Container title<GetDescriptor (Device)> device<0 (1)> endpoint<0> status<OK>
speed<HS> time<1.277 298 550>
    Transaction type<SETUP> device<0 (1)> endpoint<0> status<ACK> speed<HS>
     time<1.277 298 550>
        Packet id<SETUP> devAddr<0> epNum<0> crc5<0x02> speed<HS>
         time<1.277 298 550>
        Packet id<DATA0> length<8> data<80 06 00 01 00 00 08 00> crc16<0x94EB>
         speed<HS> time<1.277 298 883>
        Packet id<ACK> speed<HS> time<1.277 299 383>
    Transaction type<IN> device<0 (1)> endpoint<0> status<ACK> speed<HS>
     time<1.277 468 467>
        Packet id<IN> devAddr<0> epNum<0> crc5<0x02> speed<HS> time<1.277
         468 467>
        Packet id<DATA1> length<8> data<12 01 10 02 00 00 00 40> crc16<0x4155>
         speed<HS> time<1.277 468 900>
        Packet id<ACK> speed<HS> time<1.277 469 517>
    Transaction type<PING> device<0 (1)> endpoint<0> status<ACK> speed<HS>
     time<1.277 770 500>
        Packet id<PING> devAddr<0> epNum<0> crc5<0x02> speed<HS>
         time<1.277 770 500>
        Packet id<ACK> speed<HS> time<1.277 770 850>
    Transaction type<OUT> device<0 (1)> endpoint<0> status<ACK> speed<HS>
     time<1.277 771 800>
        Packet id<OUT> devAddr<0> epNum<0> crc5<0x02> speed<HS> time<1.277
         771 800>
        Packet id<DATA1> length<0> crc16<0x0000> speed<HS> time<1.277 772 133>
        Packet id<ACK> speed<HS> time<1.277 772 483>

离线

#57 2023-04-25 11:50:18

iamseer
会员
注册时间: 2020-06-06
已发帖子: 66
积分: 43.5

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

metro 说:

来个图,有空就开始写代码

这硬件看起来不错。我今天又被迫掏出了砖块大的“沁恒USB1.1总线分析仪”来调试代码。可能由于产品过于古老,上位机虽然能用但是也不是很好用。希望楼主能开发出小巧的替代品。

离线

#58 2023-06-02 11:52:44

xzy2003
会员
注册时间: 2022-02-14
已发帖子: 1
积分: 1

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

@bigniudiy
请问一下,刚刚接触这个,现在环境基本配好了,不知道如何使用apollo烧录二进制文件,也不知道该烧的文件在哪,如果有空的话还望不吝赐教,万分感谢。

离线

#59 2023-06-06 16:18:25

bigniudiy
会员
注册时间: 2022-04-18
已发帖子: 11
积分: 6

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

xzy2003 说:

@bigniudiy
请问一下,刚刚接触这个,现在环境基本配好了,不知道如何使用apollo烧录二进制文件,也不知道该烧的文件在哪,如果有空的话还望不吝赐教,万分感谢。

首先你需要把boot loader烧录进MCU,这个需要JLINK或者其他烧录器。后面就简单了
至于boot loader哪里来,你在官方文档上应该能找到。当初我就是按照官方文档一步一步来的,出错都是一些软件版本问题

离线

#61 2023-06-09 11:48:52

dukefly
会员
注册时间: 2019-03-26
已发帖子: 7
积分: 7

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

metro 说:

搞的怎样了?

离线

#63 2023-06-10 15:11:44

Xure
会员
注册时间: 2020-02-09
已发帖子: 16
积分: 16

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

@metro, 看不出来,用的什么芯片,https://whycan.com/files/members/1510/IMG_20230321_142531.jpg

离线

#64 2023-06-10 17:10:45

xlbook
会员
注册时间: 2023-02-21
已发帖子: 13
积分: 18

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

@Xure rp2040呗,树莓派小芯片只有这个。

最近编辑记录 xlbook (2023-06-10 17:11:38)

离线

#65 2023-06-13 15:31:49

Xure
会员
注册时间: 2020-02-09
已发帖子: 16
积分: 16

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

有点疑问,用rp2040这个芯片能做USB分析仪?原理上行不通吧?搞不懂,麻烦能给解释一下不?(先不管HS/FS)

离线

#66 2023-06-13 18:19:16

marcus
会员
注册时间: 2021-03-19
已发帖子: 46
积分: 11

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

Xure 说:

有点疑问,用rp2040这个芯片能做USB分析仪?原理上行不通吧?搞不懂,麻烦能给解释一下不?(先不管HS/FS)

PIO+DMA,采样频率能提高不少的。

离线

#67 2023-06-14 17:03:31

Xure
会员
注册时间: 2020-02-09
已发帖子: 16
积分: 16

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

疑问的不是速率高低,而是觉得这样连物理上都跑不通;不知是怎么做分析仪的,哪位能说明一下

离线

#68 2023-07-23 12:12:08

usbbios
会员
注册时间: 2023-03-22
已发帖子: 8
积分: 61

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

最近无意中翻到一个开源USB2协议分析仪


https://github.com/ataradov/usb-sniffer

硬件配置:
CY7C68013A MCU + Lattice LCMXO2 FPGA + Microchip USB3343 PHY
===========================================

我对硬件不熟,但这个开源分析仪我最欣赏的地方就是:
上位机软件直接使用Wireshark,这简直太好了。

分析仪硬件再牛,上位机软件协议解析(尤其是Mass storage解析)
不行,最终使用效果=0。而这个开源分析仪既没花大力气,还解决
了关键问题!设计思路很好。

最近编辑记录 usbbios (2023-07-23 12:16:41)

离线

#69 2023-09-04 10:11:45

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 437
积分: 304.5
个人网站

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

@usbbios 这个硬件有人发车吗? 想搭个车。
或新开1趟车?

离线

#71 2023-09-08 11:28:02

zjsx133
会员
注册时间: 2018-07-23
已发帖子: 60
积分: 45

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

@usbbios
usb分析的软件很少啊

离线

#72 2023-09-18 21:44:53

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 437
积分: 304.5
个人网站

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

aozima 说:

@usbbios 这个硬件有人发车吗? 想搭个车。
或新开1趟车?

做回来了,体验挺好的,软件直接把68013的烧录和fpga的烧录全做了,不用额外安装软件和下载器。
同样还是这个软件,直接扔Wireshark里面就能抓包。
显示的内容也比较全,好在可以使用Wireshark的过滤器过滤掉不需要显示的内容。

!(usbll.pid == 0x69) IN
!(usbll.pid == 0x5a) NAK
!(usbll.pid == 0xa5) SOF

!(syslog.msg == "USB PHY error") && !(usbll.invalid_pid) && !(usbll.pid == 0x5a) && !(usbll.pid == 0xa5) && !(usbll.pid == 0x69)

usb-sniffer_20230918.jpg

离线

#73 2023-09-18 22:24:42

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 437
积分: 304.5
个人网站

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

好像翻车了,全速正常,高速时依然识别为全速,都是 Detected speed: Full-Speed。
可能得改下代码,让强制为高速看看行不行。

离线

#74 2023-09-18 23:14:58

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 437
积分: 304.5
个人网站

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

aozima 说:

好像翻车了,全速正常,高速时依然识别为全速,都是 Detected speed: Full-Speed。
可能得改下代码,让强制为高速看看行不行。

没翻!

Wireshark 的接口配置里面忘记改高速了。

离线

#75 2023-09-19 09:43:22

jordonwu
会员
注册时间: 2021-07-05
已发帖子: 50
积分: 31

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

@aozima
想玩,有多余的板子不?能转一块吗

离线

#76 2023-09-20 07:59:33

usbbios
会员
注册时间: 2023-03-22
已发帖子: 8
积分: 61

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

我被上位机软件解码器折磨消耗了太多时间、精力、金钱,
看到这个能用wireshark的,且老兄成功了,简直太高兴了。

我不是搞硬件&固件开发的,动手能力不强,先前也是苦于
没购买门路。老兄吃了螃蟹,看结果这个项目完成度较高,
实用性好很多,新开1趟车还是可行的。

aozima 说:

@usbbios 这个硬件有人发车吗? 想搭个车。
或新开1趟车?

aozima 说:

没翻!
Wireshark 的接口配置里面忘记改高速了。

离线

#77 2023-09-20 08:04:00

usbbios
会员
注册时间: 2023-03-22
已发帖子: 8
积分: 61

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

知道途径了,编辑掉原回帖,需要打板时的PCB文件。

最近编辑记录 usbbios (2023-09-20 20:03:52)

离线

#78 2023-09-20 08:20:13

seamas
会员
注册时间: 2019-12-01
已发帖子: 3
积分: 28

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

Wireshark不太熟悉,怎么设置解码usb协议?在哪里改成高速?

离线

#79 2023-09-20 14:11:14

lcfmax
会员
注册时间: 2018-04-13
已发帖子: 281
积分: 247.5

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

我也打样了一个,不过板子重新画,希望不翻车。
@aozima

离线

#80 2023-09-20 20:27:23

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 437
积分: 304.5
个人网站

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

我打了5片,PCB直接用git中的gerber文件就行了。

主要是LCMXO2-2000HC-5TG100C比较贵,再加上其它的物料。
光物料成本就200多了,算上加工费等接近300左右。

大佬在readme中重点强调了不建议用4TG100C后缀型号,可能会速度不太够。
以及68013假货多。

要是人多可以再凑1班车。

离线

#81 2023-09-20 23:38:28

usbbios
会员
注册时间: 2023-03-22
已发帖子: 8
积分: 61

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

@aozima

你好!因我不是专业搞这个的,许多术语也不懂。

我自己搞不定PCB相关文件,老兄方便的话,能不能转一块给我?300元的价格我能接受。

或者,不方便转让成品的话,嘉立创SMT下单要求上传BOM、坐标文件,这2个文件能发

一下吗?我让嘉立创再多贴几片成品。谢谢了!

最近编辑记录 usbbios (昨天 08:05:12)

离线

#82 昨天 09:36:37

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 437
积分: 304.5
个人网站

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

>BOM、坐标文件

kicad导出JLC可用的bom和坐标我也不熟,
我都让别人帮忙搞的。

离线

#83 昨天 10:01:28

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 437
积分: 304.5
个人网站

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

>老兄方便的话,能不能转一块给我?300元的价格我能接受。

嗯,我5块已经送3块给研究这块的朋友了,再转1块可以。
事先声明:
我确保再次测试后发出,快递方式和费用你自己决定。
到手后请马上测试,如此时损坏或快递原因损坏由我负责。
后续还有其它问题或硬件损坏,需要您自己维修处理。

可以的话,点那个站内信应该就可以给我发私信。

离线

#84 昨天 11:30:53

usbbios
会员
注册时间: 2023-03-22
已发帖子: 8
积分: 61

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

@aozima

OK,发顺丰。

请您私信告知我一下:联系方式、含邮费总价款、付款方式,我会尽快按要求支付。

我邮箱地址usbbios@163.com。

最近编辑记录 usbbios (昨天 11:38:53)

离线

#85 昨天 12:48:14

usbbios
会员
注册时间: 2023-03-22
已发帖子: 8
积分: 61

Re: 怒开新坑,自制低成本高速USB分析仪(随缘更新)

@aozima

我已拍下,您再检查一下,看有无需要说明修改的地方。

如没有,我将执行下一步付款操作。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn