开启辅助访问 切换到窄版

打印 上一主题 下一主题

基于KPA协议栈+X86平台的EtherCAT实现(二)

[复制链接]
版块:
嵌入式操作系统 其他嵌入式相关 发布时间:2018-8-28 18:27:28
9400
楼主
跳转到指定楼层
| 只看该作者 回帖奖励 |倒序浏览 |阅读模式
第三节 KPA EtherCAT主站简介和移植

3.1 主站硬件简介

从理论上讲,任何带有一个或以上标准以太网接口的硬件设备都可以运行EtherCAT主站。只是不同的硬件平台,CPU,网卡,操作系统不同,能达到的EtherCAT性能也不同。但为了保证实时性,一般会建议采用实时性能更好的网卡,比如X86方案的I1210Pro1000Pro100等;ARM方案则选ARM厂家优化后的网卡;FPGA则可以用KPA另外做好优化的FPGAIPcore再外挂实时网卡实现。
在本例中,采用的是X86的硬件平台,CPU型号为Intel(R)Core(TM) i7-3840QMProcessor,该型号四核八线程,主频2.80GHz,睿频3.80GHz,缓存8M SmartCache,总线速度5GT/s DMT

具体介绍请参考链接:
http://ark.intel.com/zh-cn/products/70846/Intel-Core-i7-3840QM-Processor-8M-Cache-up-to-3_80-GHz?q=i7-3840QM
网卡型号是Intel(R) 82579LM Gigabit Network Connection。该网卡是Intel官方出品的一款通用级别的网卡,最高速达到千兆,兼容百兆/千兆网口。如果使用的是IntelI210系列的网卡,那么性能会更上一层楼。具体介绍请参考链接:
http://ark.intel.com/zh-cn/products/47620/Intel-82579LM-Gigabit-Ethernet-PHY
为了连接EtherCAT网络配置诊断工具KPAStudio,本例中的主站还外置了一块普通的USB网卡。
主站硬件框架如图6所示。
               

6 主站硬件框架图

3.2 主站软件简介

KPA EtherCAT主站是几乎满足目前所有用户主站开发要求的一款主站方案,提供了多种不同硬件平台和OS的现成开发包,支持SoCARM+FPGA/ARM/X86 /PowerPC等主流硬件平台,支持LinuxXenomai/RT-preempt/ Windows(INtime/RTX)/ QNX/ Ucos/ Vxworks等。
在本例中,采用的是硬件平台是X86,操作系统为Linux3.8.13(Xenomai2.6.3实时补丁)
KPA EtherCAT主站结构框架如图7所示。
KPA主站协议栈采用模块化的架构,可以实现每个特殊的项目应用。它使得主站可以自由扩展以适应不同大小的应用程序、可以移植不同的操作系统和各种各样的硬件平台。每个模块可以单独定制化或者二次开发,而且不会破坏其他模块的完整性。

7 KPAEtherCAT主站结构框架图


KPA EtherCAT Master各模块简介:
Application:用户的应用程序,通过调用主站API函数实现EtherCAT功能,如启动/停止主站,配置主站,更新过程数据(PI)等。
ApplicationLayer:应用层负责连接用户应用程序和EtherCAT主站协议栈。一来提供丰富易用的API函数,用户无需详细协议栈内容,只需调用API函数即可实现EtherCAT完全功能。二来提供RPC Server,该服务器可用于连接网络配置工具KPA StudioKPA Studio可以远程调试主站,功能包括:配置EtherCAT网络,扫描拓扑结构,设置从站地址和EEPROM信息,显示报文数据和曲线图,网络故障诊断和建议等等。
MailboxModuleEtherCAT邮箱通信模块利用不同的协议处理服务数据对象(SDP),完成其数据传输以及数据交换。支持CoE,FoEEoESoE,VoEAoE等邮箱服务。
Process ImageModuleProcess Image简称PI,过程数据模块,负责处理所有的实时过程数据,它的地址是由EtherCAT network information (ENI) 文件提出的,ENI文件可由配置工具KPAStudio自动生成。
DistributionClock:分布时钟模块,实现分布时钟功能,使得所有的EtherCAT设备(包括主站和从站)总是能够共享相同的EtherCAT系统时钟。
Master threads:主站线程,共三个处理循环,用于初始化EtherCAT帧并传送给帧调度(frame scheduler),其中包括PI更新循环(HI),邮箱通信循环(NR),自恢复与诊断循环(LO)。
所有要求硬实时的任务都必须在HIPI update cycle)中完成。HI在这三个主站进程中拥有最高的优先级。
NR用于邮箱数据处理。NR的优先级比HI低,但比LO要高。
LO用于改变从站状态,监控,自恢复和诊断。LO并不像HINR那样对时序要求非常严格,所以它的优先级是最低的。
Process taskexternal task):实现各种控制逻辑的回调函数。每一次更新PI时(即HI进程)都会调用一次Process task
FrameSchedule Module:帧调度模块,根据帧的优先级把帧转发给EtherCAT网络驱动。
OSAL:操作系统抽象层模块,包含与操作系统相关的功能函数的包装,比如处理线程、计时器、互斥量等。
EtherCAT可以支持很多功能,ETG1500定义了Class AClass B两种主站类型。其外,KPA还支持一些拓展功能比如:
Data- and Frame-Logger(记录数据和报文)
Access Rights(设置不同的访问权限)
Multi Master(多主站,冗余)
Cable Redundancy (线缆冗余)
Hot-Connect(热插拔)
其他...

