基于CANoe的汽车网关控制器的测试

2023-03-27 07:10徐忠国韩同群王贵林白嘉绮
汽车实用技术 2023年6期
关键词:网关报文控制器

徐忠国,韩同群,王贵林,白嘉绮

(湖北汽车工业学院 汽车工程学院,湖北 十堰 442000)

随着电子和通信技术的快速发展,汽车总线网络技术越来越普及。网关控制器,它是汽车电子电气架构内的核心元件,发挥着汽车网络中各项数据的交互枢纽作用[1],能够完成在不同的网络中,控制器局域网络(Controller Area Network,CAN)、局域互连网络(Local Internet, LIN)、以太网(Ethernet)等数据进行路由[2],而且还可以对数据的带宽、安全性问题进行解决。目前,车辆日益依赖电子控制单元(Electronic Control Unit,ECU)来实现和优化各类性能。

当今,汽车网关不断往多协议方向发展。作为整车各种ECU网络之间的通信桥梁,网关的主要功能之一是隔离不同的网段。现今社会,随着车内ECU数量的增加,网关控制器测试要求也越来越高,传统的检测方法现已不能满足测试需求,因此,一个可靠高效的测试系统就显得非常重要。针对当前车载网关控制器测试系统功能单一以及测试系统效率低等问题,本文通过对某型乘用车电控转向助力系统控制器的设计需求,基于德国Vector公司CANoe设计出汽车网关的测试系统,进行试验台架测试验证。

1 系统验证测试流程

汽车电动助力转向系统控制器由电源电路、驱动电路、接口电路、监测电路、微控制单元(Micro Controller Unit, MCU)等构成,如图1所示。电动助力转向系统(Electric Power Steering,EPS)控制器能够通过扭矩、转角传感器的信号输出从而得到电机驱动电流的信号,接着信号就传至驱动电路,驱动电机发生转动,经过继电器、电机的驱动电路供电。EPS中的监测电路就是对电流实行监测作用,如果发生过流情况时,继电器就会断开,对电路实行保护。

图1 电动助力转向系统控制器结构图

作为整车通信的桥梁,网关控制器用于整车网络中同种通信协议或者不同种通信协议之间数据和信息的交换。网关控制器是集桥接器与路由器功能于一体的用于接连异型网络的接口装置。汽车CAN总线可分为P_CAN和B_CAN。P_CAN是动力网段,包含发动机ECU、安全气囊ECU等;B_CAN是车身网段,包含门锁防盗ECU、仪表显示ECU等,如图2所示。

图2 网关控制器控制结构框图

网关控制器测试系统总体设计方案验证流程如图3所示,首先要对某型乘用车电控转向助力系统控制器的设计需求进行分析。然后,根据需求分析的结果,再对网关控制测试系统设计。主要是参数配置文件的读取和处理、诊断控制面板和功能验证等。根据网关的测试环境和测试规范,使用CANoe建立仿真工程测试,接着搭建试验台进行测试试验,测试平台的结构内容包括测试模块、数据库数据管理器(DataBase Commander,DBC)文件、网络拓扑以及硬件设备。最后以测试规范作为评判标准,对测试结果进行分析。

图3 测试验证流程

2 系统测试平台搭建

汽车网关的主要功能是路由数据传输的实现,网关控制器一般会提供报文路由、信号路由和诊断路由。测试系统的作用主要是检测网关控制器的路由功能和诊断功能是否完善。测试平台的硬件架构系统由网关控制器、电源、CAN网络接口、EPS以及计算机等硬件设备组成。

选用某车型的网关控制器,该网关控制器的接口有12个引脚,本文对于测试实验设置连接了6条线,如表1所示。网口引脚对应的信号如图4所示。网关控制器中CAN1_L和CAN1_H接到CANoe的VN1630A端口上。而CAN2_L和CAN2_H与电动助力转向系统连接,另外两条线连接着电源。

图4 网关接口定义图

表1 网关接口引脚对应的信号

如图5所示,通过电源设置网关控制器的可调电压。各网段均包含2个120 Ω的终端电阻。对于网关控制器,它主要任务就是对 2个数据传输速率不同的系统,使它们能够正常进行信息交换。网关处理消息的过程主要分为三个部分,首先接收消息,然后处理消息,最后转发消息。在此以两路CAN网络为例,源子网将消息发送出来,网关接收该消息,经过网关处理后消息到达目标网络。网关控制器中设置了2路CAN通讯硬件的接口[3],一路连接到CAN1,另一路连接到CAN2。网关控制器能够对不同的通信协议支持,首先CAN1上接收报文信号,之后信号经过处理后发到CAN2上,这时 CAN2上接收报文信号,信号经过处理后发到CAN1。电源提供12 V供电和唤醒线信号。使用VN1630A接口一端连接电动助力转向系统网关控制器,另一端连接电脑,主要是进行报文的收发,使用CANoe软件来模拟网络中各个节点进行报文发送,数据库文件是DBC文件,配置文件主要是参数初始化文件。在计算机中,是基于CANoe软件仿真测试系统。

图5 VN1630A上两路CAN连接图

3 CANoe仿真模型设计

3.1 基本配置

设计前要先进行仿真接口的硬件配置[4],硬件配置首先连接CANoe VN1630A 到计算机上,在控制面板将CANoe的通道分配给相应vector硬件通道上。软件配置新建一个CANoe工程,选择合适的模板建立配置文件。

3.2 创建DBC数据库

DBC数据库中主要包括报文(Message)、网络节点(Node)、信号(Signal)等信息,它是CAN网络仿真分析的基础文件。根据设计好的CAN网络通讯矩阵使用CANdb++Editorger创建节点、报文、信号等。对于任何一个报文,里面都存在若干条信号[5]。在CANoe中通过CANdb++数据库工具,能够做到报文值的实时修改,进而方便了测试仿真分析。

3.3 增加节点,添加数据库

增加节点,在CANoe中插入Network Node。总线上CAN信号以报文形式展现,要想解析出物理信号,就需要把DBC数据库文件添加进去。在Simulation Setup窗口的Databases上添加DBC文件,加载到测试仿真系统中,使CANoe和控制系统数据库相互关联起来。

3.4 创建系统变量

在CANoe中添加环境变量时,要对环境变量的名称、类型、最小值、最大值、初始值等属性进行定义。信号报文名称在 Namespace中输入,信号名称name中输入,根据DBC数据库里面的定义,输入最小值、最大值、初始值[6],在value table处定义该信号的值,如果是模拟量则不定义,如果是数字量,定义好每个状态对应的含义,然后添加完所有的信号,另外还需添加报文的可下载内容(Downloadable Content, DLC)、报文发送开关等系统变量。

3.5 设计控制面板

控制面板的主要功能是对网关的参数及信息进行读写和配置。所要测试的项目,在CANoe软件中的Panel Designer上进行上位机操作面板的编辑设计。通过该工具可以创建面板,对放置的控件关联上信号变量;当对控件进行操作时,则相应改变了关联上该控件的变量值;再通过通信访问编程语言(Communication Access Programming Laguage, CAPL)获取该变量的值,这样便可以进行下一步的程序动作,即面板控件为交互,关联上的信号变量为桥梁,以此完成交互工作。

3.6 编写程序

针对CANoe开发环境,德国Vector公司设计了专门的开发语言 CAPL。它和 C语言在概念和语法上都类似,CAPL是面向事件的编程语言[7]。通过 CAPL编写程序达到模拟总线上各个节点的行为,能够模拟做到实际节点报文的相关发送、接收、处理等工作,能够仿真展示实际网关控制器的功能。使用 CAPL进行程序编写,来实现对信号的控制[8],完成后编译,应用到网络节点上。

4 台架测试

按照之前设计要求将电源、网关控制器、VN1630A、EPS以及计算机等硬件设备连接,搭建实验台架测试平台。如图6所示,选取某车企的网关控制器进行测试。通过CANoe软件实时监控CAN网络中的CAN1和CAN2中的信号数据。利用数据追踪窗口将各测量模块的实时数据、测试结果进行动态显示和刷新。测试项目如表2所示。

图6 试验测试平台

表2 测试项目

试验结果表明,通过网关控制器接收和转发的报文 ID、数据长度、周期、Rolling counter、Checksum等满足数据一致性。信号转发延时的时间在一个周期以内,通过网关与各个节点之间的数据交换通信的实时性符合要求。执行错误转发测试,错误帧并未转发,满足系统要求。

利用VN1630A等工具,搭建了网关控制器测试台架。使用某乘用车的网关控制器作为被测对象,一方面去验证网关测试系统功能的准确性和实时性,另一方面验证测试用例的可执行性。通过台架测试,实验结果表明,本文设计的网关测试系统可以满足测试需求,网关控制器测试项目结果与预期一致,具有良好的效果。

5 结论

利用CAN网络接口、电动转向系统、网关控制器、计算机等硬件设备搭建了网关控制器硬件测试平台。接着设计了 CANoe仿真模型,建立DBC数据库文件,创建了系统变量,设计控制面板,编写了控制程序。以某乘用车网关控制器为被测对象进行台架测试。结果表明,设计的网关测试系统较好地完成了汽车网关模块的测试,具有较高的稳定性和可靠性。

猜你喜欢
网关报文控制器
基于J1939 协议多包报文的时序研究及应用
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
ATS与列车通信报文分析
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”
模糊PID控制器设计及MATLAB仿真
一种实时高效的伺服控制网关设计
MOXA RTU控制器ioPAC 5542系列
倍福 CX8091嵌入式控制器