电动车VCU标定软件基于labview实现ASAP2协议毕业论文
2020-02-13 18:00:39
摘 要
在汽车电子技术不断发展的今天,汽车上的ECU越来越多,也令汽车的可靠性、舒适性、安全性优化了许多。在汽车电子化程度越来越高的同时,为了方便测量和优化各项控制参数,标定系统在整车开发过程中的地位逐渐得到提升。基于提高开发效率的目的,整车开发时会用到许多的通用标准协议及相关文件,比如CAN总线上的CAN通讯协议与DBC文件、汽车故障诊断协议与ODX文件。对于标定软件的设计,需要遵从ASAP2标准协议,即能够通过解析符合ASAP2标准的A2L文件,获得控制器内变量的各项真实参数。本文基于Labview软件,结合ASAP2协议,设计了一个针对电动车VCU的标定系统。设计过程中,首先获取VCU编译时生成的map文件,将其导入 Vector ASAP2 Editor软件生成具有真实地址的A2L文件。利用Labview工具包中的字符串处理函数可以对A2L文件进行解析,然后构建标定软件模型,制作出具有目标功能的上位机。通过CCP协议,信息以CAN报文的形式在标定系统与VCU之间实现交互。
关键词:纯电动汽车;CAN总线 ;VCU标定;Labview;ASAP2协议
Abstract
Today, with the continuous development of automotive electronics technology, more and more ECUs are in the car, which also optimizes the reliability, comfort and safety of the car. At the same time as the degree of electronicization of automobiles is getting higher and higher, in order to facilitate the measurement and optimization of various control parameters, the status of the calibration system in the development process of the vehicle is gradually improved. Based on the purpose of improving development efficiency, many common standard protocols are used in vehicle development, such as CAN communication protocol on CAN bus and automobile fault diagnosis protocol. For the design of the calibration software, it is necessary to comply with the ASAP2 standard protocol, that is, the real parameters of the variables in the controller can be obtained by parsing the A2L file conforming to the ASAP2 standard. Based on Labview software and ASAP2 protocol, this paper designs a calibration system for electric vehicle VCU. In the design process, first obtain the map file generated by the VCU compilation, and import it into the Vector ASAP2 Editor software to generate the A2L file with the real address. The string processing function in the Labview toolkit can be used to parse the A2L file, and then build the calibration software model to create the host computer with the target function. Through the CCP protocol, information is exchanged between the calibration system and the VCU in the form of CAN messages.
Key Words: Pure electric vehicle; CAN bus; VCU calibration; Labview; ASAP2 protocol
目录
第1章 绪论 6
第2章 CAN总线 7
2.1 CAN通讯协议 7
2.2 CAN收发模型 9
2.3 CAN网络仿真 12
2.4 CCP通讯协议 13
2.4.1 CRO 13
2.4.2 DTO 14
2.4.3 CCP驱动接口程序 15
第三章 VCU参数标定 16
3.1 VCU 16
3.2 标定内容 17
3.3 标定流程 17
第四章 ASAP2标准协议 18
4.1 A2L文件 19
4.1.1 IF_DATA接口数据信息模块 20
4.1.2设备参数模块 21
4.1.3变量属性模块 22
4.2 Vector ASAP2 Editor软件 24
第五章 标定系统设计 27
5.1 A2L文件解析 27
5.2 标定界面设计 27
第六章 结论 29
参考文献 30
致 谢 31
第1章 绪论
目前国外有几家大公司所开发的标定软件已经十分完善,但需要配合他们公司开发的硬件设施,软硬件一套下来价格十分昂贵。如Vector公司开发的CANape标定系统,Etas公司开发的INCA标定系统,它们都是基于ASAP标准开发的。而国内目前来说标定系统还处于起步阶段,对于标定系统的开发研究主要集中在高校和一些研究所当中,研究方向比较专注于特定的ECU以实现特定的功能,专用性较强,难以移植,有较大的局限性。
近年来,新能源汽车不断发展,电动车的产销逐年递增。在电动车的开发中,需要对电动车的整车控制单元VCU进行标定。在标定过程中,我们可以基于ASAP2标准协议获取VCU中的重要变量信息,如内存地址,长度,类型等,再利用基于CAN总线的CCP[1]、XCP[2][3]等通讯协议与VCU实现对接,在标定软件中对参数变量进行修改优化、对测量变量进行实时监控。本次毕业设计旨在用labview平台设计出标定软件[4],能够解析符合ASAP2标准的A2L文件,从而实现对整车VCU的标定功能。
第2章 CAN总线
CAN是Bosch公司和Intel公司在80年代末开发的总线系统,开始主要用于连接客车和卡车ECU。发展至今,CAN总线不光成为了汽车领域中最常用的总线系统,在自动控制、机械工业、航海、航空航天领域也都得到了广泛应用。
在CAN总线之前,两个控制器之间想要进行数据交换,需要一根连接线,五个控制器两两进行数据交换就需要十根连接线。由于汽车电子化程度不断变高,汽车上控制器的数量也越来越多,那么所需的连接线的数量将成几何倍数增长,显然这种数据交换方式存在很大问题。通过CAN总线技术,该问题得到了解决方法:各个控制器将需要交换的信息发送到CAN总线上,其它控制器则根据信息ID号选择自己需要的信息。CAN总线技术相比于传统的信息交换方式,不仅使线束和接头大大减少,从而降低了故障率,而且方便开发和检修,如果想要给总线增添新的功能,只需对软件做一定的升级就可以了。
值得注意的是在CAN总线技术中,信息传输时使用的是两条绞合在一起的导线,我们称之为双绞线,它们分别叫做CAN_High和CAN_Low线。之所以这样设计是因为在信号传输的过程中,有可能遇到电磁等干扰,导致信号电平发生变化。采用双绞线设计之后,有效信号为两根线上的信号电平之差,这样即使遭遇到了干扰,两根线上的信号发生同样的变化,但其差值恒定,从而避免了干扰对有效信号的影响。
2.1 CAN通讯协议
标定工作需要实现与VCU之间的信息交互,信息则是从CAN总线上获取,因而要想实现标定功能,绕不开CAN总线的设计。[6]
在控制器开发过程中,十分重要的一环便是CAN通讯协议的编写。在CAN通讯协议中,定义了CAN总线的波特率、节点地址、报文信息的ID号、收发节点以及信息矩阵。所谓信息矩阵,指的是需要传输的信号在一帧报文中的排列。一帧报文包含8个字节,某一信号在这帧报文中的第几字节,在该字节中的第几位均需要作出明确的定义。控制器节点通过识别ID号筛选自己需要的报文,从而获得有用信号。下表是本次设计用到的CAN通讯协议中对某一个报文的定义。
OUT |
IN |
ID 0x180CA716 |
周期 ms |
||||||
EPS |
VCU |
PGN- |
100 |
||||||
P |
R |
DP |
PF |
PS |
SA |
||||
6 |
0 |
0 |
12 |
167 |
22 |
||||
数据 |
|||||||||
位置 |
数据名 |
数据定义 |
|||||||
BYTE1 |
EPS状态 |
||||||||
BYTE2 |
EPS工作电流低字节 |
0.01A/bit,偏移量:0; |
|||||||
BYTE3 |
EPS工作电流高字节 |
||||||||
BYTE4 |
EPS转向扭矩低字节 |
0.1N.m/bit,偏移量: 100 N.m |
|||||||
BYTE5 |
EPS转向扭矩高字节 |
||||||||
BYTE6 |
EPS故障1 |
||||||||
BYTE7 |
EPS故障2 |
||||||||
BYTE8 |
保留 |
表2.1 CAN通讯协议中报文定义格式
从图中可以直观的看到报文的ID、收发节点以及报文中所包含的数据信息,对发送周期也有定义,CAN通讯协议正是由很多图中这样的报文表格所组成。有了CAN通讯协议,我们就可以编写相应的DBC文件。
DBC文件是根据CAN通讯协议编写而成的通讯规范文件,属于文本类文件。我们可以直接用记事本打开它查看它的程序代码。DBC文件主要是由一系列的Message和Signal组成。一个Message就是指一个报文信息,在一个Message中存在多个Signal,所以在编写DBC文件时,每建立一个Message框架,就要往里面填充包含的信号信息。DBC文件的代码里,BO_是定义Message的关键字,定义格式如下:
格式:BO_ ID Name: DLC Transmiter
可见在定义Message时,主要有四个关键信息:ID号、帧名称、帧长度、发送节点。定义完Message,在下面开始Signal的定义,SG_是定义Signal的关键字,定义格式如下:
格式:SG_ Name : StartBit | Length @ ByteOrder SignedFlag (Factor,Offset) [Minimum | Maximum] 'Unit' Receiver1,Receiver2
一个Signal需要定义的信息相对较多,上面格式中,按顺序定义了信号的名字、在报文矩阵中的起始位、数据长度、字节对齐顺序、符号位、系数、偏移量、最大最小值、单位以及接受节点。需要理解的是信号一般有两种字节对齐方式,大端对齐(MSB)和小端对齐(LSB),大端对齐是高位在前,小端对齐是地位在前。对齐方式必须要定义准确,不然解析时就可能解析出错误的数据。一般常用的对齐方式为大端对齐。下面是依据图9中的报文表格生成的代码。
BO_ 2550966038 EPS_Message_1: 8 EPS
SG_ EPSToVCU_0CA7_Signal7 : 55|8@0 (1,0) [0|255] '' VCU
SG_ EPSToVCU_0CA7_Signal6 : 47|8@0 (1,0) [0|255] '' VCU
SG_ EPSToVCU_0CA7_Signal5 : 39|8@0 (1,0) [0|255] 'N.m' VCU
SG_ EPSToVCU_0CA7_Signal4 : 31|8@0 (1,0) [0|255] 'N.m' VCU
SG_ EPSToVCU_0CA7_Signal3 : 23|8@0 (1,0) [0|255] 'A' VCU
SG_ EPSToVCU_0CA7_Signal2 : 15|8@0 (1,0) [0|255] 'A' VCU
SG_ EPSToVCU_0CA7_Signal1 : 7|8@0 (1,0) [0|255] '' VCU
根据上面介绍的格式来解析这段代码,可以看出所表达的信息与表格中信息吻合。
一般DBC文件的编辑使用的是CANdb 软件,CANdb 是vector公司开发的专门用于编辑DBC文件的软件,本次设计也是使用它完成了DBC文件的编写。
2.2 CAN收发模型
有了DBC文件之后,在使用Simulink建立CAN通讯收发模型时,我们就可以直接导入DBC文件来获得所需报文数据的输入接口,收发模型如图2.1所示。
在模型中,有许多的CAN pack模块,作用是将多个信号(也就是前面的Signal)打包成一个报文信息。在前面的CAN通讯协议中定义了多少个报文,这里就有多少个打包模块,每一个打包模块通过导入DBC文件来获取需要的报文信息。将所有的信号打包好之后,输送给该节点的发送模块,在另一节点处,由接收模块进行报文的读取。节点接收到报文信息后,无法直接利用其包含的信息,所以还需要对其进行解包,也就是将报文拆分成一个个的信号,这里我们就要用到CAN unpack模块。同样是在CAN unpack模块中导入DBC文件,选择需要解包的报文,就会自动生成信号输出端口。
图2.1 CAN通讯收发模型
通过在CAN pack模块的某个信号输入端输入一个定值,在CAN unpack相对应的信号输出端采集到了该值,说明该模型建立成功。然后利用matlab自带的自动生成代码功能(RTW),我们就得到了CAN通讯的代码[14],代码的部分内容如下:
/* --------------- START Packing signal 1 ------------------
* startBit = 8
* length = 8
* desiredSignalByteLayout = BIGENDIAN
* dataType = UNSIGNED
* factor = 1.0
* offset = 0.0
* minimum = 0.0
* maximum = 0.0
* -----------------------------------------------------------------------*/
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: