我设计了一个使用 S32K144 的 LIN-LIN 网关(对于 ARM 2.2 的 IDE 是 S32DS),LIN1 作为从站运行,LIN2 作为主服务器。LIN1 接收到的一些帧应该通过 LIN2 转发给从站,但我发现当接收到 Go-to-sleep 帧时,LIN2 无法将其发送给从站,有什么建议吗?
您好,
当 LIN1 收到进入休眠状态的帧时,您的网关固件应检测到该帧(按 ID 和内容)。然后,手动触发 LIN2 使用其主计划或通过 API 调用(例如 lin_DRV_gotoSleepMode ())发送进入睡眠的帧。
如果 LIN2 使用计划表,则添加一个条件条目,当标志设置时发送一个休眠帧。当 LIN1 收到睡眠帧时,在网关逻辑中设置此标志。
除非总线处于空闲状态或处于特定状态,否则 LIN 堆栈可能不允许动态发送进入休眠状态的帧。确保
- LIN2 不忙或处于错误状态。
- 您不是要在正在进行的计划中发送帧。
BR, Petr