欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > USB学习【6】USB传输错误的处理

USB学习【6】USB传输错误的处理

2025/5/12 20:44:44 来源:https://blog.csdn.net/qq_20902063/article/details/147877465  浏览:    关键词:USB学习【6】USB传输错误的处理

1.前言

我们从物理层到信号层,到协议层,他们分别在不同的层面完成不同的功能。
总结一下:
物理层实现了高低电平的检测。
信号层更进一步,通过一些方法,实现了二进制的传输。
协议层,因为可以二进制传输了,就自然可以实现一些协议方面的事情了。
但是我们会发现,信号层可能会发生异常,比如干扰导致信号错误,我们通过技术手段可以检测出来,但是应该怎么处理呢?
协议层也会出现异常,比如我数据包发过去了,对方没有空接收等等,那又应该怎么处理呢?

PID和CRC校验异常

在信号传输层,也只能出现这两种错误,协议规定怎么处理呢?
PID错误​:静默丢弃,依赖超时重传;
​CRC错误​:按传输类型选择重传或丢弃;
说人话就是,接收端发现错误,直接忽视即可!

协议层异常

协议层的异常,一部分是因为信号传输层的数据错误忽视掉引起的,一部分是设备端的状态引起的,
比如上面讲的PID和CRC校验错误,主机发送给设备,主机发现发送了没反应,大概率是传输出问题了,我等等看,重发一下,重复几次发现还是不行,可能你的U盘就提示传输错误了。
如果设备发送给主机握手包发生校验错误,主机直接忽略,当做没有。
总结一下:我们在协议层的角度来看,我们发出去的数据是有可能丢失的,我们接收到的数据也有一些是垃圾数据,主机的策略是,只要我发出的数据没有有效回复,我就重新发送,错误的东西直接忽略(当然和各种传输方式有关系,就看有没有握手包了)
站在设备端的角度来看更简单了,收到有效数据我回复,没有效扔到。
这个逻辑就非常简单了,主机完全占据主动,设备配合就好了,跟着主机的节奏来。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词