打印
[应用相关]

STM32与ETHERCAT协议开发<1>

[复制链接]
楼主: goodluck09876
手机看帖
扫描二维码
随时随地手机跟帖
21
goodluck09876|  楼主 | 2019-8-21 16:03 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
    EtherCAT状态机(EtherCAT State Machine,简称ESM)是EtherCAT非
常重要的一个部分,它的主要工作是通过主站设置的从站寄存器数据来进行
从站程序的初始化,目的是为运行从站应用程序完成准备工作[}2'} o EtherCAT
设备在运行过程中会经历初始化、预运行、安全运行,运行等四种状态,以
下是四种状态的具体内容:
      C1)初始化状态时,主站使用EEPROM里面的数据对ESC一些基本
寄存器进行初始化配置,包括PDI接口的选择,微控制器与微处理器之间的
同步模式选择,以及SM通道参数设置等,这个时刻不能进行主站与从站的
直接通信。
      C2)预运行状态时,因为初始化操作部分完成,接口以及SM通道己
经被设置完毕,所以可以进行邮箱通信,主站通过邮箱通信将一部分应用程
序的初始化数据发送给从站,但是这一时刻主站不可以传输过程数据给从站。
      (3)安全运行状态时,从站接收到主站发送来的邮箱数据进行应用程
序的初始化,并且主站对从站的现场管理单元FMMU以及对应的SM通道进
行设置,主站可以发送过程数据给从站,但是从站不能发送过程数据给主站。
      (4)运行状态下时,主站和从站之间可以进行邮箱数据和过程数据的
传输,并且从站应用层的程序也己经初始化完成,为主从站之间控制数据的
传输做好了准备。

使用特权

评论回复
22
goodluck09876|  楼主 | 2019-8-21 16:03 | 只看该作者

使用特权

评论回复
23
goodluck09876|  楼主 | 2019-8-21 16:04 | 只看该作者
    预运行为Pre-Operational,简称为PreOp,安全运行为Safe-Opertional,简
称为SafeOp,运行状态为Operational,简称为Op,从Init状态往Op状态的转
化必须按照以上四个状态依次状态,不能跳跃转化也不能有往回转化的情况
发生,不过从站从Op转化成之前的几种状态可以直接跳转,从站状态机的
转换由主站控制,并且有专门的状态信息指示从站状态。
    IP C Init to Pre-Op)是指初始化状态向预运行状态转化,PI C Pre-Op to Init )
是指预运行状态向初始化状态转化,OP C Operational to Pre-Op)是指运行状
态向预运行状态转化,PS ( Pre-Op to Safe-Op)是指预运行状态向安全运行
状态转化,SP ( Safe-Op to Pre-Op)是指安全运行状态向预运行状态转化,
SI C Safe-Op to Init)是指安全运行状态向初始化状态转化,SO C Safe-Op to
Operational)是指安全运行状态向运行状态转化,OS C Operational to Safe-Op )
是指运行状态向安全运行状态转化。

使用特权

评论回复
24
goodluck09876|  楼主 | 2019-8-21 16:04 | 只看该作者
EtherCAT从站系统一般由控制器和微处理器两部分构成,EtherCAT从站控制器一般采用专门的ET1100芯片,它主要负责的是数据链路层部分,通过硬件机制完成主站和从站之间的数据交换,当EtherCAT数据报文经过从站节点时,ET1100芯片对应EtherCAT协议对EtherCAT数据报文进行读取或者插入。这个EtherCAT设计中采用的微处理器芯片是ST(意法半导体公司)的STM32芯片,主要负责的是应用层的部分,并可以采集应用层设备的反馈数据。整个EtherCAT协议数据传输与从站微处理器响应时间无关,其通信过程中数据处理主要由从站控制器完成,只与从站微处理器性能与应用层设备控制任务复杂程度有关系,由需实现或扩展的功能决定使用8位、16位单片机还是更高性能的处理器芯片。

使用特权

评论回复
25
goodluck09876|  楼主 | 2019-8-21 16:04 | 只看该作者

使用特权

评论回复
26
goodluck09876|  楼主 | 2019-8-21 16:05 | 只看该作者
    在从站系统中,控制器和微处理器是最关键的部分,它们的选择直接决
定了整个EtherCAT通信系统的性能以及应用层设备功能的是否能够实现。
从上述从站系统框图中可以看到围绕微处理器芯片STM32和控制器芯片
ET1100有很多外围芯片及电路,一起完成数据处理及传输工作。EtherCAT
数据帧通过网口进入从站系统,数据信号经过变压器变压后传输到网卡芯片,
经过处理后给从站控制器,初始化完寄存器后把过程数据和邮箱数据保存在
ET1100内部DPRAM中。从站设备部分通过USB转串口工具下载从站程序
到STM32,初始化微处理器寄存器后,运行EtherCAT协议程序,使用地址
寄存器完成对ET1100内部存储器的并行读写,完成整个EtherCAT系统的初
始化及数据通信。
    如图3-1所示,整个从站系统可以分为微处理器部分STM和控制器部分
ESC两大模块,STM模块负责应用层协议的实现,ESC模块负责EtherCAT
数据帧的处理。下面将从多个方面详细介绍STM模块和ESC模块的设计。
    对于一个面向生产应用的工程,芯片的性能固然重要,但是核心芯片的
