CAN总线收发器(TJA1145)介绍

汽车ECU休眠唤醒概念:三种场景

1. 冷启动式休眠唤醒:

MCU处于掉电状态;
CAN发器处于供电状态(汽车电瓶供电)
唤醒事件能够被CAN收发器识别;
CAN收发器能够根据唤醒源决定是否唤醒MCU,给到MCU供电;

2. CAN休眠唤醒

MCU始终处于正常供电状态;
CAN收发器处于供电状态;
CAN收发器处于Standby状态;
唤醒事件能够被CAN收发器识别;
CAN收发器识别到有效唤醒源后能够产生一个中断唤醒MCU或者MCU周期性的去检查是否存在有效唤醒源;

3. CANMCU休眠唤醒

MCU处于低功耗状态;
CAN收发器处于供电状态;
CAN收发器处于Standby状态;
唤醒事件能够被CAN收发器识别;

CAN收发器识别到有效唤醒源后能够产生一个中断唤醒MCU

CAN干扰问题

一般CAN收发器的抗共模干扰能力是-12~7V,超过这个差值则出现错误,如果共模差超过±36V,烧毁收发器或者电路板。增加隔离模块后,隔绝了地回流,限制了干扰幅度

CAN的应用场合,由于距离一般都较远,所以大部分采用屏蔽层单点接地的原则,在干线上找一点将屏蔽层用导线直接接地,该点应是所受干扰最小的点,同时该点位于网络中心附近

CAN收发器TJA1145介绍:

TJA1145特点:

StandbySleep状态下能保持极低功耗,其中Sleep状态下功耗比Standy状态下更低;
可通过选择性唤醒功能支持高速CAN网络;
TJA1145提供接口与3.3V或者5V微控制器相连,通过SPI可用来控制CAN收发器以及状态获取;

Wake pin是上升沿还是下降沿唤醒寄存器可配,不使用时接地

TJA1145内部电细节:

BAT: 该电源用于给TJA1145系统状态维护进行供电,只要BAT一直有电,那么TJA1145相关状态寄存器值就不会丢失,CAN接收器由BAT供电;
VCC:该电源一方面作为5V电源输入给到TJA1145系统模块进行监控是否过压或欠压,另一方面则给到CAN总线供电,且CAN发送器由VCC供电;
VIO:该电源一方面作为电源输入到TJA1145系统模块进行监控是否过压或欠压,另一方面则作为SPI通信的电平转换;

TJA1145唤醒方式

1.MCU满足休眠条件时,通过发送SPI相应指令TJA1145进入Sleep状态
2.TJA1145进入到Sleep状态后,INH引脚就会拉低,控制5V或者3V关闭电源输出,间接导致MCU整个系统处理掉电状态,此时TJA1145始终处于供电状态(由于BAT始终有电),整个ECU成功进入到休眠状态
3.TJA1145虽然处于Sleep状态,属于极低功耗状态,同步也检测着网络是否存在有效唤醒源
4.TJA1145发现有效唤醒源之后,就会自动从Sleep状态切换成Standby状态,在Standby状态下INH引脚拉高,此时5V3V便会正常输出,从而MCU被正常供电,程序开启正常运行

TJA1145的控制过程

TJA1145 Mode的控制

针对TJA1145的控制过程可分为TJA1145 Mode的控制以及内部CAN Mode两种类型。

TJA1145 Mode,在TJA1145内部存在一系统控制器包含如下五种运行状态机:Normal,StandbySleepOvertempOff状态

1.Normal: 该模式下TJA1145处于全功能模式下,所有功能均可用,可通过MC=111Standby或者Sleep状态切换至Normal状态;

2.Standby: 该模式下TJA1145处于低功耗状态,不能够正常收发数据,但是INH引脚可以始终保持拉高状态;如果此时寄存器CWE=1,那么此时会持续监控总线电平状态,如果寄存器CPNC=PNCOK=1,那么就开启了特定帧唤醒,否则就是标准CAN唤醒

