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

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > CAN總線接口擴(kuò)展設(shè)計(jì)與驅(qū)動開發(fā)

          CAN總線接口擴(kuò)展設(shè)計(jì)與驅(qū)動開發(fā)

          作者: 時間:2012-10-23 來源:網(wǎng)絡(luò) 收藏

          2.3 初始化
          控制器MCP2515正常運(yùn)行之前,需要完成初始化。初始化工作是在函數(shù)Init_MCP2515內(nèi)完成的。首先設(shè)置通信的波特率,隨后屏蔽中斷,設(shè)置屏蔽和接收寄存器,接著是清除接收和發(fā)送緩沖區(qū),最后打開中斷。
          2.4 CAN收發(fā)實(shí)現(xiàn)
          根據(jù)CAN通信協(xié)議的特性,CAN的收發(fā)程序中均包含標(biāo)識符(ID)和數(shù)據(jù)。下面介紹了接收程序,在MCP2515中包含了兩個接收緩沖器RxB0和RxB1,且每個接收緩沖器配有多個驗(yàn)收過濾寄存器。文中在中斷方式下,通過設(shè)置驗(yàn)收過濾寄存器對符合條件的報(bào)文數(shù)據(jù)進(jìn)行接收,函數(shù)流程如圖4所示。

          本文引用地址:http://www.ex-cimer.com/article/153801.htm

          e.JPG


          2.5 流函數(shù)編寫
          MCP2515的流程序編譯后生成DLL,然后建立CANBus.def文件將其中的函數(shù)導(dǎo)出。這一文件中包含CAN_Init()、CAN_IOCon trol()以及CAN_PowerUp()等一組標(biāo)準(zhǔn)函數(shù),這些函數(shù)是用于完成標(biāo)準(zhǔn)的文件I/O函數(shù)和電源管理等。最終要將此文件添加到本程序的工程中。
          因此在對設(shè)備進(jìn)行讀寫操作時,首先要先通過CreatFile()函數(shù)凋用CAN_Open()打開設(shè)備,在此過程中CAN_Open()函數(shù)用到了初始化函數(shù)CAN_Init()返回的句柄,而CAN_Read()和CAN_Write()函數(shù)需要CreatFile()成功執(zhí)行后返回的句柄。在應(yīng)用程序中可通過ReadFile()和Write File()函數(shù)來調(diào)用CAN_Read()和CAN_Write()來對設(shè)備進(jìn)行讀寫操作。
          2.6 注冊表
          具體的流接口程序和注冊表是分不開的,在WINCE內(nèi)核中添加注冊表文件CANBus.reg,內(nèi)容為
          [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\CANBus]
          “Prefix”=“CAN“
          “Dll”=“CANBus.dll”
          “Order”=dword:1
          “Index”=dword:1

          3 結(jié)束語
          討論了ARM11處理器S3C6410的CAN接口的方法,利用該處理器內(nèi)部集成的SPI接口出了詳細(xì)的硬件電路,并了基于WINCE系統(tǒng)的CAN接口流驅(qū)動程序。試驗(yàn)驗(yàn)證CAN網(wǎng)絡(luò)通信完全正常,證明了該方案的可實(shí)施性。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(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); })();