为工厂车间设计自动化控制系统是一件繁杂的工作。你必须考虑环境问题:热、尘土、辐射、电气噪声,以及对所有电子电路(或人类)有害的问题。大多数 PLC(可编程逻辑控制器)系统都含有一个中心控制器和外围 I/O 模块。这些模块包括连接传感器和真实世界的 ADC、DAC、通信模块、数字输入和输出、继电器等等。所有这些模块都需要通过一个信号总线与中心控制器通信。设计师只需简单地去掉设备间的互连,就可以提高某个系统的可靠性。现在有多种方法可以采用,但最简单的方法是使数据串行化,并使用较少的连接。这些技术要用几个物理层和几种拓扑以及数据包格式,直接实现这些总线。无论是用烟雾信号还是激光,通信都需要一种物理介质,除了从源点至目标点的传播时间之外。可选的方法有很多种,包括无线、电缆、光纤和声学方法。所有这些物理介质都能承载智能,但在不良条件下,某些介质的性能要比另一些更好一些。
有线类连接中,标准包括 TTL(晶体管-晶体管逻辑)、ECL(射极耦合逻辑)、RS232、RS422、RS485、LVDS(低压差分信号传输),以及以太网,它们都可以用于网络、底板和总线。老式的 TTL 标准采用对地电平约为 5V 的慢速单端信号,易受接地噪声干扰。RS232 增加了一个双极电压摆幅,有助提高抗噪声能力,但缺乏差分信号在电噪声环境中传输的优点。RS422、RS485 和 LVDS 标准都采用差分线对,在接收机端去除两根线上的共模噪声。LVDS 用电流代替了电压,并通过降低信号摆幅而大大加快了信号传输速度。这一方案解决了线路的很多问题,包括电缆阻抗问题。
在一个对电路有害的环境中(如钢铁厂),大电流可能会从距离控制系统只有几英寸的地方流过。这些电流会在导体中产生噪声,尤其是在设备间长长的互连线上。抑制这种噪声的标准技术是采用差分信号传输方法。RS422 和 RS485 都是长距互连的很好选择,但它们缺乏用于局部总线的速度。LVDS 是局部总线的一个较好选择,例如那些安装于 DIN 轨上的设备之间的通信。另外,设计师正在开始将以太网用作底板的互连。以太网有很多优点。它是一种标准,采用定义良好的 MAC(媒体访问控制器),很多处理器都采用它;并且大多数操作系统都有以太网的标准驱动程序。本文的重点是用串行式 LVDS 方法保持良好的抗噪声能力,并提供 100 MHz ~ 400 MHz 的速度。
拓扑
哪种拓扑最好?可选的包括多分支总线、冗余多分支总线、点对点总线,甚至曾经很流行的环形拓扑。多分支或多点总线是很多底板的流行技术,也非常适合于单处理器系统和多处理器系统。如果选择了 LVDS,则要在每个电路板的 LVDS 收发器上采用双端传输线。采用独立收发器的好处有两点。首先,可以将收发器尽量靠近连接器放置,从而限制由于连接中断导致的近端反射。其次,这些收发器也比 FPGA 中集成的驱动器更加牢靠。当出现故障时,它们的更换成本也远低于价值 100 美元的 FPGA。在这种拓扑中,一个信令就可启动电路板上的驱动器,将串行数据包发送至底板。所有其它设备都是监听方,用于接收传输的数据包。大多数共享式总线拓扑都需要某种形式的流量控制技术。简单的办法是用一个公共访问线路,它用附加线向所有设备指出某台设备在请求总线,其它设备则不准通话。另外,还可以实现一种主/从机构,只有主控制器提出要求时才允许通信(图 1)。
多分支总线易于实现,但是,一个故障就会导致整个总线失效,如一个短路、终端连接器丢失、或总线驱动器挂起等。在工业环境中,这种故障可能是灾难性的,例如石油冶炼厂就决不允许发生这种故障。解决这一问题的简单方法是使用两个总线。如果一个总线失效,另一个还能保持工作。除了增加冗余以外,系统还在原生模式(正常工作)下获得两倍带宽。使用两个总线后,损失一个总线只会使可用带宽减半,而系统还能在降级模式下继续自己的功能。这种方法的缺点是增加了成本和复杂性(图 2)。
另一种避免总线故障的方法是采用点对点拓扑,如使用以太网络。每个设备都使自己的总线与控制器通信。如果某个设备或总线失效,所有其它设备还能继续工作。但对一个局部底板来说,不利因素是机械互连问题。一个设备要插入其它设备之中时(如 DIN 轨安装),需要有穿通式连接,因而增加了而不是减少了互连的数量。连接线数量的增加抵消了底板中采用点对点拓扑的优点。
另一方面,环形拓扑是可自愈的,可以自动进行分隔自己。令牌环网和其它类似网络就采用这种方法。在一个底板实现方案中,系统控制着这个环路。这一拓扑亦能够实现模块在 DIN 轨上紧挨的插入(图 3)。如果有任何设备或互连线故障,环路可以自我折回,将故障设备分隔开或将连接断开(图 4)。除了接口以外,环形拓扑的物理实现也像双路多分支总线结构一样有高成本的问题。环路只使用驱动器和接收器,而没有收发器。然而,完成整个环路还需要两个附加的无源总线。驱动器总是处于使用/选择状态,但由于设备可以在两个接收器总线中选择一个,必须使用能选择需要的总线。另外,FPGA 上的两个数字输入也可以选择总线。这种方案的样品部件有美国国家半导体公司的 DSLV049(使用数字选择接收器)、DS90LV027 和 28,或者两个 DS90LV019 收发器。
环形拓扑的一个有意思的好处是伪点至点连接。这种方案无需总线接入,因为数据包的传输是单向的。缺点是每个模块都需要处理所有数据包。设计师可以在接口控制逻辑上使用一个短缓冲器,实现一种存储转发方法,从而略微提高这个过程的自动化。设备无需存储整个数据包,但必须存储报头供检查。
在可靠的硬件实现下,需要有一种通过协议访问物理介质的方法。不同拓扑其协议也各不相同。在多分支拓扑中,某个设备必须在信号沟通了所有设备后,才能开始传输数据,以减少或避免在共享介质上的冲突。碰撞总会发生,因此必须用一个校验来验证数据包中信息的完整性。重新传输时间的随机性有助于减少总线上的碰撞。根据总线位置或地址确定的设备优先权也可能有所帮助。使用优先访问方法,最高优先级的设备只需最短的等待时间即可发送数据包。你可以建立一种固定优先级,或者用一种循环式方法,即最后一个传输设备有最低的优先权。当其它设备传送消息时,等待设备的优先权上升,等待时间减少。这种方法为每个设备分配相等的总线时间来传送消息。高度优先权的消息可以有固定的最小延迟时间,或对紧急消息取消延迟时间,如“紧急停机。”
在一个串行/解串系统中,当总线未用时,就会连续发送空消息,使解串器中的恢复电路能与数据同步。在一个共享总线拓扑中,系统不能用空消息来同步接收器,因此需要数据包格式中的报头。报头长度要根据接收器同步电路锁定进入数据的快慢而决定。接收器较快的锁定时间意味着报头会较短,数据流量会更有效。
在环路拓扑中,持续传输空闲数据而总是保持串行器/解串器接收器的锁定是一种优点。但是,当每个设备都希望在数据包流中置入信息时必须存在一种控制方法,使之不会与其它设备发生冲突。环路拓扑采用令牌传递方法,它提供何时传输数据的提示。令牌是一个特殊的报头,用以识别当前的令牌属主,以及网络上的其它数据。令牌后连接的数据像货车挂在车头上一样。在路上的每个车站处,只要令牌空闲,该处设备都可以在令牌后追加数据。
最简单的环状形式是某个时间只有一个设备能使用令牌。这种方法简化了连续流中携带的数据包。因此,每当一个设备收到令牌,它都在令牌中置一个位,表示它已经从数据包流中获取了令牌,而所有上游设备(除目标以外)都简单地让其通过。这种方法省略了存储转发过程。目标设备只需在收到令牌时卸掉数据包,并释放令牌,除非它有要外发的数据包。此时的缺点在于总线效率。如果令牌正在使用,则其它设备必须等待它空闲下来才能发送数据。
有很多方法可以为基于令牌的系统提供优先级设置。简单的方法是实现一个令牌计数的循环式方法。如果某个系统有3位的优先级(七级),当某个设备使用令牌时,其优先级降至第七级和最低水平。当系统通过空闲令牌时,每次令牌通过一个设备,优先级计数增加1,直至到达零水平,或“可传送”状态。如果该设备有一个待传数据包,又有一个空闲令牌传到,则设备会抓住该令牌。当出现紧急情况时,系统可以忽略优先级,而立即使用下一个到达的空闲令牌。
令牌协议有其复杂性。例如,如果某个拥有令牌的设备死机了怎么办?另外,当用户起动系统时,哪个设备来发起令牌?除了这些问题以外,令牌传递均可以正常运行,并为高可靠性底板提供一个可自愈的系统。
设计实例
今天的很多微控制器都有内置以太网 MAC,它使用一个 MII(介质独立接口)连接到 PHY(物理)层芯片,如 Zilog EZ80 Acclaim 和 Freescale MCF523x。MII 有一个 4 b 数据、半字节的模式接口,以及一个简单的串行总线,可用于 PHY 的配置。可以在 FPGA 中建立一个定制的总线控制器,它有一个仿真以太网 PHY 的 MII。基于 FPGA 的控制器处理总线访问或令牌管理、串行与解串行、环路管理、痊愈,以及时钟生成与恢复。
本设计可以让一个系统传输以太网数据包,就如同底板是以太网一样。另外,以太网上的 TCP/IP 是一个定义完备的协议,提供了实现可接互联网底板的简单方法(图 5)。FPGA 仿真以太网 PHY,使微控制器中的 MAC 像连接标称以太网时一样运行。
使用 LVDS 可以消除工业环境中很多噪声问题。采用电流模式驱动器和较低的电压摆幅还可以增加速度。另外,通过数据串行化以及降低模块设备之间的互连数,LVDS 还可避免连接器故障,从而增加可靠性。设计实例中只需要8个上行和8个下行连接,即可提供一种 100 Mbps、可自愈、基于数据包的以太网环路拓扑。