基于CAN總線與以太網的嵌入式網關設計
近年來,隨著以太網技術的進一步發(fā)展和完善,特別是通信速率的提高和交互技術的應用,使得以太網技術應用于現(xiàn)場控制領域成為可能,這對工業(yè)控制網絡產生了新的影響。從目前的趨勢來看,以太網己經進入了現(xiàn)場控制級,但是已有的現(xiàn)場總線仍將繼續(xù)存在,工業(yè)以太網只能占領一定的市場。
從現(xiàn)實來看,以太網擴展了現(xiàn)有的系統(tǒng),但是現(xiàn)場總線不可能完全被工業(yè)以太網替代,后者的潛力巨大,其應用領域一定會不斷擴大。所以,將現(xiàn)場總線與以太網結合,從而實現(xiàn)底層生產與上層管理的緊密集成,已經成為一種趨勢。CAN總線作為國際上應用最廣泛的現(xiàn)場總線之一,在我國也得到了很廣泛的應用,該設計以 CAN總線作為工業(yè)現(xiàn)場總線,實現(xiàn)其與以太網的互聯(lián)。
1 硬件結構
目前,對于CAN和以太網相連的嵌入式網關設計主要有兩種方法:一種是低檔MCU加接口芯片的設計方法,另一種是高檔MCU加EOS(實時多任務操作系統(tǒng))再加接口芯片的設計方法。因CAN只采用了ISO/OSI參考模型的一、二層,協(xié)議相對簡單,比較適合用于低成本、速率要求不高的離散控制系統(tǒng)。從合理的成本和有效利用處理能力這兩方面考慮,該設計采用低檔MCU加接口芯片的方法,其硬件框圖見圖 1。
1.1 主控芯片及以太網接口模塊
根據要求,該系統(tǒng)選擇了性能價格比較高的Atmel公司生產的AT89C55單片機。它是面向測控對象和嵌入式應用的,所以它的體系結構以及CPU、指令系統(tǒng)、外圍單元電路都是按照這種要求專門設計的。它內部帶高達20 KB的FLASH程序存儲器,AT89C55完全兼容8051指令集,片上FLASH方便了使用者進行在線編程,工作速率最高可達33 MHz,256 B的內部RAM,32個可編程的I/O口,3個16位的定時/計數器,8個中斷源,支持低功耗的空閑工作模式。以太網接口選用的是RTL8019AS芯片,它是由Realtek公司生產的一種高度集成的以太網控制器,能實現(xiàn)以太網媒介訪問層(MAC)和物理層(PHY)的全部功能。RTL8019AS內部有兩個RAM區(qū)域:一是16 KB,地址為0x4000~0x7fff,要接收和發(fā)送數據包必須通過DMA讀寫RTL8019AS內部的16 KB的RAM,它實際上是雙端口RAM,即有兩條總線與其連接,一條總線用于RTL8019AS讀/寫或寫/讀該RAM,即本地DMA;另一條總線用于單片機讀或寫該RAM,即遠程DMA;二是32個字節(jié),地址為0x0000~0x001F,用于存儲以太網物理地址。主控芯片和以太網接口芯片的硬件接口原理圖見圖2。值得注意的是由于以太網的包最大可以超過1 500個字節(jié),AT89C55的片內RAM只有256個字節(jié),因此無法存儲這么大的包,所以這里擴展了一個32 KB的外部RAM,這樣同時也能提高單片機的數據傳輸速度。
1.2 CAN接口模塊
組成CAN系統(tǒng)的主要器件是CAN控制器和收發(fā)器。該設計中,CAN接口模塊選用SJA1000芯片和PCA82C250芯片。SJA1000是一個獨立的CAN控制器,它是Philips公司另一個CAN控制器PCA82C200的替代產品,且增加了一種新的工作模式(Peli CAN),這種模式支持CAN 2.0B協(xié)議。SJA1000主要完成CAN的通信協(xié)議,實現(xiàn)報文的裝配和拆分、接收信息的過濾和校驗等。
評論