POWERLINK协议满足以太网IEEE802.3标准,该协议提供了所有标准的以太网功能特点包括交叉通信和热热插拔,允许网络以任意方式进行拓扑。网络中指定的PLC/PC作为管理节点(MN),该管理节点周期性调度并根据此来同步网络上的所有节点,并控制周期性数据通信。其他所有运行设备称为受控节点(CN),一个POWERLINK周期分为3个部分:
①在开始阶段,MN发送循环启动SoC帧给网络中的CN,以同步网络中的所有设备,抖动大概为20ns(纳秒)。
②循环阶段,周期性同步数据交换,同时使用多路复用技术来优化带宽。
③异步启动信号SoA,用于传输大容量,非时间苛刻的数据包。
POWERLINK分为实时和非实时域,由于异步阶段的数据传输支持标准的IP帧,路由器将数据与实时域安全隔离开。
支持集中控制和分布式控制;集中控制和分布式控制性能没有明显的区别。
POWERLINK是开源免费的,基于标准以太网硬件。
POWERLNK没有特殊的需求,外部设备为标准的HUB或交换机,内部为标准的HUB(集线器),有源HUB对信号有放大作用。支持热插拔,允许网络在带电状态下相互交换设备。
①普通以太网OSI (开放式系统互联参考模型) 模型:从上至下一次为:应用层/表示层/绘画层/传输层/网络层/数据链路层/物理层
②POWERLINK分为三层:应用层/数据链路层/物理层
物理层:遵循IEEE802.3快速以太网标准。
数据链路层:主要功能构建解析数据帧/对数据帧定界/网络同步/数据收发顺序控制/实时通信的传输控制。
POWERLINK的通信机制有2种
①请求应答模式
②定时主动上报模式(PRC)
POWERLINK一共有5种数据帧格式:SoC/Preq/Pres/SoA/AsyncData;一个完整的周期包含同步和异步俩个阶段;SoC到SoA为同步阶段;SoA到AsyncData为异步阶段;
SoC是同步信号,每一个循环周期开始主站都会广播一个SoC信号,实现时钟同步和动作同步。
SoA是异步信号,包含请求那个从站的上报数据,AsyncData包含从站上报的数据,但是每个周期只能有一个从站上报异步数据。
应用层:POWERLINK应用层遵循CANopen协议,为应用程序提供了同意的接口,使得不同设备与应用程序之间有统一的访问接口,CANopen协议有三个主要的部分:
PDO:过程数据对象,可以理解为需要周期性/实时传输的数据(在传统的CANopen协议中最大可以传输8字节,在POWERLINK协议中可以最大传输1490字节);
SDO:服务数据对象,可以理解为非周期性传输/实时性要求不高的数据;
OD:对象字典:是很多对象的集合,而对象可以理解为参数;假设一个设备有很多参数,CANopen通过给每个参数编号来区分,即索引,它的寻址方式是按编号寻址,不像TCP按IP寻址。
数据如何传输需要的关键2个参数:
在CANopen协议中数据传输需要俩个参数:
网络参数:将数据发送到那个站或者接收来自那个站的数据
映射参数:决定如何组成需要发送的数据包或者如何解析接收到的数据包。
不论接收还是发送,网络参数和映射参数必须是成对的:0x1800和0x1A00是对应的,依此类推,0x1801和0x1A01是一对。
|
网络参数 |
映射参数 |
数量 |
接收 |
0x1400~0x14fe |
0x1600~0x16fe |
|
发送 |
0x1800~0x18fe |
0x1A00~0x1Afe |
|
POWERLINK性能及特点:
支持240个节点,每个节点支持1500Bytes输入输出
循环周期:100us(高性能CPU或者高性能FPGA)
200us(低性能CPU或者低性能FPGA)
抖动:小于1us,实际循环周期中最大值与最小值的差值;
POWERLINKMAC寻址遵循IEEE802.3,每个设备的地址都是唯一的,我们称之为节点ID;
实时域和非实时域一般使用网关隔离开;
在vxworks下使用powerlink需要做哪些工作,以及可行性
1、VXWORSK下Shelltasks的有限级为1,最高优先级,需要将其优先级降低,防止shell输入比较长的指令会影响协议栈的运行。
2、初始化高精度时钟,powerlink需要时钟精度为us级别,vxworks系统时钟目前是ms级别;
3、绑定openpowerlink协议栈与vxworks协议栈,初始化协议栈的哥哥模块;
4、设置CDC文件名,主要在自动配置对象时用。
5、初始化应用;
6、软件复位操作;
①Preq/Pres请求应答模式
Powerlink收发数据是由主站控制,对于一个主站MN,和n和从站CN的网络结构来说,主站发送Soc(绝对时间和相对时间)帧广播到整个网络,从站收到主站的Soc帧之后进入等时同步阶段,主站发送给第一个节点Preq(以太网单播帧)帧,该节点收到主站发来的Preq帧后就会上报一个Pres(以太网多播帧),从站回复的帧是广播的,帧头有mac地址,所有主从站都可以收到,然后各站根据自己的对象字典得到自己的数据。也就是说,每次从站回复主站时只发一帧,这帧包含了给主站和其它从站的数据,所有站都能收到该帧,取不取数据要看各站自己的对象字典;当主站收到该从站的pres帧后,完成了一次信息交互;接下来主站与第二个等时同步从节点进行相同的信息交互,直到所有节点交互完毕,为一个周期。
Preq/Pres模式时间以及周期的计算:100M/s的网络,传输速率为12.5Bytes/us,完成一个从站所需要的时间为T1 = Tpreq+Tgap+Tpres;
Tpreq:主站发送给从站preq帧数据的时间;
Tpres:从站发送给主站pres帧数据的时间;
Tgap:Tpreq和Tpres帧之间的间隙约为2us;
一帧数据的最大长度为1490Bytes,最大的时间Tpreq = 120us;Tpres = 120us;
Tgap = 2us;总的时间T1 = 242us
如果当同时和相同的50个设备已最大数据帧通信的话周期为242*50 = 12.1ms
②PollResponse Chaining(PRC)模式
PRC模式省去了主站的Preq数据帧,取而代之的是主站发送PresMN给所有从站,该帧包含主站周期性上报的PDO数据,同时该帧也是一个时间参考点,支持PRC模式CN发送数据的时间参考点,从站从接收完PresMN开始计时触发发送数据帧pres帧;主站MN配置PRC模式的CN,使得CN在特定的时间点发送数据,这个时间点由主站根据网络的配置情况、网络延迟计算出来并配置给CN。3个从站主站可以配置CN1在收到PresMN的第5us上传Pres帧数据,CN2在收到PresMN的第15us上传Pres数据,CN3在收到PresMN的第25us上传Pres数据,这样避免了冲突。
PRC模式时间周期的计算:
T1 = Tpres+Tgap
Tpres:从站发送给主站pres帧数据的时间;
Tgap:Tpreq和Tpres帧之间的间隙约为2us;
一帧数据的最大长度为1490Bytes,最大的时间Tpres = 120us;
Tgap = 2us;总的时间T1 = 122us
如果当同时和相同的50个设备已最大数据帧通信的话周期为122*50 = 6.1ms
从站采用PRC模式还是preq/pres模式是由主机配置的,每一个从站只能采用这俩种模式中的一种,但是不同的从站可以这俩种模式的任意一种。
③系统中不同周期设备处理
一个系统中既有100ms的周期,也有200ms的周期,以及1s的周期,此时介意将主站系统周期设置200ms,通过多路复用机制来解决其他周期的通信问题。
每个周期只能有一个节点发送异步报文,如果有多个节点需要发送异步报文就需要排队,在MN中存在一个队列调度异步数据的发送权。当CN需要发送一个异步帧的时候,则通过pres帧或者Statues Response帧通知MN,MN的异步调度器决定异步帧发送的权限在那个周期被允许,保证发送请求不会被延迟不确定的时间长度
空闲阶段是在异步阶段终点和下一周期的起点之间剩余的时间间隔。
POWERLINK网络所有节点通信周期与收发数据的时间具有确定性,而TCP/UDP在网络繁忙的时候传输时间是不确定的。这主要基于POWERLINK协议有专管理受控节点CN数据发送的队列,具有优先级,当CN节点告诉MN节点需要进行发送异步数据的时候,MN节点会确切的告诉CN节点在哪个周期进行发送数据,而不会让CN节点无限期的等待MN发来的数据发送的权限。
POWERLINK的实时域即周期性传输的数据与非实时域(异步数据)是分离开的,保证了实时数据的实时性。
所有CN(受控节点即除主站外的所有从站)收发数据都是受MN来控制在管理的,相互间收发数据不会出现网络冲突的现象。
TCP/UDP是依靠IP(网络地址)寻址,而POWERLINK是通过自身编号寻址,该编号由MN(主站)统一管理分配。
对于TCP来说如果发送失败会进行重发,但是POWERLINK没有重发机制,在本周起发送出去没有得到目标对象的回应,本周期不会重发,而会在下一周期重新发送。
POWERLINK最小可以实现200us左右的周期,POWERLINK的周期会随着CN节点的增加和减少而变化(在受控节点相当多的情况下,访问所有节点加起来的时间大于设定的MN的周期,不过一般不会出现);