CAN基础知识介绍

1.CAN的基本介绍

CAN(Controller Area Network),是ISO国际标准化的串行通信协议。为了满足汽车产业的“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需求。

发展历史:

1986年,博世公司开发出CAN通信协议,1993年,ISO发布CAN标准,ISO11898(高速CAN)及ISO11519(低速CAN)。2011年,开发出CAN FD(更加灵活,速度更快,数据承载量更大)。

详细介绍:

低速CAN(ISO11519)通信速率10~125Kbps,总线长度可达1000米

高速CAN(ISO11898)通信速率125Kbps~1Mbps,总线长度≤40米,又称经典CAN

CAN FD通信速率可达5MbpS,并且兼容经典CAN,遵循ISO11898-1做数据收发。

2.CAN总线拓扑图

低速CAN

高速CAN

总结:CAN是通过CANL和CANH来实现信号的差分传输。低速CAN使用开环总线。高速CAN使用闭环总线。它们都有相对应的终端电阻用于阻抗匹配,以减少回波反射。CAN总线允许挂载多个设备节点,其中低速CAN最多可挂载20个设备节点,高速CAN最多可挂载30个设备节点。当然实际挂载量还要参考CAN的收发器芯片支持多少个。

CAN差分信号

差分信号是一种特殊的信号形式,它在通信系统中被广泛应用,以提高信号的抗干扰能力和减少噪声的影响。差分信号的特点包括:

双绞线传输:差分信号通常通过两根信号线(通常是相同的)传输,这些信号线的电压振幅相等且相位相反。

差分电压:当两根信号线的电压差值为非零时,表明处于差分信号的状态;如果电压差为零,则表示信号处于隐性状态或逻辑1。

抗干扰特性:差分信号能够通过外部电磁场的相互抵消来减少电磁干扰,同时由于其开关变化位于两个信号的交点,因此受到工艺和温度变化的影响较小。

时序精度:差分信号的开关变化发生在两个信号的交点上,这使得其时序定位更加精准,适合于低幅度信号的处理。

CAN总线示例:在CAN总线上,差分信号的概念得到了体现,其中CAN_H和CAN_L信号线的电压差称为差分电压,用于表示数据的逻辑状态。

综上所述,虽然CAN总线本身并不是严格意义上的差分信号,但它利用了两根信号线(CAN_H和CAN_L)之间电压差的差分信号传输方式来实现其功能。

3.CAN总线的特点

1)多主控制,每个设备都可以主动发送数据

2)系统的柔软性,没有类似地址的信息,添加设备不改变原来总线的状态

3)通信速度,速度快,距离远

4)错误检测&错误通知&错误恢复功能

5)故障封闭,判断故障类型,并且进行隔离

6)连接节点多,速度与数量找个平衡

4.CAN的物理层

CAN使用差分信号进行数据传输,根据CAN_H和CAN_L上的电位差来判断总线电平。总线电平分为显性电平(逻辑0)和隐性电平(逻辑1),二者必居其一。显性电平具有优先权。发送方通过使总线电平发生变化,将消息发送给接收方。

一般用典型值nom来计算它们的电位。

                                           高速CAN                     低速CAN

5.CAN收发器芯片介绍

SIT1050T:该芯片支持高速CAN,传输速率可达1Mbps。

D:CAN发送引脚

VCC5:表示该芯片是使用5V进行供电的。

R:CAN的接收引脚。

VREF:参考电压输出。

CANL:低电位CAN的电压输入输出端。

CANH:高电位CAN的电压输入输出端。

RS:模式选择,高速\静音。

相关推荐

  1. 【ASP.NET Core 基础知识】--介绍

    2024-01-26 11:36:05       38 阅读
  2. HarmonyOs开发之——ArkTs基础知识介绍

    2024-01-26 11:36:05       32 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-26 11:36:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-26 11:36:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-26 11:36:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-26 11:36:05       20 阅读

热门阅读

  1. 抗锯齿 opencv

    2024-01-26 11:36:05       34 阅读
  2. C Primer Plus(第六版)13.11 编程练习 第13题

    2024-01-26 11:36:05       31 阅读
  3. C语言——栈的实现

    2024-01-26 11:36:05       36 阅读
  4. Nginx location 使用正则匹配路径

    2024-01-26 11:36:05       36 阅读
  5. 前端学习-0125

    2024-01-26 11:36:05       33 阅读
  6. 服务器宝塔安全需要修改的设置

    2024-01-26 11:36:05       37 阅读
  7. UnityUI看向相机

    2024-01-26 11:36:05       33 阅读
  8. mysql更新charset

    2024-01-26 11:36:05       29 阅读
  9. sealos apt&&yum安装 && sealos 部署k8s

    2024-01-26 11:36:05       37 阅读
  10. GET基于报错的sql注入利用-脱库

    2024-01-26 11:36:05       36 阅读
  11. 优雅的控制协程(goroutine)的并发数量

    2024-01-26 11:36:05       33 阅读