硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1458|回复: 7
收起左侧

[STM32H7] STM32H7调试AX58100 EtherCAT Slave心得经验总结

[复制链接]

8

主题

21

回帖

45

积分

新手上路

积分
45
发表于 2023-5-10 20:44:40 | 显示全部楼层 |阅读模式
1、EtherCAT协议介绍

     EtherCAT跟普通以太网的区别是在它完全支持普通以太网帧的同时,确定传输方向。没有普通以太网的路由交换,但有转发(转发也只是往下一个端口转发),所以它的销量很高。
     具有以下特点:

  • 完全符合以太网标准。普通以太网的相关技术都可以应用于EtherCAT网络中。EtherCAT设备可以与其他的以太网设备共存于一个网络中,普通的以太网卡、交换机、路由器等标准组件可以在EtherCAT中使用。
  • 支持多种拓扑结构。如线形、星形及树形。可以使用普通以太网使用的电缆或光缆。当使用100Base-TX电缆时,两个设备通信距离可达100m。当采用100BASE-FX模式,两对光纤在全双工模式下,单模光纤能达到40km的传输距离,多模光纤能够达到2km的传输距离。EtherCAT还能支持低压差分LVDS线来低延时通信,通信距离能够达到10m
  • 广泛的适用性。任何带有普通以太网控制器的设备都有条件作为EtherCAT主站。
  • 高效率、刷新周期端。EtherCAT从站对数据帧的读取、解析和数据过程的提取与插入完全由硬件来实现,这使得数据帧的处理不受CPU的性能软件的实现方式影响,时间延时极小,实时性很高。同时EtherCAT可以达到小于100us的数据刷新周期。
  • 同步性能好。EtherCAT采用高分辨率的分布式时钟使各从站节点间的同步精度能够远小于1us。
  • 无从属子网。复杂的节点或只有n位的数字I/O都能被用作EtherCAT从站
  • 拥有多种应用层协议接口来支持多种工业设备行规。如CoE、SoE、FoE、EoE、AoE等。




2、EtherCAT网络拓扑结构
    所有数据帧在网络中以一种“逻辑闭环”的方式传播,与网络的硬件拓朴无关,无论它是链式、菊花链、星形还是树形拓朴。
    所有数据帧都由Master发出,以事前严格定义的顺序,依次经过网络上的所有从站,走过一个完整的闭环后回到Master 。
    所有数据帧通过从站中的 EtherCAT Processing Unit (EtherCAT处理单元)只有 1 次。
    拓扑结构有以下几种:
  • 线型拓扑:

         
   
  • 数据处理链型拓扑



  • 带有分支线的数据处理链型拓扑

        

  • 树型拓扑:

        

  • 实时星型拓扑:

        

  • 冗余线缆

        

数据帧格式:



数据报头中命令的类型如下:
            
命令
缩写
名称
描述
0
NOP
无操作
    从站忽略命令
1
APRD
自动递增读取
    从站递增地址。如果接收的地址为零,从站将读取数据放入EtherCAT数据报
2
APWR
自动递增写入
    从站递增地址。如果接收的地址为零,从站将数据写入存储器位置
3
APRW
自动递增读写
    从站递增地址。从站将读取数据放入EtherCAT数据报,并在接收到的地址为零时将数据写入相同的存储单元
4
FPRD
配置地址读取
    如果地址与其配置的地址之一相匹配,则从站将读取的数据放入EtherCAT数据报
5
FPWR
配置地址写入
    如果地址与其配置的地址之一相匹配,则将数据写入存储器位置   
6
FPRW
配置地址读写
    如果地址与其配置的地址之一相匹配,则从站将读取数据放入EtherCAT数据报,并将数据写入相同的存储器位置
7
BRD
广播读取
    所有从站将存储区数据和EtherCAT数据报数据的逻辑“或”放入EtherCAT数据报。所有从站增加位置字段
8
BWR
广播写入
    所有从站都将数据写入内存位置。所有从站增加位置字段
9
BRW
广播读写
    所有从站将存储区数据和EtherCAT数据报数据的逻辑“或”放入EtherCAT数据报,并将数据写入存储单元。通常不适用BRW。所有的从站增加位置字段
10
LRD
逻辑内存读取
    如果接收的地址与配置的FMMU读取区域之一匹配,则从站将读取数据放入EtherCAT数据报
11
LWR
逻辑内存写入
    如果接收的地址与配置的FMMU写入区域之一匹配,则从站将数据写入存储器位置
12
LRW
逻辑内存读写
    如果接收的地址与配置的FMMU读取区域之一匹配,则从站将读取数据放入EtherCAT数据报。如果接收的地址与配置的FMMU写入区域之一匹配,则从站将数据写入存储器位置
13
ARMW
自动递增多次读写
    从站递增地址如果接收的地址为零,从站将数据放入EtherCAT数据报,否则从站将数据写入存储器位置
14
FRMW
配置多次读写
    如果地址与配置的地址之一想匹配,则从站将读取的数据放入EtherCAT数据报,否则从站将数据写入存储器位置
