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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于CAN總線與以太網(wǎng)的嵌入式網(wǎng)關(guān)設(shè)計(jì)

          基于CAN總線與以太網(wǎng)的嵌入式網(wǎng)關(guān)設(shè)計(jì)

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

            本文為一種工業(yè)現(xiàn)場(chǎng)總線與以太網(wǎng)互聯(lián)方法,介紹以太網(wǎng)與CAN現(xiàn)場(chǎng)總線之間協(xié)議轉(zhuǎn)換網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn),采用AT89C55作為主處理器,通過兩個(gè)接口芯片實(shí)現(xiàn)CAN總線與以太網(wǎng)的互連,分別給出其硬件結(jié)構(gòu)和軟件設(shè)計(jì)思想。為企業(yè)信息網(wǎng)絡(luò)與控制網(wǎng)絡(luò)集成提供一種可行的方法。

            1 硬件結(jié)構(gòu)

            目前,對(duì)于CAN和以太網(wǎng)相連的嵌入式網(wǎng)關(guān)設(shè)計(jì)主要有兩種方法:一種是低檔MCU加接口芯片的設(shè)計(jì)方法,另一種是高檔MCU加EOS(實(shí)時(shí)多任務(wù)操作系統(tǒng))再加接口芯片的設(shè)計(jì)方法。因CAN只采用了ISO/OSI參考模型的一、二層,協(xié)議相對(duì)簡(jiǎn)單,比較適合用于低成本、速率要求不高的離散控制系統(tǒng)。從合理的成本和有效利用處理能力這兩方面考慮,該設(shè)計(jì)采用低檔MCU加接口芯片的方法,其硬件框圖見圖1。

            圖1 硬件原理圖

            1.1 主控芯片及以太網(wǎng)接口模塊

            根據(jù)要求,該系統(tǒng)選擇了性能價(jià)格比較高的Atmel公司生產(chǎn)的AT89C55單片機(jī)。它是面向測(cè)控對(duì)象和嵌入式應(yīng)用的,所以它的體系結(jié)構(gòu)以及CPU、指令系統(tǒng)、外圍單元電路都是按照這種要求專門設(shè)計(jì)的。它內(nèi)部帶高達(dá)20 KB的FLASH程序存儲(chǔ)器,AT89C55完全兼容8051指令集,片上FLASH方便了使用者進(jìn)行在線編程,工作速率最高可達(dá)33 MHz,256 B的內(nèi)部RAM,32個(gè)可編程的I/O口,3個(gè)16位的定時(shí)/計(jì)數(shù)器,8個(gè)中斷源,支持低功耗的空閑工作模式。以太網(wǎng)接口選用的是RTL8019AS芯片,它是由Realtek公司生產(chǎn)的一種高度集成的以太網(wǎng)控制器,能實(shí)現(xiàn)以太網(wǎng)媒介訪問層(MAC)和物理層(PHY)的全部功能。RTL8019AS內(nèi)部有兩個(gè)RAM區(qū)域:一是16 KB,地址為0x4000~0x7fff,要接收和發(fā)送數(shù)據(jù)包必須通過DMA讀寫RTL8019AS內(nèi)部的16 KB的RAM,它實(shí)際上是雙端口RAM,即有兩條總線與其連接,一條總線用于RTL8019AS讀/寫或?qū)?讀該RAM,即本地DMA;另一條總線用于單片機(jī)讀或?qū)懺揜AM,即遠(yuǎn)程DMA;二是32個(gè)字節(jié),地址為0x0000~0x001F,用于存儲(chǔ)以太網(wǎng)物理地址。主控芯片和以太網(wǎng)接口芯片的硬件接口原理圖見圖2。值得注意的是由于以太網(wǎng)的包最大可以超過1 500個(gè)字節(jié),AT89C55的片內(nèi)RAM只有256個(gè)字節(jié),因此無法存儲(chǔ)這么大的包,所以這里擴(kuò)展了一個(gè)32 KB的外部RAM,這樣同時(shí)也能提高單片機(jī)的數(shù)據(jù)傳輸速度。

            圖2 以太網(wǎng)接口電路原理圖

            1.2 CAN接口模塊

            組成CAN系統(tǒng)的主要器件是CAN控制器和收發(fā)器。該設(shè)計(jì)中,CAN接口模塊選用SJA1000芯片和PCA82C250芯片。SJA1000是一個(gè)獨(dú)立的CAN控制器,它是Philips公司另一個(gè)CAN控制器PCA82C200的替代產(chǎn)品,且增加了一種新的工作模式(Peli CAN),這種模式支持CAN 2.0B協(xié)議。SJA1000主要完成CAN的通信協(xié)議,實(shí)現(xiàn)報(bào)文的裝配和拆分、接收信息的過濾和校驗(yàn)等。

            PCA82C250是CAN控制器與物理總線之間的接口,主要用于增強(qiáng)系統(tǒng)的驅(qū)動(dòng)能力。采用收發(fā)器的系統(tǒng)中,節(jié)點(diǎn)數(shù)至少可以達(dá)到110個(gè),同時(shí)還具有降低射頻干擾(RFI)和很強(qiáng)的抗電磁干擾 (EMI)能力。在處理這部分電路時(shí),有幾個(gè)地方要特別注意:

           ?。?)晶振電路的問題。89C55和SJA1000都應(yīng)該有各自獨(dú)立的晶振電路,不能夠用SJA1000的時(shí)鐘輸出信號(hào)CLKOUT來驅(qū)動(dòng)單片機(jī)。

           ?。?)復(fù)位引腳的問題。雖然SJA1000的復(fù)位是低電平,但不能通過一個(gè)非門直接連接單片機(jī)的復(fù)位引腳。一般對(duì)解決復(fù)位引腳問題有兩種方式:第一種是使用單片機(jī)的I/O引腳控制SJA的復(fù)位引腳,其好處是單片機(jī)可以完全控制SJA的復(fù)位過程;第二種是采用適當(dāng)?shù)膹?fù)位芯片,為了降低成本,該設(shè)計(jì)采取的是第一種方法。

            (3)RX1引腳的電位必須維持在約0.5 VCC上,否則將不能形成CAN協(xié)議所要求的邏輯電平。

           ?。?)一定要注意電纜的終端阻抗匹配,它直接影響CAN總線是否能正常工作和網(wǎng)絡(luò)性能。CAN接口模塊的硬件電路圖見圖3,在PCA82C250的RS腳上接有一個(gè)斜率電阻R,可根據(jù)總線通信速度適當(dāng)調(diào)整電阻的大小。

            圖3 CAN接口模塊的硬件電路圖

            2 通信模塊軟件設(shè)計(jì)

            2.1 SJA1000驅(qū)動(dòng)程序的實(shí)現(xiàn)

            SJA1000驅(qū)動(dòng)程序是由SJA的初始化函數(shù)、發(fā)送函數(shù)、接收函數(shù)組成的,圖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); })();