APP下载

网络管理在汽车CAN系统的应用

2016-06-20初洪超安徽江淮汽车技术中心乘用车研究院电气系统设计部安徽合肥230009

汽车实用技术 2016年5期
关键词:CAN总线网络管理

初洪超(安徽江淮汽车技术中心乘用车研究院电气系统设计部,安徽 合肥 230009)



网络管理在汽车CAN系统的应用

初洪超
(安徽江淮汽车技术中心乘用车研究院电气系统设计部,安徽 合肥 230009)

摘要:简要阐述某汽车CAN网络系统中的OSEK网络管理方法应用。介绍了OSEK网络管理的策略方法,并结合实例介绍了OSEK的应用。

关键词:CAN总线;网络管理;OSEK

10.16638/j.cnki.1671-7988.2016.05.033

CLC NO.: U463.67.4Document Code: AArticle ID: 1671-1998(2016)05-114-05

引言

随着时代的发展,汽车已不再只是人们的代步工具,更多功能的加入,使得汽车能够完成更多人性化、智能化的工作。但是,更多智能化功能的加入,意味着汽车ECU数量成倍的上升。不同生产厂商制造的ECU在同一辆汽车中协同工作,互相传输着数据,让整个汽车控制体系自成一统,构成了汽车控制器局域网。

虽然ECU数量的上升让功能强大,但伴随着的功耗也会增多。尤其在不启动发动机,而使用汽车的某些功能时,这样的困扰便更加明显。因此,为了使汽车网络工作更加有效,尽最大可能做到高效低耗,就引入了网络管理的概念。根据这个概念,在某些不需要特定ECU工作的状况下,如果能将部分ECU处于低功耗的待机状态,而一旦需要其工作,又能立即将其唤醒,成为解决这一状况的策略构想,即网络管理策略。网络管理有很多种,目前应用较广泛的是基于OSEK的直接网络管理策略。

某汽车应用CAN网络,在这个车型上使用的就是OSEK直接网络管理。本文介绍了网络管理的相关策略方法和某汽车车型对网络管理的应用。

1、网络管理概述

1.1网络管理功能

1)网络管理应有如下的基本功能:

网络通信的开始与停止,网络管理控制ECU初始化,帧模式和所有开始/结束时间。

唤醒/挂起网络通讯,网络上所有的节点要能够同时被唤醒或者挂起。

处理通讯错误,例如,Bus off 的检测及恢复。

确认网络配置,在网络初始化阶段,建立逻辑令牌环。

检测网络配置,检测到新的ECU后,应能够建立新的令牌环。

通过配置检查实现节点监测,每个节点通过不同方法进行监控,如收发信号,监测。

数据转换功能,网络管理可以交换数据,例如,可以读/写网络或节点相关参数。

2)注意,网络管理并不包含以下功能,下述功能一般在具体的控制器功能设计规范中描述:

电源管理,定义控制器的供电方式。

处理器工作模式,定义处理器何时进入睡眠模式或低电压模式。

CAN收发器,在节点初始化过程中应用程序使能CAN收发器,当网络睡眠后,设置CAN收发器为standby模式。

1.2网络管理标准

常见的网络管理标准策略有很多,如OSEK、AUTOSAR等。某汽车使用OSEK网络管理策略。

OSEK网络管理有两种机制实现网络监测:

OSEK直接网络管理:基于令牌环对网络进行控制,通过休眠、唤醒等方式控制各节点通讯逻辑。

OSEK间接网络管理:通过监测应用报文对网络进行控制,主要服务于安全。

在某汽车项目中,低速CAN网络节点的网络管理策略采用基于OSEK的直接网络管理的策略,并没有使用其间接管理方法。具体的网络管理标准参考OSEK/VDX_NM_2.5.3版本中的具体描述。

1.3直接网络管理

OSEK直接网络管理的目的是实施对当前网络上所有节点的状态监控,并保证所有节点在同一时间进入休眠状态。每个节点的状态都可以被网络上其他的节点所监控,因此被监控的节点将向网络上发送网络管理报文。

直接网络管理的令牌环通讯顺序完全独立于网络架构,每一个节点都有一个自己指向的继承节点,令牌环的第一个节点为最后一个节点的继承节点。每一个节点都必须能够发送网络管理报文给任何其他节点,同时也必须能接收到其他节点发出的网络管理报文。

OSEK网络管理的软件架构于实际连接的物理架构无关。

OSEK直接网络管理基于令牌环对网络进行控制,需要由令牌环来同步整个网络的网络管理,除了正常的应用消息帧之外,针对每个节点定义了专用的网络管理消息帧来传输网络信息和控制应用帧收发。

当某个节点仍需要网络功能需要加入到网络通讯中时,该节点发送“Alive”消息向其它节点表明它仍然存在。

所有发送“Alive”的节点会建立一个逻辑环来达到网络范围内所有节点的同步。

