本文主要以普及CAN通信基本原理为目的,如有从事相关领域或者有意从事车载嵌入式开发的读友们欢迎留言探讨。
本文含有关键字如下。
CAN Transceiver Hardware, CAN Trcv
图1 CAN通信组件图
Can Transceiver Hardware主要功能
CAN收发器(CAN Transceiver Hardware)是一种硬件设备,可将CAN总线上使用的信号电平调整为微控制器识别的逻辑(数字)信号电平。此外,收发器还能够检测电气故障,例如布线问题,接地偏移或长主导信号的传输。根据与微控制器的接口,它们会标记由单个端口引脚汇总的检测到的错误或由SPI非常详细地标记出来。
在汽车环境中,主要使用三种不同的CAN总线物理方法。它们是用于高速CAN(最高1Mbits / s)的ISO11898,用于低速CAN(最高125Kbits / s)的ISO11519和用于单线CAN的SAE J2411(AUTOSAR不支持此方法)。
CAN Transceiver Hardware在汽车环境中连接在控制器区域网络(Controller Area Network,简称CAN bus)上。控制器区域网络(Controller Area Network,简称CAN bus)特点是允许网络上的多个微控制器或设备直接互相通讯,网络上不需要主机(Host)控制通信,并且提供高安全等级及有效率的即时控制。更具备了侦错和优先权判别的机制,网络信息的传输变的更为可靠而有效率。
CAN Transceiver Hardware主要工作内容为,接收CAN bus上的网络信息(通常叫做CAN Frame)相关的信号电平并将其转化为逻辑信息电平转发给CAN Controller,接收从CAN Controller传输过来的逻辑电平信息并将其转化为信号电平传从到CAN bus上。CAN 网络拓扑如图2所示。
图2 CAN Network Topology
汽车环境中连接在控制器区域网络(Controller Area Network,简称CAN bus)上的CAN Transceiver Hardware拥有以下三种Mode(模式):
NORMAL MODE:完整的CAN bus总线通信。 CAN Transceiver Hardware处于可接收,传送CAN bus上的网络信息状态。
STANDBY MODE:无法进行通讯。CAN Transceiver Hardware处于无法接收传送CAN bus上的网络信息状态。是NORMAL MODE过渡到SLEEP MODE的中间模式。可通过CAN bus总线唤醒网络信息(通常称为Wakeup Event)或本地本地唤醒事件唤醒,将模式转换到NORMAL MODE。
SLEEP MODE:无法进行通讯。CAN Transceiver Hardware处于无法接收传送CAN bus上的网络信息状态,与STANDBY MODE相比电源损耗更低。可通过CAN bus总线唤醒网络信息(通常称为Wakeup Event)或本地本地唤醒事件唤醒,将模式转换到NORMAL MODE。
CAN transceiver Hardware唤醒类型分为以下三种:
Scenario 1:
●MCU未上电。
●包括CAN收发器硬件在内的ECU部件均已通电。
●所考虑的CAN收发器处于休眠模式。
●CAN收发器硬件检测到CAN总线上的唤醒事件。
●CAN收发器硬件导致MCU上电。
Scenario2:
●MCU处于低功耗模式。
●包括CAN收发器硬件在内的ECU部件均已通电。
●所考虑的CAN收发器处于待机模式。
●CAN收发器硬件检测到CAN总线上的唤醒事件。
●CAN收发器硬件引发SW中断以进行唤醒。
Scenario3:
●MCU处于全功率模式。
●ECU的至少一部分,包括CAN收发器硬件,都已通电。
●所考虑的CAN收发器处于待机模式。
●CAN唤醒事件由CAN收发器硬件检测到。
●CAN收发器硬件会引发SW中断以进行唤醒,或者会定期轮询以了解唤醒事件。
Can Trcv主要功能
CAN Trcv属于,AUTOSAR架构图[0]中的ECU Abstraction Layer(ECU抽象层)子模块组的Communication Hardware Abstraction(通信硬件抽象)。
ECU Abstraction Layer(ECU抽象层)所在位置如下:
图3AUTOSAR ECU抽象层
如图1所示,CAN Trcv模块主要用于接收/传送CAN Transceiver Hardware逻辑(数字)信号电平,根据ECU以及CAN 网络信息的需要变更CAN Transceiver Hardware模式。
CAN Trcv模块必须为配置的每个收发器单独实现以下所示的相位图。
图4 CAN Trcv相位图[1]
从“正常”切换到“睡眠”时,通常称为“进入睡眠”的模式是一种临时模式。 驱动程序将这种临时模式封装在CAN收发器驱动程序软件状态之一内。 此外,CAN收发器驱动程序首先从“正常”切换到“待机”,然后再从“待机”切换到“睡眠”。
编写内容不易,希望各位看官们点个赞同哦。
[1] Specification of CAN Transceiver Driver AUTOSAR CP Release 4.3.1
作者:嵌入式攻城狮
文章来源:上汽零束SOA开发者论坛
原文链接:https://bbs.z-onesoft.com/omp/community/front/api/page/mainTz?articleId=7667