15 ~ 255
-
保留
   -


3、设备寻址

在设备寻址时,EtherCAT子报文头内的32位地址分为16位从站设备地址和16位从站设备内部物理存储空间地址,如图所示。16位从展示河北地址可以寻址65536个从站,每个设备最多可以由64KB的本地地址空间。
设备寻址时,每个报文只寻址唯一的一个从站设备,但它有两种不同的设备寻址机制。
  • 顺序寻址

顺序寻址时,从站的地址由其在网段内的连接位置确定,用一个负数表示每个从站在网段内由接线顺序决定的位置。顺序寻址子报文在经过每个从站设备时,其顺序地址加1;从站在接收报文时,顺序地址为0的报文就是寻址到自己的报文。由于这种机制在报文经过时更新设备地址,所以又称为“自动增量寻址”。
在实际应用中,顺序寻址主要用于设备启动阶段,主站配置站点地址给各个从站。伺候可以使用与物理位置无关的站点来寻址从站。使用顺序寻址机制能够自动为从站设置地址。
  • 设置寻址

设置寻址时,从站的地址与其在网段内的连接顺序无关,地址可以由主站在数据链路启动阶段配置给从站,也可以由从站在上电初始化后从自身的配置数据存储区装载,然后由主站在链路启动阶段,使用顺序寻址方式读取各个从站的设置地址,并在后续运行中使用
使用设置寻址时,有两种从站地址模式。
EtherCAT从站控制器的数据链路地址寄存器描述见下表,表中列出两种设置站点地址时使用的寄存器

            
地址

