POWERLINK通讯协议的硬件实现方法与流程

文档序号:12132176阅读:1403来源:国知局
POWERLINK通讯协议的硬件实现方法与流程

本发明涉及工业以太网通讯协议技术领域,特别涉及一种POWERLINK通讯协议的硬件实现方法。



背景技术:

随着以太网技术和电子信息技术的发展,传统的现场总线正在向着工业以太网的方向发展,POWERLINK便产生于此背景下,被收录于国际标准IEC61158和IEC61784。POWERLINK符合IEC61784关于实时以太网的定义,该协议包括了实时的以太网数据链路层和基于CANOpen的应用层,其子协议规范包括:通信描述IEC61784-2;服务协议IEC61158-300、IEC61158-400、IEC61158-500和IEC61158-600;设备描述ISO15745-1。

OSI是一个用于开放信息处理系统标准化的通信模型,它是当今许多通用无数据优先级传输协议的参考模型。这个模型将数据传输的任务分为7层,每层(除了最底层)建立在另一层的基础之上。POWERLINK是一个三层的通信网络,根据OSI模型,它规定了物理层、数据链路层和应用层。POWERLINK与标准以太网的最大区别是其实时性、确定性,为此,它需要在数据链路层对数据包的链路进行管理来避免冲突,并通过同步包来提高网络内的同步性实时性。

POWERLINK的主流方案来自EPSG(Ethernet POWERLINK StandardizationGroup:PowerLink标准化组织),它提供了两种解决方案(HW Design Guidelines B&R公司,December 7,2010):

方案1:FPGA(软CPU+FPGA MAC)+PHY结构:FPGA内部的CPU软核上用C代码实现协议栈,包括数据链路层和应用层,FPGA MAC为用FPGA硬件逻辑实现的IP核OpenMAC,它提供了优化过的MAC链路与定时同步控制。

方案2:MCU+FPGA(软CPU+FPGA MAC)+PHY结构:FPGA内部的CPU软核上用C代码实现协议栈的数据链路层以及应用层接口;MCU则用来实现应用层;其它同方案1。

也有一些芯片厂商提供了第三种方案:CPU+MAC+PHY的三芯片结构的方案:在CPU中用C代码实现软件协议栈(部分数据链路层和应用层),MAC芯片用于PHY芯片的上数据收发管理,PHY芯片用于实现物理层数据收发。

本申请的发明人在实现本发明的过程中发现现有技术存在如下问题:

前述三种方案中,方案3实时性最差,它依赖于CPU的运行速率,而CPU是串行执行的,导致CPU对MAC的控制实时性差些。方案1、2均使用FPGA逻辑实现优化过了的链路控制,故对MAC的管理实时性较好,但方案1、2依然在FPGA外部用CPU实现应用层数据处理,虽具有一定的硬件加速能力,但是由于依然依赖CPU的运算处理能力,特别是FPFA嵌入的CPU运算能力较弱,实时性依然不是很好。

在当今的高速、高精度工业现场控制领域,对同步数据传输及处理提出了越来越高的要求。而EPSG的两套设计方案中,影响通信速度最大的关键点是在FPGA内部的软核CPU对OpenMAC的驱动,造成大量的时间浪费。



技术实现要素:

本发明实施方式的目的在于提供一种POWERLINK通讯协议的硬件实现方法,其使得POWERLINK通讯协议从物理层接口到数据链路层完全由硬件逻辑电路实现,而应用层则可以由存储空间扩展性强的软核CPU实现,从而使得POWERLINK通讯协议具有较高的数据传输响应能力,满足高速、高精度工业现场控制需求,同时又具有更灵活的扩展性,可以支持任意对象字典,任意从站数量,具有较佳的性价比,软硬件易于实现和维护。

