A data transmission method and device based on serial port

By subcontracting the data frame at the data sending end and allocating it to the sending buffer area of ​​the target serial port, multiple serial ports can be used to transmit data in parallel. The data receiver sorts and reports data packets through frame numbers, solving the problems of low and unstable serial data transmission efficiency in the existing technology, and achieving efficient and stable data transmission.

CN113515481BActive Publication Date: 2025-05-13LAUNCH TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202110464612.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-04-26
Publication Date
2025-05-13
Estimated Expiration
2041-04-26

AI Technical Summary

Technical Problem

The existing serial port data transmission mechanism has problems such as low transmission efficiency and unstable data transmission and reporting.

Method used

By subpackaging the data frame at the data sending end, and allocating the data packets to the sending buffer area of ​​the target serial port with the smallest data bytes sent for sorting and saving, multiple serial ports can be used to transmit data in parallel. The data receiver sorts and reports data packets through frame numbers to ensure the order of data transmission.

Benefits of technology

It improves the efficiency of data transmission, reduces the instability of data transmission and reporting, and realizes the efficiency and stability of serial port data transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113515481B_ABST
    Figure CN113515481B_ABST
Patent Text Reader

Abstract

The embodiment of the present application discloses a data transmission method and device based on a serial port, which is used to simultaneously reduce the problems of low serial port data transmission efficiency and unstable data transmission and reporting. The method of the embodiment of the present application includes: a data transmitting end obtains a set of data frames to be transmitted; the data transmitting end performs packet processing on the set of data frames to generate a set of data packets; the data transmitting end determines the sent data bytes of each serial port in the serial port set; the data transmitting end allocates each data packet in the data packet set to a sending buffer area corresponding to the target serial port with the smallest currently sent data bytes for sorting and storage; when the target serial port is idle, the data transmitting end wakes up the transmission thread of the target serial port so that the target serial port sends the data packet in the sending buffer area corresponding to the target serial port to the data receiving end.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of data transmission, and more particularly to a data transmission method and apparatus based on a serial port. Background Technology

[0002] In recent years, with the development of technology, the types of data that electronic devices need to process, both between and within themselves, have become increasingly complex and the volume of data has become increasingly massive. The ability to transmit data quickly is a crucial factor restricting the operating speed of electronic devices.

[0003] In the field of electronic devices, serial ports are a crucial data transmission method. The data transmission rate of a serial port determines the data processing capability of an electronic device, thus affecting its overall operating speed. Currently, many electronic devices use two main data transmission mechanisms via serial ports: single-port serial data transmission and multi-port parallel data transmission. In single-port serial data transmission, the data transmission function relies primarily on a single serial port, while in multi-port parallel data transmission, it relies on at least two serial ports for sending and receiving data. It can be seen that the multi-port parallel data transmission mechanism has a higher data transmission rate than the single-port mechanism. However, in data reception, the single-port mechanism allows for sequential reporting of each received data frame according to the transmission order, while the multi-port parallel data transmission mechanism may experience data being sent before it is received, leading to abnormal data reporting order. Therefore, the single-port mechanism has higher data reception stability than the multi-port parallel data transmission mechanism.

[0004] In summary, current serial port data transmission mechanisms suffer from low transmission efficiency and unstable data transmission and reporting. Summary of the Invention

[0005] The first aspect of this application provides a serial port-based data transmission method, characterized in that it includes:

[0006] The data sending end obtains a set of data frames to be transmitted, wherein the set of data frames contains at least one data frame.

[0007] The data sending end divides the data frame set into packets to generate a data packet set, the data packet set including at least one data packet, the data packet including a frame sequence number;

[0008] The data sending end determines the transmitted data bytes of each serial port in the serial port set, and the serial port set contains at least two parallel transmission serial ports;

[0009] The data sending end allocates each data packet in the data packet set to the transmission buffer corresponding to the target serial port with the smallest number of currently transmitted data bytes for sorting and storage;

[0010] When the target serial port is idle, the data sending end wakes up the transmission thread of the target serial port so that the target serial port sends the data packets in the corresponding transmission buffer to the data receiving end.

[0011] Optionally, after the data sending end allocates each data packet in the data packet set to the transmission buffer corresponding to the target serial port with the smallest currently transmitted data bytes for sorting and saving, the data transmission method further includes:

[0012] The data sending end determines whether the target serial port is the last serial port to be sent.

[0013] If so, the data sending end updates the consecutive transmission count value of the target serial port;

[0014] If not, the data sending end updates the target serial port to the last sending serial port.

[0015] Optionally, after updating the consecutive transmission count value of the target serial port, the data transmission method further includes:

[0016] When the number of consecutive transmissions of the target serial port reaches a preset threshold, the data sending end will put the transmission thread of the target serial port into sleep mode for a preset time.

[0017] Optionally, after the data sending end allocates each data packet in the at least one data packet set to the transmission buffer corresponding to the target serial port with the smallest currently transmitted data bytes for sorting and storage, the data transmission method further includes:

[0018] The data sending end updates the transmitted data bytes of the serial port.

[0019] A second aspect of this application provides a serial port-based data transmission method, characterized in that it includes:

[0020] The data receiving end receives data packets transmitted via the serial port;

[0021] The data receiving end stores the data packet in the corresponding frame area of ​​the receiving buffer according to the frame sequence number of the data packet;

[0022] When the data packets in the frame region are collected to form a complete data frame, the data receiving end obtains the last reported frame sequence number and generates a query frame sequence number based on the last reported frame sequence number. The last reported frame sequence number is the frame sequence number of the last reported complete data frame.

[0023] The data receiving end determines whether there is a complete data frame in the receiving buffer whose frame sequence number is less than or equal to the query frame sequence number;

[0024] If so, the data receiving end will report complete data frames whose frame sequence number is less than or equal to the query frame sequence number in order according to the frame sequence number.

[0025] Optionally, after the data receiving end reports complete data frames whose frame sequence number is less than or equal to the query frame sequence number in sequence according to the frame sequence number, the data transmission method further includes:

[0026] The data receiving end updates the last reported frame sequence number and the query frame sequence number, and then determines again whether there is a complete data frame in the receiving buffer whose frame sequence number is less than or equal to the query frame sequence number.

