摘 要:本文介紹了工業(yè)以太網(wǎng)中網(wǎng)絡(luò)控制器的一種新型的通訊機(jī)制和控制策略,同時論述了硬件和軟件需要作出的變化。
關(guān)鍵詞:網(wǎng)絡(luò)控制器; 通訊機(jī)制; DSP
近些年來,現(xiàn)場總線技術(shù)被廣泛地應(yīng)用于工業(yè)過程控制領(lǐng)域。它具有實時性好、布線簡單、可靠性高的特點,比較適合工業(yè)環(huán)境。但是,它也有自己的缺點,如標(biāo)準(zhǔn)不統(tǒng)一,各個廠商各自為政;傳輸速率低,無法傳輸圖像和語音信息;網(wǎng)絡(luò)互連困難,無法直接與互聯(lián)網(wǎng)相連。這些缺點的存在,嚴(yán)重制約了現(xiàn)場總線技術(shù)的發(fā)展[1]。
當(dāng)現(xiàn)場總線的發(fā)展遇到阻礙時,以太網(wǎng)技術(shù)卻得到了迅猛的發(fā)展,如今,在Internet和辦公自動化領(lǐng)域,以太網(wǎng)可以說是無處不在。如果能將以太網(wǎng)技術(shù)成功應(yīng)用于工業(yè)控制底層網(wǎng)絡(luò),就可以打破傳統(tǒng)的工業(yè)控制網(wǎng)絡(luò)體系,實現(xiàn)工業(yè)控制網(wǎng)絡(luò)和辦公自動化網(wǎng)絡(luò)的無縫連接,實現(xiàn)真正意義上的管控一體化。本文結(jié)合現(xiàn)場總線與以太網(wǎng)的各自的優(yōu)點,提出一種新型的網(wǎng)絡(luò)流量控制算法,開發(fā)出與此相配套的網(wǎng)絡(luò)控制器。
1 通訊機(jī)制
新型的通訊機(jī)制在網(wǎng)絡(luò)拓?fù)渖喜捎每偩€型,所有的發(fā)送都是在樞紐控制器的控制下進(jìn)行。只有得到命令幀的指定站點才可以啟動數(shù)據(jù)發(fā)送。系統(tǒng)設(shè)定一個循環(huán)周期T,控制節(jié)點按照優(yōu)先級從低到高輪詢各個站點,當(dāng)輪詢時間大于T時,控制將停止這一周期的輪詢,直接進(jìn)入下一個周期。需要注意的是:
1. 對高優(yōu)先級的數(shù)據(jù)包,不管隊列中有多少個未發(fā)數(shù)據(jù),都要確保發(fā)送完畢,即使周期超過T也要如此。
2. 對于中優(yōu)先級和低優(yōu)先級的數(shù)據(jù)包,只有在上一優(yōu)先級的數(shù)據(jù)發(fā)送完全的情況下才能啟動發(fā)送,并且是限制型發(fā)送,一次只能發(fā)送隊列的前rp個數(shù)據(jù)。
利用Matlab仿真的結(jié)果表明,即使在網(wǎng)絡(luò)負(fù)荷超載的情況下,網(wǎng)絡(luò)控制算法仍舊可以保證高優(yōu)先級的控制幀的發(fā)送,因此這個網(wǎng)絡(luò)控制算法是可行的。
2 功能原理
網(wǎng)絡(luò)樞紐控制器是整個網(wǎng)絡(luò)體系的核心,它主要有以下兩個功能:一是網(wǎng)絡(luò)控制功能,即協(xié)調(diào)整個網(wǎng)絡(luò)的通訊步調(diào),避免沖突的發(fā)生,保證重要信息的實時性。二是作為通訊網(wǎng)關(guān),與內(nèi)部網(wǎng)絡(luò)設(shè)備共享IP地址,提供內(nèi)部網(wǎng)絡(luò)設(shè)備與外部Internet的接口。
2.1實現(xiàn)控制功能所需要的設(shè)定
1. 優(yōu)先權(quán)的等級分類。利用IP數(shù)據(jù)格式[1]中TOS字段前3bit作為標(biāo)志。
2. IP編址。假設(shè)所有的控制設(shè)備都處在一個內(nèi)部網(wǎng)絡(luò)中,他們共享一個Internet公網(wǎng)地址202.114.101.58,而內(nèi)部網(wǎng)絡(luò)是以192.168.0.開頭的一系列內(nèi)部地址。
3. 控制幀格式??刂茙蔷W(wǎng)絡(luò)樞紐控制器控制整個網(wǎng)絡(luò)步調(diào)的數(shù)據(jù)幀,所有網(wǎng)絡(luò)節(jié)點都應(yīng)該能收到這個數(shù)據(jù)幀,并且在它的指令下進(jìn)行通訊。因此,控制幀必須是一個廣播幀,它的目標(biāo)地址是局域網(wǎng)中的所有網(wǎng)絡(luò)設(shè)備。
在具體實現(xiàn)中,將控制指令封裝在一個UDP廣播數(shù)據(jù)包中。它的格式如圖1所示:
[align=center]

