CN117749866A - 基于fpga的多通道独立流控aurora通信中间件及其数据收发方法 - Google Patents
基于fpga的多通道独立流控aurora通信中间件及其数据收发方法 Download PDFInfo
- Publication number
- CN117749866A CN117749866A CN202311762563.XA CN202311762563A CN117749866A CN 117749866 A CN117749866 A CN 117749866A CN 202311762563 A CN202311762563 A CN 202311762563A CN 117749866 A CN117749866 A CN 117749866A
- Authority
- CN
- China
- Prior art keywords
- data
- flow control
- receiving
- aurora
- packet
- 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.)
- Pending
Links
- 239000005441 aurora Substances 0.000 title claims abstract description 62
- 238000004891 communication Methods 0.000 title claims abstract description 39
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000005540 biological transmission Effects 0.000 claims abstract description 13
- 230000003247 decreasing effect Effects 0.000 claims description 4
- 230000000903 blocking effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于网络通信技术领域,具体公开了基于FPGA的多通道独立流控AURORA通信中间件及其数据收发方法,其中基于FPGA的多通道独立流控AURORA通信中间件,包括1‑N个用户逻辑发送通道、1‑N个用户逻辑接收通道、一个aurora收发控制器、一个AXIS数据发送仲裁单元、一个AXIS数据接收分发单元。本发明可以将多个通道的用户数据通过一个aurora总线控制器进行传输,同时又做到各个通道的数据收发互不影响;具备超大带宽、低延迟、高可靠的特点,能满足用户多路数据的独立收发;对于关键数据,还可以采用配置通道优先级的方式来确保传输的实时性。
Description
技术领域
本发明涉及网络通信技术领域,特别涉及基于FPGA的多通道独立流控AURORA通信中间件及其数据收发方法。
背景技术
aurora总线作为一种高速串行总线在板间通信领域发挥着重要的作用。与RapidIO总线类似,有着大带宽、低延迟的优点。而且基于FPGA的aurora总线控制器IP还具有用户接口简单的特点,因此在信号采集领域有着广泛的应用。但该总线控制器也有一些缺点:首先,aurora总线控制器不具备流量控制功能,即在传输数据过程中,若接收端接收能力不足,控制器无法对发送端进行流量控制,由此导致数据丢失。其次,aurora总线控制器只包含收发各一个通道,用户无法同时对多路数据同时进行收发。因此基于aurora总线控制器开发的aurora通信中间件都存在上述两个问题。
针对现有aurora通信中间件无法流控的问题,用户往往采用自定义握手协议来解决这类问题,具体方法如下:发送端发出一个数据包,计数器加一,收到一个接收端返回的响应包,计数器减一,当计数器的值大于预设的流控阈值时,则发送端不再发送数据。
针对现有aurora通信中间件无多通道传输能力的问题,用户往往采用分时复用的方式来解决此类问题,具体方法如下:发送通道将发送带宽切成多个时间片,单个时间片只传输单个用户逻辑通道的数据,多个时间片传输多个用户逻辑通道的数据。
但若要在满足流量控制的基础上同时收发多个逻辑通道的数据,则上述方法存在问题:如图1所示,若某个时间片中传输的数据出现流控而堵塞,则后续时间片上的数据无法再发送,即一个逻辑通道堵塞会导致所有逻辑通道的堵塞。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成本领域普通技术人员已知的现有技术的信息。
发明内容
本发明的目的是为了解决背景技术存在的技术问题,为此,提供了基于FPGA的多通道独立流控AURORA通信中间件及其数据收发方法。
为了实现上述目的,本发明所采用的技术方案如下:
基于FPGA的多通道独立流控AURORA通信中间件,包括1-N个用户逻辑发送通道、1-N个用户逻辑接收通道、一个aurora收发控制器、一个AXIS数据发送仲裁单元、一个AXIS数据接收分发单元;
每个用户逻辑发送通道包含一个可容纳8个256字节包的输入输出队列、一个发送流控单元、一个发送组包单元;
每个用户逻辑接收通道包含一个可容纳8个256字节包的输入输出队列、一个接收流控单元、一个接收解包单元;
AXIS数据发送仲裁单元根据各个通道的优先级将组好的数据包以AXIS数据流的方式发送到aurora总线控制器上;
AXIS数据接收分发单元根据aurora总线控制器上收到AXIS数据流中的dest字段将数据包分发到不同的接收通道;
Aurora总线控制器采用FPGA厂商提供的接口IP核,根据用户带宽需求配置不同的链路速率。
基于FPGA的多通道独立流控AURORA通信中间件的数据收发方法,用于实现上述的多通道独立流控AURORA通信中间件的数据收发,包括基于FPGA的多通道独立流控AURORA通信中间件的数据发送方法和基于FPGA的多通道独立流控AURORA通信中间件的数据接收方法。
以下为本发明中数据收发方法进一步限定的技术方案,基于FPGA的多通道独立流控AURORA通信中间件的数据发送方法,包括以下步骤:
对于单个用户逻辑发送通道,首先将用户需要发送的数据分包,每个包的包长小于等于256字节,将分好的数据包写入发送队列,队列至多容纳8个数据包;
然后发送组包单元将数据包按格式组成事务包,发送到AXIS总线上;
最后发送流控管理单元检测该发送通道上每发出一个事务包则流控计数值加一,每收到一个响应包则流控计数值减一;
当流控计数值达到8时,发送组包单元停止组包发送,当流控计数值小于8时,发送组包单元继续组包发送。
以下为本发明中数据收发方法进一步限定的技术方案,基于FPGA的多通道独立流控AURORA通信中间件的数据接收方法,包括以下步骤:
对于单个用户逻辑接收通道,首先将aurora总线控制器上收到的事务包写入接收队列,队列至多容纳8个事务包;
然后接收解包单元将事务包解包,将裸数据取出发送到用户接收端口;
最后接收流控管理单元监测用户接收端口是否取走接收队列中的数据包,用户每取走一个事务包,则发出一个响应包到aurora总线控制器上。
相对于现有技术,本发明具有如下技术效果:
本发明可以将多个通道的用户数据通过一个aurora总线控制器进行传输,同时又做到各个通道的数据收发互不影响;具备超大带宽、低延迟、高可靠的特点,能满足用户多路数据的独立收发;对于关键数据,还可以采用配置通道优先级的方式来确保传输的实时性。
下面结合附图与实施例,对本发明进一步说明。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术的通信中间件的原理框图;
图2是本发明中多通道独立流控AURORA通信中间件的原理框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施例的限制。
如图2所示,提供基于FPGA的多通道独立流控AURORA通信中间件,包括1-N个用户逻辑发送通道、1-N个用户逻辑接收通道、一个aurora收发控制器、一个AXIS数据发送仲裁单元、一个AXIS数据接收分发单元.
每个用户逻辑发送通道包含一个可容纳8个256字节包的输入输出队列、一个发送流控单元、一个发送组包单元。
每个用户逻辑接收通道包含一个可容纳8个256字节包的输入输出队列、一个接收流控单元、一个接收解包单元。
AXIS数据发送仲裁单元根据各个通道的优先级将组好的数据包以AXIS数据流的方式发送到aurora总线控制器上。
AXIS数据接收分发单元根据aurora总线控制器上收到AXIS数据流中的dest字段将数据包分发到不同的接收通道。
Aurora总线控制器采用FPGA厂商提供的接口IP核,根据用户带宽需求配置不同的链路速率。
基于FPGA的多通道独立流控AURORA通信中间件的数据收发方法,用于实现多通道独立流控AURORA通信中间件的数据收发,包括基于FPGA的多通道独立流控AURORA通信中间件的数据发送方法和基于FPGA的多通道独立流控AURORA通信中间件的数据接收方法。
基于FPGA的多通道独立流控AURORA通信中间件的数据发送方法,包括以下步骤:
对于单个用户逻辑发送通道,首先将用户需要发送的数据分包,每个包的包长小于等于256字节,将分好的数据包写入发送队列,队列至多容纳8个数据包;
然后发送组包单元将数据包按格式组成事务包,发送到AXIS总线上;
最后发送流控管理单元检测该发送通道上每发出一个事务包则流控计数值加一,每收到一个响应包则流控计数值减一;
当流控计数值达到8时,发送组包单元停止组包发送,当流控计数值小于8时,发送组包单元继续组包发送。
基于FPGA的多通道独立流控AURORA通信中间件的数据接收方法,包括以下步骤:
对于单个用户逻辑接收通道,首先将aurora总线控制器上收到的事务包写入接收队列,队列至多容纳8个事务包;
然后接收解包单元将事务包解包,将裸数据取出发送到用户接收端口;
最后接收流控管理单元监测用户接收端口是否取走接收队列中的数据包,用户每取走一个事务包,则发出一个响应包到aurora总线控制器上。
由于每个发送通道的流控值小于8,因此每个通道至多有7个事务包出现在AURORA总线上,而每个接收通道都能至少容纳8个事务包,因此不会有任何一个通道的事务包长期驻留aurora总线控制器而导致通信堵塞。
在数字信号处理领域,往往需要将前端数据采集板收到的数据通过高速总线发送给后端的处理板,而后端处理板也需要将各类配置信息通过一种可靠的通信方式发送给前端的采集板。通过本发明,可以将多个通道的用户数据通过一个aurora总线控制器进行传输,同时又做到各个通道的数据收发互不影响;具备超大带宽、低延迟、高可靠的特点,能满足用户多路数据的独立收发;对于关键数据,还可以采用配置通道优先级的方式来确保传输的实时性。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。故凡是未脱离本发明技术方案的内容,依据本发明之形状、构造及原理所作的等效变化,均应涵盖于本发明的保护范围内。
Claims (4)
1.基于FPGA的多通道独立流控AURORA通信中间件,其特征在于,包括1-N个用户逻辑发送通道、1-N个用户逻辑接收通道、一个aurora收发控制器、一个AXIS数据发送仲裁单元、一个AXIS数据接收分发单元;
每个用户逻辑发送通道包含一个可容纳8个256字节包的输入输出队列、一个发送流控单元、一个发送组包单元;
每个用户逻辑接收通道包含一个可容纳8个256字节包的输入输出队列、一个接收流控单元、一个接收解包单元;
AXIS数据发送仲裁单元根据各个通道的优先级将组好的数据包以AXIS数据流的方式发送到aurora总线控制器上;
AXIS数据接收分发单元根据aurora总线控制器上收到AXIS数据流中的dest字段将数据包分发到不同的接收通道;
Aurora总线控制器采用FPGA厂商提供的接口IP核,根据用户带宽需求配置不同的链路速率。
2.基于FPGA的多通道独立流控AURORA通信中间件的数据收发方法,用于实现权利要求1所述的多通道独立流控AURORA通信中间件的数据收发,其特征在于,包括基于FPGA的多通道独立流控AURORA通信中间件的数据发送方法和基于FPGA的多通道独立流控AURORA通信中间件的数据接收方法。
3.根据权利要求2所述的基于FPGA的多通道独立流控AURORA通信中间件的数据收发方法,其特征在于,基于FPGA的多通道独立流控AURORA通信中间件的数据发送方法,包括以下步骤:
对于单个用户逻辑发送通道,首先将用户需要发送的数据分包,每个包的包长小于等于256字节,将分好的数据包写入发送队列,队列至多容纳8个数据包;
然后发送组包单元将数据包按格式组成事务包,发送到AXIS总线上;
最后发送流控管理单元检测该发送通道上每发出一个事务包则流控计数值加一,每收到一个响应包则流控计数值减一;
当流控计数值达到8时,发送组包单元停止组包发送,当流控计数值小于8时,发送组包单元继续组包发送。
4.根据权利要求2所述的基于FPGA的多通道独立流控AURORA通信中间件的数据收发方法,其特征在于,基于FPGA的多通道独立流控AURORA通信中间件的数据接收方法,包括以下步骤:
对于单个用户逻辑接收通道,首先将aurora总线控制器上收到的事务包写入接收队列,队列至多容纳8个事务包;
然后接收解包单元将事务包解包,将裸数据取出发送到用户接收端口;
最后接收流控管理单元监测用户接收端口是否取走接收队列中的数据包,用户每取走一个事务包,则发出一个响应包到aurora总线控制器上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311762563.XA CN117749866A (zh) | 2023-12-19 | 2023-12-19 | 基于fpga的多通道独立流控aurora通信中间件及其数据收发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311762563.XA CN117749866A (zh) | 2023-12-19 | 2023-12-19 | 基于fpga的多通道独立流控aurora通信中间件及其数据收发方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117749866A true CN117749866A (zh) | 2024-03-22 |
Family
ID=90252330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311762563.XA Pending CN117749866A (zh) | 2023-12-19 | 2023-12-19 | 基于fpga的多通道独立流控aurora通信中间件及其数据收发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117749866A (zh) |
-
2023
- 2023-12-19 CN CN202311762563.XA patent/CN117749866A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1454440B1 (en) | Method and apparatus for providing optimized high speed link utilization | |
US6167029A (en) | System and method for integrated data flow control | |
US6029202A (en) | Full duplex flow control for ethernet networks | |
JP4732594B2 (ja) | 複数ギガビットイーサネット(r)アーキテクチャの方法および装置 | |
US5875175A (en) | Method and apparatus for time-based download control | |
US9007902B1 (en) | Method and apparatus for preventing head of line blocking in an Ethernet system | |
US7301906B2 (en) | Methods and structures for improved buffer management and dynamic adaption of flow control status in high-speed communication networks | |
US6026075A (en) | Flow control mechanism | |
US7209445B2 (en) | Method and system for extending the reach of a data communication channel using a flow control interception device | |
US6295281B1 (en) | Symmetric flow control for ethernet full duplex buffered repeater | |
AU2004311714B2 (en) | Apparatus and method for improved Fibre Channel oversubscription over transport | |
US6198722B1 (en) | Flow control method for networks | |
EP2184890B1 (en) | Method and system for control of energy efficiency and associated policies in a physical layer device | |
US20100188980A1 (en) | Explicit Flow Control in a Gigabit/10 Gigabit Ethernet System | |
US8311054B2 (en) | Transmitting/receiving system, node and communication method | |
Kunzman et al. | 1394 high performance serial bus: The digital interface for ATV | |
US11563521B2 (en) | Method and apparatus for port channelization at physical layer | |
WO2006044726A2 (en) | System packet interface packet exchange for queue concatenation and logical identification | |
EP0685951B1 (en) | Line interface devices for fast-packet networks | |
EP1302011A1 (en) | Media access control for isochronous data packets in carrier sensing multiple access systems | |
CN117749866A (zh) | 基于fpga的多通道独立流控aurora通信中间件及其数据收发方法 | |
US10505855B2 (en) | Use of primitives to notify of slow drain condition | |
EP1158735A1 (en) | TDMA bus interface, system for communicating data, and method | |
EP1434399B1 (en) | Efficient per-queue backpressure signaling | |
US20040004974A1 (en) | Method and system for optimizing the design of a network controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |