在
车载网络的开发过程中,需要发动机节点向总线网络发送报文,为了降低成本,提高开发效率,模拟发动机。基于SAE J1939协议巾车辆应用层子标准及应用层诊断子标准,通过软件编程进行发动机总线数据模拟器的开发,模拟总线网络中的发动机
ECU节点,向总线网络发送报文,从而测试总线网络上的另一节点仪表,检验仪表是否工作正常。
1 SAE J1939协议概述 SAE J1939标准是美国汽车工程师协会(SAE)发布的以CAN总线为核心的车辆网络串行通讯和控制协议,采用多路复用技术为车辆上各传感器、执行器和控制器提供在CAN总线基础上的标准化高速网络连接,在车辆电子装置之间实现高速数据共享,有效减少电子线束的数量,提高车辆电子控制系统的灵活性、可靠性、可维修性及标准化程度。
1.1 SAE J1939协议简介 J1939协议包括12个子标准。本文主要涉及车辆应用层及应用层诊断2个子标准。车辆应用层子标准(SAEJl939/71)规定了车辆控制控制参数的格式,包括参数范围、分辨率、类型及刷新率,数据场各位的含义;应用层诊断子标准(SAEJl939/73)主要针对排放的要求规定了12种诊断结果信息。
1.2 协议数据单元 SAE J1939应用层协议采用协议数据单元PDU传递信息,PDU由优先级P、保留位R、数据页DP、PDU格式PF、PDU特定域PS(可作为目标地址、组扩展或专用)、源地址SA和数据域7部分组成,如表1所示。每个PDU相当于CAN协议中的一帧,它们将被分组封装在一个或多个CAN数据帧中,通过物理介质传送到其他网络装置。
2 总体方案设计
在开发过程中,通过调用USBCAN-Ⅱ接口卡库端口函数,利用CAN总线实现上位机与下位机之间的通讯。发动机总线数据模拟器通过USBCAN-II智能接口向总线仪表发送数据并实时显示,达到测试仪表的目的。系统结构如图1所示。
该系统主要包括6大功能模块,分别是发动机参数报文发送模块、发动机故障报文发送模块、CAN帧信息显示模块、虚拟仪表模块、实时参数曲线模块和仪表测试模块。系统软件采用C#环境开发,运行于Windows平台。系统开发的总体流程是:首先实现与USBCAN-Ⅱ接口卡的通讯,连接成功后,在主界面选择需要实现的功能,然后执行相关模块的操作。在关闭程序的同时,关闭USBCAN-Ⅱ接口卡。程序开发流程如图2所示。