首页 > 解决方案 > 在 LIN Slave 传输的帧通过 CAPL 到达 Master 之前应用审查

问题描述

在我目前的设置中,我有一个 LIN 主机和一个 LIN 从机。调度表是无条件的,从不重新协商:

  • 主框架

  • 从属帧

  • 从属帧

我正在使用物理总线和模拟主(物理从)。我的目标是对某些 LIN 帧进行实时审查。

例如,我知道来自 Master 的请求(可能是单帧或多帧)将触发特定的 Slave 响应。我想捕捉这个响应,比如在 CAPL 脚本中,对内容进行检查并对其应用选择性审查,以便主接收的帧不会说明从站首先传输的内容。当没有发送 Master 请求时,Master 和 Slave 都继续发送空帧以完成调度表。

我可以使用不透明的 CAPL 轻松“捕捉”帧,但我不确定如何重新传输它。

根据output()关键字文档:

重新配置 LIN 帧的响应数据。在这种情况下,RTR 选择器必须设置为 0。LIN 硬件使用新配置的数据响应指定帧的下一个请求。

我不想在传输中添加一条消息的延迟。鉴于以下限制,我不知道如何做到这一点,或者是否可以使用 CANoe 中的 CAPL API:


拒绝伪代码:

on linFrame 0x01    // <-- slave frame
{
    if( payload I'm looking for )
    {
        // edit payload content
    }
    output(this)
}

标签: buscaplcanoe

解决方案


特别是从

原始的 Slave 回复绝不能到达 Master。

您必须在物理上断开 Master 和 Slave 并将 CANoe 置于其间

您将需要一个具有(至少)两个 LIN 通道的网络接口——一个连接到主机,一个连接到从机——并且需要将 CANoe 设置为这两个通道之间的网关。即作为对奴隶的主人和对主人的奴隶。

在您的网关实现中,您可以对主从之间交换的消息做任何您想做的事情。

可行但没那么有趣。


推荐阅读