[应用相关]

STM32与Ethercat开发资料搜集<2>

[复制链接]
楼主: goodluck09876
手机看帖
扫描二维码
随时随地手机跟帖
goodluck09876|  楼主 | 2019-8-21 17:24 | 显示全部楼层
399865d5d0dc5c2baa.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-8-21 17:25 | 显示全部楼层
    主站数据经过从站控制器ET1100到从站微处理器,ET1100负责协议的转换,
而从站微处理器负责处理数据,并根据主站需求控制从站设备,且将采集的从站
设备信息上报主站。从站控制器和从站微处理器之间的数据通信接口为SPI,通信
方式为中断方式。中断数据处理流程如图。
    中断源为主站写ALControl寄存器,接收到中断后从从站控制器中取数,取出
数据后判断是否有需要处理的处理,如有则处理需处理的数据,没有需处理数据
或者数据处理完成后,在看是否有数据需要发送,有则将处理后数据发送给从站
控制器。

使用特权

评论回复
goodluck09876|  楼主 | 2019-8-21 17:25 | 显示全部楼层
217505d5d0dff5102b.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-8-21 17:26 | 显示全部楼层
    相比Ether CAT从站,需要专用的控制器ET 1100 } Ether CAT主站硬件要求则
简单的多,不使用特殊的控制器,只需要标准的以太网处理器。主站与从站之间
的传输介质也只需普通网线即可。本系统中主站选用的是PC机,操作系统使用的
是linux操作系统。
    Ether CAT主站硬件最重要的组成部分仅是普通PC机和标准的NIC
  C NetworkInterfaceCard)网卡,软件代码则安装在Linux内核上。Ether CAT主站
模块可以包括一个或多个主站。每个主站使用特定的以太网卡,通过在加载网卡
驱动时在MAC(MediaAccessControl)地址配置特定参数来实现。主站个数与MAC
地址呈一一对应关系,MAC地址数量直接反应Ether CAT通信系统中主站的个数。
    通常,主站在访问通信网络中其他对象时,需要针对不同的网络、不同的节
点去设置接收数据帧和发送数据帧。但在Ether CAT通信系统,所有节点通信都可
采用同一个数据帧,即主站发送的Ether CAT数据帧会遍历所有节点,每个节点操
作自己对应的区域即可,因此,Ether CAT从站需要专用的控制器来处理Ether CAT
数据帧,而主站却不需要,而且主站功能对计算机cpu资源的消耗非常低,基本
不影响其他程序的运行和使用,所以不必使用价格高昂的特殊设备,仅需要无源
的NIC卡或主板集成的以太网MAC设备即可。

使用特权

评论回复
goodluck09876|  楼主 | 2019-8-21 17:27 | 显示全部楼层
    Ether CAT主站可以由任意集成了以太网接口的普通设备实现。本项目选择在
Linux系统下装有ROS操作系统的PC机作为Ether CAT系统主站。主站系统模块
主要包含了应用程序接口模块、主站模块、网卡设备驱动模块。主站系统结构图
如如图_5-1所示。
    Linux系统是高度开放的系统,可分为实时性较高的内核层和实时性相对差一
些的应用层。内核层主要负责运行驱动程序以及关键调度模块;应用层故名意思,
主要负责运行应用程序。
    为了保证Ether CAT系统通信的实时性,Ether CAT主站驱动程序以及应用程
序都配置在内核层运行。Ether CAT主站协议固定,容易解析,所以协议解析功能
防雨驱动程序实现,另外Ether CAT驱动程序还需实现与顶层应用程序接口,以及
与以太网驱动设备的接口,这部分很常规的主站软件都己经具备,无需用户编写
软件。主站应用程序模块则负责面向对象,实现用户的特定需求,这部分需要用
户根据使用需求编写软件。

使用特权

评论回复
goodluck09876|  楼主 | 2019-8-21 17:27 | 显示全部楼层
556385d5d0e7f2af79.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-8-21 17:28 | 显示全部楼层
    Ether CAT协议是通过修改标准以太网协议而来,因此,Ether CAT主站使用
的网卡,虽然仅需选取普通的网卡,但使用时需对其驱动进行适应Ether CAT的修
改。为了保证Ether CAT系统通信的实时性,该驱动模块也运行在Linux内核层。

使用特权

评论回复
goodluck09876|  楼主 | 2019-8-21 17:28 | 显示全部楼层
    目前常见的主站软件有基于Windows系统的
TwinCAT(TheWindowsControlAndAutomationTechnology)和基于Linux系统的
IghEther CAT和SOEM(SimpleOpenEther CATMaster) o TwinCAT是德国Beckhoff
公司的基于PC平台和Windows操作系统的控制软件。具备运算速度快,尤擅长
的浮点运算,数据区和程序区仅受限于存储介质的容量。在需要处理和存储大量
数据比如趋势、配方和文件时优势明显。本软件基于基于Linux操作系统,主站软
件在ghEther CAT和SOME之间选择

使用特权

评论回复
goodluck09876|  楼主 | 2019-8-21 17:28 | 显示全部楼层
813265d5d0ec831276.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-8-21 17:28 | 显示全部楼层
88365d5d0ed797535.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-8-21 17:29 | 显示全部楼层
1)初始化(Init,简写为I)状态。此时,主站通过读取EEPROM中的配置
    数据,对从站过程数据接口站点地址寄存器设置,对从站控制器和从站微
    处理器间的同步方式的站点地址寄存器进行设置,对从站SM通道参数站
    点地址寄存器设置。在初始化状态,主站与从站还不能进行通信,这些设
    置并不能写入从站。
