CAN| CAN总线基础01

一、 汽车网络架构与常用总线汇总

1、CAN是控制器局域网controller Area Network 的缩写,1986年,由德国Bosch公司为汽车开发的网络技术,主要用于汽车的检测与控制,目的为适应汽车"减少线束的数量"、"通过多个网络进行大量数据的高速传输"的需求。

2、汽车网络是将汽车上所有电子传感器、执行器和电子控制单元(ECU)连接组网的通信形式。

通常汽车CAN网络细分:动力CAN网络、车身CAN网络、组合仪表CAN网络、诊断CAN网络......

二、 CAN总线特点

1、CAN通信特点:

  1. 节点间采用多主通信方式。
  2. 采用短帧结构,报文帧的有效字节数为8个,可达汽车实时响应要求。
  3. 报文ID值越小,优先级越高。报文ID可分成不同的优先级,进一步满足汽车网络报文的实时性要求。
  4. 非破坏性总线仲裁处理机制。
  5. 可靠的CRC校验方式,传输数据出错率极低,满足汽车数据传输的可靠性要求。
  6. 报文帧仲裁失败或传输期间被破坏有自动重发(机制)。
  7. 节点在错误严重的情况下,具有自动脱离总线的功能,切断它与总线的联系,不影响总线的正常工作。
  8. 通信距离最远达10km(速率5kbps以下)。
  9. 通信速率最高1MB/s(此时距离最长40m)。
  10. 节点数实际可达110个。
  11. CAN节点设计成本较低,通信介质采用双绞线。(采用两根线(即双绞线)的差分电平信号的原因是双绞线传输差分信号时受到共模信号干扰后,电平差值不变,信号解码正常。)

三、 CAN物理层是如何保证汽车通信要求

1、CAN收发器

定义:CAN收发器逻辑信号与物理信号之间的转换采用差分电平方式。

2、CAN总线有ISO11898(高速CAN)和ISO11519(低速容错CAN)两个标准

3、CAN编码采用NRZ非归零编码,相同带宽情况下,NRZ编码方式的信息量更大。

4、单个节点的CAN收发器开路集电极通过切换开关状态输出高低电平。

5、多个CAN节点并接到同一总线时,只要其中一个节点输出低电平,总线就为低电平;当所有节点输出高电平时,总线才为高电平。

6、问题:如何减少波特率的误差带来的通信错误?

解决:CAN总线规定信号的跳变沿时刻进行同步,将误差累计限制在两个跳变沿。

解决:采用填充位在连续5个相同位后插入一个相反位,产生跳变沿,用于同步。

7、一个标称的位时间=1/波特率

位时间分为:同步段、传播段、相位缓冲段1、相位缓冲段2

8、问题:根据电磁场和微波理论,高频电路中负载阻抗需与传输线的特性阻抗一致,否则电信号在线束终端遭遇阻抗突变,发生反射现象,造成波形振荡。

解决:高速CAN在总线两端各添加1个终端电阻,用于减少通信线路上的反射,避免引起电平变化而导致数据的传输错误。在汽车电子领域,一般都是用120欧姆的终端电阻。

9、CAN节点物理结构

  1. CAN控制器/收发器:分别对应ISO/OSI模型的数据链路层和物理层,完成CAN报文的收发。
  2. 功能电路:完成特定的功能,如信号采集或控制外设等。
  3. 主控制器与应用软件:控制各个硬件部件工作;按照CAN报文使用规则解析CAN报文;采集并发送数据等。

四、 汽车CAN物理层常见故障与解析

1、信号传输过程中出现到阻抗的变化,就会发生信号的反射。信号在驱动端和远端负载之间多次反射,其结果就是信号振铃。

原则:尽量缩短引线长度;加粗到线、印制铜箔的宽度;减小信号的传输距离;采用引线电感小的元器件等;阻抗匹配。

2、CAN收发器的常规检测方法:可以在给ECU上电的CAN总线空闲情况下,测量CANH和CANL对地的电压是否在2.5V左右。如果出现0V或者5V之类的,可以考虑收发器故障问题。

3、问题:来自相同厂家的两个CAN节点又可以正常通信,为什么两个不同厂家的CAN节点连接通信时好时坏,甚至不能正常通信?

解答:波特率采样点:不同的厂家可能使用不同的采样点,也可能造成通信不良。

4、问题:所有在测的ECU节点CAN功能单独测试正常,但是装车后发现CAN功能失常,可能仪表紊乱,CAN错误频发,特别是新能源车上。

解答:重点考虑电磁干扰。选择一个性能好的隔离收发器,或者外部隔离器;增加CAN线缆双绞程度,保证差模信号被干扰的程度;布线将动力线缆和CAN线缆远离,抑制周期脉冲干扰;CAN端适当共模滤波器等抗浪涌效果好的感性防护器件。

相关推荐
Charles Ray19 分钟前
C++学习笔记 —— 内存分配 new
c++·笔记·学习
重生之我在20年代敲代码20 分钟前
strncpy函数的使用和模拟实现
c语言·开发语言·c++·经验分享·笔记
我要吐泡泡了哦1 小时前
GAMES104:15 游戏引擎的玩法系统基础-学习笔记
笔记·学习·游戏引擎
骑鱼过海的猫1231 小时前
【tomcat】tomcat学习笔记
笔记·学习·tomcat
贾saisai3 小时前
Xilinx系FPGA学习笔记(九)DDR3学习
笔记·学习·fpga开发
北岛寒沫3 小时前
JavaScript(JS)学习笔记 1(简单介绍 注释和输入输出语句 变量 数据类型 运算符 流程控制 数组)
javascript·笔记·学习
烟雨666_java3 小时前
JDBC笔记
笔记
GEEKVIP3 小时前
Android 恢复挑战和解决方案:如何从 Android 设备恢复删除的文件
android·笔记·安全·macos·智能手机·电脑·笔记本电脑
铁匠匠匠5 小时前
从零开始学数据结构系列之第六章《排序简介》
c语言·数据结构·经验分享·笔记·学习·开源·课程设计
Moliay6 小时前
【资料分析】刷题日记2
笔记·公考·行测·常识·资料分析