3. Sleep: 该模式下TJA1145处于最低功耗状态下,且不能正常收发数据,同时INH引脚处于高阻状态,电源供电一般会通过该引脚进行拉低关闭输出。其状态变化存在如下几种可能

        3.1)一个有效唤醒源或者中断事件(除去SPI故障事件)或者SPI指令(SPI通讯速率不能过高)可以唤醒TJA1145Sleep状态切换至Standby状态

        3.2)在Normal或者Standby状态下通过发送MC=001便可以进入到Sleep状态,确保至少存在一个唤醒源使能(CAN唤醒或者Wake pin唤醒)且没有pending状态下的唤醒源

        3.3)如果VCC或者VIO持续一段事件低于某个阈值,那么该低电压事件将会强制让TJA1145进入到Sleep状态,与此同时所有的Pending的唤醒源将会被清除,同时特定帧唤醒功能将会被关闭;

4. Overtemp该状态是由于TJA1145防止温度过高导致被损坏的一个功能,一旦在Normal状态下温度超出一定阈值就会自动切换至OverTemp保护状态;

        4.1)在该模式下,CAN收发器将不能正常工作,pin脚始终处于高阻状态,唤醒源将不会被检测,但是如果存在Pending的唤醒源,那么RXD引脚就会被拉低

        4.2)当温度低于特定阈值时,那么该状态便会自动切换至Standby状态

        4.3)如果Bat电压引脚低于某个特定阈值,则会自动从该状态切换至OFF状态

5. Off: 在该状态下电压由于低于特定阈值导致供电不足,当Bat首次连接时这是TJA1145的初始状态,只要Bat电压低于某特定阈值,那么TJA1145将会从任意状态直接切换至Off状态。在Off状态下,CAN pin脚以及INH引脚始终处于高阻状态;

当电压高于某个特定阈值时,TJA1145便会重新启动触发初始化过程,从而经历特定时候后进入到Standby状态;

        5.1)Standby状态下INH引脚可以拉高控制MCU各级电源,CAN无法正常收发通信;

        5.2)Normal状态下SPI可正常通信,INH引脚可以拉高,CAN模块的状态取决于CMC寄存器值,仅在Active状态下才能够开启正常通信,且仅在CMC寄存器=01/10/11下才能够正常工作;

        5.3)Sleep状态下INH引脚处于高阻状态,此时MCU各级电源可关闭,CAN始终处于Offline状态,无法正常收发通信;

        5.4)在Off状态与Overtemp状态下SPI都无法正常通信,在Sleep状态仅在VIO供电正常的情况下才可以通信,且通信速率不能太高;

        5.5)仅在StandbySleep状态下才检测唤醒事件,即仅在CAN处于Offline模式下才能够开启唤醒事件的检测;

内部CAN Mode两种类型

TJA1145内部集成的CAN收发器存在四种状态:ActiveListen-OnlyOfflineOffile Bias状态。存在如下两种基本组合:

TJA1145处于Normal状态时,CAN收发器状态取决于CMC寄存器值,如进入Offline或者Active或者Listen-only等;
TJA1145处于Standby或者Sleep状态,则CAN收发器始终处于Offline状态;

CAN Active Mode

CAN收发器在此模式下能够正常发送或接收数据;
CMC=0x01时,CAN收发器处于Active状态,VCC低压检测使能,如果出现VCC电压异常,就会直接切换到CAN Offline或者Offline Bias状态;
CMC=0x10时,CAN收发器处于Active状态,且VCC电压检测被抑制,如果出现VCC电压异常,不会影响到CAN Active正常切换;(实际应用过程中优先统一配置成CMC=0x10,以降低状态不断反复切换)

CAN Listen-only Mode

该模式下CAN发送器被关闭,当TJA1145处于Normal状态且CMC=0x11时,CAN收发器状态就会处于Listen-only状态;
在该模式下如果TJA1145处于Normal状态且CMC=0x1,同时VCC电压低于90%,那么就会始终在这个Listen-Only状态

CAN OfflineOffline Bias Mode

