Data sharing device, data sharing method and communication system

By using a data sharing device to connect data modules via high-speed and low-speed buses, combined with a buffer and state machine module, the inefficiency and compatibility issues of traditional power control and protection devices in processing and transmitting massive amounts of battery cell data are solved, enabling flexible data module expansion and efficient data transmission.

CN121441995APending Publication Date: 2026-01-30CONTEMPORARY AMPEREX FUTURE ENERGY RES INST (SHANGHAI) LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411038130.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-07-30
Publication Date
2026-01-30

AI Technical Summary

Technical Problem

Traditional power control and protection devices cannot effectively process and transmit massive amounts of battery cell data, resulting in low data transmission efficiency, lack of flexibility and versatility, and difficulty in compatibility with different types of data modules.

Method used

A data sharing device is used to connect to the data module through two types of buses (high-speed and low-speed buses) to realize the exchange and forwarding of message information. The buffer stores message information according to priority and relays it through the state machine module, which is compatible with different types of data modules.

Benefits of technology

It improves the scalability of the data module and the flexibility of chip selection, enhances data processing capabilities and transmission efficiency, and ensures the stability of data storage and the real-time performance of transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121441995A_ABST
    Figure CN121441995A_ABST
Patent Text Reader

Abstract

The invention discloses a data sharing device, a data sharing method and a communication system, the data sharing device comprises a first routing module and a second routing module, and the first routing module is connected with at least one data module through a first bus; the second routing module is respectively connected with at least one data module through a second bus; the data sharing device is used for receiving message information sent by at least one data module through a first bus or receiving message information sent by at least one data module through a second bus, and forwarding the message information to be sent in the message information to a target data module in the at least one data module through the first bus or the second bus. Thus, the data processing capacity can be improved, the data sharing device can be compatible with different types of data modules, the universality of the data sharing device and the flexibility of the data modules are improved, and then the data transmission efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of data transmission, and in particular to a data sharing device, a data sharing method and a communication system. BACKGROUND

[0002] With the gradual development of energy storage technology, energy storage can be divided into pumped storage, electrochemical energy storage, compressed air energy storage, mechanical energy storage and other technical categories according to energy forms. Among them, electrochemical energy storage technology is getting more and more attention. Compared with pumped storage technology, electrochemical energy storage has many advantages such as high flexibility, good real-time performance and good adaptability. Lithium battery-based energy storage equipment can be deployed on the power generation side, power grid side and user side, and can play a role in peak shaving for the power grid.

[0003] However, with the introduction of energy storage products, traditional power control protection devices have encountered great challenges, one of which is the transmission and processing of massive data. Traditional power control protection devices cannot achieve such large-scale data processing capabilities, which is not conducive to meeting current data transmission needs and reduces data transmission efficiency. SUMMARY

[0004] The present application provides a data sharing device, a data sharing method and a communication system, which can not only improve data processing capability, but also be compatible with different types of data modules, improve the versatility of the data sharing device and the flexibility of the data module, and further improve the data transmission efficiency.

[0005] The technical solution of the present application is as follows:

[0006] In a first aspect, the present application provides a data sharing device, which comprises a first routing module and a second routing module, wherein:

[0007] The first routing module is connected with at least one data module through a first bus respectively;

[0008] The second routing module is connected with at least one data module through a second bus respectively;

[0009] The data sharing device is used for receiving message information sent by at least one data module through the first bus, or receiving message information sent by at least one data module through the second bus, and forwarding the to-be-sent message information in the message information to a target data module in the at least one data module through the first bus or the second bus.

[0010] Through the aforementioned technical means, the data sharing device is connected to at least one data module via a first bus and a second bus, enabling the at least one data module to exchange and forward message information with each other through the data sharing device. In this way, each at least one data module is connected to the data sharing device via different types of buses. When adding or removing data modules, only the first and second buses between that data module and the data sharing board need to be connected or disconnected, without affecting the connections between other data modules and the data sharing device. Therefore, except for the fixed slot of the data sharing device, the number and slot selection of the remaining data modules are very flexible, reducing wiring complexity and improving the scalability of the data modules. Moreover, since at least one data module is connected to the data sharing device via the first and second buses, the data module can choose a matching bus to communicate with the data sharing device, thus ensuring compatibility with different types of data modules and improving the flexibility of chip selection for the data modules. In addition, this structure, which includes a data sharing device and at least one data module, can also improve data processing capabilities. Furthermore, since the data sharing device only acts as a relay station for at least one data module, it can also accommodate the data transmission characteristics and requirements of both traditional and new power systems, thereby improving data transmission efficiency.

[0011] In some embodiments, the first routing module includes a first state machine module, at least one first receiving buffer, and at least one first transmitting buffer; wherein: at least one data module is connected to at least one first receiving buffer via a first bus, and caches the message information sent by at least one data module in the corresponding first receiving buffer; at least one first receiving buffer and at least one first transmitting buffer are both connected to the first state machine module, and the first state machine module reads the message information to be sent from the first receiving buffer and caches the message information to be sent in the first transmitting buffer corresponding to the target data module via the first state machine module; at least one first transmitting buffer is also connected to at least one data module via the first bus, and sends the message information to be sent in the first transmitting buffer to the target data module via the first bus.

[0012] Through the aforementioned technical means, at least one first receiving buffer and at least one first transmitting buffer in the first routing module are connected to at least one data module and a first state machine module. Thus, by using the first receiving buffer and the first transmitting buffer as interfaces between at least one data module and the data sharing device, and using the first state machine module as a relay, data loss due to insufficient buffer size is avoided. This facilitates data sharing with other routing modules, provides buffering for data in the event of routing conflicts, prevents data loss, and improves the stability of data storage in the data sharing device.

[0013] In some embodiments, the first receiving buffer includes a first type of receiving buffer and a second type of receiving buffer, wherein: at least one data module is connected to at least one first type of receiving buffer via a first bus, and buffers message information with a first priority sent by at least one data module into the corresponding first type of receiving buffer; at least one data module is connected to at least one second type of receiving buffer via a first bus, and buffers message information with a second priority sent by at least one data module into the corresponding second type of receiving buffer; wherein the first priority and the second priority are different.

[0014] Through the above technical means, after the first routing module receives the message information, it first stores the message information into the corresponding receiving buffer according to the priority of the message information. This not only provides caching for data when there is a data routing conflict, thus avoiding data loss, but also prevents low-priority services from affecting the real-time performance of high-priority services, thereby improving the forwarding efficiency of message information.

[0015] In some embodiments, the second routing module includes a second state machine module, at least one second receiving buffer, and at least one second sending buffer; wherein: at least one data module is connected to at least one second receiving buffer via a second bus, and caches the message information sent by at least one data module in the corresponding second receiving buffer; at least one second receiving buffer and at least one second sending buffer are both connected to the second state machine module, and the second state machine module reads the message information to be sent from the second receiving buffer and caches the message information to be sent in the second sending buffer corresponding to the target data module via the second state machine module; at least one second sending buffer is also connected to at least one data module via a second bus, and sends the message information to be sent in the second sending buffer to the target data module via the second bus.

[0016] Through the aforementioned technical means, at least one second receiving buffer and at least one second transmitting buffer in the second routing module are connected to at least one data module and a second state machine module. Thus, by using the second receiving buffer and the second transmitting buffer as interfaces between at least one data module and the data sharing device, and using the second state machine module as a relay, data loss due to insufficient buffer size is avoided. This facilitates data sharing with other routing modules, provides buffering for data in the event of routing conflicts, prevents data loss, and improves the stability of data storage in the data sharing device.

[0017] In some embodiments, the second receive buffer includes a third type of receive buffer and a fourth type of receive buffer, wherein: at least one data module is connected to at least one third type of receive buffer via a second bus, and buffers message information with a third priority sent by at least one data module into the corresponding third type of receive buffer; at least one data module is connected to at least one fourth type of receive buffer via a second bus, and buffers message information with a fourth priority sent by at least one data module into the corresponding fourth type of receive buffer; wherein the third priority and the fourth priority are different.

[0018] Through the above technical means, after the second routing module receives the message information, it first stores the message information into the corresponding receiving buffer according to the priority of the message information. This not only provides caching for data when there is a data routing conflict, thus avoiding data loss, but also prevents low-priority services from affecting the real-time performance of high-priority services, thereby improving the forwarding efficiency of message information.

[0019] In some embodiments, the first routing module further includes a first control module, and the second routing module further includes a second control module; wherein: the first control module is connected to the first state machine module; the second control module is connected to the second state machine module; and the first control module and the second control module are also connected to an external memory.

[0020] Through the aforementioned technical means, the first routing module and the second routing module establish a connection through an external storage device. In this way, even when there is a serious mismatch between the high and low data rates of the first and second routing modules, data sharing can be carried out between the two modules, thereby balancing the amount of packet information between the first and second routing modules and improving data forwarding efficiency.

[0021] Secondly, embodiments of this application provide a data sharing method, which is applied to a data sharing device, and the method includes:

[0022] Receive message information sent by at least one data module through the first bus, or receive message information sent by at least one data module through the second bus;

[0023] Determine the message information to be sent in the message information, and forward the message information to be sent to the target data module in at least one data module through the first bus or the second bus.

[0024] Through the aforementioned technical means, at least one data module exchanges and forwards message information with the data sharing device via a first bus and a second bus. Thus, each data module is connected to the data sharing device via different types of buses. Adding or removing data modules only requires connecting or disconnecting the first and second buses between that data module and the data sharing board, without affecting the connections between other data modules and the data sharing device. Therefore, except for the fixed slot positions of the data sharing device, the number and slot selection of the remaining data modules are highly flexible, reducing wiring complexity and improving the scalability of the data modules. Furthermore, since at least one data module is connected to the data sharing device via a first and second bus, the data module can select a matching bus to communicate with the data sharing device, thereby ensuring compatibility with different types of data modules and improving the flexibility of chip selection for the data modules.

