APP下载

基于OSEK 标准的汽车网络管理设计和验证浅析

2022-03-24陈姿霖王远波

汽车电器 2022年3期
关键词:报文网络管理节点

陈姿霖, 王远波, 陈 佩

(陕西重型汽车有限公司汽车工程研究院, 陕西 西安 710200)

近年来汽车向舒适化、 智能化方向迅猛发展, 汽车电子控制系统的数量大幅增多, 部分ECU需要长时间工作,提高了网络复杂度与电源分配的难度以及车辆对网络的依赖性, 为了解决ECU数量增多带来蓄电池馈电、 长期静置后无法启动等问题, 需要对车辆ECU进行休眠唤醒的管理,使车辆在长期静置后能够再次启动。

使用网络管理机制, 能使网络上的控制器稳定、 有序运行, 提高网络资源的利用率, 实时监控网络上控制器的运行情况、 降低钥匙拔出后车辆的电能消耗, 使车辆一直具有足够的能量再次启动。 本文在OSEK国际通用网络管理规范的基础上, 从设计方案和测试两方面着手, 定义一种适合重型汽车使用的网络管理和测试方法, 解决车辆电源分配和馈电问题。

1 OSEK网络管理概述

OSEK是一种直接网络管理方法, 通过专用的报文来报告网络当前的状态、 与网络内的其它控制器 (简称ECU)进行网络状态、 休眠请求、 休眠命令的传递, 互相协商以达到共同休眠的目标。 网络上每个有网络管理功能的ECU都有专用的网络管理报文 (简称NM报文), 网络上的所有ECU没有主从之分, 任何ECU都可以唤醒网络、 申请休眠、发送休眠指令。

2 OSEK网络管理设计

网络管理设计包含ECU类型、 NM报文定义、 时间参数要求、 网络状态、 休眠和唤醒等方面。

2.1 ECU类型

根据车辆所有ECU的功能情况可将控制器分为两大类。①Ⅰ类: 只在点火钥匙打开 (简称IGN ON) 时工作; ②Ⅱ类: 在IGN ON时全程工作、 在点火钥匙关闭 (简称IGN OFF) 下按需工作。 网络管理的各项设计要求主要用于管理Ⅱ类ECU的休眠和唤醒行为。

2.2 NM报文定义与格式

2.2.1 NM报文定义

NM报文的ID格式使用标准帧或扩展帧都可以, 根据车型平台进行统一规划。

NM报文共有3类: 声明报文 (简称Alive报文)、 逻辑环报文 (简称Ring报文)、 跛行回家报文 (简称LimpHome报文)。 通过NM控制域的标志位来进行区分, ECU使用NM报文向网络内其它ECU声明自身的当前状态。

2.2.2 NM报文格式

1) 目标地址

目标地址位于报文数据场中的第1个字节, 根据实际网络情况而定, 如果网络中只有一个Ⅱ类节点, 那么目标地址一直为发送节点的地址; 如果网络中存在大于一个Ⅱ类节点, 除了第1帧的alive声明报文的目标地址为发送节点的地址, 剩余发送的NM报文中的目标地址为逻辑后继节点的地址。

2) NM控制域

控制域位于报文数据场中的第2个字节, 其各个位的含义, 见图1。

图1 NM报文的控制域

3) NM数据域

数据场的第3字节到第7字节, 使用者可根据车型平台功能定义进行自定义应用。

对于未定义的预留位全部用 “0/1” 进行填充。

4) NM报文类型和休眠标记

根据NM 报文中控制域的定义, 本章节介绍Alive 报文、 Ring报文、 LimpHome报文、 Sleep.Ind和Sleep.Ack标志的含义和用途。 ①Alive报文: 网络中每个ECU 初始化完成后或者在令牌环传递的过程中发现自身被跳过时, 都会发送Alive报文, 用于声明自己地址或声明自己被跳过,向其它ECU声明需要加入到网络管理的逻辑环中。 Alive报文的目标地址等于发送Alive报文节点自身的地址。 在该阶段, 网络上的II类ECU需要根据其它ECU发送的Alive报文不断的动态调整配置表, 进而确定自身的前继节点和后继节点。 ②Ring报文: ECU在确定了自身的前继节点和后继节点后, 需要与网络内的其它ECU 建立令牌环,ECU在接收到其前继节点的Ring报文后, 向其后继者发送自己的Ring 报文, 这个传递的顺序和机制称为令牌环。Ring报文的目标地址为其后继节点地址。 ③LimpHome 报文: 处 于 故 障 状 态 (NMRxcount、 NMTxcount 数 值 超 过 阈值) 的ECU以TError周期发送LimpHome报文。 与Alive报文相同, LimpHome报文目标地址为发送LimpHome报文节点自身的地址。 当网络内只有一个II类ECU 时, ECU 发送4组Alive报 文、 Ring报 文, 再 发 送 一 帧Alive 报 文 后, 发 送LimpHome报文。 ④Sleep.Ind标志: Sleep.Ind为休眠请求标志位, 当ECU检测到自身的休眠条件不满足时, 发出的NM报文中该位为0, 声明自身不满足休眠条件; 当ECU检测到自身的休眠条件满足时, 发出的NM报文中该位为1,声 明 自 身 满 足 休 眠 条 件。 ⑤Sleep.Ack 标 志: Sleep.Ack 为休眠应答标志位, 令牌环中第1个检测到所有ECU的休眠请求标志位为1的ECU发出的NM报文中该位为1。 发出NM报文中该位为1的ECU和接受到该指令的ECU需立即停发所有报文。

