基于A(yíng)RM的工業(yè)以太網(wǎng)智能網(wǎng)關(guān)研制
1. 概述
本文引用地址:http://dyxdggzs.com/article/264151.htm當前,在工業(yè)控制中廣泛采用總線(xiàn)技術(shù),它把系統中的各個(gè)設備連接起來(lái),形成一個(gè)工業(yè)網(wǎng)絡(luò )系統。在這個(gè)系統上面的節點(diǎn)有:具備智能和通信特點(diǎn)的傳感器、控制器、各類(lèi)通信設備和計算機等。然而,由于各集團之間的利益競爭,目前的工業(yè)現場(chǎng)儀表總線(xiàn)方式非常多,有的儀表采用串口通訊方式,有的采用USB總線(xiàn)方式,有的采用CAN總線(xiàn)方式,有的采用以太網(wǎng)方式。這些儀表各自獨立,難以統一集中監控或管理,顯然,這些總線(xiàn)控制系統的發(fā)展趨勢應該是共同遵從統一的技術(shù)規范,真正形成一套開(kāi)放式互聯(lián)系統,并與目前已廣泛使用的信息網(wǎng)絡(luò )——以太網(wǎng)無(wú)縫連接。因此,構建工業(yè)以太網(wǎng)將是工業(yè)控制網(wǎng)絡(luò )的主要發(fā)展方向。
但是,在處理器方面,目前在8位和16 位微控制器平臺上運行的TCP/IP 協(xié)議??梢詫⒅悄芸刂圃O備、儀器儀表等接入以太網(wǎng),但它僅可完成簡(jiǎn)單、低速的數據傳輸,無(wú)法滿(mǎn)足工業(yè)現場(chǎng)的實(shí)時(shí)性和可靠性要求,尤其是在連接請求較多或控制任務(wù)較復雜時(shí),幾乎沒(méi)有實(shí)時(shí)性可言。因此,必須采用功能更強、處理速度更快的32 位微處理器,并且運行基于特定應用的嵌入式實(shí)時(shí)操作系統進(jìn)行合理的任務(wù)調度,才能滿(mǎn)足工業(yè)現場(chǎng)對實(shí)時(shí)性和可靠性的要求。本文以基于ARM內核的32位微控制器LPC2210研制工業(yè)以太網(wǎng)智能網(wǎng)關(guān)。
2. 基于ARM的智能網(wǎng)關(guān)硬件系統結構
PHILIP公司的LPC2210是基于一個(gè)支持實(shí)時(shí)仿真和跟蹤的32位ARM7TDMI-S核結構的微控制器。ARM結構是基于精簡(jiǎn)指令集計算機(RISC)原理設計的,由于使用了流水線(xiàn)技術(shù),處理和存儲系統的所有部分都可連續工作,通常在執行一條指令的同時(shí)對下一條指令進(jìn)行譯碼,并將第3條指令從存儲器中取出。同時(shí)LPC2210具有多個(gè)32位定時(shí)器、4路10位ADC或8路lO位ADC以及多達9個(gè)外部,因而它具有較高的性能,非常適合于通信網(wǎng)關(guān)、協(xié)議轉換器、嵌入式軟modem以及其它各種類(lèi)型的應用。目前,常用的通信接口有RS232、USB、CAN、以太網(wǎng)等接口。本智能網(wǎng)關(guān)以L(fǎng)PC2210的控制核心,設計其相應的數據傳輸硬件電路,實(shí)現幾種常用的總線(xiàn)形式的數據向以太網(wǎng)的傳輸,如圖1所示。

