首页 文章

Synopsys USB OTG控制器(2.65a)偶尔会在USB设备模式下截断等时IN

提问于
浏览
0

我在设备模式下使用Synopsys OTG核心 . 使用专用于此 endpoints 的周期性FIFO编程等时IN高速 endpoints (USB 2.0),以实现每个微帧的最大传输(3个1024字节的数据包) . 它99%的时间都有效 . 但偶尔转移会被截断 . 例如,前1024个字节将使用DATA0 PID(而不是正确的DATA2 PID)进入总线,并且不会发送剩余的2048个字节 . 由于我已正确编程了数据包计数,多数,最大数据包大小和传输大小,因此我不确定是什么导致这种情况 .

显然这是一个非常具体的问题,我没有太多希望得到答案,但我认为在黑暗中拍摄是值得一试的 . 提前致谢 .

1 回答

  • 1

    同步传输不保证数据包传输 . 因此,如果主机控制器具有其他活动传输,它将以静默方式丢弃等时数据包 . 如果您需要有保证的包装交货,您应该使用批量转账(但不会保证交货时间) .

    等时是理想的应用程序,如声音或视频流,您需要不断的交付时间,但丢失一些帧是可以的 .

    该规范对总线进行了限制,允许在全速总线上为任意帧分配不超过90%的周期性传输(中断和同步) . 在高速总线上,这种限制可以减少到不超过80%的微帧可以分配给定期传输 . (c)http://www.beyondlogic.org/usbnutshell/usb4.shtml

相关问题