一,POWERLINK优和平台

1,POWERLINK优势:只要有以太网的地方就可以实现 POWERLINK,例如你的 PC 机上可以运行POWERLINK、一个带有以太网接口的 ARM 可以运行 POWERLINK、一片 FPGA也可以运行 POWERLINK。POWERLINK 是站在标准以太网的肩膀上,现在POWERLINK 支持10M/100M/1000M 的以太网。只需在硬件驱动程序中进行小的改动,POWERLINK就可以支持 10G 的以太网。实现成本低。如果用户的产品以前是基于 ARM 平台,一般 ARM 芯片都会带有以太网,这样用户无须增加任何硬件,也无需增加任何成本,就可以在产品中集成POWERLINK,用户所付出的只是把 POWERLINK 的程序集成到应用程序中,而POWERLINK 的源程序又是开放且免费的。

2,POWERLINK实现平台:powerlink基于普通以太网的实时通信协议,物理层采用标准的以太网,而数据链路层的控制和应用层的CANopen协议都是开源的标准C 语言编写,可以运行于各种支持 C 语言的平台:ARM,单片机,DSP,X86,FPGA,ZYNQ等,可以运行在多种操作系统上如 WinCE、Windows、Linux、uc/os、VxWorks、或者没有操作系统。

二,POWERLINK原理: 是一个三层的通信网络,它规定了物理层、数据链路层和应用层。

1,POWERLINK  的物理层采用标准的以太网,遵循 IEEE802.3 快速以太网标准。POWERLINK 的主站和从站,都运行在标准的以太网。

2,POWERLINK 的数据链路层:也就是 POWERLINK 的核心,主要包括如下功能:
(1)构建/解析数据桢、对数据桢定界、网络同步、数据桢收发顺序的控制。
(2)传输过程中的流量控制、差错检测、对物理层的原始数据进行数据封装等。
(3)实时通信的传输控制。
(4)网络状态机。
在 POWERLINK 网络中,至少有一个设备做为主站(MN),其他的设备做为从站(CN)。每个从站设备都有唯一的节点号,该节点号是用来区分网络中的设备,取值范围为 1-239。主站设备(MN)的节点号为 240,主站的作用是为了为协调各个从站,合理分配总线使用权,避免冲突,实现实时通信。

3,同步机制:POWERLINK 支持 1588 分布式时钟协议,每个循环周期的开始,主站都会广播一个 SoC数据帧到网络上,该数据帧包含了两个重要信息:网络的绝对时间和相对时间。

绝对时间信息:年、月、日、时、分、秒、毫秒、微秒、纳秒。

相对时间信息:从网络开始工作,到现在一共运行了多少 us。

4,POWERLINK的数据帧格式:一共有 5 中数据帧(SoC、Preq、Pres、SoA、AsyncData)。

POWERLINK 的数据桢嵌在标准的以太网数据桢的数据段中。因此 POWERLINK 数据包具有标准的以太网数据帧的帧头和帧尾。如上图从第 14 字节到第 n 字节为 POWERLINK数据帧信息,而 0 至 13 字节是标准以太网的帧头。

三,基于Linux的powerlink实现

在 Linux下,openPOWERLINK有两种工作模式:一种工作在内核空间,此时 POWERLINK 协议栈就需要有针对该的网卡的驱动程序,目前我们提供的源程序里有针对 8139 芯片的网卡驱动和 82573 系列的驱动程序,如果使用者使用了其他类型的芯片,可以参照我们给的源程序进行修改。另一种工作在用户空间,此时和 windows 的工作方式相同,安装一个 wincap的libpcp库。

1,cmake编译:下载 cmake2.8.4解压。cmake2.8.4解压后的目录 bin下,找到 cmake-gui,双击打开 cmake-gui。

2,创建一个新的文件夹(mkdir epl_make),用来保存编译后的文件。

3,在cmake-gui设置 source code目录,即根目录openPOWERLINK1.7.1,设置编译后生产文件所在的目录epl_make。

