[STM32F4] 使用STM32 F407作为被动USB设备对总线进行侦听

[复制链接]
447|10
 楼主| 内核558 发表于 2025-6-23 10:26 | 显示全部楼层 |阅读模式
用stm32 f407 的高速USB核心作为USB设备,没用有类,并有一个外部ULPI PHY(USB3300)连接到PC。在USB 3300的另一端,连接了一个USB VCP设备。
我想做的是让PC和USB VCP设备相互通信,
我在D+和D-线上获得的信号通过USB3300进入两个USB设备(stm32 f407和USB VCP设备),
我想通过ULPI PHY读取stm32 f407的USB HS控制器中接收的这些信号,
我想问的是这些数据在低电平时存储在哪里。


公羊子丹 发表于 2025-7-31 14:27 | 显示全部楼层
F407的USB模块本身就是作为active角色用的,要做监听估计不行,它不能被动读取非发给自己的包。
周半梅 发表于 2025-7-31 14:28 | 显示全部楼层
ULPI PHY只是物理层接口,STM32里拿到的是协议层数据,不能当USB抓包工具用的。
帛灿灿 发表于 2025-7-31 15:04 | 显示全部楼层
你想实现USB监听功能,其实更适合用Beagle USB这种专门的USB分析仪,STM32没这个能力。
童雨竹 发表于 2025-7-31 15:05 | 显示全部楼层
STM32 USB控制器里的FIFO确实存储接收数据,但只有在地址匹配的时候才会把数据搬进FIFO。
万图 发表于 2025-7-31 15:07 | 显示全部楼层
USB协议要求设备在握手前有地址分配,所以STM32接不到地址时就不会响应,不会收数据。
Wordsworth 发表于 2025-7-31 15:08 | 显示全部楼层
如果你想抓包,STM32这套方案做不到链路镜像,你可以用硬件Hub做端口复用,或者自己做个USB tap。
Bblythe 发表于 2025-7-31 15:10 | 显示全部楼层
STM32的USB Host模式也没法做到抓包,它是主动去问设备要数据的。
Pulitzer 发表于 2025-7-31 15:11 | 显示全部楼层
就算用DMA抓FIFO内容,也必须在USB核心接收到数据时才有意义,非目标地址不会有数据进来。
Uriah 发表于 2025-7-31 15:12 | 显示全部楼层
我之前试过用双口USB hub做类似方案,但还是得靠PC侧软件中转,不是真正意义的监听。
Clyde011 发表于 2025-7-31 15:12 | 显示全部楼层
建议你换用专门USB抓包芯片比如LAP-C或TotalPhase那类工具,STM32这块功能还是太受限了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

52

主题

52

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部