[0027] Optionally, after the data receiving end determines whether there is a complete data frame in the receiving buffer with a frame sequence number less than or equal to the query frame sequence number, the data transmission method further includes:

[0028] If not, the data receiving end determines whether the number of complete data frames in the receiving buffer has reached a preset threshold;

[0029] If this is achieved, the data receiving end reports the complete data frame with the smallest frame sequence number in the receiving buffer.

[0030] Optionally, the data transmission method further includes:

[0031] The data receiving end determines the timestamp of the incomplete data frame in the receiving buffer, and the timestamp represents the reception time of the last received data packet in the incomplete data frame;

[0032] When the difference between the timestamp and the current time reaches a preset threshold, the data receiving end clears the space corresponding to the incomplete data frame in the receiving buffer.

[0033] A third aspect of this application provides a data transmitting end, characterized in that it includes:

[0034] The first acquisition unit is used to acquire a set of data frames to be transmitted, wherein the set of data frames contains at least one data frame.

[0035] The generation unit is used by the data sending end to perform packet processing on the data frame set to generate a data packet set, wherein the data packet set includes at least one data packet and the data packet includes a frame sequence number;

[0036] The first determining unit is used to determine the transmitted data bytes of each serial port in the serial port set, wherein the serial port set contains at least two parallel transmission serial ports;

[0037] The allocation unit is used to allocate each data packet in the data packet set to the transmission buffer corresponding to the target serial port with the smallest number of currently transmitted data bytes for sorting and storage.

[0038] The sending unit is used to wake up the transmission thread of the target serial port when the target serial port is idle, so that the target serial port sends the data packets of the corresponding transmission buffer to the data receiving end.

[0039] Optionally, the data sending end further includes:

[0040] The first judgment unit is used to determine whether the target serial port is the last serial port to be sent.

[0041] The first update unit is used to update the consecutive transmission count value of the target serial port when the first judgment unit determines that the target serial port is the last transmission serial port.

[0042] The second update unit is used to update the target serial port to the last sent serial port when the first judgment unit determines that the target serial port is not the last sent serial port.

[0043] Optionally, the data sending end further includes:

[0044] The thread sleep unit is used to put the transmission thread of the target serial port into sleep mode for a preset time when the number of consecutive transmissions of the target serial port reaches a preset threshold.

[0045] Optionally, the data sending end further includes:

[0046] The third update unit is used to update the transmitted data bytes of the serial port.

[0047] A fourth aspect of this application provides a data receiving end, characterized in that it includes:

[0048] The receiving unit is used to receive data packets transmitted via the serial port;

[0049] A storage unit is used to store the data packet in the corresponding frame area of ​​the receiving buffer according to the frame sequence number of the data packet;

[0050] The second acquisition unit is used to acquire the last reported frame sequence number when the data packets in the frame region are collected into a complete data frame, and generate a query frame sequence number based on the last reported frame sequence number, wherein the last reported frame sequence number is the frame sequence number of the last reported complete data frame.

[0051] The second judgment unit is used to determine whether there is a complete data frame in the receiving buffer whose frame sequence number is less than or equal to the query frame sequence number;

[0052] The first reporting unit is used to report the complete data frames whose frame sequence numbers are less than or equal to the query frame sequence number in order of frame sequence number when the second judgment unit determines that there are complete data frames in the receiving buffer whose frame sequence number is less than or equal to the query frame sequence number.

[0053] Optionally, the data receiving end further includes:

[0054] The fourth update unit is used to update the last reported frame sequence number and the query frame sequence number, and to determine again whether there is a complete data frame in the receiving buffer whose frame sequence number is less than or equal to the query frame sequence number.

[0055] Optionally, the data receiving end further includes:

[0056] The third judgment unit is used to determine whether the number of complete data frames in the receiving buffer reaches a preset threshold when the second judgment unit determines that there is no complete data frame with a frame sequence number less than or equal to the query frame sequence number in the receiving buffer.

[0057] The second reporting unit reports the complete data frame with the smallest frame sequence number in the receiving buffer when the third judgment unit determines that the number of complete data frames in the receiving buffer has reached a preset threshold.

[0058] Optionally, the data receiving end further includes:

[0059] The second determining unit is used to determine the timestamp of the incomplete data frame in the receiving buffer, wherein the timestamp represents the receiving time of the last received data packet within the incomplete data frame;

[0060] The cleaning unit is used to clean up the space corresponding to the incomplete data frame in the receiving buffer when the difference between the timestamp and the current time reaches a preset threshold.

[0061] The fifth aspect of this application provides a data transmitting end, including:

[0062] Processor, memory, input / output unit, bus;

[0063] The processor is connected to memory, input / output units, and a bus;

[0064] The processor specifically performs the following operations:

[0065] The data sending end obtains a set of data frames to be transmitted, wherein the set of data frames contains at least one data frame.

[0066] The data sending end divides the data frame set into packets to generate a data packet set, the data packet set including at least one data packet, the data packet including a frame sequence number;

[0067] The data sending end determines the transmitted data bytes of each serial port in the serial port set, and the serial port set contains at least two parallel transmission serial ports;

[0068] The data sending end allocates each data packet in the data packet set to the transmission buffer corresponding to the target serial port with the smallest number of currently transmitted data bytes for sorting and storage;

[0069] When the target serial port is idle, the data sending end wakes up the transmission thread of the target serial port so that the target serial port sends the data packets in the corresponding transmission buffer to the data receiving end.

[0070] Optionally, the processor is also used to perform any of the optional schemes in the first aspect.

[0071] An electronic device, characterized in that the electronic device comprises:

[0072] Memory, which stores executable computer program instructions;

[0073] A processor for invoking the executable computer program instructions to implement the serial port-based data transmission method as described in any of the first aspects.

[0074] The fifth aspect of this application provides a data receiving end, including:

[0075] Processor, memory, input / output unit, bus;

[0076] The processor is connected to memory, input / output units, and a bus;

[0077] The processor specifically performs the following operations:

[0078] The data receiving end receives data packets transmitted via the serial port;