为解决上述技术问题,本发明的实施方式提供了一种POWERLINK通讯协议的硬件实现方法,包括:POWERLINK通讯协议的数据链路层和物理层接口均基于以下任意一种芯片实现:可编程逻辑器件、定制硬件芯片、半定制硬件芯片;且,所述POWERLINK通讯协议的的应用层基于以下任意一种方式实现:软核处理器、嵌入式处理器、通用处理器。

本发明实施方式相对于现有技术而言,将POWERLINK通讯协议的数据链路层和物理层接口均基于硬件芯片实现,而将POWERLINK通讯协议的应用层基于软核CPU等实现,这样,本实施方式的基于硬件芯片实现的POWERLINK通讯协议部分再外接标准以太网物理层芯片和用户CPU(Center Processing Unit,中央处理器,简称CPU)即可组成一个完整的POWERLINK设备。基于本发明实施方式实现的POWERLINK设备,由于其数据链路层、物理层接口等部分基于硬件芯片实现,具有处理速度高的特点,从而能够满足当今高速、高精度工业现场控制领域对数据交换的需求,而对于POWERLINK通讯协议的应用层部分,由于其自身对于处理速度要求不高且对于存储空间的扩展性具有一定的要求,所以通过将其采用软核CPU实现,可以满足POWERLINK设备的扩展性、灵活性、支持的从站数量等,综上所述,本实施方式的POWERLINK通讯协议的硬件实现方法既满足了高速、高精度工业现场控制领域的需求,又有利于降低硬件成本,具有较强的实用性。

另外,所述数据链路层包括:应用层缓存,用于缓存应用层数据;DMA控制器,用于在应用层缓存和物理层缓存之间进行直接数据读写;第一状态机,用于管理整个POWERLINK通讯过程,从初始化直到POWERLINK通讯建立;第二状态机,用于管理已建立的POWERLINK通讯循环周期;寄存器阵列,用于修改网络参数和监控运行状态;时钟,用于第一状态机、第二状态机以及寄存器阵列之间的时钟同步;物理层配置模块Phy_cfg,用于将物理层配置数据下发给物理层接口;应用层接口APP_IF,用于在应用层和寄存器阵列之间进行网络参数和运行状态交换。从而使得POWERLINK通讯协议的数据链路层基于硬件芯片实现,并且还实现了在应用层缓存和物理层缓存之间进行直接数据读写的DMA控制器,从而使得实现的POWERLINK设备能够满足高速、高精度的工业现场控制领域的需求。

另外,所述物理层接口包括:介质无关接口MII,用于根据从所述Phy_cfg接收的物理层配置文件对物理层进行配置;媒体访问控制子协议OpenMAC,用于连接物理层并控制物理层上的数据收发;连接器OpenHub,用于将所述OpenMAC连接到至少两个网络接口;物理层缓存,用于缓存所述OpenMAC的收发数据。

另外,所述数据链路层包括:主站数据链路层或者从站数据链路层,所述主站数据链路层的控制流程包括:第一状态机初始化,通过对网络内各节点进行评估从而确定将本节点设置为主站还是从站,并在将所述本节点设置为主站后跳转至第一状态机网络监测状态;第一状态机网络监测状态,在所述第一状态机网络监测状态下,主站监测所述网络中是否有其他主站处于活动状态,如果存在活动的主站,则跳转到第一状态机基础以太网状态,如果没有监测到活动的主站,则跳转到第一状态机第一预处理状态;第一状态机第一预处理状态,在所述第一状态机第一预处理状态下,执行POWERLINK短周期,主站发送请求帧给所有从站,并接收从站回复的应答帧,主站根据应答帧对从站进行登记,当所有预期的从站登记完成后,跳转到第一状态机第二预处理状态;第一状态机第二预处理状态,在第一状态机第二预处理状态下,主站会发送配置信息给所有登记过的从站,当所有登记过的从站均配置完成后,跳转到第一状态机运行准备状态;第一状态机运行准备状态,在所述第一状态机运行准备状态下,所述主站查询网络中各从站的状态之后进入第一状态机运行状态,第一状态机运行状态,在所述第一状态机运行状态下,执行POWERLINK周期。

