基于A(yíng)RM LPC2292 的CAN總線(xiàn)和以太網(wǎng)間的網(wǎng)關(guān)設計
0 引言
本文引用地址:http://dyxdggzs.com/article/152646.htmCAN 總線(xiàn)是一種設備互連的總線(xiàn)型控制網(wǎng)絡(luò ),與其它的現場(chǎng)總線(xiàn)相比,CAN 總線(xiàn)的數據通信具有突出的可靠性、實(shí)時(shí)性和靈活性。這些特點(diǎn)使得其能同時(shí)滿(mǎn)足過(guò)程控制和制造業(yè)自動(dòng)化的需求,因此被認為是最具有發(fā)展前途的現場(chǎng)總線(xiàn)之一。但是,由于其收發(fā)器驅動(dòng)能力的限制,約束了CAN 總線(xiàn)的最遠直接傳輸距離和總線(xiàn)上可以?huà)旖拥淖畲蠊濣c(diǎn)數,給系統組網(wǎng)帶來(lái)了一定的困難。而另一方面,由于以太網(wǎng)的低成本、開(kāi)放性、應用軟硬件的支持以及強大的組網(wǎng)能力,目前已經(jīng)是應用最廣泛的局域網(wǎng)絡(luò )技術(shù),越來(lái)越多的工程師們開(kāi)始采用CAN 總線(xiàn)與以太網(wǎng)結合的技術(shù)。針對這樣一種情況,本文提出一種CAN 總線(xiàn)和以太網(wǎng)互連系統的設計方案,實(shí)現CAN 總線(xiàn)網(wǎng)和以太網(wǎng)的數據互連。
1 系統結構
用網(wǎng)關(guān)連接CAN 現場(chǎng)總線(xiàn)和以太網(wǎng)的網(wǎng)絡(luò )架構圖如圖1 所示。
圖1 系統網(wǎng)絡(luò )結構示意圖
網(wǎng)關(guān)的嵌入不僅使管理深入到控制現場(chǎng),同時(shí)給系統組網(wǎng)帶來(lái)了很大的方便。
?、?增大了系統的最大CAN節點(diǎn)數
在不接中繼器的條件下,一個(gè)CAN 子網(wǎng)內最多可以?huà)旖?10 個(gè)節點(diǎn),而每個(gè)網(wǎng)關(guān)下可以連接一個(gè)子網(wǎng),通過(guò)多個(gè)網(wǎng)關(guān)可以把多個(gè)子網(wǎng)聯(lián)系在一起,從而增加了系統的節點(diǎn)數。
?、?擴大了系統的組網(wǎng)范圍
CAN 的直接通信距離大概只有10km 左右,系統按照現場(chǎng)區域和節點(diǎn)數構建子網(wǎng),子網(wǎng)與子網(wǎng)通過(guò)以太網(wǎng)連接,從而突破了區域和距離的限制。
?、?實(shí)現了具有不同傳輸速度的現場(chǎng)總線(xiàn)子網(wǎng)的相互通信網(wǎng)關(guān)提供一個(gè)友好的人機接口,用戶(hù)可以根據需要設置IP 地址和CAN 控制器的波特率。
1.2 網(wǎng)關(guān)嵌入的問(wèn)題
網(wǎng)關(guān)的應用給系統帶來(lái)方便的同時(shí),也付出了一定的代價(jià),在設計中必須考慮這些問(wèn)題,以提高系統的整體效率。這些問(wèn)題表現在:
?、賹?shí)時(shí)性
由于使用網(wǎng)關(guān),對數據的處理必須經(jīng)歷先存儲,再轉換,最后再發(fā)送的過(guò)程,增加了一些存儲轉發(fā)延時(shí)。因此在設計中必須考慮系統的實(shí)時(shí)性,要求系統能在存儲新接收到的數據后立即啟動(dòng)協(xié)議轉換和數據轉發(fā)任務(wù),盡量減小系統延時(shí)。
?、?安全性
若網(wǎng)關(guān)出現故障,會(huì )對CAN 子網(wǎng)和以太網(wǎng)間的通信產(chǎn)生影響,甚至會(huì )癱瘓這個(gè)子網(wǎng)與整個(gè)系統的通信。因此在硬件設計中,要盡量避免干擾等問(wèn)題的出現;軟件設計必須能對一些可糾正錯誤及時(shí)作出反應,并把錯誤信息返回給用戶(hù)。
2 網(wǎng)關(guān)硬件設計
網(wǎng)關(guān)硬件設計分為CAN 接口、以太網(wǎng)網(wǎng)絡(luò )接口和人機接口等3 個(gè)部分。
2.1 主控制器的選擇
主控制器采用Philips 的ARM 控制器LPC2292。LPC2292 基于一個(gè)支持實(shí)時(shí)仿真和跟蹤TM 的16/32 位ARM7TDMI-SCPU。CPU 內核工作電壓為1.8V,引腳工作電壓為3.3V。
LPC2292 帶有256 k 字節(kB)嵌入的高速Flash 存儲器,完全可以滿(mǎn)足系統代碼的容量要求,無(wú)需外擴存儲器;獨特的加速結構使32 位代碼能夠在最大時(shí)鐘速率下運行,可實(shí)現TCP/IP 協(xié)議棧中的ARP、TCP、UDP、ICMP 等網(wǎng)絡(luò )協(xié)議。
LPC2292 內部集成兩個(gè)CAN 控制器,方便系統采用冗余設計。CAN控制器主要特性有:?jiǎn)蝹€(gè)總線(xiàn)上的數據傳輸速率高達1Mb/s;32 位寄存器和RAM 訪(fǎng)問(wèn);兼容CAN2.0B,ISO11898-1規范;全局驗收濾波器可以識別所有的11 位和29 位Rx 標識符;驗收濾波器為選擇的標準標識符提供了FullCAN-style 自動(dòng)接收。
CPU 外部靜態(tài)存儲器控制器為CPU 內部系統總線(xiàn)和外部存儲器或外部I/O 器件提供了一個(gè)接口。利用這種外部總線(xiàn)可以方便與以太網(wǎng)網(wǎng)卡控制器進(jìn)行連接。
2.2 CAN 接口
考慮系統的安全性,CAN 接口部分采用冗余設計。當正常通道發(fā)生故障時(shí)自動(dòng)調用冗余通道進(jìn)行傳輸;如果冗余通道也發(fā)生故障,則進(jìn)入故障處理。其硬件接口示意圖如圖2 所示。LPC2292 兩路通道分別通過(guò)高速總線(xiàn)驅動(dòng)器TJA1050 與總線(xiàn)相連??偩€(xiàn)驅動(dòng)器采用帶隔離的DC/DC 單獨供電,不僅實(shí)現了兩路通道之間的電氣隔離,也實(shí)現了網(wǎng)關(guān)與總線(xiàn)之間的電氣隔離。
2.3 網(wǎng)絡(luò )接口
網(wǎng)卡控制器采用臺灣RETACK 公司的10M 以太網(wǎng)控制芯片RTL8019 ,支持全雙工工作模式,軟件兼容8 位或16 位的NE2000 模式;內部集成DMA 控制器、ISA 總線(xiàn)控制器以及16kRAM 、網(wǎng)絡(luò )PHY 收發(fā)器等。RTL8019 使用LPC2292 外部存儲控制的BANK3 部分,它的數據地址范圍為0x83400000~0x8340001F 。RTL8019 的工作電壓為+5V,而LPC2292 的引腳工作電壓為3.3V ,所以還應在連接線(xiàn)上串聯(lián)470 Ω 的保護電阻。網(wǎng)絡(luò )采用雙絞線(xiàn)傳輸。
圖2 網(wǎng)絡(luò )硬件結構示意圖
2.4 人機接口
除了上面的主要部分外,還有LED 數碼管顯示和鍵盤(pán)部分,LED 用來(lái)顯示工作狀態(tài),鍵盤(pán)根據具體實(shí)際情況修正總線(xiàn)波特率和網(wǎng)關(guān)的IP 地址。
3 軟件設計
3.1 引入RTOS
網(wǎng)關(guān)設計對系統的實(shí)時(shí)性要求比較高,而采用傳統的前后臺設計方法又會(huì )顯得過(guò)于復雜,實(shí)時(shí)性得不到保證。解決這個(gè)問(wèn)題的最好方法就是采用實(shí)時(shí)操作系統RTOS 。目前世界上已有一大批成熟的嵌入式操作系統,其中μC/OS-II 操作系統是一種源代碼公開(kāi)的嵌入式操作系統,具有代碼短小精悍、簡(jiǎn)單易學(xué)的特點(diǎn),針對網(wǎng)關(guān)的設計,這是一個(gè)理想的選擇。
μC/OS-II 完全是占先式的實(shí)時(shí)內核,是基于優(yōu)先級的,即總是讓就緒態(tài)中優(yōu)先級最高的任務(wù)先運行,因此實(shí)時(shí)性比非占先的內核要好。它的絕大部分代碼是用C 語(yǔ)言編寫(xiě)的,可移植性強。
圖3 嵌入式計算機系統
tcp/ip相關(guān)文章:tcp/ip是什么
評論