4,点击“Flile”->“deletecache”。

5,点击“configure”,选择如下设置,然后 finish。

6,去掉勾选Grouped和Advanced,根据需要选择配置选项。

支持process_image的控制台程序 , 因此勾选CFG_X86_LINUX_DEMO_PROCESS_IMAGE_CONSOLE;
使用内核模式的协议栈,因此勾选 CFG_KERNEL_STACK;
使用 openCONFIGURATOR 来配置网络,因此勾选 CFG_POWERLINK_CFM;
使用8139 网,因此在 CFG_POWERLINK_EDRV 里写入 8139;
使 用 process_image,因此勾选CFG_POWERLINK_PROCESS_IMAGE , 需 要 把openCONFIGURATOR 工 具 生 成 的 mnobd.cdc 文 件 和 xap.h 文 件 复 制 到Examples\X86\Linux\gnu\demo_process_image_console 这个目录下,这样在编译的时候, 就会将 xap.h 编译进来,同时把 mnobd.cdc 复制到执行目录。

7,配置完以后,点击“Configurate”,如果没有红色的报警,说明配置成功。

点击“Generate”,如果没有红色的报警,显示如下,说明配置成功。

8,到 epl_make目录下查看 ,在这里就生成了 makefile文件

打开 linux 的 shell,cd 到 epl_make 目录下,执行 make 命令,就完成了编译。

安装,在 Linux 的 shell 里,cd 到 epl_make 目录下,执行makeinstall,完成安装。

9,加载内核模块,如使用了内核的协议栈,需要首先加载内核模块,在 epl_make/bin目录下生成了一些文件,有 powerlink8139.ko 和 demo_pi_console。powerlink8139.ko是内核模块,demo_pi_console 是应用程序。

在 Linux 的 shell 里敲入如下命令:cd bin
在 epl_make/bin 目录下有刚刚编译生成的 powerlink8139.ko,

输入sudo ./EplLoad -c mnobd.cdc powerlink8139.ko加载该内核模块
如需卸载模块,cd bin使用如下命令:sudo ./ EplUnload powerlink8139.ko

运行应用程序。
如果使用的内核协议栈,在 Linux 的 shell 里敲入如下命令:
#cd bin
#./demo_pi_console
如果使用的是用户空间协议栈,在Linux的shell里敲入如下命令:
#cd bin
#sudo ./demo_pi_console

基于Linux的powerlink实现相关推荐

  1. 基于Linux GlassFish v3 配置取代tomcat

    基于Linux GlassFish v3 配置: download:http://download.java.net/glassfish/3.0.1/release/glassfish-3.0.1.z ...

  2. emui10是基于linux的么,华为EMUI10在意义上还能称作安卓吗?谷歌以后的安卓版本,华为是否有必要去更新?...

    严格意义上来说还是安卓,有必要继续跟随安卓系统更新而更新. 这里我们要弄清鸿蒙系统,安卓系统和EMUI10这三者之间的关系,相信我们就能清晰的获得问题的答案.鸿蒙系统是什么 英文名叫Harmony O ...

  3. linux dhcp 论文,毕业论文—基于linux的dhcp服务器配置.doc

    毕业论文-基于linux的dhcp服务器配置 基于Linux的DHCP服务器配置 摘 要 随着互联网的普及,人们的工作.学习和生活与网络联系越来越紧密,搭建了许多不同的网络,如企业网.校园网和城区网等 ...

  4. 基于linux的驱动设计,《基于LINUX的虚拟驱动设计》-毕业论文.doc

    PAGE 40 l 摘 要 驱动程序是当前最热门.最有发展前途的IT应用技术之一.目前的驱动程序的开发主要应用在包括键盘 .鼠标.扫描仪.打印机以及存储设备等日益普及的设备之间的通讯上.但是要使这些设 ...

  5. 如何学习修改linux系统固件,基于Linux的固件,如何实现更新的好方法?

    我正在使用alix 2d13开发基于linux的设备. 我开发了一个脚本,负责创建映像文件,创建分区,安装引导加载程序(syslinux),内核和initrd,并注意将根文件系统文件放入正确的分区. ...

  6. linux线程池实现多线程并发,基于Linux的多线程池并发Web服务器设计-电子设计工程.PDF...

    基于Linux的多线程池并发Web服务器设计-电子设计工程.PDF 第 卷 第 期 电子设计工程 年 月 基于 的多线程池并发 服务器设计 陈 涛 任海兰 武汉邮电科学研究院 湖北 武汉 摘要 时至今 ...

  7. 基于Linux的集群系统(一)

    基于Linux的集群系统(一) 集群系统概述 本文是<基于LINUX的集群系统>系列文章的第一篇.作者就集群系统这一概念进行了概述,介绍了集群系统的发展以及国内外主要的集群系统解决方案. ...

  8. Oracle基于Linux平台的虚拟化与云计算战略

    凭借Linux环境的开放优势与开源的影响力,在开源架构上实现虚拟化是很多企业用户关心的问题.07年以来,虚拟化技术在中国市场中名声大噪,以红帽.Novell为代表的Linux供应商开始注重在市场中宣传 ...

  9. 向基于Linux的Oracle RAC 10g集群添加新节点

    在多数业务中,Oracle真正应用集群 (RAC) 配置的主要业务要求是整个系统中数据库层的可伸缩性 - 这样,当用户数增加时,可将额外实例添加到该集群来分发该负载.     在Oracle RAC ...

最新文章

  1. 结构光|一文详解相移步长的选择问题
  2. CSP认证201312-3最大的矩形[C++题解]:枚举
  3. ssrf漏洞内网渗透_渗透小白看了也能明白的SSRF
  4. 概率论 方差公式_概率论与数理统计课程教学、学习基本要求和教学建议
  5. spring配置数据源的4种方式--简介
  6. 数据库中的超码、候选码、主码
  7. Reinforcement Learning by David Silver 学记记录
  8. Spark性能优化之通过YDB实现比原生Spark性能高100倍的多表关联
  9. CSS FlexBox布局全面详解
  10. JAVA郑财校园新闻管理系统计算机毕业设计Mybatis+系统+数据库+调试部署
  11. 还在用Navicat破解版吗?资深DBA推荐的八款SQL工具,免费又简单!
  12. mfc上位机网络接收图片并显示_基于UDS on CAN的BootLoader上位机
  13. [算法]LeetCode 专题 -- 二分查找专题 34. 在排序数组中查找元素的第一个和最后一个位置
  14. 如何在Windows server 2012中设置文件夹共享和访问
  15. SQL server 将不等于hit的全部删除
  16. CookieSession会话技术
  17. mysql 错误码 1267_mysql错误1267的解决方法
  18. 09年第33周,时尚数码3c超人加潮人10大酷品装备推荐(上)
  19. 程序员保护好自己的颈椎
  20. Css之scoped (有作用域的 CSS)

热门文章

  1. oracle空间查询定义,ORACLE SDO_GEOMETRY 空间数据创建查询
  2. 数字标牌无线联网方案
  3. uva508 莫尔斯电码(Morse Mismatches)
  4. CAD二次开发 关于BlockTable、BlockTableRecord和BlockReference的一丢丢理解
  5. 从Github下载开源电子书
  6. 特朗普前经济顾问表示支持Facebook的Libra
  7. Android Treble结构:Part 2 - 概述
  8. 计算机毕业设计asp.net党员信息管理系统(源码+系统+mysql数据库+Lw文档)
  9. 如何卸载一个操作系统-以卸载Linux Deepin为例
  10. 仿ios桌面vivo_vivo精仿ios11主题包专属版下载-vivo精仿ios11主题包自定义版v2.9.9安卓版-007游戏网...