另外,从站的控制流程与主站的控制流程相对应,且所述从站数据链路层的控制流程包括:接收主站发送的请求及配置命令,回复对应的应答给主站;当接收到主站发送的状态跳变指令时,从站状态跳转至与主站相对应的状态。

另外,所述POWERLINK周期包括:等时同步阶段、异步阶段、空闲阶段;其中,所述等时同步阶段包括:当从站收到主站发送的周期起始帧SoC帧后,将前一POWERLINK周期处理完成的帧数据拷贝到TPDO缓存,当从站收到主站发送过来的请求帧Preq帧后,将TPDO缓存的帧数据发送给主站之后继续分析当前周期接收到的请求帧Preq帧,并生成对应于当前周期请求帧Preq帧的帧数据给下一POWERLINK周期使用。现有技术中一个POWERLINK周期中,从站自接收到主站发送的Preq帧至从站反馈Pres帧至主站需要三个时间段,依次分别是请求帧Preq帧分析时间,帧数据Pres生成时间以及帧数据Pres缓存时间,而本实施方式在从站收到主站发送的Preq帧之后,仅进行请求帧分析和帧数据生成,而将帧数据缓存调整到每个POWERKINK周期中从站收到SoC帧之后进行,这样,从单个POWERLINK通讯周期看,从站的数据反馈延后了一个周期,但是从整个POWERLINK通讯过程看,缩短了POWERLINK周期,减少了总线的等待时间,进一步提高了POWERLINK设备的实时性。

附图说明

图1是根据本发明第一实施方式POWERLINK通讯协议的原理框图;

图2是根据本发明第一实施方式POWERLINK通讯协议的主站链路层的控制流程图;

图3是根据本发明第二实施方式POWERLINK通讯协议的POWERLINK通讯周期的流程图;

图4是现有技术中POWERLINK通讯周期的时序图;

图5是现有技术中POWERLINK通讯周期与本发明第二实施方式POWERLINK通讯周期的时序对照示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

本发明的第一实施方式涉及一种POWERLINK通讯协议的硬件实现方法。POWERLINK通讯协议包括:物理层、数据链路层和应用层。本实施方式中,POWERLINK通讯协议的数据链路层和物理层接口均基于以下任意一种芯片实现:可编程逻辑器件、定制硬件芯片、半定制硬件芯片。举例而言,POWERLINK通讯协议的数据链路层和物理层接口基于现场可编程逻辑门阵列FPGA(Filed Programmable Gate-Array,现场可编程逻辑门阵列,简称FPGA)实现。而POWERLINK通讯协议的应用层则基于低速低成本方式实现,例如可以采用软核处理器、嵌入式处理器、通用处理器等任意一种方式实现POWERLINK通讯协议的应用层。

如图1所示为本实施方式的POWERLINK通讯协议的原理框图。根据图1所示,POWERLINK通讯协议的数据链路层包括:

应用层缓存,用于缓存应用层数据。

DMA控制器,用于在应用层缓存和物理层缓存之间进行直接数据读写。

第一状态机,即NMT状态机,用于管理整个POWERLINK通讯过程,从初始化直到POWERLINK通讯建立。

第二状态机,即DLL状态机,用于管理已建立的POWERLINK通讯循环周期。

寄存器阵列,用于修改网络参数和监控运行状态。

时钟,用于NMT状态机、DLL状态机以及寄存器阵列之间的时钟同步。

物理层配置模块Phy_cfg,用于将物理层配置数据下发给物理层接口。

应用层接口APP_IF,用于在应用层和寄存器阵列之间进行网络参数和运行状态交换。

POWERLINK通讯协议的物理层接口包括:介质无关接口MII,用于根据从Phy_cfg接收的物理层配置文件对物理层进行配置。

媒体访问控制子协议OpenMAC,用于连接物理层并控制物理层上的数据收发。

连接器OpenHub,用于将OpenMAC连接到至少两个网络接口。

