为了理解CAN协定的基础知识

概述

车载网络的适用范围广泛,用于动力传动系、车身系、舒适装备系等各种用途,但必须满足“安全性”、“可靠性”、“成本”、“耐外部因素”、“开发工时”等诸多要求。对于这样的要求,到目前为止设计了各种各样的通信方式,并被实际使用,但CAN才是现阶段车载网络事实上的“标准”。

CAN特点

  • 线型结构
  • 多主系统
  • CSMA/CA
  • 使用ID的消息寻址
  • 抗噪声性优良的物理层
  • 错误检测机制
  • 数据的一致性

线型结构

不限于车载网络,一般将与网络连接的通信设备称为“节点”。在车载网络中,“电子控制单元(ECU:Electronic Control Unit)”相当于此。

而且,虽然连接多个节点来实现网络,但其方式也有几种。例如环型、星型、线型等。另外,CAN采用“线型”(图1)。
为了理解CAN协定的基础知识
线型的网络方式,通过在通信线上连接各节点,能够构成网络,因此具有网络简单,其设计容易进行的优点。车载网络原本具有“消除复杂布线”的目的,从这一点来看,线型结构也符合目的。

多主系统

CAN采用了“多主方式”,可以对通过线型结构连接的各节点进行平等的总线访问(注)。

注:总线访问是指向通信线发送信息。

优点

  • 每个节点都可以以均匀的方式设计
  • 由于各节点没有优劣,所以面向事件指向通信
  • 节点的附加连接很容易

总之,在开发时,除了能够以同一规格设计各节点之外,还能够在需要数据传递的情况下进行发送,由于各节点没有优劣,所以能够进行*度高的网络构成。在车载网络中,由于可以考虑各种使用方法和设计变更等情况,所以可以说这种*度高的网络构成非常重要。

CSMA/CA

通常,如果从多个节点*地发送数据,则数据发生冲突,因此使用“如果通信线正在使用中,则不进行数据发送”的结构。但是,在从多个节点同时向通信线发送数据的情况下,不能防止这种情况。

与此相对,CAN采用“CSMA/CA(Carrier Sense Multiple Access With Collision Avoidance)”,即使从多个节点同时向通信线发送数据,也将其中的“优先顺序高的节点(不发生冲突)发送”。由此,即使在发生了来自多个节点的同时发送的情况下,如果对重要的数据设定高的优先顺序,则可靠地进行数据传递(图2)。
为了理解CAN协定的基础知识
例如,如果来自发动机ECU的数据重要,则在发动机ECU侧预先设定高优先顺序。
因此,即使来自发动机ECU的数据和来自空调ECU的数据同时被发送,来自发动机ECU的数据也可以被发送到通信线路而不被破坏。

使用ID的消息寻址

所谓使用了ID的消息寻址,是指在数据中附加“ID(识别符)发送”方式,在各节点间交换数据时使用。
接收数据的一方,根据该ID可以判断“是什么样的数据?“”这是自己使用的数据吗?“。

另外,通过使用该方式,多个接收节点能够同时接收来自一个发送节点的数据。考虑到车载网络,仪表ECU和空调ECU可以同时接收来自发动机ECU的数据并使用它。也就是说,多个ECU同时协调进行控制变得容易。

抗噪声性优良的物理层

在动力传动系中使用的“High Speed CAN(CAN-C)”中,通过“双线式差动电压方式”进行通信。所谓双线式差动电压方式,是根据流过2条线(双绞线)的各线的电压差是“有”还是“无”来发送数据的方式。通过使用该方式,即使在从外部混入了噪声的情况下,由于混入各线的噪声的电压大致相同(即,各线的差电压不变化),所以不易受到噪声的影响(图3)。
为了理解CAN协定的基础知识
在车载设备中,外部噪声的影响是不可避免的,但是CAN采用了使其不易受影响的方式,因此可以构建高度可靠的网络。

错误检测机制

