历史上的今天
返回首页

历史上的今天

今天是:2025年07月23日(星期三)

正在发生

2019年07月23日 | 技术文章—深入实时以太网解析

2019-07-23 来源:EEWORLD

工业以太网——实时以太网——在过去几年中经历了巨大的增长。虽然经典的现场总线仍大量存在,但它们已经过了巅峰期。流行的实时以太网协议扩展了以太网标准,可以满足实时功能的要求。现在,TSN为实时以太网提供了一条新的途径。

 

实时与通信

 

在工厂自动化和驱动技术的背景下,实时意味着周期时间要安全、可靠地达到10毫秒以下,最低至微秒。为了满足这些实时要求,以太网还必须获得实时功能。

 

以太网比现场总线快得多——那又怎样?

 

为了满足自动化的实时要求,需要保证传输带宽和传输延迟。即使这些带宽通常非常小(每个器件几十个字节),该传输通道必须在每个I/O周期中可用,且达到延迟要求。


但是,经典以太网不提供延迟和带宽保证。相反,如果操作需要,以太网可以随时丢弃帧。这意味着什么?

 

以太网是所谓的桥接网络。帧(以太网帧)从一个点发到另一个点:从端点到交换机(网桥),从那里可能发到其他网桥,最后到达另一个端点。该架构在很大程度上具有自我配置能力。网桥在转发帧之前先完全接收帧。许多问题正是出在这里:

 

►   如果在峰值时间存储的帧数多于网桥缓冲存储器可以容纳的帧数,则丢弃新传入的帧。

 

►   由于帧长不同,因此其延迟时间为其长度的函数。这会导致延迟波动(抖动)。

 

►  由于交换机应通过其发送帧的端口可能已经被其他帧完全占用,所以会导致额外的延迟。发送大型以太网帧(1522字节)在100 Mbps速率下大约耗时124μs。

 

如果说以太网通常运行良好,这种说法在某种程度上是公允的。但是,这样做,我们使用的“通常”一词在硬实时语境下是无意义的。仅仅通常满足实时条件是不够的,必须始终满足该条件。

 

住在化工厂或炼油厂旁边的任何人都能理解这一点。工业通讯也不公平:最重要的是,控制/闭环控制应用始终具有优先权。


图1.自动化中的实时通信。

 

图2.ISO七层模型。

 

以PROFINET和EtherCAT为例展示的实时扩展

 

由于负责以太网标准化的IEEE并未就该问题提出解决方案,工业界开发了自己的解决方案——再次证明了其创造力。各种解决方案都有自己的优势和劣势,最终解决不同的市场问题。

 

PROFINET:普遍适用

 

通过PROFINET,可提供两种互补型解决方案。PROFINET RT是一种工厂自动化解决方案,周期时间最长为1 ms。RT直接以标准以太网为基础。以太网的可能性(例如,服务质量(QoS,优先级))被用于产生实时流量优先级。这有所帮助,但QoS并不能完全解决资源和延迟问题。这就是限制软实时的原因。与网络中使用的其他协议(例如HTTP、SNMP和TCP/IP)的良好兼容性是该技术的明显优势。

 

图4.PROFINET IRT。

 

对于硬实时,PROFINET提供同步实时(IRT)扩展。在此,部分以太网带宽通过标准以太网硬件的扩展专门为IRT流量保留。这可以通过IRT节点中的时钟的精确同步来实现。因此,可以在每个周期阻止通道(红色阶段)中的正常流量。只有红色阶段中的IRT帧到达网络。此外,网络参与者准确地在预先计算的时间发送IRT帧,从而在红色阶段实现效率的最大化。IRT帧通过网络,几乎无周跳。这样做的一个优点是它可以红色阶段的长度限制在最低限度;在红色阶段,所有其他流量都必须等待。红色相位最多可以占用以太网通道带宽的50%。

 

图3.协议概述。

 

