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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM7處理器LPC2119的USB-CAN轉(zhuǎn)換器設(shè)計(jì)

          基于ARM7處理器LPC2119的USB-CAN轉(zhuǎn)換器設(shè)計(jì)

          作者: 時(shí)間:2011-02-17 來源:網(wǎng)絡(luò) 收藏


          1.4 系統(tǒng)電源設(shè)計(jì)
          整個(gè)電路的電源由USB供電,由于LPC2119的IO電路電源要求為3.3 V,內(nèi)核電路電源要求為1.8 V,在本應(yīng)用中采用兩片低壓差線性溫壓器(LDO)1117為系統(tǒng)供電,如圖4所示。
          1.5 系統(tǒng)PCB設(shè)計(jì)
          整個(gè)系統(tǒng)的PCB采用雙面板方式設(shè)計(jì),大小為100×120,布局及外形如圖5所示。



          2 固件設(shè)計(jì)
          本系統(tǒng)軟件設(shè)計(jì)時(shí)采用μVision3 IDE,μVision3IDE是一個(gè)窗口化的軟件開發(fā)平臺(tái),它集成了功能強(qiáng)大的編輯器、工程管理器以及各種編譯工具(包括C編譯器、宏匯編器、鏈接/裝載器和16進(jìn)制文件轉(zhuǎn)換器),通過ULINK仿真調(diào)試。程序框架采用傳統(tǒng)的前后臺(tái)方式。CAN控制器驅(qū)動(dòng)程序包括4部分內(nèi)容:CAN控制器的初始化、報(bào)文的接收、報(bào)文的發(fā)送和總線異常處理。由于LPC2119沒有開發(fā)內(nèi)部讀寫總線,本設(shè)計(jì)在對CH375操作時(shí)使用通用I/O模擬并口讀寫時(shí)序,其端口定義方式如下:

          程序在使用通用I/O模擬并口讀寫時(shí)序?qū)H375的基本操作包括CPU端口初始化、向CH375寫命令、向CH375寫數(shù)據(jù)、從CH375讀數(shù)據(jù),其實(shí)現(xiàn)過程包含:初始化void CH375_PORT_INIT();向CH375寫命令void xWriteCH375Cmd(uint8 mCmd);向CH375寫數(shù)據(jù)void xWrite CH375 Data(uint8 mData);從CH375讀數(shù)據(jù)uint8 xReadCH375Data(void)等4個(gè)基本函數(shù)。

          3 結(jié)語
          本系統(tǒng)設(shè)計(jì)采用內(nèi)置CAN控制器的LPC2119作為主控制器,CH375作為USB接口芯片,實(shí)現(xiàn)USBCAN轉(zhuǎn)換器,論述了LPC2119的外圍電路、CAN總線驅(qū)動(dòng)電路以及LPC2119與CH375之間的接口連接,并在軟件給出LPC2119使用通用I/O模擬并口讀寫時(shí)序的方法,對LPC2119,CH375及CAN總線的實(shí)際應(yīng)用具有一定的參考價(jià)值。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: 收發(fā)器

          評論


          相關(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); })();