Yanmar(洋马)发动机SPN-FMI代码在仪表显示
2016-06-04 15:54
1486 查看
分享一个自己在仪表上显示洋马发动机SPN-FMI代码过程的记录。
1、问:SPN和FMI什么意思?
答:见SAE_J1939-73
5.6 诊断故障码定义
诊断故障代码(DTC)由4 个独立域构成,这4 个部分是:
a. 可疑参数的编号(SPN) 19位
b. 故障模式标志(FMI) 5位
c. 发生次数(OC) 7位
d. 可疑参数编号的转化方式(CM) 1 位
由SPN-FMI故障代码对照附录可查具体故障。
2、代码传送格式
CAN总线传输,扩展帧。
①单故障
②多故障
取代码思路:
1、
取最大循环数
2、
将每个发过来的帧存在二维数组N行8列
3、
将上面的二维数组错误代码取出来,按先后顺序,从第一条开始存在N行2列的另一个二维数组中第一列是SPN代码第二列是FMI代码。每列SPN和FMI组合参考附录D可查出具体故障。
4、
按条显示出来
示例:
则故障代码:
SPN FMI
522242 04
522251 04
522252 04
522253 04
522254 04
1、问:SPN和FMI什么意思?
答:见SAE_J1939-73
5.6 诊断故障码定义
诊断故障代码(DTC)由4 个独立域构成,这4 个部分是:
a. 可疑参数的编号(SPN) 19位
b. 故障模式标志(FMI) 5位
c. 发生次数(OC) 7位
d. 可疑参数编号的转化方式(CM) 1 位
由SPN-FMI故障代码对照附录可查具体故障。
2、代码传送格式
CAN总线传输,扩展帧。
①单故障
地址 | Byte0 | Byte1 | Byte2 | Byte3 | Byte4 | Byte5 | Byte6 | Byte7 | |
18FECA00 | SPN 12-19bit | SPN 4-11bit | SPN 1-3bit | FMI (5位) |
地址 | Byte0 | Byte1 | Byte2 | Byte3 | Byte4 | Byte5 | Byte6 | Byte7 | |||
18EBFF00 | 0x01(循环No.) | SPN 12-19bit | SPN 4-11bit | SPN 1-3bit | FMI (5位) | CM (1位) | OC | SPN 12-19bit | |||
0x02 | SPN 4-11bit | SPN 1-3bit | FMI (5位) | CM (1位) | OC | SPN 12-19bit | SPN 4-11bit | SPN 1-3bit | FMI (5位) | CM (1位) | OC |
0x03 | …… | ||||||||||
0x04 | …… | ||||||||||
0x05 | …… |
Byte0 | Byte1 | Byte2 | Byte3 | Byte4 | Byte5 | Byte6 | Byte7 |
循环数1 | 代码1 | 代码1 | 代码1 | 代码2 | |||
循环数2 | 代码2 | 代码2 | 代码3 | 代码3 | 代码3 | ||
循环数3 | 代码4 | 代码4 | 代码4 | 代码5 | 代码5 | ||
循环数4 | 代码5 | 代码6 | 代码6 | 代码6 | 代码7 | ||
循环数5 | 代码7 | 代码7 | …… | ||||
循环数6 |
1、
取最大循环数
2、
将每个发过来的帧存在二维数组N行8列
3、
将上面的二维数组错误代码取出来,按先后顺序,从第一条开始存在N行2列的另一个二维数组中第一列是SPN代码第二列是FMI代码。每列SPN和FMI组合参考附录D可查出具体故障。
4、
按条显示出来
示例:
则故障代码:
SPN FMI
522242 04
522251 04
522252 04
522253 04
522254 04
相关文章推荐
- 凯越obd接口,“它”如此“懂”你
- J1939协议与CAN2.0对应关系图表
- 自制【CAN数据解析小工具】
- 使用STM32F1xx_HAL库实现CAN通信的问题
- 详解Ruby中的单件方法和单件类
- Windows核心编程(第5版)----关闭内核对象
- .net 使用 Aspose.Words 进行 Word替换操作
- C语言课程设计报告
- C++作业7-函数复习
- VS VC++ 设置版本号
- Python查看远程主机端口是否开放以及BashShell实现
- 达内java培训专家:如何理解Java堆栈?
- Java的异常处理的方式
- php学习笔记之数组遍历练习题1
- delphi多线程TThread详解
- Java语言的11大特点你知道吗?
- (C++) 作用域和链接
- java中equals和==的区别
- 面试题总结之C/C++
- C#变量初始化问题:字段初始值无法引用非静态字段、方法或属性