如前所述,全长以太网帧(1552字节)在线路上大约耗时124μs。如果PROFINET IRT占用全部50%的带宽,最快的周期时间为2×124μs=248μs,舍入后为250μs。只有这样,其他协议(如HTTP)才能以不变的形式与其共存。

 

由于PROFINET 2.3可用于IRT的优化,包括快速转发、动态帧封装和分段,因此可以实现低至31.25μs的更快周期时间。

 

EtherCAT:以太网现场总线

 

在EtherCAT的开发过程中,开始时还有其他要求。EtherCAT是基于物理以太网(即第1层)的现场总线。甚至第2层也针对现场总线应用和高吞吐量应用进行了优化。EtherCAT没有经典的以太网桥,使用求和帧电报,使数据传输特别高效。EtherCAT每个周期发送一帧,与普通以太网不同;在后者中,设备间通信涉及的每台设备发送单独的帧。但是,此帧包含被寻址设备的所有数据。当EtherCAT帧由设备转发时,该特定设备的数据被实时插入到该帧中并从该帧中取出。通过这种方式,可以实现极短的周期时间,最小低于31.25μs。

 

EtherCAT还具有时间同步功能。为了将在PC上表现不太理想的以太网接口用作EtherCAT的主设备,人们付出了大量努力。

 

在EtherCAT下,以太网流量(如Web或TCP/IP流量)只能以背负方式分成小部分传输;不可能在线上直接共存。

 

其他如何?

 

POWERLINK采用与EtherCAT相同的基本方法;其取得对以太网的完全控制权,并通过背负方式把IP应用传输到节点。但这是他们唯一的共同点。POWERLINK不使用求和帧协议,然而,它在实际应用中表现同样出色。

 

与IRT一样,SERCOS有预留带宽,但在其中使用的是求和帧协议。SERCOS允许其他协议共存。

 

TSN时机的到来

 

IEEE从音频/视频桥接(AVB)协议的角度研究了这个话题。在对协议进行改进时,还考虑了更具挑战性的工业实时通信。这些标准的原始名称AVB2由此改称TSN(指时间敏感型网络)。有了这些标准,现在可以使用统一的确定性以太网版本。

 

这实际上可以简化许多问题。例如,众所周知的工业网络几乎全部针对100Mbps。然而,千兆以太网和10 Mbps以太网如今已成为特殊应用的关注焦点。TSN标准涵盖所有速率。使用TSN,无需从头开始:如果不是TSN,所有现有标准都必须针对千兆速率进行重新定义——这将导致硬件开发成本和市场碎片化成本。

 

TSN有什么用?TSN实时

 

TSN扩展了以太网第2层,纳入了实时操作所需的一系列机制:

 

►        802.1AS/802.1AS-Rev考虑了网络中时钟的高精度同步问题。

 

►        时间感知整形器(TAS)选项使以太网能够在硬调度模式下运行。有了该选项,就可以在特定时间阻止/释放QoS模型的一个或多个队列。

 

►        抢占(穿插快速流量)选项使长帧能够被分解成更小的部分,从而最大限度地减小优先级更高的帧的延迟。该选项可用于在速率超过100 Mbps时,优化TAS的保护带或替换TAS。

 

►        复制和消除帧以提高可靠性的选项可用于定义通过网络的冗余路径;如环路中。

 

►        使用软件定义的网络意味着帧不再通过目标节点的硬件MAC地址转发到目的地,而是通过特殊MAC地址(本地管理的多播MAC)和VLAN ID的组合转发。不再自动确定这些帧在网络中的路由方式,而是由软件进行配置。多播MAC和VLAN ID的这种组合称为流ID,具有相同流ID的所有TSN帧称为TSN流。TSN流始终只有一个发件人,但可以有多个收件人。

 

图5.以太网帧(其中,与TSN数据流标识相关的部分以绿色表示)。

 

