• 687查看
  • 0回复

[网络开发] CAN通讯系列补充篇:OSEK NM异常工况分析11

[复制链接]


该用户从未签到

发表于 7-1-2024 16:44:59 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


本文经CSDN博主- 嵌软小白呗允许转发,感谢支持!分享了几篇作者关于AutoSAR NM相关内容后,本文接着了解OSEK NM,OSEK NM也是汽车ECU常用的网络管理方法,后续对两者做个比较,以此可以更清晰地了解网络管理。本文将在原文基础上稍作修改,欢迎关注作者。
原文链接:全面详细讲解OSEK直接网络管理,并对比Autosar网管。介绍提到以逻辑环为学习OSEK NM的突破口,引出4个问题:1、(开始)这个逻辑环是怎么建立的?2、(运行过程)逻辑环运行过程中,有一个新的ECU节点加入怎么处理?3、(运行过程)逻辑环运行过程中,有一个ECU节点异常退出怎么处理?4、(结束)如果所有ECU都不需要工作了,如何结束逻辑环进入休眠?目前还剩运行过程的2个问题未作解答,本文就针对这两个问题进行解答。1 运行过程:逻辑环运行过程中,有一个新的ECU节点加入怎么处理?当CAN总线上各节点唤醒并且处于逻辑环正常工作的时候,在一遍逻辑环的循环中的每个ECU肯定能被指向一次。如果这时有个ECU打开自己的CAN通道接入CAN总线中,CAN总线肯定没有一个ECU发的网管报文是指向它的。这怎么办呢?这时,新加入的ECU需要具备检测自己是否被逻辑环跳过的机制,当发现自己被跳过后,需要立即发送Alive报文,以加入逻辑环中。官方解释及检测是否被跳过的算法流程图,如下所示:
CAN通讯系列补充篇:OSEK NM异常工况分析11w1.jpg

CAN通讯系列补充篇:OSEK NM异常工况分析11w2.jpg
其中:R:Receiver为接收到网管报文的ECU(可以理解为自己)S:Source为发送网管报文的ECU(可以理解为发网管报文过来的ECU)D:Destination为所发送的网管报文的指向地址(可以理解为发网管报文过来的ECU的网管报文的指向地址)以第3行举例如下:
CAN通讯系列补充篇:OSEK NM异常工况分析11w3.jpg

假设Source为0x08,Destination为0x00, Receiver为0x0F。即Source节点发送的网管报文的指向地址为0x00,但是由于Receiver节点的地址是0x0F,因此,Source节点应该发送网管报文的指向地址为0x0F。可以发现Receive节点被跳过了,如下分析:

CAN通讯系列补充篇:OSEK NM异常工况分析11w4.jpg

CAN通讯系列补充篇:OSEK NM异常工况分析11w5.jpg
其它情况也是同样的分析方式。2 运行过程:逻辑环运行过程中,有一个ECU节点异常退出怎么处理?
2.1 某个ECU异常退出对于其它节点网管状态的影响:

逻辑环正常工作的时候,某个节点异常退出,对其它节点而言的现象,就是突然少了这个节点的Ring报文。

我们先看下逻辑环正常工作时,一帧Ring报文对其它节点有什么作用。

影响①:对Ring报文指向的ECU节点的作用。即Ring报文指向的ECU需要开启TTyp计时器,等待计时器到时后就发出它的Ring报文。

CAN通讯系列补充篇:OSEK NM异常工况分析11w6.jpg
影响②:对Ring报文不指向的ECU节点的作用。即当ECU接收到不指向自己的Ring报文的时候,会关闭TTyp定时器,因为Ring报文不指向它,所以下一个发Ring报文的ECU不是它,当然就不需要开启TTyp定时器。
CAN通讯系列补充篇:OSEK NM异常工况分析11w7.jpg
可见,当某个ECU突然退出逻辑环,当出现指向这个ECU的Ring报文时,其它所有ECU的TTyp定时器都会关闭,但由于最后一帧Ring报文指向的这个ECU退出了逻辑环,因此它不会再发出Ring报文了。逻辑环到它这就卡住了。因此,若Ring报文只控制CAN总线网络上ECU节点的TTyp计时器,则还无法监测到某个ECU退出逻辑环的情况。于是,另外一个叫做“TMax”计时器就排上用场了,  “TMax”定义如下:
CAN通讯系列补充篇:OSEK NM异常工况分析11w8.jpg
即两帧Ring报文之间最大的时间间隔。我们再来看下“ TMax”定时器开启、关闭及计时器到时动作,如下图所示:
CAN通讯系列补充篇:OSEK NM异常工况分析11w9.jpg
由上图可见,接收到不指向自己的Ring报文后会开启“TMax”定时器。并且当定时器到时后,NM状态会进入RESET状态。因此,当某个ECU突然退出逻辑环后,其它所有ECU的TTyp定时器都会关闭,但同时会开启“TMax”定时器,当定时器时间一到,CAN总线网络上每个正常节点都进入RESET状态,重新发送Alive报文,然后重复开始建环的动作。
CAN通讯系列补充篇:OSEK NM异常工况分析11w10.jpg

