<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

作者: 時(shí)間:2009-08-21 來(lái)源:網(wǎng)絡(luò ) 收藏
3.2模塊的硬件設計

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

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


圖3CAN模塊的電路設計

4ARM中CAN模塊的軟件設計

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


圖4CAN模塊操作順序

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

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

  staticint_intcan_init(void)

 ?。?/p>

  初始化默認波特率、注冊驅動(dòng)程序

 ?。?/p>

  intcan_open(structinode*inode,structfile*filp)

 ?。?/p>

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

 ?。?/p>

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

 ?。?/p>

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

 ?。?/p>

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

5本文作者創(chuàng )新點(diǎn)

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

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

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>