• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于嵌入式系統的機械車載監控終端研究

    基于嵌入式系統的機械車載監控終端研究

    作者: 時間:2009-08-21 來源:網絡 收藏
    3.2模塊的硬件設計

    本文引用地址:http://www.czjhyjcfj.com/article/152379.htm

      通過模塊接口,ARM處理器可以直接訪問寄存器組,這些寄存器可以配置CAN核心模塊、CAN信息處理模塊以及訪問信息RAM的方式。本采用飛利浦公司的TJA1050作為收發器,在CAN接口和CAN總線之間的收發器,作用是將3.3V的邏輯電平轉換為CAN的邏輯電平,也就是將發送和接收到的信號轉換成CAN總線和ARM可以識別的信號。


    圖3CAN模塊的電路設計

    4ARM中CAN模塊的軟件設計

      在構造和特性上,7202的CAN控制器與標準的CAN模塊基本沒有區別,只是在寄存器的個數與基地址的偏移上有些不同。


    圖4CAN模塊操作順序

      如圖4,在開始進行總線操作前需要做好4步工作。首先要使能CAN模塊,向CANEnableRegister寫入0X01,由于ARM的引腳是復用的,所以在使能CAN模塊以前,先要將CAN模塊占用的引腳切換到特殊模式。然后要初始化CAN模塊,主要是正確的配置CommandMaskRegister,這個寄存器的作用是用來配置CAN模塊收發的信息體。接著,配置波特率,通過所想達到的CAN總線波特率,計算出計算公式各個變量的值,而CAN的波特率計算公式如下:(Tseg2+Tseg1+SJW+3)*BRP=CAN_CLK/Fbps。左邊的4個變量在BRP寄存器中,而等式右邊的CAN_CLK是一個固定值,在這里是48MHz。最后,配置信息存儲器,信息體的配置是與具體的應用信息相關的,具體到信息緩沖寄存器組中的每一個寄存器的設置。需要提出的是,前面三步都是在初始化模式下完成的,而最后一步則是在正常模式下進行。在進行完這四部以后,就可以對CAN模塊進行操作了。

      linux操作把對CAN的操作看成是對文件的操作,對于文件,最基本的操作是打開、關閉、讀和寫。對于CAN模塊,讀與寫操作分別實現接收數據的讀取和發送,打開和關閉文件則分別實現CAN模塊的一些硬件資源的初始化和釋放先前所占有的資源,配置波特率、配置信息模式等配置特性的操作,則由ioctl函數完成的。

      staticint_intcan_init(void)

      {

      初始化默認波特率、注冊驅動程序

      }

      intcan_open(structinode*inode,structfile*filp)

      {

      設置CAN工作寄存器、初始化讀操作隊列、注冊CAN模塊中斷

      }

      staticintcan_ioctl(structinode*inode,structfile*file,unsignedintcmd,unsignedlongarg)

      {

      根據cmd參數選擇相應的操作

      }

      上面列舉出了對CAN操作的初始化、打開、和配置函數,其他的還有讀、寫、關閉等函數,最后所要實現的功能就是CAN模塊中斷,在中斷中主要完成對于讀寫位置標志的改變,以實現阻塞型I/O操作,這樣,用戶通過應用這些操作函數就完成了CAN總線的使用了。

    5本文作者創新點

      本設計利用和CAN總線,實現工程的集成化、信息化和智能化,通過在系統CAN總線的應用,可以方便的實現前端安全、電液比例等單元,并且可以進行人機交互和圖像采集,有很好的應用前景。

    linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 江北区| 濮阳县| 泸定县| 民勤县| 绥德县| 临澧县| 东乡族自治县| 叙永县| 永顺县| 内江市| 南江县| 宣威市| 荔浦县| 汶川县| 玉溪市| 青河县| 清流县| 龙井市| 志丹县| 大邑县| 卓资县| 津南区| 临西县| 甘孜| 华阴市| 淮安市| 会理县| 邹平县| 桃源县| 团风县| 星子县| 桓台县| 林周县| 金阳县| 西丰县| 河东区| 寿宁县| 大姚县| 嘉兴市| 黔南| 新竹市|