[0079] The data receiving end stores the data packet in the corresponding frame area of ​​the receiving buffer according to the frame sequence number of the data packet;

[0080] When the data packets in the frame region are collected to form a complete data frame, the data receiving end obtains the last reported frame sequence number and generates a query frame sequence number based on the last reported frame sequence number. The last reported frame sequence number is the frame sequence number of the last reported complete data frame.

[0081] The data receiving end determines whether there is a complete data frame in the receiving buffer whose frame sequence number is less than or equal to the query frame sequence number;

[0082] If so, the data receiving end will report complete data frames whose frame sequence number is less than or equal to the query frame sequence number in order according to the frame sequence number.

[0083] Optionally, the processor is also used to perform any of the optional schemes in the second aspect.

[0084] An electronic device, characterized in that the electronic device comprises:

[0085] Memory, which stores executable computer program instructions;

[0086] A processor for invoking the executable computer program instructions to implement the serial port-based data transmission method as described in any of the second aspects.

[0087] As can be seen from the above technical solutions, the embodiments of this application have the following advantages:

[0088] The data sending end first acquires the set of data frames to be transmitted and then divides the data frame set into packets to generate at least one set of data packets. Each data packet set contains at least one data packet of similar size. Next, it determines the transmitted data bytes of multiple parallel serial ports in the serial port set. The data sending end assigns each data packet from the at least one data packet set to the transmit buffer corresponding to the target serial port with the smallest currently transmitted data bytes for sorting and storage; that is, the target serial port is used for data transmission by default. When the target serial port is idle, its transmission thread is awakened, allowing the data packets in the transmit buffer corresponding to the target serial port to be sent to the data receiving end through the target serial port. The data receiving end receives the data packets transmitted through the target serial port and stores them in the corresponding frame area in the receive buffer according to their frame sequence numbers. When a data frame is collected to form a complete data frame, the last reported frame sequence number is obtained, and a query frame sequence number is generated based on this last reported frame sequence number. The data receiver checks if a complete data frame with a sequence number less than or equal to the query frame number exists in the receive buffer. If so, the data receiver reports the complete data frames with sequence numbers less than or equal to the query frame number in sequence. In this embodiment, the data sender uses packet processing to divide each data frame in the data frame set into data packets of similar size. These data packets are then allocated to the send buffer corresponding to the target serial port with the smallest currently sent bytes for sorting and storage. Furthermore, when the data receiver receives a complete set of data frames, it determines the reporting order of each complete data frame by using the last reported frame number, the query frame number, and the frame number of this data frame. After determining the complete data frames, they are reported sequentially. The data sender achieves high data transmission efficiency by sending data in parallel through multiple serial ports, while the data receiver reduces data transmission and reporting instability by setting up a receive buffer and a sequential query mechanism, thus simultaneously reducing the problems of low serial port data transmission efficiency and unstable data transmission and reporting. Attached Figure Description

[0089] Figure 1 This is a schematic flowchart of an embodiment of the serial port-based data transmission method in this application.

[0090] Figure 2 This is a schematic flowchart of another embodiment of the serial port-based data transmission method in this application.

[0091] Figure 3 This is a schematic flowchart of another embodiment of the serial port-based data transmission method in this application.

[0092] Figure 4 This is a schematic flowchart of another embodiment of the serial port-based data transmission method in this application.

[0093] Figure 5This is a schematic flowchart of one embodiment of the data sending end in this application.

[0094] Figure 6 This is a flowchart illustrating another embodiment of the data sending end in this application.

[0095] Figure 7 This is a schematic flowchart of one embodiment of the data receiving end in this application.

[0096] Figure 8 This is a flowchart illustrating another embodiment of the data receiving end in this application.

[0097] Figure 9 This is a flowchart illustrating another embodiment of the data sending end in this application.

[0098] Figure 10 This is a flowchart illustrating another embodiment of the data receiving end in this application. Detailed Implementation

[0099] To enable those skilled in the art to better understand the technical solutions of this invention, the technical solutions of the embodiments of this invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this invention, and not all of them. Based on the embodiments of this invention, all other embodiments obtained by those skilled in the art without creative effort should fall within the protection scope of this invention.

[0100] This application discloses a serial port-based data transmission method and apparatus, which simultaneously reduces the problems of low serial port data transmission efficiency and unstable data transmission and reporting.

[0101] Please see Figure 1 This application provides a serial port-based data transmission method, including:

[0102] 101. The data sending end obtains a set of data frames to be transmitted, and the set of data frames contains at least one data frame;

[0103] The data sending end obtains a set of data frames to be transmitted. The data frame set includes at least one data frame, which needs to be transmitted via a serial port. In this embodiment, multiple serial ports transmit data in parallel, so after obtaining the data frame set, the data frames need to be allocated to different serial ports for transmission.

[0104] 102. The data sending end divides the data frame set into packets to generate a data packet set. The data packet set includes at least one data packet, and the data packet includes a frame sequence number.

[0105] The data sending end segments each data frame in the data frame set into packets to generate at least one data packet set. Each data packet set contains at least one data packet generated from the segmentation of the same data frame. Because data frames vary in size, they need to be uniformly segmented to generate smaller data packets of similar size. After segmentation, the transmission time of data packets in the serial port is shortened, and the transmission time for each data packet via the serial port is similar.

[0106] In this embodiment, there are several ways to handle sub-packages, which are described with examples below:

[0107] Assuming the preset size of the processed data packet is 128 bytes, and the current data frame set contains three data frames of 100 bytes, 256 bytes, and 500 bytes respectively, then the first frame will generate one data packet after processing, the second frame will generate two data packets, and the third frame will generate four data packets. The preset size of the processed data packet is mainly determined by information such as the serial port model, but can also be set by the user; this is not limited here.

[0108] In addition to dividing a data frame into at least one data packet, packet processing also generates data such as frame sequence number, packet sequence number, and total number of packets, which are then placed into the data packet to give the data packet an identity tag, facilitating subsequent reception and recombination operations.

[0109] 103. The data sending end determines the transmitted data bytes of each serial port in the serial port set, and the serial port set contains at least two parallel transmission serial ports;

[0110] The data sending end determines the number of bytes of data already sent for each serial port in the serial port set. The number of bytes sent is the size of the number of bytes of data that the serial port currently needs to send.