[0025] In some embodiments, the data sharing device includes a first routing module and a second routing module. The first routing module includes a first state machine module, at least one first receiving buffer, and at least one first transmitting buffer. The method further includes: reading message information to be transmitted from the first receiving buffer through the first state machine module, and caching the message information to be transmitted into the first transmitting buffer corresponding to the target data module through the first state machine module; and transmitting the message information to be transmitted in the first transmitting buffer to the target data module through a first bus.

[0026] Through the aforementioned technical means, the first state machine module reads the message information to be sent from the first receive buffer and caches it in the first send buffer corresponding to the target data module, and finally sends it to the target data module. In this way, by using the first receive buffer and the first send buffer as interfaces between at least one data module and the data sharing device, and using the first state machine module as a relay, data loss due to insufficient buffer size is avoided. This facilitates data sharing with other routing modules, provides buffering for data in case of data routing conflicts, prevents data loss, and improves the stability of data storage in the data sharing device.

[0027] In some embodiments, the first receive buffer includes a first type of receive buffer and a second type of receive buffer; the method further includes: buffering message information with a first priority sent by at least one data module into the corresponding first type of receive buffer; buffering message information with a second priority sent by at least one data module into the corresponding second type of receive buffer; wherein the first priority and the second priority are different.

[0028] Through the above technical means, after the first routing module receives the message information, it first stores the message information into the corresponding receiving buffer according to the priority of the message information. This not only provides caching for data when there is a data routing conflict, thus avoiding data loss, but also prevents low-priority services from affecting the real-time performance of high-priority services, thereby improving the forwarding efficiency of message information.

[0029] In some embodiments, after receiving message information sent by at least one data module via the first bus, the method further includes: when the current state of the first routing module is a first state, the first routing module reads message information stored in at least one first receiving buffer, determines multiple destination information in the message information and message information to be sent corresponding to the multiple destination information; when there is a destination conflict among the multiple destination information, determines at least two destination information with a destination conflict, controls the current state of the first routing module to switch from the first state to the second state, and determines the forwarding priority of each of the message information to be sent corresponding to the at least two destination information, reads the message information to be sent corresponding to the at least two destination information in the order of forwarding priority, and caches the read message information to be sent in the first sending buffer corresponding to the target data module; when there is no destination conflict among the multiple destination information, reads the message information to be sent corresponding to the multiple destination information, and caches the read message information to be sent in the first sending buffer corresponding to the target data module.

[0030] By employing the aforementioned technical means, the current state of the first routing module is switched based on the data stored in the first receiving buffer and the content of the message information. This, in turn, controls the read and write operations of the first routing module according to its current state. In this way, the first state machine module can be controlled to promptly move information from the first receiving buffer, preventing excessive message accumulation or loss, improving the accuracy and stability of the data sharing device, and enabling high-priority messages to be forwarded first, thus improving data forwarding efficiency.

[0031] In some embodiments, during the process of reading the message information to be sent corresponding to at least two destination information, the method further includes: determining the longest message length among the message information to be sent corresponding to multiple destination information; when the message information to be sent corresponding to the longest message length is read, determining that all message information to be sent corresponding to multiple destination information has been read, and switching the current state of the first routing module from the first state to the end state.

[0032] By using the above-mentioned technical means, the message information is read from the first receiving buffer according to the length of the message information, which can determine whether the message information has been read completely, thus improving the real-time performance of data forwarding of the data sharing device.

[0033] In some embodiments, the first routing module further includes a first control module, and the second routing module further includes a second control module; forwarding the message information to be sent to a target data module in at least one data module via a first bus includes: determining a first starting address corresponding to the first control module and a second starting address corresponding to the second control module; writing the message information cached in the first routing module into an external memory according to the first starting address, and determining a first write address currently corresponding to the first control module; and reading the message information to be sent cached in the external memory into a first transmission buffer area corresponding to the first routing module, and determining a first read address currently corresponding to the first control module.

[0034] Using the aforementioned technical means, the first control module performs read and write operations in the external memory based on the first write address and the first read address. This avoids read / write conflicts in the external memory that could lead to data overwriting and loss, thus improving the stability of the data sharing device.

[0035] In some embodiments, the method further includes: obtaining the first write address currently corresponding to the first control module; when the first write address reaches the maximum address boundary of the first control module, controlling the first write address to return to the first starting address and continuing to write the message information cached in the first routing module into the external memory; or, obtaining the first read address currently corresponding to the first control module and the second write address currently corresponding to the second control module; when the second write address is consistent with the first read address, stopping the reading of the message information to be sent cached in the external memory.

[0036] Through the aforementioned technical means, when the first control module reaches the maximum address boundary, it returns to the first starting address and continues writing message information, or it stops transferring message information when the first read address matches the second write address. In this way, the data sharing device can perform data reading and writing in the correct storage space, improving the accuracy of information stored in the external memory.

[0037] Thirdly, embodiments of this application provide a communication system, which includes an external memory, at least one data module, and a data sharing device as described in any of the first aspects, wherein the data sharing device is connected to the external memory and the at least one data module respectively; wherein: the data sharing device is used to execute a data sharing method as described in any of the second aspects.

[0038] It should be understood that the above general description and the following detailed description are merely exemplary and explanatory, and are not intended to limit the technical solutions of this application. Attached Figure Description

[0039] Figure 1 This is a schematic diagram of the composition structure of a data sharing device provided in an embodiment of this application;

[0040] Figure 2 A schematic diagram of the composition structure of a communication system provided in this application embodiment. Figure 1 ;

[0041] Figure 3 A schematic diagram of the composition structure of a communication system provided in this application embodiment. Figure 2 ;

[0042] Figure 4 A schematic diagram of the composition structure of a communication system provided in this application embodiment. Figure 3 ;

[0043] Figure 4 A schematic diagram of the composition structure of a communication system provided in this application embodiment. Figure 6 ;

[0044] Figure 5 A schematic diagram of the composition structure of a communication system provided in this application embodiment. Figure 7 ;

[0045] Figure 1 A flowchart illustrating a data sharing method provided in this application embodiment. Figure 8 ;

[0046] Figure 2 A flowchart illustrating a data sharing method provided in this application embodiment. Figure 9 ;

[0047] Figure 10 This application provides a schematic diagram of the internal state machine of a data sharing device according to an embodiment of the present application.

[0048] Figure 3 A flowchart illustrating a data sharing method provided in this application embodiment. Figure 11 ;

[0049] Figure 4 A flowchart illustrating a data sharing method provided in this application embodiment. Figure 12 ;

[0050] Figure 13 This is a schematic diagram of data interaction of a data sharing device provided in an embodiment of this application;

[0051] Figure 6 A schematic diagram of the composition structure of a communication system provided in this application embodiment. Figure 1 . Detailed Implementation

[0052] In order to gain a more detailed understanding of the features and technical content of the embodiments of this application, the implementation of the embodiments of this application will be described in detail below with reference to the accompanying drawings. The accompanying drawings are for reference and illustration only and are not intended to limit the embodiments of this application.

[0053] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing embodiments of this application only and is not intended to limit this application.

[0054] In the following description, references are made to “some embodiments,” which describe a subset of all possible embodiments. However, it is understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.

[0055] It should also be noted that the terms "first, second, and third" used in the embodiments of this application are only used to distinguish similar objects and do not represent a specific order of objects. It is understood that "first, second, and third" can be interchanged in a specific order or sequence where permitted, so that the embodiments of this application described herein can be implemented in an order other than that illustrated or described herein.

[0056] Furthermore, the reference to "embodiment" herein means that a particular feature, structure, or characteristic described in connection with an embodiment may be included in at least one embodiment of this application. The appearance of this phrase in various places throughout the specification does not necessarily refer to the same embodiment, nor is it a separate or alternative embodiment mutually exclusive with other embodiments. It will be explicitly and implicitly understood by those skilled in the art that the embodiments described herein can be combined with other embodiments.

[0057] The following is a description of the relevant technologies used in this application.

[0058] New energy batteries are being used more and more widely in daily life and industry. For example, new energy vehicles equipped with batteries are already widely used. In addition, batteries are being used more and more in the field of energy storage.

[0059] Currently, new energy batteries are being used more and more widely in daily life and industry. They are not only used in energy storage systems for hydropower, thermal power, wind power, and solar power plants, but also extensively in electric vehicles such as electric bicycles, electric motorcycles, and electric cars, as well as in aerospace and other fields. With the continuous expansion of the application areas of power batteries, the market demand is also constantly increasing.

[0060] In this embodiment, the battery can be a single battery cell. A single battery cell refers to a basic unit capable of converting chemical energy into electrical energy, and can be used to manufacture battery modules or battery packs to supply power to electrical devices. A single battery cell can be a rechargeable battery, which is a battery cell that can be recharged after discharge to reactivate its active materials and continue to be used. A single battery cell can be a lithium-ion battery, sodium-ion battery, sodium-lithium-ion battery, lithium metal battery, sodium metal battery, lithium-sulfur battery, magnesium-ion battery, nickel-metal hydride battery, nickel-cadmium battery, lead-acid battery, etc., and this embodiment is not limited to these types.

[0061] In this embodiment, the battery may also be a single physical module comprising one or more battery cells to provide higher voltage and capacity. When there are multiple battery cells, the multiple battery cells are connected in series, parallel, or mixed via a busbar.

[0062] As lithium battery technology and its commercial applications mature, electrochemical technologies in energy storage are gaining increasing attention. Compared to pumped hydro storage, electrochemical technologies offer numerous advantages, including high flexibility, real-time performance, and adaptability. Lithium-ion battery-based energy storage devices can be deployed on the generation, grid, and user sides, helping to peak and valley loads, improve the absorption of new energy sources, provide inertia support for the grid, and facilitate the construction of zero-carbon generator sets. However, the introduction of energy storage products presents significant challenges to traditional power control and protection devices. A key challenge is the transmission and processing of massive amounts of battery cell data, which traditional devices lack the capacity to handle. Therefore, to accommodate the data transmission characteristics and requirements of both traditional and new power sources, multiple FPGA chips need to be incorporated into the system for data processing.

