【发布时间】:2018-11-10 15:50:32
【问题描述】:
我目前正在从事一个需要从汽车轮速传感器(4 个霍尔效应速度传感器)收集数据的项目。这些传感器连接到负责 ABS/ESP/稳定性控制等的汽车 ECU。
为了从 ECU 中提取数据,我需要使用特定的 PID(参数 ID)发出请求,并且知道如何解码/计算答案以提取任何有意义的数据。不幸的是,汽车制造商似乎并未公开此类信息。 到目前为止,我已经订购了 arduino CAN BUS 屏蔽和 OBD2 到 RS232 电缆以进行物理连接。 我曾尝试使用能够提取这些参数的专用硬件/软件(成本超过 1500 欧元),但不幸的是它缺少日志记录功能。我尝试使用 Wireshark 来嗅探调用的 PID,但也没有运气。 如果你们有任何想法、问题或建议,请写下来。 我乐于接受批评,并且知道我可能会遗漏一些重要的东西。 谢谢。 附言这是我正在进行的一个大学项目。我需要来自轮速传感器的数据样本,并进一步计算数据样本,目的是研究动态道路场景中的汽车安全和行为。
【问题讨论】:
-
您是否在问如何在汽车的专有 CAN 总线上嗅探数据包?该信息受到汽车制造商的谨慎版权保护,即使有人有办法对此进行解码,他们也不会将其发布在公共论坛上,抱歉。 :) 我建议删除这个问题。
-
我们可以帮助您读取 CAN 有效负载,或帮助您处理通用 UDS 请求以获取 PID/DID 信息。即使您从 OBD2 工具对 PID(它们是 DID,而不是 PID)进行逆向工程,您也需要将 DID 内容转换为物理值的计算方法。这就是“公司机密”。
-
我想知道是否真的可以找到 PID 和转换 DID 的计算方法。由于许多 PID 是公开的(例如,我发现 100 多个 PID 用于更通用的东西,例如:发动机转速、车速等)我认为其他 PID 也可能是公开的,但我没有找到它们。如果它们受汽车制造商的版权保护,那么我将寻求其他收集数据的方法。也许通过滤波电路或类似的东西将速度传感器直接连接到 MCU。反正。谢谢你的评论。在这一点上,任何信息都是有帮助的。 :)
-
在您触发来自 OBD 的请求后,您可以在 OBD 工具的帮助下猜出 PID,在其中捕获带有服务 22 的消息(DID 读取)。那么22之后的2个字节就是DID。他们应该报告的内容,他们的计算方法只是猜测。