基于CAN总线进行网络管理与Transceiver的关系梳理

基于CAN总线进行网络管理与Transceiver的关系梳理,第1张

前言

在汽车行业CAN总线是应用场景最多的情况,本文也基于CAN总线进行网络管理与Transceiver/Controller关系梳理。

AUTOSAR NM涉及到的模块包括Transceiver、CAN Driver、CANIf、CANSM、CANNM、PDUR、Com、ComM、EcuM、BswM等。由于模块众多,小编会分多篇梳理。

本篇就网络管理和Transceiver、Controler关系理一理。

网络管理和Transceiver

为什么要谈Transceiver?因为任何上层意图的执行实际都是对底层硬件模块的 *** 作,网络管理也不例外。

在讨论网络管理之前,问一个问题,ECU如何供电的?因为只有ECU上电并且程序运行以后才有网络管理。所以不要混淆ECU上电和网络管理激活,ECU上电并不等于网络管理激活。本例以Transceiver1145(1)为例说一下ECU如何上电。

基于CAN总线进行网络管理与Transceiver的关系梳理,poYBAGMERuWAbOKhAACdNB6kSzo352.png,第2张

如上图,当BAT(等价于KL30,本例不用KL15)给Transceiver1145供电后,Transceiver1145的INH引脚激活3V电源管理模块,进而给主芯片供电,当主芯片供电以后,程序开始运行,但此时网络处于BSM(Bus Sleep Mode),ECU并不能立马外发报文,需要对唤醒事件进行有效性验证,避免因总线抖动或者其他干扰造成的ECU无效唤醒。

如果程序(上层模块,如CANNM)想要识别当前是否收到网络管理报文应该具备什么条件?

如果ECU想正常的收发报文需要Transceiver1145和Controller进入各自的工作状态。先说Transceiver1145,对于Transceiver1145需要切换到Normal Mode(通过SPI发送Normal指令),此时Transceiver1145才能将模拟信号和数字信号进行转换;虽然Transceiver1145可以将模拟信号和数字信号进行转换,但是此时ECU还不能将报文传输给上层模块,即此时还不能正常的收发报文,因为Controller没有正常工作,只有当Controller也正常工作以后,ECU才能正常的收发报文。

网络管理和Controller

Controller如何进入正常的工作模式呢?Controller进入到正常的工作模式就需要了解ECU的唤醒过程。本例以Transceiver唤醒检查为例分析ECU唤醒流程。

基于CAN总线进行网络管理与Transceiver的关系梳理,poYBAGMERvmABzPnAACQSgl5mzc839.png,第3张


 

如上图,Transceiver1145在初始化或者handler程序中检查唤醒源,判断到上电或者CAN总线干扰事件时会通知EcuM有唤醒事件,之后EcuM通过CanIf模块调用CanTrcv_CheckWakeup检查唤醒源。如果EcuM使能了唤醒源的检查,则EcuM调用EcuM_StartWakeupSources接口,该 *** 作的实质是使得Controller进入Start状态,至此Transceiver1145和Controller均进入了对应的工作状态,ECU具备了收发报文的能力。注意,Controller需要从STOPPED状态切换到STARTED状态。


审核编辑:刘清

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

原文地址: http://outofmemory.cn/dianzi/2999027.html

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

发表评论

登录后才能评论

评论列表(0条)

保存