首页 > 极客资料 博客日记
USB和CAN都是用差分信号来传输数据,为什么CAN的传输距离能比USB远那么多?
2024-09-30 20:00:03极客资料围观27次
本篇文章分享USB和CAN都是用差分信号来传输数据,为什么CAN的传输距离能比USB远那么多?,对你有帮助的话记得收藏一下,看极客之家收获更多编程知识
USB和CAN的区别
今天在看USB项目设计实例的时候,突然想到一个问题,从而引发了一些思考。经过思考加上查阅资料,写出了这一篇文章作为记录。
问题
USB和CAN都是用两条线作为差分线以差分信号进行数据传输。总所周知,差分信号有着很强的抗干扰能力。那为什么USB的一般传输距离是5米,最大是10米(USB2.0低俗模式下)。而CAN的一般传输距离为几百米甚至是1KM以上。
区别
- 供电:
- USB不仅可以传输数据,主设备还可以向从设备提供5V的电源。
- CAN只能传输数据
- 传输速率:
- USB2.0的传输速率最高可达480Mbps,USB3.0的传输速率更是能到5Gbps。
- CAN协议的传输速率相对而言较低,取决于CAN配置的波特率,一般的传输速率在1Mbps
- 拓扑结构:
- USB采用星型拓扑结构(一主多从模式)
- CAN采用总线模式,并通过终端电阻减少反射,从而保证信号能在更长的距离
- 协议设计(GPT补充,我也认同)
- USB:在建立连接之后,就直接传输数据,没有报文规范和冗余校验机制,也没有重发机制
- CAN:往总线中发送信号,其中CAN报文有15位的RCR校验码,可以更好的检测在数据传输中发生干扰导致的数据失真,并且根据重发机制进行重发。
答案
- 传输速率:CAN的传输速率相对更低,更低的传输速率代表了电平信号的持续时间更长,能够有效的增强数据的可靠性。
- 拓扑结构:CAN在总线的两端分别接入了一个120Ω的终端电阻,这个终端电阻能够减少信号的反射,提高信号的完整性
- 协议设计:CAN有着很好的错误检测机制和重发机制(CRC校验,界定符校验,手动或自动重发)。
以上三点使得CAN在传输距离上比USB 更有优势,如文章中有错误的地方,欢迎批评指正。大家有新的想法,请在评论区留下你大胆的想法。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- Nuxt.js 应用中的 prerender:routes 事件钩子详解
- 【问题解决】Tomcat由低于8版本升级到高版本使用Tomcat自带连接池报错无法找到表空间的问题
- 【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit
- 六、Spring Boot集成Spring Security之前后分离认证流程最佳方案
- 《JVM第7课》堆区
- .NET 8 高性能跨平台图像处理库 ImageSharp
- 还在为慢速数据传输苦恼?Linux 零拷贝技术来帮你!
- 刚毕业,去做边缘业务,还有救吗?
- 如何避免 HttpClient 丢失请求头:通过 HttpRequestMessage 解决并优化
- 让性能提升56%的Vue3.5响应式重构之“版本计数”