[go: up one dir, main page]

CN119201803A - A single-channel multi-data source transmission system and method based on SRIO - Google Patents

A single-channel multi-data source transmission system and method based on SRIO Download PDF

Info

Publication number
CN119201803A
CN119201803A CN202411246800.1A CN202411246800A CN119201803A CN 119201803 A CN119201803 A CN 119201803A CN 202411246800 A CN202411246800 A CN 202411246800A CN 119201803 A CN119201803 A CN 119201803A
Authority
CN
China
Prior art keywords
data
srio
dsp
module
doorbell
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
Application number
CN202411246800.1A
Other languages
Chinese (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.)
XI'AN KEYWAY TECHNOLOGY CO LTD
Original Assignee
XI'AN KEYWAY TECHNOLOGY CO LTD
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 XI'AN KEYWAY TECHNOLOGY CO LTD filed Critical XI'AN KEYWAY TECHNOLOGY CO LTD
Priority to CN202411246800.1A priority Critical patent/CN119201803A/en
Publication of CN119201803A publication Critical patent/CN119201803A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Communication Control (AREA)

Abstract

一种基于SRIO的单通道多数据源传输系统及方法,属于数据传输技术领域,包括FPGA子系统和DSP子系统;FPGA子系统包括FPGA预处理模块、SRIO发送模块、SRIO复位模块和SRIO接收模块;DSP子系统包括DSP接收模块、DSP发送驱动层、DSP发送接口层、DSP发送应用层和EMIF设置模块;通过SRIO发送模块,将前级多个通道的FPGA数据预处理模块封装好的SRIO包,进行排序发送即可。SRIO进行无应答传输,相对于现有技术中对于短包数据的处理,大大提高了传输效率和实时性;加入片循环操作,对比之前单缓存或者乒乓操作,增加了存储空间,前级传输无需等待后级的处理反馈时间,直接进行大批量连续存储,这种连续存储解决了等待的延时问题。

A single-channel multi-data source transmission system and method based on SRIO, belonging to the field of data transmission technology, includes an FPGA subsystem and a DSP subsystem; the FPGA subsystem includes an FPGA preprocessing module, an SRIO sending module, an SRIO reset module and an SRIO receiving module; the DSP subsystem includes a DSP receiving module, a DSP sending driver layer, a DSP sending interface layer, a DSP sending application layer and an EMIF setting module; through the SRIO sending module, the SRIO packets encapsulated by the FPGA data preprocessing module of the previous multiple channels can be sorted and sent. SRIO performs non-response transmission, which greatly improves the transmission efficiency and real-time performance compared with the processing of short packet data in the prior art; adding a slice loop operation, compared with the previous single cache or ping-pong operation, increases the storage space, and the previous stage transmission does not need to wait for the processing feedback time of the subsequent stage, and directly performs large-scale continuous storage, which solves the waiting delay problem.

Description

