我一直在研究 SJA1110-EVM 板,并编写了软件来读取主机处理器 (Cortex-M7) 上的某些帧。为此,我使用了板提供的“hello world”示例,并以此为基础构建了应用程序。
我当时使用的是带有 Autosar-RTD 的 S32DS。
现在我换用了另一块同样使用 SJA1110 的板。然而,它使用的是所述开关的不同版本(Rev.D)。我确保调整了配置。
但是,我无法在主机处理器上接收到任何应该被捕获到主机的帧。我正在通过 L2 输入并设置陷阱标志来捕获帧。我确保 L2 入口确实用于我要捕获的帧。此外,我还确保启用了滥交模式。我也可以从主机发送帧。根据统计信息,应该接收的帧没有被丢弃,但在进入交换机后仍然消失了(所以 L2 规则有效,但它们从未到达主机端口??)。
我不太确定如何进一步缩小问题范围,以及如何确认或排除任何硬件问题。
你好@flxwly ,
请问您是在 SJA1110-MGS-EVM 上使用 SJA1110D,还是在您自己的定制板上使用 SJA1110D?
最初的 SJA1110-EVM 基于 SJA1110A,而较新的 SJA1110-MGS-EVM 则使用 SJA1110D。同时,SJA1110 系列被描述为引脚兼容和软件兼容,因此我不认为陷阱到主机的概念本身在不同版本之间会有所不同。这使得特定电路板的配置不匹配比通用的 Rev. D 限制更有可能发生。
请确保 EthTrcv_43_PHY 配置已相应调整,并且 PHY 实例已在 EthSwt_43_SJA11XX 中正确映射。请同时确认 EthSwt_43_SJA11XX 中的 MACConfigurationTable 是否已更新,以匹配您实际的板拓扑结构。未使用的端口应禁用。
如果可以,请也分享您的 .mex 文件。文件以便我们查看配置。
顺祝商祺!
帕维尔
你好@PavelL ,
感谢您的快速回复。我好像已经修好了。看来我没有正确配置默认 VLAN 0。但我仍然好奇为什么我可以使用 L2 条目将帧路由到其他端口,但不能路由到主机。
我自己的定制板使用的是 SJA1110D。我已附上.mex文件。我正在使用 S32SDK_SJA1110_RTM_1.0.0。
此致,
尼波穆克
你好@flxwly ,
是的,这种行为符合 VLAN 成员过滤机制。
L2 条目可能仍然匹配并选择转发目标,但帧只会传递到相应 VLAN 的成员端口。如果默认 VLAN 0 配置不正确,则转发到其他端口可能仍然有效,但主机端口无法接收帧,因为它未包含在 VMEMB_PORT 中。
我已审核您的 .mex 域名。除了 VLAN 0 的更正之外,您还可以考虑禁用 MACConfigurationTable 和 L2 Forwarding Table 中所有未使用的端口,以便配置尽可能与您的实际板拓扑结构相匹配。
顺祝商祺!
帕维尔
你好@flxwly ,
请注意:一旦某个答案被标记为解决方案,我们的系统将不再主动跟踪原始查询。我只接收更新订阅邮件,偶尔会错过一些。
如果您需要进一步的帮助,最好的方法是创建一个新的查询。
顺祝商祺!
帕维尔
你好@PavelL ,
非常感谢。现在一切运行正常。关于带内控制扩展,我还有一个问题。主机端口(0)是否包含在带有尾部的主机到交换机帧的尾部中?UM11107 文档 5.8.2.1 节中没有说明端口应该如何设置。我假设每个端口一位。此外,预告片信息似乎并没有完全删除。
顺祝商祺!
尼波穆克