現象: 在河南某汽車廠,刷寫博世控制器的時候,發現發送36 01 XX XX指令,正常來講應該收到76 01.或者7F XX的負響應。 可是沒有收到任何響應數據。ide
用canOE監控一下,發送總線上確實有36 01,可是就是對方控制器沒有法數據到總線上。測試
以前在公司測試,僅僅控制器鏈接到電腦上,刷文件是能夠的。 實際現場又專門把控制器拆掉,單獨接到電腦上,也是能夠的。這說明車的環境對控制器有影響。it
設備 鏈接到 網關,網關而後鏈接到控制器。 全部設備發出的數據都是由網關這個模塊,來轉發到控制器的。用廠家的431來刷文件能夠,說明網關是正常。是能夠刷寫文件的。 不單單這個博世的控制器,全部的像ABS,EPS,tbox等等好多ECU都是接到網關上的。class
在發送到總線上前提是,必須其餘ECU保持安靜,他們不能發數據到總線上。ID越小,則ECU的優先級越高。當優先級高的ECU在發數據的時候,而此時你要是發數據,那麼是不能夠的。所以要讓其餘ECU保持安靜。監控
經過,進擴展,設置DTC, 讓全部ECU安靜。這三個步驟能夠控制其餘ECU。
監控總線,發現進擴展以後,總線上有些ECU回覆50 03.可是,有的ECU 沒有回覆。而每次用431進擴展,都會發現好多ECU都能發50 03到總線。所以猜想,我發的數據太快,致使有些ECU沒有正常發出50 03。 所以,在進擴展,設置DTC, 讓其餘ECU安靜等命令以後, 都延遲一些時間。我這裏延遲了400毫秒。擴展
結果,能夠了,在總線上終於看到了76 01的回覆。數據