CN105162786A - 一种基于fpga的powerlink从站帧缓存管理系统 - Google Patents

一种基于fpga的powerlink从站帧缓存管理系统 Download PDF

Info

Publication number
CN105162786A
CN105162786A CN201510577314.2A CN201510577314A CN105162786A CN 105162786 A CN105162786 A CN 105162786A CN 201510577314 A CN201510577314 A CN 201510577314A CN 105162786 A CN105162786 A CN 105162786A
Authority
CN
China
Prior art keywords
frame
buffer area
buffer
data frame
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510577314.2A
Other languages
English (en)
Other versions
CN105162786B (zh
Inventor
宋宝
唐小琦
张航天
王源
颜外平
谢远龙
徐健
周向东
陈天航
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201510577314.2A priority Critical patent/CN105162786B/zh
Publication of CN105162786A publication Critical patent/CN105162786A/zh
Application granted granted Critical
Publication of CN105162786B publication Critical patent/CN105162786B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6295Queue scheduling characterised by scheduling criteria using multiple queues, one for each individual QoS, connection, flow or priority

Abstract

本发明公开了一种基于FPGA的POWERLINK从站帧缓存管理系统,在FPGA内部实现数据帧类型检测模块、数据帧缓存管理模块,使用FPGA内部块RAM作为帧缓存区,在数据帧接收过程中由数据帧类型检测模块对帧类型进行识别,并将结果传递给缓存管理模块,缓存管理模块动态安排存储结构,使不同类型的帧存放在RAM中的不同区域,互不干扰。本发明通过对存储结构的动态管理,避免了传统线型存储结构由于帧覆盖造成的数据丢失问题。

Description

一种基于FPGA的POWERLINK从站帧缓存管理系统
技术领域
本发明属于网络通信技术领域,更具体地,涉及一种基于FPGA的POWERLINK从站帧缓存管理系统。
背景技术
POWERLINK通信行规中包含7种类型的以太网数据帧,分别是SoC、PReq、PRes、SoA、ASnd、AMNI、AInv。
POWERLINK通信行规中,包含应用层数据的帧为Preq、Pres、Asnd中的SDO,其余类型数据帧用于网络管理。其中Preq、SDO帧属于单播帧,Pres帧属于广播帧。
如图1所示,在POWERLINK通信行规下有两种工作模式,在Powerlink模式下,通信周期细分为等时同步阶段和异步阶段,和空闲阶段。其中SoC帧的发送作为等时同步阶段的起点,接着重复进行Preq帧/Pres帧过程。SoA帧的发送作为等时同步阶段的结束和异步阶段的开始,在异步阶段,可以进行SDO通信。空闲阶段是一个周期之中同步阶段和异步阶段结束之后的通信空闲阶段,该阶段没有任何数据帧的传输。
网络管理数据帧要求从站在接收到之后立即进行处理并且应当在接收到下一帧之前处理完毕。过程数据帧Preq和Pres要求从站在一个通信周期内处理完毕。
SDO通信属于异步通信,从站对于接收到的SDO帧不必立即进行处理,只要在主站限定的时间之内处理完毕即可,而这个限定时间通常大于2个通信周期。
根据当前POWERLINK的解决方案,对帧的接收缓存处理有两种途径:
1、使用MAC芯片,所有数据帧按照先后到达的顺序全部存入MAC的缓存区中,由CPU调用缓存区中的内容。
2、使用可编程器件,如FPGA,调用OPENMACIP核,OPENMAC将接收缓存DPRAM分成若干个区域,组成存储缓存队列,经过OPENMAC过滤的POWERLINK数据帧按照先后到达的顺序依次存放在存储队列中,当队列排满后,新的数据帧放在队列的起点。
第一种方案,MAC对于所有的数据帧不加分辨都接收,当网络中的从站数量增加之后,其中某一从站必将收到大量不属于本从站的数据帧,如果从站没有及时处理数据,当缓存区满后,必然出现数据被覆盖的情况,造成数据的丢失。
第二种方案,OPENMAC可以过滤掉不属于本从站的数据帧,但是该方法仍然存在问题,如前所述,SDO通信属于异步通信,SDO数据帧的处理不要求立即进行,受限于队列长度,SDO数据帧仍然可能在被处理之前就被覆盖掉。
对于上述问题,通常采取的措施是增加通信周期,或者增加缓存区的长度,以提供更多的时间供从站处理数据帧。但是前者将影响通信性能,后者受限于缓存区的长度,不可能无限增加缓存区的长度,同时两种措施都不能从根本上解决问题。
发明内容
本发明的主要目的旨在解决上述问题,通过对帧缓存结构进行动态规划,避免了有效数据由于处理不及时而被覆盖的问题。
为了实现上述目的,本发明提供了一种基于FPGA的POWERLINK从站帧缓存管理系统,在FPGA内部实现数据帧类型检测模块、数据帧缓存管理模块,使用FPGA内部块RAM作为帧缓存区,在数据帧接收过程中由数据帧类型检测模块对当前帧的帧类型进行识别,并将帧类型识别结果传递给数据帧缓存管理模块,数据帧缓存管理模块根据帧类型识别结果决定存储下一个帧的缓存区序列号,并且缓存区序列号将当前数据帧存入相应的缓存区中,其中:数据帧类型检测模块和数据帧缓存管理模块使用VHDL语言编写,在FPGA内部以硬件逻辑门的形式实现,帧缓存区域使用FPGA内部提供的RAM存储块,模块之间通过FPGA内部的导线资源进行信息的传递,数据帧类型检测模块向数据帧缓存管理模块提供帧类型信息。
在本发明的一个实施例中,所述数据帧类型检测模块具体用于:
首先对目的地址进行检测,C_DLL_MULTICAST_ASND和C_DLL_MULTICAST_PRES分别为POWERLINK通信行规规定的SDO帧和Pres帧应具有的目的地址,如果数据帧的目的地址与这两者中的某一个相同,则进继续判断这个数据帧的具体类型;如果帧的目的地址与从站的本地MAC地址相同,则进行接下来的检测判断该帧是否为Preq帧;
对于通过目的地址检测的数据帧,进行以太网类型的检测,POWERLINK通信行规规定的以太网类型的数值为C_DLL_ETHERTYPE_EPL,符合要求的数据帧继续对其目的进行检测;
目的等于本地NODEID的数据帧,认为是Sdo帧或者Preq帧;接下来对这两种帧的源进行检测,如果源的数值等于C_ADR_MN_DEF_NODE_ID,则目的地址为C_DLL_MULTICAST_ASND的为SDO帧,目的地址为本地MAC地址的为Preq帧;
目的等于C_ADR_BROADCAST的数据帧,对其源进行检测,如果源的数值为交叉通信从站ID,即与该从站进行交叉通信的从站的ID,则认为该帧的类型为Pres。
在本发明的一个实施例中,所述数据帧缓存管理模块具体包括5个寄存器,其中,寄存器CurRxBufReg用于保存当前帧所在缓存区的区号,寄存器NextRxBufReg保存下一个数据帧应当处于的缓存区的区号,寄存器PreqBufReg、寄存器PresBufReg、寄存器SdoBufReg分别用于保存当前Preq帧、Pres帧、SDO帧所在的缓存区区号。
在本发明的一个实施例中,所述数据帧缓存管理模块具体用于:
当系统复位或者最近数据帧接收完毕之后,首先将NextRxBufReg的值赋给CurRxBufReg;
根据数据帧类型检测模块提供的结果,更新PreqBufReg,PresBufReg,SdoBufReg中的数值:如果帧类型为Preq,则将CurRxBufReg的值赋给CurRxBufReg;如果帧类型为Pres,则将CurRxBufReg的值赋给PresBufReg;如果帧类型为Sdo,则将CurRxBufReg的值赋给SdoBufReg;如果帧类型不属于上述三种类型的任意一种,则不进行PreqBufReg,PresBufReg,SdoBufReg的更新;
在上述三种寄存器的值更新完成之后,更新NextRxBufReg中的数值,NextRxBufReg的取值为所有的帧缓存区区号当中,不存在于PreqBufReg,PresBufReg,SdoBufReg三个缓存区中的所有区号中,数值最小的区号。
在本发明的一个实施例中,RAM被分为若干个帧缓存区,每个缓存区有两种状态,锁定和解锁,处于锁定状态的缓存区无法接收数据帧,只能被读取;处于解锁状态的缓存区可以被任意读写,缓存区的状态由数据帧缓存管理模块确定,系统复位之后,所有缓存区的状态均为解锁状态。
在本发明的一个实施例中,PreqBufReg、PresBufReg、SdoBufReg中保存的是当前被锁定的缓存区的序号,如果为0,表示当前没有缓存区被锁定,如果某一缓存区的序号不在这三个寄存器当中,表明该缓存区没有被锁定,系统复位后,CurRxBufReg中的值为1,NextRxBufReg中的值为1,PreqBufReg、PresBufReg、SdoBufReg中的值为0。
在本发明的一个实施例中,在系统复位之后,第一次接收到的数据帧存放在缓存区1,之后接收到的数据帧的存储位置由数据帧缓存管理模块决定,。如果当前接收到的数据帧的类型为Preq帧,或者Pres帧,或者Sdo帧,则相应的,PreqBufReg,PresBufReg,SdoBufReg中的值变为当前数据帧缓存区的值,同时NextRxBufReg中的值为为所有未被锁定的缓存区中,序号最小的缓存区的序号,下一个数据帧的存储位置,即为NextRxBufReg中的数值所代表的缓存区。
在本发明的一个实施例中,缓存区的总数为所有与该从站进行交叉通信的从站的数量加2。
与现有技术相比,本发明具有如下有益效果:
1、在不增加缓存区长度的情况下解决SDO帧的被覆盖问题;
2、在不减小通信速率的情况下解决SDO帧的被覆盖问题;
3、传统方案无法准确地确定Preq帧和Pres帧从接收完毕到被覆盖的时间,而本发明可以保证在一个通信周期的时间内,Preq帧和Pres帧不被覆盖,因此可以根据从站处理数据帧的时间来确定系统的最小通信周期,避免通信周期过短造成的数据帧覆盖;
4、本发明不依赖于具体的FPGA的型号,因此具有良好的通用性和可移植性。
附图说明
图1是POWERLINK的通信周期示意图;
图2是本发明系统的实现流程图;
图3是本发明POWERLINK从站帧缓存管理系统的总体示意图;
图4是帧类型检测流程图;
图5是数据帧缓存管理模块工作流程图;
图6是采用MAC芯片时数据帧存储方式示意图;
图7是采用OPENMACIP核时数据帧存储方式示意图;
图8是本发明的数据帧存储序列示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明实现的具体实现流程如图2所示,在数据帧接收过程中由数据帧类型检测模块对当前帧的帧类型进行识别,并将帧类型识别结果传递给数据帧缓存管理模块,数据帧缓存管理模块根据帧类型识别结果决定存储下一个帧的缓存区序列号,并且缓存区序列号将当前数据帧存入相应的缓存区中。
数据帧类型检测模块和数据帧缓存管理模块使用VHDL语言编写,在FPGA内部以硬件逻辑门的形式实现,帧缓存区域使用FPGA内部提供的RAM存储块,模块之间通过FPGA内部的导线资源进行信息的传递,数据帧类型检测模块向数据帧缓存管理模块提供帧类型信息,整体结构图如图3所示。
数据帧以串行数据流的形式传入从站,数据帧类型检测模块在数据帧接收过程中对数据类型进行检测。检测内容按照数据进入的顺序包:目的MAC地址、以太网类型、报文类型、目的、源,根据上述信息可以判定出帧的类型以及是否是本从站应接受的帧,进一步,当判定出帧类型为Asnd之后,应继续检测该帧的服务ID确定其是否为SDO帧。帧检测模块将帧分为4种类型,Preq帧、Pres帧、SDO帧和其他类型帧。其他类型的帧包括不应由本从站接收的Preq帧、Pres帧、SDO帧,以及各种类型的网络管理数据帧。具体地,数据帧类型检测模块的检测过程如图4所示,序号①②③代表的路径分别表示SDO、Pres、Preq帧所经历的检测过程。数据帧类型检测模块首先对目的地址进行检测,C_DLL_MULTICAST_ASND和C_DLL_MULTICAST_PRES分别为POWERLINK通信行规规定的SDO帧和Pres帧应具有的目的地址,如果数据帧的目的地址与这两者中的某一个相同,则进行接下来的检测过程判断这个数据帧的具体类型。如果帧的目的地址与从站的本地MAC地址相同,则进行接下来的检测判断该帧是否为Preq帧。对于通过目的地址检测的数据帧,进行以太网类型的检测,POWERLINK通信行规规定的以太网类型的数值为C_DLL_ETHERTYPE_EPL。符合要求的数据帧继续对其目的进行检测。目的等于本地NODEID的数据帧,可以认为是SDO帧或者Preq帧,接下来对这两种帧的源进行检测,如果源的数值等于C_ADR_MN_DEF_NODE_ID,则目的地址为C_DLL_MULTICAST_ASND的为SDO帧,目的地址为本地MAC地址的为Preq帧。目的等于C_ADR_BROADCAST的数据帧,对其源进行检测,如果源的数值为交叉通信从站ID,即与该从站进行交叉通信的从站的ID,则可以认为该帧的类型为Pres。以上为数据帧类型检测模块的工作流程。
数据帧缓存管理模块具有5个寄存器,CurRxBufReg保存当前帧所在缓存区的区号,NextRxBufReg保存下一个数据帧应当处于的缓存区的区号,PreqBufReg,PresBufReg,SdoBufReg分别保存当前Preq帧、Pres帧、SDO帧所在的缓存区区号。其中PreqBufReg、PresBufReg、SdoBufReg中保存的是当前被锁定的缓存区的序号,如果为0,表示当前没有缓存区被锁定,如果某一缓存区的序号不在这三个寄存器当中,表明该缓存区没有被锁定。系统复位后,CurRxBufReg中的值为1,NextRxBufReg中的值为1,PreqBufReg、PresBufReg、SdoBufReg中的值为0。
系统复位之后,第一次接收到的数据帧存放在缓存区1,之后接收到的数据帧的存储位置由数据帧缓存管理模块决定。如果当前接收到的数据帧的类型为Preq帧,或者Pres帧,或者SDO帧,则相应的,PreqBufReg,PresBufReg,SdoBufReg中的值变为当前数据帧缓存区的值,同时NextRxBufReg中的值为为所有未被锁定的缓存区中,序号最小的缓存区的序号,下一个数据帧的存储位置,即为NextRxBufReg中的数值所代表的缓存区。
缓存区的总数为所有与该从站进行交叉通信的从站的数量加2。
本发明对于网络管理数据帧所在的缓存区不进行锁定,数据被处理完之后立即被下一帧覆盖;过程数据帧缓存区在一个通信周期之内被锁定,保证在一个周期之内数据不会被覆盖;SDO数据帧缓存区始终被锁定直到从站对数据帧的处理完成。
数据帧缓存管理模块工作流程如图5所示,当系统复位或者最近数据帧接收完毕之后,流程开始,首先将NextRxBufReg的值赋给CurRxBufReg,之后,根据数据帧类型检测模块提供的结果,更新PreqBufReg,PresBufReg,SdoBufReg中的数值:如果帧类型为Preq,则将CurRxBufReg的值赋给CurRxBufReg;如果帧类型为Pres,则将CurRxBufReg的值赋给PresBufReg;如果帧类型为Sdo,则将CurRxBufReg的值赋给SdoBufReg;如果帧类型不属于上述三种类型的任意一种,则不进行PreqBufReg,PresBufReg,SdoBufReg的更新。在上述三种寄存器的值更新完成之后,更新NextRxBufReg中的数值,NextRxBufReg的取值为所有的帧缓存区区号当中,不存在于PreqBufReg,PresBufReg,SdoBufReg三个缓存区中的所有区号中,数值最小的区号。以上为数据帧缓存管理模块的工作流程。
对于帧缓存区,将RAM分为若干个缓存区,每个缓存区有两种状态,锁定和解锁。处于锁定状态的缓存区无法接收数据帧,只能被读取;处于解锁状态的缓存区可以被任意读写,缓存区的状态由数据帧缓存管理模块确定,系统复位之后,所有缓存区的状态均为解锁状态。
每个缓存区存储数据帧类型不固定,由数据帧缓存管理模块动态决定。
对缓存区进行编号,按照所处地址的先后位置,对缓存区进行编号,第一个缓存区编号为1,接下来的缓存区依次加1。
数据帧缓存管理模块根据数据帧类型检测模块提供的数据帧类型决定当前存放数据帧的缓存区是否被锁定,当前已被锁定的缓存区是否解锁,以及下一个数据帧应该存放的缓存区的位置。
举例说明,一个包括1个主站和3个从站的POWERLINK通信网络,从站CN1接收主站发送的Preq数据帧,并且和从站CN2进行交叉通信,接收CN2发出的Pres数据帧。具体实现可以为:主站首先向CN1发送一个Sdo数据,接着依次和3个从站进行过程数据通信。
下面对通过三种不同的方案实现上述通信过程中,从站CN1的缓存情况进行分析。
图6是采用MAC芯片时,各数据帧在缓存区中的存储情况,缓存区没有分区,可以看到最先发送的SDO数据帧被CN2发送的Pres帧所覆盖,此时如果SDO数据帧还没被处理,会导致数据的丢失,当网络中存在大量从站时,在一个通信周期中,将会接收到大量的Preq和Pres帧,如果缓存区的空间不够,在一个通信周期中,应该由本从站接收的Preq和Pres帧也会被覆盖。
图7是调用OPENMACIP核时,数据帧在缓存区中的存储情况,缓存区被划分成几个区域,数据帧按照到达的先后顺序存放在各缓存区中,OPENMAC具有帧过滤功能,不属于本从站接收的数据帧会被过滤掉,但是Sdo数据帧仍然可能被覆盖。
图8是根据本发明的方法,按照上述帧发送序列,数据帧在缓存区中的存储情况。缓存区个数为4,由于对数据帧的存储方式进行了改进,Sdo数据帧没有被覆盖。
如下表所示,为本发明的数据帧缓存管理模块中各寄存器在通信周期中的取值列表,表中的数值为缓存区区号。
序号 帧类型 CurRxBufReg NextRxBufReg PreqBufReg PresBufReg SdoBufReg
1 Sdo 1 2 0 0 1
2 SoC 2 2 0 0 1
3 PReq至CN1 2 3 2 0 1
4 Preq至CN2 3 3 2 0 1
5 Pres来自CN2 3 4 2 3 1
6 Preq至CN3 4 4 2 3 1
7 Pres来自CN3 4 4 2 3 1
8 SoA 4 4 2 3 1
9 SoC 4 4 2 3 1
10 Preq至CN1 4 2 4 3 1
11 Preq至CN2 2 2 4 3 1
12 Pres来自CN2 2 3 4 2 1
…… …… …… …… …… …… ……
从中可以看出本发明的特点:
1、各缓存区所存储的帧类型不固定,缓存区2存储过SoC帧、Preq帧、Pres帧。
2、被锁定的缓存区无法进行写操作,缓存区1在存取了Sdo帧之后始终被锁定,无法用来存取其他类型的帧,直到被解锁。
3、被锁定的缓存区经过解锁之后可以被继续用来存放其他数据帧,缓存区2在被锁定时存放了传至CN1的Preq帧,解锁之后,又存放了传至CN2的Preq帧。
4、过程数据帧Preq、Pres所在的缓存区在一个周期之后被解锁,异步通信数据帧Sdo所在缓存区只有在从站处理完毕之后才被解锁,第一个通信周期中,缓存区3存放了来自CN2的Pres帧,第二个通信周期,当从站再次接收到来自CN2的Pres帧时,缓存区3即被解锁;缓存区1始终用来存取Sdo数据帧,直到从站完成处理。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种基于FPGA的POWERLINK从站帧缓存管理系统,其特征在于,在FPGA内部实现数据帧类型检测模块、数据帧缓存管理模块,使用FPGA内部块RAM作为帧缓存区,在数据帧接收过程中由数据帧类型检测模块对当前帧的帧类型进行识别,并将帧类型识别结果传递给数据帧缓存管理模块,数据帧缓存管理模块根据帧类型识别结果决定存储下一个帧的缓存区序列号,并且缓存区序列号将当前数据帧存入相应的缓存区中,其中:数据帧类型检测模块和数据帧缓存管理模块使用VHDL语言编写,在FPGA内部以硬件逻辑门的形式实现,帧缓存区域使用FPGA内部提供的RAM存储块,模块之间通过FPGA内部的导线资源进行信息的传递,数据帧类型检测模块向数据帧缓存管理模块提供帧类型信息。
2.如权利要求1所述的系统,其特征在于,所述数据帧类型检测模块具体用于:
首先对目的地址进行检测,C_DLL_MULTICAST_ASND和C_DLL_MULTICAST_PRES分别为POWERLINK通信行规规定的SDO帧和Pres帧应具有的目的地址,如果数据帧的目的地址与这两者中的某一个相同,则进继续判断这个数据帧的具体类型;如果帧的目的地址与从站的本地MAC地址相同,则进行接下来的检测判断该帧是否为Preq帧;
对于通过目的地址检测的数据帧,进行以太网类型的检测,POWERLINK通信行规规定的以太网类型的数值为C_DLL_ETHERTYPE_EPL,符合要求的数据帧继续对其目的进行检测;
目的等于本地NODEID的数据帧,认为是SDO帧或者Preq帧;接下来对这两种帧的源进行检测,如果源的数值等于C_ADR_MN_DEF_NODE_ID,则目的地址为C_DLL_MULTICAST_ASND的为SDO帧,目的地址为本地MAC地址的为Preq帧;
目的等于C_ADR_BROADCAST的数据帧,对其源进行检测,如果源的数值为交叉通信从站ID,即与该从站进行交叉通信的从站的ID,则认为该帧的类型为Pres。
3.如权利要求1或2所述的系统,其特征在于,所述数据帧缓存管理模块具体包括5个寄存器,其中,寄存器CurRxBufReg用于保存当前帧所在缓存区的区号,寄存器NextRxBufReg保存下一个数据帧应当处于的缓存区的区号,寄存器PreqBufReg、寄存器PresBufReg、寄存器SdoBufReg分别用于保存当前Preq帧、Pres帧、SDO帧所在的缓存区区号。
4.如权利要求3所述的系统,其特征在于,所述数据帧缓存管理模块具体用于:
当系统复位或者最近数据帧接收完毕之后,首先将NextRxBufReg的值赋给CurRxBufReg;
根据数据帧类型检测模块提供的结果,更新PreqBufReg,PresBufReg,SdoBufReg中的数值:如果帧类型为Preq,则将CurRxBufReg的值赋给CurRxBufReg;如果帧类型为Pres,则将CurRxBufReg的值赋给PresBufReg;如果帧类型为Sdo,则将CurRxBufReg的值赋给SdoBufReg;如果帧类型不属于上述三种类型的任意一种,则不进行PreqBufReg,PresBufReg,SdoBufReg的更新;
在上述三种寄存器的值更新完成之后,更新NextRxBufReg中的数值,NextRxBufReg的取值为所有的帧缓存区区号当中,不存在于PreqBufReg,PresBufReg,SdoBufReg三个缓存区中的所有区号中,数值最小的区号。
5.如权利要求3所述的系统,其特征在于,RAM被分为若干个帧缓存区,每个缓存区有两种状态,锁定和解锁,处于锁定状态的缓存区无法接收数据帧,只能被读取;处于解锁状态的缓存区可以被任意读写,缓存区的状态由数据帧缓存管理模块确定,系统复位之后,所有缓存区的状态均为解锁状态。
6.如权利要求5所述的系统,其特征在于,PreqBufReg、PresBufReg、SdoBufReg中保存的是当前被锁定的缓存区的序号,如果为0,表示当前没有缓存区被锁定,如果某一缓存区的序号不在这三个寄存器当中,表明该缓存区没有被锁定,系统复位后,CurRxBufReg中的值为1,NextRxBufReg中的值为1,PreqBufReg、PresBufReg、SdoBufReg中的值为0。
7.如权利要求3所述的系统,其特征在于,在系统复位之后,第一次接收到的数据帧存放在缓存区1,之后接收到的数据帧的存储位置由数据帧缓存管理模块决定,如果当前接收到的数据帧的类型为Preq帧,或者Pres帧,或者Sdo帧,则相应的,PreqBufReg,PresBufReg,SdoBufReg中的值变为当前数据帧缓存区的值,同时NextRxBufReg中的值为为所有未被锁定的缓存区中,序号最小的缓存区的序号,下一个数据帧的存储位置,即为NextRxBufReg中的数值所代表的缓存区。
8.如权利要求5所述的系统,其特征在于,缓存区的总数为所有与该从站进行交叉通信的从站的数量加2。
CN201510577314.2A 2015-09-11 2015-09-11 一种基于fpga的powerlink从站帧缓存管理系统 Active CN105162786B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510577314.2A CN105162786B (zh) 2015-09-11 2015-09-11 一种基于fpga的powerlink从站帧缓存管理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510577314.2A CN105162786B (zh) 2015-09-11 2015-09-11 一种基于fpga的powerlink从站帧缓存管理系统

Publications (2)

Publication Number Publication Date
CN105162786A true CN105162786A (zh) 2015-12-16
CN105162786B CN105162786B (zh) 2018-05-22

Family

ID=54803540

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510577314.2A Active CN105162786B (zh) 2015-09-11 2015-09-11 一种基于fpga的powerlink从站帧缓存管理系统

Country Status (1)

Country Link
CN (1) CN105162786B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108306835A (zh) * 2018-01-23 2018-07-20 中国航空工业集团公司洛阳电光设备研究所 一种以太网交换机的输入缓存结构及数据转发方法
CN109347957A (zh) * 2018-10-22 2019-02-15 北京广利核系统工程有限公司 基于fpga的通信数据存储管理方法、装置及环网板卡
CN112383458A (zh) * 2020-10-28 2021-02-19 交控科技股份有限公司 一种响应式通信方法及系统
CN112631809A (zh) * 2020-12-30 2021-04-09 西安云维智联科技有限公司 一种基于fpga的周期消息接收缓存方法
CN112835840A (zh) * 2021-02-07 2021-05-25 深圳市英威腾交通技术有限公司 一种串行通信系统
CN114756179A (zh) * 2022-06-13 2022-07-15 武汉杰开科技有限公司 基于模拟eeprom的数据写入、读取及管理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103448062A (zh) * 2013-08-19 2013-12-18 电子科技大学 一种基于Powerlink的机器人控制方法
CN103823760A (zh) * 2014-03-03 2014-05-28 山西科泰微技术有限公司 一种高效的数据存储和解析方法
CN103929371A (zh) * 2013-01-15 2014-07-16 欧姆龙株式会社 控制装置及控制方法
CN104780019A (zh) * 2014-12-03 2015-07-15 中国航天科工集团第三研究院第八三五七研究所 光纤通信数据的存储方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103929371A (zh) * 2013-01-15 2014-07-16 欧姆龙株式会社 控制装置及控制方法
CN103448062A (zh) * 2013-08-19 2013-12-18 电子科技大学 一种基于Powerlink的机器人控制方法
CN103823760A (zh) * 2014-03-03 2014-05-28 山西科泰微技术有限公司 一种高效的数据存储和解析方法
CN104780019A (zh) * 2014-12-03 2015-07-15 中国航天科工集团第三研究院第八三五七研究所 光纤通信数据的存储方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108306835A (zh) * 2018-01-23 2018-07-20 中国航空工业集团公司洛阳电光设备研究所 一种以太网交换机的输入缓存结构及数据转发方法
CN109347957A (zh) * 2018-10-22 2019-02-15 北京广利核系统工程有限公司 基于fpga的通信数据存储管理方法、装置及环网板卡
CN112383458A (zh) * 2020-10-28 2021-02-19 交控科技股份有限公司 一种响应式通信方法及系统
CN112383458B (zh) * 2020-10-28 2022-02-08 交控科技股份有限公司 一种响应式通信方法及系统
CN112631809A (zh) * 2020-12-30 2021-04-09 西安云维智联科技有限公司 一种基于fpga的周期消息接收缓存方法
CN112835840A (zh) * 2021-02-07 2021-05-25 深圳市英威腾交通技术有限公司 一种串行通信系统
CN114756179A (zh) * 2022-06-13 2022-07-15 武汉杰开科技有限公司 基于模拟eeprom的数据写入、读取及管理方法

Also Published As

Publication number Publication date
CN105162786B (zh) 2018-05-22

Similar Documents

Publication Publication Date Title
CN105162786A (zh) 一种基于fpga的powerlink从站帧缓存管理系统
CN109510780B (zh) 流控方法、交换芯片及网络设备
CN100477633C (zh) 改善无线网络中的服务质量的方法
RU2487483C2 (ru) Способ и фильтрующее устройство для фильтрации сообщений, поступающих абоненту коммуникационной сети по последовательной шине данных этой сети
JPH04243347A (ja) 通信制御装置
CN105278918B (zh) 寄存器的读取方法和采用该读取方法的寄存器
CN112312378B (zh) 运营商网络的共享方法、装置和核心网设备
CN110177010B (zh) 一种链路切换方法及装置
US20030056073A1 (en) Queue management method and system for a shared memory switch
CN102055641A (zh) 一种虚拟局域网的分配方法以及相关装置
CN103595566A (zh) 一种检测空闲ip地址的方法及装置
CN106604286A (zh) 一种基于虚拟化网络架构的LTE‑U与WiFi非授权频段共存自适应信道接入方法
CN108337286A (zh) 一种切包方法及装置
CN113836048A (zh) 一种基于fpga内存动态分配的数据交换方法及装置
CN113645140B (zh) 报文的统计方法、装置、存储介质及网络设备
JP2010517396A (ja) ネットワークコンポーネント、このようなネットワークコンポーネントを作動させるための方法、このようなネットワークコンポーネントを有する自動化システム、このようなネットワークコンポーネントを用いて自動化システム内でデータ通信するための方法、対応するコンピュータプログラム、およびコンピュータプログラム製品
CN113068161B (zh) 一种蓝牙低能耗通信方法、装置、系统及存储介质
CN111315026B (zh) 信道的选择方法、装置、网关及计算机可读存储介质
CN113328948B (zh) 资源管理方法、装置、网络设备及计算机可读存储介质
CN104683265A (zh) 一种用于100g接口的大容量精确包计数方法
CN114024844A (zh) 数据调度方法、数据调度装置及电子设备
CN111384997B (zh) C-hpav系统的节能方法、存储介质、及电子设备
CN113918504A (zh) 一种隔离组的实现方法及装置
CN109308180B (zh) 缓存拥塞的处理方法及处理装置
JP2000299686A (ja) スケジューリング装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant