<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于WINCE的CAN總線設(shè)備驅(qū)動(dòng)研究

          基于WINCE的CAN總線設(shè)備驅(qū)動(dòng)研究

          作者: 時(shí)間:2016-12-20 來源:網(wǎng)絡(luò) 收藏

          目前嵌入式車載網(wǎng)絡(luò)系統(tǒng)一般采用LINUX嵌入式操作系統(tǒng),以ARM7s3c44Bo為微控制器,SJAl000為CAN控制器的解決方案,實(shí)現(xiàn)LINUX下的CAN通信.在WINCE平臺(tái)下,CAN卡的研究已經(jīng)有很多。也取得了不錯(cuò)的應(yīng)用效果,但以ARM9s3c2440為嵌入式系統(tǒng)硬件核心,外圍擴(kuò)展CAN控制器SJA1000,嵌入式操作系統(tǒng)采用WINCE的應(yīng)用方案幾乎沒有,所以值得研究.

          1 嵌入式車載網(wǎng)絡(luò)的構(gòu)成

          嵌人式車載網(wǎng)絡(luò)由若干個(gè)子節(jié)點(diǎn)控制器和主控制單元組成,其中主控單元對(duì)子節(jié)點(diǎn)進(jìn)行監(jiān)視與控制,實(shí)現(xiàn)不同的CAN數(shù)據(jù)總線系統(tǒng)問的數(shù)據(jù)交換,網(wǎng)絡(luò)的拓樸結(jié)構(gòu)如圖1所示.

          系統(tǒng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)

          圖1系統(tǒng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)

          2系統(tǒng)采用的驅(qū)動(dòng)模型

          目前基于WINCE的兩種驅(qū)動(dòng)模型是本機(jī)設(shè)備驅(qū)動(dòng)程序和流接口驅(qū)動(dòng)程序,不同的驅(qū)動(dòng)模型只能通過它們支持的軟件接口來區(qū)別.

          本系統(tǒng)采用的是流接口驅(qū)動(dòng)程序,圖2給出了流接口驅(qū)動(dòng)的工作結(jié)構(gòu).流接口驅(qū)動(dòng)模型由設(shè)備管理器統(tǒng)一加載、管理和卸載,應(yīng)用程序通過文件系統(tǒng)的API函數(shù)調(diào)用流接口函數(shù),然后由流接口驅(qū)動(dòng)程序調(diào)用本機(jī)驅(qū)動(dòng)或者通過設(shè)備管理器與系統(tǒng)內(nèi)核或外圍設(shè)備進(jìn)行信息交流。

          流接口工作結(jié)構(gòu)

          圖2流接口工作結(jié)構(gòu)

          3車載網(wǎng)絡(luò)主控單元硬件平臺(tái)實(shí)現(xiàn)

          本車載網(wǎng)絡(luò)主控單元的硬件平臺(tái)采用的是嵌入式處理器ARM9s3c2440,CAN控制器SJAlooO,CAN總線收發(fā)器82C250,人機(jī)界面采用觸摸屏.系統(tǒng)的硬件組成結(jié)構(gòu)如圖3所示.

          系統(tǒng)硬件組成結(jié)構(gòu)

          圖3系統(tǒng)硬件組成結(jié)構(gòu)

          車載網(wǎng)絡(luò)主控制單元同時(shí)跨接在兩個(gè)CAN網(wǎng)絡(luò)之間,實(shí)現(xiàn)對(duì)高速、低速CAN網(wǎng)絡(luò)的監(jiān)控和數(shù)據(jù)的共享,相當(dāng)于一個(gè)CAN的HUB.ARM9s3c2440和SJA1000之間的部分硬件原理下面將簡(jiǎn)單描述.

          本系統(tǒng)采用的XC95144是xILINX公司的復(fù)雜可編程邏輯器件(CPLD).由于系統(tǒng)還要提供許多其他接盯,如USB和PCMICA,為了更高效利用ARM9s3c2440的系統(tǒng)資源,特別是中斷資源,在系統(tǒng)硬件的設(shè)計(jì)中采用了CPLD.CAN控制器SJAl000的中斷引腳連接到CPLD,通過編制CPLD的一些邏輯控制程序,產(chǎn)生SJA1000的片選信號(hào)與中斷信號(hào),若CAN-INT中斷,則觸發(fā)ARM處理器的EINT0引腳,EINT0的硬件中斷后,ARM捕捉到此中斷信號(hào).82C250是CAN總線收發(fā)器,在本系統(tǒng)的設(shè)計(jì)中82C250與SJA1000間采用了光耦器件來進(jìn)行連接.

          4流接口驅(qū)動(dòng)相關(guān)函數(shù)的實(shí)現(xiàn)

          4.1 WINCE下訪問SJAl000寄存器的實(shí)現(xiàn)

          根據(jù)硬件平臺(tái),得到ARM9s3c2440與SJA1000連接的硬件地址,即SJA1000的物理基地址,再結(jié)合SJA1000各寄存器與基地址的偏移關(guān)系.可以得到寄存器的所有物理地址.

          在WINCE下,由于有MMU管理單元,因此不能使用物理地址,而只能采用虛擬地址(VA)來訪問該寄存器.調(diào)用WINCE的系統(tǒng)函數(shù)VirtualAlloc,VirtualCopy把物理地址轉(zhuǎn)化為程序可以訪問的虛擬地址,然后通過SJA1000的虛擬地址來設(shè)置SJA1000的工作狀態(tài).SJA1000的基本工作流程如圖4所示.


          上一頁 1 2 下一頁

          評(píng)論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();