105.001-CAN总线介绍

CAN总线在汽车中的应用原理

我是一颗米(Icomi),本篇文章是去年在Valeo实习时候的学习笔记,再次学习然后输出分享

1.CAN总线为什么在汽车上这么常用?

我们把汽车想象位人体,CAN总线就是它的神经系统

实现了车身不同部位之间的通信

1.1如何进行通信

通过不同的CAN总线结点进行

这些结点被称为ECU(Electtronic Control Unit)

这些CAN结点就像是身体的不同部分

通过CAN总线相连后,一个节点的信息可以与其他节点共享

1.2在汽车中的ECU可以是什么?

可以是引擎控制单元,气囊,音响系统等

现代汽车通常有70多个ECU

那么CAN总线就像是局域网一样,让汽车能够与其他所有ECU进行通信

而无需复杂的专用布线

1.2.1 什么是无需复杂的专用布线?

若不用CAN总线,那么各个ECU之间的连接会如下所示

1.2.2如何进行通信?

ECU准备信息,通过CAN总线广播这些信息

我们的物理信息通过CAN总线线束进行

由CAN低线和CAN高线组成,广播的数据被CAN网络上的所有其他ECU接受,每个ECU都接受数据,并且检查数据,并且决定是否接受或者忽略他

CAN总线(Controller Area Network)

2.CAN总线为什么用差分信号?

我们知道CAN总线和RS485一样都是差分信号,经过CAN收发器之后,普通信号就会被转化为差分信号,差分信号用两根线表示为一个信号

CAN收发器也可以把接收到的信号转换为差分信号,转化为普通电平信号,然后再发送给单片机

2.1用差分信号的好处?

普通信号只有一根线,当产生信号影响的时候,他的电平就会发生跳变

这样就会导致传输出现错误,所以不能进行长距离传输。

CAN总线是两根线共同作用,即便是产生干扰,也是两根线同时受到干扰,他们的压差也会保持不变,这样就能保证传递的信息不受干扰,所以CAN信号传输的距离很长,可以达到1000M

3.CAN通讯在传递什么?

3.1识别码

根据这个十一位的识别码,就能知道这一帧数据是发送给哪一个设备的了,每一个设备都有属于自己的11位识别码,可以理解为地址

3.2RTR

RTR位是区分是数据帧还是远程请求帧,如果是数据帧这意味就必须是0,如果是远程请求帧这一位就必须是1

3.3控制码

控制数据长度

3.3.1IDDE

第一位是IDDE位,是用来区分标准格式和拓展格式的

3.3.2DLC(Data Linik Contro)

DLC即数据长度代码

他的二进制编码是0-8,如果是1,则后面的数据位就只有1字节,8位

3.4CRC

CRC码是为了确保数据的准确性而设置的

首先是15位CRC校验码

设备接收端会根据数据计算出他的CRC位

若计算出来的和接受到的CRC位是不一致的

说明数据有问题

就会重新发送一遍数据帧

下面一个是CRC的界定符

他是逻辑1

目的是为了把后面的信息隔开

3.5ACK

然后是两位ACK码

第一位是ACK确认槽

发送端发送的是逻辑1

接收端接受的是逻辑0

ACK界定位

必须是逻辑1

把后面的数据隔开

3.6结束位

最后都是逻辑1

是结束位

表示数据帧传输结束

4.两设备同时发送数据

如果两个设备同时发送信息,此时哪一个设备发送的信息优先呢?

这就得看11位的设备识别码了

他不仅是设备的身份证号

而且还代表了优先级

比如这两个信号是同时发出的

那么以谁为准呢

当总线上同时出现了逻辑0还有逻辑1的时候、

总线会被置为逻辑0

此后上面那个数据帧就不会在发送了

5.车灯上也会有CAN的运用吗?

有,如笔者所在Valeo视觉系统部门用youyetoo x1的x86开发板所做的车灯检测装置,就运用了CAN。

5.1当车辆的 ECU 需要控制车灯的状态时,例如打开或关闭近光灯、调节远光灯亮度、控制转向灯闪烁频率等,会通过 CAN 总线向车灯发送相应的指令。这些指令以数据帧的形式在 CAN 总线上传输。数据帧包含了目标车灯的地址(每个车灯在总线上有唯一的标识符)、具体的操作命令(如点亮、熄灭、调光等)和其他相关参数(如亮度级别)。

5.2车灯内部的控制器(一般集成在车灯的电路板上)会接收并解析这些 CAN 总线传来的指令,然后根据指令执行相应的操作。例如,当收到打开近光灯的指令时,控制器会接通近光灯的电源电路,使近光灯亮起。

实例:

1.假设车辆的驾驶员操作了灯光控制杆,想要打开远光灯。灯光控制杆连接到车辆的车身控制模块(BCM),BCM 作为 ECU 的一部分,会生成一个包含远光灯打开指令的数据帧。这个数据帧包括目标车灯(远光灯)的标识符、打开操作的代码以及可能的亮度默认值等信息。

2.该数据帧通过 CAN 总线传输,总线上的各个节点(包括远光灯控制器)会对数据帧进行监听。当远光灯控制器识别出数据帧是针对自己的指令时,它会对指令进行解析,然后激活远光灯的驱动电路,使远光灯亮起。同时,远光灯控制器还可以通过 CAN 总线向 BCM 反馈远光灯的状态信息,例如是否成功点亮、当前的亮度实际值等,以便 BCM 进行进一步的监控和控制。

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值