2.3 网络管理状态

网络管理的状态总共有3种状态: 未激活、 启动、 激活。 NM状态如图2所示。

图2 NM状态

2.3.1 网络未激活

在该状态下, ECU不会收发任何报文, 当检测到电源使能信号有效、 本地唤醒事件有效、 远程事件 (接收到任意总线报文), 应请求启动网络, 从未激活向启动状态迁移, 该迁移过程需要在一定的时间内完成。

2.3.2 网络启动状态

该状态包含3个子状态: 网络初始化、 网络激活、 网络休眠。

1) 网络初始化状态: ECU进入网络启动状态后先进行通信程序、 寄存器等网络初始化行为, 初始化应在一定的时间内完成, 初始化完成后ECU会发出NM报文和应用报文, 先发NM报文后发应用报文。

2) 网络激活状态包含网络重置、 网络正常运行、 网络跛行3种子状态。 ECU进入网络激活状态后首先进入的是网络重置状态, 发送Alive报文声明自身的存在, 然后立刻进入网络正常运行状态; 在网络正常运行状态下监控其它处于激活的节点, 记录所有ECU的源地址, 动态适配自身的前继节点和后继节点, 并以一定的周期向自身后继节点发送Ring报文, 建立逻辑环; 当错误计数器到达阀值后ECU会进入跛行状态, 并以一定的周期发送状态为跛行的NM报文, 当ECU从Busoff状态下恢复后发出的第1帧NM报文应该为跛行报文。

3) 网络休眠状态包含休眠等待和彻底休眠两种状态。ECU进入休眠状态首先进入的是休眠等待状态, 该状态需要定义合理的时间用于ECU休眠之前的信息存储, 在该状态下ECU不能发送任意报文, 但是可以被唤醒源唤醒, 时间到后应该迁移到彻底休眠状态; 彻底休眠状态为ECU的低功耗状态。

2.4 休眠和唤醒

当车辆静止, 钥匙从on挡切换到off挡时, Ⅰ类ECU就停止工作; 当车辆静止拔出钥匙, 为了保证蓄电池的使用时长和防止溃电, 网络上的Ⅱ类ECU在该情况下检查自身运行的功能对网络的需求, 如果需要使用网络, 发送的NM报文中不带休眠请求信息; 如果不需要使用网络, 发送的NM报文中带休眠请求信息; 在环运行的过程中, 每个控制器都监控其他节点发送的休眠请求信息, 第1个检测到所有ECU都发送了休眠请求的ECU发送休眠命令报文, 所有ECU停发报文, 进入低功耗模式。 这样在网络上通过请求休眠和休眠命令这样的信息使整个网络的所有ECU达到同步休眠。

Ⅱ类ECU休眠条件由其功能的使用情况而决定。

钥匙处于off挡时, 如果外部有功能需求会将整车唤醒;唤醒一般针对的是Ⅱ类ECU, 整车的唤醒条件或ECU的唤醒条件主要由车辆的实际应用而定。

3 测试

根据OSEK网络管理设计规范中定义的初始化时间、 报文周期、 网络状态的切换入手, 从正向、 逆向、 边界、 冗余等方面制定全方面的测试用例。

3.1 测试用例设计

因为在正常-休眠-唤醒状态的切换过程中, 需要在特定的时间发送特殊报文, 在测试过程中需按照测试用例开发测试脚本来完成测试。

以整车网络从钥匙off挡—on挡—off挡—休眠这个过程为例, 设计的测试用例需要覆盖单节点和多节点的初始化时间、 报文类型、 状态迁移、 唤醒休眠顺序等方面进行正向、 逆向、 临界、 冗余测试, 以保证测试覆盖率, 尽可能地发现问题, 进行完善。

3.2 测试数据解析

测试数据解析分为唤醒数据和休眠数据两类, 如图3、图4所示。

图3 唤醒数据

图4 休眠数据

4 结束语

本文从设计和测试两方面来介绍OSEK网络管理的设计和验证方法。 全面的设计内容需要大量实车应用测试, 总结所遇到的问题, 对规范进行补充, 以达到稳定、 节能的目的。

猜你喜欢

报文网络管理节点
以太网QoS技术研究及实践
海法新港一期自动化集装箱码头电子数据交换报文系统设计与实现
基于报文类型的限速值动态调整
基于移动汇聚节点和分簇的改进节能路由算法
CAE软件操作小百科(48)
基于点权的混合K-shell关键节点识别方法
新时期企业网络管理的现状及对策研究
网络管理技术的应用分析
用户设备进行组播路径追踪的方法及系统
浅谈基于P2P的网络教学系统节点信息收集算法