新聞中心

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

        基于AT90CAN128的CAN總線設計

        作者: 時間:2013-03-01 來源:網(wǎng)絡 收藏

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

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

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

        基于AT90CAN128的CAN總線設計

        圖2 at90can128的CAN控制結構。

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

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

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

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

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

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

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

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



        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 孝昌县| 万源市| 措美县| 准格尔旗| 沛县| 米脂县| 桃源县| 宣威市| 华容县| 峨眉山市| 三明市| 云阳县| 陇南市| 吐鲁番市| 徐水县| 土默特右旗| 上犹县| 长垣县| 鲁山县| 沾化县| 阜南县| 舟山市| 黑河市| 乌兰察布市| 邵武市| 香港 | 阳信县| 镇康县| 孝感市| 辉南县| 碌曲县| 石狮市| 兴海县| 邵阳县| 和田市| 无锡市| 赫章县| 尚义县| 铜山县| 永定县| 陆河县|