SPN:定义了字节具体是什么意思。。
PGN:定义了ID是什么。
J1939的故障诊断在J1939-73的第26页里有详细的介绍;
在UDS(14229)和J1939关于故障诊断的内容都称为DTC,但是区别特别的大。
最大的区别是UDS是请求故障,1939是通过DM1报文,连续在总线上发送;
首先我们来说以下UDS的故障诊断:
UDS只包含一个dtc故障代码,故障请求过程为:上位机通过发送报文,请求读取故障,内容包括:ID+(读取故障服务号)数据。
下位机回复:ID+(肯定相应+当前DTC代码)数据,多帧的话按照多帧进行回复。相对简单
上位机通过获取到的下位机的回复,解析当前的DTC,然后根据标准,显示对应哪个DTC的故障描述,如果有对应的建议,也可以进行显示;
J1939的协议中DM1报文有6个字节;故障诊断相对复杂,多帧的话也相对复杂。故障诊断分DM1当前故障,DM2历史i故障,DM3清除故障;
DM1的故障是如果有故障会一直在总线上发送,第1和2字节会发送灯的显示状态。第2和4和5字节是故障的SPN,其中第5个字节表示的是的15位表示的是FMI码,这个码一般会显示在仪表上,然后检修人员根据FMI码去查看具体是什么故障。第6个字节的17位表示的是故障发生的次数。第8位一般为0;
解释一下啊:第1个字节一般表示有红色灯,琥珀色灯,等等,当然表示故障的等级,第二个字节表示闪烁的灯,这个要看配件商的控制器是否发出。
当发送多帧报文的时候,第1和2字节是不变,多帧是连续发送下边的故障内容,3到6字节,如果有两个字节,那么多帧就会发送10个字节。
回答百度中提到的问题,
1、J1939协议中,请问历史故障码是什么?当发生故障后,通过维修,维修好的诊断码算不算历史故障码?/2、如果没有发生过故障,请求DM3,请求历史故障码,会不会有报文发送(DTC填充为0?)/3、如果没有发生过故障,DM1报文发不发,如果发的话是DTC填充为0?/4、当请求历史故障码后,发送历史故障码的过程中DM1发不发?5、DM1报文中LAMP字节7、8位为故障指示灯位,我看的中文翻译为该灯仅当有一个发送的相关故障代码处于激活状态下才点亮,是不是只有单帧故障才点亮,多帧不点亮?跪求大佬解答,谢谢
1,清楚历史故障,请看DM3,维修号的算历史故障,只要不清楚那么它会一直有,都是历史故障;
2,这个问题不对,
3,发的
4,发的一直发,这个就是看规定有的是50MS一发
5,多帧也亮,多帧说明有多个故障,按照故障等级,显示最高故障的灯的状态。
uds内容简介:https://www.cnblogs.com/autogeek/p/4458591.html
详细开发https://www.cnblogs.com/qq2020809663/p/8998187.html