[0111] 104. The data sending end allocates each data packet in the data packet set to the transmission buffer corresponding to the target serial port with the smallest number of currently transmitted data bytes for sorting and storage;

[0112] The data sender sequentially allocates one or more fragmented data packets to the transmit buffer of the target serial port with the smallest number of transmitted data bytes for sorting and storage. Different serial ports have their own transmit buffers. When the target serial port is transmitting data, the data packet to be sent needs to be allocated in the transmit buffer. In this embodiment, the data packet is allocated to the transmit buffer of the target serial port with the smallest number of transmitted data bytes. After the data packet is saved to the transmit buffer of the target serial port, since the data packet has been determined to be sent by that target serial port, the transmit buffer immediately updates the number of transmitted bytes of that target serial port. The next data packet will be allocated to the serial port based on the updated number of transmitted data bytes.

[0113] 105. When the target serial port is idle, the data sending end wakes up the transmission thread of the target serial port so that the target serial port sends the data packets in the corresponding transmit buffer to the data receiving end.

[0114] When the data packet transmission of the target serial port is completed, if there is a data packet in the transmit buffer, the data sending end will wake up the transmission thread of the target serial port so that the target serial port can select the data packets to be sent from its corresponding transmit buffer in sequence.

[0115] The data sending end first acquires the set of data frames to be transmitted and then performs packet processing to generate at least one set of data packets. Each data packet set contains at least one data packet of similar size. Next, it determines the transmitted data bytes of multiple parallel serial ports in the serial port set. The data sending end allocates each data packet from the at least one data packet set to the transmission buffer corresponding to the target serial port with the smallest transmitted data bytes for sorting and storage; that is, the target serial port is used for data transmission by default. When the target serial port is idle, its transmission thread is awakened, allowing the data packets in the transmission buffer corresponding to the target serial port to be sent to the data receiving end through the target serial port. In this embodiment, the data sending end, through packet processing, divides each data frame in the data frame set into data packets of similar size, and then allocates the data packets to the transmission buffer corresponding to the target serial port with the smallest transmitted data bytes for sorting and storage. The data sending end achieves high data transmission efficiency by transmitting data in parallel through multiple serial ports.

[0116] Please see Figure 2 This application provides another serial port-based data transmission method, including:

[0117] 201. The data sending end obtains the set of data frames to be transmitted, and the set of data frames contains at least one data frame;

[0118] 202. The data sending end divides the data frame set into packets to generate a data packet set. The data packet set includes at least one data packet, and the data packet includes a frame sequence number.

[0119] 203. The data sending end determines the transmitted data bytes of each serial port in the serial port set, and the serial port set contains at least two parallel transmission serial ports;

[0120] 204. The data sending end allocates each data packet in the data packet set to the transmission buffer corresponding to the target serial port with the smallest number of currently transmitted data bytes for sorting and storage;

[0121] Steps 201 to 204 in this embodiment are similar to steps 101 to 104 in the previous embodiment, and will not be repeated here.

[0122] 205. The data sending end determines whether the target serial port is the last serial port to be sent; if yes, proceed to step 206; if no, proceed to step 207.

[0123] After the data sender allocates data packets to the transmit buffer corresponding to the target serial port with the smallest number of transmitted data bytes and stores them in order, the data sender determines whether the target serial port is the last transmitted serial port. When a data packet is allocated to the transmit buffer corresponding to the serial port with the smallest number of transmitted data bytes, the serial port is updated as the last transmitted serial port, and the number of transmitted data bytes is updated. When the next data packet is allocated, the corresponding serial port is updated again as the last transmitted serial port.

[0124] 206. When the data sending end determines that the target serial port is the last serial port to be sent, the data sending end updates the consecutive transmission count value of the target serial port;

[0125] If the target serial port is the last port to send data, it means that after the previous data packet was allocated to the transmit buffer with the smallest number of transmitted data bytes, and the target serial port's transmitted data bytes were updated, the target serial port is still the port with the smallest number of transmitted data bytes. At this point, it is necessary to update the consecutive transmission count value for this target serial port.

[0126] 207. When the data sending end determines that the target serial port is not the last serial port to be sent, the data sending end updates the target serial port to the last serial port to be sent.

[0127] When the target serial port is not the last serial port to be sent, the data sending end updates the target serial port to the last serial port to be sent.

[0128] 208. When the number of consecutive transmissions of the target serial port reaches a preset threshold, the data sending end will put the transmission thread of the target serial port into sleep mode for a preset time.

[0129] When the number of consecutive transmissions of the target serial port reaches a preset threshold, the data sending end will put the transmission thread of the target serial port into sleep mode for a preset time to prevent the transmission thread of the target serial port from occupying the CPU for a long time in a single-core central processing unit (each serial port has one transmission thread), causing other serial ports to be unable to transmit in time and affecting efficiency.

[0130] Specifically, each serial port has a sending thread. The data sending end reads a data packet through the sending thread, then calls the `write` function and sends the data packet using the target serial port, and so on. Therefore, in extreme cases, it is possible that the sending thread of a certain serial port will not relinquish the CPU and will continue to send data packets. Meanwhile, other serial port threads will not be able to compete for the CPU, resulting in no actual parallel transmission. Therefore, putting the transmission thread of the target serial port into sleep mode when the number of consecutive transmissions reaches a preset threshold is to allow the target serial port's sending thread to relinquish the CPU, allowing other serial port sending threads to occupy the CPU, call the `write` function to send data, and achieve parallel data transmission. When a serial port's transmission thread goes into sleep mode, a timer starts. After the preset time, the data sending end will wake up the target serial port's transmission thread again, allowing the target serial port to resume data transmission.

[0131] 209. The data sending end updates the number of transmitted data bytes on the serial port;

[0132] The data sending end updates the transmitted data bytes of the serial port to ensure that each serial port receives data packet bytes as evenly as possible, guaranteeing uniform transmission across each serial port and achieving maximum efficiency.

[0133] 210. When the target serial port is idle, the data sending end wakes up the transmission thread of the target serial port so that the target serial port sends the data packets in the corresponding transmit buffer to the data receiving end.

