3.4 EtherCAT从站控制器的数据链路控制
(1)数据链路层概述
1)标准IEEE802.3以太网帧
① 对EtherCAT主站没有特殊要求。
② 标准以太网基础设施。
2)IEEE注册EtherType:88A4h
① 优化的帧开销。
② 不需要IP栈。
③ 简单的主实现。
3) 通过Internet进行EtherCAT通信
4) 从属侧的帧处理
EtherCAT从站控制器以硬件方式处理帧。
5) 通信性能独立于处理器能力
(2)数据链路层的作用
1)数据链路层链接物理层和应用层
2) 数据链路层负责底层通信基础设施
① 链接控制。
② 访问收发器(PHY)。
③ 寻址。
④从站控制器配置。
⑤EEPROM访问。
⑥ 同步管理器配置和管理。
⑦FMMU配置和管理。
⑧ 过程数据接口配置。
⑨ 分布式时钟。
⑩ 设置AL状态机交互。
3.4.1 EtherCAT从站控制器的数据帧处理
EtherCAT从站控制器的帧处理顺序取决于端口数和芯片模式(使用逻辑端口号),其帧处理顺序见表3-39。
表3-39EtherCAT从站控制器的帧处理顺序
数据帧在EtherCAT从站控制器内部的处理顺序取决于所使用的端口数目,在EtherCAT从站控制器内部经过数据帧处理单元的方向称为“处理”方向,其他方向称为“转发”方向。
每个EtherCAT从站控制器可以最多支持4个数据收发端口,每个端口都可以处在打开或闭合状态。如果端口打开,则可以向其他EtherCAT从站控制器的发送数据帧,或从其他EtherCAT从站控制器接收数据帧。一个闭合的端口不会与其他EtherCAT从站控制器交换数据帧,它在内部将数据帧转发到下一个逻辑端口,直到数据帧到达一个打开的端口。
EtherCAT从站控制器内部数据帧处理过程如图3-28所示。
图3-28EtherCAT从站控制器内部数据帧处理过程
EtherCAT从站控制器支持EtherCAT、UDP/IP 和VLAN(VirtualLocalAreaNetwork)数据帧类型,并能处理包含EtherCAT数据子报文的EtherCAT数据帧和UDP/IP数据帧,也能处理带有VLAN标记的数据帧,此时VLAN设置被忽略而VLAN标记不被修改。
由于ET1100、ET1200和EtherCAT从站没有MAC地址和IP地址,它们只能支持直连模式或使用管理型的交换机实现开放模式,由交换机的端口地址来识别不同的EtherCAT网段。
EtherCAT从站控制器修改了标准以太网的数据链路DL(DataLink),数据帧由Ether-CAT从站控制器直接转发处理,从而获得最小的转发延时和最短的周期时间。为了降低延迟时间,EtherCAT从站控制器省略了发送FIFO。但是,为了隔离接收时钟和处理时钟,EtherCAT从站控制器使用了接收FIFO(RXFIFO)。RXFIFO的大小取决于数据接收方和数据发送方的时钟源精度,以及最大的数据帧字节数。主站可以通过设置数据链路DL 控制寄存器(0x0100~0x0103)的位16~18来调整RXFIFO,但是不允许完全取消RXFIFO。默认的RXFIFO可以满足最大的以太网数据帧和100ppm的时钟源精度。使用25ppm 的时钟源精度可以将RXFIFO设置为最小。
EtherCAT从站控制器的转发延时由RXFIFO的大小和ESC数据帧处理单元延迟决定,而EtherCAT从站的数据帧传输延时还与它使用的物理层器件有关,使用MII接口时,由于PHY芯片的接收和发送延时比较大,一个端口的传输延时约为500ns;使用EBUS接口时,延时较小,通常约为100ns,EBUS最大传输距离为10m。
3.4.2 EtherCAT从站控制器的通信端口控制
EtherCAT从站控制器端口的回路状态可以由主站写数据链路DL控制寄存器(0x0100~0x0103)来控制。
EtherCAT从站控制器支持强制回路控制(不管连接状态如何都强制打开或闭合),以及自动回路控制(由每个端口的连接状态决定打开或闭合)。
在自动模式下,如果建立连接则端口打开,如果失去连接则端口闭合。端口失去连接而自动闭合,再次建立连接后,它必须被主动打开,后者端口收到有效的以太网数据帧后也可以自动打开。
EtherCAT从站控制器端口的状态可以从DL状态寄存器(0x0110~0x0111) 中读取。
EtherCAT从站控制器数据链路层控制和状态寄存器描述见表3-40。
表3-40EtherCAT从站控制器的数据链路层控制和状态寄存器描述
(续)
1.通信端口打开的条件
通信端口由主站控制,从站微处理器或微控制器不操作数据链路。端口被使能,而且满足如下任一条件时,端口将被打开。
1)DL控制寄存器中端口设置为自动时,端口上有活动的连接。
2)DL控制寄存器中回路设置为自动闭合时,端口上建立连接,并且向寄存器0x0100相应控制位再次写入0x01。
3)DL控制寄存器中回路设置为自动闭合时,端口上建立连接,并且收到有效的以太网数据帧。
4)DL控制寄存器中回路设置为常开。
2.通信端口闭合的条件
满足以下任一条件时,端口将被闭合。
1)DL控制寄存器中端口设置为自动时,端口上没有活动的连接。
2)DL控制寄存器中回路设置为自动闭合时,端口上没有活动的连接,或者建立连接后没有向相应控制位再次写入0x01。
3)DL控制寄存器中回路设置为常闭。
当所有的通信端口不论是因为强制还是自动而处于闭合状态时,端口0都将打开作为回复端口,可以通过这个端口实现读/写操作,以便修改DL控制寄存器的设置。此时DL状态寄存器仍然反映正确的状态。
3.4.3 EtherCAT从站控制器的数据链路错误检测
EtherCAT从站控制器在两个功能块中检测EtherCAT数据帧错误,即自动转发模块和EtherCAT数据帧处理单元。
1.自动转发模块检测到的错误
自动转发模块能检测到的错误如下:
1) 物理层错误(RX错误)。
2)数据帧过长。
3)CRC校验错误。
4) 数据帧无以太网起始符SOF(StartOfFrame)。
2.EtherCAT数据帧处理单元检测到的错误
EtherCAT数据帧处理单元可以检测到的错误如下。
1) 物理层错误(RX错误)。
2) 数据帧长度错误。
3) 数据帧过长。
4)数据帧过短。
5)CRC检验错误。
6)非EtherCAT数据帧(若0x100.0为1)。
EtherCAT从站控制器的寄存器有一些错误指示寄存器用来监测和定位错误。数据链路错误计数器描述见表3-41。所有计数器的最大值都为0xFF,计数到达0xFF后停止,不再循环计数,须由写操作来清除。EtherCAT从站控制器可以区分首次发现的错误和其之前已经检测到的错误,并且可以对接收错误计数器和转发错误计数器进行分析及错误定位。
表3-41 数据链路错误计数器描述
(续)
3.4.4 EtherCAT从站控制器的数据链路地址
EtherCAT通信协议使用设置寻址时,有两种从站地址模式。
EtherCAT从站控制器的数据链路地址寄存器描述见表3-42,表3-42中列出了两种设置站点地址时使用的寄存器。
表3-42EtherCAT从站控制器数据链路地址寄存器描述
1.通过主站在数据链路启动阶段配置给从站
主站在初始化状态时,通过使用APWR命令,写从站寄存器0x0010~0x0011,为从站设置一个与连接位置无关的地址,在以后的运行过程中使用此地址访问从站。
2.通过从站在上电初始化时从配置数据存储区装载
每个EtherCAT从站控制器均配有EEPROM存储配置数据,其中包括一个站点别名。
EtherCAT从站控制器在上电初始化时自动装载EEPROM中的数据,将站点别名装载到寄存器0x0012~0x0013。
主站在链路启动阶段使用顺序寻址命令APRD读取各个从站的设置地址别名,并在以后运行中使用。使用别名之前,主站还需要设置DL控制寄存器0x0100~0x0103的位24为1,通知从站将使用站点别名进行设置地址寻址。
使用从站别名可以保证即使网段拓扑改变或者添加或取下设备时,从站设备仍然可以使用相同的设置地址。
3.4.5 EtherCAT从站控制器的逻辑寻址控制
EtherCAT子报文可以使用逻辑寻址方式访问EtherCAT从站控制器内部存储空间,Eth-erCAT从站控制器使用FMMU通道实现逻辑地址的映射。
每个FMMU通道使用16个字节配置寄存器,从0x0600开始。FMMU通道配置寄存器描述见表3-43。
表3-43FMMU通道配置寄存器描述