全速USB的通信速率是12M, 为什么达不到12Mbps,最快能到多少?

nuvoton2022 |浏览179次
检举|收藏|2022/09/07 21:31
全部回答(1)
  •         全速USB 的速率是12M,是指传输一位时长为1/12微秒。

        首先USB是异步通信,就是没有同步时钟,通信时要先发位同步序列,再发字节同步序列,数据包最后还要附带CRC核验码和结束标志等。所以不可能像UARTSPI那样总线满载都是数据。

        其次USB的传输是半双工,每次都由主机向从机发起查寻是否有数据上传,传输完一个数据包,对方还要回复应答、确认数据收到。

        最后,USB 是一个主机多个从机的链路,主机要对多个从机分配通信时间,。以上这些决定了USB通信不能长时间达到12Mbps的通信速率。如果一个主机,对一个从机通信,主机不停的向从机发送上传数据指令,理论速率可以达到9.7Mbps。实际测试可能还会比这低一些。

       如果USB应用做好了,通信速率比预期的慢很多,可以用USB数据抓包工具,或Debug代码的方式,检查是否通信出误码率,若错率高,会经常重发,也会影响通信速率,这可能要检查 USB布线规则是否符合要求了,可以做个眼图测试验证硬性能。


    回答于 2022/09/07 21:31
0人关注该问题
 加载中...