什么是唤醒标志Wake flag?AUTOSAR架构下CanTrcv休眠唤醒问题再探

电子说

1.3w人已加入

描述

正文

1.收发器硬件唤醒功能

1.1 什么是唤醒标志Wake flag

TJA1043收发器供电正常(供电不正常也会切换收发器状态)时候的硬件状态切换条件有三个硬件信号组成:

 STB_N(低有效,拉低进入到Standby状态)

EN引脚(拉高,使能收发器)

 Wake flag

STB_N和EN就是收发器的两个IO引脚,Wake flag啥了?

收发器

TJA1043收发器内部有很多硬件Internal flags,这里我们着重介绍下唤醒相关的UVNOM和Wake flag.

收发器

1.1.1 UVNOM flag

以下两种场景会置位UVNOM flag:

 VCC < Vuvd(VCC), 维持时间超过 tdet(uv)(100ms~350ms)

 VIO < Vuvd(VIO) 维持时间超过 tdet(uv) (100ms~350ms)

收发器

收发器

UVNOM置位后的动作:TJA1043收发器进入到Sleep Mode

以下场景会清除UVNOM:

 任何唤醒行为, 设置Pwon flag

 STB_N 引脚出现LOW-to-HIGH变化

 VCC 和VIO 都恢复。 CAN transceiver会基于引脚STB_N 和EN当前状态切换到对应的状态

收发器

1.1.2 Wake flag

以下场景置位Wake flag:

 收发器硬件检测到本地唤醒事件(Wake Pin由低到高)

 收发器硬件检测到远程唤醒事件(Wake pattern)

置位Wake flag后的动作:

 清除UVNOM及对应的Timer

以下场景会清除Wake flag:

 UVNOM被设置

 收发器进入Normal Mode

收发器

收发器

1.2 什么是本地唤醒和远程唤醒

1.2.1 本地唤醒

收发器

WAKE引脚上电压水平由低到高或者由高到低,并且新切换的电平维持至少twake的时间。

收发器

1.2.2 远程唤醒

当CAN总线上收到一个完整的Wake-Up Pattern (ISO 11898-2) 会远程唤醒TJA1043收发器。

一个完整的WakeUp Pattern如下图所示,至少在tto(wake)bus这段时间内收到显性位(0)-隐性位(1)-显性位(0),显性位的持续时间大于等于twake(busdom)隐性位的持续时间大于等于twake(busrec)。

收发器

1.3 收发器的ERR_N引脚

顾名思义,ERR_N引脚好像是用来标识TJA1043收发器的错误状态的,但不仅仅如此。

收发器

通过ERR_N可以检测Internal flag. 以Wake flag为例,Wake flag置位后可以通过ERR_N引脚来检测Wake flag有没有被置位。

收发器

也就是说,TJA1043收发器的本地唤醒可以通过WAKE引脚来检测,远程唤醒可以通过ERR_N引脚来检测。

注意:一般收发器在Sleep模式下等待唤醒事件,如果发生远程唤醒,则:

 STB_N引脚低电平

 EN引脚为高电平

 Wake flag set

这个时候如果软件要检测唤醒事件,应该同时检测STB_N引脚及ERR_N引脚,也就是说STB_N引脚既当输出引脚又是输入引脚。

2. CanTrcv模块检测唤醒事件






审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分