如何進(jìn)行汽車CAN總線開發(fā)?
以下開始正式答題。
本文引用地址: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à)值的還得是上層。
評(píng)論