摘 要:介紹了以32位內(nèi)嵌ARM核的LPC2210為微控制器的工業(yè)以太網(wǎng)智能網(wǎng)關(guān)的設(shè)計方法,設(shè)計了CAN總線、USB總線以及以太網(wǎng)的接口硬件電路以及基于μC /OSⅡ的實時多任務(wù)軟件流程。該工業(yè)以太網(wǎng)智能網(wǎng)關(guān)解決了儀器儀表與以太網(wǎng)的數(shù)據(jù)傳輸,可實現(xiàn)對儀器儀表的遠(yuǎn)程控制和訪問。
關(guān)鍵字:智能網(wǎng)關(guān),ARM,實時操作系統(tǒng)
1. 概述
當(dāng)前,在工業(yè)控制中廣泛采用總線技術(shù),它把系統(tǒng)中的各個設(shè)備連接起來,形成一個工業(yè)網(wǎng)絡(luò)系統(tǒng)。在這個系統(tǒng)上面的節(jié)點有:具備智能和通信特點的傳感器、控制器、各類通信設(shè)備和計算機等。然而,由于各集團之間的利益競爭,目前的工業(yè)現(xiàn)場儀表總線方式非常多,有的儀表采用串口通訊方式,有的采用USB總線方式,有的采用CAN總線方式,有的采用以太網(wǎng)方式。這些儀表各自獨立,難以統(tǒng)一集中監(jiān)控或管理,顯然,這些總線控制系統(tǒng)的發(fā)展趨勢應(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 位微控制器平臺上運行的TCP/IP 協(xié)議??梢詫⒅悄芸刂圃O(shè)備、儀器儀表等接入以太網(wǎng),但它僅可完成簡單、低速的數(shù)據(jù)傳輸,無法滿足工業(yè)現(xiàn)場的實時性和可靠性要求,尤其是在連接請求較多或控制任務(wù)較復(fù)雜時,幾乎沒有實時性可言。因此,必須采用功能更強、處理速度更快的32 位微處理器,并且運行基于特定應(yīng)用的嵌入式實時操作系統(tǒng)進(jìn)行合理的任務(wù)調(diào)度,才能滿足工業(yè)現(xiàn)場對實時性和可靠性的要求。本文以基于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是基于一個支持實時仿真和跟蹤的32位ARM7TDMI-S核結(jié)構(gòu)的微控制器。ARM結(jié)構(gòu)是基于精簡指令集計算機(RISC)原理設(shè)計的,由于使用了流水線技術(shù),處理和存儲系統(tǒng)的所有部分都可連續(xù)工作,通常在執(zhí)行一條指令的同時對下一條指令進(jìn)行譯碼,并將第3條指令從存儲器中取出。同時LPC2210具有多個32位定時器、4路10位ADC或8路lO位ADC以及多達(dá)9個外部,因而它具有較高的性能,非常適合于通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器、嵌入式軟modem以及其它各種類型的應(yīng)用。目前,常用的通信接口有RS232、USB、CAN、以太網(wǎng)等接口。本智能網(wǎng)關(guān)以LPC2210的控制核心,設(shè)計其相應(yīng)的數(shù)據(jù)傳輸硬件電路,實現(xiàn)幾種常用的總線形式的數(shù)據(jù)向以太網(wǎng)的傳輸,如圖1所示。
[align=center]
圖1 系統(tǒng)設(shè)計架構(gòu)[/align]
3. 硬件電路設(shè)計
圖2為USB和CAN總線接口電路設(shè)計,CAN總線電路主要由五部分構(gòu)成:微控制器LPC2210,獨立的CAN控制器SJA1000,CAN總線驅(qū)動器PCA82C250 ,高速光電耦合器6N137,電源隔離模塊。微控制器LPC2210通過控制SJA1000實現(xiàn)數(shù)據(jù)的發(fā)送、接收。SJA1000負(fù)責(zé)數(shù)據(jù)鏈路層的工作, 它把發(fā)送緩沖器的數(shù)據(jù)經(jīng)過處理后送到82C250,把要接收的數(shù)據(jù)經(jīng)過處理后放到接收緩沖器等待微處理器的讀取。82C250提供SJA1000與物理總線之間的接口。6N137和電源隔離模塊用于實現(xiàn)總線上各個CAN節(jié)點的電氣隔離,增強系統(tǒng)的抗干擾能力。CH372 是一個USB 總線的通用設(shè)備接口芯片,具有8位數(shù)據(jù)總線和讀、寫、片選控制線以及中斷輸出,可以方便的掛接到單片機或DSP等控制器的系統(tǒng)總線上。CH372內(nèi)置了USB通信中的底層協(xié)議,具有內(nèi)置固件模式和外置固件模式。在內(nèi)置固件模式下, CH372自動處理默認(rèn)端點0的所有事務(wù),本地端單片機只要負(fù)責(zé)數(shù)據(jù)交換,在外置固件模式下,由外部MCU根據(jù)需要自行處理各種USB 請求,從而可以實現(xiàn)符合各種USB 類規(guī)范的設(shè)備。
LPC2210的P3.23連接到SJA1000 的CS引腳,當(dāng)為低電平時選中SJA1000,P0.30與SJA1000的INT引腳相連,用于USB中斷響應(yīng)。P2.22和P3.21分別連接到CH372的CS和A0引腳,當(dāng)P3.21為低電平、P2.22為高電平時選中CH372的命令端口;當(dāng)P3.21為低電平、P2.22為低電平時選中CH372 的數(shù)據(jù)端口。
[align=center]
圖2 USB和CAN總線接口電路設(shè)計[/align]
圖3為RTL8019以太網(wǎng)接口電路,以太網(wǎng)接口電路分為三部分組成:微控制器LPC2210和以太網(wǎng)接口芯片RTL8019以及網(wǎng)絡(luò)接口HR901170A。微控制器LPC2210通過控制RTL8019實現(xiàn)數(shù)據(jù)的發(fā)送、接收。RTL8019集成以太網(wǎng)控制器、介質(zhì)訪問控制子層(MAC) 和物理層, 可以方便地設(shè)計成ISA總線的系統(tǒng)。另外, 它提供給微控制器簡單接口, 使微控制器只需要對其相關(guān)寄存器進(jìn)行相應(yīng)讀寫即可完成對以太網(wǎng)的操作,同時,它還具有與NE2000 兼容、軟件移植性好以及價格低廉等優(yōu)點。
[align=center]
圖3 RTL8019以太網(wǎng)接口電路[/align]
電路設(shè)計為16位總線方式對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為低電平,即選中芯片。讀寫信號線IORB、IOWB 分別接微處理器的讀寫信號線, RSTDRV為芯片復(fù)位引腳,接LPC2210的P0.6。RTL8019內(nèi)置10BASE- T收發(fā)器, 所以網(wǎng)絡(luò)接口電路比較簡單,通過一個濾波器之后, 連接到HR90117A, 這是一個集成網(wǎng)絡(luò)變壓器的RJ45 接口, 使用該接口既節(jié)省了空間, 又增加了可靠性。
其他部分的設(shè)計電路有DS1232的看門狗電路,用于對LPC2210的上電復(fù)位,MAX232串口電平轉(zhuǎn)換電路,用于串口通訊,還有系統(tǒng)所用到的電源電路等。
4. 基于μC /OSII的實時多任務(wù)軟件設(shè)計
嵌入式實時操作系統(tǒng)μC /OSII是專為微控制器系統(tǒng)和軟件開發(fā)而設(shè)計的公開源代碼的搶占式實時多任務(wù)操作系統(tǒng)內(nèi)核,是一段在嵌入式系統(tǒng)啟動后首先執(zhí)行的背景程序,用戶的應(yīng)用程序是運行于實時操作系統(tǒng)之上的各個任務(wù),實時操作系統(tǒng)根據(jù)各個任務(wù)的要求,進(jìn)行資源管理、消息管理、任務(wù)調(diào)度及異常處理等工作。對于對實時性和穩(wěn)定性要求很高的數(shù)據(jù)采集系統(tǒng)來說,引入μC /OSII無疑將大大改善其性能。在實時系統(tǒng)中,每個任務(wù)均有一個優(yōu)先級,實時系統(tǒng)根據(jù)各個任務(wù)的優(yōu)先級,動態(tài)地切換各個任務(wù),保證對實時性的要求。
智能網(wǎng)關(guān)軟件系統(tǒng)主程序流程圖如圖4,各個功能模塊可分為8個子任務(wù),分別為串口發(fā)送、接收子任務(wù),CAN總線數(shù)據(jù)發(fā)送、接收子任務(wù),USB數(shù)據(jù)發(fā)送、接收子任務(wù),以太網(wǎng)數(shù)據(jù)發(fā)送、接收子任務(wù),設(shè)置其任務(wù)優(yōu)先級串口發(fā)送子任務(wù)最低,以太網(wǎng)數(shù)據(jù)接收子任務(wù)最高,以信號量建立各個任務(wù)之間的聯(lián)系。主程序啟動后,初始化各個模塊,然后啟動各個子任務(wù),以太網(wǎng)接收子任務(wù)實時等待上位機是否有數(shù)據(jù)發(fā)送給下位機,接收數(shù)據(jù)后根據(jù)收到的上位機指令設(shè)置相應(yīng)信號量。USB發(fā)送子任務(wù)、CAN總線數(shù)據(jù)發(fā)送子任務(wù)以及串口通訊發(fā)送子任務(wù)實時接收設(shè)定的信號量,根據(jù)信號量的值確定是否將當(dāng)前以太網(wǎng)接收到的數(shù)據(jù)發(fā)送到相應(yīng)的下位機。USB接收子任務(wù)、CAN總線數(shù)據(jù)接收子任務(wù)以及串口通訊接收子任務(wù)實時等待下位機發(fā)送數(shù)據(jù)給上位機,當(dāng)接收到數(shù)據(jù)時,設(shè)置相應(yīng)信號量。以太網(wǎng)發(fā)送子任務(wù)實時判斷信號量,根據(jù)信號量的值將數(shù)據(jù)發(fā)送給上位機。通過本智能網(wǎng)關(guān),確保將不同總線形式的數(shù)據(jù)與以太網(wǎng)之間實現(xiàn)轉(zhuǎn)換。
[align=center]
圖4 軟件系統(tǒng)主程序流程圖[/align]
基于實時多任務(wù)的用戶應(yīng)用程序設(shè)計,不必同時考慮所有任務(wù)運行的各種可能交叉的情況,分別編寫各個子任務(wù),不但大大減小程序編寫的工作量,而且減小出錯的可能性,保證最終程序具有高可靠性。
5. 結(jié)束語
本文的創(chuàng)新之處是:總結(jié)了前人工業(yè)網(wǎng)關(guān)的設(shè)計思想,提出了基于Arm的工業(yè)以太網(wǎng)智能網(wǎng)關(guān)的軟硬件設(shè)計,通過將儀器儀表與計算機網(wǎng)絡(luò)連接起來, 實現(xiàn)對儀表儀器的遠(yuǎn)程采集和控制,有利于復(fù)雜工業(yè)現(xiàn)場多參數(shù)的集中監(jiān)測。我們以5只油品帶CAN總線形式的含水儀以及10只串口通訊的流量儀表作為下位機,通過本文研制的工業(yè)以太網(wǎng)智能網(wǎng)關(guān),系統(tǒng)間隔發(fā)送指令請求讀取下位機數(shù)據(jù),然后將讀取的數(shù)據(jù)以TCP/IP方式發(fā)送到以太網(wǎng)上,在局域網(wǎng)的任何一臺PC機,鍵入智能網(wǎng)關(guān)的IP地址,即可觀察下位機的數(shù)據(jù)。該設(shè)計成本低、使用靈活, 將會有廣闊的市場前景。
參考文獻(xiàn)
[1] 周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M ].北京:北京航空航天大學(xué)出版社,2005.
[2] 呂昌泰,羅永剛.嵌入式以太網(wǎng)接口的研究與設(shè)計[J],微計算機信息,2006 年第22 卷第8-2 期,pp:68-30.
[3] 王軍波,鄒繼軍. USB總線與CAN總線協(xié)議轉(zhuǎn)換器設(shè)計[J]. 東華理工學(xué)院學(xué)報. 2006年9月第29卷第3期.pp:273-276.