工具/软件:
尊敬的专家:
客户使用 F280039 MCAN 模块、想知道是否有任何寄存器可以清除所有故障(例如 CRC、ACK 等)、以避免触发总线关闭。 或者、如果客户希望实现此类目标、是否存在任何可能最终阻止 MCAN 进入总线关闭状态的 ISR 或配置?
在数据表中、我找到了以下相关要点、但不确定:
- 用于自检的环回模式
- 可屏蔽中断(两条可配置的中断线路,可纠正的 ECC,计数器溢出和时钟停止或唤醒)
- MCAN_CCCR.INIT
您能提供一些见解吗?
Joyce
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.
工具/软件:
尊敬的专家:
客户使用 F280039 MCAN 模块、想知道是否有任何寄存器可以清除所有故障(例如 CRC、ACK 等)、以避免触发总线关闭。 或者、如果客户希望实现此类目标、是否存在任何可能最终阻止 MCAN 进入总线关闭状态的 ISR 或配置?
在数据表中、我找到了以下相关要点、但不确定:
您能提供一些见解吗?
Joyce
您好 Joyce、
CAN 协议中集成了每个节点上的自动检查功能、以确定 CAN 总线始终处于良好状态、如果在其中一个节点中检测到异常、则会关闭该节点、以便其他节点可以继续运行。 当达到错误阈值 255 时、如果强制进入总线关闭状态、则为节点。 传输错误会使错误计数器递增 8 个计数、对于其他错误、增加一个计数。 如果总误差达到 255、则发送节点将进入总线关闭状态、这样其他节点将有机会通过仲裁请求 CAN 总线、以便其他节点有机会进行通信。 在 CAN 中、如果节点在仲裁中胜出、它将具有控制 CAN 总线的优先级。 较低地址的节点将优先声明总线。 只有具有优先级的节点才会进行发送、除非从任何节点接收到 ACK 信号、否则该节点将继续进行发送。 如果存在传输错误并且节点未置于总线断开状态、则对 CAN 总线具有优先级或控制的节点将无限期地继续发送、从而使其他节点没有机会传输其数据。 这是节点处于总线关闭状态而无法被屏蔽的主要原因。
正确的方法应该是首先确定错误的原因。 客户应检查错误和 LEC 寄存器、以确定主要错误发生的原因并首先进行处理。
此致、
Joseph