当某个节点不需要使用网络功能时,它发送“Sleep Indication”告知其它节点。当所有节点都发送了“Sleep Indication”后,会发送“Sleep Acknowledge”信息确认所有节点进入休眠模式。

在逻辑环中定义的通讯序列是独立于网络拓扑结构的,每个节点都会被分配一个后续节点,逻辑环中的第一个节点是最后一个节点的后续节点。

网络给每个节点定义了独一无二的地址,源地址和目的地址都需要在明确的包含在网络管理帧中。所有的网络管理帧都是广播发送的。

关于OSEK直接网络管理方式,图1给出了某汽车的3个节点组成的简单示例。

图1 某汽车直接网络管理令牌环

在某汽车项目的低速网段,BCM、ICM和PEPS都被分配了独一无二的网络管理地址,分别是BCM:0x101;ICM:0x102;PEPS:0x106。这些节点通过含有特定控制字定义和网络管理报文结构的网络管理报文来实现网络管理。

1.4网络管理报文数据结构

OSEK的每个网络管理报文(NMPDU)都拥有相同的结构,由CAN ID域和CAN Data域组成。以某汽车为例:

CAN Id (11 bit)

0x1- 基址0x100(可配置为其他值,但所有网络管理报文应包含同样的基址)

SA- 源址(0x00-0x7F,属于节点自己的标志地址)

CAN Data(8 Byte)

DA- 目的地址 (0x00- 0x7F,要发送报文至某节点时,此节点的标志地址)

CF- 控制域, 每一位对应节点相应的状态

Data-用户可选数据

* 注释:完整的地址信息是0x100与源地址或目的地址之和,如1.2中的BCM为0x101,基址是0x100,标志地址是0x01。所以,BCM网络管理地址就是0x101。

具体NMPDU结构如图2所示。

图2 网络管理报文格式

SA及DA的最高位强制为0,所以网络管理消息中可用的CAN ID范围应该从0x100到0x17F。可选数据区域的长度通常总是6个字节,如果未使用则填充0。只有在当前节点掌握令牌期间,应用程序可以修改数据,其它时间数据不允许修改。

CAN data域的第二个字节包含了网络管理控制域(CF),用于体现ECU的运行状态,(Bit0为字节的最低位)字节中各个位对应的状态定义见下图。

图3 CF字节位定义

Alive, Ring 和Limp Home三个位在同一时刻只能有一位置位。

当Bus Sleep Acknowledge置位时,Bus Sleep Indication需同时置位,但Bus Sleep Indication可单独置位。保留位应被填充0。

具体情况及含义详见图4。

图4 CF各个位置为情况及含义

通过上述规定,通常有的组合形式对应的CF字节控制字如下:

0x01Alive

0x02Ring

0x12Ring+Sleep Ind

0x32Ring+Sleep Ind+Sleep Ack

0x04Limp Home

0x14Limp Home+Sleep Ind

0x11Alive+Sleep Ind

1.5网络管理策略

网络管理策略规定了ECU网络管理报文的时序流程,其目的是建立和维护ECU之间的联系。网络管理策略只是提供网络的状态信息,而不同状态的控制方法由应用程序负责。网络中各个ECU所有状态的转换如图5所示。

图5 ECU状态转换图

1)关闭状态

处于关闭状态的ECU将失去电源,不能进行任何网络活动。

当点火钥匙位于OFF档时,+30节点类型的ECU不受点火钥匙控制,只有切断蓄电池供电或电压低于最小工作电压,才会断电进入关闭状态。

2)初始化状态

网络中的ECU在上电或唤醒后,200ms内完成初始化操作,各ECU判断只有本地ECU在线,并且其后继ECU也被设置为本地ECU。

初始化完成后,ECU发送Alive报文,通过Alive报文将ECU加入到网络中。

3)常规状态

在常规状态下,ECU主要在“逻辑环”中进行Ring报文的传递发送。

4)跛足状态

跛足状态表明网络通信存在故障。

2、某汽车车型的OSEK网络管理应用

2.1某汽车网络管理报文数据结构

下图为某汽车车型BCM的网络管理数据报文,因为某汽车车型网络管理不使用数据交换功能,所以并没有使用CANdata部分。

图6 某汽车车型BCM_NM报文数据结构

从图6中看出,首字节为报文发送的目的地址,第二字节的部分位被定义,与图3所示一致。

2.2某汽车网络管理策略

图7 网络管理状态转换图

某汽车车型的网络管理各个状态之间的跳转如图7所示。

各个状态的转移,只有当转移条件满足的情况下才能切换状态。网络管理状态机的处理时间一般为10ms。

转换 1

转换条件:应用程序调用StartNM()。

*注释:应用程序应该使能CAN收发器,初始化CAN控制器,并做好通讯前的准备工作。如初始化失败,则此转换不应进行。

转换 2

转换条件:节点功能需要网络通讯,并调用GotoMode (Awake)。

转换 3

