現場總線的速度和效率
現場總線的產品或技術自80年代開始發展以來,現已有40余種。在應用中,無論采用那一種現場總線產品或技術,不管它的名氣有多大、牌子有多響,如果只談其產品的速度,而不談其支持總線系統的效率,那將無法評價一種產品或技術的優劣。這在構成應用系統的選型中顯得尤其重要。本文就現場總線的速度和現場總線的效率問題進行討論。并導出評價現場總線效率的計算方法。
1 現場總線的速度
在現場總線條件下(特別是在惡劣環境時),大多數現場總線介質采用雙絞線或同軸電纜(現在使用光纖也很常見),而這些傳輸媒體的頻帶寬度、分布參數和傳輸速度息息相關,無論DTE(Data Ter-minal Equipment)通信速度有多高,但絕不等于DCE(Data Circuit Equipment)就一定有那樣高。通俗地講,DTE速度指的是PC到MODEM之間的速度,DCE速度為MODEM到MODEM之間的傳輸速度(在無MODEM情況下,DTE速度是PC到通信口之間的速度,DCE速度為通信口到通信口之間的傳輸速度)。由于現場總線使用媒體的限制,DTE速度很高時,DCE速度有可能很低。因此,現場總線的速度決不是某種芯片或某種通信卡或設備所具有的速度,應為其形成現場總線后的DCE速度。
例如,在進行某海港礦石碼頭生產作業自動監控系統的現場總線設計時就遇到此類問題。按設計數據量選擇通信總線產品時,其技術指標(如速度指標)達到要求的產品,并不一定能做系統應用。這個問題在下面的討論中將會明顯看到。
當然,高的DTE速度是較高的現場總線速度的基礎。而高的現場總線速度會帶來較高的現場總線效率,這一點毋庸置疑。
通常定義總線速度為單位時間內總線所傳送信息或數據的總量。
2 現場總線的效率
現場總線的速度和效率是二個不同的概念。
定義1:現場總線效率等于單位時間內總線所傳有效信息或數據總量占單位時間內總線上信息或數據總傳輸量的比率。
設E為現場總線效率,T為總傳送時間,Ql為T內傳送的有效信息或數據量,Q為T內傳送的信息或數據總量。則:
E=(Ql/T)/(Q/T)=Q1/Q (1)
例如,在串行異步通信模式下,異步接收是靠檢測傳送數據的起始位和終止位來確定數據位的。一般情況下,數據位為1個字節8bit,起始位占lbit,終止位占2bit,校驗位lbit。所以串行異步通信模式傳送1個字節的有效數據,有4bit的額外信息在內。可以說串行異步通信的傳輸效率很低。由串行異步通信模式形戊的現場總線的效率也將很低,通常應用于速度要求不高的場合。
再如,使用HDLC/SDLC規程模式的串行同步通信,由于其幀格式中信息段可以是任意長度(一般定為255B,即2040b),雖然它的信息幀中也有起始結束標志位(8bit+8bit)、地址段(8bit)、控制段(8bit)、校驗段(16bit),但和串行異步模式相比較,它的傳送效率較高。因此,由串行同步通信模式形成的現場總線的傳輸效率較高。
由上述情況可以看出,現場總線的效率不僅和DCE速度有關,而且還受其使用的通信規約限制。
3 現場總線的實際速度和實際效率
一般認為,現場總線的速度是單位時間內總線數據或信息的傳輸能力,我們認為這個定義不夠確切。這也是許多現場總線產品(包括某些其它產品)最能迷惑用戶的地方。嚴格地講,這個講法只能稱為現場總線的最高速度,而"真正現場總線的速度"應按以下定義:
定義2:對于1個固定的現場總線系統或網絡,它的現場總線速度應為系統現場總線上所有終端(DTE)按一定信息或數據量(設定量)通信1個循環后,其平均單位時間內數據的傳輸量。
設現場總線速度為V,總線負載數(終端數)為N,N個終端按一定信息或數據量傳輸1個循壞的時間為T,T內數據傳輸總量為Q,則:
V=Q/T (2)
對于定義2,也很容易理解。按HDLC/SDLC規程進行串行同步通信、當信息幀有多個時,相鄰信息幀之間需要控制幀和總線復位時間(無數據信息)銜接,因此它的數據傳輸速度取平均值,而不按單幀傳輸能力來計算是切合實際的。當總線負載較多時,系統又有應答周期和發送、接收準備時間,故該定義才能真正表達現場總線的實際速度。
很顯然,定義1定義的現場總線效率也只能代表現場總線的最高效率(或吞吐能力),而且還有它的不合理性,即它與時間無關。也就是說,無論現場總線上的傳送速度有多慢,總線效率E依然有可能很高,這就違背了效率二字的本意。將定義1根據實際應用情況并參考國外有關文獻進行修改后,得出了比較準確的描述。
現場總線的實際效率定義:
定義3:對于1個固定的現場總線系統或網絡,它的總線效率應為系統現場總線上所有終端按一定信息或數據量(設定量)和給定通信速度(波特率)通信1個循環后,其傳輸有效信息或數據總量和實際信息或數據傳輸總量之比乘以(系統完整通信周期內按給定通信速度)傳輸總有效信息或數據所需的理論計算時間和實際耗用時間之比。
這個定義可解釋為:總線的信息或數據效率與時間效率之積。
設總線效率為E,B為通信波特率,Q1為1個傳輸循環內有效信息或數據的傳輸量,Tl為按B傳輸Ql所需的理論時間,Q為i個通信循環周期內傳輸信息或數據總量,T為l個傳輸循環周期時間,則
E=(Q1/Q)*(T1/T)*100% (3)
E=(Q1/T)/(Q/Tl)*100% (4)
理論上:Tl=Ql/B (5)
由式(3)可以看出:
當Ql=Q時,E=Tl/T*l00% (6)
若使Ql=Q或Q1接近Q,必須有高效率的通信規約(合理的通信協議)。
顯然,Ql=Q、Tl=T時,E=l。
這是最理想的狀態。實際上,Ql<Q、Tl<T,因此,E<l。
設Ql≈Q,Tl≈Q/B
則:E≈(Q1/T)*B*l00% (7)
式(7)說明現場總線效率和總線通信速度B成正比。Ql/T解釋為使用通信規約的合理性,當使用的通信規約使得Ql=Q時,總線效率E約為100%,這顯然是目前很難達到的。
由式(7)可以得出提高現場總線效率的方法:
①提高總通信速度;
②增加通信規約的合理性。
根據上面3個定義,再來衡量任何現場總線產品是否適合使用時,顯然不能用它的最大指標(最高速度和最高效率)為依據,要用其實際總線效率和總線速度來評判。一種好的現場總線產品或技術應有高的現場總線效率,否則不能稱好。
由以上討論可以得出以下結論:具有較高速度指標的現場總線產品,如不支持合理的通信協議,就不能使其擁有較高的總線效率。
4 應用舉例
現在用定義3計算RS-485總線下,進行串行異步通信的總線效率問題。
假定RS-485總線(lkm雙絞線)上有6個終端(普通PC機、485通信卡、以C語言自編通信程序),以19200bit/s的速率進行主從通信。設定傳輸數據量為19200bit/s(l0*1920),通信格式按每1個字節數據有lbit的起始位、2bit的終止位、lbit校驗位。
通信應答格式(握手信號)為:XXXXaaaa#和SSSSaaaa#,即:2*72bit。其中,XXXX、SSSS為系統代碼,aaaa為終端號。
則Tl=9600/9600=ls Ql=9600bit
Q=9600*(1+1/3)+5*144=13520bit
實際通信1個上位機對5個下位機通信1個循環所用時間為2.95s。
則實際速度V=Q/T=13520/2.95=4583bit/s
實際效率E=(9600/13520)*(1/2.95)*100%=24%
由此可以看出,這個系統的有效數據傳輸速度(實際速度)僅為4583bit/s,不到設定通信波特率9600bit/s的1/2,其總線效率非常低。如用它做現場總線系統設計時,至少要有4倍以上的傳輸速度冗余才能達到9600bit/s有效數據的傳送量。
以上對現場總線速度和現場總線效率的討論,在現場總線構成的自控系統的設計選型中曾使用,減少了不必要的精力和時間的浪費。
評論