摘 要:本文介紹了工業(yè)以太網(wǎng)中網(wǎng)絡(luò)控制器的一種新型的通訊機(jī)制和控制策略,同時(shí)論述了硬件和軟件需要作出的變化。
關(guān)鍵詞:網(wǎng)絡(luò)控制器; 通訊機(jī)制; DSP
近些年來,現(xiàn)場總線技術(shù)被廣泛地應(yīng)用于工業(yè)過程控制領(lǐng)域。它具有實(shí)時(shí)性好、布線簡單、可靠性高的特點(diǎn),比較適合工業(yè)環(huán)境。但是,它也有自己的缺點(diǎn),如標(biāo)準(zhǔn)不統(tǒng)一,各個(gè)廠商各自為政;傳輸速率低,無法傳輸圖像和語音信息;網(wǎng)絡(luò)互連困難,無法直接與互聯(lián)網(wǎng)相連。這些缺點(diǎn)的存在,嚴(yán)重制約了現(xiàn)場總線技術(shù)的發(fā)展[1]。
當(dāng)現(xiàn)場總線的發(fā)展遇到阻礙時(shí),以太網(wǎng)技術(shù)卻得到了迅猛的發(fā)展,如今,在Internet和辦公自動(dòng)化領(lǐng)域,以太網(wǎng)可以說是無處不在。如果能將以太網(wǎng)技術(shù)成功應(yīng)用于工業(yè)控制底層網(wǎng)絡(luò),就可以打破傳統(tǒng)的工業(yè)控制網(wǎng)絡(luò)體系,實(shí)現(xiàn)工業(yè)控制網(wǎng)絡(luò)和辦公自動(dòng)化網(wǎng)絡(luò)的無縫連接,實(shí)現(xiàn)真正意義上的管控一體化。本文結(jié)合現(xiàn)場總線與以太網(wǎng)的各自的優(yōu)點(diǎn),提出一種新型的網(wǎng)絡(luò)流量控制算法,開發(fā)出與此相配套的網(wǎng)絡(luò)控制器。
1 通訊機(jī)制
新型的通訊機(jī)制在網(wǎng)絡(luò)拓?fù)渖喜捎每偩€型,所有的發(fā)送都是在樞紐控制器的控制下進(jìn)行。只有得到命令幀的指定站點(diǎn)才可以啟動(dòng)數(shù)據(jù)發(fā)送。系統(tǒng)設(shè)定一個(gè)循環(huán)周期T,控制節(jié)點(diǎn)按照優(yōu)先級(jí)從低到高輪詢各個(gè)站點(diǎn),當(dāng)輪詢時(shí)間大于T時(shí),控制將停止這一周期的輪詢,直接進(jìn)入下一個(gè)周期。需要注意的是:
1. 對(duì)高優(yōu)先級(jí)的數(shù)據(jù)包,不管隊(duì)列中有多少個(gè)未發(fā)數(shù)據(jù),都要確保發(fā)送完畢,即使周期超過T也要如此。
2. 對(duì)于中優(yōu)先級(jí)和低優(yōu)先級(jí)的數(shù)據(jù)包,只有在上一優(yōu)先級(jí)的數(shù)據(jù)發(fā)送完全的情況下才能啟動(dòng)發(fā)送,并且是限制型發(fā)送,一次只能發(fā)送隊(duì)列的前rp個(gè)數(shù)據(jù)。
利用Matlab仿真的結(jié)果表明,即使在網(wǎng)絡(luò)負(fù)荷超載的情況下,網(wǎng)絡(luò)控制算法仍舊可以保證高優(yōu)先級(jí)的控制幀的發(fā)送,因此這個(gè)網(wǎng)絡(luò)控制算法是可行的。
2 功能原理
網(wǎng)絡(luò)樞紐控制器是整個(gè)網(wǎng)絡(luò)體系的核心,它主要有以下兩個(gè)功能:一是網(wǎng)絡(luò)控制功能,即協(xié)調(diào)整個(gè)網(wǎng)絡(luò)的通訊步調(diào),避免沖突的發(fā)生,保證重要信息的實(shí)時(shí)性。二是作為通訊網(wǎng)關(guān),與內(nèi)部網(wǎng)絡(luò)設(shè)備共享IP地址,提供內(nèi)部網(wǎng)絡(luò)設(shè)備與外部Internet的接口。
2.1實(shí)現(xiàn)控制功能所需要的設(shè)定
1. 優(yōu)先權(quán)的等級(jí)分類。利用IP數(shù)據(jù)格式[1]中TOS字段前3bit作為標(biāo)志。
2. IP編址。假設(shè)所有的控制設(shè)備都處在一個(gè)內(nèi)部網(wǎng)絡(luò)中,他們共享一個(gè)Internet公網(wǎng)地址202.114.101.58,而內(nèi)部網(wǎng)絡(luò)是以192.168.0.開頭的一系列內(nèi)部地址。
3. 控制幀格式??刂茙蔷W(wǎng)絡(luò)樞紐控制器控制整個(gè)網(wǎng)絡(luò)步調(diào)的數(shù)據(jù)幀,所有網(wǎng)絡(luò)節(jié)點(diǎn)都應(yīng)該能收到這個(gè)數(shù)據(jù)幀,并且在它的指令下進(jìn)行通訊。因此,控制幀必須是一個(gè)廣播幀,它的目標(biāo)地址是局域網(wǎng)中的所有網(wǎng)絡(luò)設(shè)備。
在具體實(shí)現(xiàn)中,將控制指令封裝在一個(gè)UDP廣播數(shù)據(jù)包中。它的格式如圖1所示:
[align=center]
圖1控制幀格式[/align]
命令:網(wǎng)絡(luò)樞紐控制器對(duì)網(wǎng)絡(luò)節(jié)點(diǎn)的發(fā)送的命令代碼,其中包括通訊復(fù)位,發(fā)送數(shù)據(jù)等。
設(shè)備編號(hào):接收命令網(wǎng)絡(luò)設(shè)備的編號(hào),它與內(nèi)部IP地址相對(duì)應(yīng),如192.168.0.2表示2號(hào)設(shè)備,192.168.0.n表示n號(hào)設(shè)備。如果是對(duì)所有設(shè)備發(fā)送的命令,則置為0xff。
數(shù)據(jù)優(yōu)先級(jí):如果命令表項(xiàng)表示允許發(fā)送命令,那么數(shù)據(jù)優(yōu)先級(jí)表項(xiàng)就表示對(duì)應(yīng)網(wǎng)絡(luò)設(shè)備應(yīng)該從對(duì)應(yīng)的優(yōu)先級(jí)隊(duì)列中取出一幀數(shù)據(jù)發(fā)送。
為了保證控制幀正常發(fā)送,還需要在上層協(xié)議中設(shè)置如下表項(xiàng):
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,表示這是一個(gè)廣播幀。
3. 填充TOS為0x94,表示這是一個(gè)要求最高可靠性的控制幀。
2.2 轉(zhuǎn)換表以及與商業(yè)以太網(wǎng)轉(zhuǎn)換表的區(qū)別
網(wǎng)絡(luò)樞紐控制器作為內(nèi)部工業(yè)以太網(wǎng)與外部Internet的橋梁,它的兩個(gè)網(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)的動(dòng)態(tài)轉(zhuǎn)換表模式,這是由工業(yè)以太網(wǎng)的特性決定的。首先,在工業(yè)以太網(wǎng)中,大部分的通訊請求都是從外部網(wǎng)絡(luò)發(fā)起的(如從外部監(jiān)控工業(yè)現(xiàn)場的參數(shù)),因此,采用動(dòng)態(tài)轉(zhuǎn)換表就無法建立連接;其次,如果表項(xiàng)是動(dòng)態(tài)的,它的可靠性就很難得到保證,如果分配算法有漏洞(例如UDP連接,由于沒有握手協(xié)議,所以很難知道它什么時(shí)候開始,什么時(shí)候中止),這樣有可能會(huì)誤刪除正在連接的表項(xiàng),使得通訊無法正常進(jìn)行。所以在實(shí)際的實(shí)現(xiàn)中,采用靜態(tài)的轉(zhuǎn)換表,為每個(gè)可能的連接建立一個(gè)靜態(tài)表項(xiàng),對(duì)于這個(gè)靜態(tài)的轉(zhuǎn)換表,是用專用的配置軟件在PC機(jī)上設(shè)置好,然后通過網(wǎng)絡(luò)下載到網(wǎng)絡(luò)樞紐控制器中,這樣網(wǎng)絡(luò)樞紐控制器就可以按照轉(zhuǎn)換表實(shí)現(xiàn)網(wǎng)關(guān)功能了。
3 硬件實(shí)現(xiàn)
圖2是硬件的結(jié)構(gòu)圖。整個(gè)網(wǎng)絡(luò)都在網(wǎng)絡(luò)樞紐控制器協(xié)調(diào)的步調(diào)下運(yùn)作,它的反應(yīng)速度越快,則網(wǎng)絡(luò)的空閑時(shí)間越短,網(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有三種工作方式:即插即用方式,跳線方式和免跳線方式。為了減少資源占用,這里選擇跳線方式。此時(shí),RTL8019AS的IO地址由IOS0-IOS3腳決定。地址總線的SA5-SA19中除SA8和SA9接高電平外,其余都接低電平,SA0-SA7與DSP的地址總線的A8-A15相連,這樣,訪問DSP的相應(yīng)IO空間地址就相當(dāng)于訪問兩塊以太網(wǎng)接口芯片中對(duì)應(yīng)的寄存器,于是DSP的IO地址就和兩片RTL8019AS能建立地址映射關(guān)系。至此,通過訪問這些寄存器,就可以控制RTL8019AS發(fā)送或接收數(shù)據(jù)。
此外,擴(kuò)展一片片外隨機(jī)存儲(chǔ)器ISSI61LV6416,它是用來做通訊緩沖區(qū),暫時(shí)存放來不及處理的數(shù)據(jù)包。由于TMS320VC5402內(nèi)部沒有集成Flash或EPROM,因此,它不能自舉運(yùn)行。于是采用HPI接口引導(dǎo)DSP,程序存放在單片機(jī)78E54B上。當(dāng)系統(tǒng)上電時(shí),78E54B通過HPI接口將程序?qū)懭氲絋MS320VC5402的片內(nèi)RAM中,然后啟動(dòng)它,這樣DSP就開始工作了。
4 軟件編寫
實(shí)現(xiàn)網(wǎng)絡(luò)控制功能要求反應(yīng)速度一定要快,因此這部分程序放在中斷中完成。在硬件設(shè)計(jì)中,把第一片RTL8019AS的中斷與DSP的INT0相連,把第二片的與INT1相連。因?yàn)榈谝黄c內(nèi)部網(wǎng)絡(luò)相連,所以,實(shí)現(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)部對(duì)外的轉(zhuǎn)發(fā)數(shù)據(jù),而緩沖區(qū)2用來暫存從外部對(duì)內(nèi)部的數(shù)據(jù)轉(zhuǎn)發(fā),一塊發(fā)送數(shù)據(jù)的同時(shí),另一塊填裝數(shù)據(jù),提高了效率。
為了保證網(wǎng)絡(luò)控制功能的實(shí)時(shí)性,防止中斷沖突,簡化程序結(jié)構(gòu),網(wǎng)關(guān)功能的這部分程序就用查詢方式實(shí)現(xiàn)。框圖如圖4所示:
[align=center]
圖4網(wǎng)關(guān)程序框圖[/align]
需要特別注意的是,在重定向IP地址之后,一定要重新計(jì)算校驗(yàn)和。因?yàn)椴徽撌荌P頭還是TCP和 UDP,IP地址都在他們的校驗(yàn)項(xiàng)之內(nèi)。如果改變了IP地址,那么校驗(yàn)和就要重新計(jì)算,否則,接收到這些數(shù)據(jù)包的設(shè)備就會(huì)認(rèn)為校驗(yàn)錯(cuò)誤,從而拒絕接受。
5 結(jié)論
網(wǎng)絡(luò)控制器雖然是最核心的設(shè)備,但是其功能的發(fā)揮還有賴于工業(yè)以太網(wǎng)上相關(guān)控制設(shè)備針對(duì)整體的控制策略作出相應(yīng)的改變。工業(yè)以太網(wǎng)中為了生產(chǎn),執(zhí)行任務(wù)的控制設(shè)備,要在網(wǎng)絡(luò)樞紐控制器的協(xié)調(diào)下完成通訊功能,包括數(shù)據(jù)采集前端、輸出前端、PID前端、執(zhí)行機(jī)構(gòu)前端等。這需要它們速度達(dá)到一定的要求,因?yàn)楫?dāng)它收到控制節(jié)點(diǎn)的發(fā)送指令后,就要迅速將數(shù)據(jù)包送出,此時(shí)它的任何遲延都是整個(gè)網(wǎng)絡(luò)的遲延。
本文作者創(chuàng)新點(diǎn):提出了一種新型的工業(yè)以太網(wǎng)實(shí)時(shí)控制算法,并且根據(jù)這個(gè)算法的特點(diǎn),針對(duì)性的改進(jìn)了相關(guān)協(xié)議和設(shè)置、硬件選型、程序流程。
參考文獻(xiàn)
[1] 邢國文,虞哲明,實(shí)時(shí)控制協(xié)議在工業(yè)以太網(wǎng)中的應(yīng)用[J],微計(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.