鉴于现有资源,现在可以用特殊的方式组织TSN流,不再需要丢弃帧。现在,网桥将其资源用于TSN流的无损转发。

 

尽力服务流量(标准以太网、IP、Web)用剩余资源(内存/带宽)正常传输。

 

第二层以上发生了什么?

 

每个互联网以太网协议背后都有一个组织,是它推动着各自协议的标准化和普及。这些组织中的每一个都制定了TSN战略。结果,我们看到,几乎所有现有协议都有TSN,只是表现形式各异而已。继续看我们的例子:

 

对于PROFINET,通向TSN的途径相对较短,因为人们目前已经积累了丰富的时间感知整形经验(已经非常接近IRT),并且始终都支持行业协议与IT协议的共存。对于用户而言,很多东西都未变,因此,熟悉的环境有利于提升绩效。

 

EtherCAT和类似的SERCOS将使TSN获得现场层次以上的运用能力。例如,EtherCAT自动化协议(EAP)非常适合通过TSN以较低的开销,连通经典EtherCAT网段。

 

但是,该领域也有新的参与者。

 

有一个团体正着手定义一个全新的工业以太网协议。有人将OPC UA用作应用层。TSN被视为使该协议具有实时能力的手段。但是,这里还有大量的工作要做。传输需要新的OPC UA传输层(即所谓的OPC UA PUB/SUB协议)。

 

图6.硬实时(IRT)、软实时(RT)和IT协议(TCP/IP)的延迟/抖动幅度。

 

越多越有用吗?在实时领域并非如此

 

今天,我们在工业自动化中使用的是100 Mbps以太网,千兆以太网很快就会上线。但是,更高的速度并不意味着延迟能得到保障,传输能得到保障。因此,对于硬实时,始终都需要特殊的机制。有了TSN,它们都已标准化。


作者简介——Volker Goller


Volker E. Goller [volker.goller@analog.com]是ADI公司的系统应用工程师,拥有30多年的丰富经验,广泛涉猎复杂运动控制、嵌入式传感器、时间敏感网络技术等工业应用。作为一名软件开发员,Volker开发了面向无线和有线应用的各种通信协议和协议栈,他还参与了主要行业组织,积极参与新通信标准的部署工作。



推荐阅读

史海拾趣

Hirose公司的发展小趣事

对于单级PFC电路,网友可能还会有多种问题,以下是一些常见问题及其回答:

一、技术原理与特性

  1. 单级PFC电路的基本工作原理是什么?
    • 回答:单级PFC电路通过共用一个开关管和一套PWM控制电路,同时实现功率因数校正(PFC)和对输出电压的调节。它通常由升压型PFC级和DC-DC变换器组合而成,两部分电路共用一个开关,通过控制开关的通断,电路同时完成对AC输入电流的整形和对输出电压的调节。
  2. 单级PFC电路相比两级PFC电路有哪些优缺点?
    • 回答:优点包括电路结构简单、成本较低、效率较高(在某些设计下)。缺点则在于PFC和对输入电流谐波抑制的效果可能不如两级PFC电路,且在某些应用中可能面临安规问题。

二、设计与应用

  1. 如何设计单级PFC电路以满足特定的功率因数要求?
    • 回答:设计单级PFC电路以满足特定功率因数要求时,需要考虑电感的选择、开关管的选型、控制电路的设计以及反馈机制等因素。通过精确控制开关管的通断时间和占空比,可以实现对输入电流的整形,从而改善功率因数。此外,还可以采用有源钳位和软开关技术来进一步提高效率并降低开关损耗。
  2. 单级PFC电路在哪些应用场景中较为常见?
    • 回答:单级PFC电路因其结构简单、成本较低而广泛应用于各种需要功率因数校正的电子设备中,如LED驱动电源、电源适配器、开关电源等。特别是在对成本有一定要求的场合,单级PFC电路更具竞争力。

