汽车ECU休眠唤醒概念:三种场景
1. 冷启动式休眠唤醒:
2. CAN休眠唤醒
3. CAN与MCU休眠唤醒
CAN收发器识别到有效唤醒源后能够产生一个中断唤醒MCU
CAN干扰问题
一般CAN收发器的抗共模干扰能力是-12~7V,超过这个差值则出现错误,如果共模差超过±36V,烧毁收发器或者电路板。增加隔离模块后,隔绝了地回流,限制了干扰幅度
在CAN的应用场合,由于距离一般都较远,所以大部分采用屏蔽层单点接地的原则,在干线上找一点将屏蔽层用导线直接接地,该点应是所受干扰最小的点,同时该点位于网络中心附近
CAN收发器TJA1145介绍:
TJA1145特点:
Wake pin是上升沿还是下降沿唤醒寄存器可配,不使用时接地
TJA1145内部供电细节:
TJA1145唤醒方式
TJA1145的控制过程
TJA1145 Mode的控制
针对TJA1145的控制过程可分为TJA1145 Mode的控制以及内部CAN Mode两种类型。
TJA1145 Mode,在TJA1145内部存在一系统控制器包含如下五种运行状态机:Normal,Standby,Sleep,Overtemp,Off状态
1.Normal: 该模式下TJA1145处于全功能模式下,所有功能均可用,可通过MC=111从Standby或者Sleep状态切换至Normal状态;
2.Standby: 该模式下TJA1145处于低功耗状态,不能够正常收发数据,但是INH引脚可以始终保持拉高状态;如果此时寄存器CWE=1,那么此时会持续监控总线电平状态,如果寄存器CPNC=PNCOK=1,那么就开启了特定帧唤醒,否则就是标准CAN唤醒
3. Sleep: 该模式下TJA1145处于最低功耗状态下,且不能正常收发数据,同时INH引脚处于高阻状态,电源供电一般会通过该引脚进行拉低关闭输出。其状态变化存在如下几种可能:
3.1)一个有效唤醒源或者中断事件(除去SPI故障事件)或者SPI指令(SPI通讯速率不能过高)可以唤醒TJA1145从Sleep状态切换至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)仅在Standby与Sleep状态下才检测唤醒事件,即仅在CAN处于Offline模式下才能够开启唤醒事件的检测;
内部CAN Mode两种类型
TJA1145内部集成的CAN收发器存在四种状态:Active,Listen-Only,Offline,Offile Bias状态。存在如下两种基本组合:
CAN Active Mode
CAN Listen-only Mode
CAN Offline与Offline Bias Mode
CAN Off Mode
CAN总线波特率以及位同步
晶振时钟周期:是由单片机振荡器的晶振频率决定的,指的是振荡器每振荡一次所消耗的时间长度,也是整个系统中最小的时间单位。
CAN每一位数据位宽都由CAN控制器的N个时钟周期组成,该时钟周期则为最小的时间单位Tq (Time Quantum) ,这N个Tq被分为四段:同步段(SS)、传播时间段(PTS)、相位缓冲段1(PBS1)、相位缓冲段2(PBS2),而采样点位置处于PBS1和PBS2的交界处。
同步段(SS:Synchronization Segment):CAN网络中的所有节点,在接收一位数据时,以此段作为位起始的参考点,进行下降沿的检测,统计下降沿基于SS段的偏移,然后进行位时序的调整,使接收趋于同步(下降沿在理想情况下应出现在SS段)。注意,进行位时序调整的条件是检测到下降沿,若无下降沿则不进行调整
传播时间段(PTS:Propagation Time Segment):CAN总线上数据的传输会受到物理延迟,比如发送单元的发送延迟、总线上信号的传播延迟、接收单元的输入延迟等,PTS段就是用来补偿这些因素产生的时间延迟。而PTS段长度至少应为这些因素产生的时间延时的2倍,PTS段长度至少为1个Tq。
相位缓冲段1(PBS1:Phase Buffer Segment 1):若下降沿延后N个Tq,且延迟不大于同步跳转宽度,使得原本位时序中采样点位置提前N个Tq,则需要对PBS1段增加N个Tq数(使采样点位置延后N个Tq),吸收这段误差。PBS1段长度至少为1个Tq。
相位缓冲段 2 ( PBS2:Phase Buffer Segment 2 ):若跳变边沿提前 N 个 Tq , 且不大于同步跳转宽度,使得原本位时序中采样点位置延后 N 个 Tq , 则需要对上一个位时序的 PBS2 段减少 N 个 Tq 数(使采样点位置提前 N 个 Tq ),吸收这段误差。 PBS2 段长度至少为 2 个 Tq同步跳跃宽度(SJW: reSynchronization Jump Width):SJW为PBS1增加或PBS2减少的最大Tq数。只能为1~4个Tq
CAN同步的策略:CAN同步是以位为单位,每接收一个下降沿,则进行一次同步。发送单元以约定好的位时序进行数据发送。接收单元根据总线上接收到的下降沿进行位时序同步。
发送节点和接收节点作为互相独立的硬件个体,时钟频率误差、传输路径上的(电缆、驱动器等)相位延迟等都会引起时序偏差。因此接收单元需通过硬同步或者重同步的方法进行位时序调整。
硬同步接收单元在总线空闲状态检测出第一个下降沿时(对应报文的SOF下降沿)进行的同步调整。在检测到SOF的下降沿时,直接将此下降沿的位置认为是SS段,然后按照位时序对信号进行采样,达到同步的效果
重同步只是在总线空闲时检测出下降沿(帧起始)时进行。在接收过程中检测出总线上的下降沿来临时,根据SJW设置值通过加长PBS1段,或缩短PBS2段,以调整同步。但如果发生了超出SJW值的误差时,最大调整量不能超过SJW值。
同步前下降沿延后2个Tq
同步后PBS1增加2个Tq