APP下载

基于CAN总线技术的发动机起动控制策略研究

2020-06-04周在芳齐善东

汽车电器 2020年5期
关键词:程序开发实车报文

张 莹,周在芳,齐善东

(中国重汽集团汽车研究总院,山东 济南 250002)

目前,越来越多的控制器应用在重型卡车上,传统的布线方式已无法满足传输速率的要求。以CAN为底层协议的J1939协议已广泛应用于重型卡车。本文主要介绍一种基于J1939协议的发动机CAN起动控制策略。

1 起动系统的组成

传统的起动系统由蓄电池、起动机、起动继电器和钥匙开关等组成。起动系统的工作原理是:启动钥匙开关,启动继电器在ECU的控制下吸合,由蓄电池提供电能,起动机将电能转化为机械能,带动发动机飞轮齿圈和曲轴转动,从而使发动机进入自行运转状态。起动系统的工作原理如图1所示。

图1 起动系统工作原理

2 基于CAN总线技术的发动机起动控制原理

日前,汽车网络研发不断深入,越来越多的控制器应用在重型卡车上。传统硬线的布线方式,传输数据的速率已远远不能满足,车载网络控制系统由此而生。车载网络控制的应用节省了汽车制造厂的开支,减少了硬线连接,便于汽车线路的维修工作,提高了车用信息的传输速率,同时提高了电控系统的可靠性。

本文介绍一种基于CAN总线技术的发动机起动控制策略。钥匙开关上电后,NANO发启动请求给ECU,ECU收到启动信号后,回复VIN码。NANO校验VIN码,校验成功后,发启动请求给ECU。CAN启动逻辑见图2。

图2 CAN启动逻辑

3 底层程序开发

ECU端负责对NANO发送的CAN消息帧进行解析并执行,包括CAN消息帧的发送和接收。本研究使用CodeWarrior集成开发环境,基于C语言完成CAN消息帧的发送和接收。

3.1 CAN数据接收模块

当NANO对ECU发送启动请求时,发动机ECU需要接收请求,编写ECU的CAN接收模块代码,对CAN报文进行接收。接收设计如下:

#define J1939_PGN_CANst 0x00EA00 //接收启动请求PGN

for(i=0;i<8;i++) //接收启动请求

{

Com_dPGNRQByte[i]=msg->data[i];

}

3.2 CAN数据发送模块

当ECU接收到启动请求后,发送VIN码给NANO验证。发送程序设计如下:

const vuint32_t J1939_idVIN_C=0x18EBFF00;//发送地址

static void J1939CalcVIN1(void) //发送数据赋值

{

J1939_VIN.B[0]=VIN_CA[0];

J1939_VIN.B[1]=VIN_CA[1];

J1939_VIN.B[2]=VIN_CA[2];

J1939_VIN.B[3]=VIN_CA[3];

J1939_VIN.B[4]=VIN_CA[4];

J1939_VIN.B[5]=VIN_CA[5];

J1939_VIN.B[6]=VIN_CA[6];

J1939_VIN.B[7]=VIN_CA[7];

}

J1939VINSend(J1939_idVIN_C,&J1939_VIN.B[0]);//发送VIN码

4 应用层程序开发

应用程序开发在MATLAB软件中进行。MATLAB是一款集算法开发、数据分析及数值计算为一体的可视化商业数学软件,是当今国际科学计算软件的先进代表。主要分为MATLAB和Simulink两部分,其中Simulink是MATLAB最重要的组件之一,为用户提供了图形化的工作环境。Simulink搭建模型如图3所示,本模型可以通过标定StSys_stCondActv_C选择不同的启动方式,硬线启动、CAN启动或者车下启动,操作灵活。

图3 CAN启动模型

5 实车验证结果

5.1 CAN报文的接收发送

实车验证,ECU收到Nano的启动请求如图4所示。

图4 CAN报文接收

ECU发送给Nano的VIN码如图5所示。

5.2 实车启动验证

图5 CAN报文发送

Com_stEngStrtReq为CAN启动信号,StSys_stRly为启动继电器启动信号,T15_st为15电状态。StSys_stCondActv_C为2时,系统的启动方式为CAN启动。实车启动验证详见图6。

6 结论

1)基于CAN总线技术的发动机起动控制策略,结构简单,控制灵活。

图6 实车启动验证

2)采用本文的基于底层收发CAN报文和Simulink模型的CAN启动策略是安全且有效的。

猜你喜欢

程序开发实车报文
基于J1939 协议多包报文的时序研究及应用
实车碰撞试验牵引系统钢丝绳疲劳损伤问题分析
以太网QoS技术研究及实践
基于手机蓝牙的奥迪A4L发动机故障设置系统设计
基于Python的汽车CAN总线报文格式转换系统的设计与实现
基于报文类型的限速值动态调整
浅析大学生在兼职小程序开发中遇到的问题
基于WiFi的奥迪A4L发动机故障设置系统
无需多言
VBA在Excel中的应用一例