三、故障与调试

  1. 单级PFC电路在调试过程中可能会遇到哪些常见问题?
    • 回答:在调试单级PFC电路时,可能会遇到次级去电流检测电阻过大、光耦供电电阻过大、比较器电流反馈电容过大等问题。这些问题可能导致PFC电路无法正常工作或性能下降。解决方法包括调整相关电阻和电容的数值、检查电路连接是否正确、更换损坏的元件等。
  2. 如何诊断和解决单级PFC电路中的故障?
    • 回答:诊断和解决单级PFC电路中的故障时,首先需要检查电路中的保险丝是否熔断、MOS管是否损坏或过热、反馈控制元件是否失效以及负载是否存在故障等。通过逐一排查这些可能的问题点,可以定位故障原因并采取相应的修复措施。在检修过程中,需要注意安全操作规范,避免触碰高压部位并断开电源。

四、性能优化

  1. 如何优化单级PFC电路的性能?
    • 回答:优化单级PFC电路的性能可以从多个方面入手,包括优化电感的设计以减小损耗、选择合适的开关管和二极管以降低导通压降和反向恢复时间、改进控制算法以提高控制精度和响应速度等。此外,还可以采用有源钳位和软开关技术来进一步降低开关损耗并提高整体效率。
  2. 单级PFC电路的效率如何提升?
    • 回答:提升单级PFC电路的效率可以通过多种方法实现,包括优化电路拓扑结构、选用高效率的开关管和二极管、降低电路中的寄生参数和损耗、采用先进的控制算法等。此外,合理设计散热系统以确保开关管和其他关键元件在正常工作温度下运行也是提高效率的重要手段之一。
Aptina (ON Semiconductor)公司的发展小趣事

在被ON Semiconductor收购后,Aptina作为ON Semiconductor的一部分,继续保持其技术优势和市场竞争力。ON Semiconductor对Aptina进行了整合与发展,将其纳入公司的整体战略中。通过资源共享、技术互补和市场协同,Aptina在ON Semiconductor的支持下实现了更快速的发展,并继续为全球客户提供高质量的图像传感器产品。

综上所述,Aptina (ON Semiconductor)公司的发展历程充满了挑战与机遇。从初创时期的艰难起步到技术突破与专利积累,再到与索尼的专利交叉许可和被ON Semiconductor收购,每一个阶段都见证了公司的成长与蜕变。如今,作为ON Semiconductor的重要一员,Aptina将继续在图像传感器领域深耕细作,为全球消费者带来更多优质的产品和服务。

Display Engineering Services公司的发展小趣事

在被ON Semiconductor收购后,Aptina作为ON Semiconductor的一部分,继续保持其技术优势和市场竞争力。ON Semiconductor对Aptina进行了整合与发展,将其纳入公司的整体战略中。通过资源共享、技术互补和市场协同,Aptina在ON Semiconductor的支持下实现了更快速的发展,并继续为全球客户提供高质量的图像传感器产品。

综上所述,Aptina (ON Semiconductor)公司的发展历程充满了挑战与机遇。从初创时期的艰难起步到技术突破与专利积累,再到与索尼的专利交叉许可和被ON Semiconductor收购,每一个阶段都见证了公司的成长与蜕变。如今,作为ON Semiconductor的重要一员,Aptina将继续在图像传感器领域深耕细作,为全球消费者带来更多优质的产品和服务。

Fong Ya Enterprise Co Ltd公司的发展小趣事

在快速发展的同时,Aptina注重技术研发与专利布局。公司投入大量资源用于研发,不断推出具有创新性的图像传感器产品。这些产品不仅提升了公司的市场竞争力,还为Aptina积累了大量的技术专利。这些专利成为了公司宝贵的资产,为公司的长期发展奠定了坚实基础。

富之光(Fujicon)公司的发展小趣事