2)预运行(Pre-Operational,简写为P)状态。从站站点寄存器设置完成后,
    通过写状态控制寄存器进入预运行状态。此时接口配置,同步配置以及通
    道配置等设置都己完成,可以开始邮箱通信,邮箱通信可以将初始化是主
    站的从站的配置数据传输至从站。该状态仅能向从站发送初始化数据不能
    发送过程数据。
3)安全运行(Safe-Operational,简写为S)状态。此时主站设置的配置数据己
    经传输至,通过在状态寄存器写请求,可以进行安全运行的状态,安全运
    行状态,从站通过将接收的的主站的配置数据,完成自身的初始化。此时,
    主站可以发送过程数据给从站,但任然是单向的,数据流向仅能是主站到
    从站,不能是从站到主站。
4)运行(Operational,简写为。)状态。在安全运行阶段,从站的初始化己经
    完成,通过写状态控制器寄存器转至运行状态后,可以完成主站与从站的
    双向的通信,可以是邮箱数据通信,也可以是过程数据通信。

使用特权

评论回复
goodluck09876|  楼主 | 2019-8-21 17:29 | 显示全部楼层
647305d5d0f16b5d47.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-8-21 17:30 | 显示全部楼层
521455d5d0f23c92c8.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-8-21 17:30 | 显示全部楼层
    SOEM使用Raw Socket收发Ether CAT帧,通过系统调用bind, send和recv
实现Ether CAT通信。SOME支持分布时钟(DC),从站设备基于实时时钟,控制信
号可以搞精度同步。在数控系统中,为了实现各个伺服电机的同步联动插补关系,
分布时钟具有非常重要的意义。CAN open over Ether CAT ( CoE)协议用于在应用
程序级别配置从站并交换数据对象。数控系统主站与Ether CAT总线伺服驱动器按
照CoE协议实现周期性数据通信。首先进行安装前的环境配置和安装SOEM。具
体步骤如下[[39].
    1)获取并下载PREEMPT一 RT;
    2)内核配置在bash输入以下命令行$makemenuconfig,在
"Processortypeandfeatures”选项当中,选择“CompletePreemption(Real-Time)",以提
供内核提升为实时操作系统的选择。进一步选择“ThreadSoftirqs”和
"ThreadHardirqs",使内核实现软中断和硬中断功能。选择完实时性内核功能,进
一步编译系统。具体命令如下:
    $make一n
      #makeinstall
      #makemodules install
      #cd/boot
    #mkinitramfs-k-oinitrd.img-2.6.33.7.2-rt2.6.33.7.2-rt30
    3)主站软件SOEM为命令行交互软件,软件大小非常小。该软件提供了一些
常用的操作控制命令例如:ebox(实现邮箱通信)、eepromtool(对E2PROM操作)、
firm_ update(固件更新)、red_ test C redundanttest ) ,  simple_ test(简单通信测试)、
slaveinfo(查看从站信息)。安装过程为:进入http://openEther CATsociety.github.io/
进行下载,转到工程所在文件夹,输入指令source./setup.shlinux,最后输入指令
makeall进行编译。

使用特权

评论回复
goodluck09876|  楼主 | 2019-8-21 17:30 | 显示全部楼层
    完搭建Ether CAT一对一主从站系统,完成Ether CAT主从站系统的初始化。
Ether CAT主站发送数据帧通过网口输出,传输至从站,从站通过网口接收到数据
信号经过以太网数据变压器H1102到PHY器件KS8721BL芯片,经过PHY器件
KS8721BL芯片处理传输至从站控制器ET 1100。数据存储至ET1100内部的
DPRAM中[[40]。从站设备部分通过USB转串口工具下载从站数据到STM犯,初始
化微处理寄存器后,运行Ether CAT协议程序,使用地址寄存器完成对ET1100内
部存储器的并行读写,完成整个Ether CAT系统的初始化和数据通信。

使用特权

评论回复
goodluck09876|  楼主 | 2019-8-21 17:31 | 显示全部楼层
    搭建系统实验平台并且完成了对系统整体性能的测试。Ether CAT系统整体结
构为:以在Linux系统下装有ROS操作系统的PC机(C1号)和TurtleBot机器人
作为主站端,PC机安装有SOEM软件作为系统软主站。制作的两套PCB板(微
处理器STM32和控制器ET1100)和一台PC机(C2号,用于控制TurtleBot机器人
移动)作为从站端。从站和从站之间、从站与PC机(C2号)通过网线连接,主站
和从站之间通过路由器(无线与有线的方式)连接。从站端分别接入指定的传感
器:第一个从站接入霍尔传感器、温湿度传感器、距离传感器,第二个从站接入
摇杆用来控制TurtleBot机器人。以此完成了整个实验系统平台的搭建,实验系统
平台如图6-1所示。通过主软站检测到从站数量与配置状态,在ROS操作系统下,
首先实现系统基本的通信功能测试(通过控制从站端的指示灯的亮灭)。

使用特权

评论回复
观海| | 2019-9-19 11:45 | 显示全部楼层
非常感谢楼主分享

使用特权

评论回复
guanjiaer| | 2019-9-19 11:47 | 显示全部楼层
非常感谢楼主分享

使用特权

评论回复
heimaojingzhang| | 2019-9-19 11:58 | 显示全部楼层
非常好的资料

使用特权

评论回复
keaibukelian| | 2019-9-19 11:59 | 显示全部楼层
非常感谢楼主分享

使用特权

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

本版积分规则