基于LabVIEW 和J1939 协议的CAN 总线通讯平台开发

2019-11-09来源: eepw关键字:LabVIEW  J1939  协议  CAN  总线通讯

  概述:

  进入21 世纪以来,商用车CAN 总线网络的应用得到了异常迅猛的发展。现今市面上满足国3~国5 排放标准的商用车,无一例外均应用CAN 总线网络,进行整车VECU、发动机EECU、自动变速箱ECU、汽车组合仪表ECU、车轮防抱死制动ECU 之间的数据通讯。基于J1939 协议的商用车CAN总线,针对单片机微控制器MCU 节点的MCU + CAN 控制器 + CAN 收发器的CAN 通讯接口,在车载网络控制系统中得到了大量应用;而对整车道路试验、发动机台架试验、整车电环境半实物仿真测试的上位机节点的PC 机或笔记本电脑 + CAN 通讯模块,大都使用价格昂贵的Vector CANoe 模块。


  存在的问题:

  1)PXI 测控装置无基于J1939 协议的CAN 通讯功能,不能满足试验工况对CAN 总线报文信息分析的功能需求。


  2)CANoe 模块时序不受PXI 仪器时钟速率控制,无法与PXI 时序的其它测量参数同步触发测量。


  基于LabVIEW 和J1939 协议的CAN 总线通讯技术方法,在国内汽车行业PXI 测控装置的应用属于空白,难点是如何将LabVIEW 软件开发平台与复杂的J1939 协议有效结合,实现报文信息的过滤接收、合成重组及封装发送。


  针对商用车CAN 总线通讯网络的特点,构建基于LabVIEW 和J1939 协议的CAN 总线通讯平台,嵌入在NI PXI 模块化接口的测控装置中,用于发动机台架试验、整车电环境半实物仿真测试。


  J1939 协议

  J1939 协议以CAN2.0B 规范为基础制定,对CAN2.0B 扩展帧29 位标识符ID 定义形成J1939 的编码系统,包括优先级P、预留位R、数据页DP、协议数据单元PF、扩展单元PS、源地址SA 和数据字节Data,如图1 所示。这七部分在开放式系统互联参考模型(OSI)应用层,通过协议数据单元PDU(Protocal Data Unit)被封装成一个或多个CAN 数据帧,通过物理层发送给总线网络其它设备节点。  

 

  PDU 定义了数据帧中与J1939 协议相关的信息,由标识符ID 和数据场组成。

  PDU1 格式报文PF 在0~239 之间,报文为点对点向目标地址发送,PS:报文接收的目标地址,SA:报文发送的源地址,在目标地址中填入255,为全局地址发送。


  PDU2 格式报文PF 在240~255 之间,报文向全局地址发送,PS:参数组扩展值,J1939 协议大部分报文为PDU2 格式。


  PDU 数据场包含参数组中数据内容,参数组编号PGN(Parameter Group Number)用于唯一标识参数组的号码,由一个或几个参数构成一帧或多帧报文,而参数组是应用层中定义的与某个ECU相关的若干参数(例如发动机水温、燃油温度等)的组合。


  J1939 协议与CAN2.0B 标准区别

  标识符ID:CAN2.0B 不同功能的报文信息可以使用相同的ID,根据制造商特定的协议使用CAN设备,在集成时会产生ID 不能识别或识别不一致问题。J1939 每帧报文的标识符唯一,且每帧报文都有自己的PGN,为每个节点规定唯一的源地址,并将源地址映射到CAN 标识符中,避免多个节点使用相同的标识符,例如ID:0CF00400 代表发动机转速、扭矩报文。


  OSI 模型:CAN2.0 规范定义了七层OSI 参考模型的物理层和数据链路层,是底层标准,如图2所示, CAN 总线产品的兼容性、互换性和可集成性差。J1939 是面向OSI 参考模型应用层的高层协议,在应用层定义了针对车辆应用的信号(参数)和报文(参数组)。通过参数描述信号,并给每个参数分配了一个编号SPN(Suspect Parameter Number),参数定义了PDU 数据场中字节的物理意义,例如SPN190 代表发动机转速。一个PGN 中可能有几个SPN,PGN61444 包含了SPN190 发动机转速和SPN513 发动机扭矩等参数。


  多帧报文:CAN2.0B 规范定义只能使用单帧报文传输,J1939 协议除单帧报文传输外,还使用对话式、广播式多帧报文传输,并按多帧数据传输协议进行打包封装发送和接收合成重组处理,其中对话式多帧报文发送接收节点需要握手协议,广播式多帧报文面向全局地址发送。  

 

  模块接口

  PXI-8464/2 双通道CAN2.0B 通讯接口模块,内含SJA1000T CAN 控制器和TJA1041T 高速CAN收发器及TJA1054AT 低速CAN 收发器。J1939 数据链路层通过PDU 格式实现报文的打包封装,通过CAN 控制器发送CAN 数据帧必须具有的同步、顺序控制、错误控制和流控制,自动产生CRC 校验位和ACK 应答位插入数据帧中。


  J1939 物理层协议规定了每个网段最多30 个ECU,CAN 总线通讯速率250 kBits/s,总线电平显性、隐性,差分电压3.5V/1.5V,差分传输双绞线线缆颜色CAN-H 黄色、CAN-L 绿色,CAN 收发器完成MCU 至CAN 总线之间收发电平的匹配转换。


  软件设计

  基于J1939 协议的CAN 总线报文收发多任务处理流程,如图3 所示,采用生产者/消费者循环数据结构。生产者循环使用“元素入队列”函数向报文簇队列中添加数据,消费者循环使用“元素出队列”函数从报文簇队列中移出数据。循环间采用队列的方式进行通信,避免多任务处理竞争状态,当生产数据比消费处理数据的速度快时,队列的缓冲作用保证报文数据不丢失。  

 

  建立接收报文ID 解析过滤的识别方法。确定报文标识符ID 的枚举型状态变量识别报文,根据状态变量条件结构过滤报文。


  PDU1、PDU2 格式单帧报文全部入队列,数据场大于8 字节的对话式、广播式多帧报文按J1939协议多帧数据合成重组后入队列,其它无数据场的报文帧舍去,处理完的接收报文簇分解后出队列计算、存贮和显示。


  广播帧报文接收合成,首先进行TP.CM-BAM 命令帧解析,提取EECU 发送报文的PGN 和帧数,其次对接收的TP.DT-BAM 数据帧组报文删除帧序号,通过替换数组子集对接收报文合成重组,还原PGN 标识的数据长度大于8 字节的广播帧报文。


  建立发送报文ID 解析封装的识别方法。报文解析首先确定帧类型状态变量,其次根据状态变量的条件判断,进行报文格式的封装定义。


  数据场小于或等于8 字节的PDU1、PDU2 单帧发送报文直接入队列,数据场大于8 字节的对话式、广播式多帧报文按J1939 协议多帧数据处理打包封装簇合成后入队列,处理完的J1939 发送报文簇分解后出队列并写入CAN 口。


  广播帧报文发送封装,ID 解析将发送报文的PGN 封装在广播报文命令帧标识符ID-TP.CM 中,报文数组解析进行字节数和帧数计算,创建帧序号加报文子集的8 字节多帧数组,与数据帧标识符ID-TP.DT 打包封装簇合成TP.DT-BAM,TP.CM-BAM 与TP.DT-BAM 组成广播帧格式报文。


  应用效果

  在整车电环境的半实物仿真报文接收测试试验中,应用图4 所示的基于LabVIEW 和J1939 协议的CAN 总线通讯平台,与Vector CANoe 模块在同一时间段比对测试,接收的某型号发动机稳态工况EECU 报文如图5 所示,一秒内接收EECU 发出的526 帧报文,比对测试接收的报文无丢失现象。


  发动机燃油消耗量报文,实时反映了发动机燃油经济性,在商用车J1939 协议CAN 总线网络中,分别被车辆VECU 接收,作为换挡控制策略控制自动变速箱汽车;组合仪表ECU 接收并实时显示,提示驾驶员形成良好的驾驶习惯,操纵汽车达到最佳燃油经济性的路况行驶。为使发动机获得最佳的动力性、经济性和兼顾排放达标,需要对发动机电控单元EECU 进行标定匹配,获得最佳喷油脉宽的标定参数。标定之后做比对试验,验证EECU 的标定效果。


  发动机稳态工况试验,能够反映车辆的等速工况;而发动机变工况瞬态试验,能够模拟实际道路循环中发动机状态。通过将实时报文油耗和实际测量瞬态油耗的对比,研究两者之间的对应吻合关系,判断发动机EECU 的控制效果。  

 

  某型号发动机十工况台架试验瞬态油耗比对测量曲线见图6 所示,从J1939 协议CAN 总线接收并解析的EECU 油耗报文数据,与台架油耗仪实测数据在发动机低负荷时存在差异,即发动机低负荷时实际喷油量较小,设定喷油量与实际喷油量的差异值较大。这个差异是因为发动机低负荷共轨轨压波动较大,导致喷油量波动变化而客规存在。两条曲线总体吻合一致,通过CAN 总线接收的发动机喷油目标值,与实际测量值接近,且变化趋势和时序同步,反映了发动机EECU 标定匹配获得了最佳喷油脉宽的目标值。


  总结

  基于LabVIEW 和J1939 协议的NI PXI 模块化系统架构的CAN 总线通讯平台的开发,建立了NICAN 模块在商用车CAN 总线通讯的应用基础,项目具有推广和商品应用前景。在发动机台架试验、整车电环境半实物仿真分析中,实现对CAN 总线报文信息的过滤识别、合成接收、封装发送、存贮、解析计算及实时显示。


  应用LabVIEW 软件平台强大的数学分析运算及队列处理能力,以及适应整车苛刻测试环境的NI PXI 仪器及CAN 接口模块,满足试验工况对CAN 总线报文信息解析的功能需求,同时实现对报文数据与NI PXI 仪器其它测量参数同步采样,试验数据比对分析处理具有实时性和真实性。

