CAN總線與以太網(wǎng)嵌入式網(wǎng)關(guān)電路設(shè)計(jì)攻略 —電路圖天天讀(91)
提出一種工業(yè)現(xiàn)場總線與以太網(wǎng)互聯(lián)方法,介紹以太網(wǎng)與CAN 現(xiàn)場總線之間協(xié)議轉(zhuǎn)換網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn),采用AT89C55($1.4635) 作為主處理器,通過兩個(gè)接口芯片實(shí)現(xiàn)CAN總線與以太網(wǎng)的互連,分別給出其硬件結(jié)構(gòu)和軟件設(shè)計(jì)思想。
目前,對于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é)議相對簡單,比較適合用于低成本、速率要求不高的離散控制系統(tǒng)。從合理的成本和有效利用處理能力這兩方面考慮,該設(shè)計(jì)采用低檔MCU 加接口芯片的方法,其硬件框圖見圖。

主控芯片及以太網(wǎng)接口模塊
根據(jù)要求,該系統(tǒng)選擇了性能價(jià)格比較高的AT89C55($1.4635) 單片機(jī)。它是面向測控對象和嵌入式應(yīng)用的,所以它的體系結(jié)構(gòu)以及CPU、指令系統(tǒng)、外圍單元電路都是按照這種要求專門設(shè)計(jì)的。它內(nèi)部帶高達(dá)20 KB 的FLASH($44.9500) 程序存儲(chǔ)器,AT89C55($1.4635) 完全兼容8051 指令集,片上FLASH($44.9500) 方便了使用者進(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 芯片,它是一種高度集成的以太網(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ū)懀x該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($1.4635) 的片內(nèi)RAM 只有256 個(gè)字節(jié),因此無法存儲(chǔ)這么大的包,所以這里擴(kuò)展了一個(gè)32 KB 的外部RAM,這樣同時(shí)也能提高單片機(jī)的數(shù)據(jù)傳輸速度。

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