名称
描述
复位值
0x0010~0x0011
0~15
设置站点地址
    设置寻址所用地址(FPRD、FPWR和FPRW命令
0
0x0012~0x0013
0~15
设置站点别名
    设置寻址所用的地址别名,是否使用这个别名取决于DL控制寄存器0x0100~0x0103的位24
0,保持该复位值,直到对EEPROM地址0x0004首次载入数据


    • 通过主站在数据链路启动阶段配置给从站

主站在初始化状态时,通过使用APWR命令,写从站寄存器0x0010 ~ 0x0011,为从站设置一个与连接位置无关的地址,在以后的运行过程中使用此地址访问从站。

    • 通过从站在上电初始化后时从配置数据存储区装载

每个EtherCAT从站控制器均有一个EEPROM,其中包括一个站点别名。
EtherCAT从站控制器在上电初始化时自动装载EEPROM中的数据,将站点别名装载到寄存器0x0012 ~ 0x0013。
主站在链路启动阶段使用顺序寻址命令APRO命令读取各个从站的设置地址别名,并在以后运行中使用,使用别名前,主站还需要设置DL控装器0x0100~0x0103的位24位1,通知从站使用站点别名进行设置地址寻址。
使用从站别名可以保证即使网段拓扑改变或添加或取下设备时,从站设备仍然可以使用相同的设置地址。



4、逻辑寻址


现场总线内存管理单元FMMU将从站本地物理内存地址映射到网段范围内的逻辑地址。
逻辑地址寻址时,从站地址并不是单独定义的,而是使用了寻址段内4GB逻辑地址空间中的一段区域。报文内的32位地址区作为整体的数据逻辑地址完成设备的逻辑寻址
逻辑寻址方式由现场总线内存管理单元FMMU实现,FMMU功能位于每一个ESC内部,将本地物理存储地址映射到网段内的逻辑地址。
FMMU单元由主站设备配置,并在设备链路启动过程中传送给从站设备。每个FMMU单元需要以下配置信息:数据逻辑位起始地址、从站物理内存起始地址、位长度和表示映射方向(输入或输出)的类型位,从站设备内的所有数据都可按照位映射到主站逻辑地址。
当从站设备收到一个数据逻辑寻址的EtherCAT子报文时,将检查是否有FMMU单元地址匹配。如果有,则将输入类型数据插入到EtherCAT子报文数据区的对应位置,以及从EtherCAT子报文数据区对应的位置抽取输出数据类型。
逻辑寻址方式特别适用于传输或交换周期性过程数据。








评分

参与人数 1金币 +20 收起 理由
tovinz + 20

查看全部评分

回复

使用道具 举报

8

主题

21

回帖

45

积分

新手上路

积分
45
 楼主| 发表于 2023-5-10 20:48:28 | 显示全部楼层
5、通信模式

周期性过程数据通信
周期性过程数据通信通常使用FMMU进行逻辑寻址,主站可以使用逻辑读、写或读写命令同时操作多个从站。在周期性数据通信模式下,主站和从站有多种同步运行模式。
  • 从站设备同步运行模式
    • 自由运行

在自由运行模式下,本地控制周期由一个本地定时器中断产生。周期时间可以由主站设定,这是从站的可选功能。

    • 同步于数据输入或输出事件

本地周期在发送数据输入或输出事件的时候触发。主站可以将过程数据帧的发送周期写给从站,从站可以检查是否支持这个周期时间或对周期时间进行本地优化。从站可以选择支持这个功能。通常同步于数据输出事件,如果从站只有输入数据,则同步于数据输入事件。

    • 同步于分布时钟同步事件

本地周期由SYNC事件触发。主站必须在SYNC事件之前完成数据帧的发送,为此要求主站时钟也要同步于参考时钟。
为了进一步优化从站同步性能,从站应该在数据收发事件发生时从接收到的过程数据帧复制输出结果,然后等待SYNC信号到达后继续本地操作。
  • 主站设备同步运行模式
    • 周期性模式

在周期性模式下,主站周期性的发送过程数据帧。主站周期通常由一个本地定时器控制。从站可以运行在自由运行模式或同步于接收数据事件模式。对于运行在同步模式的从站,主站应该检查响应的过程数据帧的周期时间,保证大于从站支持的最小周期时间。
主站可以以不同的周期发送多种周期性的过程数据帧,以便获得最优化的带宽。例如以较小的周期发送运动控制数据,以较大的周期发送I/O数据。

    • DC模式

在DC模式下,主站运行与周期性模式类似,知识主站本地周期应该和参考时钟同步。主站本地定时器应该发布参考时钟的ARMW报文进行调整。在运行过程中,用于动态补充时钟飘逸的ARMW报文返回主站后,主站时钟可以根据读回的参考时钟进行调整,使之大致同步于参考时钟时间。
DC模式下,所有支持DC的从站都应该同步于DC系统时间。主站也应该使其通信周期同步于DC参考时钟时间。
主站本地运行一个本地定时器启动。本地定时器应该比DC参考时钟定时存在一个提前量:
提前量 = 控制程序执行时间 + 数据帧传输时间 + 数据帧传输延时D + 附加偏移U(与各个从站延时时间的抖动和控制程序执行时间的抖动值有关)。


非周期性邮箱数据通信
EtherCAT协议中非周期性数据通信称为邮箱数据通信,它可以双向进行 ------ 主站到从站和从站到主站。从站到从站的通信是由主站作为路由器来管理的



数据元素
位数
描述
长度
16
    跟随的邮箱服务数据长度
地址
16
    主站到从站通信时,为数据源从站地址
    从站到从站通信时,为数据目的从站地址
通道
6
    保留
优先级
2
    2位
类型
4
    邮箱类型,即后续数据的协议类型
    0:邮箱通信出错
    2:EOE(EtherCAT over EtherCAT)
    3:CoE(CANopen over EtherCAT)
    4:FoE(File Access over EtherCAT)
    5:SoE(Servo Drive over EtherCAT)
    15:VoE(Vendor specific profile over EtherCAT)
计数器Ctr
4
    用于重复检测的顺序编号,每个新的邮箱服务将加1(为兼容老版本
而使用1~7)
        

  • 从站到主站通信 ------ 写邮箱命令

主站发送写数据区命令将邮箱数据发送给从站。主站需要检查从站邮箱命令应答报文中工作计数器WKC。如果工作计数器为1,表示命令写成功。反之,如果工作计数器没有增加,通常因为从站没有完成上一个命令,或在限定的时间内没有响应,主站必须重新发送写邮箱数据命令。
  • 从站到主站通信 ------ 读邮箱命令

从站有数据发送给主站,必须先将数据写入输入邮箱缓冲区,然后由主站来读取。主站发现从站ESC输入邮箱数据取有数据等待发送时,会尽快地发送适当的读命令来读取从站数据。主站有两种方式来测定从站是否已经将邮箱数据填入数据区,一种是使用FMMU周期性地读某一个标志位。使用逻辑寻址可以同时读取多个从站的标志位,但其缺点是每个从站都需要一个FMMU单元。另一个方法是简单地轮询ESC输入邮箱的数据区。读命令的工作计数器增加1表示从站已经将新的数据填入输入数据取。
            
数据元素
长度
描述
命令
16
    0x01:邮箱命令
命令相关数据
16
    0x01:邮箱语法错误
    0x02:不支持邮箱协议
    0x03:邮箱通道无效
    0x04:不支持邮箱服务
    0x05:邮箱头无效
    0x06:邮箱数据太短
    0x07:邮箱服务内存不足
    0x08:邮箱数据数目错误
        





回复

使用道具 举报

8

主题

21

回帖

45

积分

新手上路

积分
45
 楼主| 发表于 2023-5-10 20:49:58 | 显示全部楼层
后续更新等整理完了再发,另发长贴格式调整略微痛苦
回复

使用道具 举报

3

主题

1227

回帖

1236

积分

至尊会员

积分
1236
发表于 2023-5-11 13:41:59 | 显示全部楼层
回复

使用道具 举报

3

主题

1227

回帖

1236

积分

至尊会员

积分
1236
发表于 2023-5-11 13:42:16 | 显示全部楼层
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
发表于 2023-12-8 21:43:26 | 显示全部楼层
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
发表于 2023-12-8 21:43:53 | 显示全部楼层
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 7 天前 | 显示全部楼层
请教问题 58100的spi slave 可以加微信么?13641789645谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-11 05:31 , Processed in 0.482635 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表