基于ARM的工業(yè)以太網(wǎng)智能網(wǎng)關(guān)研制
1. 概述
本文引用地址:http://m.butianyuan.cn/article/264151.htm當(dāng)前,在工業(yè)控制中廣泛采用總線技術(shù),它把系統(tǒng)中的各個(gè)設(shè)備連接起來,形成一個(gè)工業(yè)網(wǎng)絡(luò)系統(tǒng)。在這個(gè)系統(tǒng)上面的節(jié)點(diǎn)有:具備智能和通信特點(diǎn)的傳感器、控制器、各類通信設(shè)備和計(jì)算機(jī)等。然而,由于各集團(tuán)之間的利益競(jìng)爭(zhēng),目前的工業(yè)現(xiàn)場(chǎng)儀表總線方式非常多,有的儀表采用串口通訊方式,有的采用USB總線方式,有的采用CAN總線方式,有的采用以太網(wǎng)方式。這些儀表各自獨(dú)立,難以統(tǒng)一集中監(jiān)控或管理,顯然,這些總線控制系統(tǒng)的發(fā)展趨勢(shì)應(yīng)該是共同遵從統(tǒng)一的技術(shù)規(guī)范,真正形成一套開放式互聯(lián)系統(tǒng),并與目前已廣泛使用的信息網(wǎng)絡(luò)——以太網(wǎng)無縫連接。因此,構(gòu)建工業(yè)以太網(wǎng)將是工業(yè)控制網(wǎng)絡(luò)的主要發(fā)展方向。
但是,在處理器方面,目前在8位和16 位微控制器平臺(tái)上運(yùn)行的TCP/IP 協(xié)議棧可以將智能控制設(shè)備、儀器儀表等接入以太網(wǎng),但它僅可完成簡(jiǎn)單、低速的數(shù)據(jù)傳輸,無法滿足工業(yè)現(xiàn)場(chǎng)的實(shí)時(shí)性和可靠性要求,尤其是在連接請(qǐng)求較多或控制任務(wù)較復(fù)雜時(shí),幾乎沒有實(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í)性和可靠性的要求。本文以基于ARM內(nèi)核的32位微控制器LPC2210研制工業(yè)以太網(wǎng)智能網(wǎng)關(guān)。
2. 基于ARM的智能網(wǎng)關(guān)硬件系統(tǒng)結(jié)構(gòu)
PHILIP公司的LPC2210是基于一個(gè)支持實(shí)時(shí)仿真和跟蹤的32位ARM7TDMI-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以及其它各種類型的應(yīng)用。目前,常用的通信接口有RS232、USB、CAN、以太網(wǎng)等接口。本智能網(wǎng)關(guān)以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通過控制SJA1000實(shí)現(xiàn)數(shù)據(jù)的發(fā)送、接收。SJA1000負(fù)責(zé)數(shù)據(jù)鏈路層的工作, 它把發(fā)送緩沖器的數(shù)據(jù)經(jīng)過處理后送到82C250,把要接收的數(shù)據(jù)經(jīng)過處理后放到接收緩沖器等待微處理器的讀取。82C250提供SJA1000與物理總線之間的接口。6N137和電源隔離模塊用于實(shí)現(xiàn)總線上各個(gè)CAN節(jié)點(diǎn)的電氣隔離,增強(qiáng)系統(tǒng)的抗干擾能力。CH372 是一個(gè)USB 總線的通用設(shè)備接口芯片,具有8位數(shù)據(jù)總線和讀、寫、片選控制線以及中斷輸出,可以方便的掛接到單片機(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 類規(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通過控制RTL8019實(shí)現(xiàn)數(shù)據(jù)的發(fā)送、接收。RTL8019集成以太網(wǎng)控制器、介質(zhì)訪問控制子層(MAC) 和物理層, 可以方便地設(shè)計(jì)成ISA總線的系統(tǒng)。另外, 它提供給微控制器簡(jiǎn)單接口, 使微控制器只需要對(duì)其相關(guān)寄存器進(jìn)行相應(yīng)讀寫即可完成對(duì)以太網(wǎng)的操作,同時(shí),它還具有與NE2000 兼容、軟件移植性好以及價(jià)格低廉等優(yōu)點(diǎn)。
圖3 RTL8019以太網(wǎng)接口電路
電路設(shè)計(jì)為16位總線方式對(duì)RTL8019進(jì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為低電平,即選中芯片。讀寫信號(hào)線IORB、IOWB 分別接微處理器的讀寫信號(hào)線, RSTDRV為芯片復(fù)位引腳,接LPC2210的P0.6。RTL8019內(nèi)置10BASE- T收發(fā)器, 所以網(wǎng)絡(luò)接口電路比較簡(jiǎn)單,通過一個(gè)濾波器之后, 連接到HR90117A, 這是一個(gè)集成網(wǎng)絡(luò)變壓器的RJ45 接口, 使用該接口既節(jié)省了空間, 又增加了可靠性。
其他部分的設(shè)計(jì)電路有DS1232的看門狗電路,用于對(duì)LPC2210的上電復(fù)位,MAX232串口電平轉(zhuǎn)換電路,用于串口通訊,還有系統(tǒng)所用到的電源電路等。
4. 基于μC /OSII的實(shí)時(shí)多任務(wù)軟件設(shè)計(jì)
嵌入式實(shí)時(shí)操作系統(tǒng)μC /OSII是專為微控制器系統(tǒng)和軟件開發(fā)而設(shè)計(jì)的公開源代碼的搶占式實(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)來說,引入μC /OSII無疑將大大改善其性能。在實(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ī)。通過本智能網(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)行的各種可能交叉的情況,分別編寫各個(gè)子任務(wù),不但大大減小程序編寫的工作量,而且減小出錯(cuò)的可能性,保證最終程序具有高可靠性。
5. 結(jié)束語
本文的創(chuàng)新之處是:總結(jié)了前人工業(yè)網(wǎng)關(guān)的設(shè)計(jì)思想,提出了基于Arm的工業(yè)以太網(wǎng)智能網(wǎng)關(guān)的軟硬件設(shè)計(jì),通過將儀器儀表與計(jì)算機(jī)網(wǎng)絡(luò)連接起來, 實(shí)現(xiàn)對(duì)儀表儀器的遠(yuǎn)程采集和控制,有利于復(fù)雜工業(yè)現(xiàn)場(chǎng)多參數(shù)的集中監(jiān)測(cè)。我們以5只油品帶CAN總線形式的含水儀以及10只串口通訊的流量?jī)x表作為下位機(jī),通過本文研制的工業(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)論