一、 概述
WorldFip现场总线组织成立于1987年。目前已有一百多个成员,其中许多是工控领域的世界著名大公司,如Honeywell、西技来克(Cegelec)、阿尔斯通(Alstom)、施耐德(Schneider)等。前期产品是Fip(Factory Instrumentation Protocol)。Fip是法国标准,后来采纳了IEC国际标准(61158-2)改名为WorldFip。相应的欧州标准是EN50170-3。不久前国内也成立了“WorldFip技术推广中心”。我国引进的一些大型工程,如上海地铁、岭奥核电站、军粮城电厂等都可以看到这种现场总线。目前正在建造的世界上能量最高的大型强子对撞机已选定WorldFip为工程标准总线之一。该加速器周长27公里,耗资数十亿美元,将于2004年建成。笔者在参与该工程现场总线评估和应用过程中,对该总线的特点有所了解,简介如下。
由于篇幅的限制,这里只介绍其有特色之处。网络管理、远程服务、远程下载、出错处理、广播方式、重新同步、应答方式等等与其它网络协议差不多的部分不在这里介绍。
二、 WorldFip的特点
WorldFip总线是面向工业控制的,其主要特点可归纳为实时性、同步性、可靠性。
WorldFip 目前使用的传输速率是31.5K,1M和2.5M。典型速率为1M bit/s。典型的传输介质是工业级屏蔽双绞线。对接线盒、9针D型插头座等都有严格的规定。每个网段最长为1公里。加中继器(Repeater)以后可扩展到5公里。
WorldFip与Internet类似,使用曼彻斯特码传输。但它是一种令牌网。网络由仲裁器和若干用户站组成。
WorldFip 使用信息生产者和消费者的概念,和通常意义上的输出量、输入量略有区别。每个生产者或消费者变量有一个IP地址。每个用户站可以有例如16个生产者/消费者变量。任何时候,生产者只能有一个,而消费者可以是1个或多个。
WorldFip的设计思想是,按一定的时序,为每个信息生产者分配一个固定的时段,通过总线仲裁器诸个呼叫每个生产者,如果该生产者已经上网,应在规定时间内应答。生产者提供必要的信息,同时提供一个状态字,说明这一信息是最新生产的,还是过去传送过的老信息。消费者接收到信息时,可根据状态字判断信息的价值。
WorldFip 将信息分为:周期性同步数据、周期性异步数据和非周期性消息包。同步数据严格地按确定的时序呼叫,接下去是周期性异步数据,用于对同步性要求不太高的数据传送。最后呼叫消息包。周期性同步数据、异步数据用于时序要求严格,数据包不大的信息(8~128字节),消息包指时序要求不严格,数据量大的信息,例如每包256字节。形象地比喻,网线可以看成一个流水的管道。一半(或1/3、2/3,由用户设计)流的是水,是不可压缩的。即周期性同步和异步数据。另一半可以看成是空的,留给非周期性消息包的传送。
网络仲裁器是整个网络通信的主宰者。网络仲裁器轮番呼叫每一个生产者变量。整个网线上总是有信号的。如果若干时间间隔内(例如几十毫秒)没有监听到网上的信号、则可以诊断为网络故障,此时可以自动将冗余热备份网线切换上去,也可以设计成各用户站回本质安全态。WorldFip 在网络安全性方面的考虑有其独到之处。在一个网络中可以有一个或多个网络仲裁器。在任意给定时刻,只有一个在起作用,其他处于热备份态,监听网络状态。而每个用户站的网络冗余则是通过一个控制器驱动两路驱动器,接入两个独立的网线实现的。当一个网线被破坏,自动切换到另一网线。
三、 WorldFip 协议
除用户层外,WorldFip使用以下三层通信协议:应用层、数据链路层、物理层。
用户层指有用的信息,一个变量(生产者或消费者),可以是8字节,也可以是16、32、48......乃至128字节。一则消息,则可以长至256字节。以下三层是在WorldFip网络控制器中自动实现的,不需要用户CPU干预。它相应于7层网络通信协议的1、2和7层。
应用层在用户层信息的前面加上两个字节的识别码(ID)。这两个字节第一个是变量类型即所谓PDU类型。第二个字节是数据长度。
数据链路层则在应用层基础上加上一头一尾。头上是一个字节的状态字,表示该信息是最近刷新的,还是重复以前的数据。尾上加两个字节,用于CRC校验。
到物理层,则在数据链路层基础上再加上头尾。头上加两个字节,一个是前同步字符,由10101010组成,第二个是帧开始分界符,由1、高电平、低电平、1、零、高电平、低电平、零组成。尾部加一个帧结束字节,由1、高电平、低电平、高电平、低电平、1、零、1、组成。
综上所述,三层协议一共在有用信息两端增加了8个字节。当速率为1M时,帧与帧之间的间隔可设定在10~70μS之间。如果每个数据都是8字节,有用通量在200K~300 Kbit/s之间。如果数据长度为128字节,有用通量可达800K bit/s。
在1M速率下,如果扫描周期为10mS。假设5mS用于周期性同步和异步数据,5mS用于传送信息包,则5mS中可以扫描23个8字节变量或4个128字节变量。如果网上真的有250个用户站,每站有16个变量,即总共4000个变量,一半的时间留给消息包传输,则一次扫描约需要2秒。
四、 WorldFip总线典型器件
1、 用于总线仲裁器的典型IC是VLSI公司的FullFip2。这是一个84引脚的芯片,使用时需要外扩独享存储器(Private memory)。有最多2M寻址空间,可主管最多4000个用户站,6万个以上变量。考虑到上述扫描周期不宜太长,用户站不可能这么多。
该芯片可方便地与Intel CPU或Motorola 单片机接口。可设计成PC机内的一块总线仲裁卡,也可以方便地与Motorola 16/32位单片机接口,例如MC68HC3XX、MC68HC16等。
FullFip2与WorldFip的连接是通过总线驱动器经变压器耦合实现的。
FullFip2主要用于总线仲裁,也可用于用户站。FullFip2内部有近100个寄存器,编程时较为复杂。一些公司提供C语言的函数库用于总线仲裁器的编程与开发。
2、 MicroFip是一种低价位、用于用户站的IC,也是VLSI产品。对于I/O端口≤16的用户站,MicroFip可独立工作(Stand alone 方式)。用户事先定义的,网络故障时各输出端口应该输出的值、初值等参数可远程下载。这是一个100引脚的表面贴芯片。
作为单片机接口芯片,它可以方便地与8051、68HC11/12/16等单片机接口,此时该用户站可处理16个变量(生产者或消费者)。由于片内有512字节的变量缓冲区,每个数据变量的大小可为n×8字节(0≤n≤7)。而最长的消息包可以大到256字节。
3、 总线驱动与变压器。WorldFip用的总线驱动器与其它总线驱动器的不同之处在于,除了实现曼彻斯特编码、解码功能之外,它还提供总线监听与看门狗功能,这为总线的热备份、总线冗余提供了方便,提高了总线的安全性。
总线驱动芯片是一个28引脚的表面贴芯片。
变压器用于驱动器与传输介质的隔离,驱动器与变压器之间应加上保护与抗干扰措施。
符合WorldFip协议的芯片还有一些,如FIPIU2、FIPCOI等。不在此详述。
五、 开发工具
除一些公司提供用于FullFip2和MicroFip编程的C语言程序库以外,最值得一提的是WorldFip协议分析器。其硬件是插在PC机内的一块卡。用于采集WorldFip网线上的信号。软件名为Fip Watcher。在Windows下运行。开发者给定触发条件以后,Fip Watcher在屏幕上显示数据包的内容和每个数据包之间的时间关系。这个工具硬件相当简单,而使用起来比示波器、逻辑分析仪都方便、直观,价格也便宜许多。
另外,一些公司还提供开发散件,包括主要控制器芯片,驱动器芯片,变压器等。也有PC机上的演示板,用于总线仲裁器。或者一块PC 机上的卡,使某一PC机成为一个用户站。还有以MicroFip芯片加驱动、变压器耦合等三部分组成的评估板可供使用。该板可单独使用,也可以方便地与Intel 8051或各种Motorola 单片机接口。
六、 目前存在的一些问题和应用前景
由于WorldFip的发展经历了一个十余年的发展过程,而最终被国际上认可成为国际标准还是最近几年的事。各公司都声称支持WorldFip现场总线协议,而不少公司使用的是他们自己设计的专用芯片。使用的类似标准有Fip、FipIO等等。如果全部使用某公司的产品,一般不会有什么问题。这些公司还提供上层的编程工具等。如果同时使用两家不同公司的产品,或将根据WorldFip协议自行开发的设备连入从某公司购得的网络,则会出现数据格式不一致,不能接入的问题。
在大型强子对撞机工程中,欧洲核子研究中心希望购买施耐德公司的PLC,用于总线仲裁,而用户站则将根据需要自行开发,结果出现了上述问题。目前此类问题正在解决之中。
由于WorldFip现场总线依照工业控制系统的要求,不但严格定义了通信协议,也严格定义了符合工业标准的传输介质、接线盒、插头座等。在实时性、同步性、冗余性方面独具特色。速度更高的、以光纤为介质的高速网也不断推出。预计将来的几年中,在工控领域,WorldFip总线将会得到越来越广泛的应用。