黑云龙霸 发表于 2017-9-22 09:16:07

FULL-SPEED USB中断传输提升传输速度


大家好,现在在做一个接口板项目,开发平台STM32F105RBT6,使用USB,3路USART(115200bps)、2路can(500kbps)与上位机的通讯。
现在项目做了一部分,使用中断传输方式传输数据,因为USB是FULL-SPEED设备,CAN只能做到50K,达不到项目需求。


现在碰到困难,中断传输速度只有64KB/s,太慢了。怎么才能提高全速设备中断传输的速度呢?

MrJiu 发表于 2017-9-22 09:25:40

加buffer,和使用DMA!!!

黑云龙霸 发表于 2017-9-22 10:25:19

MrJiu 发表于 2017-9-22 09:25
加buffer,和使用DMA!!!

不好意思,不明白加buffer是在哪里加,可以详细说一下吗

MrJiu 发表于 2017-9-22 14:23:32

黑云龙霸 发表于 2017-9-22 10:25
不好意思,不明白加buffer是在哪里加,可以详细说一下吗

就是增大缓存。。。。

xiaoxiao0932 发表于 2019-5-16 13:34:56

MrJiu 发表于 2017-9-22 14:23
就是增大缓存。。。。

你好!
请教有关STM32 USB CDC通信的问题
1、我使用的是stm32L476RG,使用USB CDC 将flash中的数据读取到pc,USB的传输速度只能在300K/S左右,看到你在论坛中说过增大缓存可以提高速度,这个缓存指的是什么?发送的数组?
2、如何使用DMA
STM32CubeMX生成的代码中,有关USB-DMA的操作在什么地方?如何使用的,还请多多指教啊

天臆弄人 发表于 2019-5-17 09:00:58

xiaoxiao0932 发表于 2019-5-16 13:34
你好!
请教有关STM32 USB CDC通信的问题
1、我使用的是stm32L476RG,使用USB CDC 将flash中的数据读取到 ...

你听他瞎扯,中断传输,全速就是64K的速率,USB没有DMA配置,只有RAM到RAM配置,
要想速率快看下我发的贴子,USB发速度可以到700K,接收可以到650K

xiaoxiao0932 发表于 2019-5-17 09:31:17

天臆弄人 发表于 2019-5-17 09:00
你听他瞎扯,中断传输,全速就是64K的速率,USB没有DMA配置,只有RAM到RAM配置,
要想速率快看下我发的贴 ...

还请帮忙啊,我在你的主题中只找到了测试了下STM32f103 CDC 的速率
只有截图,没有代码相关的信息啊,具体有关USB CDC传输数据的相关内容在哪个帖子里呢?

天臆弄人 发表于 2019-5-17 09:33:03

xiaoxiao0932 发表于 2019-5-17 09:31
还请帮忙啊,我在你的主题中只找到了测试了下STM32f103 CDC 的速率
只有截图,没有代码相关的信息啊,具 ...

你的是F4 我的是F1呀,关于速率问题,和上位机有关,

xiaoxiao0932 发表于 2019-5-17 09:41:12

天臆弄人 发表于 2019-5-17 09:33
你的是F4 我的是F1呀,关于速率问题,和上位机有关,

USBD_CDC_SetTxBuffer(&USBD_Device, (uint8_t*)pBuf, 64);
USBD_CDC_TransmitPacket(&USBD_Device);
我用的是L476RG进行USB cdc数据传输的,通过上面的函数发送到PC端,如果将64改为更大256/512/1024/就会出现数据丢包的现象。
我想问的是:
1、你在发送数据时,每包数据的长度为多少?64? 128?256?512?1024?
2、比如说给PC端发送一个50M的数据,多次发送,PC端每次接收的数据是否一致?是否验证过?
3、在满足问题2 的情况下,USB的传输速度能达到多少?

xiaoxiao0932 发表于 2019-5-17 09:48:38

天臆弄人 发表于 2019-5-17 09:33
你的是F4 我的是F1呀,关于速率问题,和上位机有关,

这个审核机制时间好长啊
页: [1] 2
查看完整版本: FULL-SPEED USB中断传输提升传输速度