嵌入式开发交流网论坛
标题:
基于Zynq平台的EtherCAT主站方案实现(一)
[打印本页]
作者:
丁烨是个大好人
时间:
2018-10-9 20:56
标题:
基于Zynq平台的EtherCAT主站方案实现(一)
EtherCAT
是开放的实时以太网通讯协议,由德国倍福自动化有限公司研发。
EtherCAT
具有高性能、低成本、容易使用等特点,目前在技业领域有着广泛的应用。
ZZynq-7000
是赛灵思公司(
Xilinx
)推出的行业第一个全可编程
SoC
产品
,
它将双核
ARM Cortex-A9
处理器,低功耗可编程逻辑以及常用的外设紧密集成在一起。
ZedBoard
是基于
XC7Z020
器件的低成本开发板,此板可以运行基于
Linux
,
Android
,
WinCE
或其他嵌入式
OS/ RTOS
的设计。
KPA EtherCAT
主站是一套质量稳定、知名度和性价比较高的
EtherCAT
协议栈,有较大参考价值。本文将介绍
KPA EtherCAT
主站在
Zynq
平台的移植与测试。
第一节
EtherCAT
简介
EtherCAT
(以太网控制自动化技术)是一种用于确定性以太网的高性能工业通信协议,它扩展了
IEEE 802.3
以太网标准,使得数据传输中具有可预测性定时及高精度同步等特点。
这个开放性标
准作为
IEC 61158
的组成部分,常用于机械设计及运动控制等应用中。
EtherCAT
采用标准的
IEEE802-3
以太网帧,帧结构如图
1
。
EtherCAT
协议直接用标准以太网的帧格式传输数据,并不修改其基本结构。
[attach]13057[/attach]
图
1 EtherCAT
数据帧
EtherCAT
实现了
CANopen
协议,在
CANopen
中周期性的数据通过
PDO
(过程数据对象)来传输,
PDO
优先级较高,可用于实时传输。非周期性的数据比如配置参数和对象字典等则通过
SDO
(服务数据对象)来传输。
每个
PDO
都包含单个或多个从设备的地址,这种数据加地址的结构(附带用于校验的传输计数位)组成了
EtherCAT
的报文。每个
Ethernet
帧可能包含数个报文,而一个周期中可能需要多帧来传送所需的所有报文。
传统的以太网通信解决方案从站先接受以太网数据包,然后解释和复制过程数据,最后转发数据。而
EtherCAT
以太网帧在特殊的硬件模块的帮助下可以实现在传输的同时被处理。每个从节点都有
FMMU
(现场总线存储管理单元),
FMMU
会对经过的数据包进行地址分析,发现是本节点的数据就会读取,同时报文转发给下一个设备。同样在报文通过的时候也可以插入需要传输的数据。读取
/
插入
/
转发数据的整个过程,报文只有几纳秒的延迟。如图
2
所示,设想以太网的帧就像行驶中的火车,
EtherCAT
报文是每节火车车厢,
PDO
数据的比特就是车厢内的乘客,这些数据可以被提取并插入到合适的从设备中。整辆火车不停止地穿越所有从设备,在末端从设备处又掉头,重新反向穿越所有从设备。(注:
EtherCAT
不仅支持主从通讯,也支持从从通讯即
S2S
)
[attach]13058[/attach]
图
2 EtherCAT
数据传输
第二节
EtherCAT
主从站软硬件简介
2.1 KPA EtherCAT
主站软件介绍
KPA EtherCAT
主站软件根据功能不同,提供了
Basic
,
Standard
,
Premium
以及
Extension
四个版本主站协议栈,因此除了支持
ETG1500
定义了
Class A
和
Class B
两种主站类型外,
KPA
还支持一些拓展功能比如:
Data- and Frame-Logger
(记录数据和报文)、
Access Rights
(设置不同的访问权限)
Multi Master
(多主站,冗余)、
Cable Redundancy
(线缆冗余)、
Hot-Connect
(热插拔)、其他。
提供了基于多种不同硬件平台和
OS
的现成开发包,支持
SoC
(
ARM+FPGA
)
/ARM/X86 /PowerPC
等主流硬件平台,支持
Linux
(
Xenomai/RT-preempt
)
/ Windows(INtime/RTX)/ QNX/ Ucos/Vxworks
等。几乎满足目前所有用户主站开发要求的一款主站方案。
KPA
主站协议栈采用模块化的架构,可以实现每个特殊的项目应用。它使得主站可以自由扩展以适应不同大小的应用程序、可以移植不同的操作系统和各种各样的硬件平台。每个模块可以单独定制化或者二次开发,而且不会破坏其他模块的完整性。主站结构如图
3
[attach]13059[/attach]
图
3 KPA EtherCAT
主站构架
KPA
主要功能模块为:
(1)
应用层:应用层负责与各种不同的编程
/
配置环境交互,负责与不同的应用或设备交互。确保在应用或过程任务端顺利访问主站功能函数;与主站通过
Remote Procedure Calls
服务交互,提供了
TCP/IP
以及
UDP
连接,比如:通过
UDP
与从站设备进行
mailbox
相关的通讯
(2)
Mailbox Module
:
EtherCAT
主站核心
mailbox
模块利用不同的协议处理服务数据对象(
SDP
),数据传输以及数据交换。支持
CoE,FoE
,
EoE
,
SoE,VoE
,
AoE
等邮箱服务。
(3)
Process Image Module
过程映像模块:
Process Image
简称
PI
,它的地址是由
EtherCATnetwork information (ENI)
文件提出的,
ENI
文件可由配置工具
KPA Studio
自动生成。从控制
/
过程任务访问过程映像是由主站接口执行的。
(4)
Distribution Clock
分布时钟模块:使得所有的
EtherCAT
设备(包括主站和从站)总是能够共享相同的
EtherCAT
系统时间。这是通过补偿编译和漂移时间来实现的。
(5)
Frame Schedule Module
帧调度模块:不同
PDO
采用不同的扫描周期。在配置工具
KPA Studio
里,用户可以单独定义每个从站的扫描速率。帧调度表模块管理
EtherCAT
帧速率,转发它们到
EtherCAT
网络驱动。
(6)OSAL
操作系统抽象层模块:包含与操作系统相关的功能函数的包装,比如处理线程、计时器、互斥量等;包括网络适配驱动器模块:从底层的网络实现提取主站堆栈的
core
核心
2.2 KPAEtherCAT
主站硬件介绍
主站硬件主要由三部分组成见图
4
:
PC
端、
Zedboard
主站开发板以及外扩的
FMC
网卡。
PC
通过串口终端来实现操作系统指令输入,
PC
端上的
EtherCAT
网络诊断配置工具
KPA EtherCAT Studio
通过
RPC
服务连接
Zedboard
主站板,可以实现对主站和从站的配置,扫描生成网络配置文件。
Zedboard
作为
EtherCAT
主站板具体可参考
http://zedboard.org/product/zedboard
。
[attach]13060[/attach]
图
4
硬件架构图
[attach]13061[/attach]
图
5
硬件内部架构
另外,
KPA
利用主站板的
FPGA
资源,独立外扩网卡,而不是使用主站板
ARM
上的网卡驱动,主站开发包中提供的
Timer IP Core
和
NIC IPCore
,利用
逻辑单元
PL
,构建针对
EtherCAT
优化的
MAC
,提供了针对
EtherCAT
优化的
NIC
驱动,
IP Core
提供了
Shift Sending Time
设置,从端口降低有操作系统引起的数据帧抖动,
从而优化了数据在收发时的抖动的问题。
[attach]13062[/attach]
图
6 KPA Zynq Master
优势
欢迎光临 嵌入式开发交流网论坛 (http://www.dianzixuexi.com/bbs/)
Powered by Discuz! X3.2