控制器区域网络(CAN总线)是实现通信的神经系统。
反过来,“节点”或“电子控制单元”(ecu)就像身体的各个部分,通过CAN总线相互连接。一个部件感知到的信息可以与另一个部件共享。
在汽车CAN总线系统中,ECU可以是发动机控制单元、安全气囊、音频系统等。一辆现代汽车可能有多达70个ECU,每个ECU都有需要与网络其他部分共享的信息。
CAN总线系统使每个ECU能够与所有其他ECU通信,而无需复杂的专用布线。
前言
本文主要借助CANoe工具,新建一个工程,来帮助大家理解CAN总线的相关知识。具体内容是关于节点、报文、信号是怎么创建的,下面可以看一下工程运行之后的报文显示结果及面板变量的操作。
首先可以看到CAN1口周期性地发送了报文EngineStatus,其中有两个信号,Velocity和IgnitionStatus。面板变量的初始状态如图所示。
随后,我们在面板将LockRq打开,也就是将车解锁。这时候,我们可以看到LockState按钮变灰了,意味着车辆状态是unlocked。同时可以看到CAN1口发送了报文LockingRq和LockingState。其中信号LockRequest值为1,意味着发出了解锁的请求,LockState值为1,意味着车是解锁状态。具体关于信号赋值的意义,可以查看下面关于value tables的创建。
随后,我们在面板将按钮Ignition Start打开,也就是将车辆启动,然后滑动Velocity的滑动条,使得车辆速度为61 。这时候报文检测到车辆已经启动,且车速大于15,就会将车辆自动上锁,所以LockState按钮又会变成绿色