在重视安全方面的车载网络中,必须可靠地避免陷入“在各节点中使用的数据因某种异常而错误地到达,不能进行正常的控制”这样的状态。

作为其对策,CAN安装了各种各样的错误检测机构,由此,能够以接近100%的概率检测各种错误。
例如,发送节点自身确认发送的数据和在通信线上流过的数据是否一致,在有差异的情况下进行错误检测等。

数据的一致性

在车辆控制中,有时各节点在某个时刻协调,同时进行控制。

例如,在多个节点使用当前的发动机转速进行控制的情况下,从发动机ECU向各节点发送发动机转速的数据。通常,如果所有的接收端都能正常接收就没问题,但如果一台节点出错而不能接收数据会发生什么呢?

你可能会想,“如果只有接收失败的节点才能从发动机ECU重新发送数据就可以了”,但这样做有可能接收发动机转速发生变化后的数据。也就是说,在各节点中使用的发动机转速数据可能不同。

与此相对,CAN“如果1台节点接收失败,则能够接收数据的全部节点废弃该数据,直到所有节点成功接收为止,重复该操作”。CAN以这种方式保持数据的一致性。

其他CAN的特点包括:一次可以发送的数据量最大为8bytes。最大通信速度1 Mbps。等等。

CAN基本用语

1和0

在CAN中,数据的传递使用数字方式。要发送的数据被转换为“0”和“1”二进制数并被发送到通信线。在CAN中,将该发送的2进制数数据的“0”称为“显性”,将“1”称为“隐性”。

在“隐性”和“显性”同时从节点发送的情况下,具有“显性优先”的结构。利用这个规则,CAN实现了各种各样的结构。因此,我一定要了解显性和隐性之间的关系。

信号编码

CAN通过“NRZ(Non-Return-to-Zero)方式”变换/发送想要发送的数据。由于该方式可以比较简单地进行变换,所以在各种通信协议中使用。
为了理解CAN协定的基础知识
在NRZ方式中,例如在发送的数据为“0001100”的情况下,连续的“0”的部分保持为“0”,连续的“1”的部分保持为“1”,显性状态和隐性状态连续。虽然也有由于状态连续而带来的缺点,但是准备了用于解决该问题的结构。

通信速度

通常,通信速度以“bps(Bit Per Second)”表示。这表示每秒可以发送多少位数据。
这个数值越高,就越能在更短的时间内传递大量的数据。例如,在2 bps的通信速度的情况下,1秒内可以进行2位的数据传输。

如图5所示,在节点A以1bps、节点B以2bps工作的环境下,在从节点A发送1个“1”的情况下,在节点B接收到2个“1”。即,节点A-B之间的数据传输不能正常进行。
为了理解CAN协定的基础知识
为了正常地进行通信,可以说各节点间的“保持通信速度相同”是很重要的。

同步

在车载网络中,连接有多种多样的节点。而且,各个节点具有制作用于在内部进行程序处理等的基准时间(以下称为系统时钟)的“石英振荡器”。

该晶体振荡器能够比较准确地产生时间,但由于车载网络的各节点设置在不同的场所,所以容易受到外部气温等的影响,由于从电源接通时开始的时间变化等,结果各节点的系统时钟产生不同。

在CAN中,使用系统时钟,将显式或恢复的长度作为1位来构成,但是,如果系统时钟在各节点上不同,则各自的1位的长度会不同。另外,由于根据1比特的长度在上述通信速度上产生差异,所以不能进行正常的数据交换。

防止这种情况的控制被称为“同步”,并且校正每个节点之间的系统时钟的差异。
在CAN中,进行“当信号从中继变化到显性时(”1“-”0“变化时)同步”。

位填充规则

在上述NRZ中,在如“0000”那样连续“0”的情况下,相同的状态连续。由于同步是以“1”-“0”的变化进行的,所以如果“0”长时间连续,则成为不能同步的状态。如果不能同步,则各节点的通信速度产生偏差,不能正常地进行通信。

因此,CAN采用“比特填充规则”。