胡育瑞
【摘 要】本文设计一款具有路由、OSEK网络管理、诊断等基本功能的网关,并对其进行相关介绍,以便能进一步提升车辆的安全、可靠及经济性,降低车内网络负载。
【关键词】网关;CAN总线;网络管理;自动化测试
中图分类号:U463.6 文献标志码:A 文章编号:1003-8639( 2023 )04-0032-03
【Abstract】This paper designs a gateway with routing,OSEK network management,diagnosis and other basic functions,and introduces it so as to further improve the safety,reliability and economy of vehicles and reduce the network load in vehicles.
【Key words】gateway;CAN bus;network management;automated testing
汽车电子电气行业的不断发展,使得车内的控制器持续增加,整车有庞大的信息量需要控制器去采集、控制以及交互。CAN总线由于有良好的通信性能,同时能减少线束,降低故障率,成为了主流的汽车总线[1]。但随着控制器的持续增加,信号负载率也持续增大,信号传输延时[2]。为了降低CAN总线负载,保障通信时效性,根据控制器的功能,进一步将其划分为多个网段,各网段之间通过网关相互通信,这对网关的功能也提出了更高的要求,既要确保各网段的通信负载满足要求,还要保障各网段之间能正常通信。本文基于某款车的CAN总线通信开发要求,设计了一款多网段式,具有路由、OSEK网络管理、诊断等基本功能的网关,并利用自动化测试工具对路由、OSEK网络管理等重要功能进行验证测试。
1 系统概述
车载CAN网关作为整车网络的核心,主要负责连接不同的CAN网段,具有应用路由、诊断功能、网络管理、电源管理、Bootloader刷写、映射、防火墙等功能[3]。其中,路由功能是网关最主要的功能,是为了实现跨网段信号和报文的传输。OSEK网络管理能实时监控整车的网络状态和管理整车网络的休眠唤醒。图1是网关系统框图。本网关共有5路CAN及2路LIN通道,其中2路LIN为设计预留,以便后期进行ECU扩充。根据控制器的功能,将5路CAN分为:动力CAN网段(简称PT-CAN)、底盘CAN网段(简称ST-CAN)、车身CAN网段(简称BD-CAN)、娱乐CAN(简称INFOR-CAN)和诊断CAN网段(简称D-CAN)。其中动力CAN和底盘CAN的实时性要求较高,因此该两路网段上的控制器的报文ID值小,根据CAN总线仲裁原则,这些通信报文具有优先级[4]。网关工作的额定电压为12V,正常工作电压为9~16V,波特率为500kb/s。
1.1 路由功能
路由是网关的最主要功能,通过CAN收发器上的Buffer存储报文信号并发送,能够从一个源网段向一个或多个目标网段传输。当路由从一个源网段向一个目标网段傳输,称为1:1路由。当源网段上的一个信号需要被多个目标网段接收时,称为1:N路由,N表示目标网段的数量。本网关支持1:N路由,可在连接的任意网络的任何方向间执行。路由方式包含报文路由和信号路由,报文路由即网关对接收到的报文不做任何处理,直接按照路由表转发到指定的CAN目标网段上,并采用“输入触发”操作,只在收到源网段的报文时才进行路由。网关一旦接收到报文,就必须在目标网段发送一次该报文。报文路由仅用于报文可直接被接收节点进行处理的情景。对于部分目标网段不需要报文中的全部信号,仅需要部分信号,此时就要采用信号路由的方式。信号路由将不同报文中的有效信号提取后重组成新的报文,发送至目标网段。信号路由能降低网络复杂率,但是转发方式较复杂。本网关的信号路由,采用“输入无关”操作,即发送模式的定义须与接收信号独立定义,CAN ID、周期、排列方式、发送方式等信息参照信息矩阵的需求。如果输入信号丢失,发送信号应以无效值进行发送。当网关检测到源网段已经进入网络未启动状态或网络关闭状态时,网关以无效值发送所有信号。
1.2 网络管理功能
网络管理是通过车载网络各项命令规则对汽车控制器进行协调管理,实现各个控制器的协同睡眠和唤醒,进而保证控制器低功耗安全的通信工作。网络管理分为间接网络管理和直接网络管理。间接网络管理主要通过应用报文间接的监控节点与网络状态,本网关主要是通过监控PT-CAN和ST-CAN上的部分应用报文,从而实现对部分节点进行休眠唤醒控制,例如点火开关由非关闭挡位切换到关闭挡位后,部分节点立刻停止通信或者延时一段时间通信,如EMS、EPS、TCU、ESP等。直接网络管理需要使用规定的网络管理报文直接对节点和网络状态进行监控,确保网络睡眠的同步。本网关基于OSEK NM直接网络管理策略,对BD-CAN上节点进行休眠唤醒控制,BD-CAN上的网络实时性不高,且节点主要是KL30常电供电,在点火钥匙为OFF时仍需进行CAN通信,如BCM、PEPS等。OSEK直接网络管理采用“令牌环”的机制,每一个节点都有特定的ID标识符,即节点地址,按照ID标识符的大小,从小ID标识符向大ID标识符依次传递环信息(Ring报文),直至最大的ID标识符,最后再由最大的ID标识符传递至最小的节点ID标识符,形成一个闭合的逻辑令牌环。环消息都是以广播的方式向每个节点发送,其余节点通过监测,并确定是否为上一个发送节点的后继节点,并更新运行状态等。
1.3 刷写功能
网关开发过程中,软件功能需求变更以及功能很多,需要频繁更新软件升级程序,为了便于开发测试,网关设计了基于UDS协议的Bootloader刷写功能。网关加入Bootloader之后可以理解划分应用程序层和Bootloader层,Bootloader层负责日后的程序升级功能,Bootloader更新程序通常不会擦除自己的代码块区域,防止异常中断而导致无法再次更新,所以是可以继续中断刷新。
主要刷写流程包含预程序阶段、程序刷写阶段及后程序阶段。预程序阶段主要是通过诊断命令检查刷写条件,关闭DTC和通信等;程序刷写阶段主要进行安全访问校验、身份识别、驱动下载、数据下载、数据校验、ECU重启等;后程序阶段是使所有ECU返回至默认会话模式。
1.4 防火墙
车辆与外部实现远近场的通信主要通过远程连接和物理连接。远程连接包含如激光雷达传感器、毫米波传感器、RFID及DoIP等;物理连接主要是外部诊断设备与车辆OBD口的连接,进而实现与车内网的通信。任何车内网与外部设备的连接,都会增加车辆网络的安全隐患,任何未经授权尝试对车辆电子架构访问的行为都有可能会引起致命的后果。如车辆远程受控,恶意代码注入,从而导致汽车数据被外界获取或网络被外界干扰[5]。为了维护数据的安全,保证数据的完整、保密以及确定外来身份的合法性,需要开发网关的防火墙功能。网关防火墙包含物理隔离和软件隔离两个方面。
1)物理隔离。将与外接可连接的ECU或接口隔离出来,置于非安全端口网段,本设计中将OBD单独置于诊断D-CAN,而T-box单独置于INFO-CAN。
2)软件隔离。非安全端口路由报文至安全端口,需要满足必要的条件:①ID过滤,非路由表中的ID不可以路由;②周期报文,周期异常(周期变快)不路由,恢复正常周期后可以路由,如T-box的周期报文;③特定报文在特殊工况下路由(如车速限制等),如T-box与PEPS的认证报文和学习报文;④关键数据需要经过有效校验后可路由(如软件加密、硬件加密);⑤定义特定工况下,采用握手私有协议等。
2 测试验证
本文主要对路由和网络管理两个主要功能进行验证测试,包含手动测试和自动化测试,路由测试采用手动测试,而网络管理先采用自动化测试脚本进行全面测试,再通过手动测试对个别测试案例进行复测和对比。
2.1 路由测试
测试设备:计算机配备CANoe软件、直流供电电源(12V)、维克多VN1640、网关样件、网关控制器插接件、若干DB9连接线。
测试方法:图2为硬件连接图。依据图2连接好网关控制器、VN1640、电源以及计算机。随后在CANoe上位机软件中搭建测试环境,首先配置CAN通道,与VN1640上的硬件通道相对应,将各路的DBC文件导入各网段;其次添加并打开两个Trace窗口,通过过滤器分别观察源网段和目标网段,驱动外部电源,运行CANoe软件,开始测试。
在仿真窗口通过DBC模拟各网段的全部报文和信号,对照车型的路由表,测试路由通路以及方向,观察路由表中各信号和报文是否全部可正常路由至目标网段。针对路由测试中的其他测试点,例如数据场变化等,则需要通过IG模块改变信号或报文值。图3为测试结果的部分截图。经测试,所有信号和报文能够按照路由表准确及时进行路由,网关控制器的路由功能正常。
2.2 网络管理测试
网关控制器的网络管理测试采用自动化进行。
硬件环境:硬件包含待测网关控制器样件、维克多VN1640(搭配CANoe软件,CANoe软件用来模拟除网关外其他节点发送和接收报文;记录监控总线报文;对网关进行ACK应答)、CANstressDR(对总线报文进行干扰、对总线实施最大电阻故障等)、程控电源VH1150(可通过测试脚本实现控制输出电压,电源通断、总线故障注入及搭铁偏移等功能)、若干DB9连接线、样件插接件以及PC。连接图如图4所示。
软件环境:打开CANoe软件,导入测试脚本,并添加DBC文件。
測试方法:勾选测试用例,启动运行测试脚本。
测试内容(图5):包含初始化测试、逻辑环测试、睡眠中断测试、跛行状态测试以及睡眠唤醒鲁棒性测试。
初始化测试主要验证网络启动和关闭时,Alive、Ring和Limphome的报文格式以及时间参数是否满足NM标准的要求。
逻辑环测试主要验证逻辑环是否稳定和目标地址是否正确,建环后出现节点跳过、节点丢失或者新节点加入时,整个逻辑环是否满足NM标准要求。在各种睡眠情况下,网关的相关NM报文是否满足NM标准要求。
睡眠中断测试主要验证各种睡眠中断环境,网关的NM报文以及时间参数是否满足NM标准。
跛行状态测试主要验证Limphome状态时网关收到网管报文时的状态跳变是否满足NM的标准要求。
睡眠唤醒鲁棒性测试主要验证在频繁睡眠唤醒或者长时间睡眠情况下,网关仍然能够正常睡眠或者唤醒。
由图6的自动化测试结果可知,网关的初始化测试、逻辑环测试、睡眠中断测试、跛行状态测试以及睡眠唤醒鲁棒性测试全部通过,满足车辆通信要求。
3 结论
本文根据车型开发需求,设计了一款多网段式,具有路由、OSEK网络管理、诊断等基本功能的网关控制器。利用手动和自动化方法,主要测试了路由功能和OSEK NM网络管理功能,测试结果表明,网关满足车辆通信和安全要求,降低了各网段负载,减少车辆通信延迟, 增强了车身网络的可靠性。
参考文献:
[1] 胡红兵. 汽车CAN网络的应用和分析[J]. 海峡科学,2010(12):46-48.
[2] 赵公旗,冯宝存,赵红玉,等. 浅谈车载总线负载对网络传输影响及优化[J]. 汽车电器,2015(12):22-24.
[3] 王杰. 车载网关设计方法及其网络管理技术研究[D]. 哈尔滨:哈尔滨工业大学,2011.
[4] 袁远. CAN网络通信及实时性研究[D]. 兰州:兰州大学,2010.
[5] 陈振威. 基于CAN总线的车载网关防火墙的研究与优化[D]. 广州:广东工业大学,2021.
(编辑 凌 波)