CAN Offline模式下CAN收发器便会检测CAN总线以查看是否存在唤醒事件,同时CWE=1CAN HCAN L始终偏置接地;
CAN Offline Bias Mode下也会检测CAN总线是否存在唤醒事件,只不过CAN HCAN L会偏置2.5V,当超过一段事件总线没有活动,便会回归至CAN Offline模式下;
TJA1145切换至Standby或者Sleep状态则会直接切换成此状态;
TJA1145状态为NormalCMC=0x0,则会将状态切换成CAN Offline模式;
TJA1145状态为NormalCMC=01同时VCC<90%,则也会将状态切换成CAN Offline模式;

CAN Off Mode

TJA1145状态为Off状态或者Overtemp状态时;
Bat电压低于CAN接收器某个特定阈值电压时,当BAT电压回升至某个特定阈值时,便会进入到CAN Offline模式下

CAN总线波特率以及位同步

首先了解一下CAN总线系统中的两个时钟:晶振时钟周期CAN时钟周期

晶振时钟周期:是由单片机振荡器的晶振频率决定的,指的是振荡器每振荡一次所消耗的时间长度,也是整个系统中最小的时间单位。

CAN时钟周期CAN时钟是由系统时钟分频而来的时间长度值,实际上就是一个时间份额Tq

CAN每一位数据位宽都由CAN控制器的N个时钟周期组成,该时钟周期则为最小的时间单位Tq (Time Quantum) NTq被分为四段:同步段(SS)、传播时间段(PTS)、相位缓冲段1PBS1)、相位缓冲段2PBS2,而采样点位置处于PBS1PBS2的交界处。

同步段SS:Synchronization Segment):CAN网络中的所有节点,在接收一位数据时,以此段作为位起始的参考点,进行下降沿的检测,统计下降沿基于SS段的偏移,然后进行位时序的调整,使接收趋于同步(下降沿在理想情况下应出现在SS段)。注意,进行位时序调整的条件是检测到下降沿,若无下降沿则不进行调整

传播时间段PTS:Propagation Time Segment):CAN总线上数据的传输会受到物理延迟,比如发送单元的发送延迟、总线上信号的传播延迟、接收单元的输入延迟等,PTS段就是用来补偿这些因素产生的时间延迟。而PTS段长度至少应为这些因素产生的时间延时的2倍,PTS段长度至少为1Tq

相位缓冲段1PBS1:Phase Buffer Segment 1):若下降沿延后NTq,且延迟不大于同步跳转宽度,使得原本位时序中采样点位置提前NTq,则需要对PBS1段增加NTq数(使采样点位置延后NTq),吸收这段误差。PBS1段长度至少为1Tq

相位缓冲段2PBS2:Phase Buffer Segment 2):若跳变边沿提前NTq, 且不大于同步跳转宽度,使得原本位时序中采样点位置延后NTq,则需要对上一个位时序的PBS2段减少NTq数(使采样点位置提前NTq),吸收这段误差。PBS2段长度至少为2Tq

同步跳跃宽度SJW: reSynchronization Jump Width):SJWPBS1增加或PBS2减少的最大Tq数。只能为1~4Tq

CAN同步的策略:CAN同步是以位为单位,每接收一个下降沿,则进行一次同步。发送单元以约定好的位时序进行数据发送。接收单元根据总线上接收到的下降沿进行位时序同步。

发送节点和接收节点作为互相独立的硬件个体,时钟频率误差、传输路径上的(电缆、驱动器等)相位延迟等都会引起时序偏差。因此接收单元需通过硬同步或者重同步的方法进行位时序调整。

硬同步接收单元在总线空闲状态检测出第一个下降沿时(对应报文的SOF下降沿)进行的同步调整。在检测到SOF的下降沿时,直接将此下降沿的位置认为是SS段,然后按照位时序对信号进行采样,达到同步的效果

重同步只是在总线空闲时检测出下降沿(帧起始)时进行。在接收过程中检测出总线上的下降沿来临时,根据SJW设置值通过加长PBS1段,或缩短PBS2段,以调整同步。但如果发生了超出SJW值的误差时,最大调整量不能超过SJW值。

同步前下降沿延后2Tq

同步后PBS1增加2Tq

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值