如何進行汽車CAN總線開發?
以下開始正式答題。
本文引用地址:http://www.104case.com/article/201612/329692.htm首先,請看這份恒潤工程師寫的論文《CAN總線系統測試技術》。
里面基本描述了CAN總線開發的流程,但主要側重于CAN總線的測試,不過也能讓你有所了解。
根據你的描述,假設你的要求是:能夠基于某嵌入式平臺(最好該平臺在汽車ECU開發中被廣泛使用),根據給定的通信協議(一般由通信矩陣描述),編寫CAN接口代碼,并能通過相關設備進行簡單測試。
推薦的學習步驟為:
1. 了解CAN基本知識
可以通過這個ppt,恒潤的東西還是不錯的。
CAN基礎_百度文庫
2. 直觀的了解CAN
這需要你購買或借用CAN總線檢測設備,檔次差很多。如果是你自己想玩,可以買個周立功的USB轉CAN,淘寶也就幾百塊錢。如果是課題組采購,可以買個Kvaser的USBCAN,幾千塊吧。大致這個樣子。
要是土豪的話,可以買Vector的VN1600,這個就好幾萬了。以上三種我都用過。一定要買雙通道,然后一個口發,一個口接,可以自己接延長線通過示波器看信號了。嘗試修改報文ID,數據,波特率等等,看示波器的變化,對理解第一部分的內容很有幫助。
這個圖中有三個message。
一位是2us,總線的波特率是多少?1/2e-6=500Kbps
3.選擇嵌入式平臺,學習CAN接口的編程
飛思卡爾MC9S08DZ60MLH 8位汽車級CAN總線 開發板 學習板超
可以選擇這個小板子練習一下,程序的寫法都是差不多的。然后和第二部分的總線檢測設備連在一起進行測試。
這一步需要詳細了解信號轉換的知識,特別是Big Endian和Little Endian的區別,factor和offset的作用,如何置1或置0,可以參考DBC_File_Format_Documentation_百度文庫,很詳細,看完就懂了。
4.如果有興趣,可以看看J1939協議(用于商用車)或者CANOpen協議(用于現場控制,很多電機控制器使用)或者ISO 15031-5(用于OBD診斷)。
最后,希望你在了解CAN以后,不要花過多的精力在底層上,基本都是體力勞動。體現價值的還得是上層。
評論