汽车CAN通信标准有哪些J1939中参数群编号PGN是干嘛用的

本涉及发动机参数测量领域尤其涉及一种基于SAE J1939 CAN总线的发动机运行参数测量方法。

CAN即控制器局域网络(Controller Area Network简称CAN),是常用的一种车载总线SAE J1939是美国汽车工程师协会(SAE)发布的以CAN总線为核心的车辆网络串行通讯和控制协议,其通过多路复用技术为车辆各传感器、执行器和控制器等提供建立在CAN总线基础上的网络互联与數据共享其以CAN2.0B作为网络核心协议,在其基础上重新定义了网络层和应用层

目前,随着汽车的CAN设备的使用越来越普遍CAN总线监测成为发動机配套开发及故障处理必备的手段,现有技术中通用的CAN总线采样工具很多并且没有对发动机参数进行实时的测量与采集目前,现有的測量方法只能采样CAN报文然后通过需人工分析,使得效率低而繁杂

本发明的目的是,提供一种基于SAE J1939 CAN总线的发动机运行参数测量方法可鉯有效的对数据进行测量与采集,对发动机进行实时监测

为实现该目的,提供了一种基于SAE J1939 CAN总线的发动机运行参数测量方法该方法包括洳下处理步骤:

步骤1:发动机的各种实时监控数据在CAN总线上基于SAE J1939协议以报文形式传送至处理器;

步骤2:处理器接收到CAN报文后进行滤波并且進行报文解析;

步骤3:处理器根据CAN报文的信息进行变量监控、故障读取。

优选地在步骤2中,所述的滤波包括硬件滤波和软件滤波其中,软件滤波通过源码节点地址和参数组编号PGN进行处理其过程为:

首先将不接收的源码节点地址列表读到第一滤波数组NoRec_IdScr中;将不接收的参數组编号PGN列表读到第二滤波数组Norec_IdPGN中;

对CAN报文ID进行解析并且取得该报文源码节点地址id_info.SA的值,然后循环将该值和第一滤波数组NoRec_IdScr的值进行比较洳相同则不接收;同时取得该报文参数组编号id_info.PGN的值并且循环和第二滤波数组Norec_IdPGN中的值进行比较,如相同则不接收

优选地,在步骤3中进行嘚CAN报文解析实现变量监控包括以下处理步骤:

步骤301:建立变量暂放列表框,从变量库中选取所需的变量记录在暂放列表框中并且保留各变量的原序号;

步骤302:根据暂放列表框中各变量的序号从数据库中循环读取各变量的定义参数到第一变量数组dim_mon中;

步骤303:在接收到CAN报文ID时进荇解析并存到第一对象id_info中,然后解析出该报文的优先级、PDU格式、PGN编号、目标地址和源码节点地址;

步骤304:将CAN报文的PGN编号和第一变量数组dim_mon數组的所有PGN进行循环比较如过相同则进行解析;同样接收到下一个报文时重复执行步骤303和步骤304,即可将所有的变量进行解析实现变量實时监控。

优选地在步骤3中,进行的CAN报文解析实现故障读取为多故障码的读取其为在接收到CAN报文ID时进行解析并且判读是否为传输协议-連接管理TP.DM的报文,当获得的PGN编号为设定的第一故障码时进一步解析得到需要接收的子报文PGN编号、需要接收的总帧数、总接收的字节数,嘫后准备接收子报文;当获得的PGN编号为设定的第二故障码时则执行对子报文接收和重组;其中,子报文采用传输协议-数据传送消息TP.DT进行發送

优选地,在步骤1中还包括CAN报文数据构造,即逆向解析从实际参数到CAN报文的转换,其包括以下处理过程:先对报文ID进行解析根據解析的PGN编号从数据库中读取与该PGN编号相同的所有变量并且记录到参数列表中,对所需的变量的值进行修改再根据列表的可疑参数编号SPN徝从数据库读取所需的变量的定义参数;通过反向计算参数,再将计算的值转换为十六进制并且插入在定义的字节位上从而实现实际参數到CAN报文的转换;所述反向计算参数的值的计算公式为:变量值/分辨率-偏移值。

优选地本方法中还能够进行离线解析,即将需转换的CAN报攵文件转换生产记录待解析变量和转换周期的文件该离线解析包括以下处理步骤:

步骤601:首先将待解析的CAN报文EXCEL文件数据读到二维数组map_data中;

步骤602:将待解析变量的定义参数读入第一变量数组dim_mon;

步骤603:循环读取map_data中的CAN报文ID并解析,判断解析出的PGN编号是否和dim_mon数组中的PGN编号相同如果相同则进行解析并保存到设定的文件中。

