您好 TI
我们需要 C/Q 引脚4作为器件的数字输入、该器件将在引脚2上具有模拟输出。
当配置为输入(不作为输出驱动)时、您的 IO-Link 收发器是否支持唤醒检测?
此致
Roman Kellner
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.
您好、Roman、
您的问题的简短答案是、当 EN 引脚为低电平或保持开路时、WAKE 引脚将始终保持高阻态。 CQ 引脚上的任何活动都将反映在 RX 引脚上、包括来自主器件的任何形式的唤醒脉冲。 仅当 EN 引脚为高电平且 TIOL111正在驱动线路时、 收发器是否会监控线路是否存在由于主器件向收发器发送唤醒信号而导致的过流情况、并在 WAKE 引脚上反映过流情况、以指示 MCU 禁用驱动器、以便它可以接收来自主器件的数据。
TIOL111仅使用 IO-Link 标准中定义的唤醒检测来强制状态从 SIO 更改为通信模式。 如果 TIOL111已经处于准备从主器件接收数据的状态、则 MCU 不需要任何操作、因此 WAKE 引脚保持高阻抗状态 数据只能从主器件流向从器件。
现在,为了论坛的利益,我将详细阐述并补充以下内容,作为更详细的答案,因为这个问题是一个反复出现的问题。
首先、什么是唤醒信号、何时使用? 由于 IO-Link 是一种通过单线进行通信的主/从架构、因此在任何给定的时间、只有主/从器件才能发送数据。 在大多数情况下、在传感器应用中、从器件将配置为向主器件发送数据。 但是,如果主设备需要接管通信总线,则需要某种方法来告诉从设备停止发送,并从主动灌电流或拉电流的“驱动”状态(EN =高电平)更改为 到“接收”状态,在该状态下,主器件将 CQ 引脚置于高阻态,并允许主器件沿 CQ 线路发送数据(EN =低电平)。 接收到的数据将通过 RX 引脚传递到 MCU。 如果从器件正在灌电流或拉电流、主器件将检测 CQ 线路的当前状态、并在唤醒脉冲持续时间(通常为80uS)内以超过500mA 的电流将 CQ 线路过驱动至相反的状态。 从器件会检测到电流的这种变化、并将其用作主机希望其停止传输并更改为接收状态的指示。
TIOL111有3种基本功能模式:
在推挽通信模式下、EN 设置为高电平、以便在有数据要传输时启用驱动器、并且 MCU 会沿 CQ 线路将 TX 引脚切换为灌电流/拉电流、从而通过始终启用 N 开关或 P 开关来有效地推挽数据。 当数据传输完成时、EN 引脚通常更改为低电平、以将 TIOL111置于接收状态、从而使其能够接收来自主机的数据。
NPN 和 PNP 配置将 TX 引脚连接为高电平或低电平、并使用 EN 引脚控制开关是否处于活动状态。 通过在“驱动”状态(EN =高电平)和“接收”状态(EN =低电平)之间切换来启用/禁用驱动器,可以有效地完成此操作。
总之、唤醒功能仅在 EN =高电平时才需要、因为当 EN =低电平时、器件已经处于能够接收来自主器件的数据的模式、并且无需唤醒脉冲。
数据表的第8.3.1节将唤醒检测解释如下:
TIOL111可在 IO-Link 模式或标准输入/输出(SIO)模式下运行。 如果器件处于 SIO 模式、并且主节点希望发起与器件节点的通信、则主器件会将 CQ 线路驱动到与其当前状态相反的位置、 并将在 μs 持续时间(通常为80 μ s)内提供灌电流或拉电流(≥500mA)、具体取决于 IO-Link 规范中的 CQ 逻辑电平。 TIOL111会检测到这种唤醒条件、并通过 WAKE 引脚与本地微控制器进行通信。 IO-Link μs 要求器件节点在接收到唤醒信号后在500 μ s 内切换到接收模式。
当 TIOL111的 EN 引脚为高电平时,主器件只需向 TIOL111发送唤醒条件。 如果主器件在 EN =高电平时发送此唤醒脉冲、TIOL111将在 WAKE 引脚上反映此情况、MCU 应通过将 EN 更改为低电平进行响应。 如果 EN 引脚已为低电平且主器件发送唤醒脉冲、则 TIOL111已处于接收模式、因此没有任何响应、并且由于无需更改 EN 引脚、因此它将 WAKE 引脚保持在高阻态(高电平)。
这种行为是 IO-Link 标准中概述的行为。 IO-Link 标准中未概述的是、如果收发器已处于非驱动状态并准备好接收来自主器件的通信、WAKE 引脚应执行的操作。 TIOL111遵循标准中定义的操作、但仅此而已。 如果收发器未驱动线路、是否甚至有唤醒信号由主器件将线路驱动至相反的状态? 主器件已经控制了总线、只需开始向从器件发送数据即可。
其他收发器可能已经为 WAKE 引脚添加了额外的功能、以反映收发器已经处于接收模式时线路上的活动。 但是、这在 IO-Link 标准中没有定义。
TIOL111将唤醒脉冲的用途解释为在驱动器被禁用时强制状态从 SIO 模式变为通信模式的方法。
如果您还想将其用作 MCU 的系统级中断、或指示主器件即将发送数据并计划在每次传输之前具有唤醒脉冲、 然后、TIOL111需要处于 SIO 模式、以便 WAKE 引脚将此类信号传递到 MCU。 否则、主器件已经能够将数据传送到从器件、MCU 应该只使用 RX 引脚上的活动作为来自主器件的数据。 当 TIOL111处于接收模式时、主机的任何唤醒脉冲将始终反映在 RX 引脚上、即使当 EN 引脚=低电平时、也不会反映在 WAKE 引脚上。 MCU 可以将 RX 引脚上的这个初始唤醒脉冲检测为中断、然后自行准备接下来的数据接收。
此致、
Jonathan
你好 Jonathan
感谢详细的解释。
因此、处于输入模式(SIO - DI)时的器件必须在 C/Q 引脚上监听、将其馈送到 UART 中、并将模式解释为预期的任何输入、例如复位、归零、教学、同步或触发脉冲。 一旦 UART 与 IO-Link 堆栈一起识别到 IO-Link 通信的有效启动、器件就会从 SIO 切换到通信模式、因为输入模式不再将脉冲模式解释为普通 DI 信号。
在这种情况下、无需直接使用 TIOL111来检测从 SIO - DI 到 Comm.
此致
罗马