0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文解析AUTOSAR CAN网络管理

jf_EksNQtU6 来源: 一起学嵌入式 2023-09-09 10:32 次阅读

概述

AUTOSAR CAN 网络管理是一个独立于硬件的协议,只能在 CAN 上使用。它的主要目的是协调网络的正常运行和总线休眠模式之间的转换。

除了核心功能之外,还提供了可配置功能,例如, 实施服务来检测所有当前节点或检测是否所有其他节点都准备好休眠。

CAN 网络管理(CanNm)功能提供网络管理接口(NmIf)和 CAN 接口(CanIf)模块之间的适配。

网络管理的制约

CanNm 的一个通道只与一个网络中的一个网络管理集群相关联。一个网络管理群集在一个节点中只能有一个 CanNm 通道。

CanNm 的一个通道仅与同一 ECU 内的一个网络相关联。

CanNm 仅适用于 CAN 系统。

CANNm 模块可以应用于任何汽车领域。

网络管理协议

唤醒请求

唤醒请求可分为如下两种:

本地唤醒请求, 即来自该节点内部的对网络的唤醒请求。

远程唤醒请求, 即来自网络上其他节点的网络管理报文请求。

网络管理模式

网络管理包含如下三种模式:

睡眠模式

预睡眠模式

网络模式

3378f396-4e4a-11ee-a25d-92fbcf53809c.png

睡眠模式

当节点没有本地网络唤醒及远程唤醒请求时, ECU 通讯控制器切换至睡眠模式, ECU 功耗降低至适当水平。

在睡眠模式下,节点的网络管理报文和应用报文禁止发送,并且不能对总线上的报文进行 ACK 应答;但可以被总线上的报文唤醒,在被唤醒后才可以对总线报文进行ACK 应答。同时节点在该模式下,如果检测到有效的唤醒源,节点必须被唤醒。

预睡眠模式

当节点进入预睡眠模式时,将启动T_WAIT_BUS_SLEEP定时器

在预睡眠模式下,总线活动需静止下来,最终达到总线上没有活动,但ECU通讯控制器状态应处于工作模式。

在该模式下,节点的网络管理报文和应用报文禁止发送(为了清空发送缓存,允许将发送队列中已有的报文发完),但需对总线上的报文进行ACK应答。

网络模式

当节点进入网络模式时,将启动 T_NM_TIMEROUT 定时器。在网络模式下成功接收或者发送网络管理报文时,节点将重新启动 T_NM_TIMEROUT 定时器。

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

重复报文状态

常规操作状态

准备睡眠状态

重复报文状态

重复报文状态确保节点从睡眠模式或预睡眠模式到网络模式的转换对网络上的其他节点可见。

进入重复报文状态时,节点将(重新)开始网络管理报文的发送,并启动 T_REPEAT_MESSAGE 定时器。应用报文必须在第一帧网络管理报文发送开始后且小于 T_STARTx_AppFrame 内发送。

节点的网络管理状态将保持在重复报文状态直到 T_REPEAT_MESSAGE 时间截止,一旦该时间超时,网络管理状态应该离开重复报文状态。

在 重 复 报 文 状 态 下 , 节 点 一 旦 接 收 或 发 送 一 条 网 络 管 理 报 文 , 或 者T_NM_TIMEROUT 超时,则 T_NM_TIMEROUT 立即重置。

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

NM 快速发送子状态。节点在进入 NM 快速发送子状态时,为了快速唤醒网络,节点必须以快速周期T_NM_ImmediateCycleTime 发送网络管理报文。

发送的快速网络管理报文数量由参数 N_ImmediateNM_TIMES 决定,节点每次成功发送一条快速周期网络管理报文时,该数值应递减 1。

NM 正常发送子状态。进入NM正常发送子状态后,节点必须以正常周期T_NM_MessageCycle发送网络管理报文。

常规操作状态

当节点因发生本地唤醒事件需要与网络上的其他节点进行通讯时,必须保持在常规操作状态,并且以正常周期 T_NM_MessageCycle 发送网络管理报文。在常规操作状态下,节点一旦接收或发送一条网络管理报文,或者 T_NM_TIMEROUT 超时,则 T_NM_TIMEROUT 应该立即重置。

在常规操作状态下,节点的网络管理报文和应用报文必须正常发送。

准备睡眠状态

节点进入准备睡眠后,必须停止发送网络管理报文。

在准备睡眠状态下,节点一旦接收到一条网络管理报文, T_NM_TIMEROUT应该立刻重置。T_NM_TIMEROUT超时,节点的网络管理状态应进入预睡眠模式。

网络管理报文

AUTOSAR 网络管理报文结构如下表所示:

3395b77e-4e4a-11ee-a25d-92fbcf53809c.png

CAN 网络管理报文 ID 范围从 0x500~0x53F,其中报文优先级定义为(110) 2 = 6 级, FFFA 为网络管理 PGN(自定义),00~FF 为 ECU 源地址SA;

网络管理报文数据场的字节 1 用于发送控制比特向量(Control Bit Vector),字节 2~7 用户自定义:

