基于AVR的CAN總線通信協(xié)議分析技術(shù) (1)_第1頁(yè)
基于AVR的CAN總線通信協(xié)議分析技術(shù) (1)_第2頁(yè)
基于AVR的CAN總線通信協(xié)議分析技術(shù) (1)_第3頁(yè)
基于AVR的CAN總線通信協(xié)議分析技術(shù) (1)_第4頁(yè)
基于AVR的CAN總線通信協(xié)議分析技術(shù) (1)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第16卷 第1期2007年1月云南民族大學(xué)學(xué)報(bào)(自然科學(xué)版Jou rnal o f Y unnan N ationa lities U n i versity(N a t ura l Sc iences Editi onV o.l 16 N o .1Jan .2007* 收稿日期:2006-09-21.作者簡(jiǎn)介:田野(1984,男,碩士研究生,主要從事嵌入式通信系統(tǒng)的學(xué)習(xí)與研究.通訊作者:孟傳良(1950,男,教授,主要從事嵌入式通信系統(tǒng)研究.基于AVR 的CAN 總線通信協(xié)議分析技術(shù)田 野 張 威 高 亮 孟傳良(貴州大學(xué)電子科學(xué)與信息技術(shù)學(xué)院,貴州貴陽(yáng)550003摘 要 介紹了一種基于AV

2、R 單片機(jī)的CAN 總線通信協(xié)議分析技術(shù).采用邏輯分析儀先分析CAN 總線上主機(jī)對(duì)各節(jié)點(diǎn)進(jìn)行控制所產(chǎn)生的不同問答數(shù)據(jù)的含義.再使用AVR 單片機(jī)ATm ega168L 控制獨(dú)立的CAN 控制器M CP2510對(duì)CAN 總線上的報(bào)文進(jìn)行監(jiān)聽,并通過上位機(jī)傳輸給PC 機(jī)顯示.結(jié)合CAN 總線規(guī)范及先前分析的問答數(shù)據(jù)的定義,通過PC 機(jī)上顯示的報(bào)文對(duì)協(xié)議進(jìn)行完整的分析.關(guān)鍵詞 CAN 總線;AVR;上位機(jī)SP I 【中圖分類號(hào)】TN 915 04【文獻(xiàn)標(biāo)識(shí)碼】A【文章編號(hào)】1672 8513(200701-0052-03The Technology of A nalyzi ng CAN Bus Pr

3、otoco l Based on AVRT ian Y e Zhang W e i Gao L i a ng M eng Chuan li a ng(Facu lty o f E lectron ics and Infor m ati o n Techno l o gy ,Gu izhou Un i v ersity ,Gu i y ang ,550003,ChinaAbst ract :The paper i n troduces the techno l o gy o f analyzing CAN bus pr o toco lbased on AVR.The defi n iti o

4、n o fdifferent data on the CAN bus can be ana l y zed by the log ic analyzer .By AVR S ilg le-ch i p Contro lsMCP2510m o n ito ri n g t h e m essage on the CAN,t h e m essage w illbe disp layed on t h e PC screen by the upper co m puter .Through t h e m essage ,the pro tocol can be co m pletely anal

5、yzed .K ey words :CAN bus AVR;U pper co m puter SPI1 CAN 總線規(guī)范概述CAN (controller area net w ork ,即控制器局域網(wǎng),是一種串行通信協(xié)議,具有較高的安全性能及錯(cuò)誤處理能力.作為一種可靠,高效及經(jīng)濟(jì)的平臺(tái),CAN 總線憑借諸多優(yōu)點(diǎn)廣泛應(yīng)用于汽車系統(tǒng)、機(jī)械設(shè)備、工業(yè)控制等分布實(shí)時(shí)系統(tǒng)中,取代了傳統(tǒng)控制系統(tǒng)中復(fù)雜的接線配線.成為目前廣泛使用的現(xiàn)場(chǎng)總線之一.但是,國(guó)內(nèi)一些廠家在開發(fā)網(wǎng)絡(luò)產(chǎn)品時(shí)缺乏C AN 總線標(biāo)準(zhǔn)化的指導(dǎo),導(dǎo)致不同網(wǎng)絡(luò)產(chǎn)品互不兼容,削弱了不同產(chǎn)品之間的互操作性1.特別是在C AN 總線的應(yīng)用最為廣泛

6、汽車行業(yè),由于不同汽車生產(chǎn)廠家對(duì)產(chǎn)品的CAN 總線上數(shù)據(jù)含義的定義各不相同且不對(duì)外公開,使得對(duì)不同汽車的性能進(jìn)行診斷變得異常困難.因此對(duì)CAN 總線通信協(xié)議進(jìn)行分析尤為重要.目前所使用的CAN 總線規(guī)范V2 0版本主要由A,B 兩部分組成.A 部分即C AN 規(guī)范V1 2版本,其采用的地址范圍由11個(gè)識(shí)別位定義,即標(biāo)準(zhǔn)格式.B 部分包括標(biāo)準(zhǔn)格式和擴(kuò)展格式,后者為應(yīng)對(duì)地址范圍擴(kuò)大而制定的29個(gè)識(shí)別位格式.標(biāo)準(zhǔn)格式與擴(kuò)展格式的區(qū)別在于擴(kuò)展格式使用了C AN1 2版本中的第一個(gè)保留位,因而擴(kuò)展格式仍是有效的.為了兼容C AN2 0,規(guī)定C AN 設(shè)備應(yīng)采用CAN2 0中的A或B 部分2.2 CAN

7、總線通信協(xié)議分析2.1 協(xié)議分析原理CAN 總線被細(xì)分為三個(gè)不同的層次:對(duì)象層(ob j e ct layer、傳輸層(transfer layer和物理層(phy ical layer.對(duì)象層和傳輸層相當(dāng)于ISO /OSI 模型定義的數(shù)據(jù)鏈路層.對(duì)象層的作用包括:查找被發(fā)送的報(bào)文;確定由實(shí)際要使用的傳輸層接收哪一個(gè)報(bào)文;為應(yīng)用層相關(guān)硬件提供接口.這里的定義對(duì)象處理較為靈活.傳輸層的作用主要是傳送規(guī)則,也就是控制幀結(jié)構(gòu)、執(zhí)行仲裁、錯(cuò)誤檢測(cè)、出錯(cuò)標(biāo)定、故障52理層方面比較自由2.對(duì)CAN 總線的協(xié)議分析主要有以下三個(gè)步驟:1使用邏輯分析儀對(duì)特定網(wǎng)絡(luò)產(chǎn)品的C AN 總線上主機(jī)對(duì)各節(jié)點(diǎn)控制所產(chǎn)生的問

8、答數(shù)據(jù)進(jìn)行分析.從中可以獲得主機(jī)與節(jié)點(diǎn)之間通信的波特率,以及數(shù)據(jù)所表示的含義.如在汽車系統(tǒng)中,那個(gè)數(shù)據(jù)表示引擎,那個(gè)數(shù)據(jù)表示出現(xiàn)故障等.2設(shè)計(jì)出基于AVR 的單片機(jī)系統(tǒng).AVR 單片機(jī)對(duì)C AN 總線上的報(bào)文進(jìn)行監(jiān)聽.并通過上位機(jī)送PC 機(jī)顯示.獲取主機(jī)與各節(jié)點(diǎn)的所有問答數(shù)據(jù).3對(duì)獲取的問答數(shù)據(jù)根據(jù)CAN 總線規(guī)范及先前用邏輯分析儀所獲取的數(shù)據(jù)含義表進(jìn)行完整分析該系統(tǒng)的CAN 總線協(xié)議.2.2 協(xié)議邏輯分析CAN 總線能夠使用雙絞線、光纖等多種物理介質(zhì),最常用的是雙絞線.信號(hào)使用差分電壓傳送,兩條信號(hào)線被稱為 C AN _H !和 C AN _L !,靜態(tài)時(shí)均是2 5V 左右.此時(shí)狀態(tài)表示為邏

9、輯 1!,也可以叫做 隱性!.用C AN _H 比CAN _L 高表示邏輯 0!,稱為 顯形!,此時(shí),通常電壓值為:CAN _H =3 5V 和CAN _L=1 5V 4.如圖1所示 .將邏輯分析儀中兩個(gè)通道分別接到要分析系統(tǒng)的 C AN _H !和 C AN _L !兩條差分電壓信號(hào)線上.調(diào)整好采樣速率、靈敏度電壓、觸發(fā)電平等,就可以開始分析.當(dāng)邏輯分析儀的兩個(gè)通道的數(shù)據(jù)為11時(shí),則表示CAN 總線上這一時(shí)段傳輸?shù)臄?shù)據(jù)是1;當(dāng)邏輯分析儀的兩個(gè)通道的數(shù)據(jù)為10時(shí),則表示CAN 總線上這一時(shí)段傳輸?shù)臄?shù)據(jù)為0.由此主機(jī)與CAN 線上不同節(jié)點(diǎn)的問答數(shù)據(jù)就能以10或11的形式保存在邏輯分析儀的存儲(chǔ)器中

10、.調(diào)用這些數(shù)據(jù),轉(zhuǎn)化為16進(jìn)制,根據(jù)C AN 總線規(guī)范就可以分析出該系統(tǒng)CAN 總線上不同數(shù)據(jù)的含義.如系統(tǒng)的波特率、系統(tǒng)如何初始化、系統(tǒng)中不同節(jié)點(diǎn)的I D 標(biāo)識(shí)等.2.3 報(bào)文監(jiān)聽硬件設(shè)計(jì)僅僅運(yùn)用邏輯分析儀對(duì)C AN 總線上的數(shù)據(jù)進(jìn)行分析是不夠的.因?yàn)镃AN 總線的速率可達(dá)1M b it/s ,僅憑人工進(jìn)行運(yùn)算將產(chǎn)生量大而且繁瑣的問題.在前期對(duì)CAN 總線一些基本數(shù)據(jù)分析完畢的情況下,可采用在CAN 總線控制器的支持下AVR 單片機(jī)監(jiān)聽總線上數(shù)據(jù).監(jiān)聽任務(wù)由C AN 網(wǎng)絡(luò)控制器完成,監(jiān)聽所獲得的數(shù)據(jù)傳輸給AVR 單片機(jī)進(jìn)行處理后通過上位機(jī)送PC 機(jī)顯示3.上位機(jī)可采用VB 或De l p h

11、 i 編程,也可采用現(xiàn)成的串口調(diào)試工具,如圖 2.主控制器采用ATMEL 公司的ATm ega64L ,它具有豐富的引腳及較高的處理速度.通信接口C AN 總線控制器采用M icrochip 公司出品的CAN 總線控制器MCP2510及P H I LI PS 公司出品的CAN 總線驅(qū)動(dòng)器PC A82C250構(gòu)成(圖3.PCA82C250總線驅(qū)動(dòng)器與系統(tǒng)物理總線相連,具有差分發(fā)射和接收能力,作為MCP2510總線控制器和系統(tǒng)物理總線之間數(shù)據(jù)發(fā)送信號(hào)和數(shù)據(jù)接收信號(hào)媒介交互.M CP2510總線控制器負(fù)責(zé)報(bào)文的發(fā)送、接收、過濾等工作,是CAN 總線接口控制板的核心器件.它支持CAN2 0A /B 技

12、術(shù)規(guī)范,能夠發(fā)送和接收標(biāo)準(zhǔn)和擴(kuò)展報(bào)文,同時(shí)具備驗(yàn)收過濾以及管理功能.該器件包含三個(gè)發(fā)送緩沖器和兩個(gè)接收緩沖器,減少了AVR 的管理負(fù)擔(dān).M CP2510通過SPI 接口與ATm ega64L 進(jìn)行數(shù)據(jù)通信4.2.4 報(bào)文監(jiān)聽軟件設(shè)計(jì)為實(shí)現(xiàn)SPI 同步通信方式,可將AVR 單片機(jī)設(shè)為主動(dòng)方式,將MCP2510設(shè)為從動(dòng)方式,發(fā)送和接收數(shù)據(jù)共用一個(gè)緩沖區(qū).緩沖區(qū)采用循環(huán)隊(duì)列的形式進(jìn)行組織,由一指針指向它,AVR 單片機(jī)每發(fā)送一個(gè)數(shù)據(jù)就與MCP2510交換數(shù)據(jù),將其放入同一個(gè)存儲(chǔ)單元即可.CAN 總線控制器MCP2510負(fù)責(zé)完成總線通信協(xié)議的物理層和數(shù)據(jù)鏈路層的功能.MCP2510作為AVR 單片機(jī)的

13、SPI 的一個(gè)從設(shè)備,AVR 需要報(bào)文發(fā)送的時(shí)候,可以設(shè)置MCP2510相應(yīng)寄存器,將相應(yīng)位置低或發(fā)送相應(yīng)命令,啟動(dòng)報(bào)文的發(fā)送.此時(shí),發(fā)送的報(bào)文將寫入發(fā)送緩沖區(qū)并進(jìn)行一次發(fā)送請(qǐng)求,即可完成一次發(fā)送過程.當(dāng)總線驅(qū)動(dòng)器PCA82C250收到數(shù)據(jù)時(shí),啟動(dòng)一次AVR 單片機(jī)的外中斷,或由AVR 單片機(jī)定時(shí)查詢收發(fā)器上的狀態(tài)位,然后通過SPI 串行口訪問MCP2510控制芯片的外部寄存器就可以完成53第1期 田 野等:基于AVR 的CAN 總線通信協(xié)議分析技術(shù)對(duì)C AN 總線報(bào)文讀寫、控制操作.同時(shí)將報(bào)文通過上位機(jī)傳送到PC 機(jī)上顯示出來 .2.5 報(bào)文分析對(duì)PC 機(jī)顯示的數(shù)據(jù)可以根據(jù)CAN 總線規(guī)范進(jìn)

14、行分析.顯示結(jié)果由標(biāo)識(shí)符I D 和數(shù)據(jù)構(gòu)成.標(biāo)識(shí)符為11個(gè)或29個(gè)識(shí)別位.數(shù)據(jù)由0到8個(gè)字節(jié)組成.根據(jù)網(wǎng)絡(luò)產(chǎn)品對(duì)協(xié)議中數(shù)據(jù)的不同定義,就可以對(duì)CAN 總線上的協(xié)議進(jìn)行完整的分析.表1給出了一段時(shí)間內(nèi)CAN 總線上報(bào)文數(shù)據(jù)流.可以看出,0B2,2D2,025,0B0,2C4,223,224,2C1,2D0,2D2這些是報(bào)文的標(biāo)識(shí)符,有11個(gè)識(shí)別位,屬于CAN 總線規(guī)范中的標(biāo)準(zhǔn)格式.后面的數(shù)據(jù)為0到8個(gè)字節(jié).0B2,025,0B0周期性的出現(xiàn),說明了主機(jī)與節(jié)點(diǎn)正在進(jìn)行問答控制.表1 CAN 總線報(bào)文數(shù)據(jù)流00200080218F2D 200參考文獻(xiàn):1 杜鋼,王寧會(huì).CAN 總線網(wǎng)絡(luò)協(xié)議分析儀的軟硬件

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論