转换条件:NMReset状态中的工作结束并且接收错误及发送错误计数器未达到限值。

转换 4

转换条件:发送错误计数器达到限值。

转换 5

转换条件:节点功能不再需要网络通讯,并调用GotoMode(BusSleep)。

转换 6

转换条件:接收到一条包含"sleep acknowledge=1"的Ring报文,或者一条包含“sleep acknowledge=1”的Ring报文被发出。

转换 7

转换条件:CAN控制器进入Bus Off状态。

转换 8

转换条件:接收错误超过限值或者发送错误超过限值。

转换 9

转换条件:Ring报文接收超时。

转换 10

转换条件:接收到任意一条“Sleep Acknowledge=0”的NM报文。

转换 11

转换条件:节点功能需要网络通讯,应用程序调用GotoMode(Awake),或者有包含“sleep indication=0”的网络管理报文收到。

转换 12

转换条件:超过TWaitBusSleep 限值。

转换 13

转换条件:应用程序调用GotoMode(Awake)或StartNM(), 或者被总线通讯唤醒。

转换 14

转换条件:应用程序调用SilentNM()。

转换 15

转换条件:应用程序调用TalkNM()。

转换 16

转换条件:应用程序调用StopNM()。

转换 17

转换条件:节点功能不再需要网络通讯,并调用GotoMode(BusSleep)。

转换 18

转换条件:应用程序需要网络通讯,并且调用GotoMode (Awake)。

转换 19

转换条件:应用程序调用GotoMode(Awake),或者有包含“sleep indication=0”的网络管理报文收到。

转换 20

转换条件:接收到包含“sleep acknowledge=1”的网络管理报文收到,或者在TRingMax时间内没有Ring报文收到。

2.3某汽车网络管理应用

下面是用CANoe测出的一些某汽车网络管理的应用实例。

1)建立逻辑环

如图8所示,步骤1中,BCM、ICM、PEPS三节点刚出现时都对自己发送0x01的Alive网络管理报文,然后在步骤2中,组成逻辑环,分别向自己的继承节点发送0x02的Ring报文。

图8 网络节点建立逻辑环

2)网络休眠

如图9所示,步骤1中ICM、PEPS均发出请求睡眠指令,但BCM不满足睡眠条件,仍发送0x02网络管理Ring报文,直到步骤2中BCM满足睡眠条件发送0x12后,则到达步骤3,由其继承节点发送0x32,所有节点进入睡眠状态。

图9 网络节点休眠

3)网络节点的增加

如图10所示,步骤1中三个节点BCM出现,到步骤2时突然出现一个节点ICM,它出现时对自己发送Alive报文0x01,其他节点也分别对自己发送0x01,然后到达步骤3,所有节点形成新的逻辑环。

图10 网络节点增加

4)网络节点的减少

如图所示,步骤1为BCM、ICM、DVD、PEPS四个节点都已经形成稳定逻辑环。到步骤2时,DVD丢失,PEPS没有接到DVD发送的Ring报文,环的传递被打破。间隔一个时间T=251ms后,到达步骤3,BCM、ICM、PEPS都从新向自己发送Alive报文。从而最后在步骤4中,建立一个三个节点的新逻辑环。

图11 网络节点减少

3、结论

OSEK直接网络管理是一种使用较为广泛的网络管理策略,随着汽车产品CAN网络的普及,选择一种低成本高效率的网络管理策略十分必要,而OSEK直接网络管理符合这样的特点。某汽车是第一款加入CAN网络的产品,对日后江淮的CAN网络发展研究具有开拓意义。

参考文献

[1]张利,路园,张建军,张本宏,王跃飞. OSEK网络管理在汽车CAN系统中研究与实现[J]. 电子测量与仪器学报,2011,25(6): 522-527.

[2]陈筠翰,秦贵和,于赫,黄玥.基于OSEK/VDX直接NM规范的车载网络系统[J]. 吉林大学学报:工学版, 2011,41(5):1407-1413.

The Application of OSEK in CAN-bus System of Motor

Chu Hongchao
(JAC Technical Center Electric System Design Department, Anhui Hefei 230009)

Abstract:You will see the application of OSEK network management of CAN network in the car.The method of OSEK network management is introduced in this paper and it is presented with cases to tell how to implement OSEK.

Keywords:CAN bus; network management; OSEK

中图分类号:U463.67.4

文献标识码:A

文章编号:1671-1998(2016)05-114-05

作者简介:初洪超,就职于安徽江淮汽车股份有限公司。

猜你喜欢

CAN总线网络管理
数控机床DNC网络管理平台在智能制造中的应用
基于OpenStack虚拟化网络管理平台的设计与实现
论网络通信技术
基于嵌入式的汽车辅助制动系统研究
CAN总线通信技术在电梯监控系统中的应用
基于OSEK标准的整车CAN网络管理设计及测试验证
网络管理技术的应用分析
基于CANoe的J1939协议在ECU通信中的应用