最近在工作中碰到了好几个由于CANTrcv引起的问题,想借此机会整理Autosar架构中的CanTrcv模块,主要想弄清楚CanTrcv模块在autosar架构的状态如何切换。本文特别感谢chatgpt
1 Introduction
Can transceiver (CAN收发器) 是一种硬件设备,它将CAN总线上使用的信号电平调整为微控制器识别的逻辑(数字)信号电平。
此外收发器可以检测电器故障如:布线问题(指CAN总线的物理连接问题)、地偏移(CAN总线的地线与其它地线或设备地线的电位差就是地偏移,会导致CAN总线的电平不平稳,出现类似噪声的干扰从而影响到CAN总线数据传输的质量与稳定性)、或长主导信号的传输。根据与微控制器的接口方式,它们会标记由单个端口引脚汇总的检测到的错误或者由SPI非常详细的标记出来。部分收发器支持通过CAN总线进行电源控制和唤醒。最新的发展包括系统基础芯片,除了CAN外还实现了电源控制和先进的看门狗,它们封装在一个外壳里,并通过单个接口(如SPI)进行控制。
主要有三种物理CAN总线方法,高速CAN(Max speed 1Mbits/s),低速CAN(Max speed 125bits/s),用于单线CAN的SAE J2411(AutoSar不支持)。
1.1 CAN收发器驱动程序的目标
本文档的目标是指定适用于大多数当前和未来的CAN收发器设备的接口和行为。
CAN收发器驱动程序抽象了CAN收发器的硬件。它为高层提供了一个与硬件独立的接口。它通过使用MCAL层的api来访问CAN收发器硬件,从ECU布局中进行抽象。
1.2 CAN收发器不支持的功能
一些CAN总线收发器提供了额外的功能,例如,ECU自检或诊断方面的错误检测能力。
&