Single-channel multi-data-source transmission system and method based on SRIO
Technical Field
The invention belongs to the technical field of data transmission, and particularly relates to a single-channel multi-data-source transmission system and method based on SRIO.
Background
The existing data processing system is usually developed by using an embedded platform, a DSP and an FPGA are made into a PCB, the DSP processes and processes the total data message, the FPGA expands a hardware interface, the DSP and an internal communication core of the FPGA use SRIO (Serial Rapid IP) and EMIF (External Memory Interface) external memories, SRIO is a high-speed serial communication interface protocol, the topology structure is simple and flexible and changeable, serial hardware buses are few, and the embedded high-speed serial communication system is an embedded high-reliability high-performance packet-switching-based high-speed interconnection technology. EMIF is a common parallel communication connection mode between a DSP chip and an FPGA, has excellent performance and great convenience and flexibility.
In the existing data transmission system, an interface data transmission mode with uncertain time length such as serial port and spi is commonly adopted, and an SRIO (serial input output) is adopted for large-batch continuous data transmission, so that the problems of low EMIF rate and poor timeliness exist, or an SRIO mode is adopted for transmitting data packets with a stream mode of less than or equal to 256 bytes, so that the utilization of SRIO bandwidth is low, and the overall transmission efficiency of data is influenced.
Disclosure of Invention
The invention aims to solve the problems of the data transmission using different interfaces and different formats, the rapid and efficient data transmission using SRIO uniformly, the problem of rapid and continuous mass storage of short packets by adding a slice circulation polling mode, and the delay waiting in the transmission process is shortened synchronously.
In a first aspect, the invention provides an SRIO-based single-channel multi-data-source transmission system, which comprises an FPGA subsystem and a DSP subsystem;
The FPGA subsystem comprises an interface channel module, an FPGA preprocessing module, an SRIO sending module, an EMIF state module, an SRIO reset module and an SRIO receiving module;
The system comprises an interface channel module, an FPGA preprocessing module, an SRIO sending module, an EMIF state module, an SRIO reset module, an SRIO receiving module and a data storage module, wherein the interface channel module is used for externally connecting hardware of a plurality of interfaces, the FPGA preprocessing module is used for preprocessing data from an external interface, the SRIO sending module is used for sending a data packet and a doorbell packet, the EMIF state module is used for storing the latest state result of a current interface channel, the SRIO reset module is used for resetting when an SRIO link is initialized or abnormal, and the SRIO receiving module is used for receiving an SRIO data packet;
the DSP subsystem comprises a DSP receiving module, a DSP doorbell module, a DSP sending driving layer, a DSP sending interface layer, a DSP sending application layer and an EMIF setting module;
The DSP receiving module is used for receiving and writing data into a memory of the DSP, the DSP doorbell module is used for identifying an interrupt source of doorbell interrupt, the DSP sending application layer is used for processing data to be sent by each interface, the DSP sending interface layer is used for starting the DSP sending driving layer to send SRIO packets in batches according to data quantity time-sharing and sub-packaging, the EMIF setting module is provided with storage performance and is used for making SRIO protocol conventions and setting a slice circulation address, a slice circulation size, a slice circulation number, a data length of doorbell interrupt and the number of data packets of doorbell interrupt of each channel.
Furthermore, according to the SRIO-based single-channel multi-data-source transmission system, the interface channel module receives data or transmits the data according to sampling clocks of all interfaces, the number of receiving interfaces is 64 at most, the number of transmitting interfaces is 2×32 at most, and the sum of interface bandwidths is smaller than or equal to the SRIO bandwidth.
Further, in the single-channel multi-data-source transmission system based on SRIO, when the FPGA preprocessing module performs data preprocessing, packaging data is performed according to the SRIO protocol of the EMIF setting module and internal chip circulation, the packaging data comprises a packet header, a packet and a doorbell packet, and the data packet after packaging is transmitted to the SRIO transmitting module.
In the SRIO-based single-channel multi-data-source transmission system, when the SRIO reset module resets, the counting, FIFO and status words related to the SRIO in the FPGA are cleared and reset, the FPGA subsystem detects the link state of the SRIO in real time, and when the link or port is abnormal, the FPGA subsystem notifies the DSP subsystem through the EMIF state module to reset and reconnect.
In the SRIO-based single-channel multi-data-source transmission system, the DSP doorbell module identifies the interrupt source of doorbell interrupt, and uses DoorBell interrupt to inform the DSP subsystem, after the DSP subsystem enters the doorbell interrupt, firstly searches which interface channel is the interrupt according to DoorBell doorbell interrupt, and then identifies the address area of piece cyclic polling and the effective byte length of each piece of address area through the EMIF state module.
Furthermore, in the SRIO-based single-channel multi-data-source transmission system, after the FPGA preprocessing module finishes packaging the data and before the SRIO sending module sends the doorbell packet, the FPGA subsystem updates the latest state result of the current interface channel and stores the latest state result through the EMIF state module, so that the state result query is conveniently carried out after the doorbell is interrupted by the DSP, the chip cyclic polling result is identified, and the data is completely accessed.
In a second aspect, the present invention provides a transmission method of the SRIO-based single channel multi-data source transmission system according to the first aspect, including a data uplink process and a data downlink process;
The data uplink process comprises the steps that an FPGA subsystem receives data from hardware of a plurality of interfaces, performs data preprocessing through an FPGA preprocessing module, processes and packages the data of each interface channel according to a preset doorbell interrupt protocol and a slice cycle protocol, then sends data packets and doorbell packets to a DSP subsystem through an SRIO sending module, sends the previous-stage multipath data to the DSP through an SRIO channel, and performs data caching through DDR3 of the DSP;
After receiving doorbell interruption, the SRIO bottom layer of the DSP verifies the current interruption source identification channel a priori, then inquires an EMIF state module of the channel, inquires the first address of the current interruption piece circulation and the first address of the last piece circulation of the current channel, and the interfaces with short packet complements can simultaneously identify the number of bytes of effective data of each piece address, then extracts the effective data between the two interruption times, and subsequently carries out application layer processing;
The data downlink process comprises the steps of carrying out time-sharing batch transmission when the DSP subsystem transmits data, packaging according to a contracted interface channel protocol, identifying packet head address information in the packaging by the FPGA subsystem, judging which interface channel is the data, extracting the data, and directly putting the data into a corresponding interface FIFO according to the sequence of receiving the packaging for external transmission.
Because the transmission speed of the SRIO is far greater than the speed of the external interface, only the protocol for data transmission is required to be agreed, and priority processing is not required. The downlink time sequence of the data is actively controlled by the DSP. Only the data transmission is considered to be not too fast, so that the quantity of FIFO buffers of the FPGA is exceeded, and the data is lost. Meanwhile, because the FPGAs are parallel, doorbell interruption does not need to be sent to the FPGAs, and the problem of real-time response of the FPGAs does not need to be considered. Meanwhile, the doorbell is not limited, so that the number of data channels sent to the FPGA by the DSP is far more than 64, and 2×16 channel data can be achieved.
Furthermore, according to the SRIO-based single-channel multi-data-source transmission method, the doorbell interrupt protocol agrees with the interrupt data quantity of each channel, one channel data quantity sent by the FPGA reaches one, two or more packets, one doorbell interrupt notification DSP needs to be sent (how many packets of DSPs are set to the FPGA according to the hardware interface characteristics), the packet header address protocol in one doorbell is accumulated according to the chip cycle first address at the time, and the next doorbell needs to be accumulated with a new chip cycle first address.
Furthermore, the single-channel multi-data source transmission method based on SRIO is characterized in that the slice circulation protocol agrees with how many times of doorbell interruption and the single-time doorbell interruption data length are stored continuously in one channel, new data need to deviate from a header address according to the slice circulation protocol after one doorbell is sent, continuous arrangement of data areas can be guaranteed according to the length of the doorbell, meanwhile, after the DSP is closed and interrupted and is opened again, the DSP inquires a state register value of FPGA slice circulation through an EMIF state module, an interval area of two times of interruption is detected, cache data in DDR3 can be completely identified, and the doorbell interruption protocol and the slice circulation protocol are restrained by changing EMIF communication between the DSP and the FPGA. The DSP can conveniently read the data in the middle after actively closing the interrupt.
Furthermore, the single-channel multi-data source transmission method based on SRIO is characterized in that when short packet data is processed according to a slice circulation protocol, the FPGA needs to conduct data packet breaking processing on discontinuous short packet type data, broken packets are judged according to time, data with inconsistent lengths are processed in a complement or subpackaging or doorbell breaking mode, and continuous data wait to meet 256 bytes and are packaged into SWRITE packets. The method for supplementing the number is that when a single data packet is < =256 bytes, fixed data 0x80 is supplemented to 256 bytes, the specific number of bytes is updated through a state register of an EMIF, the packetizing mode is that when single packet data is >256 bytes, the number of the single packet data is still supplemented to 256 bytes according to 256 bytes when the last packet is insufficient to 256 bytes, the doorbell is set according to the requirement of a hardware interface, a doorbell interrupt is set according to one packet for a short packet data interface, after the packetizing or supplementing the number, the doorbell interrupt of each interface is set separately, a doorbell is sent after the multi-packet data for a large number of continuous data interfaces, such as a serial port is set with one doorbell packet after the single packet data, and a doorbell, such as a video, a picture and a doorbell interrupt can be added for the large number of continuous data.
According to the SRIO-based single-channel multi-data-source transmission system and the SRIO-based single-channel multi-data-source transmission method, SRIO packets packaged by the FPGA data preprocessing modules of the front-stage multiple channels are sequenced and sent out through the SRIO sending module. Compared with the prior art for processing short packet data, the SRIO processing method greatly improves the transmission efficiency and the real-time performance, adds the slice circulation operation, increases the storage space compared with the prior single buffer or ping-pong operation, does not need to wait for the processing feedback time of the later stage in the former stage transmission, directly carries out mass continuous storage, and solves the waiting delay problem in the continuous storage.
Drawings
FIG. 1 is a schematic diagram of a single channel multi-data source transmission system based on SRIO according to an embodiment of the present invention;
FIG. 2 is a communication flow chart of a single channel multi-data source transmission system based on SRIO according to an embodiment of the present invention;
FIG. 3 is a schematic diagram of a data uplink process according to an embodiment of the present invention;
FIG. 4 is a schematic diagram of a data downlink process according to an embodiment of the present invention;
fig. 5 is a schematic diagram of a transmission flow of a single-channel piece circulation doorbell according to an embodiment of the present invention;
fig. 6 is a schematic diagram of an SRIO doorbell header protocol of the DSP according to an embodiment of the present invention;
Fig. 7 is a schematic diagram of an SRIO doorbell header protocol of the DSP according to an embodiment of the present invention.
Detailed Description
The single-channel multi-data source transmission system and method based on SRIO of the invention are described in detail below through the drawings and the embodiments.
Example 1
The embodiment discloses a single-channel multi-data-source transmission system based on SRIO, which comprises an FPGA subsystem and a DSP subsystem, wherein the FPGA subsystem comprises an interface channel module, an FPGA preprocessing module, an SRIO transmitting module, an EMIF state module, an SRIO resetting module and an SRIO receiving module, and the DSP subsystem comprises a DSP receiving module, a DSP doorbell module, a DSP transmitting driving layer, a DSP transmitting interface layer, a DSP transmitting application layer and an EMIF setting module.
In the disclosed embodiment, a 4x SRIO and an EMIF16 interface are connected between the FPGA subsystem and the DSP subsystem. An EMIF16 interface is used, the memory characteristic of the EMIF is considered, the protocol convention of SRIO is carried out by using the EMIF, and the chip circulation address, the chip circulation times and the doorbell interrupt data length of each channel can be flexibly configured. The FPGA feeds back real-time status via the EMIF16 in real-time. The SRIO only carries out transmission of stream mode and doorbell interrupt, and the actual use of the SRIO can simultaneously reach the bandwidth speed of 1.1 GB/s.
The interface channel module is connected with the hardware of a plurality of external interfaces and is used for inputting and outputting system communication data. The interface channel module receives data in or sends data out according to the sampling clock of each interface. Up to 64 receiving interfaces, up to 2×32 transmitting interfaces, and the sum of the interface bandwidths is less than or equal to the SRIO bandwidth. When the number of the interface data reaches a certain value or a certain time condition, the preprocessing module starts processing.
The FPGA preprocessing module is used for processing data from an external interface, and packaging the data of the interface according to the SRIO protocol of the EMIF setting module and the internal chip cycle counting result. The packed data mainly comprises a packet header, a packet header and a doorbell packet. And transmitting the data packet after the packaging is completed to an SRIO transmitting module.
After the packing of the FPGA and the processing module is completed, the latest state result of the current interface channel is updated by the FPGA before the doorbell packet is sent by the SRIO sending module of the FPGA, so that the state result inquiry is conveniently carried out after the doorbell is interrupted by the DSP, the chip circulation result is identified, and the data is completely accessed.
The SRIO reset module is used for carrying out reset when the SRIO link is initialized or abnormal, and the reset can clear and reset the count, FIFO, status word and the like of the SRIO in the FPGA. The FPGA can detect the link state of the SRIO in real time, and when the link or port is abnormal, the FPGA informs the DSP through the EMIF16 to carry out reset reconnection.
The DSP receiving module, the DSP receiving is simple, the SRIO bottom layer judges the protocol packet type according to the packet head, as shown in fig. 6 and 7, the stream mode packet carrying the data word, and the DMA is used for writing the data into the memory of the DSP according to the DSP memory address agreed by the packet head and the data length of the packet.
And the DSP doorbell module is used for identifying an interrupt source of doorbell interrupt and informing the DSP by using DoorBell interrupt in order that the DSP can rapidly process data in real time. After entering the doorbell interrupt, the DSP searches for which interface channel is the interrupt according to the DoorBell doorbell interrupt, and then identifies the address area of the slice cyclic poll and the valid byte length of each slice address area through the EMIF16 status module.
The three modules are used for the DSP to send data to the FPGA. The DSP transmitting application layer processes the data to be transmitted by each interface, and the DSP transmitting interface layer starts the DSP transmitting driving layer to transmit the SRIO packets according to the time-sharing batch subpackaging of the data quantity. And the SRIO receiving module of the FPGA receives the data packet of the SRIO and distributes the data packet to each sending interface module according to a packet header protocol, and each interface sequentially sends out the data.
Considering a storage performance of EMIF, using EMIF interface to make SRIO protocol convention, EMIF setting module flexibly and conveniently sets slice circulation address, slice circulation size, slice circulation times, data length of doorbell interrupt, number of data packets of doorbell interrupt, etc. of SRIO of each channel.
In the embodiment of the disclosure, the internal communication core of the DSP and the FPGA uses the SRIO and the EMIF external memory, and the SRIO protocol agreement between the DSP and the FPGA and the feedback of the status result of the chip circulation are very convenient through the EMIF interface. The system has the assistance of EMIF, and the link of SRIO only transmits the data packet in the streaming mode and the doorbell packet without data, thereby greatly improving the transmission efficiency of SRIO.
The transmission of the SRIO mainly comprises two transmission types of IO and Message, under the two transmission types, a plurality of protocol packet formats are provided, and based on the use requirement of a system, the technical scheme only applies two types of SWRITE packets (stream mode) and DOORBELL packets (doorbell interrupt packet). The streaming mode is used for data transmission and the doorbell is used for informing an interrupt.
SWRITE packets, which specify that the protocol packet consists of a 64bit packet header and 1 to 256 bytes of data, the packet header carries an ID, packet mode, packet data length, receiver destination address. The receiving party analyzes the packet header and transmits the data with the corresponding length in the packet to the designated address. In this embodiment, the length of data carried by SWRITE is 256 bytes, so that the service efficiency of SRIO is very high.
DOORBELL packets, a 64bit packet header carries a data protocol, wherein a16 bit info section carries an interrupt message, and the DSP can receive at most 64 DOORBELL doorbell interrupts. With these 64 interrupts, the interrupt source can be identified. After the data is sent by using the streaming mode, the FPGA sends DOORBELL interrupt to the DSP to inform the DSP that the data is completed, and the subsequent processing is timely carried out.
The system is externally connected with data from multiple interfaces, the FPGA is a parallel processor, and the FPGA receives and transmits data from different clock domains, different data lengths, different data bit degrees and different time periods in real time. And continuously storing the data in the memory of the DSP through a 4xSRIO interface, and notifying the DSP through SRIO doorbell interrupt when a certain number or time is reached, and carrying out data processing by the DSP.
Example two
Based on the SRIO-based single-channel multi-data-source transmission system disclosed in the first embodiment, the present embodiment discloses an SRIO-based single-channel multi-data-source transmission method, as shown in fig. 1, 3 and 4, two bidirectional communication interfaces, a parallel EMIF16 interface, a high-speed serial 4x SRIO interface, and an EMIF interface performs SRIO protocol constraint, are connected between two subsystems FPGA and DSP subsystem. The memory of the DSP is expanded by 2GB DDR3, and data caching can be performed in a large batch.
There are two directions for data transmission, namely data downlink (the DSP sends to the FPGA) and data uplink (the FPGA sends to the DSP). Due to the difference between the two processors, there is a slight difference between the schemes used for data uplink and data downlink. The specific data transmission process is as follows:
Data uplink:
The data comes in from the external hardware interface of the FPGA and reaches the dual-port RAM of the external interface of the FPGA, and the FPGA preprocessing module performs data preprocessing and uses the DSP to perform expansion caching. Because the FPGA code is compiled once to take effect once, the number of FIFOs per channel of the FPGA is limited. Preprocessing data of each channel, processing and packaging according to a set doorbell interrupt protocol and a slice cycle protocol, then sending the data, entering a memory DDR3 of the DSP, and caching the data by the DDR3 of the DSP to realize the function of expanding cache. The doorbell interrupt protocol agrees with the interrupt data quantity of each channel, one channel data quantity sent by the FPGA reaches one packet, two packets or multiple packets, a doorbell interrupt notification DSP needs to be sent once (how many packets of DSP are set to the FPGA according to the hardware interface characteristics), the packet header address protocol in one doorbell is accumulated according to the chip cycle head address at this time, and the next doorbell needs to be accumulated with a new chip cycle head address.
The slice circulation protocol agrees that a channel continuously stores the data length of the doorbell interrupt for more than one time and the single doorbell interrupt, and after the doorbell is sent once, new data needs to offset the header address according to the slice circulation protocol, so that the data areas are ensured to be continuous and can be continuously arranged according to the length of the doorbell. Meanwhile, the application of the DSP has the requirement of closing the interrupt, after the DSP is closed and the interrupt is opened again, the DSP queries the state register value of the circulating poll of the FPGA chip through the EMIF state module, detects the interval area of the two interrupts, and can completely identify the cache data in the DDR 3. The doorbell interrupt protocol and the slice loop protocol are constrained by the EMIF communication between the DSP and the FPGA. The DSP can conveniently read the data in the middle after actively closing the interrupt.
The short packet data needs special treatment in the chip circulation polling processing, and the FPGA has a data packet breaking function for discontinuous short packet type data such as serial ports, SPI and the like, judges the broken packet according to time, and considers the broken packet as one packet of data after the specific proportion time such as the baud rate is exceeded. Because the data lengths of serial ports and the like are inconsistent, the real-time performance of the system is considered, and operation processing modes such as complement, subcontracting, doorbell interruption and the like can exist. The complement is not needed for continuous image, AD and other data, and only the package SWRITE of the 256-byte packaging process is waited to be met.
The complement processing mode is that in the data single packet < = 256 bytes, the complement fixed data 0x80 is complemented to 256 bytes, and the specific byte number is updated through the state register of the EMIF. The packetization is performed in such a way that, in case of single packet data >256 bytes, it is necessary to packetize the data in 256 bytes, and if the last packet is not 256 enough, it is still padded to 256 bytes. The doorbell interrupt processing mode is that the doorbell is set according to the requirement of a hardware interface, and the doorbell interrupt is set according to one packet for a short packet data interface, and after the packet is divided or complemented, the short packet interface needs to be added with a doorbell interrupt. The doorbell interrupt for each interface is separate. For a large number of consecutive data interfaces, a doorbell is sent after multiple packets of data. For example, a serial port is provided with a single-packet data primary doorbell, so that a doorbell packet needs to be added behind the single-packet data. For large volumes or continuous data, one more doorbell, such as a video, one picture with one doorbell break, may be wrapped.
After being packaged by a chip circulation protocol of the preprocessing module, the chip circulation protocol enters a post-stage FPGA sending module, the module mainly sends the multi-path data of the front stage to the DSP through an SRIO channel, and the speed of the module is far greater than the packaging speed of the preprocessing module of the front stage. When there are two or more paths of data to be transmitted, the data packets are sequentially transmitted according to the channel number. The method is directly cached to the internal memory of the DSP, the redundant caching of the FPGA is not needed, and the FPGA only processes the package in real time and actively uploads the package. And the SRIO sending module sends out the data packet and the doorbell packet.
After receiving the data, the SRIO bottom layer of the DSP starts the DMA to carry out data movement, and stores the data into the corresponding memory area of the DSP one by one according to the address and the length of the SRIO packet header protocol. After receiving doorbell interruption, the current interruption source identification channel is verified a priori, then an EMIF state module of the channel is queried, the first address of the current interruption piece circulation and the first address of the last piece circulation of the current channel are queried, the interfaces with short packet complements can simultaneously identify the number of bytes of effective data of each piece address, then effective data between two interruption is extracted, and application layer processing is performed subsequently.
And (3) data downlink:
The data downlink is simpler, the FPGA decodes the SRIO serial stream mode data of the DSP by the packet header protocol, distributes the decoded data to the respective channel FIFO and sends the decoded data to the hardware interface. Because the transmission speed of the SRIO is far greater than the speed of the external interface, only the protocol of data transmission is agreed, and priority processing is not needed. The downlink time sequence of the data is actively controlled by the DSP. Only the data transmission is considered to be not too fast, so that the quantity of FIFO buffers of the FPGA is exceeded, and the data is lost. Meanwhile, because the FPGAs are parallel, doorbell interruption does not need to be sent to the FPGAs, and the problem of real-time response of the FPGAs does not need to be considered. Meanwhile, the doorbell is not limited, so that the number of data channels sent to the FPGA by the DSP is far more than 64, and 2×16 channel data can be achieved from theoretical design (only 39 are used in an actual system).
When the DSP transmits data, time constraint is carried out, and data exceeding the FIFO buffer quantity can not be transmitted to the interface within the time limited by the hardware interface, so that the DSP interface layer carries out time-sharing batch transmission. According to the agreed interface channel protocol package, mainly the address information of the package head, the FPGA identifies the address information of the package head, judges which interface channel is the data of which interface channel, extracts the data, and according to the sequence of the package, directly puts the data into the corresponding interface FIFO for external transmission.
In the embodiment of the disclosure, an EMIF16 interface is used, and an SRIO module is combined to provide double guarantee for communication of the system, and the FPGA monitors link and port link states of the SRIO link in real time, and notifies the DSP to perform SRIO reset reconnection when abnormal, so that transmission of the system is more stable and reliable. In the initialization process, the EMIF is used for carrying out protocol constraint of SRIO between the DSP and the FPGA, for example, the initial address of a first picture of a video in a format of a protocol convention SDI (1920 x 1080 x 2 byte) is 0x90000000, the doorbell interrupt packet number of the convention SDI is 1920 x 1080 x 2/256=16200, and the number of the convention slice cycle polling times is 50. The practical effect is that SDI video data are continuously arranged according to the data byte stream of video frames, when one picture is transmitted, the FPGA adds a doorbell interrupt to inform the DSP that one picture is completely reached, and 50 pieces of video data are continuously stored. And waiting for 50 pieces of storage to be full, returning to the address of 0x90000000 for continuous storage, storing 50 pieces of storage, and continuously returning to the address of 0x90000000 for continuous caching. The EMIF state update is mainly to update the first address of the doorbell interrupt and inform the DSP where the first address of the picture is. If the data is short packet data such as serial port, the DSP is informed of the effective byte number of the data, because the serial port short packet has the complement operation, the DSP is informed of the effective byte number of the packet through EMIF.
Based on the communication example of SRIO multichannel control between the DSP and the FPGA, data are segmented according to the largest SRIO data packet, a slice circulation polling mode is added, and a doorbell is added to interrupt operation. The operation of the broken package and the doorbell+256 bytes SWRITE package of the interface module greatly improves the real-time performance of the system transmission and transmission processing data, and can completely process the communication requirement in time by the broken package and the doorbell operation in consideration of the fact that the DSP can not always process the data. As shown in the flowcharts of fig. 2 and 5, through the slice circulation polling mode, the data control flow of the FPGA has no DSP participation, so that the work of the FPGA is greatly simplified, the feedback problem is not required to be considered when the FPGA is in data uplink, the FPGA only needs to consider that the received data packet is sent, and a large amount of cache data is executed by the DSP memory.
The receiving of the DSP is also independent of the DSP program flow, and is automatically executed by an SRIO module and a DMA module, a slice circulation protocol and a channel protocol attached to the SRIO are adopted, the SRIO bottom layer moves the data of SWRITE packets to the memory area by using the DMA according to the 32-bit address in the packet header and the length information of 8 bits in the packet header, and the DMA is a high-speed access peripheral, so that the program flow control of the DSP is not required for moving the data. For the serial CPU such as the DSP, the serial CPU can be completed without occupying program time, and a great amount of time is saved.
When the DSP sends data to the FPGA, the sending protocol is well regulated when the SRIO protocol is initialized, the FPGA extracts address information corresponding to the packet header protocol, identifies which channel is the data of which channel, extracts the data and forwards the data to the corresponding interface channel.