圖1 系統設計架構
3. 硬件電路設計
圖2為USB和CAN總線(xiàn)接口電路設計,CAN總線(xiàn)電路主要由五部分構成:微控制器LPC2210,獨立的CAN控制器SJA1000,CAN總線(xiàn)驅動(dòng)器PCA82C250 ,高速光電耦合器6N137,電源隔離模塊。微控制器LPC2210通過(guò)控制SJA1000實(shí)現數據的發(fā)送、接收。SJA1000負責數據鏈路層的工作, 它把發(fā)送緩沖器的數據經(jīng)過(guò)處理后送到82C250,把要接收的數據經(jīng)過(guò)處理后放到接收緩沖器等待微處理器的讀取。82C250提供SJA1000與物理總線(xiàn)之間的接口。6N137和電源隔離模塊用于實(shí)現總線(xiàn)上各個(gè)CAN節點(diǎn)的電氣隔離,增強系統的抗干擾能力。CH372 是一個(gè)USB 總線(xiàn)的通用設備接口芯片,具有8位數據總線(xiàn)和讀、寫(xiě)、片選控制線(xiàn)以及中斷輸出,可以方便的掛接到單片機或DSP等控制器的系統總線(xiàn)上。CH372內置了USB通信中的底層協(xié)議,具有內置固件模式和外置固件模式。在內置固件模式下, CH372自動(dòng)處理默認端點(diǎn)0的所有事務(wù),本地端單片機只要負責數據交換,在外置固件模式下,由外部MCU根據需要自行處理各種USB 請求,從而可以實(shí)現符合各種USB 類(lèi)規范的設備。
LPC2210的P3.23連接到SJA1000 的CS引腳,當為低電平時(shí)選中SJA1000,P0.30與SJA1000的INT引腳相連,用于USB中斷響應。P2.22和P3.21分別連接到CH372的CS和A0引腳,當P3.21為低電平、P2.22為高電平時(shí)選中CH372的命令端口;當P3.21為低電平、P2.22為低電平時(shí)選中CH372 的數據端口。

圖2 USB和CAN總線(xiàn)接口電路設計
圖3為RTL8019以太網(wǎng)接口電路,以太網(wǎng)接口電路分為三部分組成:微控制器LPC2210和以太網(wǎng)接口芯片RTL8019以及網(wǎng)絡(luò )接口HR901170A。微控制器LPC2210通過(guò)控制RTL8019實(shí)現數據的發(fā)送、接收。RTL8019集成以太網(wǎng)控制器、介質(zhì)訪(fǎng)問(wèn)控制子層(MAC) 和物理層, 可以方便地設計成ISA總線(xiàn)的系統。另外, 它提供給微控制器簡(jiǎn)單接口, 使微控制器只需要對其相關(guān)寄存器進(jìn)行相應讀寫(xiě)即可完成對以太網(wǎng)的操作,同時(shí),它還具有與NE2000 兼容、軟件移植性好以及價(jià)格低廉等優(yōu)點(diǎn)。