2.2 某个ECU异常退出对自己内部网管状态的影响:首先要知道,正常情况下,参与CAN网络的节点是不可能无故退出网络的,某个ECU退出CAN网络只有两种情况:① 该ECU的接收出问题了,导致无法接收网管报文。② 该ECU的发送出问题了,导致无法发送网管报文。那么,怎么样算接收出问题,怎么样算发送出问题?官方定义两个参数:
CAN通讯系列补充篇:OSEK NM异常工况分析11w11.jpg

这两个参数的值由车企定义。一般来说,rx_limit = 4。tx_limit = 8,阈值rx_limit和tx_limit对应两个计数器:

CAN通讯系列补充篇:OSEK NM异常工况分析11w12.jpg

当NMrxcount大于等于rx_limit或tx_limit大于等于NMtxcount,则认为ECU通信出现错误,NM状态进入NMLimpHome状态。

CAN通讯系列补充篇:OSEK NM异常工况分析11w13.jpg

NMrxcount和NMtxcount计数器累加或清0的条件:

CAN通讯系列补充篇:OSEK NM异常工况分析11w14.jpg

即:
进入NMRest状态:①NMrxcounter加1②NMtxcounter加1进入NMNormal状态:①成功接收网管报文时,清空NMrxcounter②成功发送网管报文时,清空NMtxcounter③有发送网管报文的请求时,NMtxcounter加1好了,当有了一些LimpHome的基本概念后,那么当ECU的通信出错后,具体是如何进入LimpHome状态的?下篇文章我们来详细分析。


该用户从未签到

发表于 16-3-2025 00:03:00 | 显示全部楼层
关于OSEK NM与AutoSAR NM的比较及逻辑环异常工况分析:

OSEK NM和AutoSAR NM均为汽车ECU中广泛应用的网络管理方法。逻辑环是OSEK NM的核心机制。针对您提出的几个问题,简要分析如下:

1. 逻辑环建立:基于ECU间的通信,通过特定的协议和数据流程,形成环形通信结构。
2. 新ECU节点加入:当有新节点加入时,需遵循既定的通信协议,进行身份识别、同步等步骤,确保逻辑环的稳定运行。
3. 逻辑环运行中异常处理:在逻辑环运行过程中,若发生异常,如通信中断、数据错误等,网络管理系统会启动错误处理机制,确保系统的稳定性和可靠性。

后续将详细对比OSEK NM与AutoSAR NM的异同,深入分析网络管理的核心差异。欢迎关注原作者嵌软小白呗,获取更多专业、全面的内容。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 16-3-2025 00:03:00 | 显示全部楼层
尊敬的CSDN博主嵌软小白呗,您好!关于您分享的关于OSEK NM异常工况分析的文章,非常感谢您的转发和支持。以下是我作为汽车工程师对OSEK NM的简要分析:

OSEK NM是汽车ECU中常用的网络管理方法之一,对于其逻辑环的建立,它是基于预定义的规则和通信协议来实现的。当新的ECU节点加入逻辑环时,网络会进行节点识别与配置,确保新节点能够正确接入并遵循逻辑环的运行规则。至于逻辑环在运行过程中的异常处理,OSEK NM会有一套完备的容错机制来处理通信中的错误,如网络超时、数据传输错误等。后续与AutoSAR NM的比较,将会更好地展现两者在网络管理方面的差异和优劣。感谢您的关注!期待您后续关于两者的比较分析。
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 19-8-2025 10:54 , Processed in 0.371044 second(s), 36 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.