打印

如何理解GD32E103 USBFS设备的 共享RxFIFO

[复制链接]
1892|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lvben5d|  楼主 | 2019-2-15 10:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 lvben5d 于 2019-2-15 10:32 编辑

之前使用STM32F103 USB做DEV的时候,每个EP都有自己独立的RX和TX 缓冲区。 GD32 FS USB在设计的时候,为了增加1个OUT或控制包的数据长度,设计了共享RxFIFO 可以设置到512字节。 我理解为,哪个EP有OUT或控制数据包到来,都是从这个RxFIFO读出数据就好了,因为USB 处理速度要很快,每次收到需要从RxFIFO取走数据后,这个RxFIFO就成为了任意下一个传输事物中,数据包的存放地。 可以理解为公交车,但是不支持3P。否则你的程序没取走前面的就有BUG了。PS:  为GD32E103的设计点赞,个人觉得这样增加了RxFIFO的长度,可以在一次传输中断完成后,再去取,对于大数据包是非常便利的,缺点是你必须马上去车上拿你要的,否则就要出事。 而STM32那边  每个EP 自己有自己的RX BUF  就可以稍微悠着点拿。 对于实际应用来说,GD32的RxFIFO可以容纳更多字节,会更好用。毕竟E系列的GD32  USB RAM可是有1.25K  4字节对齐。  而STM32只有512
沙发
vivilzb1985| | 2019-2-17 13:35 | 只看该作者
这个需要配合DMA使用的,效率会比较高的

使用特权

评论回复
板凳
firstblood| | 2019-2-17 22:05 | 只看该作者
楼上说的是,,,涉及到TX、RX的数据通讯的,,启动DMA的进行设计的,会提高传输的效率的

使用特权

评论回复
地板
firstblood| | 2019-2-17 22:06 | 只看该作者
并且楼主说的这些问题的都会迎刃而解的呢

使用特权

评论回复
5
smilingangel| | 2019-2-24 22:33 | 只看该作者
这个就不好理解的节奏了

使用特权

评论回复
6
tongbu2015| | 2019-2-27 23:19 | 只看该作者
楼上几位正解的,,DMA的设计师不可缺少的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

95

主题

746

帖子

12

粉丝