基于AVR處理器at90can128的CAN總線應(yīng)用-設(shè)計應(yīng)用_第1頁
基于AVR處理器at90can128的CAN總線應(yīng)用-設(shè)計應(yīng)用_第2頁
基于AVR處理器at90can128的CAN總線應(yīng)用-設(shè)計應(yīng)用_第3頁
基于AVR處理器at90can128的CAN總線應(yīng)用-設(shè)計應(yīng)用_第4頁
基于AVR處理器at90can128的CAN總線應(yīng)用-設(shè)計應(yīng)用_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

精品文檔-下載后可編輯基于AVR處理器at90can128的CAN總線應(yīng)用-設(shè)計應(yīng)用1前言

現(xiàn)場總線是當(dāng)前工業(yè)總線領(lǐng)域中活躍的一個領(lǐng)域,CAN總線是工業(yè)數(shù)據(jù)總線領(lǐng)域重要的現(xiàn)場總線之一。CAN是ControllerAreaNetwork的縮寫,是國際標(biāo)準(zhǔn)化的串行通信協(xié)議。在當(dāng)今的汽車產(chǎn)業(yè)中,出于對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統(tǒng)被開發(fā)出來。由于這些系統(tǒng)之間通信所用的數(shù)據(jù)類型及對可靠性的要求不盡相同,由多條總線構(gòu)成的情況很多,線束的數(shù)量也隨之增加。為減少線束的數(shù)量、通過多個LAN進行大量數(shù)據(jù)的高速通信,1986年德國電氣商博世公司開發(fā)出面向汽車的CAN通信協(xié)議。而今CAN在歐洲已是汽車網(wǎng)絡(luò)的標(biāo)準(zhǔn)協(xié)議。CAN的初衷是為了解決汽車?yán)锒喾N復(fù)雜數(shù)據(jù)的通信,后來證實在很多工業(yè)領(lǐng)域也能應(yīng)用自如。

2CAN總線特性及當(dāng)今狀況

CAN總線與其他通訊網(wǎng)絡(luò)的不同之處在于:報文傳送中不包括目標(biāo)地址,以全網(wǎng)廣播為基礎(chǔ),各接收站根據(jù)報文中反映數(shù)據(jù)性質(zhì)的標(biāo)識符過濾報文;強化了對數(shù)據(jù)安全性的關(guān)注,滿足控制系統(tǒng)較高的數(shù)據(jù)需求。它具有如下顯著特征:極高的總線利用率、低成本、高速的數(shù)據(jù)傳輸速率、遠距離傳輸、可靠的錯誤處理和檢錯機制、可根據(jù)報文的ID決定接收或屏蔽該報文,節(jié)點在錯誤嚴(yán)重的情況下具有自動退出總線的功能等等。

CAN總線所需完善的通信協(xié)議可由CAN控制器芯片和接口芯片實現(xiàn),大大降低了系統(tǒng)的開發(fā)難度、組成成本、縮短了開發(fā)周期,其高性能高可靠性以及靈活的設(shè)計受到人們的重視,應(yīng)用也越來越廣泛。目前比較流行的控制器芯片是飛利浦公司的SJA1000和收發(fā)器芯片TJA1050。

由于近幾年來CAN總線技術(shù)逐步在我國推廣開來,CAN總線技術(shù)的獨特特點傳輸數(shù)據(jù)的可靠性和實時性,已獲得國際自動化控制領(lǐng)域的認可,其應(yīng)用前景十分光明。國內(nèi)推動CAN總線技術(shù)進步的應(yīng)用事例不斷擴展,積極促進了我國自動化技術(shù)的進步。由于CAN總線本身的特點,其應(yīng)用范圍己經(jīng)擴展到過程工業(yè)、機械工業(yè)、數(shù)控機床、醫(yī)療機械、家用電器及傳感器等領(lǐng)域,而在電梯控制系統(tǒng)中,主板需要接收不同樓層呼梯、轎廂里呼梯、調(diào)整電梯運行參數(shù)等多路信號,因此CAN總線的優(yōu)勢明顯。如圖1所示。

圖1CAN總線應(yīng)用拓撲結(jié)構(gòu)

3集成CAN控制器的ARM微處理器

CAN總線基于一組嚴(yán)格的協(xié)議,一般來說在主CPU外接一個專用CAN控制器以實現(xiàn)。由于近年來微處理器的迅速發(fā)展,出現(xiàn)了很多功能強大的集成CAN控制器的CPU,使得在CAN總線應(yīng)用上又簡便了一些。而在價格上,集成CAN總線的微處理器和一般處理器加上專用CAN控制器芯片的價格相當(dāng),所以,集成CAN總線的微處理器必然成為今后CAN總線應(yīng)用的趨勢。NXP公司生產(chǎn)的ARM結(jié)構(gòu)LPC2294就是其中一款流行的帶CAN總線控制器的CPU。它是基于一個支持實時仿真和跟蹤的32位ARM7TDMI-SCPU的微控制器,并帶有256k字節(jié)嵌入的高速Flash存儲器。極低的功耗、多個32位定時器、8路10位ADC、4路CAN以及多達9個外部中斷使它們特別適用于工業(yè)控制,因此,LPC2294也可作為電梯控制系統(tǒng)的主控制器。

4集成CAN控制器的高端8位AVR

上文提到,電梯控制系統(tǒng)需要處理多路信息,而且它們可能是具有不同傳輸速率的,因此需要使用不同通道的CAN總線控制器。對于控制系統(tǒng),必須具有可操作性,考慮到要減輕主CPU的負擔(dān),因此,設(shè)計一個簡單的操作系統(tǒng)對主系統(tǒng)進行操作,而數(shù)據(jù)的交換方式就是采用CAN總線傳輸,此文中稱這個操作系統(tǒng)為副系統(tǒng)。副系統(tǒng)相對比較簡單,其功能主要包括:!和主板進行信息交換;?具有按鍵供輸入;#具有顯示信息的顯示器。針對功能的需要和程序的體積,選用了ATMEL公司近年力推的8位AVR控制器at90can128。

at90can128是一種基于AVR增強型RISC結(jié)構(gòu)的低功耗CMOS8位單片機。通過執(zhí)行一個單時鐘周期的高效指令,AT90CAN128每MHz能達1MIPS,這就可讓系統(tǒng)設(shè)計人員將功率損耗與處理速度優(yōu)化。AVR內(nèi)核具有豐富的指令集并帶有32個通用目的工作寄存器。32個寄存器全都直接連到運算邏輯單元(ALU),允許兩個獨立的寄存器在一個時鐘周期執(zhí)行單個指令的方式訪問。其結(jié)果就是,采用這種結(jié)構(gòu)的速度比常規(guī)的RISC單片機快10倍的同時代碼效率更高。它除了擁有一般AVR處理器的AD模塊,SPI模塊外,還集成CAN控制器,為搭建基于CAN通信的系統(tǒng)提供了便利??刂平Y(jié)構(gòu)如圖2所示。

圖2at90can128的CAN控制結(jié)構(gòu)。

對于復(fù)雜的CAN通信協(xié)議,在此不詳述,以下就at90can128的CAN控制器使用作介紹。

at90can128的CAN控制器提供了所有有利于消息管理的硬件,對于每個要發(fā)送或接收的信息都是通過一個叫做消息對象(messageobject)的東西來封裝起來的。在對模塊初始化的時候,程序會指定哪些消息要發(fā)送,哪些消息要接收,只有那些約定好標(biāo)識符的消息才能被正確無誤地交換。另外,對于接收到的遠程幀,控制器會進行相應(yīng)的自動回復(fù)。

所以在這種方式下,相對于原始的CAN控制方式,CPU的負擔(dān)大大減小了。用戶可以根據(jù)自身要求,通過對相關(guān)寄存器進行配置達到自己的要求。

而在發(fā)送消息之前,必須初始化幾個字段:

其中IDT是標(biāo)識符字段,IDE是標(biāo)識符擴展使能選擇,RTRTAG是遠程傳輸請求,DLC是數(shù)據(jù)長度代碼,RBnTAG是保留字段(n=0,1),MSG是指向相應(yīng)MOB的CAN數(shù)據(jù)。當(dāng)MOB的發(fā)送指令執(zhí)行后,MOB就會準(zhǔn)備發(fā)送一個數(shù)據(jù)或者是一個遠程幀。接著,CAN通道就會掃描各個MOB,尋找到優(yōu)先級的MOB,將其發(fā)送出去。當(dāng)傳送成功后,MOB狀態(tài)寄存器CANSTMOB中的TXOK位就會置位。而重要的是,對于每新的數(shù)據(jù)傳輸都必須重新對相關(guān)寄存器初始化,否則無法正常工作。

接收消息之前所要做的初始化步驟基本相同,只是多了IDMSK和IDEMSK標(biāo)識符掩碼的設(shè)置。

以下就給出基于AVRat90can128CAN總線接口初始化以及發(fā)送、接收功能模塊的關(guān)鍵代碼及注解(見圖3)。

圖3電梯系統(tǒng)主板與調(diào)試器之間的CAN通信。

CAN初始化:

CANGCON|=0X01;

for(i=0;i15;i++)

{

CANPAGE=i4;//將15個MOB都初始化

CANCDMOB=0;

CANSTMOB=0;

CANIDT1=0;

CANIDT2=0;

……

for(j=0;j8;j++)

CANMSG=0;

CANBT1=0X1E;//設(shè)置CAN傳輸波特率,16分頻

CANBT2=0X40;

CANBT3=0X49;

CANPAGE=(04);//選擇MOB0作為接收MOB,并設(shè)定標(biāo)識碼

CANIDT1=0X00;

CANIDM1=0X00;

……

CANPAGE=(14);//選擇MOB1作為發(fā)送MOB,并設(shè)定標(biāo)識碼

CANIDT1=0X00;

……

}

發(fā)送模塊代碼:

CANPAGE=(14);//選定MOB1

If((CANGSTA0X10)==0)//查詢CAN狀態(tài)寄存器的TXBSY位,為0,則可以發(fā)送

for(i=0;i8;i++)

{

CANMSG=my_dada[i];//將要發(fā)送的數(shù)據(jù)裝入數(shù)據(jù)寄存器中,共8byte

CANCDMOB|=0X48;//發(fā)送

}

接收模塊代碼是類似的,設(shè)計思路都是在判斷發(fā)送允許標(biāo)志之后,如果允許,就將數(shù)據(jù)裝入到指定的MOB中,而每個MOB一個發(fā)送周期一共可以發(fā)送8byte的數(shù)據(jù)。而CAN總線的另一端是NXP公司LPC2294的CAN總線外圍,其結(jié)構(gòu)和原理都差不多,當(dāng)然,在寄存器設(shè)置中會有一點差別,但只要兩個CPU約定好數(shù)據(jù)幀的標(biāo)識符編號是什么,傳輸速率相同,就可以進行數(shù)據(jù)交換了。由于篇幅有限,LPC2294的CAN接口設(shè)置在此就不作介紹了。

給出了CAN總線應(yīng)用CPU外部的硬件原理參考圖,如圖4所示。

5CAN總線收發(fā)器TJA1050硬件連接圖

圖中CAN收發(fā)器為NXP公司的TJA1050,TXD和RXD分別連接到CPU的CAN接口,CANL和CANH則為與另一個CPU連接的總線,CANL和CANH之間電阻值約為120歐姆,開關(guān)S可以作為CAN總線的硬件啟用開關(guān)。另外,如果在抗干擾要求高的場合,可以對TXD和RXD使用光電隔離。

圖4CPU外圍收發(fā)器的硬件原理圖。

6結(jié)束語

基于at90can128的CAN總線模塊設(shè)計的電梯系統(tǒng)調(diào)試器,經(jīng)過長時間的檢驗,使用良好,通信正常無誤。在眾多的現(xiàn)場總線當(dāng)中,CAN總線憑借其的特性已經(jīng)為越來越多的工程人員認同和偏愛,而隨著越來越多的高端CPU對CAN控制器的集成和綜合成本的下降,CAN總線的使用必定會越來越普遍,其中集成CAN控制器的8位AVR也會受到越來越多

溫馨提示

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

最新文檔

評論

0/150

提交評論