什么是CAN?
什么是CAN?CAN全称是Controller Area Network(控制器局域网)。是ISO国际标准化的串口通信协议。是一种多主总线,具有突出的可靠性、实时性和灵活性。CAN总线通常采用双绞线或光纤总线传输介质。
CAN数据总线的数据传输终端
1.数据传输信号终端需要电阻隔离。高速can是120Ω电阻隔离,实际应用中采用两个62欧的电阻和电容。电阻作用是防止差分信号在CAN_H与CAN_L的回路之间产生影响。电容和电阻的组合的滤波电路作用是滤除汽车强电磁干扰。
2. 结构:一个CAN节点即一个CAN设备都有一个CAN控制器和一个CAN收发器。控制器接收MCU数据并发送给CAN。
3. CAN信号:是由收发器将数字信号高低电平转换为差分CAN信号的逻辑0和1进行传送:逻辑1(隐形):CANH=CAN_L=2.5V左右 ;逻辑0(显性):CAN_H比CAN_L高,CAN_H=3.5V ,CAN_L=1.5V 。
- 线与机制。当总线挂着多个设备节点且同时发送时,总线会是什么状况呢?多个节点都发隐形电平(1)时,总线状况是1,只要其中一个节点发送显性电平(0),总线状态是0。
CAN数据传输系统基本特点
-
基于标识符优先权的多主方式
在网络中,标识符ID唯一的。标识符越小,优先级越高。ID并不是地址,而是优先级。网络上任一节点均可再任意时刻主动地向网络上其他节点发送信息,而不分主从,通信方式灵活,且无需地址等节点信息。 -
非破环性的仲裁机制
当两个节点同时发送数据冲突时,优先级高的节点报文先发,低的会被主动退出发送。 -
载波监测。总线上的节点发送信息报文前要先检测总线是空闲状态,接收信息只需要通过对报文的标识符滤波既可实现点对点、一对多及全局广播传送接收数据。
-
NRZ不归零编码
数据位按照CAN_H与CAN_L的逻辑关系,CAN_H=CAN_L=2.5V 为隐形1.当CAN_H大于CAN_L为显性0,CAN_H=3.5V CAN_L=1.5V . 显性为0,隐形为1。采用NRZ不归零编码,利用NRZ的电压差判断0和1,而不是靠有无电平判断0和1的RZ编码。这样有利于减少因为导线的增长的电阻值增大导致的电压衰减。R=ρ* L/S。 -
理论上通信距离无限长。
-
消息以固定格式发送
-
接收滤波 节点的接收器是通过一种帧接收滤波的处理方法判断CAN总线上CAN帧是否与自己有关。
-
支持远程请求 CAN帧中有远程帧。
-
配置灵活。与总线相连的节点没有类型“地址”的信息,在总线增加设备时,所以在软硬件及应用层不需要改变。
-
可配置通信速度即比特率(差分信号不太准确) 在同一网络所以节点的通信速度一致。若通信速度不一致就会报错,妨碍同一网络的通信。不同CAN网络间可有不同通信速度。
-
差错管理机制 能自动检测错误信息并由出错计数器记录次数。 当出错严重时,节点会与总线隔离。这种根据监测故障节点是短期还是永久故障,并采取“故障界定隔离”。
-
CAN总线速率可高达1Mbit/S。
以速率分类汽车网络
美国汽车工程师协会SAE根据网络速率的不同,将汽车网络分为A、B、C三类。车载多媒体网络加入被不少文献称为D类汽车网络。
类别 | 对象 | 位速率/kbps | 应用 | 代表 |
---|---|---|---|---|
A(UART代替) | 面向传感器/执行器控制的低速网络 | 1-10 | 电动门窗、座椅调节灯光照明等控制 | LIN |
B | 面向独立模块间数据共享的中速网络 | 10-125 | 故障诊断、仪表显示、安全气囊等系统 | 轿车:ISO11898 ,卡、客车:J1939 |
C | 面向高速、实时闭环闭环控制的多路传输网 | 125-1000 | 悬架控制、牵引控制、发动机控制、ABS等系统 | 轿车:ISO11898 ,卡、客车:J1939 |
基于CAN协议的汽车网络
汽车网络是用某种通信媒介,将汽车上的各种电子单元连接起来,每一个电子单元都是一个系统,并允许电子单元共享信息,实现复杂的汽车控制操作。
现在汽车典型的汽车系统有:
- 电控燃油喷射系统
- 电控传动系统
- 防抱死制动系统
- 防滑控制系统
- 废气再循环控制系统
- 巡航控制系统和音响
- 防盗系统
汽车的电子控制单元多达上百个,各个系统在工作时,许多信号需要同时采集数据。为了满足系统对数据的实时要求,减少数据布线,实现数据共享,汽车网络的需求就显而易见。
汽车网络
以应用系统功能分化汽车网络
- 车身系统
- 动力传动系统
- 安全系统
- 信息网络系统