圖1控制幀格式[/align]
命令:網(wǎng)絡(luò)樞紐控制器對網(wǎng)絡(luò)節(jié)點的發(fā)送的命令代碼,其中包括通訊復(fù)位,發(fā)送數(shù)據(jù)等。
設(shè)備編號:接收命令網(wǎng)絡(luò)設(shè)備的編號,它與內(nèi)部IP地址相對應(yīng),如192.168.0.2表示2號設(shè)備,192.168.0.n表示n號設(shè)備。如果是對所有設(shè)備發(fā)送的命令,則置為0xff。
數(shù)據(jù)優(yōu)先級:如果命令表項表示允許發(fā)送命令,那么數(shù)據(jù)優(yōu)先級表項就表示對應(yīng)網(wǎng)絡(luò)設(shè)備應(yīng)該從對應(yīng)的優(yōu)先級隊列中取出一幀數(shù)據(jù)發(fā)送。
為了保證控制幀正常發(fā)送,還需要在上層協(xié)議中設(shè)置如下表項:
1. 將Ethernet幀的目的地址設(shè)為0xff 0xff 0xff 0xff 0xff 0xff,確保本以太網(wǎng)內(nèi)的所有網(wǎng)卡都能接收到這幀數(shù)據(jù)。
2. 將IP幀中的目的IP地址設(shè)為192.168.0.255,表示這是一個廣播幀。
3. 填充TOS為0x94,表示這是一個要求最高可靠性的控制幀。
2.2 轉(zhuǎn)換表以及與商業(yè)以太網(wǎng)轉(zhuǎn)換表的區(qū)別
網(wǎng)絡(luò)樞紐控制器作為內(nèi)部工業(yè)以太網(wǎng)與外部Internet的橋梁,它的兩個網(wǎng)絡(luò)接口分別連接外部Internet和內(nèi)部網(wǎng)絡(luò)。網(wǎng)絡(luò)樞紐控制器不但要有轉(zhuǎn)發(fā)功能,而且還要內(nèi)嵌NAT[2](網(wǎng)絡(luò)地址轉(zhuǎn)換)功能,因此必須附帶地址轉(zhuǎn)換表。
這里不能采用商業(yè)以太網(wǎng)的動態(tài)轉(zhuǎn)換表模式,這是由工業(yè)以太網(wǎng)的特性決定的。首先,在工業(yè)以太網(wǎng)中,大部分的通訊請求都是從外部網(wǎng)絡(luò)發(fā)起的(如從外部監(jiān)控工業(yè)現(xiàn)場的參數(shù)),因此,采用動態(tài)轉(zhuǎn)換表就無法建立連接;其次,如果表項是動態(tài)的,它的可靠性就很難得到保證,如果分配算法有漏洞(例如UDP連接,由于沒有握手協(xié)議,所以很難知道它什么時候開始,什么時候中止),這樣有可能會誤刪除正在連接的表項,使得通訊無法正常進(jìn)行。所以在實際的實現(xiàn)中,采用靜態(tài)的轉(zhuǎn)換表,為每個可能的連接建立一個靜態(tài)表項,對于這個靜態(tài)的轉(zhuǎn)換表,是用專用的配置軟件在PC機(jī)上設(shè)置好,然后通過網(wǎng)絡(luò)下載到網(wǎng)絡(luò)樞紐控制器中,這樣網(wǎng)絡(luò)樞紐控制器就可以按照轉(zhuǎn)換表實現(xiàn)網(wǎng)關(guān)功能了。
3 硬件實現(xiàn)
圖2是硬件的結(jié)構(gòu)圖。整個網(wǎng)絡(luò)都在網(wǎng)絡(luò)樞紐控制器協(xié)調(diào)的步調(diào)下運作,它的反應(yīng)速度越快,則網(wǎng)絡(luò)的空閑時間越短,網(wǎng)絡(luò)的吞吐量越大。因此,在這里選用TI的TMS320VC5402[3]作為它的核心處理器。
以太網(wǎng)接口芯片選用Realtek公司的RTL8019AS,這是一款市場上ISA網(wǎng)卡中選用率很高的接口芯片。一共使用了兩片這樣的芯片,一片用于和內(nèi)部網(wǎng)絡(luò)通訊,另一片則用于與外部Internet相連。
[align=center]