Claims (10)

1.一种基于SRIO的单通道多数据源传输系统,其特征在于:包括FPGA子系统和DSP子系统;1. A single-channel multi-data source transmission system based on SRIO, characterized by: comprising an FPGA subsystem and a DSP subsystem; 所述FPGA子系统包括接口通道模块、FPGA预处理模块、SRIO发送模块、EMIF状态模块、SRIO复位模块和SRIO接收模块;The FPGA subsystem includes an interface channel module, an FPGA preprocessing module, an SRIO sending module, an EMIF status module, an SRIO reset module and an SRIO receiving module; 所述接口通通道模块用于外部连接多个接口的硬件;所述FPGA预处理模块用于对来自外部接口的数据进行预处理;所述SRIO发送模块用于数据包和门铃包发送;所述EMIF状态模块用于当前接口通道的最新状态结果存储;所述SRIO复位模块用于在SRIO链路链接初始化或者异常时进行复位;所述SRIO接收模块用于接收SRIO数据包;The interface channel module is used to externally connect multiple interface hardware; the FPGA preprocessing module is used to preprocess data from the external interface; the SRIO sending module is used to send data packets and doorbell packets; the EMIF status module is used to store the latest status results of the current interface channel; the SRIO reset module is used to reset when the SRIO link is initialized or abnormal; the SRIO receiving module is used to receive SRIO data packets; 所述DSP子系统包括DSP接收模块、DSP门铃模块、DSP发送驱动层、DSP发送接口层、DSP发送应用层和EMIF设置模块;The DSP subsystem includes a DSP receiving module, a DSP doorbell module, a DSP transmission driver layer, a DSP transmission interface layer, a DSP transmission application layer and an EMIF setting module; 所述DSP接收模块用于接收并将数据写入DSP的内存;所述DSP门铃模块用于识别门铃中断的中断源;所述DSP发送应用层用于处理各个接口需要发送的数据;所述DSP发送接口层根据数据量分时分批分包启动所述DSP发送驱动层将SRIO包发送出去;所述EMIF设置模块具有存储性能,用于做SRIO协议约定,进行每个通道的SRIO的片循环地址、片循环大小、片循环次数、门铃中断的数据长度、门铃中断的数据包个数的设置。The DSP receiving module is used to receive and write data into the DSP memory; the DSP doorbell module is used to identify the interrupt source of the doorbell interrupt; the DSP sending application layer is used to process the data that needs to be sent by each interface; the DSP sending interface layer starts the DSP sending driver layer to send the SRIO packet according to the data volume in batches and time division; the EMIF setting module has storage performance, which is used to make SRIO protocol agreements, and set the SRIO chip cycle address, chip cycle size, chip cycle number, doorbell interrupt data length, and doorbell interrupt data packet number of each channel. 2.根据权利要求1所述基于SRIO的单通道多数据源传输系统,其特征在于:所述接口通道模块依据各接口的采样时钟将数据接收进来或者发送出去;接收接口最多64个,发送接口最多2×32个,接口带宽之和小于等于SRIO带宽。2. According to the SRIO-based single-channel multi-data source transmission system of claim 1, it is characterized in that: the interface channel module receives or sends data according to the sampling clock of each interface; the number of receiving interfaces is at most 64, the number of sending interfaces is at most 2×32, and the sum of the interface bandwidths is less than or equal to the SRIO bandwidth. 3.根据权利要求1所述基于SRIO的单通道多数据源传输系统,其特征在于:所述FPGA预处理模块进行数据预处理时,按照EMIF设置模块的SRIO协议和内部的片循环协议进行打包数据;所述打包数据包括加包头、分包、加门铃包;打包完成之后的数据包传递到SRIO发送模块。3. According to claim 1, the single-channel multi-data source transmission system based on SRIO is characterized in that: when the FPGA preprocessing module performs data preprocessing, it packages the data according to the SRIO protocol of the EMIF setting module and the internal chip loop protocol; the packaged data includes adding a header, subpacketizing, and adding a doorbell packet; the data packet after packaging is passed to the SRIO sending module. 4.根据权利要求1所述基于SRIO的单通道多数据源传输系统,其特征在于:所述SRIO复位模块复位时将FPGA内部关于SRIO的计数、FIFO、状态字进行清除重置;FPGA子系统实时检测SRIO的链路链接状态,在链路link或port异常时通过EMIF状态模块通知DSP子系统,进行复位重连。4. According to the SRIO-based single-channel multi-data source transmission system of claim 1, it is characterized in that: when the SRIO reset module is reset, the count, FIFO and status word of SRIO inside the FPGA are cleared and reset; the FPGA subsystem detects the link status of the SRIO in real time, and notifies the DSP subsystem through the EMIF status module when the link or port is abnormal, and resets and reconnects. 5.根据权利要求1所述基于SRIO的单通道多数据源传输系统,其特征在于:所述DSP门铃模块识别门铃中断的中断源,使用DoorBell中断来通知DSP子系统;DSP子系统进入门铃中断后,先根据DoorBell门铃中断查找是哪一个接口通道的中断,之后通过EMIF状态模块识别片循环轮询的地址区和每片地址区的有效字节长度。5. According to claim 1, the single-channel multi-data source transmission system based on SRIO is characterized in that: the DSP doorbell module identifies the interrupt source of the doorbell interrupt and uses the DoorBell interrupt to notify the DSP subsystem; after the DSP subsystem enters the doorbell interrupt, it first searches for which interface channel the interrupt is based on the DoorBell doorbell interrupt, and then identifies the address area of the chip cyclic polling and the effective byte length of each chip address area through the EMIF status module. 6.根据权利要求1所述基于SRIO的单通道多数据源传输系统,其特征在于:所述FPGA预处理模块对数据打包完成之后,SRIO发送模块发送门铃包之前,FPGA子系统将当前接口通道的最新状态结果更新并通过EMIF状态模块存储。6. According to the SRIO-based single-channel multi-data source transmission system of claim 1, it is characterized in that: after the FPGA pre-processing module completes data packaging and before the SRIO sending module sends the doorbell packet, the FPGA subsystem updates the latest status result of the current interface channel and stores it through the EMIF status module. 7.一种根据权利要求1-6任一项所述基于SRIO的单通道多数据源传输系统的传输方法,包括数据上行过程和数据下行过程;其特征在于:7. A transmission method of a single-channel multi-data source transmission system based on SRIO according to any one of claims 1 to 6, comprising a data uplink process and a data downlink process; characterized in that: 所述数据上行过程包括:FPGA子系统从外部多个接口的硬件接收数据,通过FPGA预处理模块进行数据预处理,对每个接口通道的数据,按照预设的门铃中断协议与片循环协议处理打包后通过SRIO发送模块将数据包和门铃包发送至DSP子系统,将前级的多路数据通过一个SRIO通道发送到DSP,由DSP的DDR3进行数据缓存;SRIO发送模块的速度远大于前级的预处理模块的打包速度;当只有一个通道需发送的时,直接将此通道数据发送出去;当存在两路或者两路以上的数据需发送的时,按照通道号依次将数据包发送出去;The data uplink process includes: the FPGA subsystem receives data from the hardware of multiple external interfaces, performs data preprocessing through the FPGA preprocessing module, processes and packages the data of each interface channel according to the preset doorbell interrupt protocol and chip cycle protocol, and then sends the data packet and the doorbell packet to the DSP subsystem through the SRIO sending module, sends the multi-channel data of the previous stage to the DSP through an SRIO channel, and the DSP performs data caching by the DDR3 of the DSP; the speed of the SRIO sending module is much faster than the packaging speed of the preprocessing module of the previous stage; when there is only one channel to be sent, the data of this channel is directly sent out; when there are two or more channels of data to be sent, the data packets are sent out in sequence according to the channel number; DSP的SRIO底层在接收到数据后,启动DMA进行数据搬移,按照SRIO包头协议的地址和长度,一包一包的将数据存放到DSP相应的内存区;在接收到门铃中断以后,先验证当前的中断源识别通道,之后查询通道的EMIF状态模块,查询当前通道的此次中断片循环的首地址与上次片循环的首地址,短包补数的接口会同时识别每片地址的有效数据字节数,之后将两次中断之间的有效数据提取出来,后续进行应用层处理;After receiving the data, the SRIO bottom layer of the DSP starts DMA to move the data, and stores the data in the corresponding memory area of the DSP one by one according to the address and length of the SRIO packet header protocol; after receiving the doorbell interrupt, first verify the current interrupt source identification channel, then query the EMIF status module of the channel, query the first address of the current interrupt slice cycle and the first address of the previous slice cycle of the current channel, and the short packet complement interface will simultaneously identify the number of valid data bytes of each slice address, and then extract the valid data between the two interrupts for subsequent application layer processing; 所述数据下行过程包括:DSP子系统发送数据时进行分时分批发送;按照约定的接口通道协议封包;FPGA子系统识别封包中的包头地址信息,判断是哪一个接口通道的数据,将数据提取出来,按照包接收到的顺序,直接放到对应的接口FIFO进行对外发送即可。The data downlink process includes: the DSP subsystem sends data in batches and at different times; the FPGA subsystem encapsulates the data according to the agreed interface channel protocol; the FPGA subsystem identifies the header address information in the packet, determines which interface channel the data belongs to, extracts the data, and directly puts the data into the corresponding interface FIFO for external transmission in the order in which the packets are received. 8.根据权利要求7所述基于SRIO的单通道多数据源传输方法,其特征在于:所述门铃中断协议约定每个通道的中断数据量;FPGA发送的一个通道数据量达到一包、两包、或者多包,需要发送一次门铃中断通知DSP,一次门铃内的包头地址协议按照此次的片循环首地址进行累计,下一次门铃需要新的片循环首地址进行累计。8. According to the SRIO-based single-channel multi-data source transmission method of claim 7, it is characterized in that: the doorbell interrupt protocol stipulates the interrupt data volume of each channel; when the data volume of a channel sent by the FPGA reaches one packet, two packets, or more packets, it is necessary to send a doorbell interrupt notification to the DSP, and the packet header address protocol in one doorbell is accumulated according to the chip cycle first address of this time, and the next doorbell needs a new chip cycle first address for accumulation. 9.根据权利要求7所述基于SRIO的单通道多数据源传输方法,其特征在于:所述片循环协议约定一个通道连续存储多少次门铃中断和单次门铃中断数据长度;发送一次门铃以后,新的数据需要按照片循环协议偏移包头首地址,保证数据区连续且能够按照门铃的长度进行连续排列;同时在DSP关闭中断再次打开以后,DSP通过EMIF状态模块查询FPGA片循环的状态寄存器值,检测两次中断的间隔区,能够完整识别DDR3中的缓存数据。9. According to the SRIO-based single-channel multi-data source transmission method of claim 7, it is characterized in that: the slice cycle protocol stipulates how many doorbell interrupts a channel continuously stores and the length of a single doorbell interrupt data; after sending a doorbell, new data needs to offset the first address of the packet header according to the slice cycle protocol to ensure that the data area is continuous and can be arranged continuously according to the length of the doorbell; at the same time, after the DSP turns off the interrupt and turns it on again, the DSP queries the status register value of the FPGA slice cycle through the EMIF status module, detects the interval area between two interrupts, and can completely identify the cached data in DDR3. 10.根据权利要求9所述基于SRIO的单通道多数据源传输方法,其特征在于:根据片循环协议轮询处理短包数据时,对于不连续的短包类型的数据,FPGA需进行数据断包处理;将断包按照时间进行判断;对于长度不一致的数据采用补数或分包或加门铃中断的方式进行处理;对于连续的数据等待满足256字节封装成SWRITE包即可。10. The single-channel multi-data source transmission method based on SRIO according to claim 9 is characterized in that: when processing short packet data according to the chip loop protocol polling, for discontinuous short packet type data, the FPGA needs to perform data packet break processing; the broken packet is judged according to time; for data with inconsistent lengths, the complement or packetization or doorbell interrupt is used for processing; for continuous data, it is sufficient to wait for 256 bytes to be encapsulated into a SWRITE packet.
CN202411246800.1A 2024-09-06 2024-09-06 A single-channel multi-data source transmission system and method based on SRIO Pending CN119201803A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202411246800.1A CN119201803A (en) 2024-09-06 2024-09-06 A single-channel multi-data source transmission system and method based on SRIO

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202411246800.1A CN119201803A (en) 2024-09-06 2024-09-06 A single-channel multi-data source transmission system and method based on SRIO

