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

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

3天内不再提示

对Autosar网络管理的一些表述进行纠错

冬至配饺子 来源:开心果 Need Car 作者:开心果 Need Car 2022-08-26 17:15 次阅读

纠错1

Autosar网络管理:网络管理报文的收/发与网络管理时间配置参数解析

一文中,提到这样一个观点3.有快速发送功能(网络被动唤醒):在RMS状态下,先以快发周期发送一定次数的网络管理报文,eg:20ms发送10次,之后以正常周期发送网络管理报文,eg:500ms。此处表达不准确,收到网络管理报文(没有PN功能),被动唤醒(调用CanNm_PassiveStartUp()接口),没有快发模式。

即:被动唤醒没有快发模式。快发模式需要满足的条件:

节点非PASSIVE MODE;

调用CanNm_NetworkRequest()接口主动请求网络;

CanNmImmediateNmTransmissions>0。

看一下Autosar规范给的解释,如下所示:

CASE1

poYBAGMIjnuALnzmAADyayAZcdQ764.png

可以看出,由BSM或者PBSM进入RMS,由CanNm_NetworkRequest()触发,且CanNmImmediateNmTransmissions>0时,使能快发模式。

CASE2:

pYYBAGMIjo-ADI0SAACjQ-0jAss897.png

CanNmPnHandleMultipleNetworkRequests = TRUE,可以理解为PN功能使能,调用CanNm_NetworkRequest()接口进入RMS状态时,CanNmImmediateNmTransmissions>0,使能快发模式。

注意

CanNmImmediateNmTransmissions设置为1,没有意义,工程需求中,常见设置:10、20等;

CanNmRepeatMessageTime > CanNmImmediateNmTransmissions * CanNmImmediateNmCycleTime,即:快发模式限于RMS状态;

快发功能使用时,CanNmMsgCycleOffset不再适用,既然都快发了,就是想快速唤醒网络,所以,没必要再延迟发送NM Msg。

纠错2

工程开发问题(七):Flexray网络状态切换错误,通信异常一文中,说到:“Fr节点进入RSS状态以后,即使本节点有内部网络请求(Network Request,比如:VFC置位),节点也不会进入NOS状态。”,该表达不准确。完整的解读Autosar规范如下所示:

poYBAGMIjqaAPjGDAADE9JW1Gto085.png

意思是说,Flexray节点在RSS状态下,如果同时满足如下条件:

FrNm_ReaySleepCnt>0;

FrNm_NetworkRequest=TRUE,主动调用FrNm_NetworkRequest()接口;

FrNM_RepeatMessage=FALSE。

在当前Repetition Cycle结束后,Flexray节点的网络状态由RSS进入NOS状态。

网络管理问题QA

Q1Application软件升级,$11复位后,节点处于何种网络状态?

A1:本问题源于一个朋友的讨论。在此,说一下个人理解。正常的刷写流程中,一般操作如下:

Step1:拓展会话($10 03)中,使用功能寻址将总线上的所有节点通信(0x28服务)和DTC监控(0x85服务)禁用,功能寻址一直在周期性发送$3E 80(维持会话);

Step2:使用物理寻址升级目标ECU(进入编程会话,$10 02),比如:下图的ECU3;

Step3:ECU3升级完成以后,使用物理寻址发送$11 01服务,复位ECU3;

Step4:等待一定时间(比如:2s),功能寻址发送$10 03服务,使ECU3进入拓展会话;

Step5:再等待一定时间(比如:2s),功能寻址发送$28服务,使能所有节点通信;......

pYYBAGMIjr2Ad64sAABcd3mcv5A002.png

具体解释:

Step3中,发送$11 01使ECU3复位,ECU3执行复位,由Boot跳转到Application,Application程序初始化,Application程序运行起来,需要一定时间,这是上位机Tester)延迟2s的作用(确保Application程序已经完成初始化动作),这个时间内ECU3节点网络处于BSM(Bus Sleep Mode)模式;Step4中,功能寻址发送$10 03服务,主要使ECU3进入拓展会话。在升级ECU3的过程中,由于Tester一直周期性发送$3E 80(避免因S3超时,ECU1、ECU2进入默认会话,使得通信和DTC控制失效),ECU1和ECU2一直在拓展会话呆着。Step5中,又经过2s时间,Tester发送$28 00服务,开启通信。提示:

$28服务针对非诊断报文的通信