物理层缓存,用于缓存OpenMAC的收发数据。

为实现发明目的,本实施方式中寄存器阵列的配置和功能描述如下表:

表一(寄存器分页)

表二:系统控制和状态寄存器

TxSDO、RxSDO、TxPDO、RXPDO、PRC、NMT状态机、DLL状态机、EtherNet Type、NoAct、ASnd、Prex、SoC、SoC_PReX、PRes、TPDO、RPDO、RSDO、TSDO、CurTPDO、CurRPDO、prex_rx_done等这些信号在POWERLINK协议标准ESPG DRAFTSTANDARD 301Ethernet POWERLINK Communication Profile Specification 2008中有详述,此处不再重述。

在实际应用中,POWERLINK通讯协议的数据链路层包括主站节点和从站节点,可以根据节点的NodeID进行配置。如图2所示为本实施方式的POWERLINK通讯协议的主站链路层的控制流程图。根据图2所示,主站链路层的控制流程包括如下步骤:

第一状态机初始化,通过对网络内各节点进行评估从而确定将本节点设置为主站还是从站,并在将本节点设置为主站后跳转至第一状态机网络监测状态。具体地,NMT状态机初始化状态下,会评估节点特定Powerlink NodeID,以决定将节点设置为主站还是从站,软件(应用层)可以配置FPGA中的NodeID寄存器来告知FPGA NodeID信息,初始化完成后跳转到NMT网络监测状态。

第一状态机网络监测状态,在NMT状态机网络监测状态下,主站监测网络中是否有其他主站处于活动状态,如果存在活动的主站,则跳转到NMT状态机基础以太网状态,如果没有监测到活动的主站,则跳转到第一状态机第一预处理状态。

第一状态机第一预处理状态,在NMT状态机第一预处理状态下,执行POWERLINK短周期,主站发送请求帧给所有从站,并接收从站回复的应答帧,主站根据应答帧对从站进行登记,当所有预期的从站登记完成后,跳转到NMT状态机第二预处理状态。

第一状态机第二预处理状态,在NMT状态机第二预处理状态下,主站会发送配置信息给所有登记过的从站,当所有登记过的从站均配置完成后,跳转到第一状态机运行准备状态。

第一状态机运行准备状态,在第一状态机运行准备状态下,主站查询网络中各从站的状态之后进入第一状态机运行状态。

第一状态机运行状态,在第一状态机运行状态下,执行POWERLINK周期。

POWERLINK通讯协议的从站的控制流程与主站的控制流程相对应,从站数据链路层的控制流程包括:接收主站发送的请求及配置命令,回复对应的应答给主站,当接收到主站发送的状态跳变指令时,从站状态跳转至与主站相对应的状态。

POWERLINK的应用层遵循CANopen标准,作为一个应用层协议,CANopen为应用程序提供了一个统一的接口,使得不同的设备与应用程序之间有统一的访问方式。CANopen协议有三个主要部分,PDO,SDO和对象字典OD。PDO即为过程数据对象,是通信过程中,需要周期性、实时传输的数据。SDO即为服务数据对象,是通信过程中,非周期性传输,实时性要求不高的数据,例如网络配置命令,偶尔要传输的数据等。对象字典则是很多对象的集合,一个对象相当于一个设备的一个参数。本实施方式中,对象字典可以基于C代码实现。基于一个POWERLINK通讯网络中设备数量、种类可以增加,更换等的需求,要求POWERLINK通讯协议的对象字典具有一定的扩展性。通常,POWERLINK通讯协议的对象字典对于传输实时性没有较高的要求,所以本实施方式采用软核CPU等实现对象字典,同时满足了扩展式、处理速度以及成本等的要求。

