3.1 EtherCAT从站控制器概述
本节讲述的内容主要包括倍福公司的EtherCAT从站控制器ET1100和ET1200 的实现,功能固定的二进制配置FPGAs(ESC20)和可配置的FPGAsIP核(ET1810/ET1815)。
EtherCAT从站控制器主要特征见表3-1。
表3-1EtherCAT从站控制器主要特征
(续)
EtherCAT从站控制器功能框图如图3-1所示。
图3-1EtherCAT从站控制器功能框图
3.1.1 EtherCAT从站控制器功能块
1.EtherCAT接口(以太网/EBUS)
EtherCAT接口或端口将EtherCAT从站控制器连接到其他EtherCAT从站和主站。MAC层是EtherCAT从站控制器的组成部分。物理层可以是以太网或EBUS。EBUS的物理层完全集成到ASIC 中。对于以太网端口,外部以太网PHY 连接到EtherCAT从站控制器的MII/RGMII/RMII端口。通过全双工通信,EtherCAT的传输速度固定为100Mbit/s。链路状态和通信状态将报告给监控设备。EtherCAT从站支持2~4个端口,逻辑端口编号为0、1、2和3。
2.EtherCAT处理单元
EtherCAT处理单元(EPU)接收、分析和处理EtherCAT数据流,在逻辑上位于端口0和端口3之间。EtherCAT处理单元的主要用途是启用和协调对内部寄存器和EtherCAT从站控制器存储空间的访问,可以从EtherCAT主站或通过PDI从本地应用程序对其寻址。Ether-CAT处理单元除了自动转发、回环功能和PDI外,还包含EtherCAT从站的主要功能块。
3.自动转发
自动转发(Auto-Forwarder)接收以太网帧,执行帧检查并将其转发到回环功能。接收帧的时间戳由自动转发生成。
4.回环功能
如果端口没有链路,或者端口不可用,又或者该端口的环路关闭,则Loop-back(回环功能)将以太网帧转发到下一个逻辑端口。端口0的回环功能可将帧转发到EtherCAT处理单元。环路设置可由EtherCAT主站控制。
5.FMMU
FMMU(现场总线存储管理单元)用于将逻辑地址按位映射到ESC的物理地址。
6.同步管理器SM
同步管理器SM(SyncManager)负责EtherCAT主站与从站之间一致数据交换和邮箱通信。可以为每个同步管理器配置通信方向。读或写处理会分别在EtherCAT主站和附加的微控制器中生成事件。同步管理器可负责区分ESC和双端口内存,因为根据同步管理器状态可将它们的地址映射到不同的缓冲区并阻止访问。
7.监控单元
监控单元包含错误计数器和WDT。WDT用于检测通信并在发生错误时返回安全状态,错误计数器用于错误检测和分析。
8.复位单元
集成的复位控制器可检测电源电压并控制外部和内部复位,仅限ET1100和ET1200ASIC。
9.PHY管理单元
PHY管理单元通过MII管理接口与以太网PHY通信。PHY管理单元可由主站或从站使用。ESC自身就使用MII管理接口,用于在使用增强的链路检测机制接收错误后,可选择地重新启动自协商,以及可选择地进行MI链路检测和配置功能。
10.分布式时钟
分布式时钟(DC)允许精确地同步生成输出信号和输入采样,以及事件时间戳。同步性可能会跨越整个EtherCAT网络。
11.存储单元
EtherCAT从站具有高达64KB字节的地址空间。第一个4KB块(0x0000~0x0FFF)用于寄存器和用户存储器。地址0x1000以后的存储空间用作过程存储器(最大60KB)。过程存储器的大小取决于设备。ESC地址范围可由EtherCAT主站和附加的微控制器直接寻址。
12.过程数据接口(PDI) 或应用程序接口
取决于ESC,有以下几种PDI。
① 数字I/O(8~32位,单向/双向,带DC支持)。
②SPI从站。
③8/16位微控制器(异步或同步)。
④ 片上总线(例如Avalon、PLB或AXI,具体取决于目标FPGA类型和选择方式)。
⑤ 一般用途I/O。
13.SIIEEPROM
EtherCAT从站信息(ESI)的存储需要使用一个非易失性存储器,通常是I2C串行接口的EEPROM。如果ESC的实现为FPGA,则FPGA配置代码中需要第二个非易失性存储器。
14.状态/LEDs
状态块提供ESC和应用程序状态信息。它控制外部LED,如应用程序运行LED/错误,LED和端口链接/活动LED。
3.1.2 EtherCAT协议
EtherCAT使用标准IEEE802.3以太网帧,因此可以使用标准网络控制器,主站侧不需要特殊硬件。
EtherCAT具有一个保留的EtherType0x88A4,可将其与其他以太网帧区分开来。因此,EtherCAT可以与其他以太网协议并行运行。
EtherCAT不需要IP协议,但可以封装在IP/UDP中。EtherCAT从站控制器以硬件方式处理帧。
EtherCAT帧可被细化为EtherCAT帧头跟一个或多个EtherCAT数据报。至少有一个Eth-erCAT数据报必须在帧中。ESC仅处理当前EtherCAT报头中具有类型1的EtherCAT帧。尽管ESC不评估VLAN标记内容,但ESC也支持IEEE802.1QVLAN标记。
如果以太网帧大小低于64字节,则必须添加填充字节,直到达到此大小。否则,Ether-CAT帧将会与所有EtherCAT数据报加EtherCAT帧头的总和一样大。
1.EtherCAT报头
带EtherCAT数据的以太网帧如图3-2所示,显示了如何组装包含EtherCAT 数据的以太网帧。EtherCAT帧头见表3-2。
表3-2EtherCAT帧头
EtherCAT从站控制器忽略EtherCAT报头长度字段,它们取决于数据报长度字段。必须将EtherCAT从站控制器通过DL控制寄存器0x0100 [0] 配置为转发非EtherCAT帧。
2.EtherCAT数据报
EtherCAT数据报如图3-3所示,显示了EtherCAT数据报的结构。EtherCAT 数据报描述见表3-3。
图3-2 带EtherCAT数据的以太网帧
图3-3EtherCAT数据报
表3-3EtherCAT数据报描述
3.EtherCAT寻址模式
一个段内支持EtherCAT设备的两种寻址模式:设备寻址和逻辑寻址。
提供三种设备寻址模式:自动递增寻址,配置的站地址和广播。
EtherCAT设备最多可以有两个配置的站地址,一个由EtherCAT主站分配(配置的站地址,ConfiguredStationAddress),另一个存储在SIIEEPROM 中,可由从站应用程序(配置的站点别名地址,ConfiguredStationAliasAddress)进行更改。配置的站点别名地址的EEP-ROM设置仅在上电或复位后的第一次EEPROM加载时被接管。
EtherCAT寻址模式见表3-4。
表3-4EtherCAT寻址模式
4.工作计数器
每个EtherCAT数据报都以一个16位工作计数器(WKC)字段结束。工作计数器计算此EtherCAT数据报成功寻址的设备数量。成功意味着ESC已被寻址,并且可以访问所寻址的存储器(例如,受保护的SyncManager缓冲器)。工作计数器的递增由EtherCAT从站控制器的硬件来实现。每个数据报应具有主站计算的预期工作计数器值。主站可以通过将工作计数器与期望值进行比较来校验EtherCAT数据报的有效处理。
如果成功读取/写入整个多字节数据报中至少一个字节或一位,则工作计数器增加。对于多字节数据报,如果成功读取/写入了所有字节或仅一个字节,则无法从工作计数器值中获知。这允许通过忽略未使用的字节来使用单个数据报读取分散的寄存器区域。
Read-Multiple-Write可命令ARMW和FRMW被视为类似读命令或者写命令,具体取决于地址匹配。
5.EtherCAT命令类型
EtherCAT命令类型见表3-5,表中列出了所有支持的EtherCAT命令类型。对于读写(ReadWrite)操作,读操作在写操作之前执行。
表3-5EtherCAT命令类型
6.UDP/IP
EtherCAT从站控制器评估见表3-6的头字段,用以检测封装在UDP/IP中的EtherCAT帧。
表3-6EtherCATUDP/IP封装
如果未评估IP和UDP头字段,则不检查其他所有字段,并且不检查UDP校验和。
由于EtherCAT帧是即时处理的,因此在修改帧内容时,ESC无法更新UDP校验和。相反,EtherCAT从站控制器可清除任何EtherCAT帧的UDP校验和(不管DL控制寄存器0x0100 [0] 如何设置),这表明校验和未被使用。如果DL控制寄存器0x0100 [0]=0,则在不修改非EtherCAT帧的情况下转发UDP 校验和。
3.1.3 帧处理
ET1100、ET120、IPCore和ESC20从站控制器仅支持直接寻址模式:既没有为Ether-CAT从站控制器分配MAC地址,也没有为其分配IP地址,它们可使用任何MAC或IP地址处理EtherCAT帧。
在这些EtherCAT从站控制器之间,或主站和第一个从站之间无法使用非托管交换机,因为源地址和目标MAC地址不由EtherCAT从站控制器评估或交换。使用默认设置时,仅修改源MAC地址,因此主站可以区分传出和传入帧。
这些帧由EtherCAT从站控制器即时处理,即它们不存储在EtherCAT从站控制器之内。当比特通过EtherCAT从站控制器之时,读取和写入数据。最小化转发延迟,可用以实现快速的循环,转发延迟由接收FIFO大小和EtherCAT处理单元延迟定义,可省略发送FIFO以减少延迟时间。
EtherCAT从站控制器支持EtherCAT、UDP/IP和VLAN标记。处理包含EtherCAT数据报的EtherCAT帧和UDP/IP 帧。具有VLAN标记的帧由EtherCAT从站控制器处理,忽略VLAN设置并且不修改VLAN标记。
通过EtherCAT处理单元的每个帧都改变源MAC地址(SOURCEMAC [1] 设置为1,本地管理的地址)。这有助于区分主站发送的帧和主站接收的帧。
1.循环控制和循环状态
EtherCAT从站控制器的每个端口可以处于以下两种状态之一:打开或关闭。
如果端口处于打开状态,则会在此端口将帧传输到其他EtherCAT从站控制器,并接收来自其他EtherCAT从站控制器的帧。关闭的端口不会与其他EtherCAT从站控制器交换帧,而是将帧从内部转发到下一个逻辑端口,直到到达一个打开的端口。
每个端口的循环状态可由主设备控制(EtherCAT从站控制器DL控制寄存器0x0100)。EtherCAT从站控制器支持四种循环控制设置,包括两种手动配置和两种自动模式。
(1)手动打开
无论链接状态如何,端口都是打开的。如果没有链接,则传出的帧将丢失。
(2) 手动关闭
无论链接状态如何,端口都是关闭的。即使存在与传入帧的链接,也不会在此端口发送或接收任何帧。
(3)自动
每个端口的环路状态由端口的链接状态决定。如果有链接,则循环打开,并在没有链接的情况下关闭循环。
(4)自动关闭(手动打开)
根据链接状态关闭端口,即如果链路丢失,则将关闭循环(自动关闭)。如果建立了链接,循环将不会自动打开,而是保持关闭(关闭等待状态)。通常,必须通过将循环配置再次写入EtherCAT从站控制器的DL控制寄存器0x0100来明确地打开端口。该写访问必须通过不同的开放端口进入ESC。
打开端口还有一个额外的回退选项:如果在自动关闭模式下从关闭端口的外部链路接收到有效的以太网帧,则在正确接收CRC后也会打开它。帧的内容不会被评估。
自动闭环状态转换如图3-4所示。
如果端口可用,则认为端口处于打开状态,即在配置中启用了该端口,并满足了以下条件之一。
1)DL控制寄存器中的循环设置为自动,端口处有活动链接。
2)DL控制寄存器中的循环设置为自动关闭,端口处有活动链接,并且在建立链接后再次写入DL控制寄存器。
3)DL控制寄存器中的循环设置为自动关闭,并且端口处有活动链接,并且在建立链接后在此端口接收到有效帧。
图3-4 自动闭环状态转换
4)DL控制寄存器中的循环设置始终打开。
如果满足下列条件之一,则认为端口已关闭。
1) 配置中的端口不可用或未启用。
2)DL控制寄存器中的循环设置为“自动”,端口处没有活动链接。
3)DL控制寄存器中的循环设置为自动关闭,端口处没有活动链接,或者在建立链接后未再次写入DL控制寄存器。
4)DL控制寄存器中的循环设置始终关闭。
如果所有端口都关闭(手动或自动),端口0将作为恢复端口打开。虽然DL状态寄存器反映了正确的状态,但仍可以通过此端口进行读写。这可用于修正DL控制寄存器的设置。
环路控制和环路/链路状态寄存器描述见表3-7。
表3-7 环路控制和环路/链路状态寄存器描述
2.帧处理顺序
EtherCAT从站控制器的帧处理顺序取决于端口数(使用逻辑端口号)。
经过包含EtherCAT处理单元的EtherCAT从站控制器的方向称为“处理”方向,不经过EtherCAT处理单元的其他方向称为“转发”方向。
未实现的端口与关闭端口的行为类似,帧被转发到下一个端口。
3.永久端口和桥接端口
EtherCAT从站控制器的EtherCAT端口通常是永久端口,可在上电后直接使用。永久端口初始化配置为自动模式,即在建立链接后是打开的。此外,一些EtherCAT从站控制器支持EtherCAT桥接端口(端口3),这些端口会在SIIEEPROM中配置,如PDI接口。如果成功加载EEPROM,则此桥接端口变得可用,并且初始化为关闭,即必须由EtherCAT主站明确打开(或设置为自动模式)。
4.寄存器写操作的镜像缓冲区
EtherCAT从站控制器具有用于对寄存器(0x0000~0x0F7F)执行写操作的镜像缓冲区。在一个帧期间,写入数据被存储在镜像缓冲区中。如果正确接收帧,则将镜像缓冲区的值传送到有效寄存器。否则,镜像缓冲区的值不会被接管。由于这种行为,寄存器在收到Ether-CAT帧的FCS后不久就会获取新值。在正确接收帧后,同步管理器也会更改缓冲区。
用户和过程内存没有镜像缓冲区,对这些区域的访问会直接生效。如果将同步管理器配置为用户存储器或过程存储器,则写入数据将被放入存储器中,但如果发生错误,缓冲区将不会更改。
5.循环帧
EtherCAT从站控制器包含一种防止循环帧的机制。这种机制对于实现正确的WDT功能非常重要。
循环帧如图3-5所示。这是从站1和从站2之间链路故障的示例网络。
图3-5 循环帧
从站1和从站2都检测到链路故障并关闭其端口(从站1的端口1和从站2的端口0)。当前通过从站2右侧环的帧可能开始循环。如果这样的帧包含输出数据,它可能会触发Eth-erCAT从站控制器的内置WDT,因此尽管EtherCAT主站不能再更新输出,WDT仍永远不会过期。
为防止这种情况,在端口0闭环并且端口0的循环控制设置为自动或自动关闭(Ether-CAT从站控制器DL控制寄存器0x0100)的从站,将在EtherCAT处理单元中执行以下操作。
1) 如果EtherCAT数据报的循环位为0,则将循环位设置为1。
2) 如果循环位为1,则不处理帧并将其销毁。
该操作导致循环帧被检测和销毁。由于EtherCAT从站控制器不存储用于处理的帧,因此帧的片段仍将循环触发链接/活动LED。然而,该片段不会被处理。
循环帧禁止导致所有帧被丢弃的情况如图3-6所示。
图3-6 循环帧禁止导致所有帧被丢弃
由于循环帧被禁止,端口0不能故意不连接(从属硬件或拓扑)。所有帧在第二次通过自动关闭的端口0后将被丢弃,这可以禁止任何Ether-CAT通信。
由于没有连接任何内容,从站1和3的端口0自动关闭。每个帧的循环位在从站3、从站1检测到这种情况并销毁帧时置位。
在冗余操作中,只有一个端口0自动关闭,因此通信保持活动状态。
6.非EtherCAT协议
如果使用非EtherCAT协议,则必须将Ether-CAT从站控制器的DL控制寄存器(0x0100 [0])中的转发规则设置为转发非EtherCAT协议,否则会被EtherCAT从站控制器销毁。
7.端口0的特殊功能
端口0与端口1、2和3相比,每个EtherCAT的端口0具有以下一些特殊功能。
1)端口0通向主站,即端口0是上游端口,所有其他端口(1~3)是下游端口(除非发生错误且网络处于冗余模式)。
2)端口0的链路状态影响循环帧位,如果该位被置位且链路为自动关闭的,则帧将在端口0处丢弃。
3) 如果所有端口都关闭(自动或手动),则端口0循环状态打开。
4) 使用标准EBUS链接检测时,端口0具有特殊行为。
3.1.4 FMMU
现场总线存储器管理单元(FMMU)通过内部地址映射将逻辑地址转换为物理地址。因此,FMMU允许对跨越多个从设备的数据段使用逻辑寻址:一个数据报寻址几个任意分布的EtherCAT从站控制器内的数据。每个FMMU通道将一个连续的逻辑地址空间映射到从站的一个连续物理地址空间。EtherCAT从站控制器的FMMU支持逐位映射,支持的FMMU数量取决于EtherCAT从站控制器。FMMU支持的访问类型可配置为读、写或读/写。
3.1.5 同步管理器
EtherCAT从站控制器的存储器可用于在EtherCAT主站和本地应用程序(在连接到PDI的微控制器上)之间交换数据,而没有任何限制。像这样使用内存进行通信有一些缺点,可以通过EtherCAT从站控制器内部的同步管理器来解决。
1) 不保证数据一致性。信号量必须以软件实现,以便使用协调的方式交换数据。
2) 不保证数据安全性。安全机制必须用软件实现。
3)EtherCAT主站和应用程序必须轮询内存,以便得知对方的访问在何时完成。
同步管理器可在EtherCAT主站和本地应用程序之间实现一致且安全的数据交换,并生成中断来通知双方发生数据更改。
同步管理器由EtherCAT主站配置。通信方向以及通信模式(缓冲模式和邮箱模式)是可配置的。同步管理器使用位于内存区域的缓冲区来交换数据。对此缓冲区的访问由同步管理器的硬件控制。
对缓冲区的访问必须从起始地址开始,否则会被拒绝访问。访问起始地址后,整个缓冲区甚至是起始地址可以作为一个整体或几个行程再次访问。通过访问结束地址完成对缓冲区的访问,之后缓冲区状态会发生变化,并生成中断或WDT触发脉冲(如果已配置)。结束地址不能在一帧内访问两次。
同步管理器支持以下两种通信模式。
1.缓冲模式
缓冲模式允许双方,即EtherCAT主站和本地应用程序随时访问通信缓冲区。消费者总是获得由生产者写入的最新的缓冲区,并且生产者总是可以更新缓冲区的内容。如果缓冲区的写入速度比读出的速度快,则会丢弃旧数据。
缓冲模式通常用于循环过程数据。
2.邮箱模式
邮箱模式以握手机制实现数据交换,因此不会丢失数据。每一方,即EtherCAT主站或本地应用程序,只有在另一方完成访问后才能访问缓冲区。首先,生产者写入缓冲区。然后,锁定缓冲区的写入直到消费者将其读出。之后,生产者再次具有写访问权限,同时消费者缓冲区被锁定。
邮箱模式通常用于应用程序层协议。
仅当帧的FCS正确时,同步管理器才接受由主机引起的缓冲区更改,因此,缓冲区更改将在帧结束后不久生效。
同步管理器的配置寄存器位于寄存器地址0x0800处。
EtherCAT从站控制器具有以下主要功能。
1)集成数据帧转发处理单元,通信性能不受从站微处理器性能限制。每个EtherCAT从站控制器最多可以提供4个数据收发端口;主站发送EtherCAT数据帧操作被EtherCAT从站控制器称为ECAT帧操作。
2)最大64KB的双端口存储器DPRAM存储空间,其中包括4KB的寄存器空间和1~60KB的用户数据区,DPRAM可以由外部微处理器使用并行或串行数据总线访问,访问DPRAM的接口称为物理设备接口PDI(PhysicalDeviceInterface)。
3)可以不用微处理器控制,作为数字量输入/输出芯片独立运行,具有通信状态机处理功能,最多提供32位数字量输入/输出。
4)具有FMMU逻辑地址映射功能,提高数据帧利用率。
5)由储存同步管理器通道(SyncManager,SM)管理DPRAM,保证了应用数据的一致性和安全性。
6)集成分布时钟(DistributeClock,DC)功能,为微处理器提供高精度的中断信号。
7)具有EEPROM访问功能,存储EtherCAT从站控制器和应用配置参数,定义从站信息接口(SlaveInformationInterface,SII)。