Publications (1)

Publication Number Publication Date
CN119201803A true CN119201803A (en) 2024-12-27

Family

ID=94075819

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202411246800.1A Pending CN119201803A (en) 2024-09-06 2024-09-06 A single-channel multi-data source transmission system and method based on SRIO

Country Status (1)

Country Link
CN (1) CN119201803A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN119988272A (en) * 2025-04-08 2025-05-13 南湖实验室 A SRIO transmission system and transmission method based on SoC FPGA

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN119988272A (en) * 2025-04-08 2025-05-13 南湖实验室 A SRIO transmission system and transmission method based on SoC FPGA

Similar Documents

Publication Publication Date Title
US12328252B2 (en) System and method for facilitating efficient address translation in a network interface controller (NIC)
EP2259189B1 (en) Packet combining on PCI express
US6434145B1 (en) Processing of network data by parallel processing channels
US20200296058A1 (en) Heterogeneous Packet-Based Transport
CN1883212B (en) Method and apparatus to provide data streaming over a network connection in a wireless MAC processor
US6731631B1 (en) System, method and article of manufacture for updating a switching table in a switch fabric chipset system
US20020071450A1 (en) Host-fabric adapter having bandwidth-optimizing, area-minimal, vertical sliced memory architecture and method of connecting a host system to a channel-based switched fabric in a data network
CN102185833B (en) Fiber channel (FC) input/output (I/O) parallel processing method based on field programmable gate array (FPGA)
WO2002015017A1 (en) System, method and article of manufacture for storing an incoming datagram in a switch matrix in a switch fabric chipset system
US7596148B2 (en) Receiving data from virtual channels
CN112395230A (en) UART interface extension circuit based on programmable logic device
US6724759B1 (en) System, method and article of manufacture for transferring a packet from a port controller to a switch fabric in a switch fabric chipset system
CN113810109A (en) Multi-protocol multi-service optical fiber channel controller and working method thereof
CN116131901A (en) Satellite data channel control system and method
CN119201803A (en) A single-channel multi-data source transmission system and method based on SRIO
WO2001067713A1 (en) A packet format independent computer network controller
EP2699030B1 (en) Route switching device, network switching system and route switching method
US6195334B1 (en) Apparatus and method for terminating a data transfer in a network switch in response to a detected collision
US9485053B2 (en) Long-distance RapidIO packet delivery
JP2003050788A (en) Apparatus and method for distribution of signal from high level data link controller to multiple digital signal processor core
CN102790663B (en) Full-hardware network interface applied to very long baseline interferometry (VLBI) hardware related processor
CN119946164A (en) A PCIe-Ethernet high-speed data transmission system based on FPGA
US7010579B1 (en) Direct data routing system
US20040151175A1 (en) Transparent data format within host device supporting differing transaction types
CN117376442B (en) Remote data concentrator protocol conversion method and equipment based on hardware processing architecture

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