微型机与应用
MICROCOMPUTER & ITS APPLICATIONS
2000 Vol.19 No.3 P.25-26



现场总线速度和现场总线效率
何平　李德识　黄天戍　任清珍　黎江
　　摘　要：详细描述了现场总线速度和效率及其影响因素,对现场总线的实际速度和实际效率进行了定义,并通过应用实例对串行异步通信的总线问题进行了具体的讨论。
　　关键词：现场总线速度 现场总线效率 DTE DCE
　　无论那一种现场总线产品或技术,不管它的名气有多大、牌子有多响,如果只谈其产品的速度,而不谈其支持总线系统的效率,就不能算是一种好的产品或者说不是一项好的技术。
1 现场总线的速度
　　在现场总线条件下（特别是在恶劣环境时）,大多数现场总线介质采用双绞线或同轴电缆,而这2种传输媒体的频带宽度、分布参数和传输速度息息相关,无论DTE（Data Terminal Equipment）通信速度有多高,但绝不等于DCE（Data CircuitTerminal Equipment）就一定有那样高。通俗地讲,DTE速度指的是PC到MODEM之间的速度,DCE速度为MODEM到MODEM之间的传输速度（在无MODEM情况下,DTE速度是PC到通信口之间的速度,DCE速度为通信口到通信口之间的传输速度）。由于现场总线使用媒体的限制,DTE速度很高时,DCE速度有可能很低。因此,现场总线的速度决不是某种芯片或某种通信卡或设备所具有的速度,应为其形成现场总线后的DCE速度。
　　例如,笔者在进行AUTO-300分布式大坝自动化安全监测系统现场总线设计时就遇到此类问题。按设计数据量选择通信总线产品时,其技术指标(如速度指标)达到要求的产品,并不一定能做系统应用。这个问题在下面的讨论中将会明显看到。
　　当然,高的DTE速度是较高的现场总线速度的基础。而高的现场总线速度会带来较高的现场总线效率,这一点毋庸置疑。
　　通常我们定义总线速度为单位时间内总线所传送信息或数据的总量。
2 现场总线的效率
　　现场总线的速度和效率是二个不同的概念。
　　定义1:现场总线效率等于单位时间内总线所传有效信息或数据总量占单位时间内总线上信息或数据总传输量的比率。
　　设E为现场总线效率,T为总传送时间,Q1为T内传送的有效信息或数据量,Q为T内传送的信息或数据总量。则:
E=（Q1/T）*（Q/T）=Q1/Q　　　　（1）
　　对于定义1,很容易理解。例如,在串行异步通信模式下,异步接收是靠检测传送数据的起始位和终止位来确定数据位的。一般情况下,数据位为1个字节8b,起始位占1b,终止位占2b,校验位1b。所以串行异步通信模式传送1个字节的有效数据,有4b的额外信息在内。可以说串行异步通信的传输效率很低。由串行异步通信模式形成的现场总线的效率也将很低,通常应用于速度要求不高的场合。
　　再如,使用HDLC/SDLC规程模式的串行同步通信,由于其帧格式中信息段可以是任意长度（一般定为255B,即2040b）,虽然它的信息帧中也有起始结束标志位（8b+8b）、地址段（8b）、控制段（8b）、校验段（16b）,但和串行异步模式相比较,它的传送效率较高。因此,由串行同步通信模式形成的现场总线的传输效率也较高。
　　由上述情况可以看出,现场总线的效率不仅和DCE速度有关,而且还受其使用的通信规约限制。
3 现场总线的实际速度和实际效率
　　一般认为,现场总线的速度是单位时间内总线数据或信息的传输能力,我们认为这个定义不够确切。这也是许多现场总线产品（包括某些其它产品）最能迷惑用户的地方。严格地讲,这个讲法只能称为现场总线的最高速度,而真正现场总线的速度应按以下定义:
　　定义2:对于1个固定的现场总线系统或网络,它的现场总线速度应为系统现场总线上所有终端（DTE）按一定信息或数据量（设定量）通信1个循环后,其平均单位时间内数据的传输量。
　　设现场总线速度为V,总线负载数（终端数）为N,N个终端按一定信息或数据量传输1个循环的时间为T,T内数据传输总量为Q,则:
V=Q/T　　　　　（2）
　　对于定义2,也很容易理解。按HDLC/SDLC规程进行串行同步通信、当信息帧有多个时,相邻信息帧之间需要控制帧和总线复位时间（无数据信息）衔接,因此它的数据传输速度取平均值,而不按单帧传输能力来计算是切合实际的。当总线负载较多时,系统又有应答周期和发送、接收准备时间,故定义2才能真正表达现场总线的实际速度。
　　很显然,定义1定义的现场总线效率也只能代表现场总线的最高效率（或吞吐能力）,而且还有它的不合理性,即它与时间无关。也就是说,无论现场总线上的传送速度有多慢,总线效率E依然有可能很高,这就违背了效率二字的本意。将定义1根据我们的实际应用情况并参考国外有关文献进行修改后,得出了比较准确的描述。
现场总线的实际效率定义:
　　定义3:对于1个固定的现场总线系统或网络,它的总线效率应为系统现场总线上所有终端按一定信息或数据量（设定量）和给定通信速度（波特率）通信1个循环后,其传输有效信息或数据总量和实际信息或数据传输总量之比乘以（系统完整通信周期内按给定通信速度）传输总有效信息或数据所需的理论计算时间和实际耗用时间之比。
　　这个定义可解释为:总线的信息或数据效率与时间效率之积。
　　设总线效率为E,B为通信波特率,Q1为1个传输循环内有效信息或数据的传输量,T1为按B传输Q1所需的理论时间,Q为1个通信循环周期内传输信息或数据总量,T为1个传输循环周期时间,则
E=（Q1/Q）*（T1/T）*100%　　　　（3）
E=（Q1/T）*1/（Q/T1）*100%　　　（4）
　　理论上T1=Q1/B　　　　　　　　（5）
　　由式（3）可以看出:
　　当Q1=Q时,E=T1/T＊100%　　　　（6）
　　若使Q1=Q或Q1接近Q,必须有高效率的通信规约（合理的通信协议）。
　　显然,Q1=Q、T1=T时,E=1。
　　这是最理想的状态。实际上,Q1<Q、T1<T,因此,E<1。
　　设Q1≈Q,T1≈Q/B
　　则:E≈（Q1/T）*B*100%　　（7）
　　式（7）说明现场总线效率和总线通信速度B成正比。Q1/T解释为使用通信规约的合理性,当使用的通信规约使得Q1=Q时,总线效率E约为100%,这显然是目前很难达到的。
　　由式（7）可以得出提高现场总线效率的方法:
　　1.提高总通信速度;
　　2.增加通信规约的合理性。
　　根据上面3个定义,再来衡量任何现场总线产品是否适合使用时,显然不能用它的最大指标（最高速度和最高效率）为依据,要用其实际总线效率和总线速度来评判。一种好的现场总线产品或技术应有高的现场总线效率,否则不能称好。
　　由以上讨论可以得出以下结论:具有较高速度指标的现场总线产品,如不支持合理的通信协议,就不能使其拥有较高的总线效率。
4 应用举例
　　现在用定义3计算RS-485总线下,使用DOS功能进行串行异步通信的总线效率问题。
　　假定RS-485总线（1km双绞线）上有6个终端（486sx兼容机、自制INS8250支持的485通信卡、以C语言自编通信程序）,以9600b/s的速率进行主从通信。设定传输数据量为9600b/s（5*1920b）,通信格式按每1个字节数据有1b的起始位、2b的终止位、1b校验位。
　　通信应答格式（握手信号）为:XXXXaaaa#和SSSSaaaa#,即:2*72b。其中,XXXX、SSSS为系统代码,aaaa为终端号。
　　则T1=9600/9600=1s Q1=9600b
　　Q=9600*（1+1/3）+5*144=13520b
　　实际通信1个上位机对5个下位机通信1个循环所用时间为2.95s。
　　则实际速度V=Q/T=13520/2.95=4583b/s
　　实际效率E=（9600/13520）*（1/2.95）*100%=24%
　　由此可以看出,这个系统的有效数据传输速度（实际速度）仅为4583b/s,不到设定通信波特率9600b/s的1/2,其总线效率非常低。如用它做现场总线系统设计时,至少要有4倍以上的传输速度冗余才能达到9600b/s有效数据的传送量。
　　本文较具体地介绍了现场总线速度和现场总线效率,可供用户参考。用户可在按要求规划自己的系统时,以免造成不必要的经济和时间的浪费。
何平（武汉水利电力大学计算机系检测教研室430072）
李德识（武汉水利电力大学计算机系检测教研室430072）
黄天戍（武汉水利电力大学计算机系检测教研室430072）
任清珍（武汉水利电力大学计算机系检测教研室430072）
黎江（武汉水利电力大学计算机系检测教研室430072）
参考文献
1，孙大高.计算机通信与网络.武汉:武汉大学出版社,1992
2，谢希仁.计算机网络.北京:电子工业出版社,1999
3，马宏杰.微机通讯原理与实用技术.北京:清华大学出版社,1994
4，Hammand,l.j.Performance Analysis of Local Computer Networks.Addison Wesley,1986
5，Hamedy s.,Total SNMPExploring the Simple Network management protocol.Prentice Hall,1998
收稿日期：1999-10-10
