新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 如何進(jìn)行汽車CAN總線開發(fā)?

如何進(jìn)行汽車CAN總線開發(fā)?

作者: 時間:2016-12-14 來源:網(wǎng)絡(luò) 收藏
  CAN總線和基于CAN總線的診斷完全不是一個概念,CAN總線的硬件也不一定是OBD的硬件。至于“多去4S店問問技師,車廠的人大部分的人都不一定比這些人懂的多”,你讓這些技師給我寫個能用的ECU CAN接口出來?

  以下開始正式答題。

本文引用地址:http://butianyuan.cn/article/201612/329692.htm

  首先,請看這份恒潤工程師寫的論文《CAN總線系統(tǒng)測試技術(shù)》。

  里面基本描述了CAN總線開發(fā)的流程,但主要側(cè)重于CAN總線的測試,不過也能讓你有所了解。

  根據(jù)你的描述,假設(shè)你的要求是:能夠基于某嵌入式平臺(最好該平臺在汽車ECU開發(fā)中被廣泛使用),根據(jù)給定的通信協(xié)議(一般由通信矩陣描述),編寫CAN接口代碼,并能通過相關(guān)設(shè)備進(jìn)行簡單測試。

  推薦的學(xué)習(xí)步驟為:

  1. 了解CAN基本知識

  可以通過這個ppt,恒潤的東西還是不錯的。

  CAN基礎(chǔ)_百度文庫

  2. 直觀的了解CAN

  這需要你購買或借用CAN總線檢測設(shè)備,檔次差很多。如果是你自己想玩,可以買個周立功的USB轉(zhuǎn)CAN,淘寶也就幾百塊錢。如果是課題組采購,可以買個Kvaser的USBCAN,幾千塊吧。大致這個樣子。

  

要是土豪的話,可以買Vector的VN1600,這個就好幾萬了。以上三種我都用過。一定要買雙通道,然后一個口發(fā),一個口接,可以自己接延長線通過示波器看信號了。嘗試修改報文ID,數(shù)據(jù),波特率等等,看示波器的變化,對理解第一部分的內(nèi)容很有幫助。

  

  這個圖中有三個message。

  

  一位是2us,總線的波特率是多少?1/2e-6=500Kbps

  3.選擇嵌入式平臺,學(xué)習(xí)CAN接口的編程

  飛思卡爾MC9S08DZ60MLH 8位汽車級CAN總線 開發(fā)板 學(xué)習(xí)板超

  可以選擇這個小板子練習(xí)一下,程序的寫法都是差不多的。然后和第二部分的總線檢測設(shè)備連在一起進(jìn)行測試。

  這一步需要詳細(xì)了解信號轉(zhuǎn)換的知識,特別是Big Endian和Little Endian的區(qū)別,factor和offset的作用,如何置1或置0,可以參考DBC_File_Format_Documentation_百度文庫,很詳細(xì),看完就懂了。

  4.如果有興趣,可以看看J1939協(xié)議(用于商用車)或者CANOpen協(xié)議(用于現(xiàn)場控制,很多電機(jī)控制器使用)或者ISO 15031-5(用于OBD診斷)。

  最后,希望你在了解CAN以后,不要花過多的精力在底層上,基本都是體力勞動。體現(xiàn)價值的還得是上層。



關(guān)鍵詞: 底盤控制CAN總

評論


技術(shù)專區(qū)

關(guān)閉