如何理解CAN通信的串行通信呢?

如何理解CAN通信的串行通信呢?,第1张

最近和一些读者讨论了一些Autosar网络管理相关问题,有几个问题做了一下梳理,再此和大家分享一下。

Q1:CanNmImmediateRestartEnabled使能,NM PDU的外发行为?

A1:先说CanNmImmediateRestartEnabled的作用,在PBSM(Prepare-Bus-Sleep mode)模式下,收到总线的通信请求(比如:KL15硬线唤醒),使能NM-PDU的发送,即:进入RMS状态。NM-PDU的发送行为如下所示:

如何理解CAN通信的串行通信呢?,pYYBAGMG5R2AQEvLAAA80bPpmrE888.png,第2张

上图可以看出,进入RMS模式以后,以正常的发送周期发送NM-PDU。

对于此问题,Autosar要求:

“CanNmImmediateRestartEnabled = true then CanNmImmediateNmTransmissions = 0”,意思是说,使能CanNmImmediateRestartEnabled,就没有快发模式;

“CanNmPnHandleMulTIpleNetworkRequests == True" then "CanNmImmediateNmTransmissions > 0”,意思是说,使能PN功能以后,需要快发模式。

可以看出,上述两点在实现时,只能使能其中一个。

Q2:NM-TImeout何时重置?

A2:不讨论PN功能时。当节点收到/发送NM-PDU时,NM-TImeout重置,假设,某CAN网段内存在三个节点:ECU1、ECU2、ECU3,各个节点的

NM-TImeout重置时机和网络状态如下所示:

如何理解CAN通信的串行通信呢?,poYBAGMG5S-AUMX0AABquGu8DSQ066.png,第3张

提示:NO(Normal Operation)、RS(Ready Sleep)、PBSM(Prepare-Bus-Sleep mode)。黑色实心表示发送NM-PDU,黑色空心表示接收NM-PDU。

上图可以看出:每个节点释放网络的时机不确定,每个节点的网络释放时机,取决于节点的上层实现。注意,不是进入RS状态重置NM-Timeout。节点释放网络的时候,NM-Timeout继续递减,不会重置。当网段内没有节点发送网络管理报文,且NM-Timeout走完,所有节点一起进入PBSM模式。

Q3:如何理解CAN通信的串行通信?

A3串行通信,就是用一个Pin发送/接收Bit位流信息。如下图:对于发送节点(uC1),通过Controller的Tx Pin发送Bit位流信息,即:uC1发送报​文。同时,uC1通过Controller的Rx Pin,回读自身发送的信息是否正确。对于同网段内的其他节点(uC2),通过Rx Pin接收uC1的发送信息,即:​接收报文。

如何理解CAN通信的串行通信呢?,pYYBAGMG5UeAbLOQAACnNyDtqtM623.png,第4张


审核编辑:刘清
 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2999019.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-26
下一篇 2022-09-26

发表评论

登录后才能评论

评论列表(0条)

保存