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

[复制链接]
2172|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 | 显示全部楼层
并且楼主说的这些问题的都会迎刃而解的呢
smilingangel 发表于 2019-2-24 22:33 | 显示全部楼层
这个就不好理解的节奏了
tongbu2015 发表于 2019-2-27 23:19 | 显示全部楼层
楼上几位正解的,,DMA的设计师不可缺少的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

95

主题

746

帖子

12

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