优选地本方法中还能进行多曲线绘图,该绘图方法为先定义一个定时器设定定时周期并且將定时器周期*定时器循环次数,若该值大于采样周期则循环读取各个监控变量进行绘图

优选地,本方法中各数据基于高级加密标准AES进行算法加密

本发明与现有技术相比,其有益效果在于:

本发明通过将发动机的各种实时监控数据在CAN总线上基于SAE J1939协议以报文形式传送至处理器并进行滤波解析可以有效的对数据进行测量与采集,对发动机进行实时监测在本发明中,可设置若干个个采样变量进行并行采集和哆条实时曲线显示这样可以充分监控发动机运行参数情况。在本发明中可以将采样的发动机参数保存到文件而且可以动态修改采样周期,最高可以达到15ms从而能够更好的进行离线分析发动机运行工况。在本发明中能够对多故障码解析,通过传输协议-连接管理TP.DM和传输协議-数据传送消息TP.DT协议对通信报文进行解包和重组即可解析并且对故障指示灯和排放Mil灯也进行了解析以图形显示。在本发明中加了软件濾波算法,可以很好的过滤不必要的CAN报文信息方便用户采集和分析。在本发明中发动机外特性曲线读取通过传输协议-连接管理TP.DM和传输協议-数据传送消息TP.DT协议对EC通信报文进行解包和重组即可实现,从而能够直接查看到发动机的性能参数在本发明中,可以很清晰的查看CAN总線的各节点和报文的负载率及发送周期在本发明中,可以进行逆向解析并且可以实现多报文并行和串行发送仿真,以及支持文件发送汸真在本发明中基于AES加密算法加密数据表能够使得运算更稳定准确。在本发明中可以对采集的CAN报文随时调取任意相关参数进行离线解析并进行数据分析,能够增强可操作性和实用性在本发明中,可以通过EXCLE表格重新定义参数结构并且能够自定义导入相关文件进行解析

圖2为本发明的中CAN报文解析实现变量监控流程框图。

下面结合实施例对本发明作进一步的描述,但不构成对本发明的任何限制任何在本發明权利要求范围所做的有限次的修改,仍在本发明的权利要求范围内

如图1-图2所示,本发明提供了一种基于SAE J1939 CAN总线的发动机运行参数测量方法该方法包括如下处理步骤:

步骤1:发动机的各种实时监控数据在CAN总线上基于SAE J1939协议以报文形式传送至处理器;

步骤2:处理器接收到CAN报攵后进行滤波并且进行报文解析;

步骤3:处理器根据CAN报文的信息进行变量监控、故障读取。

在本实施例中各操作可以通过处理器的操作堺面进行,使得对数据的操作及变量的调整更为方便

在步骤2中,所述的滤波包括硬件滤波和软件滤波其中,软件滤波通过源码节点地址和参数组编号PGN进行处理其过程为:首先将不接收的源码节点地址列表读到第一滤波数组NoRec_IdScr中;将不接收的参数组编号PGN列表读到第二滤波數组Norec_IdPGN中;对CAN报文ID进行解析并且取得该报文源码节点地址id_info.SA的值,然后循环将该值和第一滤波数组NoRec_IdScr的值进行比较如相同则不接收;同时取得該报文参数组编号id_info.PGN的值并且循环和第二滤波数组Norec_IdPGN中的值进行比较,如相同则不接收

在本实施例中,滤波设置有硬件滤波在处理器中对應4个验收寄存器ACR0~ACR3,和4个屏蔽寄存器:AMR0-AMR3对于扩展帧其单滤波方式下29位ID对应如下表1:

其滤波原理为:CAN报文的ID的所有位与ACR的各位都相同,报攵才能通过并且AMR设置为1的位除外。ACR计算:对于1个给定的帧报文由于其29位ID为低29位,在处理器内部进行左移3位再与ACR和AMR进行逻辑运算因此ACR也为幀ID左移ID3位。若只接收报文ID为:18FEF600则ACR=C7F7B000。若只接收发动机的报文(SA=00),则其屏蔽码为:FFFFF803(r1,r0保留位置1)

在步骤3中,进行的CAN报文解析实现变量监控包括鉯下处理步骤:

步骤301:建立变量暂放列表框从变量库中选取所需的变量记录在暂放列表框中并且保留各变量的原序号;

本文档一共被下载: 次 ,您可全文免费在线阅读后下载本文档

1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理

2.该文檔所得收入(下载+内容+预览三)归上传者、原创者。

3.登录后可充值立即自动返金币,充值渠道很便利

我要回帖

更多关于 奔驰怎么连蓝牙 的文章

 

随机推荐