FireWire技术可实现长距离的高吞吐量传输、真正等时的对等(peer-to-peer)操作并具有广泛的操作系统支持。对那些要求传输吞吐量更高、传输距离更长,并要求能从具有广播能力的真正等时及对等操作中获益的工业应用来说,FireWire技术将是连接外部世界的最佳选择。
更强的计算能力和成本更低、像素更高的图像传感器催生了一批新的工业应用。诸如视觉系统、机器人、运动控制及晶圆检查/修复等这些应用,对整个计算系统都有很高的要求。例如,远程/本地传感器的I/O吞吐量对主计算单元(如工业桌面计算机等)与各外部成像设备(如工业成像摄像机等)之间的典型互连提出了更高的带宽要求。
除吞吐量外,这些应用的其他关键需求还包括服务质量(QoS)、连接距离、连接可靠性以及数据延迟等。连接选项包括面向Windows、Mac OS及Linux设备的标准高速数据连接,如100BaseT以太网、1000BaseT以太网(Gb以太网)、USB2.0以及IEEE-1394(又名FireWire、i.Link、DTVLink及SB1394)等。表1列出了利用PC内置FireWire接口及其Gb以太网和100BaseT以太网端口进行的基本文件传输测试结果。硬件包括两台带512MB RAM及一个600GB硬驱的1.7GHz Pentium 4计算机。
此外,更多的工业应用还要求更高的吞吐量或大于5米的传输距离,并要求能从具有广播能力的真正等时及对等操作中获益。其中最重要的是,它们需要光纤互连以及顶级的操作系统支持。对于这些,FireWire是最佳选择。
在那些互联网协议 (IP) 传输为关键要求、但延迟或等时数据传输并不重要的应用中,可采用以太网或FireWire连接。对那些不需要有真正等时能力、传输距离可限制在5米内、不需要对等支持的较低吞吐量需求来说,USB 2.0高速连接不失为一种较佳选择。此外,USB 2.0还可用于延迟不是很关键的一些应用中。
总吞吐量
尽管吞吐量主要为原始数据速率的函数,但仲裁或决定由哪一个节点进行下一步传输的方法,可大大影响吞吐量以及数据编码。FireWire的1394b配置具有1Gbps的原始数据吞吐量,但数据编码(IBM 8B10B的修改版)却将该速率降低到800 Mbps。当在两个1394b节点间传输数据时,1394b总线拥有者监视选择器(BOSS) 仲裁机制可执行与数据传输并行的仲裁、将总线授权(bus grant)作为数据包的末位以及采用优化数据包格式来减少开销。这可使测得到的吞吐量超过712 Mbps。
在125Mbps的原始速率上,用4B5B数据对100BaseT以太网进行编码(原始速率为125Mbps),可获得100 Mbps的吞吐量。但它使用和早期以太网一样的冲突检测仲裁机制。如果仲裁域中没有其他节点,那么这种方法效率很高。但如果仲裁域中有多个流量,则效率将降低,且可能会有更大的延迟。IP包头和编码也会给以太网带来开销负担,导致吞吐量下降。
要对1000Base以太网进行编码,可在1.25Gbps原始速率上利用8B10B数据编码来获得1Gbps的吞吐量。它具有和100BaseT以太网一样的局限性,因为原始吞吐量要大10倍,所以仲裁时间成比例增加。此外,IP编码还给CPU带来了更重的负担,因为相同的时间内有更多的数据包到达。
USB 2.0高速连接具有480 Mbps的原始吞吐量。对其吞吐量影响最大的是主机的硬件与软件实现。它没有仲裁,所有处理都在主机软件栈中预定,并且所有处理均来自(或去往)主机。因此,吞吐量的大小非常依赖于主机的计算负荷及数据的目的地。源地和目的地不是主机的数据将在总线上出现两次,一次出现在从源至主机的传输中,而另一次则出现在从主机至目的地的传输中。负荷很重的CPU也将影响USB系统的吞吐量。
服务质量
FireWire每125 ms为延迟要求很高的数据分配真正许诺的带宽。每一等时节点都拥有其各自以24.576 MHz频率增加、且每隔125ms被刷新为循环主节点时钟的32位时钟(循环定时器)。更新该节点时钟的同一数据包启动等时“帧”,这使得能以较低及确定的延迟来分配数据。等时机制在硬件得到实现,而用软件则控制设置和分配。
而以太网则缺乏这种等时机制。尽管IEEE标准建议采用一种对单个数据包区分优先级的方法,但并没有被终端设备、交换机及集线器等普遍采用。优先级只是一种规定节点在仲裁期间赢得冲突检测的方法,并不能完全避免争用或保证带宽或延迟。由于以太网缺乏等时传输,因此它还不可能拥有公共时基,例如FireWire的循环定时器等。
USB具有一种可靠性稍低些的等时机制,因为它主要依靠主机软件来执行等时机制的方方面面。只要主机不被繁重的处理或不恰当时的优先级更高的处理过度负荷,则等时机制即可保持。但如果计算负载很重,或在不恰当的时间上出现高优先级处理,则等时传输的等时性就会降低。单个USB外围设备没有像等时1394节点那样的公共时基。USB外围设备仅在主机请求时才输出数据,且没有像FireWire循环定时器那样的公共定时器,结果是更难以解决延迟问题。
连接距离
FireWire在其最初实现中(1394-1995, 1394a-2000)的最长建议电缆长度为4.5 m。尽管并未明确要求,但如果采用标准中所列出的线直径、屏蔽及接头等,则最好遵守该限制。对于仍满足电气要求的高质量电缆,其长度可超过4.5 m。但高质量电缆通常为非标准且价格更贵。IEEE 1394b通过允许使用多种类型的介质延长了电缆长度。尤其是,它允许用玻璃光纤(GOF)达到每电缆连接100米的连接距离(以任何速度传输,但必须符合收发器厂商的速度/距离限制),以及用5类非屏蔽双绞线对(UTP)在100Mbps速率上达到100米的连接距离。
USB 2.0在480Mbps速率上的电缆长度极限为5米。利用5类电缆,以太网可提供长达100米的连接距离。Gb以太网的1000BaseX实现也可采用IBM 8B10B编码,并可用GOF来传输。不过,这种实现没有1000BaseT CAT5E实现那么流行。1000BaseT实现采用5类增强型UTP电缆。CAT5E目前比GOF流行,因为它更便宜。它以1Gbps速率上的5级脉冲幅度调制(PAM5)进行编码。
连接的鲁棒性
工业实现可安装在严酷的电、机械环境中,并由当地培训过的技术员来维护。如果该安装的电缆处于密集的电磁干扰 (EMI) 环境中,则光缆连接以其抗电磁干扰性而可能是一种较佳选择。不过GOF收发器对电磁噪声也很敏感。GOF对于确保良好的结合与连接器匹配也是一个挑战,因为光纤的直径很小。
在这方面使用塑料光纤(POF)可能是一个好的折衷,因其直径相对较大、更结实、且收发器可以以高达500Mbps的速度工作,尽管采用塑料光纤(POF)及硬聚合物包层光纤(HPCF)会损失一些速度/距离(这在后面讨论)。玻璃光纤在任何速度上都能达到100米的连接距离(表2)。
通过光纤很容易采用1394b FireWire。对于以太网,它必须采用8B10B二进制编码实现。USB不能采用光缆。FireWire及USB 2.0高速采用屏蔽双绞线对(STP) 电缆可分别达到4.5及5米的距离,且能采用二进制差分码。至于100BaseT,它通常采用非屏蔽电缆,并拥有三级幅度编码。以其没有屏蔽及独特的三级编码,100BaseT更容易受到电磁干扰。UTP电缆也通常用作1000BaseT电缆,区别是1000BaseT在比100BaseT更高的频率上采用5级幅度编码。
FireWire 1394b硬件在总线复位的初始化过程中将自动禁用拓扑中的一个环路。由于每次总线复位都会重复此过程,因此这种机制在主连接被取消时将自动启用备份连接。主连接取消将导致总线复位,然后寻找到备份连接(参见图)。
换句话说,可将拓扑配置成带有多个备份连接,且硬件将在开机时禁用这些连接。如果被启用连接被取消,则取消会引起一次总线复位。而在总线复位期间,已被禁用的备份连接将被发现并被启用(假如这是两个节点之间目前唯一的通道的话)。满意的结果是,硬件可检测到备份连接,并在不需要时禁用,而在需要时无需软件干预即可自动启用。
采用以太网交换机可限制以太网仲裁域的大小,并能通过硬件IP加速(譬如建议用于iSCSI的IP加速)来减少IP延迟。但这两者都会增加实现的成本。即使采用交换机,以太网延迟也大于FireWire 延迟。再加上由于循环定时器与循环启动数据包所保持的公共时基,所以可确定FireWire 网络里的延迟。USB介于这二者之间,更接近于1394。
所有这些技术都可与目前最流行的操作系统完美集成。但值得指出的是,可在所有操作系统中实现用于传输IP数据的FireWire协议。因此,FireWire 也能传输IP数据,而且有时比以太网速度更快。
其他优势:对等操作和真正的等时传输
FireWire允许进行对等通信,即流量可直接发给请求数据的节点,而无需通过主节点来路由。这意味着任何节点都可启动一次与其他节点的交易,而无需通过一个主节点在进行。这与USB不同,在USB总线上,每次交易都会由主节点转发。
例如,如果一个传感器节点试图将数据发给另一个不使用1394总线的中央计算单元节点,则传感器节点只需直接将数据发给该节点,数据只在总线上出现一次。但对于USB,同样的数据必须先发给主节点,然后再由主节点转发给其他节点。因此在USB连接中,数据会在总线上出现两次,占用两次带宽并使传输错误几率加倍。USB还只允许总线上有一个主节点,因此USB不能使用多于一台PC的网络。可用IP软件栈(IP SW栈)将以太网配置成对等来对IP地址进行译码。
正如前面所提到的,FireWire每125 ms为延迟要求很高的数据分配真正许诺的带宽。每个具有等时能力的节点还拥有它自己以24.576 MHz频率递增、并每隔125 ms更新为循环主节点时钟的32位时钟。用于更新节点时钟的同一数据包还可用于启动等时“帧”。这能实现低延迟数据分配并使数据延迟具有确定性。等时机制以硬件实现,软件则用于控制设置与分配。如前所述,以太网没有等时机制,而USB则具有可靠性稍低的等时实现。
广播写的能力
FireWire还具有广播写机制与地址空间,这被循环开始消息用来更新每一节点的循环定时寄存器(公共时基)。其他等时消息、安全消息等亦可采用同样的等时机制。
IEEE 1394b具有以上所有优势,同时还具有其他独特优势。因此无需舍弃1394a的任何内容来实现1394b。1394b物理层(PHY)上的端口可向后兼容,即当被?到1394a节点中时,它们能与1394a节点通信;而当被?到1394b节点中时,则能与1394b节点通信。
如果将一个端口插入到1394a中而将另一个端口插入至1394b中,则1394b PHY可从1394a 转换为1394b,这就是所谓的“双语(bilingual)”。如果1394b为双语,则它能与任何现有1394设备在硬件层面上相结合。但如果端口与S800的端口相连,则它将以全速1394b连接。
目前,1394b可工作在高达800 Mbps的速率上。IEEE标准定义了升级至1.6 Gbps所有事项,并且还定义了速率高达3.2 Gbps的介质。实现800 Mbps 1394b的芯片可从德州仪器(TI)、牛津半导体公司(Oxford Semiconductor)、Initio及BridgeCo公司得到。而采用FPGA技术的几种1394b链路层实现也已获得成功,它们被用作ASIC的原型,以及被用作小批量设备的最终设备。
FireWire 1394b采用修改版的IBM 8B10B编码,因此1394b可与光收发器以及用于UTP电缆的特殊收发器一起使用。根据收发器的类型及所选介质,电缆连接距离每跳接(per hop)可达到100米,尽管跳接数量有限。在特殊环境下,连接距离可延长至大约400米,但网络不能太大。
此外,1394b还能在各种速度及连接距离上利用POF连接。以东芝的TODX2404为例,它能在0米、20米及50米的Mitsubishi Rayon(三菱人造纤维)标准电缆上分别达到400Mbps、200Mbps及100Mbps的速率,而用GOF则可达到400 Mbps以及更高速率。
如果有专用收发器,5类UTP电缆则可与1394b PHY一起使用。有了这种专用收发器,1394b可用CAT-5电缆在100米距离上达到100 Mbps的传输速率。直流平衡8B10B编码允许电缆上的电隔离,如果选择光连接则可实现最终隔离。
TI分别在100 Mbps速率上对UTP5进行了测试,在100 Mbps、200 Mbps及400 Mbps速率上对POF进行了测试,在400 Mbps及800 Mbps速率上对GOF进行了测试,最后在100-800 Mbps速率上对4.5米屏蔽双绞线对电缆进行了测试。硬件测试结果很好,得到了很好的误码率性能及1394a与1394b设备之间良好的互操作性。但也出现了软件兼容性问题。在400Mbp及800Mbps较高数据速率上,一切都很好。尽管有时在100或200Mbps较低数据速率上,根据特定终端设备的软件实现,一些老式1394终端设备可能试图在比采用1394b介质连接更高的速率上(400Mbps)传输。
FireWire 1394b的BOSS仲裁消除了异步传输的仲裁空闲延迟以及等时传输的仲裁时间,它是通过利用1394b的双-单工性质同时进行仲裁与数据传输来做到这一点的。它还允许在发送数据包的后几个码中包含总线授权,从而使仲裁只占用很小的开销。
一种采用FireWire实现的应用是Point Grey Research公司的800 Mbps工业用摄像机。这个高性能摄像机要求有很高的视频分辨率与质量,为使开发成本适当,它还需要目标操作系统支持一项标准。通过允许较简单的硬件实现、以原始视频格式将数字像素直接发给计算机进行处理,FireWire所具有的真正等时特性使这些应用从中受益。1394协会公布了一个用于此类摄像机(DCAM1.3)的标准,且该工业工作组还将继续更新这个标准中关于PHY高吞吐量特性的部分。
Point Grey公司已开发出用于较低吞吐量1394a-2000系统的FireWire摄像机,因此当FireWire 800Mbps速率得到实现时,FireWire摄像机能满足客户对更高分辨率的需求。等时数据可使用将近80% 的总可用带宽,从而可提供6?0 Mbps的吞吐量。然而,这些限制可让S100 1394-1995能正常工作。在S100上,20%的带宽为20 Mbps;而在S800上,20%的带宽为160 Mbps。利用这些特性,连同更有效的BOSS仲裁,可在等时1394b网络中将80%的可用带宽的速率推向更高。
吞吐量的另一个限制是最大长度的数据包仅持续大约83.3 ms时间。这虽然是对1394 PHY设计的一个限制,但却是标准所要求的。比这更长的数据包可能会丢失后几位而导致CRC误差,因此在标准中,S100、S200、S400及S800数据包的长度分别被限制在1024、2048、4096及8192字节以内。为兼容涵盖这些,节点可在每个等时帧里发送一个以上的等时数据包,只要网络能为这种操作分配带宽。