发表于:2001-08-25 10:30:00
楼主
LonWorks:一种全新的现场总线
作者: 张庆汉 陈懿
LonWorks是美国Echelon公司1992年推出的局部操作网络,最初主要用于楼宇自动化,但很快发展到工业现场网。LonWorks技术为设计和实现可互操作的控制网络提供了一套完整、开放、成品化的解决途径。
一、LonWorks的神经元芯片
LonWorks技术的核心是神经元芯片(Neuron Chip)。该芯片内部装有3个微处理器:MAC处理器完成介质访问控制;网络处理器完成OSI的3~6层网络协议;应用处理器完成用户现场控制应用。它们之间通过公用存储器传递数据。
在控制单元中需要采集和控制功能,为此,神经元芯片特设置11个I/O口。这些I/O口可根据需求不同来灵活配置与外围设备的接口,如RS232、并口、定时/计数、间隔处理、位I / O等。
神经元芯片还有一个时间计数器,从而能完成Watchdog、多任务调度和定时功能。神经元芯片支持节电方式,在节电方式下系统时钟和计数器关闭,但状态信息(包括RAM中的信息) 不会改变。一旦I/O状态变化或网线上信息有变,系统便会激活。其内部还有一个最高1.25 M bps、独立于介质的收发器。由此可见,一个小小的神经元芯片不仅具有强大的通信功能, 更集采集、控制于一体。在理想情况下,一个神经元芯片加上几个分离元件便可成为DCS系统中一个独立的控制单元。
二、完善的开发平台
LonWorks提供的不仅仅是一套高性能的神经元芯片,更重要的是,它提供了一套完整的开发平台。工业现场中的通信不仅要将数据实时发送、接收,更多的是数据的打包、拆包、流量处理、出错处理。这使控制工程师不得不在数据通信上投入大量精力。LonWorks在这方面提供了非常友好的服务,提供了一套完整的建网工具——LonBuild。
首先,它提供了一套C语言的编译器,从而大大减少了开发时间。在这个编译器中,提供了对11个I/O非常详尽的库函数。在通信方面,它也提出了一个全新的概念——网络变量。通过网络变量,网络上的通信只需将相关节点上的网络变量连接一下即可。网络变量是应用程序定义的一个特殊静态变量,可以是ANSI C所定义的各种类型,也可以是自定义类型,还可以规定优先级、响应方式等。网络变量被定义为输入或输出,当定义为输出的网络变量被赋予新值时,与该输出变量相连的输入网络变量就会被立刻赋予同样的新值。
另外,LonBuild还集成开发环境和编译于一体,具备C调试器,可在多个仿真器上调试应用程序,并具备网络协议分析和通信分析的功能。
三、LonTalk:面向对象的网络通信协议
LonTalk是LonWorks的通信协议,固化在神经元芯片内。LonTalk局部操作网协议是为LonWo r ks中通信所设的框架,支持ISO组织制定的OSI参考模型的7层协议,并可使简短的控制信息在各种介质中非常可靠地传输。表1概括了LonTalk在OSI参考模型中每层所提供的服务。
LonTalk协议是直接面向对象的网络协议,具体实现即采用网络变量的形式。又由于硬件芯片的支持,使它实现了实时性和接口的直观、简洁等现场总线的应用要求。
1.LonTalk MAC的特点
介质访问控制(MAC)子层是OSI参考模型的数据链路层的一部分。目前在不同的网络中存在多种介质访问控制协议,其中之一就是大家熟悉的CSMA(载波信号多路侦听)。LonTalk正是使用该协议,但具有自己的特色。
CSMA协议要求一个节点在发送数据前侦听网络是否空闲。一旦监测到线路空闲后,不同的协议动作不同。这样在重负载的情况下,不同协议的执行结果不同。例如,Ethernet采用CSM A /CD协议,一旦检测到碰撞,采用避让算法,这种方法在重负载时导致网络介质传输率变得极低。另一些CSMA协议使用时间片规则去访问介质,使节点在限制的时间片访问介质,这样可以大大减少两个数据报发生碰撞的可能性。P-坚持CSMA和LonTalk的CSMA就是使用时间片去访问介质。
LonTalk协议使用一个改进的CSMA介质访问控制协议,称为预测的P-坚持CSMA。LonTa lk协议在保留CSMA协议优点的同时,注意克服它在控制中的不足。目前存在的MAC协议(如IEEE 802.2、802.3、802.4、802.5)都不能在重负载下很好地保持网络高效率、支持大网络系统和多通信介质。
如果有很多网络节点等待网络空闲,一旦网络空闲,这些节点都会马上发送报文而产生碰撞。它们产生碰撞后会后退一段时间,假如这段时间相同,就会发生重复碰撞,这将使网络效率大大降低。在预测的P-坚持CSMA中,所有LonWorks节点等待随机时间片间隔访问介质, 这就避免了以上情况的发生。在LonWorks中,每个节点发送前随机插入1~16个很小的随机时间片。在空闲网络中,每个节点发送前平均插入8个随机时间片。
在P-坚持CSMA中,当一个节点有信息需要发送时并不立即发送,而是等待一个概率为 P的随机时间片。而LonTalk协议可根据网络负载动态调整P值。时间片的增加通过一个N值,插入的随机时间片为N×16,这个N值的取值范围是1~63。LonTalk称N为网络积压的估计值,是对当前发送周期有多少个节点有报文需要发送的估计。LonTalk协议根据网络积压动态地调整介质访问,允许网络在轻负载情况下用较短的时间片,在重负载情况下用较长的响应时间片。
对照实验表明,36个LonWorks节点互联,采用一般P-坚持算法,当每秒要传输的报文达500 ~1000包时,碰撞率从10%上升到54%;而采用预测的P-坚持算法,在500包以下时碰撞率与前者相当,在500~1000包时稳定在10%。
对所有令牌环网络,LonTalk具有对多介质的支持,但这些介质必须在总线上具有环的结构 ,令牌在这个环线上轮巡。这对使用电力线和无线电作为介质的网络显然不可行,因为网上所有节点几乎能同时收到令牌。同时,令牌环网络还需增加令牌丢失时的恢复机制、令牌快速应答机制,这些都增加了硬件上的开销,使网络成本增加。
对令牌总线网络,LonTalk在令牌中加入网络地址,从而在物理总线上建立一个逻辑环的结构,使令牌在这个逻辑环上轮巡。但是,在低速网络中令牌轮巡时间变得很长。另外,令牌总线在有节点上网或下网时都会发生网络重构。在电池供电的系统中,会因经常休眠和唤醒而导致网络上下网时频繁重构;在恶劣的环境中,常会发生令牌丢失而导致网络重构。这些网络重构会大大降低网络的效率。同时,由于网络地址的限制,每个网络至多只有255个节点。
我们常用的CSMA/CD(如Ethernet),在轻负载情况下具有很好的性能;在重负载情况下, 过多的碰撞使网络效率变得极低。
目前,在现场总线中还有一种十分流行的网络——Canbus。它采用无主结构,这一点大大优于Bitbus。其MAC层上的管理很有特色。它也采用CSMA方式,但将网络上的节点分成不同的优先级,采用支配位(0)和避让位(1)、以及总线回读的方法实现非破坏性总线仲裁。即当两个节点同时向网络传递信息时,优先级低的节点主动停止发送,而优先级高的节点可不受影响地继续传输,这可以有效地避免总线碰撞。但是,这要求网络一定要同步,这对多介质的情况显然不适用。另外,对各节点不太需要优先级的网络,由于不得不定义一个优先级,因而当网络通信较繁忙时,有些优先级低的节点可能很长时间不能发送信息。因此,Canbus较适合介质单一、节点数目较少的小网络。
综上所述,Lon的MAC子层具有以下优点:支持多介质的通信,支持低速率的网络,可在重负载情况下保持网络性能,支持大型网络。
2.LonTalk对优先级的支持
在LonWorks网络中,为提高紧急事件的响应时间,提供了一个可选择的优先级机制。该机制允许用户为每个需要优先级的节点分配一个特定的优先级时间片,并保证有且只有一个节点拥有这样的优先级时间片。在发送过程中,优先级数据报将在该时间片内把数据报发送出去。优先级时间片为0~127,0是不需等待立即发送,1是等待1个时间片,2是等待2个时间片 ,依此类推。低优先级的节点需等待较多的时间片,而高优先级的节点需等待较少的时间片 ,这个时间片加在P-概率时间片之前。非优先级的节点必须等待优先级时间片都完成后, 再等待P-概率时间片后发送。因此,加入优先级的节点总比非优先级的节点有更快的响应时间。
3.LonTalk对多介质的支持
LonTalk协议对各种介质的支持是独立的。Lon的神经元芯片可以容许的通信介质类型非常广泛,如双绞线、电力线、无线电、红外线、同轴电缆、光纤等。
4.LonTalk对多通道的支持
一个通道是指在物理上能独立发送报文(不需要转发)的一段介质。LonTalk规定,一个通道至多有32385个节点,一个网络可以由一个或多个通道组成,通道之间通过路由器来连接。
这样,不仅可实现多介质在同一网络上的连接,而且可减轻一个通道的网络信道过于拥挤。
5.LonTalk对大网络的支持
网络地址可以有以下三层结构:
第一层结构是域。域的结构可以保证在不同的域中通