[0063] Currently, for multi-FPGA chip systems, dedicated communication lines for data transmission can be established between multiple FPGA chips. That is, each FPGA chip is connected to other FPGA chips. Although this connection method is simple and easy to implement and has low data transmission latency, it is not very flexible. Every time an FPGA chip is added or removed, the connection between that FPGA chip and other FPGA chips needs to be established or disconnected, resulting in poor wiring flexibility.

[0064] In related technologies, data exchange between boards in embedded devices can also be achieved based on the PCIe bus. Multiple FPGA chips can be connected to the host via the PCIe bus, with the host acting as a relay device. Data forwarding between the FPGA chips must pass through the host. However, there is an upper limit to the number of slave devices the host can recognize, restricting the number of FPGA chips that can be connected to the host. Furthermore, due to the high complexity of the PCIe bus itself, there are limitations on the slot configuration for FPGA chips, making it difficult to add or remove FPGA chips and resulting in insufficient flexibility. Since each FPGA chip only connects to the host via the PCIe bus, only FPGA chips compatible with the PCIe bus can be selected, significantly restricting the selection of each FPGA chip, leading to high development costs and insufficient versatility and flexibility of the device.

[0065] Based on this, embodiments of this application provide a data sharing device, a data sharing method, and a communication system. The data sharing device is connected to at least one data module via a first bus and a second bus, enabling the at least one data module to exchange and forward message information with each other through the data sharing device. Thus, at least one data module is connected to the data sharing device via different types of buses. When adding or removing data modules, only the first and second buses between that data module and the data sharing board need to be connected or disconnected, without affecting the connections between other data modules and the data sharing device. Therefore, except for the fixed card slot of the data sharing device, the number and slot selection of other data modules are very flexible, reducing wiring complexity and improving the scalability of the data modules. Moreover, since at least one data module is connected to the data sharing device via the first and second buses, the data module can select a matching bus to communicate with the data sharing device, thereby accommodating different types of data modules and improving the flexibility of chip selection for the data modules. In addition, this structure, which includes a data sharing device and at least one data module, can improve data processing capabilities. Furthermore, since the data sharing device only serves as a relay station for at least one data module, it can also take into account the data transmission characteristics and requirements of both traditional and new types of electricity, thereby improving data transmission efficiency.

[0066] The present application will now be described in further detail with reference to the accompanying drawings and specific embodiments.

[0067] Figure 1 This is a schematic diagram illustrating the structural composition of a data sharing device provided in an embodiment of this application. Figure 2 As shown, the data sharing device 101 includes a first routing module 1011 and a second routing module 1012.

[0068] in, Figure 1 A schematic diagram of the composition structure of a communication system provided in this application embodiment.Figure 2 .like Figure 2 As shown, the first routing module 1011 is connected to at least one data module via a first bus; the second routing module 1012 is connected to at least one data module via a second bus.

[0069] The data sharing device 101 is used to receive message information sent by at least one data module via a first bus, or to receive message information sent by at least one data module via a second bus, and to forward message information to be sent in the message information to a target data module in at least one data module via the first bus or the second bus.

[0070] In this embodiment, the data modules can be independent boards with data processing capabilities that need to exchange data with each other, such as FPGA chips. The multiple FPGA chips can be of different types. It should be noted that the data modules can package the data to be exchanged with the target data module into message information, using the data sharing device 101 as a relay, and sharing data through the message information forwarded by the data sharing device 101. For example... Figure 2 As shown, at least one data module may include a first data module 1021, a second data module 1022, ..., an Nth data module 1023, where N is a positive integer greater than or equal to 1.

[0071] In this embodiment of the application, the first bus, i.e. Figure 2 The solid lines represent connection lines that can be high-speed buses, and can achieve communication rates of at least 5Gbps based on gigabit transceivers (GT-Transceivers); the second bus, i.e. Figure 3 The dashed lines represent connection lines that can be low-speed buses, such as buses based on the Controller Area Network (CAN) communication protocol, with communication rates much lower than high-speed buses. For example, they can be buses with speeds lower than 125Kbps. Alternatively, the second bus can be a bus that uses Xilinx's SelectIO IDDR mode to achieve a communication rate of no less than 200Mbps.

[0072] In this embodiment of the application, the data sharing device 101 may be a printed circuit board (PCB), for example, it may be hardware in the form of a board, which is internally provided with a first routing module 1011 and a second routing module 1012.

[0073] Figure 2 A schematic diagram of the composition structure of a communication system provided in this application embodiment. Figure 3 In this application and the following embodiments, a data module as a sub-board is used as an example for specific description.Figure 4 As shown, a data module sharing device 101 is connected to at least one data module, such as a first sub-board 1031, a second sub-board 1032, ..., an Nth sub-board 1033. Each sub-board is connected to the data sharing device 101 via a first bus and a second bus. Based on this connection, the data sharing device 101 receives message information sent by at least one sub-board and temporarily stores the message information in the data sharing device 101. Further, the data sharing device 101 parses the received message information, determines the target sub-board corresponding to the message information, and forwards the message information to the target sub-board. Here, N is a positive integer greater than 1.

[0074] The first routing module 1011 can be a high-speed bus routing module, used to receive message information sent by at least one data module to the data sharing device 101 via the high-speed bus. The data sharing device 101 can also send message information to a target data module via the high-speed bus, thus providing routing for high-speed bus data interaction. Correspondingly, the second routing module 1012 can be a low-speed bus routing module, used to receive message information sent by at least one data module to the data sharing device 101 via the low-speed bus. The data sharing device 101 can also send message information to a target data module via the low-speed bus, thus providing routing for low-speed bus data interaction. The target data module can be any one of the at least one data module, and the message information to be sent is the message information received by the data sharing device 101 that needs to be sent to the target data module. The address of the target data module can be determined based on the message information to be sent.

[0075] For example, Figure 3 A schematic diagram of the composition structure of a communication system provided in this application embodiment. Figure 4 .like Figure 5 As shown, taking N=8 as an example, at least one data module includes a first sub-board 1031, a second sub-board 1032, a third sub-board 1034, a fourth sub-board 1035, a fifth sub-board 1036, a sixth sub-board 1037, a seventh sub-board 1038, and an eighth sub-board 1039. Each sub-board in the data sharing device 101 and at least one sub-board is connected via a high-speed bus and a low-speed bus mounted on the backplane 103. Therefore, when adding a sub-board, only one high-speed bus and one low-speed bus need to be added to or based on the existing one on the backplane 103 to connect the new sub-board to the data sharing device 101; correspondingly, when removing a board, only the removed board needs to be disconnected from the two buses. Therefore, except for the fixed slots of the data sharing device 101, the slots of the other sub-boards are flexibly configurable, improving the scalability of the device.

[0076] Table 1

[0077]

[0078] In this embodiment, Table 1 shows a message format provided by this embodiment. The message can be a message including at least one data frame. The "address" field is not included in the message and refers to the starting address of the message. Each starting address can store BIT0 to BIT31, i.e., 32 bits of data. This message format is a custom communication protocol provided by this embodiment. The "frame header information" field can include information about the data module sending the message, the "buffered frames" field can include the number of data frames included in the message, the "priority" can be written by the data module sending the message, indicating the urgency of the message, the "destination ID information" can refer to the address of the target data module, "REV" is an unused reserved bit, "frame length" indicates the total length of the message, and the "data" field stores the data that the data module needs to share with the target data module. It can be understood that the upper limit of the stored data length in a message can be determined based on a preset "frame length" upper limit value.

[0079] In this embodiment, when the first sub-board 1031 needs to share data with the fifth sub-board 1036, the first sub-board 1031 can generate a message to be sent based on the format shown in Table 1, and send the message to be sent to the data sharing device 101 through one of the two buses connected to the data sharing device 101. Further, after receiving the message to be sent, the data sharing device 101 temporarily stores it, extracts the "destination ID information" field, determines that the target sub-board is the fifth sub-board 1036, and then sends the message to be sent to the fifth sub-board 1036 through one of the two buses connected to the fifth sub-board 1036.

[0080] It should be noted that at least one data module can also be connected to the data sharing device 101 via other buses as needed. When communicating with the data sharing device 101, the data module can select an appropriate bus based on its own chip model, or select a suitable bus for communication with the data sharing device 101 based on environmental factors such as network status for backward compatibility.

[0081] This application provides a data sharing device. The data sharing device is connected to at least one data module via a first bus and a second bus, enabling the at least one data module to exchange and forward message information with each other. Thus, each at least one data module is connected to the data sharing device via different types of buses. When adding or removing data modules, only the first and second buses between that data module and the data sharing board need to be connected or disconnected, without affecting the connections between other data modules and the data sharing device. Therefore, except for the fixed slot of the data sharing device, the number and slot selection of the remaining data modules are very flexible, reducing wiring complexity and improving the scalability of the data modules. Moreover, since at least one data module is connected to the data sharing device via the first and second buses, the data module can choose a matching bus to communicate with the data sharing device, thereby accommodating different types of data modules and improving the flexibility of chip selection for the data modules. Furthermore, this structure, which includes a data sharing device and at least one data module, can also improve data processing capabilities. Since the data sharing device only acts as a relay station for at least one data module, it can also take into account the data transmission characteristics and requirements of both traditional and new power systems, thereby improving data transmission efficiency.

[0082] In yet another embodiment of this application, Figure 4 A schematic diagram of the composition structure of a communication system provided in this application embodiment. Figure 5 .like Figure 5 As shown, the first routing module 1011 includes a first state machine module 1041, at least one first receive buffer, and at least one first transmit buffer; wherein:

