USB和CAN都是用差分信号来传输数据,为什么CAN的传输距离能比USB远那么多?

news/2024/9/30 19:42:44

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校验码,可以更好的检测在数据传输中发生干扰导致的数据失真,并且根据重发机制进行重发。

答案

  1. 传输速率:CAN的传输速率相对更低,更低的传输速率代表了电平信号的持续时间更长,能够有效的增强数据的可靠性。
  2. 拓扑结构:CAN在总线的两端分别接入了一个120Ω的终端电阻,这个终端电阻能够减少信号的反射,提高信号的完整性
  3. 协议设计:CAN有着很好的错误检测机制和重发机制(CRC校验,界定符校验,手动或自动重发)。

以上三点使得CAN在传输距离上比USB 更有优势,如文章中有错误的地方,欢迎批评指正。大家有新的想法,请在评论区留下你大胆的想法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/66612.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

往来现金中五花八门的单据

导语: T+往来现金里有很多单据,收款单、收入单、付款单、费用单、其他应收单、其他应付单…… 每张单据还有不同的单据类型,比如收款单这一种里就有普通收款、预收款、直接收款。 新人难免懵,比如下面这位:很多小伙伴会认为收入单就是收款,其实不是这样的原理,看完下面你…

【Ehviewer绿色版】2.0.8.4最新版本下载2024安卓苹果

Ehviewer开发应用程序(App)是一项综合性的工作,涉及从构思到发布等多个环节。以下是开发一个基本应用程序的教程,Ehviewer包括从概念设计到发布的完整流程。Ehviewer本教程将分别介绍 iOS 和 Android 平台的开发过程。 ehviewer官方安装包下载: http://ez.oubaidu.com/ 一…

为什么一定要学习正则表达式

为什么一定要学正则表达式 前言 为什么有正则表达式,以及为什么一定要学习正则表达式? 本文不去讨论正则表达式的历史,流派以及完整而复杂的用法,仅仅通过一个简单的搜索场景,把你带入正则表达式的世界,从此你将感受到“海阔凭鱼跃、天高任鸟飞”的痛快!,回归正题,假设…

Notepad--特色功能:拷贝另存为

Notepad--特色功能:拷贝另存为 你是否纠结如下的使用场景:正在编辑的文件,还没有想好,保存担心把原文件给覆盖了。 使用“另存为”后当前编辑界面的文档又变成新的文件了,可是你还想继续在原文件上工作,还得再打开原文件。咋办? 你会新建一个文档,把当前的内容拷贝一份…

Paper Reading: Deep balanced cascade forest: An novel fault diagnosis method for data imbalance

本文基于级联森林提出了一种用于不平衡故障检测数据集的模型 DBCF,该模型设计了优化的级联随机森林,从数据层面和算法层面改进不平衡学习。首先提出了一种新的多通道级联旋转机械故障诊断框架,该框架将数据级方法和算法级方法相结合。然后提出了一种混合采样方法,通过生成新…

模拟赛

补题发现自己还有好多题没改/总结,所以弄了这么个东西; 空着的就是还没改完或者是没来得及写题解的。 由于目前还在不断地打新的模拟赛,所以大概会从两头向中心更新( 最新:[35] csp-s模拟6 [0] CSP提高组模拟1 A 最短路 原题:P2966 Cow Toll Paths G \(n \le 300\),考虑…

AtCoder Beginner Contest 371(ABCDE)

A 个人直接硬解,讨论情况也并不复杂 代码: #include<bits/stdc++.h> #define int long long using namespace std; const int N=1e6+10; void solve() {char a, b, c;cin >> a >> b >> c;if (a == <) {if (c == <) {cout << "B&quo…