首页 理论教育CAN数据传输在汽车发动机电控原理与维修中的应用

CAN数据传输在汽车发动机电控原理与维修中的应用

【摘要】:CAN-BUS 采用非破坏性的仲裁机制,当出现两个节点同时向总线发送数据时,优先级低的节点会主动退出发送转为接收,优先级高的节点会继续发送数据不受影响,有效地避免了总线冲突,提高信息传输效率。图6.6CAN 数据传递过程①提供数据:控制单元向CAN 控制器提供需要发送的数据。图6.11CAN-BUS 信号电压变化图6.12CAN 接收器结构简图图6.13差动信号放大器内的信号处理由于数据总线要布置在发动机舱内,因此数据总线会受到各种干扰。

(1)CAN 的特点

CAN-BUS 协议最大的特点是废除了传统的站地址编码,代之以对数据通信数据块进行编码,可以多主方式工作,总线上的每一个节点均可以在网络空闲的任意时刻,主动向网络上的其他节点发送信息,所有节点不分主次,通信方式灵活。

CAN-BUS 网络上的各个节点信息分成不同的优先级,可以满足不同的实时要求,高优先级的信息优先传递。当两个节点同时向网络上传送数据时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传输数据,有效避免了总线冲突。

CAN-BUS 采用非破坏性的仲裁机制,当出现两个节点同时向总线发送数据时,优先级低的节点会主动退出发送转为接收,优先级高的节点会继续发送数据不受影响,有效地避免了总线冲突,提高信息传输效率。例如,安全方面的信息比舒适方面的信息优先。

CAN-BUS 信息传输采用广播模式,如图6.5 所示,即一个节点发送,所有连接在总线上的节点都可接收。当某一个CAN-BUS 节点出现严重错误时,具有自动关闭总线的功能,切断它与总线的联系,以使总线上其他操作不受影响。

CAN 采用NRZ(非归零制编码方式)编码,直接通信距离最远可达10 km(通信位速率为5 Kbit/s),通信位速率最高可达1 Mbit/s(此时通信距离最长为40 m)。

图6.5 广播模式

CAN 采用短帧结构,每一帧的有效字节数为8 个(CAN 技术规范为2.0 A),数据传输时间短,受干扰的概率低,重新发送的时间短。

CAN 可以点对点、一点对多点(成组)及全局广播集中方式传送和接受数据。

(2)CAN 数据传递过程

CAN 数据传递过程如图6.6 所示。

图6.6 CAN 数据传递过程

①提供数据:控制单元向CAN 控制器提供需要发送的数据。

②发送数据:CAN 收发器接收由CAN 控制器传来的数据,转为电信号并发送。

③接收数据:CAN 控制单元检查判断所接收系统中,所有控制单元转为接收器。

④检查数据:检查接收的数据是否为所需要的数据。

⑤接受数据:如需要接收的数据,它将被接受并进行处理,否则忽略。

(3)数据传递的原理

在CAN-BUS 中的每个节点,其内部进行运算的二进制信号(又称为逻辑信号)的电平都是很小的,并不足以通过双绞线进行长距离的传送(铜线上有电阻值,距离越长阻值越大,幅度不够的信号无法传输)。要实现数据的顺利传输,那么必须将数据进行升压,即将二进制逻辑信号转化为电信号。

1)电信号的传送

如图6.7 所示,CAN 收发器收到CAN 控制器送来的信号后控制三极管导通或截止,CAN收发器就像一个开关,根据CAN 控制器送来的数据不断在导通和截止之间变化,使总线上的电平也不断跟随变化。

图6.7 CAN 收发器示意图

总线导线上会出现两种状态:高电位表示逻辑“1”,低电平表示逻辑“0”。如果总线上的电平信号处于静止位置,就称为隐性电平(或称为无源)。如果总线上的电平信号处于传递位置,则称为显性电平(或称为有源)。总线上的电平信号如图6.8 所示。

图6.8 总线上的电平信号

如图6.9 所示,当把两个节点或两个以上的节点连接到一条总线上时,如果某一节点内的开关已接合,电阻上就有电流流过,于是总线导线上的电压就为0 V,此时总线处于有源状态为显性电平。如果所有开关均未接合,那么就没有电流流过,电阻上就没有压降,于是总线导线上的电压就为5 V,此时总线处于无源状态为隐性电平。

图6.9 有两个以上节点的总线状态转换示意图

因此,从上面的分析可知,如果总线处于状态1(无源),那么此状态可以由某一个控制单元使用状态0(有源)来改写。

2)CAN-BUS 的数据传递

①数据发送。图6.10 为CAN-BUS 发射器电路简图。连接在总线上所有节点都没有往外发送数据时,所有的节点的发射器都处于截止状态,两条数据总线也都处于无源状态。上面作用着相同的预先设定值,该值称为隐性电平。对CAN-BUS 来说,这个值大约为2.5 V。隐性电平也称为隐性状态,与其相连接的所有控制单元均可修改它。

图6.10 CAN-BUS 发射器电路简图

当其中有一个节点往外发送数据时,总线处于显性状态,CAN-High 线上的电压值会升高一个预定值(这个值至少为1 V),而CAN-Low 线上的电压值会降低一个同样值(这个值至少为1 V)。于是,在动力CAN 数据总线上的CAN-High 线就处于有源状态,其电压不低于3.5 V(2.5 V+1 V=3.5 V),而CAN-Low 线上的电压值最多可降至1.5 V(2.5 V-1 V=1.5 V)。

因此在隐性状态时,CAN-High 线与CAN-Low 线上的电压差为0 V,在显性状态时该差值最低为2 V,如图6.11 所示。

②数据接收。如图6.12 所示,在收发器内有一个接收器,该接收器就是安装在接收一侧的差动信号放大器。

差动信号放大器用于处理来自CAN-High 线和CAN-Low 线的电平信号,除此之外,还负责将转换后的信号传至控制单元的CAN 接收区。这个转换后的信号称为差动信号放大器的输出电压。差动信号放大器内的信号处理如图6.13 所示。

CAN-High 线和CAN-Low 线上传递的电平信号是相反的,差动信号放大器用CAN-High 线上的电压(UCAN-High)减去CAN-Low 线上的电压(UCAN-Low),就得出了输出电压。用这种方法可以消除静电平(对动力CAN 数据总线来说是2.5 V)或其他任何重叠的电压(如干扰)。

图6.11 CAN-BUS 信号电压变化

图6.12 CAN 接收器结构简图

图6.13 差动信号放大器内的信号处理

由于数据总线要布置在发动机舱内,因此数据总线会受到各种干扰。在保养时,考虑对地短路和蓄电池电压、点火装置的火花放电和静态放电。CAN-High 信号和CAN-Low 信号经过差动信号放大器处理后(就是所谓的差动传递技术),可最大限度地消除干扰的影响,如图6.14所示。这种差动传递技术的另一个优点是:即使车上的供电电压有波动(如在启动发动机时),也不会影响各个控制单元的数据传递(数据传递可靠性)。

图6.14 差动信号放大器内的干扰过滤