[0134] Step 210 in this embodiment is similar to step 105 in the previous embodiment, and will not be repeated here.

[0135] The data sending end first acquires the set of data frames to be transmitted and then performs packet processing to generate at least one set of data packets. Each data packet set contains at least one data packet of similar size. Next, it determines the transmitted data bytes of multiple parallel serial ports in the serial port set. The data sending end allocates each data packet from the at least one data packet set to the transmission buffer corresponding to the target serial port with the smallest transmitted data bytes for sorting and storage; that is, the target serial port is used for data transmission by default. When the target serial port is idle, its transmission thread is awakened, allowing the data packets in the transmission buffer corresponding to the target serial port to be sent to the data receiving end through the target serial port. In this embodiment, the data sending end, through packet processing, divides each data frame in the data frame set into data packets of similar size, and then allocates the data packets to the transmission buffer corresponding to the target serial port with the smallest transmitted data bytes for sorting and storage. The data sending end achieves high data transmission efficiency by transmitting data in parallel through multiple serial ports.

[0136] Secondly, by monitoring the number of consecutive transmissions, the occurrence of a single serial port occupying the CPU for an extended period of time can be reduced.

[0137] Please see Figure 3 This application provides a serial port-based data transmission method, including:

[0138] 301. The data receiving end receives data packets transmitted via the serial port;

[0139] The data receiver receives data packets transmitted via the serial port. The data receiver will receive data packets from multiple serial ports.

[0140] 302. The data receiving end stores the data packet in the corresponding frame area of ​​the receiving buffer according to the data packet's frame sequence number;

[0141] The data receiver stores each data packet in the corresponding frame region of the receive buffer based on its frame sequence number. Specifically, the receiver checks the frame sequence number of the data packet; the frame sequence number is an identifier that identifies a data packet belonging to a specific data frame. The receiver iterates through the frame sequence numbers in the receive buffer, checking if a frame region with the same frame sequence number exists. If the frame sequence numbers match, the data packet is stored in the receive buffer corresponding to that frame sequence number. If the frame sequence numbers do not match, the data packet is stored in the receive buffer with frame sequence number 0. It's important to note that a frame number of 0 in the buffer indicates that the space is free. When a data packet is received, if no corresponding frame sequence number is found in the receive buffer, it indicates a new data frame. Therefore, it is stored in the first receive buffer with frame sequence number 0, meaning the data packet is stored in a new, free space.

[0142] 303. When the data packets in the frame region are collected to form a complete data frame, the data receiving end obtains the last reported frame sequence number and generates a query frame sequence number based on the last reported frame sequence number. The last reported frame sequence number is the frame sequence number of the last reported complete data frame.

[0143] When all data packets in a frame region are collected to form a complete data frame, the data receiver obtains the last reported frame sequence number and generates a query frame sequence number based on it. After a data frame is reported from the receive buffer, it can be put into use. At this time, the receive buffer containing the frame data is cleared, and the last reported frame sequence number is updated. Since each data frame is marked with a sequence number before transmission, the sequence number represents the reporting order after transmission. When a data frame with a certain sequence number is reported, it is immediately cleared. If all data frames are collected, the query order process begins. First, the last reported frame sequence number is obtained, and then a query frame sequence number is generated based on it. An example is given below:

[0144] Assuming the data frame sequence number is from 1 to 9, and the reported data frame sequence numbers are from 1 to 5, the last reported frame sequence number is 5. At this time, more data frames are received. The last reported frame sequence number is obtained, and the generated query frame sequence number is 6. The data receiving end will query the data frame area with a frame sequence number less than or equal to 6.

[0145] 304. The data receiving end determines whether there is a complete data frame in the receiving buffer whose frame sequence number is less than or equal to the query frame sequence number; if so, proceed to step 305.

[0146] After obtaining the last reported frame sequence number at the data receiving end and generating a query frame sequence number based on it, the data receiving end checks whether there are complete data frames in the receive buffer with a sequence number less than or equal to the query frame sequence number. This is to determine the order of the frame sequences and report them in that order. In parallel serial port data transmission, some data packets may be transmitted before arriving in the receive buffer, leading to an error in the order of data frame transmission and reception. Therefore, it is necessary to obtain the query frame sequence number based on the last reported frame sequence number and then query the sequence number of the complete data frames in the receive buffer.

[0147] 305. When the data receiving end determines that there is a complete data frame in the receiving buffer with a frame sequence number less than or equal to the query frame sequence number, the data receiving end will report the complete data frames with frame sequence numbers less than or equal to the query frame sequence number in order according to the frame sequence number.

[0148] When the data receiving end determines that a complete data frame with a sequence number less than or equal to the query frame number exists in the receive buffer, it first reports the complete data frame with a sequence number less than the query frame number, and then reports the complete data frame with a sequence number equal to the query frame number. The following example illustrates the query and reporting of frame sequence numbers:

[0149] There are 10 sets of data frames, numbered 1 to 10. Following a single serial port transmission method, the data is reported in ascending order from 1 to 10 after transmission. Currently, the reported data frames have sequence numbers 1 to 5, with the last reported frame number being 5. When a data frame with a certain sequence number is received, the query for the frame sequence number is the last reported frame sequence number plus one, i.e., querying for frame sequence number 6. Two scenarios can occur: First, if the data frame with sequence number 6 is received, the data receiver traverses the entire receive buffer to check if a complete data frame with sequence number 6 exists. After finding the data frame with sequence number 6, the data receiver reports this complete data frame and then clears it from the receive buffer. Second, if the data frames with sequence numbers greater than 6 are received, the complete data frame with sequence number 6 cannot be detected. The data receiver stops its operation and waits for the next set of data frames to be received before performing the query and reporting operations again, thus ensuring the order of data frame reporting.

[0150] When a data frame is collected to form a complete data frame, the sequence number of the last reported frame is obtained, and a query frame sequence number is generated based on this sequence number. The data receiver checks whether a complete data frame with a sequence number less than or equal to the query frame sequence number exists in its receive buffer. If so, the data receiver reports the complete data frames with sequence numbers less than or equal to the query frame sequence number in sequence. In this embodiment, when a data frame is collected, the data receiver determines the reporting order of each complete data frame by using the last reported frame sequence number, the query frame sequence number, and the sequence number of this data frame. After determining the complete data frames, they are reported sequentially. By setting up a receive buffer and a sequential query mechanism, the data receiver reduces the instability of data transmission and reporting.