(比如:网络管理报文、应用报文),主要是把总线让给诊断报文,提高刷写速率。所以,ECU3只要完成启动流程,Controller和Transceiver进入Normal模式,ECU3就可以正常接收诊断报文。如果开发的ECU要求

网络管理报文唤醒网络,此时ECU3节点的网络状态处于何种模式呢?答:个人理解,BSM。虽然上位机从请求ECU复位到发送$28服务(开通信)间隔了4s时间,但是这4s时间内有一定的时间ECU在完成初始化(一般要求100~300ms时间范围)。

pYYBAGMIjtGAcMb6AACgF5yQChI507.png

如上图:T0时刻,ECU3收到$11 01复位,一般程序会在Boot呆一定时间,比如:50ms(Stay In Boot功能),之后识别到App程序有效,Jump到App,完成App初始化,在OS RUN之前需要100~300ms时间不等(每个项目的代码量和功能有所不同,耗时不同)。

到T2时刻使能通信之前的这段时间,ECU3处于BSM模式,原因:没有收到有效的唤醒事件(比如:没有收到网络管理报文)。注意:

ECU1和ECU2一直处于NM(Network Mode),因为诊断报文在一直维持两者的网络状态。

T2时刻,ECU1和ECU2的通信使能,可以发送网络管理报文和应用报文,ECU3接收到网络管理报文以后,进入NM,ECU3相当于被动唤醒。

所以,从ECU3复位,到接收到$28 00服务,近4s的时间内,ECU3的网络状态处于BSM模式。

注意

再次提醒:不要混淆ECU唤醒和网络唤唤醒。虽然ECU3收到诊断报文,可以处理诊断服务,但是诊断报文并不是有效的唤醒源,如果Transceiver没有硬件过滤功能,诊断报文可以将ECU唤醒(uC被供电),但是网络并未唤醒,此时ECU会保持一定时间验证唤醒事件的有效性,比如:3s等;

有些节点的Transceiver有过滤功能,即:只能有效的网络管理报文被接收,所以,冷启动时,诊断报文,ECU接收不到;

某些ECU的开发中,会将诊断报文作为有效唤醒源,即:网络管理报文一样,可以唤醒网络,诊断报文和注意识别。

$11 01诊断服务思考

工程中,ECU刷写后,需要$11 01执行uC的复位,这个复位可以操作PORST Pin,控制uC的Vcc供电(5V),使得uC完成一个热启动过程,即:ECU复位。注意,这个复位动作,虽然也给uC重新供电,但是,它不同于KL15硬线上电,不能看作主动唤醒,所以$11 01诊断复位不能触发网络的主动唤醒。

提示:$11 01复位,执行uC的下电流程,需要执行NVM的存储。

如下通过控制SBC(System Basis Chip)实现uC复位,也可以通过控制外部看门狗实现。

pYYBAGMIjumAZjVDAABsB-yg17I884.png



审核编辑:刘清

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

    关注

    0

    文章

    107

    浏览量

    27509
  • AUTOSAR
    +关注

    关注

    9

    文章

    330

    浏览量

    21138
  • RMS
    RMS
    +关注

    关注

    2

    文章

    134

    浏览量

    35373