33aa3258-4e4a-11ee-a25d-92fbcf53809c.png

当控制器有重复报文请求,主动回到重复报文状态,并将重复报文请求位置 1;当该控制器离开重复报文状态,将重复报文请求位清零;控制器由于其他条件(本地唤醒或接收到其他控制器重复报文状态位置 1 的 NM 报文)而回到重复报文状态,重复报文请求位保持 0。

当控制器由于本地唤醒进入重复报文状态时,主动唤醒位置 1,直到重新进入预睡眠模式时清零;当控制器由于远程 NM 报文唤醒,主动唤醒位保持 0。

网络管理常用参数

33bb3cec-4e4a-11ee-a25d-92fbcf53809c.png

状态迁移

33cff59c-4e4a-11ee-a25d-92fbcf53809c.png

状态迁移条件

NM_01

网络管理节点的上电后(Battery Power on),节点进行网络管理模块初始化,初始化完成后进入睡眠模式,具备被本地唤醒事件或者远程唤醒请求的能力。

NM_02

当网络管理节点处于睡眠模式时,如果收到有效的远程唤醒请求,那么节点必须离开睡眠模式并进入重复报文状态的 NM 正常发送子状态。

进入 NM 正常发送子状态后,在定时器 T_REPEAT_MESSAGE 超时前,节点必须以以 T_NM_MessageCycle 为周期发送网络管理报文。

NM_03

如果节点在睡眠模式下检测到本地唤醒请求,那么节点必须主动唤醒网络, 进入NM 快速发送子状态, 并将主动唤醒位设置为 1。

节点进入 NM 快速发送子状态后,需以 T_NM_ImmediateCycleTime 为周期,发送数量为 N_ImmediateNM_TIMES 的网络管理报文。

NM_04

处于 NM 快速发送子状态的节点,在计数器 N_ImmediateNM_TIMES 为零时,将进入 NM 正常发送子状态。

NM_05

处于重复发送状态下的节点,如果 T_NM_TIMEROUT 超时,节点的网络管理状态不应改变,但 T_NM_TIMEROUT 必须重置。

NM_06

处于 NM 正常发送子状态的节点,当 T_REPEAT_MESSAGE 超时, 主动唤醒模式下,则进入常规操作状态。节点继续保持以正常周期 T_NM_MessageCycle发送网络管理报文和相关的应用报文。

NM_07

处于常规操作状态的节点,如果节点自身有重复报文请求,节点将网络管理状态切换到重复报文状态的 NM 快速发送子状态;如果节点收到其他节点重复报文请求位置 1 的 NM 报文,节点将网络管理状态切换到重复报文状态的 NM 正常发送子状态。

NM_08

处于常规操作状态下的节点,如果 T_NM_TIMEROUT 超时,节点的网络管理状态不应改变,但 T_NM_TIMEROUT 必须重置。

NM_09

处于常规操作状态下的节点,如果本身不需要网络,节点马上将网络管理状态切换到准备睡眠状态,同时停止发送网络管理报文,保持应用报文的发送和接受,每次接受到网络管理报文,重置T_NM_TIMEROUT定时器。

NM_10

处于准备睡眠状态的节点,如果检测到本地唤醒请求,则将网络管理状态切换到常规操作状态。

NM_11

处于准备睡眠状态的节点,如果节点自身有重复报文请求,节点将网络管理状态切换到重复报文状态的 NM 快速发送子状态;如果节点收到其他节点重复报文请求位置 1 的 NM 报文,节点将网络管理状态切换到重复报文状态的 NM 正常发送子状态。

NM_12

处于 NM 正常发送子状态下的节点,当 T_REPEAT_MESSAGE 超时,且自身无网络请求,节点将立即进入准备睡眠状态,并开启CANNM_WBS_TIMER定时器。

NM_13处 于 准 备 睡 眠 状 态 的 节 点, 如 果 不 再 收 到 本 地 或 远 程 唤 醒 请 求 , 在CANNM_WBS_TIMER超时后,节点将进入预睡眠模式,进入预睡眠模式后开启T_WAIT_BUS_SLEEP 定时器.

NM_14

处于网络模式的节点,在成功接收或者发送一帧网络管理报文后,节点的网络处于预睡眠模式的节点,如果收到远程唤醒请求,将进入重复报文状态的 NM 正常发送子状态。

NM_16

处于预睡眠模式的节点,如果收到本地唤醒请求,将进入重复报文状态的 NM 快速发送子状态。

NM_17

处 于 预 睡 眠 模 式 的 节 点 , 如 果 不 再 收 到 本 地 或 远 程 唤 醒 请 求 ,在T_WAIT_BUS_SLEEP 超时后,节点将进入睡眠模式。

故障处理

节点的网络管理所在的网络总线不可用时,必须执行如下行为:

如果节点没有准备好睡眠,但总线变得不可用,则不应该进入睡眠模式。

如果节点已准备好睡眠,但总线变得不可用,则应该进入睡眠模式。

如果总线不可用,但节点状态变为准备睡眠,则应该进入睡眠模式。