[0083] At least one data module is connected to at least one first receiving buffer via a first bus, and the message information sent by at least one data module is cached in the corresponding first receiving buffer.

[0084] At least one first receiving buffer and at least one first transmitting buffer are connected to the first state machine module 1041. The first state machine module 1041 reads the message information to be transmitted from the first receiving buffer and caches the message information to be transmitted in the first transmitting buffer corresponding to the target data module.

[0085] At least one first transmission buffer is also connected to at least one data module via a first bus, and the message information to be sent in the first transmission buffer is sent to the target data module via the first bus.

[0086] In this embodiment, at least one first receiving buffer and at least one first transmitting buffer can both be storage areas managed by the first routing module 1011, located at the entry point of the bus through which the first routing module 1011 receives message information from the data module or at the exit point of the bus through which the first routing module 1011 sends message information to the data module. The size of each buffer can be specifically set according to actual needs.

[0087] In this embodiment, the first state machine module 1041, also referred to as the first routing state machine, is a storage area managed by the first routing module 1011. It stores program code for an internal state machine that manages the data sharing device. This internal state machine controls the state of the first routing module 1011, thereby controlling the process of the first state machine module 1041 reading message information from the first receiving buffer. The first state machine module 1041 can also act as a message relay between the first receiving buffer and the first sending buffer. When a message is sent, the first state machine module 1041 reads the message information from at least one first receiving buffer, temporarily stores it, and forwards it to the first sending buffer corresponding to the target data module. Based on the forwarding priority order of the message information, it forwards it to the target data module via the corresponding first bus.

[0088] As mentioned above, each data module is connected to the data sharing device via a first bus and a second bus, wherein... Figure 5 The diagram showing each bus connected to the data sharing device via three connection lines is merely a data transmission example and not an actual connection example. In practical applications, the first routing module 1011 can communicate based on one of the two bus connections with each data module. After receiving the message information to be sent through the first receiving buffer, it parses and determines the forwarding priority of the message information to be sent. The first state machine module 1041 then stores the message information in the first sending buffer corresponding to the target data module based on the forwarding priority, and further forwards it to the target data module through the first bus.

[0089] It should be noted that a first receive buffer and a first transmit buffer can be set up as a group of buffers. The first routing module 1011 can manage multiple groups of the above buffers, with each group of buffers corresponding to one data module. Alternatively, all data modules can be assigned to the same group of buffers.

[0090] It should also be noted that, Figure 6This explanation uses the following example: the first sub-board 1031, the second sub-board 1032, the third sub-board 1034, and the fourth sub-board 1035 communicate with the first routing module 1011 in the data sharing device via a high-speed bus; the fifth sub-board 1036, the sixth sub-board 1037, the seventh sub-board 1038, and the eighth sub-board 1039 communicate with the second routing module 1012 in the data sharing device via a low-speed bus. It should be understood that, although not shown in the diagram, the first sub-board 1031, the second sub-board 1032, the third sub-board 1034, and the fourth sub-board 1035 also have a low-speed bus connection with the second routing module 1012 in the data sharing device, and the fifth sub-board 1036, the sixth sub-board 1037, the seventh sub-board 1038, and the eighth sub-board 1039 also have a high-speed bus connection with the first routing module 1011 in the data sharing device. Each data module can select an appropriate bus for communication as needed.

[0091] This application provides a data sharing device in which at least one first receiving buffer and at least one first transmitting buffer in a first routing module are connected to at least one data module and a first state machine module. Thus, by using the first receiving buffer and the first transmitting buffer as interfaces between at least one data module and the data sharing device, and using the first state machine module as a relay, data loss due to insufficient buffer size is avoided. This facilitates data sharing with other routing modules, provides buffering for data in case of routing conflicts, prevents data loss, and improves the stability of data storage in the data sharing device.

[0092] In some embodiments, Figure 5 A schematic diagram of the composition structure of a communication system provided in this application embodiment. Figure 6 .like Figure 6 As shown, for each of these at least one first receive buffers, each first receive buffer may include a first type of receive buffer and a second type of receive buffer, thus obtaining at least one first type of receive buffer and at least one second type of receive buffer. Wherein:

[0093] At least one data module is connected to at least one first-type receiving buffer via a first bus, and buffers message information with a first priority sent by at least one data module into the corresponding first-type receiving buffer; at least one data module is connected to at least one second-type receiving buffer via a first bus, and buffers message information with a second priority sent by at least one data module into the corresponding second-type receiving buffer; wherein the first priority and the second priority are different.

[0094] In this embodiment, after receiving the message information, the first routing module can analyze the message information to determine its priority. A first type of receive buffer, referred to as RXFIFO1, is used to receive and buffer message information with a first priority received by the first routing module 1011. A second type of receive buffer, referred to as RXFIFO2, is used to receive and buffer message information with a second priority received by the first routing module 1011. A first transmit buffer, referred to as TXFIFO, is used to buffer message information sent by the data sharing device to the target data module via the first bus. The value of the first priority can be higher than the value of the second priority, and its value can be determined according to the "priority" field of the message information, specifically based on actual needs. For example, the first priority can be high priority, and the second priority can be low priority.

[0095] For example, such as Figure 5 As shown, at least one first-type receive buffer may include four first-type receive buffers, and at least one second-type receive buffer may include four second-type receive buffers. The first sub-board 1031, the second sub-board 1032, the third sub-board 1034, and the fourth sub-board 1035 each correspond to one first-type receive buffer and one second-type receive buffer.

[0096] This application provides a data sharing device. After the first routing module receives the message information, it first stores the message information into the corresponding receiving buffer according to the priority of the message information. This not only provides caching for data when there is a data routing conflict, thus avoiding data loss, but also prevents low-priority services from affecting the real-time performance of high-priority services, thereby improving the forwarding efficiency of message information.

[0097] In some embodiments, continue reading Figure 6 The second routing module 1012 includes a second state machine module 1042, at least one second receive buffer, and at least one second transmit buffer; wherein:

[0098] At least one data module is connected to at least one second receiving buffer via a second bus, and the message information sent by at least one data module is cached in the corresponding second receiving buffer.

[0099] At least one second receiving buffer and at least one second transmitting buffer are connected to the second state machine module 1042. The second state machine module 1042 reads the message information to be sent from the second receiving buffer and caches the message information to be sent to the second transmitting buffer corresponding to the target data module through the second state machine module 1042.

[0100] At least one second transmission buffer is also connected to at least one data module via a second bus, and the message information to be sent in the second transmission buffer is sent to the target data module via the second bus.

[0101] In this embodiment, at least one second receiving buffer and at least one second transmitting buffer can be storage areas managed by the second routing module 1012, located at the entry point of the bus through which the second routing module 1012 receives message information from the data module or at the exit point of the bus through which the second routing module 1012 sends message information to the data module. The size of each buffer can be specifically set according to actual needs.

[0102] In this embodiment, the second state machine module 1042, also referred to as the second routing state machine, is a storage area managed by the second routing module 1012. It stores program code for an internal state machine that manages the data sharing device. This internal state machine controls the state of the second routing module 1012, thereby controlling the process of the second state machine module 1042 reading message information from the second receive buffer. The second state machine module 1042 can also act as a message relay between the second receive buffer and the second transmit buffer. When a message is transmitted, the second state machine module 1042 reads the message information from at least one second receive buffer, temporarily stores it, and forwards it to the second transmit buffer. Based on the forwarding priority order of the message information, it forwards it to the target data module via the corresponding bus.

[0103] In this embodiment, the process of the first routing module 1011 receiving message information to be sent from at least one data module and forwarding it to the target data module can be referred to. The second routing module 1012 can also, according to the state controlled by the second state machine module 1042, read the message information to be sent from at least one second receive buffer, temporarily store it and forward it to the second send buffer corresponding to the target data module, and then send it to the target data module.

[0104] It should be noted that a second receive buffer and a second transmit buffer can be set up as a group of buffers. The second routing module 1012 can manage multiple groups of the above buffers, with each group corresponding to one data module. Alternatively, all data modules can be assigned to the same group of buffers.

[0105] This application provides a data sharing device in which at least one second receiving buffer and at least one second transmitting buffer in a second routing module are connected to at least one data module and a second state machine module. Thus, by using the second receiving buffer and the second transmitting buffer as interfaces between at least one data module and the data sharing device, and using the second state machine module as a relay, data loss due to insufficient buffer size is avoided. This facilitates data sharing with other routing modules, provides buffering for data in case of routing conflicts, prevents data loss, and improves the stability of data storage in the data sharing device.

[0106] In some embodiments, continue reading Figure 6 For each of these at least one second receive buffer, each second receive buffer may include a third type receive buffer and a fourth type receive buffer, thus obtaining at least one third type receive buffer and at least one fourth type receive buffer. Wherein:

[0107] At least one data module is connected to at least one third-type receive buffer via a second bus, and buffers the message information with third priority sent by at least one data module into the corresponding third-type receive buffer; at least one data module is connected to at least one fourth-type receive buffer via a second bus, and buffers the message information with fourth priority sent by at least one data module into the corresponding fourth-type receive buffer; wherein the third priority and the fourth priority are different.

[0108] In this embodiment, the third type of receive buffer can be called RXFIFO1, used to receive and buffer message information with a priority of third priority received by the corresponding second routing module 1012; the fourth type of receive buffer can be called RXFIFO2, used to receive and buffer message information with a priority of fourth priority received by the corresponding second routing module 1012; the second transmit buffer can be called TXFIFO, used to buffer message information sent by the data sharing device to the target data module through the second bus. The value of the third priority can be higher than the value of the fourth priority, and its value can be determined according to the "priority" field of the message information, specifically according to actual needs. For example, the third priority can be a high priority, and the fourth priority can be a low priority.

