齐凤英
QI Feng-ying
(内蒙古呼伦贝尔学院,呼伦贝尔 021008)
使用两个ECU分别控制电控发动机和自动变速器,在二者之间实现通过总线的数据通信。这种方案使各ECU成为网络上的节点,可以在节点间实现数据的高速共享,从而使得大规模并行计算成为可能,也有利于在动力传动电控系统的基础上发展整车综合电控系统。
LabVIEW (Laboratory Virtual Instrument Engineering Workbench) 是美国国家仪器(NI)公司开发的一种基于图形程序的虚拟仪表编程语言。LabVIEW程序称为虚拟仪表程序(简称VI),主要包括两个部分:前面板(即人机界面) 和方框图程序。前面板用于模拟真实仪器的面板操作,可设置输入数值和观察输出值, 以及实现图表、文本等显示。框图程序应用图形编程语言编写, 相当于传统程序的源代码。
系统中,主要包括电控柴油机ECU、自动变速器ECU及数据采集节点。系统的组织结构如图1所示。图中R为总线终结电阻,电控柴油机ECU、自动变速器ECU及CAN卡通过屏蔽双绞线与总线相连,而CAN卡通过USB线缆和数据采集系统相连。
图1 系统组织结构图
该动力传动系统的虚拟仪表及数据采集系统主要符合SAE J1939协议。J1939以CAN2.0B协议为基础,通讯速率最高可达到250Kbps。J1939中一个标准数据协议单元如表1所示。
表1 SAE J1939标准协议数据单元格式
但SAE J1939标准并没有直接给出CAN网络中可以通信的PDU的格式,只是给出了可以通信的参数组和参数组号。参数组号以24位二进制码表示,用于参数的分类和参数信息在数据帧中的封装。参数组号由以下几部分组成:6位0、保留位、数据页位、协议数据单元格式场(8位)和组扩展场(8位)。参数组号大部分由SAE J1939标准规定,还有一部分参数组号可以由制造商按照需要分配。
该系统主要实现两个功能:采集动力系统和传动系统的相关参数;对发动机进行一定的控制。
发动机电子控制器EMR通过传感器采集发动机状态数据,经过其CAN接口发送到上位机。主要涉及的报文及参数主要有:61440(电子减速器控制器1#)中的实际发动机转矩;61441(电子制动器控制器1#):中的远程油门允许开关;61443(电子发动机控制器2#)中的油门位置;61444(电子发动机控制器1#)中的发动机转速及减速器转矩模式;65247(电子发动机控制器3#)中的额定摩擦力转矩;65263(发动机液量/压力)中的发动机机油压力;65266(燃油经济性)中的燃油消耗率;65271(车辆电力)中的电子设备电压。
变速器节点主要涉及的参数为:61442(电子变速器控制器1#)中的输出轴转速及输入轴转速;61445(电子变速器控制器2#)中的目标档位及当前档位。
在功能控制方面,发动机电子控制器接收来自上位机的控制数据,通过执行器对发动机进行控制。这个报文主要是TSC1_a(转速控制或扭矩控制)。
优先控制模式优先级是指发动机对该控制报文的响应速度,由于是在换档过程中实时控制发动机,所以设定的优先权为01,该优先权用于要求实时动作以保证车辆操纵安全的场合。
优先控制模式区分该参数组用于转速控制还是转矩控制,提出的目标值还是最大值。
主界面显示主要内容包括:左侧上方的转速曲线显示区,主要显示发动机转速、变速器输入轴转速及输出轴转速,可以通过该区域右上方的下拉框进行切换;转速曲线显示区下面是发动机转速控制区,可输入一个目标转速值,点击发送后既可对发动机转速进行控制;再下面分别是油门位置、发动机转速和车速的显示仪表,可直观显示这个三个参数,其中车速为变速器输出轴转速计算而来,这个区域还有油门控制区,相当于发动机的油门踏板,可对发动机进行控制;右侧上方为总线控制台,主要显示不常用的各个参数组,输入参数组号后,其下面的表格就会显示其中的参数名称和大小;右侧下方为发动机状态指示灯。
图2 界面设计
本文利用LabVIEW完成发动机数据采集和故障诊断程序的设计,在整个设计过程中采用了模块化的编程思想,模块化的编程思想就是指在编程过程中,其程序的相关部分放在一起进行封装,它对外仅提供输入和输出接口。因此在别的程序使用到该模块时,不必考虑模块的内部结构,只需知道其端口参数即可。其主程序流程图如图3所示。
其中主要包括三部分:底层收发程序、转换程序和应用程序。其中底层收发程序包括初始化程序、接收程序和发送程序、发送目标配置程序以及打开和关闭卡,这部分程序由CAN卡公司提供底层驱动的动态链接库,然后LabVIEW对CANUSB接口卡动态链接库端口函数的调用,实现CAN总线的通信。
图3 程序设计主流程图
图4 32位ID—1939标识的转换程序
而转换程序主要包括:32位ID—1939标识的转换程序、PGN—32位ID的转换程序和原始数据所要参数的转换程序。32位ID主要是指各CAN控制器中的ID存储和发送都是双字节的,而J1939标准中的ID是29位的,参数组号(PGN)是24位的,因而需要相互转换。主要是对数据进行移位、数学运算和逻辑运算使之转换成我们所需参数。以32位ID—1939标识的转换程序举例如图4所示。
应用程序主要包括动力传动系统状态参数的显示程序和发动机控制程序。显示程序主要是通过CANUSB接口卡读取EMR上的发动机数据,然后经过调用CANUSB接口卡的接口函数来读取发动机的数据,而控制程序主要任务是对发动机的工作状态进行控制,它通过用户输入期望数据,CANUSB接口卡采集到该数据并输出到CAN总线,发动机端的EMR接收到该数据根据它的ECU的处理,输出到执行器上,进而控制发动机相应的状态,其主要流程如图5所示。
图5 发动机控制流程
本文通过对动力传动系统CAN总线报文的分析,基于SAE J1939协议开发了以LabVIEW为平台的动力传动系统数据显示采集系统,并进行了试验验证。设计的数据显示采集软件界面功能全面,美观大方,并可以稳定的进行对发动机控制,满足了动力传动系统研发的需要,是一种很好的辅助工具。
[1]SAE J1939 Standards Collection, Recommended Practice for a Serial Control and Communication Vehicle Network[S]. Society of Automotive Engineers, 2003.
[2]SAE Standard. Data Link Layer SAE J1939/21 Issued 1994: 5-6.
[3]华旭东. 随车数据采集分析技术研究[D]. 北京: 北京理工大学, 2001.