0 引言
基金會現(xiàn)場總線是一種雙向、串行、全數(shù)字通信的工業(yè)現(xiàn)場級網(wǎng)絡控制系統(tǒng)。基金會現(xiàn)場總線由兩部分組成:HSE部分和H1部分。前者是以標準的百兆以太網(wǎng)構建的現(xiàn)場總線網(wǎng)絡,主要用于完成組態(tài)、診斷等管理功能;后者是以一種全新的令牌總線網(wǎng)構建的現(xiàn)場總線網(wǎng)絡,主要用于現(xiàn)場儀表設備級別的通信,用于完成最底層的回路控制、報警等功能。通過鏈接設備將這兩部分網(wǎng)絡連接起來。HSE部分利用H1部分提供的實時信息對整個網(wǎng)絡系統(tǒng)進行管理。
由于H1部分位于整個網(wǎng)絡控制系統(tǒng)的最低層,直接用于完成現(xiàn)場的控制任務,所以對于這部分通信系統(tǒng)的可靠性和實時性要求非常高??煽啃允峭ㄟ^冗余、數(shù)據(jù)校驗和協(xié)議棧軟件的糾錯機制等手段來保證的,而實時性這一點主要是依賴H1網(wǎng)絡通信的令牌機制。根據(jù)通信調度表,FFH1的令牌機制可以使那些實時的數(shù)據(jù)在確定的時刻發(fā)送到網(wǎng)絡上。相比之下,標準的以太網(wǎng)之所以實時性差是由于它的CSMA/CD的總線訪問機制使得數(shù)據(jù)幀何時能發(fā)送到網(wǎng)絡上變得不可預測。
該文簡單介紹了令牌機制所處的網(wǎng)絡層次,重點從令牌管理者和令牌使用者兩個角度研究了令牌管理機制,最后分析了兩種提高網(wǎng)絡性能的方法。
在FF協(xié)議棧軟件開發(fā)中,借助實時操作系統(tǒng)實現(xiàn)了這種令牌管理機制,從而保證了網(wǎng)絡的實時通信,為完成上層功能實現(xiàn)奠定了基礎。
1 網(wǎng)絡結構
整個FFH1網(wǎng)絡可以由多個網(wǎng)段組成,網(wǎng)段之間用網(wǎng)橋連接。從不同的網(wǎng)絡層次上可以看到的網(wǎng)絡結構是不同的。令牌是數(shù)據(jù)鏈路層上的一個概念。在一個網(wǎng)段內,物理上的拓撲結構可以是總線型的、菊花鏈型的(一般不使用)和星型的等,也可以是總線型和星型的組合。在一個網(wǎng)段內物理信號在整個網(wǎng)段上是廣播的。但是在數(shù)據(jù)鏈路層上上述各種拓撲結構的邏輯結構是相同的:令牌總線結構。
從數(shù)據(jù)鏈路層的角度看,可以把網(wǎng)絡上的設備分為基本設備,主設備和網(wǎng)橋。與令牌機制相關的只是前兩者,就是說令牌的傳遞和使用只是在一個網(wǎng)段內進行。主設備通過競爭可以成為令牌管理中心,稱為鏈路活動調度器(LAS),競爭失敗的主設備都是LAS的冗余備份,所有的設備都可以是令牌使用者。因此從數(shù)據(jù)鏈路層上看到的網(wǎng)絡邏輯結構如圖1所示。
圖1 H1網(wǎng)段網(wǎng)絡邏輯結構圖
2 令牌機制的基本原理
FFH1網(wǎng)段采用集中令牌管理方式。一個網(wǎng)段上有且僅有一個令牌管理器(LAS),網(wǎng)段上的所有設備(包括LAS本身)只有持有令牌的時候才能向網(wǎng)絡上發(fā)送數(shù)據(jù)。
圖2 令牌關系圖
網(wǎng)段上存在3種令牌:調度令牌、授權令牌和應答令牌。當某種令牌處于使用中時,這種令牌就稱為當前網(wǎng)段上的支配令牌,所以支配令牌就是使用總線的權力。這3種令牌不是平等的關系,而是一種令牌生成另一種令牌,被生成的令牌使用完后返還給生成它的那個令牌,這種關系如圖2所示。
調度令牌具有最高的優(yōu)先級,只有LAS才能持有該令牌,這種令牌用來發(fā)起周期性通信和產(chǎn)生其他兩種令牌;授權令牌用來進行非周期通信和生成應答令牌;應答令牌只是持有其他兩種令牌的設備,給某個其他設備一個暫時通信的權力,持有應答令牌的設
備只能發(fā)送一個幀。
根據(jù)調度表,在要進行周期性通信的時刻,LAS持有的調度令牌成為支配令牌,LAS向要發(fā)布數(shù)據(jù)的設備發(fā)送一個CD幀,在該設備內生成一個應答令牌,該應答令牌成為支配令牌,該設備就使用這個應答令牌向網(wǎng)絡上發(fā)布一個數(shù)據(jù)幀。
在非周期性通信的時間內,也就是在周期性通信之間的間隔內,持有調度令牌的LAS向其他設備發(fā)送一個PT幀,在該設備內生成一個授權令牌,該令牌成為支配令牌,該設備在規(guī)定的時間內使用這個令牌發(fā)送數(shù)據(jù)。在這段時間內該設備也能向其他設備發(fā)放應答令牌(用來生成應答令牌的幀不一定是CD幀,有可能是RQ幀等),從而給另一個設備以暫時的通信權力。整個過程如圖3所示。圖中1,4,6時間內調度令牌是支配令牌;2,7時間內應答令牌是支配令牌;3,5時間內授權令牌是支配令牌。
圖3 一個周期內網(wǎng)段上的支配令牌
3 LAS的令牌發(fā)放機制
LAS是一個網(wǎng)段上的令牌管理中心,由它發(fā)放授權令牌(必要時授權令牌也能發(fā)放應答令牌)和應答令牌。
LAS根據(jù)調度表,在指定的周期性通信開始的時刻,向指定的設備通過CD幀發(fā)放一個應答令牌。然后開始監(jiān)視網(wǎng)絡,如果在一個令牌恢復時間內網(wǎng)絡上沒有出現(xiàn)數(shù)據(jù),LAS就將應答令牌收回,并用調度令牌進行下一個活動。
在周期性通信之間,如果有足夠的時間,LAS就按照設備地址從小到大依次通過PT幀發(fā)放授權令牌。然后開始監(jiān)視網(wǎng)絡,如果在一個令牌恢復時間內網(wǎng)絡上沒有出現(xiàn)數(shù)據(jù),LAS就將授權令牌收回,并用調度令牌進行下一個活動。否則當網(wǎng)絡上的一個幀傳輸完畢的時候,又要按上述的過程開始監(jiān)視網(wǎng)絡,重復這個過程,直到授權令牌返回。整個過程如圖4所示。
圖4 LAS發(fā)出授權令牌后的監(jiān)視過程
如果發(fā)現(xiàn)到下一個周期性通信開始所剩余的時間不足于發(fā)放授權令牌,就等待下一個周期性通信的開始,必要時(網(wǎng)絡上沒有數(shù)據(jù)傳輸?shù)臅r間太長時)就向網(wǎng)段上廣播IDLE幀來表示LAS還是處于活動中的。
LAS的整個令牌發(fā)放過程如圖5所示。
圖5 LAS令牌發(fā)放流程圖
4 設備的令牌使用機制
收到令牌的設備就有權力向網(wǎng)絡上發(fā)送數(shù)據(jù)。設備根據(jù)收到的兩種令牌的不同,發(fā)送不同的數(shù)據(jù)。如果設備收到了LAS以CD幀發(fā)過來的應答令牌,該設備就將令牌中指定緩沖器中的數(shù)據(jù)發(fā)送到網(wǎng)段上。
如果設備收到的是LAS以PT幀發(fā)過來的授權令牌,該設備就在一個規(guī)定的時間內享有對網(wǎng)段的控制權。在這一段時間內,該設備的數(shù)據(jù)鏈路層會去查找那些已經(jīng)在排隊等待的數(shù)據(jù),如果發(fā)現(xiàn)有數(shù)據(jù)的優(yōu)先級(關于優(yōu)先級的描述見第6部分)比令牌的優(yōu)先級高或者相等就把這個數(shù)據(jù)幀發(fā)送到網(wǎng)絡上,所有的數(shù)據(jù)發(fā)完后令牌時間還有剩余,就在最后一個數(shù)據(jù)幀中將令牌捎帶返回。如果沒有符合要求的數(shù)據(jù)要發(fā)送,就直接用RT幀將令牌返回。如果規(guī)定的時間內不足以把所有請求的數(shù)據(jù)發(fā)送完成,就在規(guī)定時間內發(fā)送完盡可能多的數(shù)據(jù)幀,然后用RI幀返回令牌,同時向LAS申請更多的時間。
5 一些提高網(wǎng)絡性能的措施
FF H1的數(shù)據(jù)鏈路層通過以下一些措施可以提高網(wǎng)絡的性能。
5.1 優(yōu)先級
為每臺設備要發(fā)送的非周期性數(shù)據(jù)劃分3個優(yōu)先等級:最高、中等、最低。根據(jù)數(shù)據(jù)緊急性的要求,為其分配一個優(yōu)先等級。通過動態(tài)地改變授權令牌的優(yōu)先級,可以在網(wǎng)段上通信繁忙的時候讓那些優(yōu)先級高的非周期性數(shù)據(jù)有更多的機會發(fā)送到網(wǎng)段上。由上文的描述可知只有數(shù)據(jù)的優(yōu)先級高于或等于令牌的優(yōu)先級時才能發(fā)送,所以當網(wǎng)絡繁忙的時候提高令牌的優(yōu)先級就可以限制低優(yōu)先級的數(shù)據(jù)發(fā)送而使高優(yōu)先級的數(shù)據(jù)得到更多的發(fā)送權力。網(wǎng)絡是否繁忙可以這樣確定:記錄完成網(wǎng)段上一個授權令牌發(fā)放周期所花的時間V(ATRT),如果這個值小于另一個標志網(wǎng)絡繁忙的值V(TTRT),說明網(wǎng)絡空閑,此時就降低令牌的優(yōu)先級;當V(ATRT)大于V(TTRT),說明網(wǎng)絡繁忙,就提高令牌優(yōu)先級。LAS開始調度時發(fā)送的第一塊令牌的優(yōu)先級總是中等,并且在一個令牌發(fā)放周期內的令牌優(yōu)先級都是一樣的。整個過程如圖6所示。
圖6 令牌優(yōu)先級遷移圖
5.2 令牌持有時間
在LAS向某個設備發(fā)放授權令牌的時候會規(guī)定該設備使用令牌時間,這就是令牌持有時間。對于通信棧用戶來說,為了令牌的發(fā)放、返回而占用的網(wǎng)絡時間是一種浪費,因為在這段時間內沒有在網(wǎng)絡上傳輸有用的數(shù)據(jù)。例如:某個設備有50幀數(shù)據(jù)需要發(fā)送,而授權令牌中規(guī)定的令牌持有時間只允許發(fā)送一個幀,這樣令牌收發(fā)占用了很大比例的網(wǎng)絡時間,要50個令牌才能將數(shù)據(jù)幀發(fā)送完成。如果發(fā)給該設備的令牌持有時間允許發(fā)送50個幀,那么只要一個令牌就能將數(shù)據(jù)發(fā)送完成,大大提高了網(wǎng)絡利用率。
FF H1使用RI這個幀來實現(xiàn)這一點。當使用授權令牌的設備發(fā)現(xiàn)自身有很多數(shù)據(jù)要發(fā),而令牌持有時間不夠的時候,先盡可能多的發(fā)送數(shù)據(jù)幀,最后用RI幀向LAS返回令牌,并且申請更多的令牌持有時間。LAS在下一次給該設備發(fā)放授權令牌的時候,只要網(wǎng)絡剩余時間足夠,就像該設備提供所申請的令牌持有時間。
另外,由于FF H1網(wǎng)段上一般不會出現(xiàn)大量的數(shù)據(jù),只有在向某臺設備進行域上載下載時才會出現(xiàn)比較多的數(shù)據(jù)幀。所以上述的這種方法不會使得某臺設備長時間地占用網(wǎng)絡時間而嚴重影響網(wǎng)段上其他設備的非周期通信。
6 結束語
數(shù)據(jù)鏈路層之上的各個通信協(xié)議棧層次并不關心總線何時、如何存取的,它們總是認為總線是可以使用的,從而直接將數(shù)據(jù)發(fā)送的請求發(fā)送下來。在數(shù)據(jù)鏈路層,網(wǎng)段上的LAS和其他設備通過令牌來協(xié)調數(shù)據(jù)何時發(fā)送和怎樣發(fā)送。
協(xié)議中只是規(guī)定了基本的令牌傳遞規(guī)則,具體的令牌參數(shù)可以由網(wǎng)絡組態(tài)確定,比如V(TTRT)多大才表示網(wǎng)絡繁忙。甚至協(xié)議實現(xiàn)者可以自己添加一些措施來提高網(wǎng)絡性能,只要這些措施不會影響到協(xié)議一致性和設備互可操作性就可以。這是需要進一步研究的。
參考文獻:
[1] Fieldbus Foundation. Foundation Fieldbus Technical Overview[M]·FD043 Revision 3. 0., 2003·
[2] IEC.Digital data communications formeasurement and controlFieldbus for use industrial control system Part 4: Data Link Protocol Specification, IEC 61158-4[S].2003.
[3] Fieldbus Foundation. FoundationTMSpecification Data Link Services Specification Subset [S]. 2001.
[4] Fieldbus Foundation. FoundationTMSpecification Data Link ProtocolSpecification[S]. 2001.
[5] Fieldbus Foundation. FoundationTMSpecification System Architecture [S]. 2003.