【发布时间】:2019-02-13 05:53:23
【问题描述】:
我正在与使用 CAN 总线协议 (J1939) 发送数据的电池通信。我使用 PIC 18F26K83。我的目标是在显示屏上显示剩余的充电状态。例如,我在 60 个数组中有值 %99,在其中 40 个数组中有 %1,然后我将显示 %99)。但是,它看起来不像是一个可靠的解决方案,因为我不知道我收到了多少垃圾数据。请注意,我不能使用一些错误检测算法,例如校验和,因为我无法访问面糊中的微控制器,我只能使用接收端(显示器)。 编辑:我知道 CAN 总线中的 CRC,但有时它似乎不起作用,因为有时我会得到垃圾。
【问题讨论】:
-
" 对于 99 60 个数组中的 %1 和 40 个数组中的 %1,我将显示 99)" 嗯?我不明白你在做什么。
-
我不知道您如何以编程方式执行此操作,也不知道您究竟想以编程方式执行什么操作,但通过使用 CANalyzer(无意推广)工具,您可以分析任何内容你正在上你的 CAN 总线。
-
@Lundin 例如,我以 100 的数组大小收集接收到的数据。假设我在 400 毫秒内收到数据 99,这使得数组 99 的前 40 个元素成为数组 [1],....array[40] =99,并且在 600 毫秒内我收到的所有数据都是 1:数组 [41 ],....数组[100] =1。在这种情况下,我会认为数据是 1,我会显示它。
-
@JoeyMallone 显然你应该使用 CANanalyser 而不是 CANalyser :) 这些工具的名称如此富有想象力。除非您为 Ixxat 或 Vector 工作,否则只需调用他们的 CAN 侦听器 :)
-
@Lundin,我不知道。
:),除了我对其他非Vector CAN 分析器的了解有限。
标签: c algorithm embedded pic can-bus