[0151] Please see Figure 4 This application provides another serial port-based data transmission method, including:

[0152] 401. The data receiving end receives data packets transmitted via the serial port;

[0153] 402. The data receiving end stores the data packet in the corresponding frame area of ​​the receiving buffer according to the data packet's frame sequence number;

[0154] 403. When the data packets in the frame region are collected to form a complete data frame, the data receiving end obtains the last reported frame sequence number and generates a query frame sequence number based on the last reported frame sequence number. The last reported frame sequence number is the frame sequence number of the last reported complete data frame.

[0155] 404. The data receiving end determines whether there is a complete data frame in the receiving buffer with a frame sequence number less than or equal to the query frame sequence number; if yes, proceed to step 405; if no, proceed to step 406.

[0156] 405. When the data receiving end determines that there is a complete data frame in the receiving buffer with a frame sequence number less than or equal to the query frame sequence number, the data receiving end will report the complete data frames with frame sequence numbers less than or equal to the query frame sequence number in order according to the frame sequence number.

[0157] Steps 201 to 205 in this embodiment are similar to steps 301 to 305 in the previous embodiment, and will not be repeated here.

[0158] 406. When the data receiving end determines that there is no complete data frame with a frame sequence number less than or equal to the query frame sequence number in the receiving buffer, the data receiving end determines whether the number of complete data frames in the receiving buffer has reached a preset threshold.

[0159] When the data receiver determines that there is no complete data frame with a sequence number less than or equal to the query frame sequence number in the receive buffer, a data frame loss may have occurred. In this case, it is necessary to determine whether the number of complete data frames in the receive buffer has reached a preset threshold. When a data frame is missing, this frame cannot be reported, resulting in the last reported frame sequence number not being updated. Subsequent data packets will continue to be received, but even when more data frames are received, they cannot be reported. The solution in this embodiment is to determine whether the number of complete data frames in the current receive buffer has reached a preset threshold. If a certain number is reached, it is determined that a data frame loss has occurred.

[0160] 407. When the data receiving end determines that the number of complete data frames in the receiving buffer reaches a preset threshold, the data receiving end reports the complete data frame with the smallest frame sequence number in the receiving buffer.

[0161] When the data receiver determines that the number of complete data frames in the receive buffer has reached a preset threshold, it reports the complete data frame with the smallest sequence number in the receive buffer. That is, if a stack of complete data frames appears in the current receive buffer, it indicates a data loss. To ensure the normal reporting of subsequent data frames, it is necessary to report the complete data frame with the smallest sequence number in the receive buffer and update the last reported frame sequence number and the queried frame sequence number to ensure normal reporting of subsequent data frames. The following is an example of how to handle data loss:

[0162] There are 20 data frames, numbered 1 to 20. Following a single serial port transmission method, the data is reported in ascending order from 1 to 20 after transmission. Currently, the reported data frames have sequence numbers 1 to 5, with the last reported frame number being 5. The preset threshold for the data frame buffer in the receive buffer is 6. When the data frame with sequence number 7 is received, the query frame sequence number is the last reported frame sequence number plus one, i.e., querying for frame sequence number 6. At this point, the complete frame with sequence number 6 cannot be found. Then, data frames with sequence numbers 8, 9, 10, 11, and 12 are received simultaneously, but the data frame with sequence number 6 is still not received. When the data frame with sequence number 13 is received, the number of complete frames in the receive buffer reaches 6, meeting the preset threshold. At this point, the data frame with the smallest sequence number among the currently received complete data frames, i.e., the earliest reported frame, will be directly reported. If, during subsequent data transmission, the data frame with sequence number 6 is re-acquired, the receiving end will check whether there is a complete data frame with a sequence number less than or equal to the query frame number in the receiving buffer and report it. Therefore, the data frame with sequence number 6 will still be re-reported.

[0163] 408. The data receiving end updates the last reported frame sequence number and the query frame sequence number, and then checks again whether there is a complete data frame in the receiving buffer whose frame sequence number is less than or equal to the query frame sequence number.

[0164] After each report is completed, the data receiving end updates the last reported frame sequence number and the query frame sequence number to perform the next query of complete data frames.

[0165] 409. The data receiving end determines the timestamp of the incomplete data frame in the receiving buffer. The timestamp represents the reception time of the last received data packet in the incomplete data frame.

[0166] The data receiver determines the timestamp of the incomplete data frame in the receive buffer. The timestamp represents the reception time of the last received data packet in the incomplete data frame. The timestamp is used to determine the total reception time of the incomplete data frame.

[0167] 410. When the difference between the timestamp and the current time reaches a preset threshold, the data receiving end cleans up the space corresponding to the incomplete data frame in the receiving buffer.

[0168] When the difference between the timestamp and the current time reaches a preset threshold, the data receiver clears the space corresponding to the incomplete data frame in the receive buffer. Specifically, when the data receiver detects that the difference between the timestamp of the last received data packet and the current time in an incomplete data frame reaches a preset threshold, it determines that the incomplete data frame has a missing data packet, and the data receiver clears the space corresponding to the incomplete data frame in the receive buffer.

[0169] When a data frame is collected to form a complete data frame, the sequence number of the last reported frame is obtained, and a query frame sequence number is generated based on this sequence number. The data receiver checks whether a complete data frame with a sequence number less than or equal to the query frame sequence number exists in its receive buffer. If so, the data receiver reports the complete data frames with sequence numbers less than or equal to the query frame sequence number in sequence. In this embodiment, when a data frame is collected, the data receiver determines the reporting order of each complete data frame by using the last reported frame sequence number, the query frame sequence number, and the sequence number of this data frame. After determining the complete data frames, they are reported sequentially. By setting up a receive buffer and a sequential query mechanism, the data receiver reduces the instability of data transmission and reporting.

[0170] Secondly, in this embodiment, the number of complete data frames in the receive buffer and the timestamp of the data packets are used to determine whether data loss has occurred.

