詹克旭
(博世华域转向系统有限公司,上海 201821)
随着汽车电子技术的迅速发展,以及人们对汽车的舒适性、功能性、安全性要求的不断提高,汽车上的电子控制单元变得越来越多。为了满足汽车内部各个节点之间的通信问题,CAN总线网络被广泛应用于车载控制器局域网。虽然现在车载总线如FlexRay、以太网也在逐步的发展,但CAN总线因其速度高、成本低、结构简单、可靠性和实时性好等特点,在车载总线应用上没有被影响,仍然占有重要的地位。
CANoe是德国Vector公司开发的系统级总线开发工具,它能支持总线开发的整个过程。从最初的设计、仿真到最终的分析测试,所有和总线相连的网络节点都可被仿真,实现真实物理总线和虚拟总线的连接。此外,CANoe工具也是单节点网络测试和整车网络测试不可缺少的测试工具。它包含虚拟节点CAPL语言编程、CAN网络数据库编辑器CAN-db++、Panel Generator用户自定义面板组件以及一些集成的调试监控组件。因此,CANoe工具可以满足各种开发测试的需要。本文基于EPS系统的特点,就EPS系统工作所必须的ESC、EMS等关键节点进行仿真设计,模拟实现总线数据通信[1-2]。
EPS(Electric Power Steering)即电动助力转向系统,是汽车转向系统的发展方向。与传统的液压动力转向系统相比,该系统的转向助力由电动助力机直接提供,省去了液压动力转向系统所必需的装于发动机上的皮带轮、传送带、软管、动力转向油泵和液压油,既保护了环境,又节省能量。此外,其还具有装配灵活、调整简单以及在多种状况下都能提供转向助力的特点[3-5]。
EPS的转矩由电动机产生,提供给驾驶员的转向动力需要经过转向系统减速及传递机构转化后产生。EPS是利用电动机作为助力源,由电子控制单元根据转向参数和车速等因素完成助力控制,其原理概括如下。
转向轴 (小齿轮轴)和转矩传感器连接在一起,当转向轴转动时,转矩传感器开始工作,电子控制单元通过获取输入轴和输出轴在扭杆作用下产生的相对转动角位移变成的电信号,并根据转矩传感器和车速传感器的信号决定电动机的助力电流的大小和旋转方向,从而完成对助力转向的实时控制。因此,EPS就可以很容易地实现在不同车速时提供电动机不同的助力效果,它保证了汽车在低速转向行驶时轻便灵活,高速转向行驶时稳定可靠。
由于EPS正常工作离不开整车车速信号的获取,考虑到安全等级的需要,车速值需要同时将总线车速、轮速、发动机转速三者联合起来进行判断,保证车速的真实有效。因此,EPS的功能离不开与ESC(电子稳定系统)和EMS(发动机管理系统)的总线通信,如果需要EPS实现某些高级功能,例如自动泊车功能,还要获取APA(自动泊车辅助系统)的信号。
DBC (Data Base CAN) 文件是由德国Vector公司发布的[6],它被用来描述单一CAN网络中各逻辑节点信息,依据该文件可以开发出监视和分析CAN网络中所有逻辑节点的运行状态。简单来说,DBC是汽车ECU间进行CAN通信的报文内容,有了它相互之间才能听懂。DBC是一种文件格式,.dbc文件是一个ASCII格式的文件,其.dbc扩展名可用于定义CAN网络。DBC由一系列的Message和Signal组成,文件定义了Message和Signal的属性。
CAN总线DBC是分布式CAN网络的主干。在开发基于CAN的分布式电子控制单元网络时,以DBC文件形式进行的通信描述是一个关键的组成部分。DBC数据库的建立是按照OEM定义的通信Matrix列表来配置完成的,图1为通信Matrix列表,定义了消息标识符、消息名称、发送周期、消息长度、信号位置等信息。相应的,在DBC中需要实现Matrix列表中CAN网络的特性和信息。
图1 通信Matrix列表
DBC的编辑需要通过Vector工具的CANdb++实现,CAN-db++是集成在CANoe中用于编辑总线系统数据库文件的工具,利用它可以对报文及信号进行解析,描述仿真对象总线的属性,包括节点、报文、信号和环境变量等,根据CAN总线通信协议配置,把应用层定义的各个参数加载到CANoe仿真环境中。
定义DBC数据库时,先创建网络节点 (Nodes),再创建总线上所要传输的报文 (Messages),按照从高到低的层次依次创建。此外,还要将报文与对应的节点关联,该节点是接收报文还是发送报文需要进行明确,最后还要创建报文中所要携带的数据,即信号 (Signal),并与报文相关联。图2为建立的DBC数据库。可以看出,其中ESC网络节点的其中一条报文已建立完成,DBC中详细描述了ESC_Status报文,其内部包含了诸如车速信号名称、信号值、信号长度、信号起始位、信号存储方式等相关详细信号信息。
根据需求,上位机操作面板需要利用CANoe软件自带的的panel designer来编辑。在面板中添加所需要的控件,并编辑控件属性。可以编辑控件的字号、颜色和字体。此外,为了实现将各个节点与相连设备 (如车速、轮速等)相关联,还需要定义与控制面板相关的环境变量 (Environment Variables),实现人机交互功能,来进行相应的控制,如图3所示。
图2 DBC数据库
图3 系统环境变量设置
本次设计的面板,主要是为了满足EPS的功能需求,根据之前创建的DBC来进行相应消息和信号的添加。主要包括ESC、EMS、APA等,以此来提供EPS工作所必须的车速和发动机转速等信号信息,以及EPS高级功能的信号信息。通过“Group Box”将不同的消息进行区分,“Group Box”内部为该消息的信号信息。为了方便测试,通过“Switch”控件来进行消息的启/停发送操作,此外,还通过设置“Radio Box”、“Input/Output Box”、“Check Box”等控件,实现对信号信息是否有效的选择、输入值的设置 (信号值、信号长度),以及使能与否 (CheckSum、AliveCounter)等操作,设计的面板除了要考虑到正常通信功能外,还要考虑到日后测试中可以通过仿真环境来方便制造故障等情况,具体面板设计如图4所示。
CAPL(CAN Access Programming Language)语言是一种类似于C语言的语法,主要是针对CAN总线应用系统开发的。在CANoe中,为了实现节点的控制功能和控制算法,需要使用CAPL语言对网络中的节点进行编程。通过CAPL语言的使用,既可以用来仿真单个节点,也可以用来仿真整个网络,还可以仿真外部环境,可以进行半仿真或者全仿真测试[7-8]。
CAPL语言是面向事件的编程语言,在CANoe中,可以用来编程的事件包括总线控制器事件、总线消息事件、环境变量事件、错误帧事件、系统事件、时间事件和键盘事件,并执行和事件相关的程序。总线控制器事件是硬件检测到各种总线错误时执行。总线消息事件是接收到指定的消息时执行,on message Message{……},表示接受到指定消息时执行。环境变量事件是指定的环境变量值改变时执行。错误帧事件是硬件每次检测到错误帧时执行。系统事件包括3种,CANoe初始化时执行、测量开始时执行和测量结束时执行。时间事件是定时时间超过时执行,on timer Mytimer{……},将Mytimer声明为以秒为单位的定时。键盘事件是指定的按键被按下时执行,on key'a'{……},表示按键盘'a'时反应。
图4 Panel控制面板
在代码实现上,还要考虑到物理实际值和总线值可能是有区别的,使用CAPL编程来模拟实际节点的功能时,有些信号信息还需要通过转换系数来进行物理值和实际值的转换,如图5所示。此外,还要考虑到诸如CRC校验算法等代码实现。通过CAPL编辑器代码实现,代码与控制面板相关联,最终实现可以通过控制面板,进行收发数据帧。不同的虚拟节点配合CAPL代码和控制面板,就可以在CANoe仿真环境中方便地实现与之相对应的物理节点的功能。
创建CAN网络的DBC文件、建立上位机操作面板和CAPL编程后,便可以对系统进行全仿真。全仿真是全部虚拟节点的仿真,没有物理节点的参与。
将CANoe一端连接电脑,另一端连接EPS,连接并配置好CANoe,点击运行,系统便开始工作。通过trace窗口,可以观察总线上收发的数据。通过操作CANoe的上位机控制面板,可以输入不同的信号值,更改不同的状态来观察信号的变化,如图6所示。
为了验证仿真是否有效,分别进行如下几方面的测试。
图5 CAPL代码实现
图6 系统仿真
1)通过trace窗口观察发送和接收的仿真消息,输入的信号信息是否显示正确,如果出现错误,则可以分析错误的原因。
2)通过操作上位机控制面板的开关,来对消息进行启/停操作,观察trace窗口,消息是否进行正常发送和停止发送响应。
3)通过操作上位机控制面板的复选框勾选,控制消息发送过程中是否进行CheckSum、AliveCounter,观察trace窗口,来确认该功能是否实现。
4)在确认1、2、3三项功能正常的情况下,通过操作CANoe上位机控制面板发送正确的信号信息,如车速信息,通过手动控制EPS,看是否提供相应的助力,已确认仿真信号真实有效。
5)通过操作上位机控制面板发送其他不同的消息信号信息,如高级功能所需信号信息,确定EPS是否具有相应的功能响应。
经测试,该仿真控制面板可以正确模拟相关节点的信号发送,发送的信号真实有效。可以在仿真环境下模拟整车的信号信息,满足EPS系统开发的信号需求,达到了仿真的预期效果。同时,通过仿真环境的设计,还可以进行各种信号故障情况的模拟,有利于EPS系统的后续开发和系统的完善。
对于整车厂和汽车电子供应商来说,Vector公司的CANoe软件是车载网络在开发过程中必不可少的工具。通过CANoe软件对整车网络仿真环境的搭建,在汽车电子产品开发过程中,这种方法对开发CAN总线车载网络具有很大的帮助,可以有效地克服效率低、盲目性、高成本、重复性等不足。
本文利用CANoe软件实现了EPS系统整车网络通信系统的仿真开发,仿真环境包括了EPS系统功能所需要的所有消息和信号信息。通过面板的设计,提供了人机操作界面,方便操作。通过仿真测试表明,该网络的各节点之间的通信真实有效,本次设计的EPS系统网络仿真环境是一个切实可行的CAN总线应用网络,该仿真网络的设计方法可以被广泛应用到不同汽车电子软件产品的开发设计中。