⚠️
你好。。谢谢你来参加论坛。令人兴奋的消息!我们现在正在移动到我们的新论坛平台,将提供更好的功能,并包含在主对话网站的过程。所有帖子和账号都已迁移。我们现在只接受新论坛上的流量-请在//www.xmece.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
7个职位/0个新职位
最后一篇文章
技术
离线
最后一次见到:3个月2周前
已加入:2018-07-16 12:09
USB\ CDC DMA

你好,
我想把大量的数据传输到USB。我使用的是USB\u-CDC示例项目,但是这个示例的吞吐量大约是700kbps。有没有办法加快USB CDC的吞吐量?DMA有用吗?如果是,如何初始化和使用DMA与USB\U CDC?

先谢谢你。

关键词:
设备:
MT\u对话框
离线
最后一次见到:3个月3天前
工作人员
已加入:2015-06-08 11:34
高科技,

高科技,

为了实现USB的最大可能性能,您应该使用1.0.14 SDK并进行以下更改:

1) 在文件hw\u usb.c中,在函数hw\u usb\u init()中更改如下:

REG\ U SET\字段(USB、USB\ MAMSK\ U REG、USB\ M\ U NAK、REG、1);

REG\ U SET\字段(USB,USB\ MAMSK\ U REG,USB\ M\ U FRAME,REG,1);

收件人:

REG\ U CLR\ U字段(USB、USB\ MAMSK\ U REG、USB\ M\ U NAK、REG);

REG\ U CLR\ U字段(USB、USB\ MAMSK\ U REG、USB\ M\ U FRAME、REG);

2) 通过在custom\u config\u qspi.c中设置宏来启用DMA:

#定义dg\ U配置USB\ U DMA\ U支持(1)

谢谢你的对话

技术
离线
最后一次见到:3个月2周前
已加入:2018-07-16 12:09
你好,

你好,
谢谢你的回复,
你说的我都做了,但什么都没变。吞吐量仍在700kbps左右。
我的代码(传输大量数据)有什么问题吗。在这里:

USBD\u CDC\u Write(hInst,传输缓冲区,2000,0);

谢谢。

PM\U对话框
离线
最后一次见到:8小时52分钟前
工作人员
已加入:2018-02-08 11:03
高科技,

高科技,

请问您是使用默认的CDC还是做了任何修改?如果您使用的是默认的CDC,那么这只用于环回,而不用于性能,因为它是单任务实现的,并且只使用一个任务来进行USB接收和USB传输。如果要提高性能,强烈建议对USB接收和USB传输使用两种不同的任务。

谢谢,下午好

技术
离线
最后一次见到:3个月2周前
已加入:2018-07-16 12:09
你好,

你好,
谢谢你的回复,
在你的帮助之前我用的是默认的疾病控制中心。现在我使用两个任务来解决这个问题,一个用于RX,一个用于TX,但是仍然没有任何改变。
我已经附上了修改过的USB\u CDC.c文件。

谢谢。

附件:
PM\U对话框
离线
最后一次见到:8小时52分钟前
工作人员
已加入:2018-02-08 11:03
高科技,

minor-latin;mso-bidi-theme-font:minor-latin;background:white;mso-ansi-language:
EN-US">您好!
技术,

minor-latin;mso-bidi-theme-font:minor-latin;background:white;mso-ansi-language:
EN-US">我正在检查你的代码,我会尽快告诉你。

minor-latin;mso-bidi-theme-font:minor-latin;border:none windowtext 1.0pt;
mso-border-alt:none windowtext 0cm;padding:0cm;background:white;mso-ansi-language:
EN-US">谢谢,下午好
mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:
minor-latin;background:white;mso-ansi-language:EN-US">

PM\U对话框
离线
最后一次见到:8小时52分钟前
工作人员
已加入:2018-02-08 11:03
嗨,帕拉米尔。in@gmail.com,

您好!帕拉米尔。in@gmail.com,

吞吐量不会改变,因为数据传输的物理方式是UART协议。因此,使用CDC类可以达到的最大吞吐量是700Kbps。双任务实现是实现最大吞吐量的正确方法。

谢谢,下午好