打印

请教各位大神,CYUSB3014一般怎么设计单次传输数量?

[复制链接]
1622|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
glace12123|  楼主 | 2021-1-23 20:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟是新人,先说下我的进展:

要设计的系统是FPGA和PC通过FX3进行USB3.0通信,FX3的firmware是用的slave FIFO,小弟摸索了一阵子,终于可以实现用cypress的测试工具和FPGA做到BULKIN和BULKOUT,用streamer测试,速度也很满意,上下行近400MB/s。

然后小弟开始摸索利用CyAPI.lib在VS里的USB驱动设计,网上例子很多,我初步用XFer系列函数实现了BULKIN和BULKOUT,当然了,系统主要还是采集,所以对BULKIN更看重,在我的使用中,发现一些疑问,因为小弟经验不足,特地来请教大神:

1、我设计的FX3 buffer是16kB,FX3的firmware中,BULKOUT必须16kB,这个没有问题,但BULKIN按照协议,可以很灵活,4B~16kB,FPGA可以用PKT_END脚来实现发送任意4Byte长度的packet,例如我用FPGA发送32kB给FX3,然后利用上位机XFer函数固定收32kB的BULKIN包,则上位机能收到正确的32kB数据,那疑问来了,因为FPGA是可以通过PKT_END实现发送任意短包,而上位机XFer函数只能指定一个固定length,那么XFer函数就不能随时待命接收“未知”length的packet? 必须按照确定的length进行接收?  就是说,FPGA每次发送的数据必须是length的整数倍,上位机Xfer函数才能实现全部数据的接收?  请问是不是这样?

因为小弟开始没有关注过上位机XFer函数的规则,只是根据FPGA一侧的规则开始了设计,FPGA传输的packet因为种类的不同可能呈现不同的长度,现在是否要都修改成某个固定长度?

2、如果上述成立,那一般上位机和FPGA的高速(注意是高速,我希望速度能达到至少300MB/s)通信数据协议应该怎样设计?  希望各位大神给点实际经验。

谢谢了!

使用特权

评论回复
沙发
cr315| | 2023-11-10 16:36 | 只看该作者
设计单次传输数据的数量需要考虑到USB协议的限制以及FX3内部的处理能力。

使用特权

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

本版积分规则

6

主题

21

帖子

1

粉丝