如果总线不可用,但节点状态变为未准备好睡眠,则不应该进入睡眠模式。

网络管理的故障处理不适用于已经处于睡眠模式的节点,因为在睡眠模式下无通信行为,此时总线不可用是难以检测到的。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    7640

    浏览量

    148496
  • CAN
    CAN
    +关注

    关注

    56

    文章

    2470

    浏览量

    459253
  • 网络管理
    +关注

    关注

    0

    文章

    107

    浏览量

    27508
  • AUTOSAR
    +关注

    关注

    9

    文章

    329

    浏览量

    21137
  • ecu
    ecu
    +关注

    关注

    14

    文章

    821

    浏览量

    53885

原文标题:一文搞懂 Autosar 网络管理

文章出处:【微信号:谈思实验室,微信公众号:谈思实验室】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Autosar软件开发技术概述

    AUTOSAR这个架构有利于车辆电子系统软件的交换与更新,并为高效管理愈来愈复杂的车辆电子、软件系统提供了个基础。此外,AUTOSAR在确保产品及服务质量的同时,提高了成本效率。宝
    发表于 12-26 10:34

    功能安全---AUTOSAR架构深度解析 精选资料分享

    AUTOSAR架构深度解析本文转载于:AUTOSAR架构深度解析AUTOSAR的分层式设计,用于支持完整的软件和硬件模块的独立性(Indep
    发表于 07-23 08:34

    AUTOSAR CAN网络管理

    、背景: 在AUTOSAR CAN网络管理框架下,如果所有的节点都按照状态机要求,在ReadSleep状态下停发NM帧,在Prepare
    发表于 07-26 06:47

    AUTOSAR架构深度解析 精选资料推荐

    AUTOSAR架构深度解析本文转载于:AUTOSAR架构深度解析目录AUTOSAR架构深度解析
    发表于 07-28 07:40

    AUTOSAR架构深度解析 精选资料分享

    AUTOSAR架构深度解析本文转载于:AUTOSAR架构深度解析AUTOSAR的分层式设计,用于支持完整的软件和硬件模块的独立性(Indep
    发表于 07-28 07:02

    AUTOSAR CAN网络管理状态机介绍

    AUTOSAR CAN网络管理状态机为什么停发应用帧?有什么解决办法吗?
    发表于 09-24 07:47

    AUTOSAR CAN时钟同步问题

    请问有没有AUTOSAR CAN时钟同步的能运行的代码,或者有没有能做这块的大佬,主要是CanTsyn和STBM这两个模块的。有偿,价格都好商量,急需。
    发表于 11-09 00:00

    AUTOSAR_SWS_CAN网络管理规范标准4.3.1

    AUTOSAR_SWS_CAN网络管理规范标准4.3.1
    发表于 03-28 17:02 12次下载

    CAN网络管理规范 AUTOSAR CP中文版

    CAN网络管理规范 AUTOSAR CP中文版免费下载。
    发表于 04-06 16:21 0次下载

    CAN网络管理规范 AUTOSAR CP英文版

    AUTOSAR_SWS_CAN网络管理规范标准4.3.0英文版免费下载。
    发表于 04-06 16:20 0次下载

    AUTOSAR CAN网络管理协议

    AUTOSAR_SWS_CANNetworkManagement AUTOSAR CAN网络管理协议,4.4.0版本
    发表于 08-01 11:09 14次下载

    AutoSARCAN通信网络管理的概述

    AutoSARCAN通信的网络管理主要是根据CANNode接收和发送的NMMessage进行该节点在整个网络中的活动的,根据NM Mess
    的头像 发表于 01-18 10:21 4365次阅读
    <b class='flag-5'>AutoSAR</b>中<b class='flag-5'>CAN</b>通信<b class='flag-5'>网络</b><b class='flag-5'>管理</b>的概述

    AUTOSAR CAN网络管理

    CAN网络中没有远程唤醒或者本地唤醒请求时,ECU应处于睡眠模式(Bus-Sleep Mode),将功耗降低至最低水平,这种模式是ECU启动时的起始状态或者是ECU睡眠时的最终状态。
    的头像 发表于 03-25 16:46 1406次阅读

    科普系列:AUTOSAR与OSEK网络管理比较(上)

    AUTOSAR(Automotive Open System Architecture,即汽车开放系统架构),另一个是OSEK。AUTOSAR与OSEK的网络管理方式的区
    的头像 发表于 10-26 09:28 683次阅读
    科普系列:<b class='flag-5'>AUTOSAR</b>与OSEK<b class='flag-5'>网络</b><b class='flag-5'>管理</b>比较(上)

    科普系列:AUTOSAR与OSEK网络管理比较(下)

    作者:You小编:吃不饱在上篇中我们分别在状态机和报文格式方面对OSEK和AUTOSAR网络管理进行了简单介绍,感兴趣的小伙伴请移步至文章《科普系列:AUTOSAR与OSEK
    的头像 发表于 11-22 10:17 781次阅读
    科普系列:<b class='flag-5'>AUTOSAR</b>与OSEK<b class='flag-5'>网络</b><b class='flag-5'>管理</b>比较(下)