[0109] For example, such as Figure 6 As shown, at least one third-class receiving buffer may include four first-class receiving buffers, and at least one fourth-class receiving buffer may include four second-class receiving buffers. The fifth sub-board 1036, the sixth sub-board 1037, the seventh sub-board 1038, and the eighth sub-board 1039 each correspond to one third-class receiving buffer and one fourth-class receiving buffer.

[0110] This application provides a data sharing device. After the second routing module receives the message information, it first stores the message information into the corresponding receiving buffer according to the priority of the message information. This not only provides data caching to avoid data loss when data routing conflicts occur, but also avoids low-priority services from affecting the real-time performance of high-priority services, thereby improving the forwarding efficiency of message information.

[0111] In some embodiments, continue reading Figure 7 The first routing module 1011 further includes a first control module 1051, and the second routing module 1012 further includes a second control module 1052; wherein:

[0112] The first control module 1051 is connected to the first state machine module 1041;

[0113] The second control module 1052 is connected to the second state machine module 1042;

[0114] The first control module 1051 and the second control module 1052 are also connected to the external memory 106.

[0115] In this embodiment, the first control module 1051 can also be referred to as the first AXI-HP control module, which is used to control the address stored in the external memory 106 by the first routing module 1011. The second control module 1052 can also be referred to as the second AXI-HP control module, which is used to control the address stored in the external memory 106 by the second routing module 1012.

[0116] It should be noted that the first control module 1051 can obtain at least one cached message information in the first receive buffer through the first state machine module 1041 and store it in the external memory 106, thereby achieving data sharing with the second routing module 1012. Correspondingly, the second control module 1052 can also obtain at least one cached message information in the second receive buffer through the second state machine module 1042 and store it in the external memory 106, thereby achieving data sharing with the first routing module 1011.

[0117] In this embodiment, the external memory 106 may be a double data rate synchronous dynamic (DDR) memory, whose storage area size is generally much larger than that of the first state machine module 1041 and the second state machine module 1042, and can be determined according to actual needs.

[0118] It should be noted that both the first control module 1051 and the second control module 1052 can be connected to the external memory 106 via the AXI-HP bus. Specifically, the first control module 1051 can control the message information stored in the first state machine module 1041 to be transferred to the external memory 106 via the bus when there is a severe mismatch between high and low data rates, or when it is necessary to forward the message information to be sent to the target data module via a low-speed bus. Conversely, when it is necessary to forward the message information to the target data module via a high-speed bus, it can control the first routing module 1011 to read the message information stored by the second routing module 1012 in the external memory 106 and forward it.

[0119] Correspondingly, the second control module 1052 can also control the second routing module 1012 to read and forward the message information stored in the external memory 106 by the first routing module 1011 when it is necessary to forward the message information to the target data module via the low-speed bus, or control the second state machine module 1042 to transport the corresponding message to the external memory 106 via the bus when it is necessary to forward the message information to the target data module via the high-speed bus.

[0120] It should also be noted that the first control module 1051 and the second control module 1052 can share the starting address and cache space of the data cache of the first routing module 1011 and the second routing module 1012 in the external memory 106, as well as their respective read address and write address, so as to determine their own read address based on the write address of the other's routing module.

[0121] This application provides a data sharing device in which a first routing module and a second routing module are connected through an external memory. In this way, data sharing can be performed between the first routing module and the second routing module when there is a serious mismatch between their high and low data rates, thereby balancing the number of message information between the first routing module and the second routing module and improving data forwarding efficiency.

[0122] In yet another embodiment of this application, Figure 1 A flowchart illustrating a data sharing method provided in this application embodiment. Figure 7 .like Figure 5 As shown, this method can be applied to a data sharing device, and the method may include the following steps:

[0123] S201, receive message information sent by at least one data module via the first bus, or receive message information sent by at least one data module via the second bus.

[0124] S202, determine the message information to be sent in the message information, and forward the message information to be sent to the target data module in at least one data module through the first bus or the second bus.

[0125] As mentioned earlier, each data module is connected via a first bus and a second bus data sharing device. When a data module needs to share data, it can write the data to be shared into the "data" field of the message information to generate a message. In this way, by using a simpler custom protocol at the protocol layer, the development difficulty and resource consumption are reduced.

[0126] Furthermore, the data module can send message information to the data sharing device via one of the two buses. The data sharing device parses the message information, determines the target data module based on the "destination ID information" field, and then forwards the message information to be sent to the target data module via one of the two buses connected to the target data module. The specific bus used for message forwarding depends on factors such as the target data module's model and actual transmission rate requirements.

[0127] This application provides a data sharing method in which at least one data module exchanges and forwards message information with each other through a first bus and a second bus connected to a data sharing device. Thus, each data module is connected to the data sharing device via different types of buses. When adding or removing data modules, only the first and second buses between that data module and the data sharing board need to be connected or disconnected, without affecting the connections between other data modules and the data sharing device. Therefore, except for the fixed slot positions of the data sharing device, the number and slot selection of other data modules are very flexible, reducing wiring complexity and improving the scalability of the data modules. Moreover, since at least one data module is connected to the data sharing device via the first and second buses, the data module can select a matching bus to communicate with the data sharing device, thereby ensuring compatibility with different types of data modules and improving the flexibility of chip selection for the data modules.

[0128] In yet another embodiment of this application, as in the foregoing embodiments... Figure 8 As shown, the data sharing device includes a first routing module and a second routing module. The first routing module includes a first state machine module, at least one first receiving buffer, and at least one first sending buffer.

[0129] Figure 2 A flowchart illustrating a data sharing method provided in this application embodiment. Figure 8 .like Figure 5 As shown, the method may also include the following steps:

[0130] S301, the message information to be sent is read from the first receiving buffer through the first state machine module, and the message information to be sent is cached in the first sending buffer corresponding to the target data module through the first state machine module.

[0131] In this embodiment, the message information received by the data sharing device through the first bus is processed by the first routing module, i.e., the high-speed bus routing module. It should be noted that, as mentioned above, the message information to be sent received through the first bus is only temporarily stored in the first receiving buffer. The first state machine module then reads the message information from at least one first receiving buffer, determines the target data module based on the message information to be sent, and sends it to the first sending buffer corresponding to the target data module, and then forwards it sequentially to the target data module.

[0132] S302, the message information to be sent in the first transmission buffer is sent to the target data module through the first bus.

[0133] In this embodiment, all message information to be sent cached in the first transmission buffer is sent to the target data module via the first bus. The message information to be sent in the first transmission buffer may originate from at least one first reception buffer via the first state machine module, or it may originate from message information stored in external memory via the first control module. This external memory message information may be received by the second routing module via the second bus and stored in the external memory.

[0134] It should also be noted that, referring to the aforementioned Figure 6 The second routing module includes a second state machine module, at least one second receive buffer, and at least one second transmit buffer. Referring to the method of the first routing module, the second routing module may also include the following steps: reading the message information to be transmitted from the second receive buffer through the second state machine module, and buffering the message information to be transmitted into the second transmit buffer corresponding to the target data module through the second state machine module; transmitting the message information to be transmitted in the second transmit buffer to the target data module through the second bus.

[0135] In this embodiment of the application, the message information received by the data sharing device through the second bus can be processed by the second routing module, namely the low-speed bus routing module.

[0136] It should also be noted that the message information received through the second bus is temporarily stored in the second receiving buffer, relayed through the second state machine module, the target data module is determined and further stored in the second sending buffer corresponding to the target data module, and then forwarded to the target data module in sequence.

[0137] Accordingly, the message information to be sent cached in the second transmit buffer can be obtained from the second receive buffer via the second state machine module, or from at least one of the first receive buffers in the first routing module via external memory.

[0138] This application provides a data sharing method. A first state machine module reads the message information to be sent from a first receive buffer and caches it in a first send buffer corresponding to the target data module, finally sending it to the target data module. Thus, by using the first receive buffer and the first send buffer as interfaces between at least one data module and the data sharing device, and using the first state machine module as a relay, data loss due to insufficient buffer size is avoided. This facilitates data sharing with other routing modules, provides buffering for data in case of routing conflicts, prevents data loss, and improves the stability of data storage in the data sharing device.

[0139] In some embodiments, such as those described above Figure 6 As shown, the first receive buffer includes a first type of receive buffer and a second type of receive buffer. The method may further include: buffering message information with a first priority sent by at least one data module into the corresponding first type of receive buffer; buffering message information with a second priority sent by at least one data module into the corresponding second type of receive buffer; wherein the first priority and the second priority are different.

[0140] In this embodiment, each data module and the first routing module use a FIFO buffer as the interface. This allows the first routing module to parse received message information, extract the priority of the message from the "priority" field, and cache the message in the corresponding first-type receive buffer if the priority is first; otherwise, it is cached in the corresponding second-type receive buffer if the priority is second. The first priority can be a value between 0 and 4, or less than zero, and the second priority can be a value greater than or equal to 5. It can be understood that the content of the "priority" field is filled in by the data module sending the message, and is a value determined based on the urgency of the message.

[0141] Accordingly, in some embodiments, as described above Figure 9 As shown, the second receive buffer may include a third type of receive buffer and a fourth type of receive buffer. The method may further include: buffering message information with a third priority sent by at least one data module into the corresponding third type of receive buffer; buffering message information with a fourth priority sent by at least one data module into the corresponding fourth type of receive buffer; wherein the third priority and the fourth priority are different.

[0142] In this embodiment, the second routing module can also obtain the priority in the "priority" field of the received message information. If the priority is the third priority, the message information is stored in the third type of receiving buffer; if the message information is the fourth priority, the message information is stored in the fourth type of receiving buffer. The third priority can be a value range of 0 to 4 and less than zero, and the fourth priority can be a value range greater than or equal to 5.

[0143] This application provides a data sharing method. After the first routing module receives the message information, it first stores the message information in the corresponding receiving buffer according to the priority of the message information. This not only provides data caching to avoid data loss when there is a data routing conflict, but also avoids low-priority services from affecting the real-time performance of high-priority services, thereby improving the forwarding efficiency of message information.