收藏 人收藏

    评论

    相关推荐

    AUTOSAR Builder—符合AUTOSAR(CPAP)的嵌入式系统设计工具

    的工具并与其他工具供应商进行集成。AUTOSAR Builder在此基础上新增了多个工具套件,更加能够贴合不同用户角色(OEM、Tier1)的使用场景和研发流程,覆盖基于AUTOSAR的软件研发的各个环节。
    的头像 发表于 01-08 18:06 209次阅读
    <b class='flag-5'>AUTOSAR</b> Builder—符合<b class='flag-5'>AUTOSAR</b>(CPAP)的嵌入式系统设计工具

    AUTOSAR架构中复杂驱动设计

    复杂驱动(Complex Driver,CDD)是一种不受 AUTOSAR 标准化约束的软件实体,它可以通过 AUTOSAR 接口和/或基础软件模块 API 进行访问 AUTOSAR
    的头像 发表于 12-21 10:13 943次阅读
    <b class='flag-5'>AUTOSAR</b>架构中复杂驱动设计

    AUTOSAR OS操作系统功能特性

    AUTOSAR OS AUTOSAR OS(AUTomotive Open System ARchitecture Operating System)是AUTOSAR架构中的一个组件,用于管理
    的头像 发表于 10-27 16:55 1250次阅读

    解读AUTOSAR模式管理BswM配置

    模式管理AUTOSAR中的一个难点,也可以说是最庞杂的一块。因为模式管理贯穿整个CP Autosar流程,几乎所有模块都跟BSWM发生着联系。
    的头像 发表于 10-26 16:55 884次阅读
    解读<b class='flag-5'>AUTOSAR</b>模式<b class='flag-5'>管理</b>BswM配置

    AUTOSAR UDP网络管理策略

    UdpNm,AUTOSAR UDP Network Management,基于TCP/IP协议栈,主要目的是协调网络在normal operation和bus-sleep mode之间的转换。除了
    的头像 发表于 09-27 16:51 342次阅读
    <b class='flag-5'>AUTOSAR</b> UDP<b class='flag-5'>网络</b><b class='flag-5'>管理</b>策略

    一文解析AUTOSAR CAN网络管理

    AUTOSAR CAN 网络管理是一个独立于硬件的协议,只能在 CAN 上使用。它的主要目的是协调网络的正常运行和总线休眠模式之间的转换。
    的头像 发表于 09-09 10:32 2679次阅读
    一文解析<b class='flag-5'>AUTOSAR</b> CAN<b class='flag-5'>网络</b><b class='flag-5'>管理</b>

    STM32H7系列内部存储器保护的纠错码(ECC)管理

    本文档介绍了 STM32H7 系列微控制器上纠错码(ECC)的管理和实现。本应用笔记针对保护内部存储器内容的 ECC 机制,描述了与之相关的硬件、软件信息。除此之外,也可使用外部存储器进行 ECC
    发表于 09-08 07:31

    基于AUTOSAR的智能车域控制器网络管理功能设计实现

    智能驾驶的整车控制部分需要采用AUTOSAR框架进行开发,以满足高实时性以及高级别的功能安全需求。
    发表于 08-16 15:01 389次阅读
    基于<b class='flag-5'>AUTOSAR</b>的智能车域控制器<b class='flag-5'>网络</b><b class='flag-5'>管理</b>功能设计实现

    详解CAN总线的AUTOSAR网络管理报文

    官方一点: AUTOSAR 就是AUTomotive Open System ARchitecture的简称,中文翻译就是汽车开放系统架构。
    的头像 发表于 07-31 11:27 2920次阅读
    详解CAN总线的<b class='flag-5'>AUTOSAR</b><b class='flag-5'>网络</b><b class='flag-5'>管理</b>报文

    理一理AUTOSAR架构下的唤醒源事件

    最近的项目负责网络管理部分,网路唤醒和ECU系统的休眠关系紧密,对系统的唤醒源事件感觉理解的不是很透彻,今天就来理一理AUTOSAR架构下的唤醒源事件。
    的头像 发表于 07-14 09:11 1626次阅读
    理一理<b class='flag-5'>AUTOSAR</b>架构下的唤醒源事件

    一文入门AUTOSAR OS

    Autosar Os 在Autosar 框架中上至RTE 下至驱动,中间可以和BSW 基础模块进行交互。是整个autosar 框架下最重要的组成部分。
    的头像 发表于 06-29 10:34 2630次阅读
    一文入门<b class='flag-5'>AUTOSAR</b> OS

    如何使用ip命令在Linux中进行网络管理

    在Linux中,'ip'命令是管理网络方面最强大的命令之一。该命令可以允许用户在不使用任何其他网络管理工具的情况下管理网络。本文将介绍如何使用'ip&ap
    发表于 05-31 12:25 220次阅读

    如何让个uno成为ringmaster向网络上的每个其他uno发送一些数据并触发它们做一些工作?

    直在寻找许多不成功的时间,试图找到个项目,其中有人通过 esp8266 连接了 2 个或更多 unos。 目标是让个 uno 成为 ringmaster,向网络上的每个其他 u
    发表于 05-23 07:06

    使用OTA进行一些测试总是报错如何解决?

    我正在使用 OTA 进行一些测试,但是当我尝试上传新草图时,我得到了 我在 gentoo/linux 下使用 Arduino IDE 1.8.5。 这个错误的原因应该是什么,我该如何解决? 谢谢
    发表于 05-08 08:02

    ESP8266 12E模块在哪里可以找到.cpp文件以便进行一些修改?

    我正在使用 NodeMcu 1.0(ESP8266 12E 模块),我使用了键盘库,我使用库管理器下载了它,我在哪里可以找到 .cpp 文件以便进行一些修改?我想知道该文件在我的计算机中的保存位置。
    发表于 05-04 08:02