This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[FAQ] [参考译文] [常见问题解答]什么是 WUP?CAN 收发器如何在总线上发送和接收 WUP?

Guru**** 649970 points
Other Parts Discussed in Thread: TCAN1043A-Q1
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1167984/faq-what-is-a-wup-and-how-does-a-can-transceiver-send-and-receive-a-wup-on-the-bus

主题中讨论的其他器件:TCAN1043A-Q1

简介                                         

任何具有抑制(INH)引脚的 CAN 收发器也将具有睡眠模式。 INH 引脚的目的是能够自动关闭 MCU/板的稳压器。  只要 CAN 器件进入睡眠模式、这将使整个 ECU 板进入最低功耗状态。 在接下来的讨论中、我将参考我们最简单的具有睡眠模式的 CAN 收发器 TCAN1043A-Q1。 一旦 CAN 器件被置于睡眠模式、它有2种方法可以退出睡眠模式。 第一种方法是通过引脚状态更改。 TCAN1043A-Q1等器件具有 EN 引脚和 NSTB 引脚。 通过更改这些引脚的逻辑状态、您可以退出睡眠模式。  

 另一种退出睡眠模式的方法是通过唤醒源。 TCAN1043A 有两个唤醒源、一个是通过 WAKE 引脚实现的本地唤醒(LWU)、另一个是 CAN 总线上的唤醒模式(WUP)。 如果 WAKE 引脚在引脚上看到下降沿或上升沿、它将触发 LWU 并将器件转换为待机模式。 TCAN1043A 上的另一个唤醒源是通过总线的 WUP。 当 TCAN1043A 进入睡眠模式时、它会禁用其高速接收器并启用一个低功耗接收器、该接收器旨在仅响应 WUP。

什么是唤醒模式?                            

WUP 是一个滤波显性脉冲、后跟一个滤波隐性脉冲、后跟一个滤波显性脉冲。

在这种情况下进行滤波意味着脉冲必须持续一定的时间。 该器件正在滤除任何过短的脉冲。 对于 TCAN1043A、滤波时间为:

因此、如果显性脉冲或隐性脉冲短于1.8us、则可以将其滤除。 如果有被过滤掉的脉冲、它们不会影响 WUP 识别。 例如、如果接收到已过滤显性、则该器件将等待最终已过滤显性以完成 WUP。 如果一个显性脉冲进入的时间太短、器件将忽略它、它仍将等待最后一个滤波显性脉冲。 一旦器件检测到最终的滤波显性脉冲、它将自动从睡眠模式转换到待机模式。

如何在总线上发送唤醒模式               

在讨论如何在 CAN 总线上发送 WUP 之前、请记住、在大多数应用中、CAN 收发器的 TXD 和 RXD 连接到 CAN 控制器。 大多数情况下、它不会连接到 MCU、您可以在滤波时间内将 TXD 切换为低电平和高电平。 这意味着您必须通过加载到 CAN 控制器上的显性位和隐性位发送 WUP。  对于大多数系统设计人员而言、这意味着通过 CAN 消息在总线上发送 WUP。

现在、我们如何知道 CAN 消息中是否包含 WUP? 如果我们的滤波器时间最大为1.8us、则最短位时间必须为1.8us、才能将其视为滤波脉冲。 1.8us 的位时间可达到大约555kbps。 这意味着、如果您以低于555kbps 的速度发送任何 CAN 消息、则每位将被视为一个已过滤位、并且您的器件将在整个消息中接收多个 WUP。 现在、如果您以快于555kbps 的速度进行通信、您将需要连续多个显性位来形成滤波显性脉冲。 您还需要一行多个隐性位来生成滤波的隐性脉冲。 因此、根据消息的设置方式、您可以拥有多种速度快于555 kbps 的 WUP。 但是、如果您使用 CAN FD、在大多数情况下、您的 WUP 将在仲裁阶段进行、此时的速度要慢得多。  

如何在总线上接收唤醒模式              

既然我们知道常规 CAN 消息可以通过 WUP 唤醒 CAN 收发器、那么让我们来看看设计人员如何利用这种消息来获得优势。 如果您想唤醒器件、只需以500kbps 的速率发送一个"虚拟"CAN 帧 、以确保您的器件处于唤醒状态。 但是、这会产生低效、 尤其是在 CAN 收发器从未进入睡眠模式且仍处于正常模式的情况下。 因此、系统设计人员所做的是、他们反复发送目标 CAN 帧、直到目标 CAN 收发器 ACKS 并接收该消息。 让我们来看看这可能是如何工作的。 如果您的 CAN 收发器处于正常模式且处于唤醒状态、则会接收到第一条 CAN 消息并进行 ACK 编辑 发送原始 CAN 帧的 CAN 控制器将看到 ACK 并停止发送该帧。

现在、如果您的 CAN 收发器处于睡眠模式、发送的第一个 CAN 帧将包含 WUP、您的器件将转换为待机模式。 CAN 控制器将看到 NACK、并将自动再次发送消息。 这称为自动重传、是 许多 CAN 控制器的一个常见功能。 现在、当 CAN 控制器自动重新传输时、CAN 器件需要等待 INH 引脚打开稳压器、等待 MCU 初始化、然后等待 MCU 将其转换为正常模式。 这段时间、CAN 控制器已经发送了任意数量的等待确认的消息。 由于初始化时间是可变的、因此无论何时退出睡眠模式、都必须发送的 CAN 消息数量也是可变的。 这就是自动重传如此有用的原因。 无论 CAN 收发器进入正常模式和 ACK 需要多长时间、CAN 控制器都将继续发送该消息。 当 CAN 收发器最终处于正常模式时、它将能够最终接收到为其准备的消息、并可从该消息继续。

 

如果您对 WUP 有任何其他问题、请随时将该问题发布到该论坛、我们的一位应用工程师将与您联系。