gpt4 book ai didi

c - 检测 CAN 总线错误的合适方法是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:07:37 25 4
gpt4 key购买 nike

我正在与使用 CAN 总线协议(protocol) (J1939) 发送数据的电池通信。我使用 PIC 18F26K83。我的目标是在显示器上显示剩余电量。例如,我在 60 个数组中有值 %99,在其中 40 个中有 %1,那么我将显示 %99)。但是,它看起来不像是一个可靠的解决方案,因为我不知道我收到了多少垃圾数据。请注意,我不能使用一些错误检测算法,例如校验和,因为我无法访问电池中的微 Controller ,我只能使用接收器端(显示器)。编辑:我知道 CAN 总线中的 CRC,但似乎有时它不起作用,因为有时我会收到垃圾。

最佳答案

是的,您可以使用 CRC 计算,因为 CRC 也在接收端由通信 Controller 计算。例如,这就是检测 CRC 错误的方式。详细说明:

电池发送完整信息;消息在物理层上受到干扰;接收方(您的 PIC)接收消息并计算其上的 CRC; 不匹配消息中包含的 CRC 标记;PIC CC 将有一个 REC 错误 +1,并且不会向电池确认消息。

您将在接收方检测到每种类型的 CAN 消息错误,但位错误除外,这也是无关紧要的,因为它会导致消息不完整。

基本上,您不应该能够依赖接收到的 CAN 消息内容来推断电池电量,如果消息已损坏(垃圾)。它在到达您的 PIC 的应用层之前被简单地丢弃。

关于c - 检测 CAN 总线错误的合适方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54663427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com