[0171] It should be noted that the data sending end and data receiving end in this embodiment process the data frame mainly through code. There are many kinds of code that can implement this application, and only one code language is used here for necessary explanation.

[0172] Code 1:

[0173]

[0174]

[0175] The above code is the relevant data code generated after the data frame is processed into packets. In addition to collecting the data to be sent, a data packet also needs to be composed of basic identity data such as the original data frame sequence number and the packet sequence number in the packetization process.

[0176] Code 2:

[0177]

[0178] The above code 2 mainly contains information such as the frame sequence number, the number of packets received, and the total number of packets obtained by the data receiving end when it receives the data packet. It also includes a timestamp, which is the time when the data receiving end received this data packet. If the timestamp of the last received data packet in an incomplete data frame differs too much from the current time, it indicates that the data packet of the incomplete data frame is lost.

[0179] Code 3:

[0180]

[0181] pthread_mutex_t send_mutex;

[0182] unsigned int last_send_seq; / / The sequence number of the last sent frame, used to assign data packets with a specific sequence number in sequence.

[0183] int last_send_dev_index; / / The serial port number of the last data packet sent.

[0184] unsigned long long send_total_bytes[MAX_DEVICE]; / / Total number of bytes sent per serial port.

[0185] }send_buf; / / Send buffer control structure.

[0186] This code is for the data sending end. It mainly records data such as the serial port number of the last sent data packet, the total number of bytes sent by each serial port, and the number of consecutive transmissions by each serial port. It is used to allocate data packets according to the sent data bytes and to perform operations such as sleep for the sending thread.

[0187] Code 4:

[0188]

[0189] This code is mainly used by the receive buffer. When reporting data, it obtains the sequence number of the last reported frame.

[0190]

[0191]

[0192] int dev_num; / / Total number of serial ports.

[0193] rev_callback cb; / / Destroy the function pointer to report the received data.

[0194] pthread_t check_tid;

[0195] int check_run;

[0196] mutil_uart_ctrl; / / Multi-serial port parallel transmit / receive control structure.

[0197] It should be noted that in the above code snippets, the reported data is extracted from the `data` array of each `uart_package` within the `data_frame` frame structure, and compiled into an array to be reported to the application. For the calling application, what it receives is the raw data sent by the sender.

[0198] Please see Figure 5 This application provides a data sending end, including:

[0199] The first acquisition unit 501 is used to acquire a set of data frames to be transmitted, wherein the data frame set contains at least one data frame.

[0200] The generation unit 502 is used to divide the data frame set into packets to generate a data packet set. The data packet set includes at least one data packet, and the data packet includes a frame sequence number.

[0201] The first determining unit 503 is used to determine the transmitted data bytes of each serial port in the serial port set, wherein the serial port set contains at least two parallel transmission serial ports;

[0202] The allocation unit 504 is used to allocate each data packet in the data packet set to the transmission buffer corresponding to the target serial port with the smallest number of currently transmitted data bytes for sorting and storage.

[0203] The transmitting unit 505 is used to wake up the transmission thread of the target serial port when the target serial port is idle, so that the target serial port can send the data packets of the corresponding transmit buffer to the data receiving end.

[0204] Please see Figure 6 This application provides another data sending end, including:

[0205] The first acquisition unit 601 is used to acquire a set of data frames to be transmitted, wherein the data frame set contains at least one data frame.

[0206] The generation unit 602 is used to divide the data frame set into packets to generate a data packet set. The data packet set includes at least one data packet, and the data packet includes a frame sequence number.

[0207] The first determining unit 603 is used to determine the transmitted data bytes of each serial port in the serial port set, wherein the serial port set contains at least two parallel transmission serial ports;

[0208] The allocation unit 604 is used to allocate each data packet in the data packet set to the transmission buffer corresponding to the target serial port with the smallest number of currently transmitted data bytes for sorting and storage.

[0209] The first judgment unit 605 is used to determine whether the target serial port is the last serial port to be sent.

[0210] The first update unit 606 is used to update the consecutive transmission count value of the target serial port when the first judgment unit 605 determines that the target serial port is the last transmission serial port.

[0211] The second update unit 607 is used to update the target serial port to the last sent serial port when the first judgment unit 605 determines that the target serial port is not the last sent serial port.

[0212] The thread sleep unit 608 is used to put the transmission thread of the target serial port into sleep mode for a preset time when the number of consecutive transmissions of the target serial port reaches a preset threshold.

[0213] The third update unit 609 is used to update the transmitted data bytes of the serial port;

[0214] The transmitting unit 610 is used to wake up the transmission thread of the target serial port when the target serial port is idle, so that the target serial port can send the data packets of the corresponding transmit buffer to the data receiving end.

[0215] Please see Figure 7 This application provides a data receiving end, including:

[0216] The receiving unit 701 is used to receive data packets transmitted via the serial port;

[0217] The storage unit 702 is used to store the data packet in the corresponding frame area of ​​the receive buffer according to the frame sequence number of the data packet;

[0218] The second acquisition unit 703 is used to acquire the last reported frame sequence number when the data packets in the frame region are collected to form a complete data frame, and generate a query frame sequence number based on the last reported frame sequence number. The last reported frame sequence number is the frame sequence number of the last reported complete data frame.

[0219] The second judgment unit 704 is used to determine whether there is a complete data frame in the receive buffer with a frame sequence number less than or equal to the query frame sequence number;

[0220] The first reporting unit 705 is used to report complete data frames whose frame sequence numbers are less than or equal to the query frame sequence number in order when the second judgment unit 704 determines that there is a complete data frame in the receiving buffer whose frame sequence number is less than or equal to the query frame sequence number.

[0221] Please see Figure 8 This application provides another data receiving end, including:

[0222] The receiving unit 801 is used to receive data packets transmitted via the serial port;

[0223] The storage unit 802 is used to store the data packet in the corresponding frame area of ​​the receive buffer according to the frame sequence number of the data packet;

[0224] The second acquisition unit 803 is used to acquire the last reported frame sequence number when the data packets in the frame region are collected to form a complete data frame, and generate a query frame sequence number based on the last reported frame sequence number. The last reported frame sequence number is the frame sequence number of the last reported complete data frame.

