新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于AT90CAN128的CAN總線設(shè)計(jì)

基于AT90CAN128的CAN總線設(shè)計(jì)

作者: 時(shí)間:2013-03-01 來(lái)源:網(wǎng)絡(luò) 收藏

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

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

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

基于AT90CAN128的CAN總線設(shè)計(jì)

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

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

a t90can128的CAN 控制器提供了所有有利于消息管理的硬件, 對(duì)于每個(gè)要發(fā)送或接收的信息都是通過(guò)一個(gè)叫做消息對(duì)象( message ob ject) 的東西來(lái)封裝起來(lái)的。在對(duì)模塊初始化的時(shí)候, 程序會(huì)指定哪些消息要發(fā)送, 哪些消息要接收, 只有那些約定好標(biāo)識(shí)符的消息才能被正確無(wú)誤地交換。另外, 對(duì)于接收到的遠(yuǎn)程幀, 控制器會(huì)進(jìn)行相應(yīng)的自動(dòng)回復(fù)。

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

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

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

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

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

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



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