STM32F4xx+USB3300实现高速USB数据传输,最高可达42MByte/s速度

2020-01-04 18:46发布

本帖最后由 wdluo 于 2015-7-2 09:38 编辑

前言:
最近正在做一个关于高速USB数据传输的项目,主要是用STM32F407+USB3300的方式来实现,话说STM32在这点有点不厚道,若把USB的高速PHY做在芯片上多爽啊,没办法,芯片不带高速PHY,只有外接USB3300了,还好库在这方面做得不错,简单的定义一个宏就支持外部的高速PHY了,USB传输数据速度也还不错,PC读数据基本上可以达30MByte/s以上,最高速度我测试到可以到42MByte/s,这就跟自己的电脑配置和系统有一定的关系了,不过总的来说,速度还是比较理想的,上位机驱动还是使用libusb-win32,程序比较简单。

程序功能:
1,单片机实现两个端点,一个Bulk IN,一个Bulk OUT,端点大小为512Byte;
2,PC端通过Bulk OUT发送4字节数据,其含义为PC即将读取的数据量;
3,单片机程序接收到PC下发的4字节数据后,循环将数据通过Bulk IN端点发送给PC,为了测试极限速度,每次发送的数据为64Kbyte,当然每次发送数据的时候都会检测前一次发送的数据是否发送完成;
4,PC端程序发送4字节的数据长度信息给单片机后,循环读取数据,每次读取64Kbyte(这个必须跟单片机每次发送的数据字节数一样),直到数据读取完毕;
5,计算数据传输的时间及数据传输的速度,打印输出消耗的时间和速度。

QQ图片20150629182222.jpg (34.05 KB, 下载次数: 1) 下载附件 2015-7-1 19:04 上传

固件: firmware.rar (1.01 MB, 下载次数: 523) 2015-7-2 09:38 上传 点击文件名下载附件
PC端程序: software.rar (287.37 KB, 下载次数: 437) 2015-7-2 09:38 上传 点击文件名下载附件

程序源码下载(包括PC驱动程序源码):
http://www.embed-net.com/thread-171-1-1.html
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
95条回答
hexenzhou
1楼-- · 2020-01-04 23:42
好牛x的样子。
DOER
2楼-- · 2020-01-05 00:39
谢谢分享!
slzm40
3楼-- · 2020-01-05 05:30
STM32F4  上面用的的USB库和常用的STM32 USB 全速库一致么? 最近我在用STM32F0x2的MCU时,发现有一个USB V1.0全速库,相比于常见V4.0全速的库,多了两个寄存器,还芯片自带上拉控制,整个库架构完全不一样,大量使用了指针和回调函数。
ZXF_CUG
4楼-- · 2020-01-05 10:16
 精彩回答 2  元偷偷看……
kkey
5楼-- · 2020-01-05 11:10
42MByte/s是不是可以传输高清视频了?
xwkm
6楼-- · 2020-01-05 12:30
kkey 发表于 2015-7-1 20:15
42MByte/s是不是可以传输高清视频了?

4Mbps 1080p h264都无压力

一周热门 更多>