[0225] The second judgment unit 804 is used to determine whether there is a complete data frame in the receive buffer with a frame sequence number less than or equal to the query frame sequence number;

[0226] The first reporting unit 805 is used to report complete data frames with frame sequence numbers less than or equal to the query frame sequence number in order of frame sequence number when the second judgment unit 804 determines that there are complete data frames with frame sequence numbers less than or equal to the query frame sequence number in the receiving buffer.

[0227] The third judgment unit 806 is used to determine that the number of complete data frames in the receiving buffer reaches a preset threshold when the second judgment unit 804 determines that there is no complete data frame in the receiving buffer whose frame sequence number is less than or equal to the query frame sequence number.

[0228] The second reporting unit 807, when the third judgment unit 806 determines that the number of complete data frames in the receiving buffer reaches a preset threshold, reports the complete data frame with the smallest frame sequence number in the receiving buffer.

[0229] The fourth update unit 808 is used to update the last reported frame sequence number and the query frame sequence number, and to determine again whether there is a complete data frame in the receive buffer whose frame sequence number is less than or equal to the query frame sequence number.

[0230] The second determining unit 809 is used to determine the timestamp of the incomplete data frame in the receiving buffer. The timestamp represents the reception time of the last received data packet in the incomplete data frame.

[0231] The cleaning unit 810 is used to clean up the space corresponding to incomplete data frames in the receiving buffer when the difference between the timestamp and the current time reaches a preset threshold.

[0232] Please see Figure 9 This application provides another data sending end, including:

[0233] Processor 901, memory 902, input / output unit 903, bus 904;

[0234] The processor 901 is connected to the memory 902, the input / output unit 903, and the bus 904;

[0235] Processor 901 specifically performs the following operations:

[0236] The data sending end obtains a set of data frames to be transmitted, and the set of data frames contains at least one data frame.

[0237] The data sending end divides the data frame set into packets to generate a data packet set. The data packet set includes at least one data packet, and the data packet includes a frame sequence number.

[0238] The data sending end determines the number of data bytes sent by each serial port in the serial port set, which contains at least two serial ports that transmit in parallel.

[0239] The data sending end allocates each data packet in the data packet set to the transmission buffer corresponding to the target serial port with the smallest number of currently transmitted data bytes for sorting and storage;

[0240] When the target serial port is idle, the data sending end wakes up the transmission thread of the target serial port so that the target serial port sends the data packets in the corresponding transmit buffer to the data receiving end.

[0241] In this embodiment, the function of processor 901 is the same as described above. Figures 1 to 2 The steps in the illustrated embodiments are the same and will not be repeated here.

[0242] Please see Figure 10 This application provides another data receiving end, including:

[0243] Processor 1001, memory 1002, input / output unit 1003, bus 1004;

[0244] The processor 1001 is connected to the memory 1002, the input / output unit 1003, and the bus 1004;

[0245] Processor 1001 performs the following operations:

[0246] The data receiving end receives data packets transmitted via the serial port;

[0247] The data receiving end stores the data packet in the corresponding frame area of ​​the receiving buffer according to the data packet's frame sequence number;

[0248] When the data packets in the frame region are collected to form a complete data frame, the data receiving end obtains the last reported frame sequence number and generates a query frame sequence number based on the last reported frame sequence number. The last reported frame sequence number is the frame sequence number of the last reported complete data frame.

[0249] The data receiving end determines whether there is a complete data frame in the receiving buffer whose frame sequence number is less than or equal to the query frame sequence number;

[0250] If so, the data receiving end will report complete data frames with frame sequence numbers less than or equal to the query frame sequence number in order according to the frame sequence number.

[0251] In this embodiment, the function of processor 1001 is the same as described above. Figures 3 to 4 The steps in the illustrated embodiments are the same and will not be repeated here.

[0252] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.

[0253] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection between apparatuses or units through some interfaces, and may be electrical, mechanical, or other forms.

[0254] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0255] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.

[0256] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

Claims

1. A data transmission method based on a serial port, characterized in that: include: The data receiving end receives the data packet transmitted through the serial port; The data receiving end stores the data packet in a corresponding frame area in a receiving buffer area according to the frame sequence number of the data packet; When the data packets in the frame area are collected to form a complete data frame, the data receiving end obtains the last reported frame sequence number, and generates a query frame sequence number according to the last reported frame sequence number, where the last reported frame sequence number is the frame sequence number of the last reported complete data frame; The data receiving end determines whether there is a complete data frame with a frame sequence number less than or equal to the query frame sequence number in the receiving buffer; If so, the data receiving end reports the complete data frames whose frame numbers are less than or equal to the query frame number in sequence according to the frame numbers; If not, the data receiving end determines whether the number of complete data frames in the receiving buffer area reaches a preset threshold; If it is reached, the data receiving end reports the complete data frame with the smallest frame sequence number in the receiving buffer area.

2. The data transmission method according to claim 1, characterized in that: After the data receiving end reports the complete data frames whose frame numbers are less than or equal to the query frame number in sequence according to the frame numbers, the data transmission method further includes: The data receiving end updates the last reported frame sequence number and the query frame sequence number, and determines again whether there is a complete data frame with a frame sequence number less than or equal to the query frame sequence number in the receiving buffer area.

3. The data transmission method according to any one of claims 1 to 2, characterized in that: The data transmission method further comprises: The data receiving end determines a timestamp of the incomplete data frame of the receiving buffer area, wherein the timestamp indicates a receiving time of the last received data packet in the incomplete data frame; When the difference between the timestamp and the current time reaches a preset threshold, the data receiving end clears the space corresponding to the incomplete data frame in the receiving buffer area.

4. An electronic device, characterized in that: The electronic device comprises: a memory storing executable computer program instructions; A processor, configured to call the executable computer program instructions to implement the serial port-based data transmission method as described in any one of claims 1 to 3.

Citation Information

Patent Citations

  • Method and system for transmitting video data by using UDP protocol

    CN105187440A

  • Message sending method and message forwarding equipment

    CN111224888A

  • Protocol for transporting real time data

    US5444709A