新聞中心

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

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

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

  以下開始正式答題。

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

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

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

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

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

  1. 了解CAN基本知識(shí)

  可以通過這個(gè)ppt,恒潤(rùn)的東西還是不錯(cuò)的。

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

  2. 直觀的了解CAN

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

  

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

  

  這個(gè)圖中有三個(gè)message。

  

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

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

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

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

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

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

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



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

評(píng)論


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

關(guān)閉