富致科技的研发团队最早可以追溯到1997年,当时一群在电子、材料、化工领域拥有深厚背景的专家聚集在一起,共同探索高分子正温度系数PPTC技术的可能性。随着技术的不断成熟,他们于1999年12月正式成立了富致科技股份有限公司,将研发成果转化为实际产品,并迅速在台湾新北市五股工业园区建立了生产基地。这一初期的技术积累和团队组建,为富致科技后续的发展奠定了坚实的基础。

埃派克森微电子(Apexone)公司的发展小趣事

自2002财年以来,埃派克森微电子的业绩呈现出连续增长的态势。公司凭借出色的产品性能和市场竞争力,成功打入多家国内外知名企业,逐渐在目标市场占据了一席之地。经过数年的发展,埃派克森在全球模拟芯片供应商中已占据重要地位,其产品在通讯核心芯片、多媒体电子、消费电子、汽车电子等领域均有着广泛的应用。

问答坊 | AI 解惑

自己写得采集卡驱动,每隔一段时间会蓝屏,我用windbg打开dmp文件,分析内容看不明白,大家帮我看看好吗?先谢谢了

Microsoft (R) Windows Debugger Version 6.11.0001.404 X86 Copyright (c) Microsoft Corporation. All rights reserved. Loading Dump File [C:\\WINNT\\Minidump\\Mini073009-02.dmp] Mini Kernel Dump File: Only registers and stack tra ...…

查看全部问答>

Mathcad14,实用的数学和电路应用工具

在这里向EEWORLD的论坛好友们推荐一款软件,我曾经学习过一段时间,个人感觉不错。只是我尚未学到家,所以没能很好的运用到我的学习中来。希望感兴趣的和有需要的论坛好友们可以学习学习。下面我粘贴一些Mathcad的大致介绍。 Mathcad是一种工程计 ...…

查看全部问答>

verilog代码怎么错了?

WHEN s0 => DX_red<=\'0\';NB_yellow<=\'0\';DX_green<=\'1\' ;  NB_red<=\'1\';            IF  clk_1s\'EVENT AND clk_1s=\'1\' THEN       &n ...…

查看全部问答>

基于lm3s 的R L C测量器

  附上一些它的图片       测量器的程序以及原理图如下 [ 本帖最后由 熊猫 于 2011-3-7 14:02 编辑 ]…

查看全部问答>

关于音频解码器LM567的应用

我按lm567的典型选频电路搭建,5、6脚的电阻电容分别为10k、104,根据给出的中心频率计算公式f=1/(1.1rc)可得f=900hz左右,1、2脚电容我选223和103,理论上是不是应该在输入为900Hz、幅度>25mv时,在8脚有低电平信号输出(已接上拉)。但现实情况是 ...…

查看全部问答>

求助一个quartus原理图的问题

本人想用quartusII9.0绘制原理图,可按步骤打开后就这样的老是提醒我要安装打印机。绘制不了原理图,求解决方法。我把它卸载了,在安装了,也破解了(用文本方式编辑就可以,不管是verilog还vhdl)。所以按道理是破解了的。可原理图绘制不了。。。 ...…

查看全部问答>

共模输入的好处

本帖最后由 paulhyde 于 2014-9-15 09:19 编辑 共模输入有什么好处呢? 我只知道差模输入的好处。但共模输入就不知道了,但不知道为什么运放的资料手册里会有:Common-mode input range等参数。这可以说明什么?谢谢  …

查看全部问答>

世界上最小的EDA工具

若贝2.0 是世界上最小的国产EDA仿真工具 (只有不到5M),拥有非常现代化的界面,非常简洁的操作模式和可视化与代码设计的融合。简化硬件设计是若贝的宗旨,这款软件可以让用户在15分钟内上手,无需培训。虽然若贝2.0非常的小,但是却拥有了大部分E ...…

查看全部问答>

AVR LED闪烁程序 为什么LED一直亮着 不会闪烁? 软件:ICCAVR Progisp

#include #include void delay(void) { unsigned char a,b; for(a=0;a…

查看全部问答>