3.3 主站EtherCAT移植

主站的EtherCAT移植主要可分为两部分,一部分是操作环境的搭建,另一部分是EtherCAT开发包的编译运行。相应的移植步骤如下:
1)http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.8.13.tar.gz下载
Linux3.8.13内核源代码,放到Ubuntu电脑中,并解压。
2)http://xenomai.org/downloads/xenomai/stable/xenomai-2.6.3.tar.bz2下载
Xenomai2.6.3实时补丁源代码,放到Ubuntu电脑中,并解压。
3)打开Linux控制台,进入路径/xenomai-2.6.3/scripts,运行prepare-kernel.sh脚本文件,把路径/xenomai-2.6.3/ksrc/arch/x86/patches下的补丁文件ipipe-core-3.8.13-x86-4.patch打到Linux3.8.13的内核源码中,指令如图8所示。

8 Linux内核打Xenomai补丁

4)进入Linux-3.8.13的路径,执行make menuconfig,根据自己的需求进行内核功能裁剪,保存退出在当前路径下会自动生成.config文件(该文件为隐藏文件),如图9所示。

9 配置Linux内核

5)进入Xenomai-2.6.3路径下,安装Xenomai库文件到X86电脑上,指令为:
[tr][/tr][tr][/tr][tr][/tr][tr][/tr]
./configure –prefix=xenomai库存放的路径/xenomaimake install
如图10,即把Xenomai库安装到路径/home/q123/test/xenomai下。


10 安装Xenomai

6)回到Linux-3.8.13路径下,编译内核,在上层路径下自动生成内核安装包。指令如图1112

11 编译Linux内核


12 生成内核安装包

再运行指令安装内核:
[tr][/tr][tr][/tr][tr][/tr][tr][/tr]
sudo dpkg -ilinux-image-3.8.13-21072016_2jq.001_i386.deb
7)最后,重启X86电脑,并用重新安装的内核启动。

至此,环境搭建的部分已经完成,接下来只是安装实时网卡驱动,编译开发包即可。


8)http://www.rtnet.org/download.html下载实时网卡驱动rtnet-0.9.13.tar.bz2,在Ubuntu电脑上解压。


9)进入rtnet-0.9.13路径下,配置网卡驱动,指令如下(红色部分为网卡型号):
./configure--enable-rtmac --enable-rtpacket --prefix=/usr/rtnet--enable-e1000e--enable-loopback


然后执行
[tr][/tr][tr][/tr][tr][/tr][tr][/tr]
   makemake install
modprobee1000e(插入网卡,e100e是本例中用到的网卡型号)


10)下载从KPA申请到试用包后,在Ubuntu电脑上解压,解压得到的内容如图13,其中01_XXXX17_XXXX命名的是18个样例工程。

13 KPAEtherCAT主站开发包内容



11)进入MDK_Trial_Xenomai_U_xenomai-2.6_x86_64_v1.5.56202.0/platform/toolchain,找到Makefile.config,打开并修改编译器路径,Xenomai库路径等。如果路径不对,开发包将无法正常编译。如图14



14Makefile.config文件修改

12)Makefile.config文件修改后,进入各个样例工程,可进行make编译样例工程。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

回复

使用道具 举报

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

本版积分规则

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