关键字:LabVIEW  J1939  协议  CAN  总线通讯 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/Test_and_measurement/ic479490.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于LabVIEW的2ASK通信系统程序设计
下一篇:LabVIEW应用于车辆通过噪声测试的声学波束成形

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

基于LabVIEW的水环境因子无线监测系统设计
摘要:为了解决传统水产养殖环境因子有线监测系统的布线复杂、可靠性较低等问题,以LabVIEW为开发平台,采用无线数据传输方式,设计了一种水产养殖环境因子无线监测系统。该系统实现了对水环境因子pH值的实时采集、显示和存储,以及历史数据查询等功能。试验结果表明,该系统运行稳定、能够准确地采集和显示水环境因子pH值,且具有操作简便、交互性好、性价比高和易扩展等优点。水产养殖环境因子的状况直接影响水产品的产量、品质及安全生产。因此,在现代工厂化养殖中,对养殖水体的温度、酸碱度(pH)、溶解氧、氨氮值、电导率等环境因子进行自动监测,正受到越来越多的关注。根据传输介质的不同,通常数据信息传送可分为有线数据传输和无线数据传输。有线数据传输存在
发表于 2019-11-16
基于LabVIEW的水环境因子无线监测系统设计
Labview基本常见问题解答(四)
18、利用Build Application生成exe文件,如果原程序用到了current vi’s path,那么就会出现原先默认能找到的文件现在程序自己找不到了 A:当使用current vi’s path这个函数时,它会将文件名和该vi所在的路径返回,如果刚编写vi还没有保存,那么运行它会返回一个无效值,如果已保存了该vi,那么就能返回完整路径,例如一个名为:“Application.vi”的vi被保存在C:Program FileApplication这个文件夹下面,current vi’s path函数返回的路径就是C:Program FileApplication Application.vi;如果生成exe,并且与Ap
发表于 2019-11-16
Labview基本常见问题解答(四)
基于LabVIEW的32位处理器嵌入式系统的开发
随着32位多核处理器应用逐渐走热,设计者正面临着新的挑战, 业内专家指出面向角色(actor-oriented)的图形化方法是更适合嵌入式软件设计的工具。NI 的LabVIEW嵌入式开发模块是LabVIEW图形化编程环境的一款全新附加模块,通过这个软件和图形化系统设计的理念,原先无法利用到嵌入式编程的工程师们都可以进入32位微处理器的领域之中。通过LabVIEW中附加的状态图、控制图表、信号处理库函数等这一完整的工具来设计它们的应用,以解决各种问题。本文对该开发工具进行了介绍。随着嵌入式系统变得越来越复杂,设计者正面临着新的挑战:随着基于32位微控制器(MCU)的嵌入式系统的成本向16位系统逐步接近,在许多高级应用中8位和16位
发表于 2019-11-16
基于LabVIEW的32位处理器嵌入式系统的开发
LabVIEW8.6有哪些新亮点?
LabVIEW8.6增加了对无线网络的开发与控制,比如蓝牙、GPRS以及GSM。这是NI在看到无线通信发展的大背景下作出的英明选择。此外,新版本的LabVIEW增强了对多核与FPGA的支持。美国国家仪器有限公司(National Instruments,简称NI)隆重发布了可应用于控制、测试及嵌入式系统开发的图形化系统设计平台的最新版本——LabVIEW 8.6。得益于LabVIEW软件平台天生并行的图形化编程方式,LabVIEW 8.6版本提供了全新工具帮助工程师和科学家们从多核处理器、现场可编程门阵列 (FPGAs) 及无线通信等商业技术中获益。目前,为了能够使用这些最新技术,工程师们往往不得不使用非专为
发表于 2019-11-16
LabVIEW8.6有哪些新亮点?
您或许未曾了解的LabVIEW 8.5的五大特性
类数据访问函数的自动创建利用面向对象的动态分配子VI与迭代处理混合复选框MathScript调试功能指针与互操作性的改进基于客户与用户的需求,NI LabVIEW 8.5软件引入了多项新的特性与改进。许多时常提及的特性被添加到了LabVIEW项目浏览器,这些工具帮助您管理大量的VI并防止交叉连接等常见问题。NI还在8.5版本中添加了一些您或许尚未意识到的其他特性,其中包括对于面向对象编程的改进和对于DLL的互操作性。类数据访问函数的自动创建LabVIEW类中的数据是私有的,这意味着该数据除非通过接口发布,否则任何外部函数都不能对其进行操作。由于防止了对一个实例化对象中数据的直接操作,并要求您为之创建一个访问函数
发表于 2019-11-16
您或许未曾了解的LabVIEW 8.5的五大特性
广泛应用于测试领域的虚拟仪器LabVIEW解析方案
0 引言虚拟仪器LabVIEW目前已广泛应用于测试领域,出发点和归宿是“软件化的真实仪器”。LabVIEW同时又是一个优秀的仿真系统,但真正处于仿真目的使用的并不多见,本文提出数字“虚拟芯片”概念,并基于LabVIEW实现仿真运用。所谓“虚拟芯片”,是在充分利用LabVIEW图形化语言风格和强大信号处理功能的基础上,设计具有一定显示界面的虚拟输入/输出端子、能完成相应的数字逻辑运算功能或数字信号处理功能的计算机程序,也就是LabVIEW的VI。应当说这是新时期数字逻辑电路设计、实验或教学的一种新举措,基于LabVIEW的数字虚拟芯片和原理图设计与其他仿真系统相比,不但有自身的特点,也是对虚拟仪器系统LabVIEW应用新领域的拓展
发表于 2019-11-16
广泛应用于测试领域的虚拟仪器LabVIEW解析方案
小广播
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved