AutoSar CAN网络管理状态机理解

AutoSar CAN网络管理状态机理解

  • 前言

网络管理是整车控制很重要的功能。在CAN网络中通常有两种报文,应用数据帧和网络管理帧。应用数据帧只负责网络在正常工作模式下各节点的数据交互,网络管理帧控制和协调各节点唤醒,工作,休眠的时序。AutoSar CAN网络管理规范要求所有节点按如下状态机管理和交流各自的网络状态以控制整车的网络活动状态。为什么状态机要是这个样子?为什么总共五个状态休眠就三个状态?为了比较形象的说明汽车CAN网络管理状态机,本文以学生宿舍作息管理模型为例做简要说明。

 

 

  • 设计要求

网络管理系统的三个基本要求:

  1. 网络上各节点能同时唤醒。
  2. 网络上各节点能同时休眠。
  3. 网络上新增(减少)一个节点(只要总节点数≥2)后,新的网络依然满足要求1,2

此处同时只的是第一个唤醒(休眠)控制器和最后一个唤醒(休眠)控制器的唤醒(休眠)时间差在设计允许范围内,比如200ms。

 

网络管理系统的增强性要求:

  1. 网络上任一节点能都能唤醒网络,即多主唤醒方式。
  2. 网络上任一节点能知道其他节点所有的状态,即状态共享。

 

  • 学生宿舍作息模型

设某学生宿舍有N个同学,作息规定:

  1. 大家同时醒来。
  2. 大家同时睡着。
  3. 宿舍里新来一个人或离开一个人也不影响其他人按规定1,2作息。

此处同时只的是第一个人醒来(睡着)和最后一个醒来(睡着)的时间差在允许范围内,比如1分钟。睡着的意思是大脑真正进入睡眠状态,不能仅从闭上眼睛判断。有什么方法能实现该作息规定呢?

 

  1. 管理员模型:
  1. 选举一个同学为宿舍长。
  2. 宿舍中央掉一盏灯。
  3. 舍长一关灯大家一起睡觉,10分钟后一起睡着。
  4. 舍长一开灯大家醒来。

 

这个方法挺简单,但是要有约束:

  1. 舍长必须永远存在。否则有一天他生病或请假不能开关灯,那么其它人就不能正常作息。
  2. 舍长必须第一个醒来,他不醒来就没人开灯。
  3. 舍长必须最后一个睡着,否则关灯后有一个人迟迟不入睡,他不知道。

可见,管理员模型存在风险集中和伪同步两个缺点。

 

  1. 独立模型:
  1. 各人床头放一盏床头灯。
  2. 各人只能控制自己床头灯“开”和“关”。
  3. 各人能看到其他人床头灯“开”和“关”的状态。
  4. 只要1个人的床头灯是开的,房间就是亮的。
  5. 只有所有人的床头灯是关的,房间才变黑暗。
  6. 当房间黑暗时,只要有1个人的床头灯亮,所有人都要醒来。
  7. 当1个人准备睡觉时他就关掉自己的床头灯。
  8. 只要房间是亮的,所有人都不会睡着,即使他已经躺在床上。
  9. 只要房间变黑暗,10分钟后所有人都会睡着。

其中,第6条保证同时醒来,同时也是对管理员模型舍长风险的分解。即任何人都能叫醒其它人。第7~9条保证同时睡着。为什么必须要同时睡着呢?这是因为如果不同时睡着,就不能按照规则6让大家同时醒来。譬如,修改第7条当1个人关灯后,不管其他人有没有关灯他就在10分钟后睡着。但是他睡着后因为有灯亮着,按照第6条他又得醒来。虽然他只经过了短暂的睡着状态,但他还是以为是第二天天亮了,然而其他人还处在第一天晚上的状态,这样系统时间就乱了。第9条是说从入睡到睡着有一个时间过程,不可能宿舍一黑大家都睡着。

同步睡眠的方法如图,假设有三个同学A,B,C他们按顺序关灯。关灯后,他们只是躺下,眼睛还是睁开的。这时就一直看房间还是不是亮着。只要亮着,就说明有人还没睡,那就等待。直到C关灯躺下后,房间变黑。大家才集体闭眼睡觉,10分钟后一起睡着。我们发现从最后一个人关灯到集体睡着的时间是固定的,而第一个人关灯到最后一个人关灯的时间是不固定的,该时间就是网络休眠的最大延迟时间。

 

 

同步唤醒的方法如图,任意一个同学(假设同学B)开灯,大家就同时起床。但每个人起床时间或许不一样,有的快有的慢。所以是要规定一个最快时间,比如5分钟。在这5分钟内,必须要让床头灯开着,目的是让其他同学有时间看到自己的确被叫起来了。因为起床后就是自由活动了,或者去教室,或者呆在宿舍。或者把灯一关坐在床上睁大眼睛看天花板,反正至少同学B的灯一直开着你就不能闭眼,哪怕今天你在床上干坐一天。

 

综合上述同步唤醒和休眠时序,我们得到每个同学的作息管理状态机。这和AutoSar CAN网络管理状态机基本一样。

 

 

  • AutoSar CAN网络管理同步算法

以下内容摘自《AUTOSAR_SWS_CANNetworkManagement.pdf》

7.1 Coordination algorithm部分:

The AUTOSAR CanNm is based on decentralized(*1) direct network management strategy, which means that every network node performs activities self-sufficient depending on the Network Management PDUs only that are received or transmitted within the communication system.

AUTOSAR CanNm基于分散的(*1)直接网络管理策略,这意味着每个网络节点根据仅依靠在通信系统内接收或发送的网络管理PDUs帧就可以执行自足的网络管理活动。

The AUTOSAR CanNm algorithm is based on periodic Network Management PDUs,which are received by all nodes in the cluster via broadcast transmission. Receptionof Network Management PDUs indicates that sending nodes want to keep thenetwork management cluster awake. If any node is ready to go to the Bus-Sleep Mode, it stops sending Network Management PDUs, but as long as Network Management PDUs from other nodes are received, it postpones transition to the BusSleep Mode. (*2) Finally, if a dedicated timer elapses because no Network Management PDUs are received anymore, every node initiates transition to the Bus-Sleep Mode.

AUTOSAR CanNm算法基于周期性网络管理PDU,通过广播传输由集群中的所有节点接收。接收到网络管理PDU表明发送节点希望保持网络管理集群处于唤醒状态。如果任何节点已准备好进入总线-休眠模式,它将停止发送网络管理PDU,但只要接收到来自其他节点的网络管理PDU,它就会推迟进入到BusSleep模式。(*2) 最后,如果经过一定时间再没有接收到网络管理PDU,则每个节点都会进入到BusSleep模式。

If any node in the network management cluster requires bus-communication, it can wake-up the network management cluster from the Bus-Sleep Mode by transmitting Network Management PDUs. For more details concerning wakeup procedure itself please refer to the AUTOSAR SWS ComM [7].

如果网络管理集群中的任何节点需要总线通信,则它可以通过发送网络管理PDU将网络管理集群从休眠模式唤醒。有关唤醒程序本身的更多详细信息,请参阅AUTOSAR SWS ComM [7]。

理解:

  1. 分散的目的正是为了排除集中式管理员模型的风险。
  2. 推迟的目的是为了所有的节点同步进入BusSleep模式。

 

  • 新能源汽车CAN网络管理的必要性

低成本的控制器使用硬线方式唤醒,即所有的ECU都连接在点火开关上,ACC/IGON时所有ECU同步唤醒。但是ACC/IGOFF时,各节点不能同步休眠。有的节点提前休眠,有的节点比如MCU因为放电时间较长要晚点休眠,而VCU作为主控节点往往最后一个休眠。

 

通常情况下异步休眠也没有什么问题。但是特殊情况下,比如下图节点A已经休眠了但是节点B还没有休眠,这时钥匙又打开了,所谓玩钥匙。IGOFF-ON的时间间隔很短,大约几百毫秒。那么对节点A是一个新的循环,对节点B还处于原来的循环。这样可能就会存在隐患,譬如不同ECU故障管理的驾驶循环计数值不一致。

 

所以,严格控制所有ECU同步休眠是很有意义的。在传统燃油汽车ECU系统里,钥匙OFF后发动机立即熄火,只要整车厂企标规定所有ECU在一定时间内必须休眠(譬如200~300ms),基本上可以算同步。但是在新能源汽车,由于电机控制器MCU母线电容要放电,该时间是秒级的(主动放电3S内,被动放电60S左右)。则整车厂企标不能要求所有控制器在钥匙OFF后短时间内同步休眠。那么,必须要通过网络管理协调所有ECU同步休眠。

 

  • 对AutoSar CAN网络管理的误区

     AutoSar CAN网络管理允许CAN唤醒控制器,但是不是只要采用AutoSar CAN网络管理就必须要CAN唤醒呢?我认为不一定,通常下面几个情况可能需要控制支持CAN唤醒:

  1. 停车充电时要唤醒控制器,譬如BMS,MCU,VCU。
  2. 需要通过无线钥匙启动车辆,无线模块发送CAN报文唤醒车辆ECU

      对于新能源汽车第1条是必须的,那么相关节点是不是必须要支持CAN唤醒呢?要知道带CAN唤醒功能的芯片和不带CAN唤醒功能的芯片成本相差也比较大。如果通过巧妙电路设计,比如在无线唤醒模块上增加电子开关连接到KL15上,对于各ECU依然表现为硬线唤醒控制器,CAN网络管理只负责控制休眠,那么用低成本的CAN芯片就能实现网络管理。如今各整车厂对零部件供应商的ECU成本要求越来越严苛,ECU成本主要受制于高性能芯片,芯片供应商推进高性能Chip的目的是为了更高的利润,但是零部件商一定要清醒是否有必要,在能实现整车功能的前提下,尽量用低功能的芯片有成本优势。

 

七、小结:

1. 以学生宿舍作息管理模型为例说明了AutoSar CAN网络管理的状态机。

2. 解释了新能源汽车必须要用CAN网络管理控制ECU同步休眠。

3. 对于成本严格的整车网络,推荐用硬线唤醒结合CAN网络控制休眠的方法,可以采用不带CAN唤醒功能的芯片达到网络管理的目的。

  • 29
    点赞
  • 186
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值