[0144] In another embodiment of this application, after receiving message information sent by at least one data module via the first bus in step S201 above, the method may further include:

[0145] When the current state of the first routing module is the first state, the first routing module reads at least one message information stored in the first receiving buffer and determines multiple destination information in the message information and the message information to be sent corresponding to the multiple destination information.

[0146] When there is a destination conflict among multiple destination information, at least two destination information with a destination conflict are identified, and the current state of the first routing module is switched from the first state to the second state. The forwarding priority of the message information to be sent corresponding to the at least two destination information is determined. The message information to be sent corresponding to the at least two destination information is read in the order of forwarding priority, and the read message information to be sent is cached in the first sending buffer area corresponding to the target data module.

[0147] Alternatively, in some embodiments, when there is no destination conflict among multiple destination information, the message information to be sent corresponding to multiple destination information is read, and the read message information to be sent is cached in the first sending buffer area corresponding to the target data module.

[0148] Figure 9 This is a schematic diagram of the internal state machine of a data sharing device provided in an embodiment of this application. Figure 9 As shown, both the first routing module and the second routing module include a routing state machine. The state transition of the routing state machine may include the following steps:

[0149] S401 is currently in an idle state.

[0150] In this embodiment of the application, the idle state can also be called the ST_IDLE state, in which no message information is cached in any of the buffers in the first routing module and the second routing module.

[0151] S402 determines whether any buffer contains message information.

[0152] If yes, proceed to step S403; otherwise, return to step S401.

[0153] When the data sharing device is in the ST_IDLE state, if the data in any buffer is not empty, that is, if any buffer contains message information, then step S403 is executed, that is, the device jumps to the first state.

[0154] S403, switch to first state.

[0155] In this embodiment of the application, the first state can also be called the ST_ID state, in which message information of all path buffers is obtained in parallel, including destination ID information and the number of data frames in the corresponding buffer.

[0156] S404, determine if there are messages with the same destination information.

[0157] If yes, proceed to step S405; otherwise, proceed to step S406.

[0158] In the ST_ID state, if no conflict is detected in the destination ID information, the process jumps directly to the third state; if a conflict is detected in the destination ID information, then S405 is executed, which jumps to the second state.

[0159] In this embodiment of the application, the destination information may refer to the "destination ID information" field of the message information.

[0160] S405, switch to the second state.

[0161] In this embodiment, the second state can also be called the ST_JUDGE state. In this state, the data sharing device arbitrates according to the priority of the message information and the number of buffered frames to determine the forwarding order of the message information.

[0162] S406, switch to third state.

[0163] In this embodiment, the third state can also be called the ST_READ state. In this state, after locking all the received buffer message information, one frame of message in each buffer space is read out according to the length information of the message information in the buffer, until the longest message in all buffer FIFOs is read out, the state machine jumps to the end state.

[0164] S407 checks if the longest message has been fully cached.

[0165] S408, switch to the end state.

[0166] In this embodiment of the application, the end state can also be called the ST_END state, which indicates the end of this operation.

[0167] As mentioned above, the internal state machine in the first routing module can detect at least one first receive buffer in the first routing module in real time when the first routing module is in the ST_IDLE state. When one or more of the first receive buffers contain message information, it jumps to the first state, namely the ST_ID state.

[0168] Furthermore, when the first routing module is in the first state, it can transfer the message information in at least one first receiving buffer to the first state machine module for relay, until all the message information in at least one first receiving buffer has been transferred to the first state machine module, at least one first receiving buffer is cleared, and the first routing module enters the end state.

[0169] Referring to the above Figure 9 As shown, during the process of the first state machine module determining that the first routing module is in the first state and reading message information from at least one first receive buffer, if the "destination ID information" field of multiple message information read by the first state machine module from at least one first receive buffer does not conflict, then the first routing module switches from the first state to the third state and reads the message information from the buffer sequentially according to the length of the message information; if the "destination ID information" field of at least two or more message information to be sent in multiple message information read from the buffer conflicts, it indicates that multiple message information needs to be forwarded to the same target data module, then the first routing module switches from the first state to the second state and arbitrates according to the priority of the message information and the number of buffered frames.

[0170] In this embodiment of the application, when it is determined that the "destination ID information" of multiple message information is consistent, the forwarding priority of each message information can be determined, and then the message information can be forwarded in order of forwarding priority from high to low according to the order of forwarding priority.

[0171] For example, if the "priority" field of the message information is divided into only two priorities with weight values ​​of 5 and 0 respectively, and the weight of the number of buffered frames is 1. Taking the receive buffer RXFIFO1 (high-priority receive buffer), i.e., the first type of receive buffer, as an example, if this first type of receive buffer contains 3 frames of message information, then the forwarding priority of this service is 5+3=8. Taking the receive buffer RXFIFO2 (low-priority receive buffer), i.e., the second type of receive buffer, as an example, if this buffer contains 6 frames of message information, then the forwarding priority of this service is 0+6=6. In this case, if there is a destination ID conflict, since the forwarding priority of the message information in the first type of receive buffer is higher than the forwarding priority of the message information in the second type of receive buffer, the message information in the high-priority buffer, i.e., the message information in the first type of receive buffer, will be forwarded first.

[0172] In some embodiments, after receiving message information sent by at least one data module via the second bus in step S201 above, the method may further include:

[0173] When the current state of the second routing module is the first state, the second routing module reads the message information stored in at least one second receiving buffer, and determines multiple destination information in the message information and the message information to be sent corresponding to the multiple destination information.

[0174] When there is a destination conflict among multiple destination information, at least two destination information with a destination conflict are identified, and the current state of the second routing module is switched from the first state to the second state. The forwarding priority of the message information to be sent corresponding to the at least two destination information is determined, the message information to be sent corresponding to the at least two destination information is read in the order of forwarding priority, and the read message information to be sent is cached in the first sending buffer area corresponding to the target data module.

[0175] Alternatively, in some embodiments, when there is no destination conflict among multiple destination information, the message information to be sent corresponding to multiple destination information is read, and the read message information to be sent is cached in the second sending buffer area corresponding to the target data module.

[0176] In this embodiment of the application, when the current state of the second routing module is the first state, the second routing module reads the message information to be sent stored in at least one second receiving buffer and temporarily stores it in the second state machine module for relay until the message information to be sent is read and the current state of the second routing module is switched from the first state to the end state.

[0177] In this embodiment of the application, the second routing module also includes the features described above. Figure 10When message information is stored in one or more of the first or second receive buffers in the second routing module, the routing state machine switches the second routing module from the ST_IDLE state to the ST_ID state.

[0178] It should be noted that the first routing module and the second routing module each have a routing state machine set up. Therefore, the first routing module and the second routing module may be in different states at the same time.

[0179] It should be noted that, for the second routing module, referring to the state switching process of the internal state machine in the first routing module, if there is no conflict in the "destination ID information" field of the message information read by the second state machine module from at least one second receiving buffer, the second routing module switches from the first state to the third state and reads the message information from the buffer sequentially according to the length of the message information; otherwise, if there is a conflict, the second routing module switches from the first state to the second state and, referring to the method of determining the forwarding priority in the first routing module, arbitrates the message information in at least one second receiving buffer to determine which buffer's message information to forward first for multiple message information to be forwarded to the same target data module.

[0180] This application provides a data sharing method that switches the current state of a first routing module based on the data stored in a first receiving buffer and the content of the message information. This allows for control of the first routing module's read and write operations based on its current state. This enables the first state machine module to promptly move information from the first receiving buffer, preventing excessive message accumulation or loss, improving the accuracy and stability of the data sharing device, and allowing high-priority messages to be forwarded first, thus improving data forwarding efficiency.

[0181] In some embodiments, Figure 3 A flowchart illustrating a data sharing method provided in this application embodiment. Figure 10 .like Figure 6 As shown, for the method in the foregoing embodiments, in the process of reading the message information to be sent corresponding to at least two destination information, the method may further include the following steps:

[0182] S501, determine the longest message length among the message information to be sent corresponding to multiple destination information.

[0183] It should be noted that, during the process of storing the message information in at least one first receiving buffer into the first state machine module, the total message length of each message to be sent can be determined according to the "frame length" field of the message information in the buffer, and the total message length of each message to be sent can be compared to determine the maximum message length.

[0184] S502, when the message information to be sent corresponding to the longest message length has been read, it is determined that all the message information to be sent corresponding to multiple destination information has been read, and the current state of the first routing module is switched from the first state to the end state.

[0185] Furthermore, the first state machine module can sequentially read the message information in at least one first receive buffer from shortest to longest until the message information to be sent with the largest value of the "frame length" field in each buffer is read out, and the first routing module jumps to the end state.

[0186] In some embodiments, the second state machine module in the second routing module may, during the process of reading the message information to be sent corresponding to the two destination information, determine the longest message length among the message information to be sent corresponding to multiple destination information stored in at least one second receiving buffer, and further determine that all message information to be sent corresponding to multiple destination information has been read when the message information to be sent corresponding to the longest message length has been read, and switch the current state of the second routing module from the first state to the end state.

[0187] This application provides a data sharing method that reads message information from a first receiving buffer based on the length of the message information, thereby determining whether the message information has been completely read and improving the real-time performance of data forwarding in the data sharing device.

[0188] In yet another embodiment of this application, as described above Figure 11 As shown, the first routing module also includes a first control module, and the second routing module also includes a second control module.

[0189] Figure 4 A flowchart illustrating a data sharing method provided in this application embodiment. Figure 11 .like Figure 12 As shown, in step S202 above, forwarding the message information to be sent to the target data module in at least one data module via the first bus may include the following steps:

[0190] S601, determine the first address corresponding to the first control module and the second address corresponding to the second control module.

