在 LIN 从站传输的帧通过 CAPL 到达主站之前对其应用审查

Apply censorship to LIN Slave transmitted frames before they reach Master via CAPL

在我当前的设置中,我有一个 LIN 主机和一个 LIN 从机。时间表 table 是无条件的,从未重新协商:

  • Master Frame

  • Slave Frame

  • Slave Frame

我用的是物理总线和模拟Master(物理Slave)。我的目标是实时对某些 LIN 帧应用审查。

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

我可以很容易地 "catch" 使用非透明 CAPL 的帧,但我不确定我将如何重新传输它。

根据 output() 关键字文档:

To reconfigure response data of LIN frame. In that case RTR selector has to be set to 0. The LIN hardware responds to the next request of the specified frame with the newly configured data.

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


拒绝的伪代码:

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

特别是

The original Slave reply must never reach the Master.

你必须在物理上断开Master和Slave的连接,并将CANoe放在它们之间

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

在您的网关实现中,您可以随心所欲地处理主从之间交换的消息。

可行但没那么有趣。