基于AVR的CAN總線通信協(xié)議分析技術
時間:2008-12-15 15:55:31來源:dujing
導語:?介紹了一種基于AVR單片機的CAN總線通信協(xié)議分析技術.采用邏輯分析儀先分析 CAN總線上主機對各節(jié)點進行控制所產(chǎn)生的不同問答數(shù)據(jù)的含義
摘 要 介紹了一種基于AVR單片機的CAN總線通信協(xié)議分析技術.采用邏輯分析儀先分析 CAN總線上主機對各節(jié)點進行控制所產(chǎn)生的不同問答數(shù)據(jù)的含義.再使用 AVR單片機 ATmega168L控制獨立的 CAN控制器 MCP2510對 CAN總線上的報文進行監(jiān)聽,并通過上位機傳輸給 Pc機顯示.結合 CAN總線規(guī)范及先前分析的問答數(shù)據(jù)的定義,通過 Pc機上顯示的 報文對協(xié)議進行完整的分析.
關鍵詞 CAN總線;AVR;上位機 SPI
1 CAN總線規(guī)范概述
CAN(controller area network),即控制器局域網(wǎng),是一種串行通信協(xié)議,具有較高的安全性能及錯誤處理能力.作為一種可靠,高效及經(jīng)濟的平臺,CAN總線憑借諸多優(yōu)點廣泛應用于汽車系統(tǒng)、機械設備、工業(yè)控制等分布實時系統(tǒng)中,取代了傳統(tǒng)控制系統(tǒng)中復雜的接線配線.成為目前廣泛使用的現(xiàn)場 總線之一.但是,國內一些廠家在開發(fā)網(wǎng)絡產(chǎn)品時缺乏 CAN總線標準化的指導,導致不同網(wǎng)絡產(chǎn)品互不兼容,削弱了不同產(chǎn)品之間的互操作性¨J.特別是在 CAN總線的應用最為廣泛汽車行業(yè),由于不同汽車生產(chǎn)廠家對產(chǎn)品的CAN總線上數(shù)據(jù)含義的定義各不相同且不對外公開,使得對不同汽車的性能進行診斷變得異常困難.因此對 CAN總線通信協(xié)議進行分析尤為重要.
目前所使用的CAN總線規(guī)范V2.0版本主要由A,B兩部分組成.A部分即CAN規(guī)范VI.2版本,其采用的地址范圍由 11個識別位定義,即標準格式, B部分包括標準格式和擴展格式,后者為應對地址范圍擴大而制定的29個識別位格式.標準格式與擴展格式的區(qū)別在于擴展格式使用了 CAN1.2版本中的第一個保留位,因而擴展格式仍是有效的.為了兼容 CAN2.0,規(guī)定 CAN設備應采用 CAN2.0中的A或 B部分 引.
2 CAN總線通信協(xié)議分析
2.1 協(xié)議分析原理
CAN總線被細分為三個不 同的層次:對象層 (object layer)、傳輸層(transfer layer)和物理層(phy— ical layer).對象層和傳輸層相當于 ISO/OSI模型定義的數(shù)據(jù)鏈路層.對象層的作用包括:查找被發(fā)送的報文;確定由實際要使用的傳輸層接收哪一個撤文;為應用層相關硬件提供接口.這里的定義對象處理較為靈活.傳輸層的作用主要是傳送規(guī)則,也就是控制幀結構、執(zhí)行仲裁、錯誤檢測、出錯標定、故障界定.總線上什么時候開始發(fā)送新報文及什么時候 開始接收報文,均在傳輸層里確定.所以傳輸層的修 改是受到限制的.物理層的作用是在不同節(jié)點之間根據(jù)其電氣屬性進行位信息的實際傳輸.在選擇物理層方面比較自由 J.
對CAN總線的協(xié)議分析主要有以下三個步驟:
1)使用邏輯分析儀對特定網(wǎng)絡產(chǎn)品的 CAN總線上主機對各節(jié)點控制所產(chǎn)生的問答數(shù)據(jù)進行分析.從中可以獲得主機與節(jié)點之間通信的波特率,及數(shù)據(jù)所表示的含義.如在汽車系統(tǒng)中,那個數(shù)據(jù)表示引擎,那個數(shù)據(jù)表示出現(xiàn)故障等.
2)設計出基于AVR的單片機系統(tǒng).AVR單片機對 CAN總線上的報文進行監(jiān)聽.并通過上位機送 Pc機顯示.獲取主機與各節(jié)點的所有問答數(shù)據(jù).
3)對獲取的問答數(shù)據(jù)根據(jù) CAN總線規(guī)范及先前用邏輯分析儀所獲取的數(shù)據(jù)含義表進行完整分析該系統(tǒng)的 CAN總線協(xié)議.
全文
基于AVR的CAN總線通信協(xié)議分析技術.pdf