本文的目的并不是为了介绍或普及CAN总线相关知识,而是为了了解CAN总线,进而为CAN通信一致性测试做知识储备。
CAN,控制器局域网,全称:Controller Area Network。1986年,由德国Bosch公司为汽车开发的网络技术,主要用于汽车的监测与控制,目的为适应汽车“减少线束的数量”、“通过多个网络进行大量数据的高速传输”的需求。
CAN总线通信介质为双绞线,所有CAN节点采用并线连接的方式接入同一个CAN网络中:
一个CAN网段的两根CAN线分别是CAN_H和CAN_L,同一网段内的ECU节点采用并连的方式接入CAN_H和CAN_L中。不同网段间使用网关路由来转发CAN消息。
那CAN控制器是如何实现数据的发送和接收的呢?
ECU内的CAN收发器负责逻辑信号与物理信号间的转换。
逻辑信号是指二进制数0和1,它们是CAN控制器用来处理数据的最小单位。物理信号是CAN总线上的电平信号。
当CAN控制器接收数据时,收发器在CAN总线CAN_H和CAN_L两根线上接收它们的电压,根据它们的电压差值转换成对应的逻辑值,生成一系列的逻辑信号二进制数,发送到RXD口,由CAN控制器接收这个二进制数据流。
当CAN控制器发送数据时,通过TXD口把逻辑信号二进制数发送给收发器,收发器负责把它们转成对应的电平信号,在CAN_H和CAN_L线上拉起正确的电压值。