【技术短文】简述CAN网络管理基础知识

最近被安排去为某ECU做系统设计,由于我之前一直做嵌入式Linux开发,且开发方向主要面向上层业务开发以太网协议栈的开发。然而,该ECU的开发属于MCU开发,其上运行CP框架和OSEK OS。由于没有太多MCU开发经验,因此我不知道该如何进行ECU的系统设计。庆幸的是,在参加了一周的技术评审会议后,我学到了很多MCU开发的基础知识。

今天,这篇文章总结下这两天对于CAN网络管理的学习成果。之所以学习CAN网络管理是在和OEM开会沟通的过程中,经常听到我们的系统架构师要求OEM提供CAN网络管理需求。

CAN NM具有三种mode,分别是:

1. Prepare Bus-Sleep

2. Bus-sleep mode

3. network mode

其中,network mode又分为三种状态:

1. repeat message state

2. normal message state

3. ready sleep state

将上述三种mode和三种status画图表示如下,最下方的方框就代表network mode。因此,在不涉及具体产品的情况下,我们可以把CAN网络管理的状态机简化为下图,便于理解。

(图片来源于:https://zhuanlan.zhihu.com/p/381521671/)

接下来,我按照该图梳理下CAN网络状态机的运行机制。

如果CAN总线处于Bus sleep mode,目标ECU一旦收到can报文,则can总线立即进入network mode。

如果CAN总线处于network mode,目标ECU首先进入repeat message state。此时,状态机有两种状态迁移路径。

1. 如果目标ECU需要通过CAN完成某些功能,则CAN总线进入Normal state,用于完成指定功能。一旦功能完成,CAN总线会从Normal State进入Ready sleep状态。

2. 如果目标ECU进入Normal state但没有功能需要完成,则CAN总线会进入Ready Sleep状态。

一旦CAN总线进入Ready Sleep状态后,CAN总线会在合适的条件下进入到Prepare Bus-Sleep mode,进而进入Bus-Sleep mode。至此,CAN总线完成了一次完整的状态迁移。

上面的介绍是网络管理的基础内容,由于我目前还不清楚是否所有的CAN网络管理策略都是一致的,但想来差别不会特别大。OEM提供CAN NM的需求应该是针对CAN总线各mode互相迁移时需要满足的条件,供应商根据OEM提供的需求设计目标ECU的CAN网络管理策略。

该文章是对于CAN网络管理状态的基础知识总结,目的在于构建CAN NM的基础框架,至于细节可以在以后工作过程中逐步学习完善...


文章首发于上汽零束开发者论坛。

作者:程序猿司晨
文章来源:上汽零束SOA开发者论坛 
原文链接:https://bbs.z-onesoft.com/omp/community/front/api/page/mainTz?articleId=7758

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值