—种基于嵌入式Linux的柴油机故障诊断模块设计方法
作者:jnscsh 时间:2021-07-07 08:44:47 浏览次数:次
应用。目前,高性能的柴油发动机故障诊断系统主要都采用国外企业生成的产品,这不但增加了国内汽车企业的运用成本,也妨碍了我国发展具有自主知识产权的汽车工业。因此,本文尝试基于开源软件平台设计一种柴油机故障诊断模块。该模块基于嵌入式Linux操作系统内核,通过对车载J1939网络故障诊断协议进行解析,实现电控柴油机的故障诊断。该模块提供了完善的应用接口,能够高效融入各种现有车载故障平台,具有较好的应用性价比[1]。
1 系统架构
本文设计的柴油机故障诊断软件模块在逻辑上分为硬件抽象层、内核层、J1939解析层和应用层共4层,其架构如图1所示。
2 硬件抽象层设计
本文设计的硬件抽象层的主体是硬件资源包(BSP)。BSP的作用是对底层硬件的参数细节进行封装,并向内核提供访问接口。本文选择的硬件平台是飞思卡尔imx6q处理器,所以BSP移植针对imx6q处理器展开,其方法如下。
(1)在\mqx\source\bsp和installdir\lib目录下分别创建新的目录fsmqx;
(2)将nscf51acrl.mem 文件中的:
“range 0x00000410 0x0003FFFF 4 ReadWrite //Second Section of the 256KBytes of Flash Memory
reserved 0x00040000 0x007FFFFF ”
改为:
“range 0x00000410 OxOOOlFFFF 4 ReadWrite //Second Section of the 128KBytes of Flash Memory
reserved 0x00020000 0x007FFFFF ”
(3)将$installdir\mqx\source\bsp\nscf51acrl\cw\intflash.lcf文件中的:
“:rom(RX):
ORIGIN = 0x00000440, LENGTH = 0x0003FBBF #Code + Const data # = 0x3FFFF - 0x440::256K Flash”
修改为:
“rom(RX):ORIGIN = 0x00000440, LENGTH =0x0001FBBF # Code + Const data # = OxlFFFF - 0x440::128K Flash ”。
3 嵌入式Linux内核移植
嵌入式Linux系统是一种针对嵌入式设备的开源、多任务操作系统。该系统具有性能稳定、可移植性好等优点,广泛应用在各类非实时嵌入式计算环境中。因此本文将其移植到基于的嵌入式平台上[2]。具体移植方法如下所示。
3.1 驱动定制
因为飞思卡尔imx6q处理器集成了CAN总线驱动器MSCAN,所以本文所设计系统为MSCAN。
定制驱动程序mscan.c和mscan.h。其设计方法为:
(1)MSCAN初始化的流程如图2所示。
(2)CAN数据帧收发功能设计。
CAN数据帧发送和接收功能流程如图3—4所示。
3.2 文件系统定制
文件系统的作用是管理各类固化存储器中的程序文件和配置文件。本文基于Yaffs2制作了嵌入式Linux文件系统镜像[3]。
4 J1939协议解析
J1939协议是一种位于CAN总线应用层的通信协议,用于定义和规范CAN数据帧中ID域和DATA域中的各項内容。该协议基于J1708和J1587协议标准开发,具有运行开销低、通信过程高效等优点,广泛应用于各类中大型客货车辆中[4]。J1939协议包含了J1939/11,J1939/21,J1939/31, J1939/71, J1939/73等子协议,其中J1939/73定义了车辆电控单元通信应用层和故障诊断方面的规范[5]。因此,本文所设计模块的核心任务之一是对该协议进行解析。解析过程主要针对PDU数据包展开,其基本方法包括以下两个[6-7]。
4.1 ID识别
根据数字字典中的ID类型对CAN数据帧ID进行模式匹配,具体方法为正则匹配法。
4.2 DATA区解析
采用协议树查找法对CAN数据帧DATA区数据进行解析,得到柴油发动机电控系统的原始参数。
5 实验
将本文设计的柴油机故障诊断模块通过CAN总线电缆和东风康明斯CM2150柴油机的OBD接口进行连接。分别进行故障码读取和数据流读取两项实验。该系统正确读取到了2组故障码,分别是水温传感器信号线对地短接,燃油轨道压传感器信号线断路。该系统能以10 Hz的采样率正确读取发动机转速、油门踏板开度、燃油轨道压力、进气量、水温等工况数据,达到了预期效果[8]。
6 结语
本文基于嵌入式Linux系统设计了一种能够解析J1939网络协议的柴油机故障诊断模块,具有成本低、可维护性和可扩展性好等优点。在东风康明斯CM2150柴油机上实验结果表明,该模块能够正确高效实现电控系统故障诊断。
[参考文献]
[1]孙鹏.柴油机共轨电控喷射系统故障诊断方法探讨[J].山东工业技术,2018(8):44.
[2]刘世伟.船舶柴油机故障诊断技术发展现状与趋势分析[J].内燃机与配件,2018(6):146-147.
[3]张远征.基于嵌入式Linux与QT的矿用柴油车虚拟仪表软件设计[J].煤矿机械,2016(12):163-165.
[4]李招峰.基于嵌入式技术的柴油机故障诊断系统的设计[D].武汉:武汉理工大学,2012.
[5]刘鲁平,张凤登,车蕊.基于CAN总线的柴油机故障诊断系统[J].电子测量技术,2016(12):184-188.
[6]李文静.船用柴油机信息化系统硬件在环系统的研发[D].上海:上海工程技术大学,2014.
[7]佚名.基于CAN总线的常见的应用层协议:J1939,CANopen,DeviceNet[J].国内外机电一体化技术,2018(1):42.
[8]汪志斌,吴长水,黄敏涛,等.基于J1939协议的车辆故障诊断与ECU报文解析[J].单片机与嵌入式系统应用,2017(12):7-11.
[—种基于嵌入式Linux的柴油机故障诊断模块设计方法]相关文章
- 船用柴油机热能动力优化与节能改造分析
- 汽车柴油机排放控制技术
- 柴油机装配过程控制
- 柴油机SCR技术的应用探究
- 关于汽车柴油机技术的发展趋势漫谈
- 船舶柴油机节能减排技术发展探讨
- 柴油机技术发展趋势
- 浅谈柴油机共轨电控燃油喷射技术的应用与发展
- 柴油机排放物的危害及控制技术
- 船用高速柴油机的润滑分析
- 嵌入式机车车辆车载播放系统软件设计与实现
- SQLite嵌入式数据库在自动化生产车间中的应用
- 基于Cortex—A5和FPGA的嵌入式系统在便携式仪器中的应用
- 网络故障诊断及网络维护命令
- 燃机故障诊断及运行维护技术分析
- 燃机故障诊断及运行维护技术简析
- 汽车故障诊断
- 汽车发动机故障诊断及预测系统研究
- 汽车发动机启动故障诊断思路解析
- 谈汽车发动机故障诊断思路
- 汽车发动机故障诊断系统研究
- 军用车辆柴油发动机故障诊断与维修
- 电子机械故障诊断技术分析
- 基于模块化的驱动轴设计方法
- 汽车主关结构模块的设计优化与分析
- 对汽车运用与维修专业模块化技能教学的探讨
- 汽车运用与维修专业模块化技能教学的探讨
- 园林专业设计与植物方向模块化课程的设置
- 基于“平台+模块”的风景园林专业培养模式的思考
- 大学物理实验模块化教学设置与实施
- 基于模块化的产品创新策略研究
- 【方法指导】求解数列通项公式常用方法
- 怎样成为学霸的方法
- 马克思跨越“卡夫丁峡谷”理论的方法论意义
- 从“过敏的汽车”说经济学方法论
- 分次环方法
- 回到历史唯物方法论再看资本创新涌现的“价值”
- 基于INA设计方法的多变量PID控制器设计方法
- 中国艺术史方法论述评
- 广播电视艺术研究方法论述评
- 上一篇:柴油机启动困难原因分析与预防措施
- 下一篇:浅析柴油机和电机的安装存放技术