APP下载

基于CANoe的CAN总线网关测试模型的设计

2019-05-30覃华强周志良

汽车电器 2019年5期
关键词:报文网关总线

覃华强,苏 凯,周志良

(1.上汽通用五菱汽车股份有限公司,广西 柳州 545007;2.中国汽车技术研究中心有限公司,天津 300300)

随着汽车电子技术的发展,汽车电子电器架构日趋复杂,从而导致网络结构越来越复杂,一个网段的车载CAN总线网络架构已经无法满足目前车辆功能的需求,需要通过网关连接多个网段的网络通信,在车载网络中具有非常重要的作用。在汽车量产之前,网关必须进行严格的网络性能测试,只有测试验证没有问题之后才能认可通过,成为量产件。测试工作的严谨性重点体现在测试方式上,所以测试模型在测试中便显得十分重要。

1 网关测试模型概述

CANoe是德国Vector公司开发的系统级总线软件开发工具,它能支持总线开发的整个过程,从最初的设计、仿真到最终的分析测试。通过Vector的CAN总线硬件接口卡CANcaseXL/CANcardXL可以实现虚拟总线与物理总线的连接。也可以利用CANoe进行基于全部虚拟节点的全数字总线仿真和物理节点与虚拟节点相结合的半实物仿真,还可以对真实物理总线的通信进行实时监控与分析[2-3]。

基于CANoe的虚拟节点与实物相结合的仿真功能,开发出来的CAN总线网关测试模型主要包含以下几个部分:①整车网络所有节点的数据库 (dbc)文件;② 整车网络虚拟节点;③ 控制面板;④ 信号发生器;⑤ 结果输出窗口;⑥ 报文监控窗口。测试模型总体界面如图1所示。

2 方案设计

车载网络中通信报文欲从源网段传输到目标网段,那么两个网段之间必须要有网关进行转发。首先,网关需要对源网段上的报文进行筛选,只有筛选出的有效报文才能从源网段转发到目标网段。网关接收到有效报文之后,按照规定的时间转发到目标网段。网关在进行报文转发的过程中,报文不能出现丢失、周期错误和信息改变等情况。

综上所述,CANoe建立的测试模型,需要实时检测被网关转发报文的ID、信号值、数据长度和周期,如果发生了变化,网关不应该将产生错误的报文转发至目标网段。同时,测试模型还需要实时监测需要转发的ID报文在源网段的数目与目标网段上的数目,如果二者数目不一致,则说明网关在转发报文的时候出现丢帧的情况;对于报文路由的延迟时间情况,网关在源网段接收到需要转发的报文后,应该在规定时间内将此报文无任何改变地转发到目标网段上。这就要求仿真模型实时对报文路由时间进行检测,路由延迟时间超过设定值时,网关测试模型应该在结果输出界面打印出超时报文的时间戳。每个测试用例测试结束之后,测试模型将整个测试记录数据和结果保存下来。

图1 测试模型总体界面

3 网关测试模型搭建

整车网络通信网段超过两个时才需要网关进行连接。如本文举出两个网段的车载网络例子,将其中一个网段定义为HS_CAN1,另一个网段定义为HS_CAN2。HS_CAN1网段具有:PCU(动力控制单元)、ABS(防抱死制动系统)和HCU(随动前照灯控制单元)等电子控制单元;HS_CAN2网段具有:BCM (车身控制模块)、IC(仪表组合)、ACM(自动空调控制模块)等电子控制单元。两个网段的数据交互通过Gateway(网关,简称GW)实现,如图2所示。

图2 车载网络通信结构

由于采用虚拟节点相结合的半实物仿真模型测试网关,需要在CANoe中建立虚拟网络节点。虚拟节点架构如图3所示。

图3 虚拟节点架构

通过CAPL ECU和Test Module/TestUnit,CANoe可以往虚拟总线或真实总线上发送报文,CAPL ECU需要使用CAPL语言进行编程生成.can文件,调用发送报文指令output(),使能虚拟节点往虚拟总线发送报文或往真实总线发送报文。在CAPL ECU中也可以使用建立好的dbc文件和内置的IL接口,直接将编写好的整个ECU的报文发送到总线。Test Module/TestUnit也需要使用CAPL语言进行编程生成.can文件才可以发送报文。如果要人为手动改变发送报文内的信号值,需要借助Panel(控制面板)直接对CAPL ECU和Test Module/TestUnit内的报文信号进行赋值。在CAPL ECU中,如果调用dbc文件和内置IL接口发送报文,可以在信号发生界面对报文信号进行赋值[4-6]。