圖2網(wǎng)絡(luò)樞紐控制器硬件框圖[/align]
RTL8019AS有三種工作方式:即插即用方式,跳線方式和免跳線方式。為了減少資源占用,這里選擇跳線方式。此時,RTL8019AS的IO地址由IOS0-IOS3腳決定。地址總線的SA5-SA19中除SA8和SA9接高電平外,其余都接低電平,SA0-SA7與DSP的地址總線的A8-A15相連,這樣,訪問DSP的相應(yīng)IO空間地址就相當(dāng)于訪問兩塊以太網(wǎng)接口芯片中對應(yīng)的寄存器,于是DSP的IO地址就和兩片RTL8019AS能建立地址映射關(guān)系。至此,通過訪問這些寄存器,就可以控制RTL8019AS發(fā)送或接收數(shù)據(jù)。
此外,擴(kuò)展一片片外隨機(jī)存儲器ISSI61LV6416,它是用來做通訊緩沖區(qū),暫時存放來不及處理的數(shù)據(jù)包。由于TMS320VC5402內(nèi)部沒有集成Flash或EPROM,因此,它不能自舉運行。于是采用HPI接口引導(dǎo)DSP,程序存放在單片機(jī)78E54B上。當(dāng)系統(tǒng)上電時,78E54B通過HPI接口將程序?qū)懭氲絋MS320VC5402的片內(nèi)RAM中,然后啟動它,這樣DSP就開始工作了。
4 軟件編寫
實現(xiàn)網(wǎng)絡(luò)控制功能要求反應(yīng)速度一定要快,因此這部分程序放在中斷中完成。在硬件設(shè)計中,把第一片RTL8019AS的中斷與DSP的INT0相連,把第二片的與INT1相連。因為第一片與內(nèi)部網(wǎng)絡(luò)相連,所以,實現(xiàn)網(wǎng)絡(luò)控制控制功能的程序主要在INT0中完成。圖3是INT0中斷響應(yīng)程序的框圖。
[align=center]

圖3 INT0中斷響應(yīng)程序[/align]
系統(tǒng)共有兩片轉(zhuǎn)發(fā)緩沖區(qū),緩沖區(qū)1用來暫存從內(nèi)部對外的轉(zhuǎn)發(fā)數(shù)據(jù),而緩沖區(qū)2用來暫存從外部對內(nèi)部的數(shù)據(jù)轉(zhuǎn)發(fā),一塊發(fā)送數(shù)據(jù)的同時,另一塊填裝數(shù)據(jù),提高了效率。
為了保證網(wǎng)絡(luò)控制功能的實時性,防止中斷沖突,簡化程序結(jié)構(gòu),網(wǎng)關(guān)功能的這部分程序就用查詢方式實現(xiàn)??驁D如圖4所示:
[align=center]

圖4網(wǎng)關(guān)程序框圖[/align]
需要特別注意的是,在重定向IP地址之后,一定要重新計算校驗和。因為不論是IP頭還是TCP和 UDP,IP地址都在他們的校驗項之內(nèi)。如果改變了IP地址,那么校驗和就要重新計算,否則,接收到這些數(shù)據(jù)包的設(shè)備就會認(rèn)為校驗錯誤,從而拒絕接受。
5 結(jié)論
網(wǎng)絡(luò)控制器雖然是最核心的設(shè)備,但是其功能的發(fā)揮還有賴于工業(yè)以太網(wǎng)上相關(guān)控制設(shè)備針對整體的控制策略作出相應(yīng)的改變。工業(yè)以太網(wǎng)中為了生產(chǎn),執(zhí)行任務(wù)的控制設(shè)備,要在網(wǎng)絡(luò)樞紐控制器的協(xié)調(diào)下完成通訊功能,包括數(shù)據(jù)采集前端、輸出前端、PID前端、執(zhí)行機(jī)構(gòu)前端等。這需要它們速度達(dá)到一定的要求,因為當(dāng)它收到控制節(jié)點的發(fā)送指令后,就要迅速將數(shù)據(jù)包送出,此時它的任何遲延都是整個網(wǎng)絡(luò)的遲延。
本文作者創(chuàng)新點:提出了一種新型的工業(yè)以太網(wǎng)實時控制算法,并且根據(jù)這個算法的特點,針對性的改進(jìn)了相關(guān)協(xié)議和設(shè)置、硬件選型、程序流程。
參考文獻(xiàn)
[1] 邢國文,虞哲明,實時控制協(xié)議在工業(yè)以太網(wǎng)中的應(yīng)用[J],微計算機(jī)信息,2006,1;1-3.
[2] (美)史蒂文斯(W. Richard Stevens)著, 范建華等譯, TCP/IP詳解[M]. 北京: 機(jī)械工業(yè)出版社, 2000.4, P1-268.
[3] Kjeld Borch Egevang, Paul Francis. The IP Network Address Translator. Internet RFC/STD/FYI/BCP Archives.
[4] Texas Instruments Incorporated. TMS320VC5402 Fix-Point Digital Signal Processor. www.ti.com, 2002.8, P1-57.