【摘要】:图6.15CAN 数据帧结构①开始域:标志数据开始。CAN 总线采取的措施是:每个控制单元在发送信号时,通过数据帧前列的状态域来识别数据优先权,具有最高优先权的数据,首先发送。图6.16边沿对齐2)同步解决方案二:数据的位填充为了保证发送和接收能够同步,CAN-BUS 规定了位填充规则。图6.18CAN-BUS 出错帧4)CAN 内部故障管理CAN 控制器内部有错误计数器。
(1)CAN 数据帧结构
CAN 数据总线在极短的时间里,在各控制单元间传递数据,数据的传输以帧为最小单位,每帧数据包含7 个部分,如图6.15 所示。
图6.15 CAN 数据帧结构
①开始域:标志数据开始。带有大约5 V 电压(由系统决定)的1 位,被送入高位CAN 线;带有大约0 V 电压的1 位被送入低位CAN 线。
②状态域:判定数据中的优先权。如果两个控制单元都要同时发送各自的数据,那么,具有较高优先权的控制单元,优先发送。
③检查域:显示在数据域中所包含的信息项目数。在本部分允许任何接收器检查是否已经接收到所传递过来的所有信息。
④数据域:在数据域中,信息被传递到其他控制单元。
⑤安全域:检测传递数据中的错误。
⑥确认域:在此,接收器信号通知发送器,接收器已经正确收到数据。若检查到错误,接收器立即通知发送器,发送器然后再发送一次数据。
⑦结束域:标志数据报告结束。在此是显示错误并重复发送数据的最后一次机会。
(2)优先级确认(仲裁)
因为CAN-BUS 采用串行数据传递方式,如果有多个控制器同时需要发出信号,那么在总线上一定会发生数据冲突。为了避免出现数据冲突,当出现多个控制器同时发送信号的情况时,系统就必须决定哪个控制单元首先进行发送,哪个控制单元等待发送。CAN 总线采取的措施是:每个控制单元在发送信号时,通过数据帧前列的状态域来识别数据优先权,具有最高优先权的数据,首先发送。
在信息数据列中有11 位的状态区,这11 位二进制中前7 位既是发送信息的控制器标识符,同时又表示了它的优先级。仲裁规则如下,标识符中的号码越小,即从前往后数,前面零越多,优先级越高。而后4 位则是这个控制器发送不同信息的编号,如发动机控制单元既要发送转速信号,又要发送水温等信号,则后4 位就有所不同。
基于安全考虑,由ABS/EDL 控制单元提供的数据(驾驶安全)比自动变速器控制单元提供的数据(驾驶舒适)更重要,因此具有更高的优先权。
示例:见表6.1,3 组不同数据帧的优先权,3 个控制单元同时发送数据,此时,在数据传输线上进行一位一位的比较,如果1 个控制单元发送了1 个隐性电平而检测到1 个显性电平,那么该控制单元就判断出有更高优先权的数据在发送,会立即停止发送转为接收器接收数据。
表6.1 3 组不同数据帧的优先权
第一位比特:制动控制单元发送了1 个高电位,发动机控制单元也发送了1 个高电位,自动变速器控制单元发送了1 个低电位而检测到1 个高电位,那么,它将失去优先权而转为接收器。
第二位比特:制动控制单元发送了1 个高电位,发动机控制单元发送了1 个低电位并检测到1 个高电位,那么,它也失去优先权而转为接收器接收数据。
第三位比特:制动控制单元拥有最高优先权并接收分配的数据,该优先权保证其持续发送数据直至发送终了,制动控制单元结束发送数据后,其他控制单元再发送各自的数据。
(3)数据发送和接收的同步
1)同步解决方案一:边沿对齐
为了保证发送和接收能够同步,CAN-BUS 规定了边沿对齐规则。也就是说,接收器发现每一次电平反向的节拍不对时,必须调整边沿,以求得同步。这个规则在电平变化频繁时能有效的保证了接收的正确性,边沿对齐如图6.16 所示。
图6.16 边沿对齐
2)同步解决方案二:数据的位填充
为了保证发送和接收能够同步,CAN-BUS 规定了位填充规则。也就是说,最多5 位出现一样的电平信号,第六位必须有一个反向电平。该规则能有效保证接收的正确性。数据的位填充如图6.17 所示。
图6.17 数据的位填充
3)出错帧
当控制器在接收其他控制器或自己发送器的信息时,发现信息有错误,可以发送出错帧,出错帧至少有6 个显性电平和8 个隐性电平,至多12 个显性电平和8 个隐性电平构成。CANBUS 出错帧如图6.18 所示。
图6.18 CAN-BUS 出错帧
4)CAN 内部故障管理
CAN 控制器内部有错误计数器。一次发送失败计数加8,一次接收错误计数加1。当累计超过127 时,控制器不再允许该控制单元往CAN 总线上发送信息,当累计超过255 时,控制器自动与总线脱离。但是,控制器发送信息时,没有收到答复信号,控制器将重复发送,而错误计数器不计数。错误计数器控制策略如图6.19 所示。
图6.19 错误计数器控制策略
【任务实施】
(一)实施要求
1.每组准备带有CAN 总线控制的发动机台架或整车1 台。
2.故障诊断仪1 台、数字式万用表1 台、数字式示波器1 台、拆装工具1 套。
3.每组准备好对应的维修手册及学习工作单。
(二)实施步骤
1.BUS 线路测试。进行导通性、断路或短路、计算机电源或搭铁检查。
2.关闭点火开关,控制单元插头,此时不要连接线束。使用万用表测量数据传递终端电阻,看是否符合规定阻值。
3.故障码逻辑判断。
4.信号波形测试。
5.线束修理。
【项目小结】
1.目前CAN-BUS 有ISO 11898 和ISO 11519.2 两种标准。ISO 11898 通信速率为125 Kbit/s~1 Mbit/s 是CAN 高速通信标准,ISO 11519.2 是通信速率最高可达125 Kbit/s 的CAN 低速通信标准。
2.CAN 数据总线中,每个连接在CAN 总线上的节点内部都安装了1 个CAN 控制器、1 个CAN 收发器、2 条数据传递线形成总线链路和数据传输终端共同组成。
3.通信方式灵活、适应性好、信息传输效率高、相对通信位速率高。
4.CAN 数据总线在极短的时间里,在各控制单元间传递数据,数据的传输以帧为最小单位,每帧数据包含开始域、状态域、检查域、数据域、安全域、确认域、结束域7 个部分。
5.在大众车系,由于动力CAN 链路采用的是星形接法,因此,任何参与工作的控制器其CAN 高位断路或接地,发动机都不能启动。这是因为安装在仪表电脑内的防盗认证数据不能通过CAN 总线发送到发动机计算机,因此会出现17978 故障代码,表明发动机计算机被防盗闭锁,而防盗报警灯却不点亮或闪烁。
相关推荐