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.
您好! 我有问题要寻求建议
使用 F2803x CPU 和 ISO1050DW 、对于 CPU、CAN 是全双工、而对于 ISO1050、它是半双工吗?
我们发现了一个很小的帧信息丢失可能性、即节点在发送消息之前无法从总线接收一个数据帧、并且这两个信息帧在总线上持续出现
是否存在两个节点同时发送一帧信息的情况? 当节点 A 的 ISO1050处理发送信息时、节点 B 首先抢占总线。 节点 A 正在等待发送的信息正在等待 ISO1050中的总线空闲、并且 ISO1050当前已被占用。 它是否能够正确地从节点 B 接收信息? 还是会丢弃该信息帧?
最棒的地方!
您好!
感谢您的联系。
我们目前正在对此进行调查、并将在接下来的24小时内与您联系。
此致、
肯尼斯
您好!
感谢您的耐心。
对于 CPU、使用 F2803x CPU 和 ISO1050DW、可以是全双工、而对于 ISO1050、是半双工吗?
CAN 总线本身是半双工总线。 使用 ISO1050时、从 MCU 发送到 CAN 总线的任何消息也将在一段特定的时间后反映在器件的 RXD 引脚上。
是否存在两个节点同时发送信息帧的情况?
这种情况的可能性取决于应用。
节点 A 正在等待发送的信息正在等待 ISO1050中的总线空闲且 ISO1050当前被占用。 它是否能够正确地从节点 B 接收信息?
如前所述、使用 ISO1050的 TXD 引脚从 MCU 发送到 CAN 总线的任何信息都可以在一段特定的时间后在器件的 RXD 引脚上读取。 从 MCU 发送到 CAN 总线的数据反映到 ISO1050的 RXD 引脚上所需的时间称为环路延迟、可以在器件数据表的第6.8节中找到该时间。
此致、
肯尼斯
肯尼思,
与客户交谈过、总线上有大约20个 CAN 注释、 所有 CAN 注释 ID 是相同的、 当两个 CAN 注释几乎同时发送帧数据时发生问题、这两个 CAN 注释(让我们命名为 CAN 注释 A、 和 B)数据帧可以成功地传输一个在总线上, 可以注意到 A 发送首先, 可以注意 B 发送其次,其他可以注意到可以接收这两个帧数据, 但 CAN Note B 无法从 CAN Note A 接收帧数据、并丢失了该数据。
我们认为、可能有 两个 CAN 注释同时发送具有相同 ID 的数据、在这种情况下将无法进行仲裁、因为两个 CAN 注释中的数据是不同的、 然后总线上会有位错误并会生成错误帧、因此这可能仍无法解释客户看到这种现象的原因。
在他们的代码中、设置了三个邮箱来接收同一 ID 的数据、并且 不允许覆盖数据。
为什么备注 B 会丢失数据?
您好、Zhang:
感谢增加的输入。
据我所知、应用中设置了一个 CAN 节点集、以从特定 ID 接收数据。 此 ID 对应于两个节点、这两个节点都在响应数据并将数据发送到总线。 您已经注意到、这将导致数据包出现问题、因为两个节点尝试使用相同的空间。
我们认为,可能有 两个 CAN Note 同时发送具有相同 ID 的数据,在这种情况下将无法进行仲裁,因为来自两个 CAN Note 的数据是不同的, 然后总线上会有位错误并会生成错误帧、因此这可能仍无法解释客户看到这种现象的原因。 [/报价]当总线由多个节点驱动时、可能会产生无法预测的结果。 这可能是位错误或数据包丢失(或其他影响)、具体取决于驱动器的驱动强度和阻抗。 如果节点 A 更靠近接收器或驱动强度更强、则可能会使节点 B 过载、对于节点 B、该节点 B 数据包将"丢失"。
我希望这对您有所帮助。 如果您还有其他问题、敬请告知。
此致!
安德鲁
Kenneth 和 Strong
感谢您的回答
补编:
PCAN(PCAN SYSTEM Technik GmbH)可以从两个节点接收正确的数据。 在总线上、节点 A 的数据首先出现、然后是节点 B 的数据。 节点 B 未从节点 A 接收数据、节点 A 可从节点 B 接收数据、而其他节点可从节点 A 和节点 B 接收数据。
此致
您好!
感谢您提供有关此问题的其他信息。
根据您 和 Strong 在之前的帖子中分享的信息、似乎 设计中的所有 ISO1050器件都在 逻辑和 CAN 总线信号之间正确转换。 因此、我不认为 ISO1050本身会导致节点 B 上观察到的通信错误。
为了确定此问题的原因、我建议您查看 设计的软件部分、以确定 仲裁前后 CAN 总线事务发生的情况。 该通信错误可能是由软件问题引起的、因为您提供的信息表明所有 ISO1050器件在设计中都正常运行。 有关如何在 CAN 总线上确定消息优先级的一些附加信息、请参阅本应用手册的第4部分: https://www.ti.com/lit/an/sloa101b/sloa101b.pdf。
此致、
肯尼斯