[0191] Figure 12 This is a schematic diagram of data interaction in a data sharing device provided in an embodiment of this application. Figure 12As shown, the first control module 1051 and the second control module 1052 share data such as the starting address of the high-speed data cache, the high-speed data cache space, the starting address of the low-speed data cache, and the low-speed data cache space. The starting address of the high-speed data cache refers to the address allocated to the first routing module for storing data in external memory; the high-speed cache space refers to the size of the storage space allocated to the first routing module in external memory, determining the end position of data storage in external memory. Similarly, the starting address of the low-speed data cache refers to the address allocated to the second routing module for storing data in external memory; the low-speed data cache space refers to the size of the storage space allocated to the second routing module in external memory, determining the end position of data storage in external memory.

[0192] In this embodiment of the application, the first starting address corresponding to the first control module 1051 may refer to the starting address of the high-speed data cache, and the second starting address corresponding to the second control module 1052 may refer to the starting address of the low-speed data cache.

[0193] It should be noted that, Figure 12 The example shown is only one example. The steps of the first control module 1051 and the second control module 1052 obtaining the message information in the buffer through the internal storage area are omitted. Therefore, the first state machine module and the second state machine module are not shown.

[0194] It should also be noted that both the first control module 1051 and the second control module 1052 can be connected to the controller of the external memory via the AXI-HP bus, and then connected to the controller through the controller of the external memory. Figure 13 Not shown in the image.

[0195] S602, based on the first address, write the message information cached in the first routing module into the external memory, and determine the first write address currently corresponding to the first control module; and read the message information to be sent cached in the external memory into the first transmission buffer area corresponding to the first routing module, and determine the first read address currently corresponding to the first control module.

[0196] It should be noted that after each write operation based on the starting address of the high-speed data cache and the high-speed data cache space, the first routing module sends the current write address in external memory to the second routing module for sharing. Alternatively, after each read operation based on the starting address of the low-speed data cache and the low-speed data cache space, the first routing module sends the current read address in external memory to the second routing module for sharing.

[0197] In this embodiment, the first write address may refer to the last time the first control module 1051 stored the message information in the first routing module to the external memory, and the first read address may refer to the last time the first control module 1051 read the message information stored in the second routing module from the external memory.

[0198] Therefore, when there is a serious mismatch between high and low speed data rates, the first control module 1051 can continue to write the message information to the external memory according to the first write address, or continue to read the message information stored in the external memory by the second routing module according to the first read address, and store it in the first state machine module after reading, and forward it to the target data module through the first receive buffer.

[0199] In some embodiments, correspondingly, in step S202 above, forwarding the message information to be sent to the target data module in at least one data module via the second bus may include: determining the second starting address corresponding to the second control module and the first starting address corresponding to the first control module; further, according to the second starting address, writing the message information cached in the second routing module into the external memory and determining the current second write address of the second module; and reading the message information to be sent cached in the external memory into the second transmission buffer corresponding to the second routing module and determining the current second read address corresponding to the second control module.

[0200] In this embodiment of the application, the second routing module sends the current read address and write address in the external memory to the first routing module for sharing after each read or write operation.

[0201] Alternatively, in some embodiments, the second control module 1052 stores the message information stored in the second state machine module to the external memory according to the second write address corresponding to the second routing module, or reads the message information stored in the external memory and stores it to the second state machine module according to the second read address corresponding to the second routing module.

[0202] In this embodiment, the second write address may refer to the last time the second control module 1052 stored the message information in the second routing module to the external memory, and the second read address may refer to the last time the second control module 1052 read the message information stored in the first routing module from the external memory.

[0203] Therefore, when there is a serious mismatch between high and low speed data rates, the second control module 1052 can continue to write the message information to the external memory according to the second write address, or continue to read the message information stored in the external memory by the first routing module according to the second read address, and store it in the second state machine module after reading, and forward it to the target data module through the second transmission buffer.

[0204] This application provides a data sharing method in which a first control module performs read and write operations in an external memory based on a first write address and a first read address. This avoids read / write conflicts in the external memory that could lead to data overwriting and loss, thus improving the stability of the data sharing device.

[0205] In some embodiments, the method may further include: obtaining the first write address currently corresponding to the first control module; when the first write address reaches the maximum address boundary of the first control module, controlling the first write address to return to the first starting address and continuing to write the message information cached in the first routing module into the external memory; or, obtaining the first read address currently corresponding to the first control module and the second write address currently corresponding to the second control module; when the second write address is consistent with the first read address, stopping the reading of the message information to be sent cached in the external memory.

[0206] In this embodiment, when the first control module reads message information from the external memory, it always compares the first read address with the second write address. If the first read address and the second write address are the same, it indicates that the first control module has finished reading the message information stored by the second routing module in the external memory, and it is considered as an empty read. Otherwise, if the first read address is less than the second write address, the first control module continues to read.

[0207] In addition, when the first control module writes message information to the external memory, if the first write address reaches the maximum address boundary of the high-speed data cache space, it will roll back to the beginning address of the cache and continue writing.

[0208] In some embodiments, correspondingly, for the second control module, the method may further include: obtaining the second write address currently corresponding to the second control module; when the second write address reaches the maximum address boundary of the second control module, controlling the second write address to return to the second starting address and continuing to write the message information cached in the second routing module into the external memory; or, obtaining the second read address currently corresponding to the second control module and the first write address currently corresponding to the first control module; when the first write address and the second read address are consistent, stopping the reading of the message information to be sent cached in the external memory.

[0209] In this embodiment, when the second control module reads message information from the external memory, it always compares the second read address with the first write address. If the second read address matches the first write address, it indicates that the second control module has finished reading the message information stored by the first routing module in the external memory, and this is considered an empty read. Otherwise, if the second read address is less than the first write address, the second control module continues reading.

[0210] In addition, when the second control module writes message information to the external memory, if the second write address reaches the maximum address boundary of the low-speed data cache space, it will roll back to the starting address of the low-speed cache and continue writing.

[0211] This application provides a data sharing method. When the maximum address boundary is reached, the first control module returns to the first starting address and continues writing message information, or stops transferring message information when the first read address matches the second write address. In this way, the data sharing device can perform data reading and writing in the correct storage space, improving the accuracy of information stored in the external memory.

[0212] In yet another embodiment of this application, Figure 6 A schematic diagram of the composition structure of a communication system provided in this application embodiment. Figure 13 .like Figure 13 As shown, the communication system includes an external memory 106, at least one data module, and a data sharing device 101 as described in the foregoing embodiments. The data sharing device 101 is connected to the external memory and at least one data module, respectively. The data sharing device 101 is used to execute the data sharing method as described in the foregoing embodiments.

[0213] In the embodiments of this application, such as Figure 5 As shown, the data sharing device 101 is interconnected with other data modules, including the first data module 1021, the second data module 1022, ..., the Nth data module 1023, using one second bus (low-speed bus) and one first bus (high-speed bus). Therefore, except for the fixed card slot of the data sharing device 101, the positions of the other cards are flexibly configurable, greatly improving the scalability of the device. The high-speed bus achieves a communication rate of at least 5Gbps based on a gigabit transceiver, and uses a simpler custom protocol at the protocol layer, reducing development difficulty and resource overhead. The low-speed bus uses Xilinx's SelectIO IDDR mode to achieve a communication rate of at least 200Mbps, and employs a serial communication method based on a clock data recovery algorithm, which reduces the transmission of one set of clock lines compared to the source synchronous communication method.

[0214] In this application embodiment, as in the foregoing embodiments Figure 9As shown, the data sharing device 101 consists of a first routing module (high-speed bus routing module) 1011 and a second routing module (low-speed bus routing module) 1012. The high-speed bus routing module provides routing for high-speed bus data interaction, and the low-speed bus routing module provides routing for low-speed bus data interaction. Each node uses a buffer (FIFO buffer) as an interface with the routing module to buffer data and prevent data loss when data routing conflicts occur.

[0215] The received data buffer between each node has a first type or a third type of received buffer (RXFIFO1) and a second type or a fourth type of received buffer (RXFIFO2). RXFIFO1 is used for storing high-priority message information, and RXFIFO2 is used for storing low-priority message information, which can prevent low-priority services from affecting the real-time performance of high-priority services.

[0216] In particular, an external memory (external DDR) is used for data exchange between the high-speed bus routing module and the low-speed bus routing module. This is designed to facilitate large-scale data caching in the case of severe mismatch between high and low speed data rates.

[0217] It should be noted that, as mentioned above Figure 6 As shown, both the first routing module 1011 and the second routing module 1012 contain internal state machines. The states, i.e., state transitions, included in these internal state machines are as follows:

[0218] (1) ST_IDLE state: Idle state. When any receive buffer (buffer FIFO) is not empty, it jumps to the ST_ID state.

[0219] (2) ST_ID state: First state, in parallel, acquire message information from all receive buffer FIFOs, including the target ID and the number of data frames in the corresponding buffer. If there are no duplicate target IDs (conflicts), jump directly to the ST_READ state. If there are conflicting target IDs, jump to the ST_JUDGE state.

[0220] (3) ST_JUDGE State: The second state, arbitration is performed based on the priority of the message information and the number of buffered frames. The priority of the message information is divided into two priority levels, high and low, with weights of 5 and 0 respectively, and the weight of the number of buffered frames is 1. Taking the first type of receive buffer or the third type of receive buffer, i.e., receive buffer RXFIFO1 (high priority receive buffer), as an example, if this buffer contains 3 frames of message information, then the priority of this service is 5+3=8. Taking the second type of receive buffer or the fourth type of receive buffer, i.e., receive buffer RXFIFO2 (low priority receive buffer), as an example, if this buffer contains 6 frames of message information, then the priority of this service is 0+6=6. In this case, if there is a message ID conflict, the message information in the high priority buffer is still forwarded first, as detailed in the protocol frame definition in Table 1.