3.1 建立网络各个节点dbc文件

dbc文件作为CANoe的数据库,CANoe在接收来自总线的报文时,可根据数据库内的定义对接收的报文进行解析,CANoe也可以调用dbc文件内的报文信息,进行报文发送。

标准的dbc文件应该包含:节点名称、节点包含的收发报文、报文ID、报文数据长度、报文信号、报文发送类型和报文发送周期等。由于是双网段通信结构,建立dbc文件时需要建立两个dbc文件,建立好的dbc文件如图4所示。

图4 dbc文件

3.2 建立控制界面

控制面板操作实质上是修改系统变量或是环境变量信息的一种手段,控制面板上的按键或是信息输入框均是直接关联相关变量。操作控制面板就是改变环境变量或信号的数值,修改的变量或信号会触发虚拟节点设定的对应功能,从而实现控制测试进程的目的。

需要在dbc文件中建立的系统变量有:Message_Lost_Rate;Route_Delay;……

在控制面板界面建立的控制按钮关联相应的环境变量有:按键Route_Delay关联系统变量Route_Delay;按键Message_Lost_Rate关联系统变量Message_Lost_Rate。设计效果如图5所示。

图5 控制面板界面

环境变量实例。触发按键Route_Delay,会直接触发路由延迟时间用例的测试,如下所示:

on sysvar//获取环境变量 (按键)状态

sysvar::Gateway_Tester::Route_Delay

{

if (@sysvar::Gateway_Tester::Route_Delay)

ILControlStart ();//开始测试

else

ILControlStop ();//停止测试

}

3.3 建立虚拟节点

虚拟节点的建立包括:网络虚拟节点的建立和测试节点的建立。网络虚拟节点的建立就是在Simulation网络上建立虚拟节点 (即:节点BCM、IC、ACM),虚拟节点可以模拟发出对应真实节点的报文。测试节点 (即:节点CAN1_Test)主要是由.can文件组成,文件中集成了测试网关的所有算法和策略。建立好的虚拟节点结构如图6所示。

图6 虚拟节点结构

在对真实网关模块进行实际测试时,需要将虚拟的Gateway节点进行屏蔽处理,通过硬件CANcase接口接入真实的网关。

3.4 配置信号发生器

信号发生器可以直接给即将发送的报文信号值进行赋值,信号值变化规律可以根据信号发生器内设置的变化类型进行改变,也可以根据用户自己定义的变化类型进行信号值设置。如图7所示,报文的所有信号值被设置为随机数模式。

图7 信号发生器

3.5 监控与结果输出 (图8)

监控界面 (即:trace界面)能够实时监控总线上报文的信息,总线上任意时刻的报文都会显示在此界面上。监控界面的信息会生成trace文件,以便测试完成后,测试人员对测试中出现的问题进行复查分析。

结果输出界面 (即:write界面),在输出界面中可以打印出测试结果,输出的内容可以保存为.txt文件。在测试模型节点的.can文件中,通过write();函数可以测试结果或者是其他重要提示信息打印的输出界面中。

图8 监控与结果输出界面

4 结束语

目前,在一些较为高端的汽车当中,车载网络已经扩展到了5路网段。为了满足转发报文数目不断增加的要求,网关的路由报文能力被不断提高。后续车型设计中,网关还会加入以太网、MOST总线、FlexRay总线和CANFD等,由此,网关测试的重要性会提升一个级别,测试模型也会不断更新与升级。

猜你喜欢

报文网关总线
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
智能燃气表物联网运行体系网关技术研究
基于FPGA的工业TSN融合网关设计
大规模低轨卫星网络移动性管理方案
基于Python的汽车CAN总线报文格式转换系统的设计与实现
一种主从冗余网关的故障模式分析与处理
关于CAN总线的地铁屏蔽门控制思路论述
基于报文类型的限速值动态调整
Q&A热线