CN116094853A - 一种船舶应用网卡架构及实现方法 - Google Patents
一种船舶应用网卡架构及实现方法 Download PDFInfo
- Publication number
- CN116094853A CN116094853A CN202111304122.6A CN202111304122A CN116094853A CN 116094853 A CN116094853 A CN 116094853A CN 202111304122 A CN202111304122 A CN 202111304122A CN 116094853 A CN116094853 A CN 116094853A
- Authority
- CN
- China
- Prior art keywords
- data
- ethernet
- network card
- upper computer
- pcie
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000006854 communication Effects 0.000 claims abstract description 42
- 238000004891 communication Methods 0.000 claims abstract description 41
- 230000005540 biological transmission Effects 0.000 claims abstract description 39
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 239000013078 crystal Substances 0.000 claims description 6
- 238000000638 solvent extraction Methods 0.000 claims description 6
- 230000003068 static effect Effects 0.000 claims description 3
- 230000002457 bidirectional effect Effects 0.000 claims description 2
- 238000013404 process transfer Methods 0.000 claims description 2
- 238000005265 energy consumption Methods 0.000 abstract description 15
- 238000013461 design Methods 0.000 abstract description 12
- 238000012545 processing Methods 0.000 description 29
- 238000004364 calculation method Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 19
- 230000001360 synchronised effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000011282 treatment Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
- G06F13/423—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with synchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7814—Specially adapted for real time processing, e.g. comprising hardware timers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7825—Globally asynchronous, locally synchronous, e.g. network on chip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/22—Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Communication Control (AREA)
Abstract
本发明属于船舶能耗管理系统内部通信领域,具体公开一种船舶应用以太网卡的硬件架构及实现方法,将船舶能耗管理系统设备节点的网络收发功能从节点设备应用层功能中独立出来,设计出一块带有PCIE接口的网卡,利用双冗余以太网与外部各节点进行通信,利用PCIE总线与节点内上位机进行数据传输,释放节点上位机网络数据收发、调度过程的资源开销,极大地减轻上位机应用程序的运算压力,提高应用层功能运行的可靠性和稳定性;采用双网口冗余的设计方式,可以提高节点与其他节点通信过程中数据的可靠性;基于标准PCIE总线协议与节点内部上位机和其他板卡进行数据传输,提高了网卡的兼容性。
Description
技术领域
本发明属于船舶能耗管理系统内部通信领域,是为了减轻船舶能耗管理系统节点设备应用层计算开销,提高节点设备运行稳定性和可靠性而开发的一种船舶应用以太网卡的硬件架构及数据传输方法。
背景技术
随着船舶自动化程度的日益提高,越来越多的设备需要相应的能源供给才能正常工作,船舶的节能需求也越来越明显,船舶能耗管理系统各设备节点的应用层需要完成数据采集、设备能耗监测、船舶综合航行监测以及能耗分析与优化等工作。然而船舶内部的设备节点数目日趋增多,使系统内通信网络上的数据流量越来越庞大,为提高网络数据的实时性和可靠性,在通信网络中需要加入一些实时调度、冗余容错等策略手段,这些策略手段大大提高了各节点设备网络收发功能的复杂程度,对节点设备的计算能力提出更高的要求,甚至会对节点设备能耗计算、节能控制等其他功能的正常运行造成影响,对船舶能耗管理系统各节点设备应用层功能的稳定性和可靠性带来更大的挑战。
为此,本发明设计一种带有PCIE接口的船舶应用以太网卡,将设备节点的网络收发功能独立出来,设计成下位机,在节点内部通过PCIE总线与上位机或其他板卡进行数据传输,如图2所示,这样极大地减轻了节点上位机应用程序的计算压力,降低节点应用层功能运行出错的可能性。本发明基于PCIE总线协议设计一种网卡与上位机之间数据传输时的握手方式,避免双方同时对数据缓存区进行读写,提高上位机和网卡之间数据传输的效率。
发明内容
针对上述问题,本发明的目的是本发明设计一种带有PCIE接口的船舶应用以太网卡,释放节点设备应用程序在网络调度、收发过程中的计算开销,降低节点应用层处理出错的可能性,并基于PCIE总线协议设计一种网卡与上位机之间数据传输时的握手方式,避免双方同时对数据缓存区进行读写,提高数据传输的效率。
为了实现上述目的,本发明采取的技术方案是:一种船舶应用网卡架构,包括:
主控模块,用于通过以太网接口模块,实现与外部节点之间以太网通信的报文接收、报文识别、报文组装、报文调度发送,控制存储模块内DDR内存芯片中数据的读取与写入,以协助完成基于PCIE协议与本节点内上位机或其他下位机之间的数据传输;
以太网接口模块,用于完成接收和发送以太网报文,完成以太网数据物理层与数据链路层之间的转换,以实现本节点与外部各节点之间的通信;
PCIE通信接口模块,用于完成PCIE数据包的数据传输,实现节点内部主控模块与上位机、以及其他PCIE卡之间的数据传输;
存储模块,用于缓存网卡与上位机要进行交换的数据、存储网卡自身的节点配置信息以及存放网卡工作时所需要的程序与数据。
所述主控模块采用ARM+FPGA的异构片上系统作为主控芯片,用于实现对存储模块内DDR存储芯片读写的控制,以及完成对PCIE数据包的组装和解析。
所述主控模块设有两路独立的晶振时钟源输入,其中一路作为系统时钟源,为主控芯片提供时钟基准,另一路为125M的时钟晶振,该晶振用于主控芯片进行时钟同步。
所述以太网接口模块包括两路RJ45以太网接口和两块以太网物理层芯片;
网络数据接收过程中,所述RJ45以太网接口,用于从网络中接收到以太网报文;所述以太网物理层芯片,用于完成以太网报文从以太网物理层到数据链路层的转换,并通过RGMII接口发送到主控模块;
在网络数据发送过程中,所述以太网物理层芯片,用于通过RGMII接口接收主控模块的报文,并完成以太网数据链路层到物理层的转换,再经由RJ45以太网接口发送到网络中。
所述PCIE通信接口模块,用于完成上位机或其他PCIE卡与网卡内的主控模块的双向数据传输。
所述存储模块包括DDR3存储芯片和FLASH芯片;
所述DDR3存储芯片,用于通过静态分配在DDR内开辟空间并进行分区,缓存通过PCIE通信接口进行收发的数据,以使主控模块通过并行总线完成对DDR3存储芯片数据读写操作;
所述FLASH芯片,用于存放网卡节点的配置信息,以供主控模块在上电后通过QSPI总线读取配置信息完成网卡的初始化。
一种船舶应用网卡架构实现方法,包括以下步骤:
DDR内存分区:在初始化过程中,在存储模块的DDR3存储芯片中静态开辟一段空间,并进行分区,分为数据缓存区和控制寄存器区,其中数据缓存区又分为发送数据缓存区和接收数据缓存区;
报文接收:通过以太网接口模块从网络中接收以太网报文到主控模块,主控模块识别上位机需要的数据,放入主控模块内的缓冲区,等待上位机通过PCIE总线从DDR3存储芯片接收数据缓存区将之前的数据取出,并通过PCIE中断以及触发DDR3存储芯片的控制寄存器区的握手位,将DDR3存储芯片接收数据缓存区的控制权交给网卡端的主控模块后,主控模块将缓冲区的数据放入到DDR3存储芯片接收数据缓存区,修改控制寄存器区的握手位数值,并触发上位机的PCIE中断,将DDR3存储芯片接收数据缓冲区控制权交还给上位机;
报文发送:上位机将需要发送的数据通过PCIE总线,写入DDR3存储芯片的发送缓存区,修改控制寄存器区的数值,触发网卡端PCIE中断,将控制权交给网卡的主控模块,网卡的主控模块将数据从DDR内存的发送缓存区取出,放入片内缓冲区,修改DDR3存储芯片控制寄存器区的数值,并触发上位机的PCIE中断,把将DDR3存储芯片发送数据缓冲区的控制权交还给上位机,最后将发送数据缓冲区的数据组成以太网报文通过以太网接口模块发送到网络中。
所述DDR3存储芯片在初始化过程中进行分区处理,划分出不同的功能区,将接收到的数据和待发送的数据分开缓存,并设有存放握手位数值的控制寄存器区,使上位机和主控模块通过查看控制寄存器区的数值确定DDR3存储芯片数据缓存区控制权的归属。
所述数据传输过程中的握手机制通过触发中断和修改DDR3存储芯片控制寄存器区握手位的数值,移交对应DDR3存储芯片数据缓存区的控制权,使上位机和网卡双方明确在当前时刻是否可以读写数据缓存区。
本发明的优势如下:
1)将节点的网络通信功能从整个节点的应用层功能中独立出来,设计成下位机,完成网络收发过程的调度、冗余容错等处理,极大的减轻了节点应用层功能的计算压力;
2)采用PCIE2.0 x4标准接口,最高通信速率可达5Gbps,通信速率高,可以接入通用PCIE插槽,与上位机和板卡进行数据通信,有利于提高网卡的兼容性;
3)节点设备可以通过PCIE接口扩展增加具备其他功能的板卡,提高节点设备功能的可扩展性;
4)设计了双网口冗余电路,可以支持网卡进行冗余/丢弃处理,提高网络通信的可靠性;
5)网卡设计有一路高精度的时钟晶振源,支持网卡基于PTPv2等协议实现高精度同步功能。
6)DDR内存进行分区处理,划分出不同的功能区,可以将接收到的数据和待发送的数据分开缓存,并设计了存放握手位数值的控制寄存器区,上位机和网卡可以通过查看控制寄存器区的数值确定DDR数据缓存区控制权的归属。
7)基于PCIE总线协议,设计了上位机和网卡之间数据传输时严格的握手制度,可以通过中断以及读写握手标志位的方法,移交数据缓存区的控制权,可以提高数据传输的效率,同时避免双方同时对数据缓存区进行读写,造成数据丢失或错误。
附图说明
图1是船舶能源系统各节点通信拓扑架构示意图;
图2是通信节点内部组成示意图;
图3是网卡与上位机数据传输接收报文过程示意图;
图4是网卡与上位机数据传输发送报文过程示意图;
图5是船舶能耗管理系统节点设备内部组成示意图;
图6是本发明的硬件架构及片上系统设计图。
具体实施方式
下面结合附图本发明具体实施方式作进一步的说明。
本发明将船舶能耗管理系统设备节点的网络收发功能从节点设备应用层功能中独立出来,设计出一块带有PCIE接口的网卡,利用双冗余以太网与外部各节点进行通信,利用PCIE总线与节点内上位机进行数据传输,释放节点上位机网络数据收发、调度过程的资源开销,极大地减轻上位机应用程序的运算压力,提高应用层功能运行的可靠性和稳定性;采用双网口冗余的设计方式,可以提高节点与其他节点通信过程中数据的可靠性;基于标准PCIE总线协议与节点内部上位机和其他板卡进行数据传输,提高了网卡的兼容性;对网卡的存储模块进行分区,设计一种网卡与上位机之间数据传输时的高效、严谨的握手方式,避免双方同时对数据缓存区的数据进行读写,保证上位机与网卡之间通信过程的可靠性,提高数据传输的效率。
船舶能耗管理系统的通信拓扑架构如图1所示,船舶应用以太网卡作为设备节点内部的下位机,用于完成船舶能耗管理系统各节点之间的网络通信,利用双以太网口与外部各节点进行通信,利用PCIE接口与上位机进行数据传输,如图2所示。
当网卡主控芯片通过以太网接口模块接收到网络上的数据时,先对双网口数据进行冗余丢弃处理,解析以太网报文,再识别出上位机需要的网络数据,将数据缓存到存储模块的DDR存储芯片中,等待上位机通过PCIE总线进行读取;当上位机有数据需要发送到网络中时,上位机将需要发送的数据通过PCIE总线写入网卡的存储模块的DDR芯片,网卡的主控芯片从DDR芯片中读取将要发送的数据,组成以太网帧,复制两份进行冗余处理,在发送到网络中。这种方式可以将船舶能耗管理系统设备节点应用层功能中的网络收发功能独立出来,解放应用层这方面的资源开销,保证应用层其他功能的稳定运行。本发明的网卡在硬件架构上主要分为4个模块:主控模块、以太网接口模块、PCIE通信接口模块和存储模块。
主控模块:在上电初始化过程中,读取Flash芯片的节点配置信息,控制各模块完成初始化;在网络数据接收过程中,通过以太网接口模块从网络中接收以太网报文,完成以太网报文冗余处理、以太网报文解析、数据识别并通过并行总线将数据缓存入DDR内存芯片;在网络数据发送过程中,从DDR内存芯片中读取待发送的数据,完成以太网报文组装、报文发送调度、报文冗余备份,并通过以太网接口模块将以太网报文发送到网络中去。
以太网接口模块:由两路以太网接口和两块以太网物理层芯片组成,用于完成从网络中接收以太网报文以及将以太网报文发送到网络中,并在以太网报文收发过程中完成以太网数据物理层与数据链路层之间的转换,以实现本节点与外部各节点之间的通信;两路以太网的设计用于对网络中的数据进行冗余备份,提高网络中通信的可靠性。
PCIE通信接口模块:标准的PCIE2.0 x4接口,接收和发送PCIE协议数据包以及PCIE协议指令,完成上位机到网卡的主控芯片之间的双向数据传输,为上位机对网卡的DDR存储芯片的读写建立通道;
存储模块:存储模块由DDR存储芯片和Flash芯片组成,DDR芯片用于缓存网卡与上位机要进行交换的数据,在初始化过程中对DDR芯片进行静态分区,将从网络中接收到的要上传给上位机的数据和上位机待发送到网络中的数分开缓存,并且还要存放网卡工作时所需要的程序与数据;Flash芯片用于存储网卡自身的节点配置信息,以供主控芯片在初始化过程中进行读取并完成配置。
本发明网卡和上位机之间进行数据传输的具体实现方法如下:
1)DDR内存分区:网卡在初始化过程中,在DDR内存中静态开辟一块空间,并进行分区,分为数据缓存区和控制寄存器区,其中数据缓存区又分为发送数据缓存区和接收数据缓存区。
2)报文接收:如图3所示,报文接收过程分为以下6个步骤:
(1)网卡端主控芯片从网络中接收数据,拷贝数据到片内输入缓冲区;
(2)上位机端应用程序通过PCIE总线从DDR芯片接收数据缓存区读取数据;
(3)上位机端应用程序通过PCIE总线触发握手位(PDn_IN_ACK),并触发网卡端中断,将DDR芯片接收数据缓存区控制权交给网卡端;
(4)网卡端主控芯片将数据从片内输入缓冲区拷贝到DDR芯片接收数据缓存区;
(5)网卡端通过PCIE总线触发握手位(PDn_IN_CMD),并触发上位机端中断,将DDR芯片接收数据缓存区控制权传回上位机应用程序;
(6)重复第1步,网卡端从网络接收数据。
3)报文发送:如图4所示,报文发送过程分为以下6个步骤:
(1)网卡端周期发送数据到网络中;
(2)上位机端应用程序发送数据,通过PCIE总线将数据拷贝到DDR芯片发送数据缓存区;
(3)上位机端应用程序通过PCIE总线触发握手位(PDn_OUT_CMD),并触发网卡端中断,将DDR芯片发送数据缓存区控制权交给网卡端;
(4)网卡端主控芯片从DDR芯片发送数据缓存区拷贝数据到片内输出缓冲区;
(5)网卡端通过PCIE总线触发握手位(PDn_OUT_ACK),并触发上位机端中断,将DDR芯片发送数据缓存区控制权传回上位机应用程序;
(6)重复第1步,网卡端周期发送数据到网络中。
本发明网卡和上位机之间基于PCIE协议进行数据传输,双方把需要交换的数据写入网卡的DDR内存芯片的指定空间中,并通过中断和修改DDR内存空间的控制寄存器区的握手位数值来传递内存空间的控制权,通知对方对数据进行读写,提高了双方数据传输的效率,避免了双方同时对同一块内存区域读写而造成的数据的丢失或错误。
本实施例中,主控模块可以采用如下架构,包括:
FPGA端,用于完成上位机和网卡DDR存储芯片之间的地址映射,实现上位机对网卡DDR存储芯片进行寻址并读写数据;对双网口的数据进行处理,实现双网口数据的切换;根据ARM端发送的本节点时钟与主时钟的时差和频差,完成网卡的时钟同步;
ARM端,用于将从以太网接收到的上位机需要的数据写入DDR存储芯片中,并根据上位机指令,将上位机需要发送的数据从DDR中取出并组成以太网报文,在本节点对应的时间片内发送;根据FPGA端记录的时间戳,计算本节点时钟与主时钟的时差和频差,发送至FPGA端。
所述FPGA端包括:
PCIE-DMA模块,用于接收上位机通过PCIE总线向映射的DDR存储芯片地址发送的PCIE数据包并解析,将解析后的数据以DMA方式通过ARM端的DDR控制器写入PCIE协议映射的DDR存储芯片地址,并通过PCIE中断告知ARM端的网络数据收发调度模块有新的数据写入;通过AXI总线获取ARM端网络数据收发调度模块的指令,并触发上位机PCIE中断,以告知上位机DDR存储芯片有新的数据可读取;当接收到上位机通过PCIE总线发送读取数据包的指令后,解析指令,将对应地址的数据通过DMA的方式通过ARM端的DDR控制器从DDR存储芯片中取出,并组装成PCIE数据包发送给上位机;
PRP冗余处理模块,用于在发送以太网报文时,接收经ARM端的以太网MAC控制器组装成的以太网报文,并将待发送的报文复制成两份,并根据PRP冗余算法,在两路以太网报文后分别添加报文序号以及不同的冗余标识后分成两路发出;在接收以太网报文时,对接收到的两路以太网报文的报文序号和冗余标识进行识别,判别两路以太网同序号报文到达的先后顺序,留下先到达的报文,去掉冗余尾后传递给ARM端的以太网MAC控制器;
1588时钟同步模块,用于在接收以太网报文过程中,接收经过PRP冗余处理模块去掉冗余尾后的报文,识别接收到的PTP报文,并根据PTP报文的类型记录相应的时间戳,等待ARM端的同步计算模块读取;在发送以太网报文过程中,接收以太网MAC控制器组装后的以太网报文,识别待发送的PTP报文,并根据PTP报文的类型记录相应的时间戳,等待ARM端的同步计算模块读取;根据ARM端的同步计算模块计算出的时差和频差调整本地时钟的时间和频率,保持与主时钟的同步。
所述1588时钟同步模块记录时间戳的过程在以太网物理层和MAC层之间。
所述ARM端包括:
网络数据收发调度模块,用于通过以太网MAC控制器接收到FPGA端PRP冗余处理模块的以太网报文时,根据以太网报文中的节点号信息,判断是否是上位机所需要的数据,并将需要的数据通过DDR控制器写入DDR存储芯片中,以供上位机读取;当有数据需要发送时,将需要发送的数据从DDR中指定位置取出,加入本身的节点号信息,组成以太网报文,等待本节点对应的周期发送时刻到来,在对应的时间片内,使该以太网报文依次经以太网MAC控制器和PRP冗余处理模块发送出去;在本节点相应的非周期时间段内发送PTPv2协议时钟同步所需要的报文;
同步计算模块,用于在通过以太网MAC控制器接收到以以太网报文时,识别其中PTPv2协议报文,并通过AXI总线从FPGA端1588时钟同步模块读取相应的时间戳,与本地时间进行比较和计算得出时差和频差,通过AXI总线发送给FPGA端1588时钟同步模块。
一种实时以太网卡片上系统架构实现方法,包括以下步骤:
FPGA端完成上位机和网卡DDR存储芯片之间的地址映射,实现上位机对网卡DDR存储芯片进行寻址并读写数据;对双网口的数据进行处理,实现双网口数据的切换;根据ARM端发送的本节点时钟与主时钟的时差和频差,完成网卡的时钟同步;
ARM端将从以太网接收到的上位机需要的数据写入DDR存储芯片中,并根据上位机指令,将上位机需要发送的数据从DDR中取出并组成以太网报文,在本节点对应的时间片内发送;根据FPGA端记录的时间戳,计算本节点时钟与主时钟的时差和频差,发送至FPGA端。
所述FPGA端执行以下步骤:
PCIE-DMA模块接收上位机通过PCIE总线向映射的DDR存储芯片地址发送的PCIE数据包并解析,将解析后的数据以DMA方式通过ARM端的DDR控制器写入PCIE协议映射的DDR存储芯片地址,并通过PCIE中断告知ARM端的网络数据收发调度模块有新的数据写入;通过AXI总线获取ARM端网络数据收发调度模块的指令,并触发上位机PCIE中断,以告知上位机DDR存储芯片有新的数据可读取;当接收到上位机通过PCIE总线发送读取数据包的指令后,解析指令,将对应地址的数据通过DMA的方式通过ARM端的DDR控制器从DDR存储芯片中取出,并组装成PCIE数据包发送给上位机;
PRP冗余处理模块在发送以太网报文时,接收经ARM端的以太网MAC控制器组装成的以太网报文,并将待发送的报文复制成两份,并根据PRP冗余算法,在两路以太网报文后分别添加报文序号以及不同的冗余标识后分成两路发出;在接收以太网报文时,对接收到的两路以太网报文的报文序号和冗余标识进行识别,判别两路以太网同序号报文到达的先后顺序,留下先到达的报文,去掉冗余尾后传递给ARM端的以太网MAC控制器;
1588时钟同步模块接收以太网报文过程中,接收经过PRP冗余处理模块去掉冗余尾后的报文,识别接收到的PTP报文,并根据PTP报文的类型记录相应的时间戳,等待ARM端的同步计算模块读取;在发送以太网报文过程中,接收以太网MAC控制器组装后的以太网报文,识别待发送的PTP报文,并根据PTP报文的类型记录相应的时间戳,等待ARM端的同步计算模块读取;根据ARM端的同步计算模块计算出的时差和频差调整本地时钟的时间和频率,保持与主时钟的同步。
所述ARM端执行以下步骤:
网络数据收发调度模块通过以太网MAC控制器接收到FPGA端PRP冗余处理模块的以太网报文时,根据以太网报文中的节点号信息,判断是否是上位机所需要的数据,并将需要的数据通过DDR控制器写入DDR存储芯片中,以供上位机读取;当有数据需要发送时,将需要发送的数据从DDR中指定位置取出,加入本身的节点号信息,组成以太网报文,等待本节点对应的周期发送时刻到来,在对应的时间片内,使该以太网报文依次经以太网MAC控制器和PRP冗余处理模块发送出去;在本节点相应的非周期时间段内发送PTPv2协议时钟同步所需要的报文;
同步计算模块在通过以太网MAC控制器接收到以以太网报文时,识别其中PTPv2协议报文,并通过AXI总线从FPGA端1588时钟同步模块读取相应的时间戳,与本地时间进行比较和计算得出时差和频差,通过AXI总线发送给FPGA端1588时钟同步模块。
实时以太网卡应用于船舶能耗管理系统各节点设备中,如图5所示,网卡用于实现节点设备与系统中其他各节点设备的实时以太网通信,并通过PCIE总线与上位机和其他板卡进行数据通信。本发明选ARM+FPGA异构片上系统(SOC)作为实时以太网卡的主控芯片,利用片上系统FPGA端完成基于PCIE协议实现网卡DDR存储芯片与上位机的地址映射、双网冗余处理以及IEEE1588高精度同步功能,在片上系统ARM端完成网络通信的调度计算和时钟同步计算。这样的实时以太网卡的片上系统设计,利用片上系统FPGA端并行且高速处理的优势,节约片上系统ARM端的软件开销,使得ARM端有更多的软件资源去完成实时以太网协议栈的调度,缩短实时以太网各节点在通信宏周期中占用时间片的时间,提高船舶能源系统内部网络中通信的效率和吞吐率,提高网络中数据的实时性;用片上系统内部总线完成ARM端和FPGA端之间的通信,使二者之间的通信更加高效可靠。本发明重点基于片上系统进行了FPGA和ARM两部分的设计开发,片上系统总体架构如图6所示。
FPGA端,用于实现双网口的冗余处理、时钟同步以及与上位机之间进行数据传输,进行3个模块的设计:PCIE-DMA模块、PRP冗余处理模块和1588时钟同步模块。
PCIE-DMA模块,作为PCIE协议的桥接模块,用于完成网卡DDR存储芯片对上位机存储空间映射,实现上位机直接对网卡的DDR存储芯片的寻址访问以及数据读写。具体的实现过程如下,当上位机需要网卡向网络中发送数据时,上位机通过PCIE总线向映射的DDR存储芯片地址发送数据包,PCIE-DMA模块对接收到的PCIE数据包进行解析,将解析后的数据以DMA方式写入PCIE协议映射的DDR存储芯片地址,并通过PCIE中断告知片上系统的ARM端,有新的数据写入;当网卡从网络中接收到新的数据需要上传给上位机时,片上系统ARM端会通过PCIE-DMA模块触发上位机PCIE中断,告知上位机DDR存储芯片有新的数据可读取,上位机通过PCIE总线发送读取数据包的指令,PCIE-DMA模块解析指令,将对应地址的数据通过DMA的方式从DDR存储芯片中取出,并组装成PCIE数据包发送给上位机。在与上位机的数据传输的整个过程中,PCIE-DMA模块对DDR存储芯片通过DMA的方式进行读写,ARM端网络数据收发调度模块除需在适当时机发送PCIE中断指令外,不需进行任何干预,节省ARM端软件资源开销。
PRP冗余处理模块实现网卡的双以太网口冗余处理功能。在发送以太网报文时,待发送的数据经过片上系统ARM端的以太网MAC控制器组装成以太网报文后进入到PRP冗余处理模块,PRP冗余处理模块把要发送的报文复制成两份,并根据PRP冗余算法,在两路以太网报文后添加报文序号以及不同的冗余标识后分成两路发出;在接收以太网报文时,对接收到的两路以太网报文的报文序号和冗余标识进行识别,判别两路以太网同序号报文到达的先后顺序,留下先到达的报文,去掉冗余尾后传递给片上系统ARM端的以太网MAC控制器。这种冗余处理方式对片上系统ARM端来说是透明的,ARM端无论在发送还是接收以太网报文时,完全不用考虑报文的冗余处理,节约了软件的计算开销。
1588时钟同步模块,以网卡上的高精度晶振作为时钟源设计了一个本地时钟计时器,该计时器作为整个片上系统的时间基准。在网络接收过程中,报文经过PRP冗余处理模块丢帧处理后,旁路进入到1588时钟同步模块,1588时钟同步模块可以识别出接收到的PTP报文,并根据PTP报文的类型记录相应的时间戳;在网络发送过程中,以太网MAC控制器组帧后的报文旁路进入到1588时钟同步模块,1588时钟同步模块可以识别出待发送的PTP报文,并根据PTP报文的类型记录相应的时间戳。1588时钟同步模块记录时间戳的过程在以太网物理层和MAC层之间,这样可以避免因不确定的协议栈延迟而造成的时间戳准确性差的问题。模块可根据片上系统ARM端计算出的时差和频差调整本地时钟的时间和频率,保持与主时钟的同步。
片上系统的ARM端,用于实现网络数据收发的调度,以及计算与主时钟之间的时差和频差,进行了2个模块的设计:网络数据收发调度模块和同步计算模块。
网络数据收发调度模块,在接收到以太网数据帧时,根据以太网帧中的节点号信息,判断是否是上位机所需要的数据,并将需要的数据通过DDR控制器写入DDR存储芯片中,供上位机读取;当有数据需要发送时,网络数据收发调度模块将需要发送的数据从DDR中指定位置取出,加入本身的节点号信息,组成以太网帧,等待本节点对应的周期发送时刻到来,在对应的时间片内通过以太网接口将数据帧发送出去;另外,在本节点相应的非周期时间段内发送PTPv2协议时钟同步所需要的报文。
同步计算模块,在接收到以太网数据帧时,识别其中PTPv2协议协议报文,并从FPGA端1588时钟同步模块读取相应的时间戳,与本地时间进行比较、计算,得出时差和频差,然后将计算结果通过片上系统内部的AXI总线发送给FPGA端1588时钟同步模块。
采用ARM+FPGA的异构片上系统作为主控芯片,发挥FPGA端高速同步计算的优势,降低了ARM端的计算需求,使得ARM端可以缩短通信调度处理的时间,从而可以缩减各节点通信所需的时间片时间,提高网络上通信的效率以及吞吐率。采用ARM+FPGA的异构片上系统作为主控芯片,相比于使用两片独立的ARM芯片和FPGA芯片,利用片上系统片内的AXI总线使ARM端和FPGA端的数据通信更加便捷高效;在片上系统FPGA端设计出PCIE-DMA模块可以实现DDR存储芯片地址对上位机处理器存储空间的直接映射,便于上位机对DDR存储芯片直接进行读写;在片上系统FPGA端设计出PCIE-DMA模块与网卡的DDR存储芯片之间通过DMA方式完成数据读写,数据传输过程不需要ARM端的软件参与,节约片上系统ARM端的软件开销;在片上系统FPGA端设计出PRP冗余处理模块实现双网冗余处理,降低ARM端处理需求的同时,提供网络通信的可靠性;在片上系统FPGA端设计出1588同步模块,在以太网MAC层和PHY层之间获取时间戳,避免软件协议栈的延迟不确定对PTPv2同步计算的精度影响,提高了时钟同步的精度。
Claims (9)
1.一种船舶应用网卡架构,其特征在于,包括:
主控模块,用于通过以太网接口模块,实现与外部节点之间以太网通信的报文接收、报文识别、报文组装、报文调度发送,控制存储模块内DDR内存芯片中数据的读取与写入,以协助完成基于PCIE协议与本节点内上位机或其他下位机之间的数据传输;
以太网接口模块,用于完成接收和发送以太网报文,完成以太网数据物理层与数据链路层之间的转换,以实现本节点与外部各节点之间的通信;
PCIE通信接口模块,用于完成PCIE数据包的数据传输,实现节点内部主控模块与上位机、以及其他PCIE卡之间的数据传输;
存储模块,用于缓存网卡与上位机要进行交换的数据、存储网卡自身的节点配置信息以及存放网卡工作时所需要的程序与数据。
2.根据权利要求1所述的一种船舶应用网卡架构,其特征在于:所述主控模块采用ARM+FPGA的异构片上系统作为主控芯片,用于实现对存储模块内DDR存储芯片读写的控制,以及完成对PCIE数据包的组装和解析。
3.根据权利要求2所述的一种船舶应用网卡架构,其特征在于:所述主控模块设有两路独立的晶振时钟源输入,其中一路作为系统时钟源,为主控芯片提供时钟基准,另一路为125M的时钟晶振,该晶振用于主控芯片进行时钟同步。
4.根据权利要求1所述的一种船舶应用网卡架构,其特征在于:所述以太网接口模块包括两路RJ45以太网接口和两块以太网物理层芯片;
网络数据接收过程中,所述RJ45以太网接口,用于从网络中接收到以太网报文;所述以太网物理层芯片,用于完成以太网报文从以太网物理层到数据链路层的转换,并通过RGMII接口发送到主控模块;
在网络数据发送过程中,所述以太网物理层芯片,用于通过RGMII接口接收主控模块的报文,并完成以太网数据链路层到物理层的转换,再经由RJ45以太网接口发送到网络中。
5.根据权利要求1所述的一种船舶应用网卡架构,其特征在于:所述PCIE通信接口模块,用于完成上位机或其他PCIE卡与网卡内的主控模块的双向数据传输。
6.根据权利要求1所述的一种船舶应用网卡架构,其特征在于:所述存储模块包括DDR3存储芯片和FLASH芯片;
所述DDR3存储芯片,用于通过静态分配在DDR内开辟空间并进行分区,缓存通过PCIE通信接口进行收发的数据,以使主控模块通过并行总线完成对DDR3存储芯片数据读写操作;
所述FLASH芯片,用于存放网卡节点的配置信息,以供主控模块在上电后通过QSPI总线读取配置信息完成网卡的初始化。
7.一种船舶应用网卡架构实现方法,其特征在于,包括以下步骤:
DDR内存分区:在初始化过程中,在存储模块的DDR3存储芯片中静态开辟一段空间,并进行分区,分为数据缓存区和控制寄存器区,其中数据缓存区又分为发送数据缓存区和接收数据缓存区;
报文接收:通过以太网接口模块从网络中接收以太网报文到主控模块,主控模块识别上位机需要的数据,放入主控模块内的缓冲区,等待上位机通过PCIE总线从DDR3存储芯片接收数据缓存区将之前的数据取出,并通过PCIE中断以及触发DDR3存储芯片的控制寄存器区的握手位,将DDR3存储芯片接收数据缓存区的控制权交给网卡端的主控模块后,主控模块将缓冲区的数据放入到DDR3存储芯片接收数据缓存区,修改控制寄存器区的握手位数值,并触发上位机的PCIE中断,将DDR3存储芯片接收数据缓冲区控制权交还给上位机;
报文发送:上位机将需要发送的数据通过PCIE总线,写入DDR3存储芯片的发送缓存区,修改控制寄存器区的数值,触发网卡端PCIE中断,将控制权交给网卡的主控模块,网卡的主控模块将数据从DDR内存的发送缓存区取出,放入片内缓冲区,修改DDR3存储芯片控制寄存器区的数值,并触发上位机的PCIE中断,把将DDR3存储芯片发送数据缓冲区的控制权交还给上位机,最后将发送数据缓冲区的数据组成以太网报文通过以太网接口模块发送到网络中。
8.根据权利要求7所述的一种船舶应用网卡架构实现方法,其特征在于:所述DDR3存储芯片在初始化过程中进行分区处理,划分出不同的功能区,将接收到的数据和待发送的数据分开缓存,并设有存放握手位数值的控制寄存器区,使上位机和主控模块通过查看控制寄存器区的数值确定DDR3存储芯片数据缓存区控制权的归属。
9.根据权利要求7所述的一种船舶应用网卡架构实现方法,其特征在于:所述数据传输过程中的握手机制通过触发中断和修改DDR3存储芯片控制寄存器区握手位的数值,移交对应DDR3存储芯片数据缓存区的控制权,使上位机和网卡双方明确在当前时刻是否可以读写数据缓存区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111304122.6A CN116094853B (zh) | 2021-11-05 | 2021-11-05 | 一种船舶应用网卡架构及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111304122.6A CN116094853B (zh) | 2021-11-05 | 2021-11-05 | 一种船舶应用网卡架构及实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116094853A true CN116094853A (zh) | 2023-05-09 |
CN116094853B CN116094853B (zh) | 2024-04-12 |
Family
ID=86201172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111304122.6A Active CN116094853B (zh) | 2021-11-05 | 2021-11-05 | 一种船舶应用网卡架构及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116094853B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108259127A (zh) * | 2017-12-08 | 2018-07-06 | 天津津航计算技术研究所 | Pcie双冗余万兆网ip核 |
CN110177087A (zh) * | 2019-05-05 | 2019-08-27 | 方一信息科技(上海)有限公司 | 一种基于TOE网卡的Target端协议硬件解析方法 |
CN111736115A (zh) * | 2020-05-13 | 2020-10-02 | 复旦大学 | 基于改进型sgdma+pcie的mimo毫米波雷达高速传输方法 |
CN112100119A (zh) * | 2020-08-18 | 2020-12-18 | 中国科学院声学研究所 | 一种基于fpga的高速以太网帧重构系统 |
CN112865901A (zh) * | 2019-11-28 | 2021-05-28 | 中国科学院声学研究所 | 一种基于fpga纳秒时间戳的高速数据包采集系统及方法 |
-
2021
- 2021-11-05 CN CN202111304122.6A patent/CN116094853B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108259127A (zh) * | 2017-12-08 | 2018-07-06 | 天津津航计算技术研究所 | Pcie双冗余万兆网ip核 |
CN110177087A (zh) * | 2019-05-05 | 2019-08-27 | 方一信息科技(上海)有限公司 | 一种基于TOE网卡的Target端协议硬件解析方法 |
CN112865901A (zh) * | 2019-11-28 | 2021-05-28 | 中国科学院声学研究所 | 一种基于fpga纳秒时间戳的高速数据包采集系统及方法 |
CN111736115A (zh) * | 2020-05-13 | 2020-10-02 | 复旦大学 | 基于改进型sgdma+pcie的mimo毫米波雷达高速传输方法 |
CN112100119A (zh) * | 2020-08-18 | 2020-12-18 | 中国科学院声学研究所 | 一种基于fpga的高速以太网帧重构系统 |
Non-Patent Citations (2)
Title |
---|
TAI-HUA HSIAO,CHILUNG WANG,PENG-KAI HSU: "Next Generation Telecommunications Computing Architecture (NexTCA)", 《2018 6TH IEEE INTERNATIONAL CONFERENCE ON MOBILE CLOUD COMPUTING, SERVICES, AND ENGINEERING》, 1 March 2018 (2018-03-01) * |
张博,刘子逸: "基于PES32NT24AG2 芯片的PCIe 交换器的实现", 《专题技术与工程应用》, 5 July 2014 (2014-07-05) * |
Also Published As
Publication number | Publication date |
---|---|
CN116094853B (zh) | 2024-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104021102B (zh) | 基于状态机和片内总线的cpci串口板及其工作方法 | |
CN105357147B (zh) | 一种高速高可靠的片上网络适配单元 | |
CN101018179A (zh) | 数据总线桥接器及其工作方法 | |
CN103310850B (zh) | 片上网络资源节点存储器的内建自测试结构和自测试方法 | |
CN109634900B (zh) | 一种基于axi协议的多层次低延迟互连结构 | |
CN112866148B (zh) | 一种面向类脑计算芯片的芯片间数据传输系统及实现方法 | |
CN105912492A (zh) | Axi互联总线的扩展方法 | |
CN100511207C (zh) | 一种双处理器间的通讯方法 | |
CN110737618B (zh) | 内嵌处理器进行快速数据通信的方法、装置及存储介质 | |
CN104615386A (zh) | 一种核外高速缓存装置 | |
CN117806553A (zh) | 一种多源异构分布式系统、内存访问方法和存储介质 | |
KR19990050357A (ko) | 밀결합 결함 허용 시스템에서 메모리 버스 확장에 의한 동시 쓰기 이중화 장치 | |
CN113806290B (zh) | 一种用于综合模块化航空电子系统的高完整性片上系统 | |
CN108011792A (zh) | 一种1394总线事务层-链路层数据包接收电路及方法 | |
CN116094853B (zh) | 一种船舶应用网卡架构及实现方法 | |
CN117608207A (zh) | 一种基于反射内存网的通信系统及方法 | |
CN105718349B (zh) | 跨管芯接口监听或全局观察消息排序 | |
CN115982071A (zh) | 一种面向ddr3控制器的片上网络转换接口 | |
CN110765046A (zh) | 一种动态可重构高速串行总线的dma传输装置与方法 | |
CN116094639A (zh) | 一种实时以太网卡片上系统架构 | |
CN103268278B (zh) | 支持多核处理器的sram控制器及其跟踪信息处理方法 | |
CN113868179B (zh) | 一种LPC_DPRam的通信装置及数据转换方法 | |
WO2024001332A1 (zh) | 多端口存储器、多端口存储器的读写方法及装置 | |
WO2023159347A1 (zh) | 一种控制数据读写的方法和装置 | |
KR100677914B1 (ko) | 주기적으로 입출력을 검사하는 시스템에서 epmcq2를원격 모드로 사용할 때 속도를 향상시키는 방법 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |