基于Windows的Powerlink主从站通信

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于Windows的Powerlink主从站通信一、设计任务(要求)二、总体方案三、硬件原理图四、软件框图五、设计总结六、参考文献一、设计任务(要求)1、设计要求两人一组,一人作为主站(MN),一人作为从站(CN),实现Windows下的Powerlink主从站通信,在两台PC的控制台分别显示MN:姓名和学号CN:姓名和学号2、课程设计任务及工作量的要求根据任务书要求,完成以下设计任务:1.参考学习《Powerlink实现以太网教程》相关部分,学习怎样修改openPowerlink源代码,怎样使用openConfigurator配置从站网络参数和映射参数2.掌握Powerlink工作原理2.在Windows系统下安装VisualStudio2008,编译openPowerlink开源代码3.利用开源配置工具openConfigurator配置网络参数和映射参数,将产生的mnobd.cdc和xap.h文件放置正确的目录下4.根据配置参数,修改源代码相关部分,,重新编译源代码,完成主从站通信功能,并在控制台显示各自的姓名和学号5.通过wireshark进行功能演示。二、Powerlink工作原理现场总线由来已久,几种出现较早、应用较多的现场总线,如CAN、deviceNet、modBus、RS485等,这些总线速度慢、每次传输的数据包小。随着工业自动化由低速向高速、由低精度向高精度、由集中式控制向分布式控制的发展,对现场总线的传输速度和数据量都提出了新的要求。于是就有很多厂家提出了基于以太网技术来实现现场总线,由此诞生了POWERLINK、EtherNet/IP、ModBusTCP、ProfinetRT、EtherCat、MECHATROLINK等这些工业实时以太网的技术。目前高速实时现场总线种类繁多,很多厂家都在推广自己的总线协议,这些协议从性能上可分为两类:高实时总线和低实时总线。高实时性的总线:POWERLINK,EtherCat,MECHATROLINK。POWERLINK实际的实时性能最高为100us的循环周期,EtherCat实际的实时性能最高为250us的循环周期(这里指的是实际实时性能,而不是理论值,因为EtherCat的宣传资料中的性能为理论值)。在这三种总线中EtherCat和MECHATROLINK需要用专用的ASIC才能实现,之所以采用ASIC芯片来实现是为了能够控制市场,使他们处于有利地位。众所周知,工业自动化行业的厂家在2009、2010年取得了大丰收,很多公司的业绩翻了一倍。他们不缺客户、不愁订单,但是发愁芯片,由于很多芯片采购不到,而不得不丢掉很多客户。提供ASIC解决方案的公司,目的就是通过ASIC来控制市场、控制竞争对手。EtherCat和MECHATROLINK只解决了数据链路层和物理层,而没有实现应用层。用户买了ASIC芯片,还不得不自己来实现应用层(如CANopen),这需要花费用户很长时间。此外不同用户实现的应用层往往不同,这就造成同样都是基于EtherCat的设备,却相互不能通信。POWERLINK是一个可以在普通以太网上实现的方案,无需ASIC芯片,用户可以在各种平台上实现POWERLINK,如FPGA、ARM、x86CPU等,只要有以太网的地方,就可以实现POWERLINK。POWERLINK公开了所有的源码,任何人都可以免费下载和使用(就像Linux)。POWERLINK的源码里包含了物理层(标准以太网)、数据链路层(DLL)、应用层(CANopen)三层完整的代码,用户只需将POWERLINK的程序在已有的硬件平台上编译运行,就可以在几分钟内实现POWERLINK。POWERLINK是一个易于实现的、高性能的、不被任何人垄断的、真正的互连互通的平台。低实时性的总线:EtherNet/IP,ModBusTCP,ProfinetRT。这三种总线可以用普通的以太网实现,但是他们基本上是对TCP/IP协议的修改或补充,没有从根本上解决实时的需求。而POWERLINK完全丢掉了TCP/IP,定义了一个精简的、实时性极高的数据链路层协议,同时定义了CANopen为应用层协议。这样用户在实现了POWERLINK的同时,也实现了CANopen。在纷繁的总线协议中,POWERLINK将是实时以太网的未来,原因如下:1.POWERLINK是一项开源技术,开放性好,无需授权,无需购买。2.POWERLINK基于标准的以太网,无需专用的ASIC芯片,有以太网的地方,就可以实现POWERLINK,硬件平台多种多样(ARM,FPGA,DSP,X86等),不依赖于某一个公司。3.POWERLINK速度快,支持10M/100M/1000M的以太网。以太网技术进步,POWERLINK的技术就会跟着进步,因为POWERLINK是基于标准以太网的。4.POWERLINK性能卓越,使用价格低廉的FPGA(几美元)来实现POWERLINK,性能也能达到100-200us的循环周期。5.POWERLINK支持标准的网络设备,如交换机、HUB等。支持所有以太网的拓扑结构,使得布线更自由、更灵活。2.1POWERLINK是IEC国际标准POWERLINK是IEC国际标准,同时也是中国的国家标准。通信描述:IEC61784-2服务和协议:IEC61158-300IEC61158-400IEC61158-500IEC61158-600设备描述:ISO15745-12.2OSI模型OSI是一个用于开放信息处理系统标准化的通信模型,它是当今许多通用无数据优先级传输协议的参考模型。这个模型将数据传输的任务分为7层,每层(除了最底层)建立在另一层的基础之上。POWERLINK是一个三层的通信网络,它规定了物理层、数据链路层和应用层。2.3POWERLINK的物理层POWERLINK的物理层采用标准的以太网,遵循IEEE802.3快速以太网标准。这意味着无论POWERLINK的主站还是从站,都可以运行于标准的以太网之上。这带来的好处是:1.只要有以太网的地方就可以实现POWERLINK,例如你的PC机上可以运行POWERLINK、一个带有以太网接口的ARM可以运行POWERLINK、一片FPGA也可以运行POWERLINK。2.以太网的技术进步,就会带来POWERLINK的技术进步。因为POWERLINK是站在标准以太网的肩膀上,而标准的以太网是一个开放的、全民的网络,在各个领域广泛应用,各行各业的人不断地为以太网的升级而奋斗。目前POWERLINK支持10M/100M/1000M的以太网。只需在硬件驱动程序中做小小的改动,POWERLINK就可以支持10G的以太网。3.实现成本低。如果用户的产品以前是基于ARM平台,一般ARM芯片都会带有以太网,这样用户无须增加任何硬件,也无需增加任何成本,就可以在产品中集成POWERLINK,用户所付出的只是把POWERLINK的程序集成到应用程序中,而POWERLINK的源程序又是开放且免费的。用户可以购买普通的以太网控制芯片(MAC)来实现POWERLINK的物理层,如果用户想采用FPGA的解决方案,POWERLINK提供开放源码的openMAC。这是一个用VHDL语言实现的基于FPGA的MAC,同时POWERLINK又提供了一个用VHDL语言实现的openHUB,支持16个端口。如果用户的网络需要做冗余,如双网、环网等,就可以直接在FPGA中实现,易于实现且成本很低。此外由于基于FPGA的方案,从MAC到数据链路层(DLL)的通信,POWERLINK采用了DMA,因此速度更快。2.4POWERLINK的数据链路层POWERLINK的数据链路层:也就是POWERLINK的核心,主要包括如下功能:1.构建/解析数据桢、对数据桢定界、网络同步、数据桢收发顺序的控制。2.传输过程中的流量控制、差错检测、对物理层的原始数据进行数据封装等。3.实时通信的传输控制。4.网络状态机。在POWERLINK网络中,至少有一个设备做为主站(MN),其他的设备做为从站(CN)。每个从站设备都有唯一的节点号(NodeId),该节点号是用来区分网络中的设备,取值范围为1-239。主站设备(MN)的节点号为240,主站的作用是为了为协调各个从站,合理分配总线使用权,避免冲突,实现实时通信。POWERLINK的实时通信机制:POWERLINK有两种通信机制,基于请求/应答模式和基于定时主动上报模式(PRC模式)。2.4.1基于请求/应答模式该种模式主站(MN)轮询所有从站(CN)。首先主站发送Preq数据帧(PReqCN1)给1号从站,该数据帧是单播的,只有1号节点接收,其他节点不接收。在该数据帧中包含了主站(MN)要发送给1号从站的数据。当1号节点收到来自主站的Preq数据帧,就会上报一个Pres数据帧(PresCN1),该数据帧是广播的,除了主站可以接收到以外,网络中其他任何一个从节点都能收到。主站(MN)与1号从节点(CN1)一来(Preq)、一往(Pres),就完成了一次信息交互;接下来主站(MN)与2号从节点(CN2)的信息交互,以此类推,将网络中所有的节点扫描一次,称为一个循环周期。假定循环周期为200us,那么网络中的每个设备每200us就有一次收取/发送数据的机会,而且不会与其他设备造成冲突。该种模式下的性能:完成一个站的通信所需要的时间,取决于物理层的传输速度和需要传送的数据包大小。假定物理层为100M以太网,该种网络的传输速度为12.5bytes/us,假定数据包大小为64bytes(每个Preq和Pres数据帧最大可传输1490bytes的数据),那么完成一个站的通信所需要的时间:T=Tpreq+Tgap+TpresTpreq:主站发送Preq数据帧给从站,时间长度为64/12.5=5.12usTpres:从站发送Pres数据帧给主站,时间长度为64/12.5=5.12usTgap:Preq数据帧与Pres数据帧之间的时间间隙,约为2us因此完成一个站的通信,总时间长度为12.24=5.12+2+5.122.4.2PRC模式在基于请求-应答模式(PREQ-PRES)通信时,从节点什么时候上报自己的数据,取决于主站什么时候发生请求(PREQ)给它。该种模式省掉了主站的Preq数据帧,取而代之的是一个挨一个的Pres。有人会问各个从站如何知道自己应该在什么时候上报数据?是否会出现两个或多个从站同时上报数据?这样岂不是发生了冲突?该种模式下,POWERLINK主站在开始通信之前,会去配置从站的参数,告诉每个从站应该在循环周期的哪一时刻上报。举个例子:假定我们有3个从站,主站可以通过配置,让1号从站在收到PresMN后的第5us上传PresCN1数据帧,而2号从站在收到PresMN后的第15us上传PresCN2数据帧,而3号从站在收到PresMN后的第22us上传PresCN3数据帧。这样就避免了冲突。因为POWERLINK是基于时间槽的通信,而且POWERLINK支持1588分布式时钟协议,每个POWERLINK节点都有一个时钟,因此POWERLINK很方便实现这种通信模式。在该种模式下的性能:完成一个站的通信所需要的时间,取决于物理层的传输速度和需要传送的数据包大小。假定物理层为100M以太网,该种网络的传输速度为12.5bytes/us。假定数据包大小为64bytes(每个Preq和Pres数据帧最大可传输1490bytes的数据)。那么完成一个站的通信所需要的时间T=Tgap+TpresTpres:从站发送Pres数据帧给主站,时间长度为64/12.5=5.12usTgap:Preq数据帧与Pres数据帧之间的时间间隙,约为2us因此完成一个站的通信,总时间长度为7.12=5.12+2这种通信比基于请求/应答模式至少能提高30%的效率。PRC模式的通信过程:1.主站发生广播数据帧PresMN,主站把多个从站需要的数据在该数据帧里打包,然后以广播的方式发送出去,各个从站根据配置信息,从该

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功