精华内容
下载资源
问答
  • can网络管理
    千次阅读
    2020-07-10 15:10:16

    为什么要网络管理?

    因为不同ECU对电源有不同的要求。

     

    一般来讲,有这样3种情况:

    1、允许直接断电的ECU,比如座椅模块,IGN off后,可以立马进入休眠节电。

    2、断电前需要延时的ECU,比如空调模块,IGN off后,风扇需要继续工作一段时间再进入休眠。

    3、需要一直带电的ECU,比如安全防盗模块,不允许休眠,需要一直处于工作状态。

     

    网络管理的功能

    网络管理主要负责以下几个功能:

    1、保证网络同步进入睡眠状态

    2、网络启动后确定网络配置

    3、运行过程中监控网络配置

    4、提供网络状态信息

    5、网络故障的处理

     

    两种网络管理OSEKAUTOSAR

    OSEK

    1993年德国汽车工业界提出了OSEK(德文:Offene Systeme and deren Schnittstellen fur die Elektronik im Kraftfahr-zeug)体系,其含义是汽车电子开放式系统及其接口。这个体系的最早倡导者有:宝马、博世、戴姆勒克莱斯勒、欧宝、西门子、大众和卡尔斯鲁厄大学的工业信息技术研究所。法国的汽车制造商标致和雷诺于1994年加人了OSEK体系,并将法国汽车工业使用的汽车分布式运行系统(Vehicle Distributed eX-ecutivr, VDX)也纳人这一体系,VDX的作用与OSEK相似。

     

    AUTOSAR

    2003年的时候,行业内的几大巨头(包括BMW, Bosch, Continental, DaimlerChrysler, Volkswagen, Siemens VDO)联合建立了AUTOSAR联盟,目的是一起开发并建立一套真正的开放的汽车电子电器架构(也就是我们现在所说的AUTOSAR标准或者AUTOSAR架构,我们经常提到的AUTOSAR一般就是指AUTOSAR构架/标准,AUTOSAR的全称是AUTomotive Open System ARchitecture

     

    OSEK/VDX网络管理

    OSEK/VDX网络管理分为两种:直接网络管理和间接网络管理

    直接网络管理

    1、使用特定的网络管理报文直接监控节点与网络的状态

    2、保证网络的同步睡眠

    3、网络管理报文会影响应用报文的发送

     

    间接网络管理

    1、通过监控应用报文监控间接监控节点与网络的状态

    2、网络中的每个节点必须周期性发送报文

    更多相关内容
  • 测试用例、测试报告
  • osek规范2.5.3-can网络管理.rar
  • 官方一点:AUTOSAR就是AUTomotiveOpenSystemARchitecture的简称,中文翻译就是汽车开放系统架构。直白一点:将汽车电子控制单元(ECU)的软件底层做了一个标准的封装。使得大家都能共用一套底层软件,只需要修改其中...
  • AutoSar之CAN网络管理详解

    千次阅读 2021-04-02 16:31:50
    CAN网络管理在CAN架构中所处的位置如图1,与其他模块的交互如图2。 图1 CAN架构 图2 网络管理和其他模块的联系 AUTOSAR网络管理基于分散的直接网络管理策略,这意味着每个网络节点仅依赖于通信系统中接收或...

    ​AUTOSAR中网络管理主要使用了CAN接口(CanIf),并提供通用网络管理接口(NmIf)。CAN网络管理在CAN架构中所处的位置如图1,与其他模块的交互如图2。

    图1 CAN架构

    图2 网络管理和其他模块的联系

    AUTOSAR网络管理基于分散的直接网络管理策略,这意味着每个网络节点仅依赖于通信系统中接收或传输的网络管理pdu来执行自给自足的活动。网络管理算法基于周期性的网络管理PDUs,通过广播传输被集群中的所有节点接收。接收网络管理PDUs表明发送节点希望保持网络管理集群处于唤醒状态。如果有节点准备进入总线休眠模式,它将停止发送网络管理PDU,但是只要接收到来自其他节点的网络管理PDU,它就会延迟向总线休眠模式的转换。如果由于不再接收网络管理PDU而导致计时器超时,则每个节点都将启动到总线休眠模式的转换。

    如果网络管理集群中的任何节点需要总线通信,则可以通过传输网络管理PDU将网络管理集群从总线休眠模式中唤醒。

    下面介绍几个相关的概念。

    唤醒请求(Wake Up Request)

    唤醒请求可分为两种:

    ● 主动唤醒请求:来自模块内部对网络的请求。主动唤醒节点的网络管理报文必须先于应用报文发送。

    ● 被动唤醒请求:来自总线上其他模块对该模块的网络请求。被动唤醒的节点,发送网络管理报文和应用报文的先后顺序无特别要求。

    网络状态(Network States)

    节点的网络状态包括以下两种:

    ● 网络请求:模块需要主动与总线上其他节点进行信息交换时,它必须通过发送网络管理报文来请求网络,并将其网络状态设置为“网络请求”;

    ● 网络释放:模块不需要主动与总线上其他节点进行信息交换时,必须将其网络状态设置为“网络释放”;需要注意的是,在网络释放状态下模块仍可能因总线上的其他节点请求网络而与其进行信息交互。

    总线唤醒(Bus wake up)

    采用AUTOSAR CAN 网络管理方式的ECU必须选择符合 ISO 11898-5 标准的高速 CAN 收发器。若ECU处于低功耗模式,仅在总线上出现符合ISO 11898-5标准定义的唤醒序列,且该 ECU成功接收到该网段定义的唤醒报文时才能够被总线唤醒。这里这条唤醒报文必须是该网段中 ECU 的网络管理报文。

    理解上面几个概念后,我们可以看下AUTOSAR 网络管理模式(AUTOSAR Network Management Operational Modes)了,AUTOSAR网络管理(以下简称 CanNm)包含以下三种模式: 睡眠模式(Bus-Sleep Mode),预睡眠模式(Prepare Bus-Sleep Mode),网络模式(Network Mode) ,三种模式的切换过程如图3。

    图3 网络管理状态切换图

    睡眠模式

    当节点没有主动网络唤醒及被动唤醒请求时,ECU 通信控制器切换至睡眠模式,ECU功耗降低至适当水平。在睡眠模式下,节点的网络管理报文和应用报文禁止发送,并且不能对总线上的报文进行ACK应答。同时节点在该模式下,如果检测到有效的唤醒源,节点必须被唤醒。

    预睡眠模式

    在预睡眠模式下,总线活动静止下来,最终达到总线上没有活动,ECU通信控制器状态处于工作模式。在该模式下,节点的网络管理报文和应用报文禁止发送,但应该对总线上的报文进行 ACK应答。节点的网络管理状态必须保持预睡眠模式一段时间,一旦超时,网络管理状态应该离开预睡眠模式,进入睡眠模式。

    网络模式

    网络模式可分为三种内部状态:

    重复报文状态 (Repeat Message State)
    常规操作状态 (Normal Operation State)
    准备睡眠状态(Ready Sleep State)

    重复报文状态

    重复报文状态包含两个子状态:

    • 网络管理报文快速发送状态
    • 网络管理报文正常发送状态

    NM PDU 快速发送状态

    节点在进入NM PDU快速发送状态时,必须开启或重置NM-Timeout Timer,为了快速唤醒网络,必须以快速周期发送网络管理报文,同时不得发送正常周期网络管理报文;所有的应用报文必须在第一帧快速NM PDU报文发送开始后延迟一定时间才能发送。在NM PDU快速发送状态下,节点一旦接收或发送一条网络管理报文,或者NM-Timeout Timer超时,NM-Timeout Timer会立即重置。

    NM PDU 正常发送状态

    进入NM PDU 正常发送状态后,节点必须以正常周期发送网络管理报文。若节点因被动唤醒请求进入NM PDU正常发送状态,必须开启NM-Timeout Timer,同时所有的应用报文必须从节点检测到唤醒请求后延迟Tx_Enable_Time 才能发送。在NM PDU正常发送状态下,节点一旦接收或发送一条网络管理报文,或者 NM Timeout Timer超时,NM Timeout Timer会立即重置。

    节点的网络管理状态保持重复报文状态一段时间(这段时间一般可以配置),一旦超时,网络管理状态会离开重复报文状态。在该状态下,节点的网络管理报文和应用报文能够正常发送。

    常规操作状态

    当节点处于网络模式因主动网络请求需要与网络上其他节点继续进行通信时,必须保持在常规操作状态。在常规操作状态下,节点一旦接收或发送一条网络管理报文,或者NM-Timeout Timer超时,NM-Timeout Timer应该立即重置。在该状态下,节点的网络管理报文和应用报文必须正常发送。

    准备睡眠状态

    节点进入准备睡眠状态后,必须停止发送网络管理报文,所有的应用报文在NM Timeout Timer超时后必须停止发送。在准备睡眠状态下,节点一旦接收到一条网络管理报文,NM Timeout Timer会立刻重置。NM Timeout Timer超时,节点的网络管理状态应该进入预睡眠模式。

    网络管理报文(NM PDU)

    网络管理报文格式(NM PDU structure)

    AUTOSAR CAN 网络管理报文的数据场格式如下表所示:

    源节点标识符(Source Node Identifier)

    NM PDU的字节 0 用于发送源节点标识符,每一个 ECU 都会被分配一个唯一的标识符,来告知接收节点该 NM PDU 是由哪个节点发送的。

    控制比特向量(Control Bit Vector)

    NM PDU 的字节 1 被分配用于发送控制比特向量。其中:

    bit 0 :重复报文状态请求位;

    bit 3 :网络管理睡眠协调位;

    bit 4 :激活唤醒位;

    bit 6 :部分网络信息位;

    其他bit位暂时预留。

    用户数据域(User Data)

    网络管理报文的字节 2 到字节 7 用于发送用户自定义的数据信息,这些字节目前各项目为扩展预留,都被填充为‘0x00’。

    网络管理状态切换(Network Management State Transition)

    对照图一起看下:

    (高清图可在微信公众号后台回复“网络管理”获取)
    Condition_01

    节点供电状态从电池off切换到电池on 后,节点必须进行网络管理模块CanNm初始化,初始化完成后节点必须进入睡眠模式,并且需要立即具备被主动唤醒请求或者被动唤醒请求唤醒的能力;

    Condition_02

    当节点处于睡眠模式时,如果收到有效的网络管理报文,那么节点将离开睡眠模式并进入重复报文状态中的NM PDU正常发送状态。进入NM PDU正常发送状态后,在计时器Repeat Message Timer超时以前,节点必须以正常周期发送网络管理报文。在节点收到网络管理报文时,它向总线发出的第一帧报文可以是网络管理报文也可以是应用报文。

    Condition_03

    如果节点在睡眠模式下检测到主动唤醒请求,那么节点必须发送网络管理报文来主动唤醒网络,在节点主动唤醒网络的过程中,必须首先进入NM PDU快速发送状态。当节点因主动唤醒请求需要唤醒网络时,必须快速发送连续NM PDU报文。

    Condition_04

    处于NM PDU快速发送状态的节点,在计数器为零时,节 点 将 进 入NM PDU正常发送状态,并开始等待一段时间后以正常周期发送网络管理报文。

    Condition_05

    处于重复报文状态下的主动请求网络节点,如果Repeat Message Timer 发生超时,但节点的主动网络请求仍持续存在,节点必须进入常规操作状态。节点继续保持以正常周期发送网络管理报文和应用报文PDU。

    Condition_06

    处于常规操作状态的节点,如果释放所有的网络请求,不再需要主动请求网络,那么它必须立即将网络管理状态切换到准备睡眠状态,同时该节点必须立即停止发送网络管理报文。

    Condition_07

    处于准备睡眠状态的节点,如果检测到主动网络请求,节点必须立刻进入常规操作状态,

    同时必须开始以正常周期发送网络管理报文和应用报文PDU。

    Condition_08

    处于重复报文状态的NM PDU正常发送状态的节点,如果没有检测到主动网络请求,一旦 Repeat Message Timer超时,节点将进入准备睡眠状态。

    Condition_09

    处于准备睡眠状态的节点如果没有检测到主动网络请求,一旦NM Timeout Timer超时,节点将进入预睡眠模式。

    Condition_10

    处于预睡眠模式的节点,如果收到被动唤醒请求,节点将进入重复报文状态的NM PDU正常发送状态。

    Condition_11

    处于预睡眠模式的节点,如果检测到主动唤醒请求,节点将进入重复报文状态的NM PDU快速发送状态。

    Condition_12

    处于预睡眠模式的节点如果不再收到主动或被动唤醒请求,一旦Wait Bus-Sleep Timer超时,节点将进入睡眠模式。

    Condition_13

    在任何状态下发生电池掉电,节点都将进入关闭模式,不再拥有任何通信和网络管理的功能。

    AUTOSAR网络管理的算法与处理器无关,即它不依赖于任何处理器特定的硬件支持,因此可以在AUTOSAR范围内的任何处理器架构上实现。

    状态转换的时序图

    当唤醒请求(主动唤醒请求、被动唤醒请求)将节点的网络管理状态激活时,该节点的所有应用报文必须延迟一定时间后才能够开始发送。网络中的被唤醒节点网络管理报文的发送不受 延迟时间的限制,可以在它结束前发送,但首帧网络管理报文必须在节点进入重复报文状态后再延迟一定时间发送,以避免被唤醒节点同时发网络管理报文而形成网络拥堵。

    NM信号发送的时序图

    NM信号接收的时序图

    NM协调过程

    在睡眠的过程中,一旦NM Timeout Timer超时,节点所有的应用报文必须立刻停止发送。

    上图描述的案例是针对单一主动唤醒请求触发的唤醒与睡眠过程,当多个唤醒请求交错发生时,各唤醒请求必须遵守各自的定时参数,不会互相影响。

    文中名词解释:

    AUTOSAR:AUTOmotive Open System Architecture, 汽车开放系统架构

    CAN:Controller Area Network, 控制器局域网

    NM:Network Management, 网络管理


    NM PDU:Network Management protocol data unit, 网络管理协议数据单元

    CanIf:CAN Interface CAN接口

    CanNm:CAN Network Management CAN网络管理

    CBV:Control Bit Vector 控制比特向量

    DTC:Diagnostic Trouble Code诊断故障码

    CWU:Car Wakeup 整车唤醒

    ERA:External Request Array 外部请求数组

    EIRA:External and Internal Request Array 外部和内部请求数组

    PNC:Partial Network Cluster 部分网络集

    PNI :Partial Network Information 部分网络信息

    展开全文
  • AUTOSAR —— CAN网络管理(CanNm)

    千次阅读 多人点赞 2021-12-04 14:13:29
    本文详细介绍了AUTOSAR CAN网络管理,包括状态转换、策略、时间参数等,读完本文可以对AUTOSAR网络管理有比较全面的认识。

    1. 网络状态

    AUTOSAR网络管理节点内部有两个状态,一个是Requested - 被请求状态,另一个是Released - 被释放状态,当节点的应用层需要使用总线进行通讯的时候,会调用接口使得节点进入请求状态,当应用层没有通信需求的时候,调用接口使得节点进入释放状态。

    需要注意的是,即使节点当前处于释放状态,节点的通讯依然有可能是处于开启状态,因为网络上的其它节点有可能正在请求总线。所以这个状态代表的是节点应用层是否有通信需求,并不代表总线开启或关闭。有通讯需求的时候处于请求状态,无通讯需求的时候处于释放,但总线是否在通讯不仅仅取决于当前节点自己,而是取决于网络上的所有节点。

    节点上电初始化后默认进入释放状态

    2. CAN 网络节点运行模式

    一个CAN网络通信节点包含以下运行模式:
    在这里插入图片描述

    (1)Network Mode(网络模式)

    处于网络模式中的节点,网络通信是处于开启或工作模式(包含了开始工作时和结束工作时的准备阶段)。网络模式又细分为以下三个阶段:

    ① Repeat Message State(报文重复阶段-RMS)

    当节点从其他模式进入Network Mode时,默认进入Repeat Message State,该阶段是网络正式开始工作前的准备阶段,用来等待网络中所有相关节点进行网络准备,开启通信。

    ② Normal Operation State(常规运行阶段-NOS)

    节点由Repeat Message State进入Normal Operation State,该状态为节点通信正常工作状态。

    ③ Ready Sleep State(准备睡眠阶段-RSS)

    节点工作完成后,由Normal Operation State状态进入Ready Sleep State,准备进入睡眠状态。该阶段用来等待网络中所有节点工作完成,之后统一进入睡眠状态。

    (2)Prepare Bus-Sleep Mode(预睡眠模式-PBM)

    节点从网络模式的准备睡眠阶段进入预睡眠模式,该模式与Ready Sleep State的作用类似,但它已经不再属于网络模式了,是正式进入睡眠阶段前更进一步的准备阶段。

    (3)Bus-Sleep Mode(睡眠模式-BSM)

    睡眠模式就是节点停止工作的模式,可以节省能量消耗,是整个网络管理的最终目的。网络管理工作就是管理各个节点如何有序进入睡眠模式和恢复工作状态。节点上电或复位后应默认进入睡眠模式

    3. 网络管理报文的格式

    在AUTOSAR中,网络管理报文以NM PDU的形式存在,典型的结构如下图所示:

    在这里插入图片描述
    其中有用的两个字节就是Byte0-Source Node Identifier(节点源地址)Byte1-Control Bit Vector(控制字节)。这两个字节在NM PDU中的位置是可以配置的。

    (1)节点源地址 - Source Node Identifier

    节点源地址是节点的标识符,网络中所有节点的源地址是唯一的,通常位于0x400-0x4FF范围内。

    (2)控制位向量 - Control Bit Vector

    Control Bit Vector的定义如下,在节点初始化的时候被置为0x00:
    在这里插入图片描述

    Bit 0: Repeat Message Request

    • 0: Repeat Message State not requested
    • 1: Repeat Message State requested
      该位置1的时候表示当前节点请求所有节点进入报文重复阶段。

    Bit 3: NM Coordinator Sleep Bit

    • 0: Start of synchronized shutdown is not requested by main coordinator
    • 1: Start of synchronized shutdown is requested by main coordinator
      该位置1时表示主协调节点请求开始进入同步休眠。

    Bit 4 Active Wakeup Bit

    • 0: Node has not woken up the network (passive wakeup),即当前节点收到网络管理报文,被其它节点唤醒。
    • 1: Node has woken up the network (active Wakeup),即当前节点主动唤醒网络(通过Request),亦称本地唤醒。

    Bit 6 Partial Network Information Bit (PNI)

    • 0: NM PDU contains no Partial Network request information
    • 1: NM PDU contains Partial Network request information
      该位表示该条网络管理报文中是否包含部分网络激活信息。

    4. 节点状态转换

    我们对着标准中的这幅状态转换图,来详细说一下各个状态之间是如何转换的,以及节点处于每个状态时要做哪些工作。

    在这里插入图片描述

    ① 初始化

    节点上电或复位后,经初始化函数CanNm_Init()默认进入总线睡眠状态,在总线睡眠状态下应停发所有应用报文和网络管理报文,但要可以接收网络管理报文,以使得其它节点能够唤醒当前节点。

    ② 进入网络模式

    当节点收到了网络管理报文时,不是直接进入网络模式,而是上报应用层,应用层判断当前状态,允许的话会调用CanNm_PassiveStartup()函数,使节点进入网络模式。当节点自身想要进行网络通讯时,调用CanNm_NetworkRequest()使节点进入网络模式。前者是被动,后者是主动。后者发送的网络管理报文中CBV的Active Wakeup Bit位为1.

    节点在网络模式中要一直发送应用报文。

    节点进入网络模式后,默认进入重复报文阶段,启动定时器NM-Timeout,NM-Timeout用来记录网络管理报文是否超时,其超时时间为CanNmTimeoutTime,每收到或成功发送一帧网络管理报文,都应重启NM-Timeout。节点要开始周期发送网络管理报文。常规情况下,节点要先等待一个时间偏移量(CanNmMsgCycleOffset)后再发送第一帧网络管理报文,发送周期为CanNmMsgCycleTime,发送次数为CanNmRepeatMessageTime。

    网络中所有节点的报文发送周期CanNmMsgCycleTime和CanNmTimeoutTime都是相同的,且CanNmTimeoutTime必须大于CanNmMsgCycleTime;所有节点的CanNmMsgCycleOffset都是不同的,以防止网络中所有节点同时发送网络管理报文造成网络拥塞。

    ③ 进入常规运行阶段

    当节点在重复报文阶段发送了CanNmRepeatMessageTime次网络管理报文后,需要退出重复报文阶段,退出时判断网络当前处于释放状态还是请求状态,如果处于请求状态,则进入常规运行阶段,如果处于释放状态,则进入准备睡眠阶段。

    在常规运行阶段中,节点要周期发送网络管理报文,发送周期为CanNmMsgCycleTime。节点网络此时处于正常工作状态。

    在常规运行阶段中,定时器NM-Timeout如果超时了要被重启。

    ④ 由常规运行阶段返回重复报文阶段

    当节点处于常规运行阶段时,如果收到了Repeat Message Request置为1的网络管理报文,则会强制重新进入重复报文阶段。进入重复报文阶段后的逻辑同上。

    ⑤ 进入准备睡眠阶段

    当节点不再需要进行网络通讯时,应用层会调用**CanNm_NetworkRelease()**函数,释放网络,节点进入准备睡眠阶段,停发网络管理报文,但要保持应用报文的发送

    ⑥ 重新返回常规运行阶段

    节点处于准备睡眠阶段时,如果应用层重新需要使用网络,可以调用CanNm_NetworkRequest()函数使节点重新回到常规运行阶段。

    ⑦ 准备睡眠阶段返回重复报文阶段

    当节点处于准备睡眠阶段时,如果收到了Repeat Message Request置为1的网络管理报文,也会强制重新进入重复报文阶段。进入重复报文阶段后的逻辑同上。

    ⑧ 由重复报文阶段进入准备睡眠阶段

    如上文所述,当重复报文阶段退出时如果节点网络处于释放状态,则节点直接进入准备睡眠阶段。

    ⑨ 进入预睡眠模式

    当节点在准备睡眠阶段NM-Timeout超时,即网络中所有节点都已进入准备睡眠阶段(或不处于网络模式),网络中没有网络管理报文,节点将会进入预睡眠模式,同时启动定时器Wait Bus-Sleep Timer,其超时时间为CanNmWaitBusSleepTime,所有节点的CanNmWaitBusSleepTime都应配置为相同的,以保证所有节点同时进入睡眠模式。

    节点在预睡眠模式中同样不发送网络管理报文,同时还要停止应用报文的发送。

    ⑩⑫ 由预睡眠模式进入网络模式

    步骤⑩和⑫我理解是一回事,就是当节点处于预睡眠模式的时候,应用层想要使用网络进行通讯,或收到了其他节点的网络管理报文,就会重新进入网络模式,也是默认进入重复报文阶段。

    ⑪ 进入睡眠模式

    当节点在预睡眠模式中定时器Wait Bus-Sleep Timer超时后,就会进入睡眠模式,睡眠模式中网络管理报文和应用报文同样都不发送,节点正式进入休眠状态,应尽可能地关闭功能,降低能量消耗。

    5. 附加策略

    (1)网络管理报文立即发送模式

    我们前文说过,当节点进入重复报文阶段时,会重复发送几次网络管理报文。常规情况下,因为网络管理报文通常周期比较长,且第一帧报文还有偏移量,所以激活网络的实时性不是很好,标准中为解决这个问题制定了一个能够立即发送网络管理报文的策略。

    当CanNmImmediateNmTransmissions > 0时,要启动网络管理报文立即发送模式,此时CanNmMsgCycleOffset不再起作用,节点尽可能快地发送第一帧网络管理报文,发送周期不再为CanNmMsgCycleTime,而是用更短的CanNmImmediateNmCycleTime,共发送CanNmImmediateNmTransmissions次,然后进入常规运行阶段,之后网络管理报文的发送周期恢复CanNmMsgCycleTime。

    注意:网络管理报文立即发送模式只有当节点主动唤醒网络的时候才启用,被动唤醒时不启用。是当前节点用来快速唤醒网络中其它节点的一个策略。

    (2)总线负载降低策略(Bus Load Reduction Mechanism)

    由上文可知,当节点处于重复报文阶段和常规运行阶段的时候,都会周期性发送网络管理报文,这对总线负载是一种消耗,且网络中节点越多,总线负载占用越大。标准中制定了一种策略来降低总线负载。

    通常情况下,在常规运行阶段,所有节点都要发送网络管理报文,节点中有一个定时器CanNm Message Cycle Timer,每发送一帧网络管理报文,该定时器就重新装载CanNmMsgCycleTime的值,即网络管理报文的发送周期为CanNmMsgCycleTime。但其实只要有一个节点在发送报文,网络中所有节点就都可以保持在网络模式,多发的网络管理报文是对总线负载的浪费。

    总线负载降低策略具体为:

    当配置参数与CanNmBusLoadReductionEnabled为有效,且节点处于常规运行阶段时,进入总线负载降低模式,此时:

    • 节点如果接收到了一帧网络管理报文,则应将定时器CanNm Message Cycle Timer重置为CanNmMsgReducedTime,而不是CanNmMsgCycleTime,CanNmMsgReducedTime 参数是一个小于 CanNmMsgCycleTime 且大于CanNmMsgCycleTime的一半( ½ CanNmMsgCycleTime)的时间值,且每个节点的CanNmMsgReducedTime 值不同
    • 节点如果发送了一帧网络管理报文,则还是将定时器CanNm Message Cycle Timer重置为CanNmMsgCycleTime。

    这种策略的结果是:网络中只有CanNmMsgReducedTime 值最小的两个节点交替发送网络管理报文

    我们假设节点A的CanNmMsgReducedTime 最小,B次之,在某一时刻,网络上所有节点都进入了总线负载降低模式,此时某个节点发送了一帧网络管理报文,之后该节点因为是发送节点,所以定时器CanNm Message Cycle Timer重置为CanNmMsgCycleTime ,其余节点是接收节点,CanNm Message Cycle Timer重置为各自的CanNmMsgReducedTime,节点A的CanNmMsgReducedTime值最小,所以一段时间后率先发了一条网络管理报文,之后将CanNm Message Cycle Timer重置为CanNmMsgCycleTime,其余节点CanNm Message Cycle Timer再次重置为各自的CanNmMsgReducedTime,此时网络中节点B变成了CanNm Message Cycle Timer值最小的节点,一段时间后会发出一条网络管理报文,这又会使得节点A的CanNm Message Cycle Timer值变成最小,所以实现了网络中CanNmMsgReducedTime 值最小的两个节点交替发送网络管理报文,其余节点不发送网络管理报文。

    当最小的两个节点中某个节点进入准备睡眠阶段,不再发送网络管理报文了,那么CanNmMsgReducedTime 值略大的下一个节点会开始发送网络管理报文。

    当网络中只有一个节点处于常规运行阶段时,网络管理报文的周期为CanNmMsgCycleTime。

    (3)远程睡眠指示

    当配置参数CanNmRemoteSleepIndEnabled为有效的时候,如果节点在CanNmRemoteSleepIndTime时间后仍没有收到其他节点发送的网络管理报文,说明其它节点都已经进入休眠或准备休眠,此时应调用Nm_RemoteSleepIndication()函数通知应用层网络中所有节点都进入了休眠。如果此时节点又收到了其他节点发送的网络管理报文,应该再调用Nm_RemoteSleepCancellation()函数通知应用层取消之前的指示。该策略称为远程睡眠指示。

    6. 时间参数汇总

    下表展示了所有网络管理相关的时间参数,最左栏是配置参数,通常通过配置工具进行配置,中间栏是节点中网络管理程序需要用到的定时器:
    在这里插入图片描述

    7. 控制器状态梳理

    下图为所有网络管理相关内容的一个梳理,通常情况下控制器的状态转换如下图蓝色箭头所示:
    在这里插入图片描述

    展开全文
  • AutoSar之CAN网络管理

    万次阅读 多人点赞 2019-08-30 22:15:03
    今天整理下AUTOSAR中的CAN网络管理。 ​AUTOSAR中网络管理主要使用了CAN接口(CanIf),并提供通用网络管理接口(NmIf)。CAN网络管理在CAN架构中所处的位置如图1,与其他模块的交互如图2。 图1 CAN架构 图2 网络管理...

    本文首发于微信公众号“汽车控制与人工智能”欢迎关注。

    今天整理下AUTOSAR中的CAN网络管理。

    ​AUTOSAR中网络管理主要使用了CAN接口(CanIf),并提供通用网络管理接口(NmIf)。CAN网络管理在CAN架构中所处的位置如图1,与其他模块的交互如图2。
    在这里插入图片描述
    图1 CAN架构
    在这里插入图片描述
    图2 网络管理和其他模块的联系

    AUTOSAR网络管理基于分散的直接网络管理策略,这意味着每个网络节点仅依赖于通信系统中接收或传输的网络管理pdu来执行自给自足的活动。网络管理算法基于周期性的网络管理PDUs,通过广播传输被集群中的所有节点接收。接收网络管理PDUs表明发送节点希望保持网络管理集群处于唤醒状态。如果有节点准备进入总线休眠模式,它将停止发送网络管理PDU,但是只要接收到来自其他节点的网络管理PDU,它就会延迟向总线休眠模式的转换。如果由于不再接收网络管理PDU而导致计时器超时,则每个节点都将启动到总线休眠模式的转换。

    如果网络管理集群中的任何节点需要总线通信&#

    展开全文
  • can 网络管理

    千次阅读 2018-08-31 16:26:54
    网络管理主要功能: 是用来管理ECU是否在网络里面,不在的话请求加入,也就是ALIVE报文, 要判断是否掉线,以及睡眠状态的转换机制,以及跛行状态判,也即是RING报文。 主要的实现逻辑流程: 从rtos队列里面取出...
  • 该资料为原创,结合作者多年的CAN 网络管理开发经验,整理出的autosar NM和osek NM资料,适合于想学习CAN NM的朋友,和刚刚入门CAN的兄弟。
  • 关于CAN网络管理状态

    千次阅读 2019-08-05 23:05:14
    首先介绍一下,我是一名刚刚入职1个月的汽车网络测试工程师,目前主要是一边学习一边... 今天就先直接说说关于CAN网络管理状态转换的一些内容吧,下面是一个网络管理的逻辑图: 上面就是我画的一个比较简单的...
  • vx(ymx095616),接定制需求单 CAN网络管理autosar测试用例模板
  • 网络游戏-基于OSEK网络管理的CAN网络管理方法.zip
  • AutoSar CAN网络管理状态机理解

    千次阅读 多人点赞 2019-08-28 17:51:03
    AutoSar CAN网络管理状态机理解 前言 网络管理是整车控制很重要的功能。在CAN网络中通常有两种报文,应用数据帧和网络管理帧。应用数据帧只负责网络在正常工作模式下各节点的数据交互,网络管理帧控制和协调各节点...
  • CAN网络管理Autosar(入门)

    千次阅读 多人点赞 2021-01-22 16:27:09
    CAN总线上的网络管理,是一种无中心式的网络管理,网络中的每个节点都依赖于自己和别人的网络管理报文(NM PDU)来实现通信的睡眠和唤醒,这个NM PDU是周期性发送的,对于每个ECU来说,收到别的ECU发送的NM PDU则...
  • 介绍了基于OSEK VDX规范的车身CAN网络管理方法,定义了帧的传输类型,对间接网络管理作了深入的研究,并且给出了间接网络管理中监督帧的设计方法及具体实现方式。同时对网络状态作了阐述,完善了网络管理的内容。通过...
  • can网络管理(Autosar中的NM)

    万次阅读 多人点赞 2020-07-27 18:47:51
    1、NM(网络管理)是用来做什么的; 不管是传统的燃油车还是新能源车,车上都有...我们知道车上的所有ECU之间会通过CAN通信、Flexray或以太网等进行相互通信连接在一起,那么网络管理就是通过在各个ECU的网络上,发送
  • can网络管理(osek中的NM)

    千次阅读 2020-08-27 17:58:03
    OSEK 直接网络管理基本功能如下:  1、协调各 ECU 同时进入网络睡眠模式;  2、检测和监控网络的配置;  3、提供系统状态。所有参与直接网络管理的 ECU,根据[OSEKNM]中的算法建立逻辑环的通信机制:  4、每...
  • CAN网络测试规范

    2018-05-04 10:17:43
    CAN网络测试规范,CAN网络测试规范,CAN网络测试规范,CAN网络测试规范,CAN网络测试规范,CAN网络测试规范,CAN网络测试规范,CAN网络测试规范,
  • AUTOSAR_SWS_CANNetworkManagement_4.3.1英文版和中文 AUTOSAR CanNm是基于权利分散的直接网络管理。每个网络节点的状态只取决于该节点接收到和发送的NMPDUs.
  • ComM是整个通信的服务管理模块,掌控整个AutoSAR的通信,在通信协议栈中除了ComM之外,网络管理也是主要的通信控制和管理模块,因此本篇主要对CAN的AutoSAR提供的网络管理功能做详细的介绍。 全系内容可在《搞一下...
  • AUTOSAR CAN总线网络管理规范,包含了AUTOSAR的软件需求
  • CAN总线-osek网络管理

    千次阅读 2021-11-25 21:30:17
    222
  • cannm网络管理

    千次阅读 多人点赞 2022-01-07 11:12:47
    1.3 can网络管理报文 2. 网络管理模式(3个) 2.1 睡眠模式(bus-sleep mode) 2. 2 预睡眠模式(PreSleep) 2.3 网络模式(network mode) 2.3.1 重复报文状态 (repeat message state) 2.3.2 常规操作状态 ...
  • AUTOSAR CAN网络管理状态机的优化方案

    千次阅读 2019-09-05 16:43:47
    在AUTOSAR CAN网络管理框架下,如果所有的节点都按照状态机要求,在ReadSleep状态下停发NM帧,在Prepare Bus-Sleep模式下停发App帧,所有节点可以从Prepare Bus-Sleep模式开始同步进入Bus-Sleep模式。如下图所示 ...
  • CAN总线上的网络管理,是一种无中心式的网络管理,网络中的每个节点都依赖于自己和别人的网络管理报文(NM PDU)来实现通信的睡眠和唤醒,这个NM PDU是周期性发送的,对于每个ECU来说,收到别的ECU发送的NM PDU则...
  • UDS诊断协议 UDS协议即ISO14229,是Unified Diagnostic Services,统一诊断服务,是诊断服务的规范化标准。 这是一套应用层协议,通过不同服务完成一定的应用功能。 其中会涉及到读取车辆信息、读取...网络管理简单理
  • 无论是整车厂自己定义或根据OSEK,AUTOSAR规范定义的网络管理规范都是以ECU整体为对象而说的。网络管理的目的是使网络上所有节点能同步唤醒和休眠,并且节点在休眠状态下维持低功耗模式。ECU软件开发人员在实现时...
  • 整合自Autosar网络管理相关的理解,有利于从事汽车电子测试的同学理解Autosar的网络管理规范以及状态机
  • 基于CAN网络与虚拟仪器的冷库管理系统

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 134,991
精华内容 53,996
关键字:

can网络管理

友情链接: tbych.zip