选择不仅要考虑芯片的性能,还要考虑芯片的成本要素和货源问题,只有性
价比高的产品才能在市场中得到广泛的推广和应用,货源丰富的芯片可以满
足批量生产的需要。在EtherCAT从站系统设计中从站控制器选用
BECKHOFF公司的ET1100芯片,从站微处理器选用ST(意法半导体)公司
的STM32系列芯片。
    目前,大多数EtherCAT从站设计都采用单片机做从站微处理器芯片,
通过SPI串行接口进行数据传输,数据处理和传输速率相对降低,不能充分
发挥EtherCAT通信协议卓越的性能,本设计采用STM32微处理器芯片,通
过其特有的FSMC模块并行传输数据,很好的解决了这个问题。

使用特权

评论回复
27
goodluck09876|  楼主 | 2019-8-21 16:06 | 只看该作者
    ESC模块主要是实现了EtherCAT数据链路层协议,使用的是EtherCAT
协议专用集成电路芯片ET1100,该芯片是处理EtherCAT数据帧处理的核心
部分,EtherCAT协议数据处理可简称为ECAT帧处理,与此同时,ESC模块
还要为与从站微处理器部分连接提供PDI接口。

使用特权

评论回复
28
goodluck09876|  楼主 | 2019-8-21 16:06 | 只看该作者

使用特权

评论回复
29
goodluck09876|  楼主 | 2019-8-21 16:07 | 只看该作者
    ESC模块中ET1100芯片处理的是主站通过标准以太网设备传输过来并
由网卡芯片处理后的EtherCAT数据帧,从站往回传输的EtherCAT数据帧到
达ET1100芯片之前也需要先经过网卡芯片的处理,所以ET1100芯片与网卡
芯片之间的数据传输对于EtherCAT通信有一定影响。ET1100提供了两种接
口方式:EBUS接口和MII接口。
    EBUS接口又被称为LVDS接口,是EtherCAT协议自己定义的一种物理
层传输方式,EBUS传输介质使用低压差分信号传输,采用这种接口的特点
是简单高效,但是传输距离最远仅为l Om o  EBUS可以满足快速以太网
100Mbit/s的数据波特率,不仅可以传输EtherCAT数据帧,任意的以太网数
据帧都可以通过EBUS传输[[24]
    EtherCAT数据帧需要远距离传输,ET1100使用MII接口与网卡芯片相
连。MII接口省略了发送FIFO以降低处理和转发造成的延时,如果使用MII
接口,网卡芯片必须遵从 IEEE 802.3 100 BaseTX或100BaseFX规范,支持
100Mbit/s全双工链接,提供一个MII接口,支持MII管理接口。ET1100有
4个物理通信接口,从端口0到端口3都可以使用MII接口连接到网卡芯片,
ET1100的端口0通过MII接口与网卡芯片相连如图3-3所示。

使用特权

评论回复
30
goodluck09876|  楼主 | 2019-8-21 16:08 | 只看该作者

使用特权

评论回复
31
goodluck09876|  楼主 | 2019-8-21 16:08 | 只看该作者
    在EtherCAT从站系统中,比较关键的一个部分就是接口设计部分,ESC
模块中与从站微处理器相连的接口因其传输的数据内容通常被称为过程数据
接口,有时候也会称该接口为物理设备接口,简称为PDI接口。ESC模块提
供两种类型的PDI接口,一种是直接IO信号接口,这种无需应用层微处理
器,最多有32位引脚。另外一种是DPRAM数据接口,这种接口是为了扩展
复杂性能连接微处理器用的,这种接口又可以分为串行的传输方式和并行的
传输方式两种。其中串行方式主要是SPI方式,并行传输方式有16位异步、
8位异步、16位同步、8位同步等多种方式,ET1100中不同的PDI接口类型
由相关寄存器进行配置[}as}
    数字量I/O接口由PDI控制寄存器0x140=0x04设置,数字I/O使用的引
脚为PDI[39:  0],其中PDI[31:  0]为数据引脚,PDI[39:  32]为控制/状态信
号引脚,主站和从站通过ECAT帧和PDI接口分别读写OxOF00}OxOF03和
Ox1000}Ox1003这些存储地址来操作数字量I/O输出数据和数字量I/O输入数
据。
    SPI从站接口由PDI控制寄存器0x140=0x0_5来设置,如果要使用ET1100
的SPI接口需要外接一个有SPI接口的微处理器,这样微处理器为SPI主机,
ET1100为SPI从机,接口如图3-4所示。SPI接口占用的引脚较少,在设计
中可以把剩余的引脚当作普通的I/O端口来用,可以另外设计一个数字量I/O
接口。通用数字量输入引脚对应寄存器OxOF18}OxOF1F,通过数字量输出引
脚对应寄存器OxOF10}OxOF17o PDI接口和ECAT数据帧读写都可以访问这
些寄存器,这些寄存器对应的引脚都是以非同步的形式刷新的。

使用特权

评论回复
32
观海| | 2019-9-19 11:29 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
33
guanjiaer| | 2019-9-19 11:48 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
34
heimaojingzhang| | 2019-9-19 11:57 | 只看该作者
非常好的资料

使用特权

评论回复
35
keaibukelian| | 2019-9-19 12:02 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
36
paotangsan| | 2019-9-19 12:03 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
37
labasi| | 2019-9-19 12:30 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
38
renzheshengui| | 2019-9-19 12:37 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
39
wakayi| | 2019-9-19 12:41 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
40
wowu| | 2019-9-19 12:45 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则