2017-02-18 27 views
0

我想要做的是通過矢量數據庫編輯器++中製作的.dbc文件請求所有所需的PID。是否可以通過.dbc文件請求所有需要的ODB II PID?

我對CAN通信足夠了解,可以用1或2個PID來完成此任務,因爲DLC允許每個CAN消息最多8個字節的數據。我也很熟悉PID的查詢和響應的資源https://en.wikipedia.org/wiki/OBD-II_PIDs#CAN_.2811-bit.29_bus_format

我無法理解的是診斷工具如何能夠查詢特定車輛的製造商決定提供的每個PID,所以我覺得這個有可能。然而,如果我使用$ 7DF的請求ID,我只能使用這個消息ID進行查詢,這就是爲什麼我目前只能在該CAN消息中安裝兩個PID(信號)的原因。

回答

0

診斷工具如何查詢特定車輛的製造商決定提供的每個PID?

你無法從ECU請求任何你想要的東西(至少以正常的方式!)。只有您可以請求的OBD相關PID。所有的OBD II PID及其定義,縮放等都在ISO 15031第5部分中提供。這意味着所有的PID都是預定義的。因此,任何記錄器首先會要求mode 01 pid 00獲取該車輛的所有可用PID,然後開始對其進行掃描。

如果我使用$ 7DF的請求ID,我只能使用這個消息ID來查詢我的查詢。

這是錯誤的原因0x7DF與DLC和消息的內容無關。只有消息的頭部才能告訴ECU您從哪個ECU獲得此請求。 0x7DF是OBD請求,甚至可以直接向不同的控制器請求其可用數據。

每條消息的長度爲8個字節。第一個字節是請求的模式。第二個字節告訴ECU傳入字節的數量,然後你有6個字節發送。因爲他們說你可以同時請求6個PID。您的問題可能是從OBD接收多個數據,使用流量控制和第一幀消息可能有點棘手。 Here如果長度超過8個字節,您可以找到有關如何接收消息的一些信息。

關於,

相關問題