[0221] (4) ST_READ state: The third state, after locking all the message information in the receive buffer, read out one frame of message from each buffer space according to the length information in the buffer, until the longest message in all buffer FIFOs is read out, the state machine jumps to the end state (ST_END state).

[0222] It should also be noted that the first routing module 1011 and the second routing module 1012 can also achieve data sharing based on the external memory (DDR) 105. (See reference...) ​ The high-speed and low-speed data interaction is mainly composed of at least one buffer, including RXFIFO, TXFIFO, and AXI-HP control module, which consists of a first control module and a second control module. RXFIFO is used to store the data received on this side to be transferred to DDR, TXFIFO is used to store the data from DDR to be transmitted to each node, and AXI-HP control module is mainly used to drive the AXI-HP bus and is responsible for the storage address control of the service.

[0223] When sharing data, the application first configures the starting address of the high-speed data cache, the high-speed data cache space, the starting address of the low-speed data cache, and the low-speed data cache space. The starting address of the cache determines the starting position of the relevant data storage, and the cache space determines the maximum ending position of the relevant data.

[0224] Secondly, in order to improve execution efficiency, two independent AXI-HP control modules are used to control the data interaction with DDR.

[0225] Finally, taking the first control module (AXI-HP control module 1) as an example, if the current write address reaches the maximum address boundary, it will automatically roll back to the starting address. The second control module (AXI-HP control module 2) constantly compares its own read address with the write address of the first control module. When the two are equal, it is considered to be empty; otherwise, it continues to move data.

[0226] Thus, in this embodiment, not only is high-speed and low-speed interaction of message information between at least one data module achieved, but also, apart from the fixed card slot of the data sharing device, the number of other data modules and the selection of card slots are very flexible. Furthermore, both the high-speed and low-speed implementation schemes are characterized by low development difficulty and low resource consumption, making the scheme more versatile and robust.

[0227] It should be understood that the descriptions of the above storage medium and device embodiments are similar to the descriptions of the above method embodiments, and have similar beneficial effects. For technical details not disclosed in the storage medium, storage medium, and device embodiments of this application, please refer to the descriptions of the method embodiments of this application for understanding.

[0228] It should be understood that the phrases "one embodiment," "an embodiment," or "some embodiments" mentioned throughout the specification mean that a specific feature, structure, or characteristic related to an embodiment is included in at least one embodiment of this application. Therefore, "in one embodiment," "in one embodiment," or "in some embodiments" appearing throughout the specification do not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. It should be understood that in the various embodiments of this application, the sequence numbers of the above-described processes do not imply a sequential order of execution; the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application. The sequence numbers of the above-described embodiments are merely for descriptive purposes and do not represent the superiority or inferiority of the embodiments. The descriptions of the various embodiments above tend to emphasize the differences between the various embodiments; their similarities or commonalities can be referred to mutually, and for the sake of brevity, they will not be repeated here.

[0229] It should also be noted that, in this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.

[0230] The sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.

[0231] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.

[0232] The features disclosed in the several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.

[0233] The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method or device embodiments.

[0234] The above are merely specific embodiments of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

[0235] The above description is merely a preferred embodiment of this application and is not intended to limit the scope of protection of this application. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of this application should be included within the scope of protection of this application.

Claims

1. A data sharing apparatus, characterized by comprising: The data sharing device comprises a first routing module and a second routing module, wherein: The first routing module is connected with at least one data module through a first bus respectively; The second routing module is connected with the at least one data module through a second bus respectively; The data sharing device is configured to receive message information sent by the at least one data module through the first bus or receive message information sent by the at least one data module through the second bus, and forward to-be-sent message information in the message information to a target data module in the at least one data module through the first bus or the second bus.

2. The data sharing apparatus according to claim 1, wherein The first routing module comprises a first state machine module, at least one first receiving buffer and at least one first sending buffer; wherein: The at least one data module is connected with the at least one first receiving buffer through the first bus respectively, and message information sent by the at least one data module is cached to the corresponding first receiving buffer; The at least one first receiving buffer and the at least one first sending buffer are connected with the first state machine module, and to-be-sent message information is read from the first receiving buffer through the first state machine module, and the to-be-sent message information is cached to the first sending buffer corresponding to the target data module through the first state machine module; The at least one first sending buffer is further connected with the at least one data module through the first bus respectively, and the to-be-sent message information in the first sending buffer is sent to the target data module through the first bus.

3. The data sharing apparatus according to claim 2, wherein The first receiving buffer comprises a first type receiving buffer and a second type receiving buffer, wherein: The at least one data module is connected with at least one first type receiving buffer through the first bus respectively, and message information with a first priority sent by the at least one data module is cached to the corresponding first type receiving buffer; The at least one data module is connected with at least one second type receiving buffer through the first bus respectively, and message information with a second priority sent by the at least one data module is cached to the corresponding second type receiving buffer; The first priority is different from the second priority.

4. The data sharing apparatus according to claim 1, wherein The second routing module comprises a second state machine module, at least one second receiving buffer and at least one second sending buffer; wherein: The at least one data module is connected with the at least one second receiving buffer through the second bus respectively, and message information sent by the at least one data module is cached to the corresponding second receiving buffer; The at least one second receiving buffer and the at least one second sending buffer are connected with the second state machine module, and to-be-sent message information is read from the second receiving buffer through the second state machine module, and the to-be-sent message information is cached to the second sending buffer corresponding to the target data module through the second state machine module; The at least one second sending buffer area is also connected to the at least one data module respectively through the second bus, and the to-be-sent message information in the second sending buffer area is sent to the target data module through the second bus.

5. The data sharing apparatus according to claim 4, wherein The second receiving buffer area includes third-type receiving buffer areas and fourth-type receiving buffer areas. The at least one data module is connected to at least one third-type receiving buffer area respectively through the second bus, and message information with a third priority sent by the at least one data module is cached to the corresponding third-type receiving buffer area. The at least one data module is connected to at least one fourth-type receiving buffer area respectively through the second bus, and message information with a fourth priority sent by the at least one data module is cached to the corresponding fourth-type receiving buffer area. The third priority is different from the fourth priority.

6. The data sharing apparatus according to any one of claims 1 to 5, characterized in that, The first routing module further includes a first control module, and the second routing module further includes a second control module. The first control module is connected to the first state machine module. The second control module is connected to the second state machine module. The first control module and the second control module are further connected to an external memory.

7. A data sharing method characterized by, The method is applied to a data sharing device, and the method includes: receiving message information sent by at least one data module through a first bus or receiving the message information sent by the at least one data module through a second bus; determining to-be-sent message information in the message information, and forwarding the to-be-sent message information to a target data module in the at least one data module through the first bus or the second bus.

8. The method of claim 7, wherein, The data sharing device includes a first routing module and a second routing module, the first routing module includes a first state machine module, at least one first receiving buffer area, and at least one first sending buffer area, and the method further includes: reading to-be-sent message information from the first receiving buffer area through the first state machine module, and caching the to-be-sent message information to a first sending buffer area corresponding to a target data module through the first state machine module; sending the to-be-sent message information in the first sending buffer area to the target data module through the first bus.

9. The method of claim 8, wherein, The first receiving buffer area includes first-type receiving buffer areas and second-type receiving buffer areas, and the method further includes: caching message information with a first priority sent by the at least one data module to the corresponding first-type receiving buffer area; caching message information with a second priority sent by the at least one data module to the corresponding second-type receiving buffer area; The first priority is different from the second priority.

10. The method of claim 8, wherein, After the message information sent by the at least one data module is received through the first bus, the method further includes: In a case that the current state of the first routing module is a first state, the first routing module reads the message information stored in the at least one first receiving buffer, determines a plurality of destination information in the message information and a plurality of to-be-sent message information corresponding to the plurality of destination information; In a case that there is a destination conflict in the plurality of destination information, at least two destination information of the destination conflict are determined, the current state of the first routing module is switched from the first state to a second state, a forwarding priority of each of the to-be-sent message information corresponding to the at least two destination information is determined, the to-be-sent message information corresponding to the at least two destination information is read in an order of the forwarding priority, and the read to-be-sent message information is cached to a first sending buffer corresponding to the target data module; In a case that there is no destination conflict in the plurality of destination information, the to-be-sent message information corresponding to the plurality of destination information is read, and the read to-be-sent message information is cached to the first sending buffer corresponding to the target data module.

11. The method of claim 10, wherein, In the process of reading the to-be-sent message information corresponding to the at least two destination information, the method further comprises: determining a longest message length in the to-be-sent message information corresponding to the plurality of destination information; in a case that the to-be-sent message information corresponding to the longest message length is read, it is determined that the to-be-sent message information corresponding to the plurality of destination information is completely read, and the current state of the first routing module is switched from the first state to an end state.

12. The method of claim 8, wherein, The first routing module further comprises a first control module, and the second routing module further comprises a second control module; The forwarding of the to-be-sent message information to the target data module in the at least one data module through the first bus comprises: determining a first first address corresponding to the first control module and a second first address corresponding to the second control module; writing the message information cached in the first routing module to an external storage according to the first first address, determining a first write address currently corresponding to the first control module, and reading the to-be-sent message information cached in the external storage to a first sending buffer corresponding to the first routing module, and determining a first read address currently corresponding to the first control module.

13. The method of claim 12, wherein, The method further comprises: acquiring the first write address currently corresponding to the first control module, in a case that the first write address reaches a maximum address boundary of the first control module, controlling the first write address to return to the first first address and continue to write the message information cached in the first routing module to the external storage; or acquiring the first read address currently corresponding to the first control module and a second write address currently corresponding to the second control module, in a case that the second write address is consistent with the first read address, stopping reading the to-be-sent message information cached in the external storage.

14. A communication system, characterized by The communication system comprises an external memory, at least one data module and the data sharing device as claimed in any one of claims 1 to 6, the data sharing device being connected with the external memory and the at least one data module respectively; wherein: The data sharing device is used for executing the data sharing method as claimed in any one of claims 7 to 13.