關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于ARM的工業(yè)以太網(wǎng)智能網(wǎng)關(guān)研制

基于ARM的工業(yè)以太網(wǎng)智能網(wǎng)關(guān)研制

作者: 時(shí)間:2014-10-20 來(lái)源:網(wǎng)絡(luò) 收藏

  1. 概述

本文引用地址:http://butianyuan.cn/article/264151.htm

  當(dāng)前,在工業(yè)控制中廣泛采用總線技術(shù),它把系統(tǒng)中的各個(gè)設(shè)備連接起來(lái),形成一個(gè)工業(yè)網(wǎng)絡(luò)系統(tǒng)。在這個(gè)系統(tǒng)上面的節(jié)點(diǎn)有:具備智能和通信特點(diǎn)的傳感器、控制器、各類(lèi)通信設(shè)備和計(jì)算機(jī)等。然而,由于各集團(tuán)之間的利益競(jìng)爭(zhēng),目前的工業(yè)現(xiàn)場(chǎng)儀表總線方式非常多,有的儀表采用串口通訊方式,有的采用USB總線方式,有的采用CAN總線方式,有的采用方式。這些儀表各自獨(dú)立,難以統(tǒng)一集中監(jiān)控或管理,顯然,這些總線控制系統(tǒng)的發(fā)展趨勢(shì)應(yīng)該是共同遵從統(tǒng)一的技術(shù)規(guī)范,真正形成一套開(kāi)放式互聯(lián)系統(tǒng),并與目前已廣泛使用的信息網(wǎng)絡(luò)——無(wú)縫連接。因此,構(gòu)建工業(yè)將是工業(yè)控制網(wǎng)絡(luò)的主要發(fā)展方向。

  但是,在處理器方面,目前在8位和16 位微控制器平臺(tái)上運(yùn)行的TCP/IP 協(xié)議??梢詫⒅悄芸刂圃O(shè)備、儀器儀表等接入以太網(wǎng),但它僅可完成簡(jiǎn)單、低速的數(shù)據(jù)傳輸,無(wú)法滿足工業(yè)現(xiàn)場(chǎng)的實(shí)時(shí)性和可靠性要求,尤其是在連接請(qǐng)求較多或控制任務(wù)較復(fù)雜時(shí),幾乎沒(méi)有實(shí)時(shí)性可言。因此,必須采用功能更強(qiáng)、處理速度更快的32 位微處理器,并且運(yùn)行基于特定應(yīng)用的嵌入式實(shí)時(shí)操作系統(tǒng)進(jìn)行合理的任務(wù)調(diào)度,才能滿足工業(yè)現(xiàn)場(chǎng)對(duì)實(shí)時(shí)性和可靠性的要求。本文以基于內(nèi)核的32位微控制器LPC2210研制工業(yè)以太網(wǎng)。

  2. 基于硬件系統(tǒng)結(jié)構(gòu)

  PHILIP公司的LPC2210是基于一個(gè)支持實(shí)時(shí)仿真和跟蹤的32位7TDMI-S核結(jié)構(gòu)的微控制器。ARM結(jié)構(gòu)是基于精簡(jiǎn)指令集計(jì)算機(jī)(RISC)原理設(shè)計(jì)的,由于使用了流水線技術(shù),處理和存儲(chǔ)系統(tǒng)的所有部分都可連續(xù)工作,通常在執(zhí)行一條指令的同時(shí)對(duì)下一條指令進(jìn)行譯碼,并將第3條指令從存儲(chǔ)器中取出。同時(shí)LPC2210具有多個(gè)32位定時(shí)器、4路10位ADC或8路lO位ADC以及多達(dá)9個(gè)外部,因而它具有較高的性能,非常適合于通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器、嵌入式軟modem以及其它各種類(lèi)型的應(yīng)用。目前,常用的通信接口有RS232、USB、CAN、以太網(wǎng)等接口。本以LPC2210的控制核心,設(shè)計(jì)其相應(yīng)的數(shù)據(jù)傳輸硬件電路,實(shí)現(xiàn)幾種常用的總線形式的數(shù)據(jù)向以太網(wǎng)的傳輸,如圖1所示。

  

 

  圖1 系統(tǒng)設(shè)計(jì)架構(gòu)

  3. 硬件電路設(shè)計(jì)

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

  LPC2210的P3.23連接到SJA1000 的CS引腳,當(dāng)為低電平時(shí)選中SJA1000,P0.30與SJA1000的INT引腳相連,用于USB中斷響應(yīng)。P2.22和P3.21分別連接到CH372的CS和A0引腳,當(dāng)P3.21為低電平、P2.22為高電平時(shí)選中CH372的命令端口;當(dāng)P3.21為低電平、P2.22為低電平時(shí)選中CH372 的數(shù)據(jù)端口。

  

 

  圖2 USB和CAN總線接口電路設(shè)計(jì)

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

  

 

  圖3 RTL8019以太網(wǎng)接口電路

  電路設(shè)計(jì)為16位總線方式對(duì)RTL8019進(jìn)行訪問(wèn),RTL8019的數(shù)據(jù)線SD0- SD15 與CPU 的P2.0- P2.15 連接, RTL8019工作在跳線模式,它選擇的端口I/O 基地址為300H,電路上SA6、SA7、SA10~SA19均接地,SA8、SA9接高電平,SA5與片選P3.23連接,當(dāng)SA5為低電平,即選中芯片。讀寫(xiě)信號(hào)線IORB、IOWB 分別接微處理器的讀寫(xiě)信號(hào)線, RSTDRV為芯片復(fù)位引腳,接LPC2210的P0.6。RTL8019內(nèi)置10BASE- T收發(fā)器, 所以網(wǎng)絡(luò)接口電路比較簡(jiǎn)單,通過(guò)一個(gè)濾波器之后, 連接到HR90117A, 這是一個(gè)集成網(wǎng)絡(luò)變壓器的RJ45 接口, 使用該接口既節(jié)省了空間, 又增加了可靠性。

  其他部分的設(shè)計(jì)電路有DS1232的看門(mén)狗電路,用于對(duì)LPC2210的上電復(fù)位,MAX232串口電平轉(zhuǎn)換電路,用于串口通訊,還有系統(tǒng)所用到的電源電路等。

  4. 基于μC /OSII的實(shí)時(shí)多任務(wù)軟件設(shè)計(jì)

  嵌入式實(shí)時(shí)操作系統(tǒng)μC /OSII是專為微控制器系統(tǒng)和軟件開(kāi)發(fā)而設(shè)計(jì)的公開(kāi)源代碼的搶占式實(shí)時(shí)多任務(wù)操作系統(tǒng)內(nèi)核,是一段在嵌入式系統(tǒng)啟動(dòng)后首先執(zhí)行的背景程序,用戶的應(yīng)用程序是運(yùn)行于實(shí)時(shí)操作系統(tǒng)之上的各個(gè)任務(wù),實(shí)時(shí)操作系統(tǒng)根據(jù)各個(gè)任務(wù)的要求,進(jìn)行資源管理、消息管理、任務(wù)調(diào)度及異常處理等工作。對(duì)于對(duì)實(shí)時(shí)性和穩(wěn)定性要求很高的數(shù)據(jù)采集系統(tǒng)來(lái)說(shuō),引入μC /OSII無(wú)疑將大大改善其性能。在實(shí)時(shí)系統(tǒng)中,每個(gè)任務(wù)均有一個(gè)優(yōu)先級(jí),實(shí)時(shí)系統(tǒng)根據(jù)各個(gè)任務(wù)的優(yōu)先級(jí),動(dòng)態(tài)地切換各個(gè)任務(wù),保證對(duì)實(shí)時(shí)性的要求。

  智能網(wǎng)關(guān)軟件系統(tǒng)主程序流程圖如圖4,各個(gè)功能模塊可分為8個(gè)子任務(wù),分別為串口發(fā)送、接收子任務(wù),CAN總線數(shù)據(jù)發(fā)送、接收子任務(wù),USB數(shù)據(jù)發(fā)送、接收子任務(wù),以太網(wǎng)數(shù)據(jù)發(fā)送、接收子任務(wù),設(shè)置其任務(wù)優(yōu)先級(jí)串口發(fā)送子任務(wù)最低,以太網(wǎng)數(shù)據(jù)接收子任務(wù)最高,以信號(hào)量建立各個(gè)任務(wù)之間的聯(lián)系。主程序啟動(dòng)后,初始化各個(gè)模塊,然后啟動(dòng)各個(gè)子任務(wù),以太網(wǎng)接收子任務(wù)實(shí)時(shí)等待上位機(jī)是否有數(shù)據(jù)發(fā)送給下位機(jī),接收數(shù)據(jù)后根據(jù)收到的上位機(jī)指令設(shè)置相應(yīng)信號(hào)量。USB發(fā)送子任務(wù)、CAN總線數(shù)據(jù)發(fā)送子任務(wù)以及串口通訊發(fā)送子任務(wù)實(shí)時(shí)接收設(shè)定的信號(hào)量,根據(jù)信號(hào)量的值確定是否將當(dāng)前以太網(wǎng)接收到的數(shù)據(jù)發(fā)送到相應(yīng)的下位機(jī)。USB接收子任務(wù)、CAN總線數(shù)據(jù)接收子任務(wù)以及串口通訊接收子任務(wù)實(shí)時(shí)等待下位機(jī)發(fā)送數(shù)據(jù)給上位機(jī),當(dāng)接收到數(shù)據(jù)時(shí),設(shè)置相應(yīng)信號(hào)量。以太網(wǎng)發(fā)送子任務(wù)實(shí)時(shí)判斷信號(hào)量,根據(jù)信號(hào)量的值將數(shù)據(jù)發(fā)送給上位機(jī)。通過(guò)本智能網(wǎng)關(guān),確保將不同總線形式的數(shù)據(jù)與以太網(wǎng)之間實(shí)現(xiàn)轉(zhuǎn)換。

  

 

  圖4 軟件系統(tǒng)主程序流程圖

  基于實(shí)時(shí)多任務(wù)的用戶應(yīng)用程序設(shè)計(jì),不必同時(shí)考慮所有任務(wù)運(yùn)行的各種可能交叉的情況,分別編寫(xiě)各個(gè)子任務(wù),不但大大減小程序編寫(xiě)的工作量,而且減小出錯(cuò)的可能性,保證最終程序具有高可靠性。

  5. 結(jié)束語(yǔ)

  本文的創(chuàng)新之處是:總結(jié)了前人工業(yè)網(wǎng)關(guān)的設(shè)計(jì)思想,提出了基于Arm的工業(yè)以太網(wǎng)智能網(wǎng)關(guān)的軟硬件設(shè)計(jì),通過(guò)將儀器儀表與計(jì)算機(jī)網(wǎng)絡(luò)連接起來(lái), 實(shí)現(xiàn)對(duì)儀表儀器的遠(yuǎn)程采集和控制,有利于復(fù)雜工業(yè)現(xiàn)場(chǎng)多參數(shù)的集中監(jiān)測(cè)。我們以5只油品帶CAN總線形式的含水儀以及10只串口通訊的流量?jī)x表作為下位機(jī),通過(guò)本文研制的工業(yè)以太網(wǎng)智能網(wǎng)關(guān),系統(tǒng)間隔發(fā)送指令請(qǐng)求讀取下位機(jī)數(shù)據(jù),然后將讀取的數(shù)據(jù)以TCP/IP方式發(fā)送到以太網(wǎng)上,在局域網(wǎng)的任何一臺(tái)PC機(jī),鍵入智能網(wǎng)關(guān)的IP地址,即可觀察下位機(jī)的數(shù)據(jù)。該設(shè)計(jì)成本低、使用靈活, 將會(huì)有廣闊的市場(chǎng)前景。

  參考文獻(xiàn)

  [1] 周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M ].北京:北京航空航天大學(xué)出版社,2005.

  [2] 呂昌泰,羅永剛.嵌入式以太網(wǎng)接口的研究與設(shè)計(jì)[J],微計(jì)算機(jī)信息,2006 年第22 卷第8-2 期,pp:68-30.

  [3] 王軍波,鄒繼軍. USB總線與CAN總線協(xié)議轉(zhuǎn)換器設(shè)計(jì)[J]. 東華理工學(xué)院學(xué)報(bào). 2006年9月第29卷第3期.pp:273-276.

交換機(jī)相關(guān)文章:交換機(jī)工作原理




評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