读OBD2太快了


5

我正在编写一个软件,使用ELM327兼容电缆为OBD2的2001 VW Golf mk4读取参数制作遥测应用程序。

到目前为止我成功了。我现在遇到的问题是软件太慢(每秒3-4个值)。有些问题可能出现在我的软件中,有些问题可能是我车内OBD2协议的限制,但我们假设它全部来自我的软件而且我要将它改进到我能够读作的地步。尽可能快。

我在文档中读到了禁止的电缆,对于2002年之前使用OBD2标准的汽车来说,读取的值超过100毫秒appart。这可能是问题可能发生,但它们没有详细说明。

我的问题是:有没有人知道通过从OBD2快速读取信息可能会出现什么样的问题,如果发生这些问题,可以通过移除和重新连接电池终端到汽车来解决?

Answers:


6

ELM文档表明这不是仅查询问题。我在该文件的第31页上看到问题是J1850请求到达OBD系统的速率问题(这是2002年4月更新J1979标准的结果)。具体来说,它们警告您不要以高于100毫秒(也称为每秒10)的速率进行查询,但不提供任何细节。

重要的是要了解您不仅仅是被动地读取数据。正在进行查询 - 响应异步循环。就像我所知,太多的查询太快可能会溢出OBD系统上的传出消息队列。由于这种情况听起来非常像缓冲区溢出问题,因此如果不是整个引擎计算机,对OBD系统造成致命伤害并非不可能。

那是我的怯懦:当然,这是你的车辆。

现在,所有人都说:看起来OBD监控工具可以免费用于Ubuntu。obdgpslogger手册页显示了两个感兴趣的选项:

   -a|--samplerate <samples-per-second>
          Sample at most this many times a second. The software will sleep
          temporarily at the end of each loop if appropriate. Keep in mind
          there is an upper limit to samplerate, typically capped  by  I/O
          on  your  serial  port.  Set  this  to zero to sample as fast as
          possible.  BE WARNED. Values greater than ten here are forbidden
          for  cars  predating April 2002. If you think your car postdates
          early 2002, and you'd like to sample as fast as possible, the -o
          option may help

   -o|--enable-optimisations
          Enable  certain  elm327  optimisations. This will [usually] make
          sampling faster [not a noticeable amount if you're only sampling
          once a second], but makes it much easier to accidentally disobey
          the standard if you're sampling as fast as possible.

从该页面看,您可能实现的最佳实际汇率将来自:

obdgpslogger --samplerate 10 --enable-optimisations

我从文档中得到了相同的结果,但我很惊讶在自动标准中会出现如此草率的问题,比如缓冲区溢出。通常他们的测试制度非常严格。无论如何; 我已经在我的车上测试了,显然它不会让我更快地进行轮询,即使我想要。非常感谢您的投入!
Nicu Surdu 2013年

“但不提供任何具体细节。” 那让我生气,这就是我要找的东西:具体:(
Nicu Surdu 2013年

1
@NicolaeSurdu,公平地说,似乎在2002年4月之前汽车的行为是不确定的。目前尚不清楚第三方能否为您提供有关所有车辆的有用信息,因为他们没有。无论如何,您仍然可以从有限的数据中生成有用的监控系统:例如,卡尔曼滤波器用于自适应插值/外推滤波器:cs.unc.edu/~welch/kalman
Bob Cross

2

您会注意到,大多数OBD软件工具很少显示每个视图超过4或5个输出。在尝试一次读取太多值时,我也遇到了问题。

根据经验,我建议制定一个轮询不同价值观的策略。例如,你真的只需要进行民意调查

  1. 每2秒车辆的速度。
  2. 每1秒转速一次。
  3. 燃油液位每30秒。
  4. 电池电压每5秒钟一次。
  5. 进气歧管压力,即每1秒增压压力。
  6. 冷却液温度每10秒钟。
  7. 每1-2秒发动机负荷。

诀窍在于更经常地调查更频繁变化的事物。

下次您使用车载计算机时,请切换到即时消费视图并查看值的变化频率。对于我的车来说,这是每一秒。我会说一秒钟是一个很好的基线,因为它实际上允许你每秒100毫秒读取9个PID而没有麻烦。


“诀窍是对更频繁变化的事情进行调查,更经常地进行调查”现在这又是一个我没有考虑过的显而易见的事情。感谢您的投入,非常感谢!
Nicu Surdu 2013年

经验是最伟大的老师;)
Kenpachi船长2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.