圖3 RTL8019以太網(wǎng)接口電路
電路設計為16位總線(xiàn)方式對RTL8019進(jìn)行訪(fǎng)問(wèn),RTL8019的數據線(xiàn)SD0- SD15 與CPU 的P2.0- P2.15 連接, RTL8019工作在跳線(xiàn)模式,它選擇的端口I/O 基地址為300H,電路上SA6、SA7、SA10~SA19均接地,SA8、SA9接高電平,SA5與片選P3.23連接,當SA5為低電平,即選中芯片。讀寫(xiě)信號線(xiàn)IORB、IOWB 分別接微處理器的讀寫(xiě)信號線(xiàn), RSTDRV為芯片復位引腳,接LPC2210的P0.6。RTL8019內置10BASE- T收發(fā)器, 所以網(wǎng)絡(luò )接口電路比較簡(jiǎn)單,通過(guò)一個(gè)濾波器之后, 連接到HR90117A, 這是一個(gè)集成網(wǎng)絡(luò )變壓器的RJ45 接口, 使用該接口既節省了空間, 又增加了可靠性。
其他部分的設計電路有DS1232的看門(mén)狗電路,用于對LPC2210的上電復位,MAX232串口電平轉換電路,用于串口通訊,還有系統所用到的電源電路等。
4. 基于μC /OSII的實(shí)時(shí)多任務(wù)軟件設計
嵌入式實(shí)時(shí)操作系統μC /OSII是專(zhuān)為微控制器系統和軟件開(kāi)發(fā)而設計的公開(kāi)源代碼的搶占式實(shí)時(shí)多任務(wù)操作系統內核,是一段在嵌入式系統啟動(dòng)后首先執行的背景程序,用戶(hù)的應用程序是運行于實(shí)時(shí)操作系統之上的各個(gè)任務(wù),實(shí)時(shí)操作系統根據各個(gè)任務(wù)的要求,進(jìn)行資源管理、消息管理、任務(wù)調度及異常處理等工作。對于對實(shí)時(shí)性和穩定性要求很高的數據采集系統來(lái)說(shuō),引入μC /OSII無(wú)疑將大大改善其性能。在實(shí)時(shí)系統中,每個(gè)任務(wù)均有一個(gè)優(yōu)先級,實(shí)時(shí)系統根據各個(gè)任務(wù)的優(yōu)先級,動(dòng)態(tài)地切換各個(gè)任務(wù),保證對實(shí)時(shí)性的要求。
智能網(wǎng)關(guān)軟件系統主程序流程圖如圖4,各個(gè)功能模塊可分為8個(gè)子任務(wù),分別為串口發(fā)送、接收子任務(wù),CAN總線(xiàn)數據發(fā)送、接收子任務(wù),USB數據發(fā)送、接收子任務(wù),以太網(wǎng)數據發(fā)送、接收子任務(wù),設置其任務(wù)優(yōu)先級串口發(fā)送子任務(wù)最低,以太網(wǎng)數據接收子任務(wù)最高,以信號量建立各個(gè)任務(wù)之間的聯(lián)系。主程序啟動(dòng)后,初始化各個(gè)模塊,然后啟動(dòng)各個(gè)子任務(wù),以太網(wǎng)接收子任務(wù)實(shí)時(shí)等待上位機是否有數據發(fā)送給下位機,接收數據后根據收到的上位機指令設置相應信號量。USB發(fā)送子任務(wù)、CAN總線(xiàn)數據發(fā)送子任務(wù)以及串口通訊發(fā)送子任務(wù)實(shí)時(shí)接收設定的信號量,根據信號量的值確定是否將當前以太網(wǎng)接收到的數據發(fā)送到相應的下位機。USB接收子任務(wù)、CAN總線(xiàn)數據接收子任務(wù)以及串口通訊接收子任務(wù)實(shí)時(shí)等待下位機發(fā)送數據給上位機,當接收到數據時(shí),設置相應信號量。以太網(wǎng)發(fā)送子任務(wù)實(shí)時(shí)判斷信號量,根據信號量的值將數據發(fā)送給上位機。通過(guò)本智能網(wǎng)關(guān),確保將不同總線(xiàn)形式的數據與以太網(wǎng)之間實(shí)現轉換。

圖4 軟件系統主程序流程圖
基于實(shí)時(shí)多任務(wù)的用戶(hù)應用程序設計,不必同時(shí)考慮所有任務(wù)運行的各種可能交叉的情況,分別編寫(xiě)各個(gè)子任務(wù),不但大大減小程序編寫(xiě)的工作量,而且減小出錯的可能性,保證最終程序具有高可靠性。
5. 結束語(yǔ)
本文的創(chuàng )新之處是:總結了前人工業(yè)網(wǎng)關(guān)的設計思想,提出了基于A(yíng)rm的工業(yè)以太網(wǎng)智能網(wǎng)關(guān)的軟硬件設計,通過(guò)將儀器儀表與計算機網(wǎng)絡(luò )連接起來(lái), 實(shí)現對儀表儀器的遠程采集和控制,有利于復雜工業(yè)現場(chǎng)多參數的集中監測。我們以5只油品帶CAN總線(xiàn)形式的含水儀以及10只串口通訊的流量?jì)x表作為下位機,通過(guò)本文研制的工業(yè)以太網(wǎng)智能網(wǎng)關(guān),系統間隔發(fā)送指令請求讀取下位機數據,然后將讀取的數據以TCP/IP方式發(fā)送到以太網(wǎng)上,在局域網(wǎng)的任何一臺PC機,鍵入智能網(wǎng)關(guān)的IP地址,即可觀(guān)察下位機的數據。該設計成本低、使用靈活, 將會(huì )有廣闊的市場(chǎng)前景。
參考文獻
[1] 周立功.ARM嵌入式系統基礎教程[M ].北京:北京航空航天大學(xué)出版社,2005.
[2] 呂昌泰,羅永剛.嵌入式以太網(wǎng)接口的研究與設計[J],微計算機信息,2006 年第22 卷第8-2 期,pp:68-30.
[3] 王軍波,鄒繼軍. USB總線(xiàn)與CAN總線(xiàn)協(xié)議轉換器設計[J]. 東華理工學(xué)院學(xué)報. 2006年9月第29卷第3期.pp:273-276.
交換機相關(guān)文章:交換機工作原理
評論