本实施方式可以遵照POWERLINK协议EPSG_DS_301_rev1.1.0进行设计,在硬件逻辑层实现包括媒体介质访问控制层(OpenMAC)、数据链路层、内部高速总线和应用层接口,外接标准10M/100M以太网物理层芯片(PHY)和用户CPU即可组成完整的一个POWERLINK主站或者从站设备。本实施方式中的OpenMAC可以采用与原B&R设计基本一致的功能,为了方便数据链路层的,可以采用Verilog重新实现。数据链路层包括网络管理状态机(NMT_FSM)、数据链路状态机(DLL_FSM)、数据收发缓存(RxBuf、TxBuf)、数据收发DMA、PHY配置状态机(Phy_cfg)和计时器(Timer)、应用层数据缓存(RPDOBuf、TPDOBuf、RSDOBuf、TSDOBuf、TSoXBuf(SoC/SoA)、RSoXBuf(SoC/SoA))、和寄存器阵列(Registers Array),应用层接口(即用户接口)可选支持8位/16位/32位并行接口,可以很方便地连接嵌入式处理器MCU或转成SPI(Serial Peripheral Interface,串行外设接口,简称SPI)、AXI(Advanced eXtensible Interface,先进的可扩展接口,简称AXI)、PCIE等应用接口。

基于本实施方式实现的POWERLINK通讯设备,仅需使用低成本小容量的FPGA芯片,并且能够满足当前高速、高精度工业工业控制需求,且对对象字典和从站数据均无限制,扩展灵活,维护方便,具有较高的性价比。

本发明的第二实施方式涉及一种POWERLINK通讯协议的硬件实现方法。第二实施方式在第一实施方式的基础上做出改进,主要改进之处在于:在第二实施方式中,对于POWERLINK通讯周期做出进一步改进,以便缩短POWERLINK通讯周期,提高POWERLINK通讯的实时性。

如图4、图5所示,常见的POWERLINK通讯周期的控制流程如下:

一个POWERLINK通讯周期包括:等时同步阶段、异步阶段和空闲阶段等三个阶段。其中同步阶段用来传输周期性通信的数据,异步阶段用来传输那些非周期性的数据。在等时同步阶段,从站CN1在收到主站MN发来的Preq帧后,需要经过数据帧分析时间t1、生成Pres帧数据时间t2和拷贝帧数据到TPDO缓存时间t3后,从站CN1才将帧数据Pres帧发送给主站MN。这样每个从站在接收到主站发过来的Preq帧后,都需要经过t1、t2和t3之后才会将Pres帧发送给主站,这样将会造成一定的延时。

如图3所示,本实施方式的POWERLINK通讯周期的控制流程如下:

步骤302:当从站CN收到主站发送的周期起始帧SoC帧后,将前一POWERLINK周期处理完成的帧数据拷贝到TPDO缓存。

步骤304:当从站收到主站发送过来的请求帧后,将TPDO缓存的帧数据发送给主站之后继续分析当前周期接收到的请求帧,并生成对应于当前周期请求帧的帧数据给下一POWERLINK周期使用。

结合图5所示,即在第一个POWERLINK周期内,各从站在接收到主站发送的Preq请求帧后,进行数据帧分析并生成帧数据,共耗时(t1+t2)时间,然后,在下一个POWERLINK周期中,当从站收到主站发送的SoC帧之后,将前一周期生成帧数据拷贝到TPDO缓存(时间为t3),并在收到主站发送的Preq请求帧之后,再将TPDO中缓存的帧数据发送给主站,然后继续本周期内的数据帧分析t1和生成帧数据t2给下一POWERLINK周期使用。从单个POWERLINK周期看,从站发送给主站的帧数据延迟了一个周期,但从连续的POWERLINK周期看,每个POWERLINK周期内在等时同步阶段由于节省了每个从站拷贝帧数据到TPDO的时间,所以缩短了POWERLINK周期,减少了总线上的等待时间,进一步提升了POWERLINK通讯的实时性。

采用本实施方式实现的POWERLINK通讯设备,由于POWERLINK通讯周期缩短,所以POWERLINK通讯设备的实时性进一步提高,使得产品具有较佳的竞争力。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。

本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1