Data frame sending method and device, storage medium and wireless communication equipment

Through the dual-pipe design data frame transmission method, the problems of low data frame transmission efficiency and low management efficiency in the prior art are solved, more efficient data frame management and aggregation processing are realized, and the system response speed and stability are improved.

CN119997244APending Publication Date: 2025-05-13ZHUHAI HUGE IC CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510164138.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-02-14
Publication Date
2025-05-13

AI Technical Summary

Technical Problem

Existing wireless communication devices have problems such as low efficiency and low management efficiency in the data frame transmission process, resulting in waste of bandwidth resources and increased transmission delay.

Method used

Using a dual-pipe design, the first pipeline (PIPE0) tracks and controls each data frame through the buf information pool, and the second pipeline (PIPE1) centrally manages and aggregates related information through the type information pool to achieve separation and centralization of storage and sending management.

Benefits of technology

It improves the maintainability and traceability of data frame management, enhances the efficiency and accuracy of aggregation management, ensures that data frames are processed in priority order, and improves the system's response speed and stability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119997244A_ABST
    Figure CN119997244A_ABST
Patent Text Reader

Abstract

The embodiment of the invention discloses a data frame sending method and device, a storage medium and wireless communication equipment, and belongs to the field of wireless communication. According to the invention, through a double-PIPE pipeline architecture, the data frame management is obviously improved. And the PIPE0 is combined with the buf information pool to provide a unique index for each data frame, so that tracking and control are facilitated, and the management process is simplified. PIPE1 is combined with a type information pool, so that aggregation management is efficient and accurate, and related operation can be completed only by matching type indexes. And the hierarchy of the double PIPE and the buf index have uniqueness, so that the data frame information can be quickly acquired. According to the architecture, the priority of data frame processing is defined, sequential processing is ensured, and the response speed is increased.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of wireless communications, and in particular to a method, device, storage medium and wireless communication device for sending data frames. Background Art

[0002] In wireless communication systems, especially in wireless local area network (WLAN) environments that follow the IEEE 802.11 standard, the transmission efficiency and quality of service (QoS) of data frames are crucial. Existing wireless communication devices usually include two main functional modules: upper media access controller (UMAC) and lower media access controller (LMAC) to achieve data reception, processing and transmission.

[0003] In the data transmission process, the UMAC controller is first responsible for receiving data from the network layer and encapsulating it into a frame format that complies with the 802.11 standard, and then passing these frames to the LMAC memory for further processing. The LMAC controller is responsible for parsing the frame header information of each data frame, especially classifying the data frames into different access channels (ACs) according to the TID (Traffic Identification) value in the QoS control field in the frame. Specifically, according to the IEEE 802.11e standard, data frames are divided into four types of AC: background service (AC_BK), used for low-priority data transmission; best effort service (AC_BE), used for ordinary data transmission; video service (AC_VI), used for delay-sensitive video data transmission; and voice service (AC_VO), used for voice data transmission that is extremely sensitive to delay and jitter. This classification mechanism helps to ensure that data of different priorities can be processed accordingly and the quality of service is guaranteed.

[0004] However, in the existing LMAC processing flow, although the data frames are correctly classified and queued, there are several significant defects in the actual transmission process. First, the current LMAC design cannot set key parameters such as transmission rate, bandwidth, low-density parity check coding (LDPC), space-time block coding (STBC), and transmission power for each data frame, which limits the flexibility and efficiency of data transmission. Secondly, the parsing of the frame header relies on software processing, which not only consumes a lot of CPU resources, but also reduces the amount of data aggregation, because the delay of software parsing interrupts the continuous processing flow of data. In addition, the existing storage management and aggregation management strategies are inefficient, especially when processing a large number of data frames. This inefficient management will directly affect the utilization of network bandwidth and the real-time performance of data transmission.

[0005] Specifically, in terms of data aggregation, although the EDCA (Enhanced Distributed Channel Access) competition mechanism can be triggered by setting certain aggregation conditions (such as the number of aggregated frames or the waiting time) and determining the winning AC (AC_WINNER) to send its corresponding data frame, due to the inefficient management and processing mentioned above, the actual aggregation effect is often not ideal, resulting in a waste of bandwidth resources and an increase in transmission delay. Summary of the invention

[0006] The data frame transmission method, device, storage medium and wireless communication device provided in the embodiments of the present application can solve the problem of low data frame transmission efficiency in related technologies. The technical solution is as follows:

[0007] In a first aspect, an embodiment of the present application provides a method for sending a data frame, which is applied to a wireless communication device, wherein a data link layer of the wireless communication device is provided with a first pipeline and a second pipeline; the first pipeline and the second pipeline are FIFO queues, and the first pipeline includes N+1 buffer index storage units for storing a buf index, and the value range of the buf index is 0 to N; the second pipeline includes N+1 aggregation index storage units for storing a type index; the first pipeline and the second pipeline are composed of N+1 pipeline layers, each pipeline layer includes an aggregation index storage unit and a buffer index storage unit, and the pipeline layer numbers of the N+1 pipeline layers are 0 to N from bottom to top;

[0008] Wherein, the method for sending the data frame includes:

[0009] The rate control module receives the data frame from the UMAC controller, adds the rate control information in the reserved space of the data frame, and then writes the processed data frame into the LMAC memory;

[0010] When the LMAC memory is not empty, the prefetch control module reads a data frame from the LMAC memory, parses the read data frame to obtain rate control information, storage address information and aggregation attribute information, writes the parsed rate control information and storage address information into the buf information pool, and writes the parsed aggregation attribute information into the type information pool;

[0011] The storage aggregation management module determines an unused target buf index with the smallest value according to the buf index used in the first pipeline, assigns the target buf index to the read data frame, determines an idle target pipeline layer number with the smallest value, and writes the target buf index into the target pipeline layer number indication buffer index storage unit;

[0012] querying whether the parsed aggregate attribute information exists in the type information pool, and if so, querying the type index matching the parsed aggregate attribute information in the second pipeline, and writing the matching type index into the aggregate index storage unit indicated by the target pipeline layer number; if the parsed aggregate attribute information is not queried in the type information pool, determining an unused target type index with the smallest value according to the type index used in the second pipeline, and writing the target type index into the aggregate index storage unit indicated by the target pipeline layer number;

[0013] When it is detected that the second pipeline is not empty, the EDCA module is instructed to perform channel contention, a target channel for which contention has been successfully transmitted by the EDCA module is received, and a type index in an aggregate index storage unit associated with the target channel is obtained, and the obtained type index is searched from the bottom layer of the second pipeline, and a buf index in the pipeline layer where the obtained type index is located is written into a sending queue;

[0014] The EDCA module performs channel competition and notifies the storage aggregation management module of the channel that successfully competes;

[0015] When the sending control module detects that the sending queue is not empty, it reads the buf index from the sending queue, queries the corresponding storage address information and rate control information in the buf information pool according to the read buf index, reads the data frame in the LMAC memory according to the queried storage address information, and uses the queried rate control information to send the read data frame to the receiver through the physical layer; receives feedback information from the receiver, and notifies the aggregation management module of the feedback information;

[0016] The aggregation management module will determine the buf index of the successfully sent data frame based on the feedback information, determine the pipeline layer corresponding to the buf index in the first pipeline, delete the data in the pipeline layer, and move the data in the remaining pipeline layers down one layer as a whole.

[0017] In a second aspect, an embodiment of the present application provides a device for sending a data frame, including:

[0018] The rate control module is used to receive the data frame from the UMAC controller, add the rate control information in the reserved space of the data frame, and then write the processed data frame into the LMAC memory;

[0019] A prefetch control module, configured to read a data frame from the LMAC memory when the LMAC memory is not empty, parse the read data frame to obtain rate control information, storage address information and aggregation attribute information, write the parsed rate control information and storage address information into the buf information pool, and write the parsed aggregation attribute information into the type information pool;

[0020] A storage aggregation management module, used to determine an unused target buf index with the smallest value according to the buf index used in the first pipeline, assign the target buf index to the read data frame, and determine an idle state and the smallest target pipeline layer number, and write the target buf index into the target pipeline layer number indication buffer index storage unit;

[0021] querying whether the parsed aggregate attribute information exists in the type information pool, and if so, querying the type index matching the parsed aggregate attribute information in the second pipeline, and writing the matching type index into the aggregate index storage unit indicated by the target pipeline layer number; if the parsed aggregate attribute information is not queried in the type information pool, determining an unused target type index with the smallest value according to the type index used in the second pipeline, and writing the target type index into the aggregate index storage unit indicated by the target pipeline layer number;

[0022] When it is detected that the second pipeline is not empty, the EDCA module is instructed to perform channel contention, a target channel for which contention has been successfully transmitted by the EDCA module is received, and a type index in an aggregate index storage unit associated with the target channel is obtained, and the obtained type index is searched from the bottom layer of the second pipeline, and a buf index in the pipeline layer where the obtained type index is located is written into a sending queue;

[0023] The EDCA module is used to perform channel competition and notify the storage aggregation management module of the channel that has successfully competed;

[0024] A sending control module, configured to read a buf index from the sending queue when detecting that the sending queue is not empty, query the corresponding storage address information and rate control information in the buf information pool according to the read buf index, read a data frame in the LMAC memory according to the queried storage address information, and send the read data frame to the receiver through the physical layer using the queried rate control information; receive feedback information from the receiver, and notify the aggregation management module of the feedback information;

[0025] The aggregation management module is also used to determine the buf index of the successfully sent data frame based on the feedback information, determine the pipeline layer corresponding to the buf index in the first pipeline, delete the data in the pipeline layer, and move the data in the remaining pipeline layers down one layer as a whole.

[0026] In a third aspect, an embodiment of the present application provides a computer storage medium, wherein the computer storage medium stores a plurality of instructions, wherein the instructions are suitable for being loaded by a processor and executing the above-mentioned method steps.

[0027] In a fourth aspect, an embodiment of the present application provides a wireless communication device, which may include: a processor and a memory; wherein the memory stores a computer program, and the computer program is suitable for being loaded by the processor and executing the above-mentioned method steps.

[0028] The beneficial effects brought about by the technical solutions provided by some embodiments of the present application include at least:

[0029] By introducing the design of the first pipeline (PIPE0) and the second pipeline (PIPE1), the separation and centralization of storage and transmission management related information are achieved. PIPE0 combined with the buf information pool can easily track and control each data frame because each data frame has a unique buf index as an index. This design simplifies the management process of data frames and improves the maintainability and traceability of the system.

[0030] PIPE1 combines the type information pool so that all aggregation-related information can be centrally acquired. During aggregation control, the system only needs to match the same type index (type_idx) to quickly find the relevant data frame for aggregation processing. This greatly improves the efficiency and accuracy of aggregation management.

[0031] The dual PIPE hierarchy and buf index are both unique. This design enables the system to quickly obtain all relevant information of a data frame through the index. This convenience not only improves the system's processing speed, but also enhances the system's reliability and stability.

[0032] The dual PIPE architecture reflects the priority of data frame processing. The bottom-level data frame is always the data frame that UMAC requires to be processed first, so when sending a search, the system always searches from the bottom to the top. This design ensures that data frames can be processed in order of priority, improving the system's response speed and efficiency.

[0033] The design of synchronous adding frames and clearing frames of dual PIPE ensures the consistency of timing of buf management and aggregation management. This synchronization not only simplifies the design complexity of the system, but also improves the stability and reliability of the system. By ensuring that the data frame status in the two pipes is updated synchronously, the system can avoid problems such as data inconsistency and conflict, thereby ensuring the continuity and integrity of data transmission. BRIEF DESCRIPTION OF THE DRAWINGS

[0034] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0035] Figure 1 is a schematic diagram of the structure of a wireless communication device provided in an embodiment of the present application;

[0036] Figure 2 is a schematic diagram of the data structure of the first pipeline and the second pipeline provided in an embodiment of the present application;

[0037] Figure 3 It is a flowchart of a method for sending a data frame provided in an embodiment of the present application;

[0038] Figure 4 It is a schematic diagram of writing a buf index and a type index in a pipeline provided by an embodiment of the present application;

[0039] Figure 5 is a schematic diagram of the principle of deleting a pipeline layer in a pipeline provided by an embodiment of the present application;

[0040] Figure 6 It is a schematic diagram of data distribution in the pipeline at different times. DETAILED DESCRIPTION

[0041] In order to make the objectives, technical solutions and advantages of the present application more clear, the embodiments of the present application will be further described in detail below with reference to the accompanying drawings.

[0042] See also Figure 1 , is a schematic diagram of the structure of a wireless communication device provided in an embodiment of the present application, wherein the wireless communication device is a device supporting the WLAN protocol, including a network layer, a data link layer and a physical layer, wherein the data link layer includes a UMAC controller, a UMAC memory, an LMAC controller and an LMAC memory. The UMAC controller is used to store data frames from the network layer, and the LMAC memory is used to store data frames with rate control information added thereto.

[0043] The LMAC controller includes: a pre-fetch control module, a storage aggregation management module, an EDCA module and a transmission control module. The connection relationship between the modules is shown in Figure 1 shown.

[0044] See also Figure 2 As shown, the storage aggregation management module is provided with a first pipeline PIPE0 and a second pipeline PIPE1. The first pipeline and the second pipeline are FIFO queues, the first pipeline includes N+1 buffer index storage units, the buffer index storage unit is used to store the buf index, and the value range of the buf index is 0 to N; the second pipeline includes N+1 aggregation index storage units, and the aggregation index storage unit is used to store the type index; the first pipeline and the second pipeline are composed of N+1 pipeline layers, each pipeline layer includes an aggregation index storage unit and a buffer index storage unit, and the pipeline layer numbers of the N+1 pipeline layers are 0 to N from bottom to top.

[0045] Specifically, the data link layer configures two FIFO (first in first out) queues inside the wireless communication device: a first pipeline and a second pipeline. The depths of the first pipeline and the second pipeline are equal to the maximum aggregation number of the wireless communication device.

[0046] The first pipeline is composed of N+1 buffer index storage units, which are specifically responsible for storing buf indexes. Each buf index uniquely identifies a data frame position in the LMAC memory, and its value range is limited to between 0 and N.

[0047] The second pipeline is composed of N+1 aggregation index storage units, which are used to store type indexes. The type index represents a set of data frames with common aggregation attributes (such as destination address, QoS level, etc.).

[0048] The two pipelines contain a total of N+1 pipeline layers, each of which contains an aggregate index storage unit and a buffer index storage unit. These pipeline layers are numbered from 0 to N in order from the bottom to the top.

[0049] The design of PIPE in this application helps to achieve high efficiency and real-time data transmission. By optimizing the processing flow and resource allocation of PIPE, wireless communication devices can more effectively utilize wireless channels and processor resources, thereby improving data transmission throughput and reducing latency.

[0050] See also Figure 3 , is a flow chart of a method for sending a data frame provided in an embodiment of the present application. The method of the present application may include the following steps:

[0051] S301, the rate control module receives a data frame from the UMAC controller, adds rate control information in the reserved space of the data frame, and then writes the processed data frame into the LMAC memory.

[0052] The rate control module receives data frames from the UMAC controller and adds necessary rate control information in the reserved area of ​​the data frames. The processed data frames are then stored in the LMAC memory for subsequent processing.

[0053] In some embodiments of the present application, the rate control information includes but is not limited to:

[0054] ppdu_type: The type of physical protocol data unit (PPDU). It specifies the physical layer format and transmission characteristics of the data frame, such as whether it is a single-user MIMO (multiple input multiple output) transmission, whether OFDMA (orthogonal frequency division multiple access) technology is used, etc.

[0055] mcs: Modulation and Coding Scheme (MCS) index. It indicates the modulation and coding method used by the data frame at the physical layer, which directly affects the rate and reliability of data transmission.

[0056] S302. When the LMAC memory is not empty, the prefetch control module reads a data frame from the LMAC memory, parses the read data frame to obtain rate control information, storage address information and aggregation attribute information, writes the parsed rate control information and storage address information into the buf information pool, and writes the parsed aggregation attribute information into the type information pool.

[0057] When there are data frames to be processed in the LMAC memory (i.e., non-empty state), the pre-fetch control module reads a data frame from the memory, and then parses the data frame to extract the rate control information, storage address information, and aggregation attribute information.

[0058] Rate control information: used to guide subsequent physical layer transmission.

[0059] Storage address information: indicates the specific location of the data frame in the LMAC memory.

[0060] Aggregation attribute information: used to determine whether a data frame can be aggregated and sent with other data frames.

[0061] The extracted information will be written into the buf information pool and the type information pool respectively for subsequent quick retrieval and use.

[0062] For example: the pre-fetch control module reads the data frame with buf index 1 from the LMAC memory, and parses the rate control information with MCS index 7 and PPDU type SU-MIMO, the storage address information with storage address 0x1000, and the aggregation attribute information with destination address 192.168.1.2. These information are written into the buf information pool and the type information pool respectively.

[0063] S303, the storage aggregation management module determines an unused target buf index with the smallest value based on the buf index used in the first pipeline, assigns the target buf index to the read data frame, and determines an idle target pipeline layer number with the smallest value, and writes the target buf index into the target pipeline layer number indication buffer index storage unit.

[0064] The storage aggregation management module traverses the buffer index storage unit in the first pipeline to find an unused buf index with the smallest value, and then assigns the buf index to the data frame just parsed.

[0065] At the same time, the storage aggregation management module will also determine an idle state and the smallest pipeline layer number. This number will be used to indicate the position of the data frame in the pipeline.

[0066] Finally, the storage aggregation management module writes the allocated buf index into the buffer index storage unit indicated by the target pipeline layer number.

[0067] For an example, see Figure 4 As shown in the figure, a schematic diagram of writing the buf index and type index in the pipeline. Assuming that only buf indexes 0 and 2 are currently used in the first pipeline, the storage aggregation management module will select buf index 1 (the smallest value and unused) to allocate to the data frame with buf index 1. At the same time, pipeline layer number 0 (idle state and the smallest value) will also be selected as the storage location of the data frame. Then, buf index 1 is written to the buffer index storage unit of pipeline layer number 0.

[0068] S304, the storage aggregation management module queries whether there is parsed aggregation attribute information in the type information pool. If so, the type index matching the parsed aggregation attribute information is queried in the second pipeline, and the matching type index is written into the aggregation index storage unit indicated by the target pipeline layer number; if the parsed aggregation attribute information is not queried in the type information pool, the unused target type index with the smallest value is determined according to the type index used in the second pipeline, and the target type index is written into the aggregation index storage unit indicated by the target pipeline layer number.

[0069] Among them, after the buf index and the pipeline layer number are allocated, the storage aggregation management module will query whether there is a type index (type index) matching the aggregation attribute information of the data frame in the type information pool.

[0070] If a matching type index is found, it indicates that there are other data frames with the same aggregation attribute as the data frame and can be aggregated and sent. At this time, the storage aggregation management module will search the pipeline layer corresponding to the matching type index in the second pipeline and write the type index to the aggregation index storage unit indicated by the target pipeline layer number.

[0071] If no matching type index is found, it indicates that the data frame is a new aggregation group or cannot be aggregated with other data frames. At this time, the storage aggregation management module determines an unused type index with the smallest value based on the type index used in the second pipeline, and writes it to the aggregation index storage unit indicated by the target pipeline layer number.

[0072] For example: Assume that there is an aggregation group with type index 0 in the type information pool, and its aggregation attribute information matches the data frame with buf index 1. Then the storage aggregation management module will search for the pipeline layer corresponding to type index 0 in the second pipeline (assuming it is pipeline layer number 0), and write type index 0 to the aggregation index storage unit of pipeline layer number 0.

[0073] If no matching type index is found, the storage aggregation management module selects type index 1 (unused and with the smallest value) as the new aggregation group identifier and writes it to the aggregation index storage unit of pipeline layer number 0.

[0074] S305. When the storage aggregation management module detects that the second pipeline is not empty, it instructs the EDCA module to perform channel competition, receives the target channel for which the competition is successful sent by the EDCA module, and obtains the type index in the aggregation index storage unit associated with the target channel, searches for the obtained type index from the bottom layer of the second pipeline, and writes the buf index in the pipeline layer where the type index is located into the sending queue.

[0075] When there are data frames to be sent in the second pipeline (ie, there are non-empty items in the aggregation index storage unit), the storage aggregation management module will instruct the EDCA module to perform channel contention.

[0076] The EDCA module will try to compete for the right to use the wireless channel according to the current channel status and competition strategy. Once the competition is successful, the EDCA module will notify the storage aggregation management module of the target channel for which the competition is successful.

[0077] After receiving the notification of successful competition, the storage aggregation management module will search for a matching type index from the bottom layer of the second pipeline according to the type index in the aggregation index storage unit associated with the target channel. Then, the buf index in the pipeline layer where the found type index is located is written to the sending queue to prepare for the sending of the data frame.

[0078] For example: Assume that the EDCA module successfully competes for the right to use channel 1 and notifies the storage aggregation management module. After receiving the notification, the storage aggregation management module searches for the type index associated with channel 1 from the bottom layer of the second pipeline (assuming type index 0). Then, it writes the buf index (such as 1) in pipeline layer number 0 to the sending queue, preparing to send data frames through channel 1.

[0079] S306. The EDCA module performs channel competition and notifies the storage aggregation management module of the channel that has successfully competed.

[0080] After successfully competing for the wireless channel, the EDCA module will promptly feed back the result to the storage aggregation management module to ensure that the data frame can be sent to the target receiver in a timely and accurate manner.

[0081] For example, after the EDCA module successfully competes for the right to use channel 1, it immediately notifies the storage aggregation management module of the result. After receiving the notification, the storage aggregation management module starts preparing to send data frames.

[0082] S307. When the sending control module detects that the sending queue is not empty, it reads the buf index from the sending queue, queries the corresponding storage address information and rate control information in the buf information pool according to the read buf index, reads the data frame in the LMAC memory according to the queried storage address information, and uses the queried rate control information to send the read data frame to the receiver through the physical layer; receives feedback information from the receiver, and notifies the aggregation management module of the feedback information.

[0083] When there are data frames to be sent in the sending queue (ie, the buf index is not empty), the sending control module reads a buf index from the queue and then retrieves the corresponding storage address information and rate control information from the buf information pool according to the read buf index.

[0084] Using the retrieved storage address information, the transmission control module reads the corresponding data frame from the LMAC memory and then sends the data frame to the receiver through the physical layer according to the rate control information.

[0085] After sending the data frame, the sending control module will wait for and receive feedback information (such as ACK / NACK) from the receiver, and then notify the storage aggregation management module of the feedback information for subsequent processing (such as confirming whether the data frame is successfully sent, whether it needs to be retransmitted, etc.).

[0086] For example: the transmit control module reads the data frame with buf index 1 from the transmit queue. Then, it retrieves the corresponding storage address information (such as 0x1000) and rate control information (such as MCS index 7 and PPDU type SU-MIMO) from the buf information pool. Then, it reads the data frame from the LMAC memory and sends it to the receiver (such as the device with the destination address 192.168.1.2) through the physical layer.

[0087] After sending the data frame, the sending control module receives the ACK feedback information from the receiver, indicating that the data frame has been successfully sent. Then, this information is notified to the storage aggregation management module.

[0088] S308. The aggregation management module determines the buf index of the successfully sent data frame based on the feedback information, determines the pipeline layer corresponding to the buf index in the first pipeline, deletes the data in the pipeline layer, and moves the data in the remaining pipeline layers down one layer as a whole.

[0089] The storage aggregation management module determines which data frames have been successfully sent according to the received feedback information, locates the pipeline layer where the buf index and type index corresponding to the successfully sent data frames are located in the first pipeline, and clears the buf index and type index in the pipeline layer to release storage space.

[0090] For details, see Figure 5 As shown in the figure, the principle diagram of deleting a pipeline layer in the pipeline, the data of other pipeline layers are moved down as follows:

[0091] Starting from the cleaned pipeline layer, check each pipeline layer above it (that is, the pipeline layer with a larger number). For each non-empty upper pipeline layer, copy the buf index and type index therein to the corresponding storage unit of the next pipeline layer with a smaller number. Repeat the above copy operation until the top-level pipeline layer is reached or an empty pipeline layer is encountered. The top-level pipeline layer (if it was not empty before) will be set to empty after the copy operation because there are no more pipeline layers above it to copy data. If an empty pipeline layer is encountered during the downward movement of data, the downward movement operation is stopped because it means that the pipeline layer below no longer needs to be overwritten. Through this operation, the continuity and integrity of the pipeline layer are ensured, while maximizing the use of the storage space of the pipeline layer.

[0092] In some embodiments of the present application, the N+1 aggregation index storage units are respectively associated with an access channel, and the N+1 aggregation index storage units are divided into multiple groups, each group is set with a priority, and the multiple groups are BEACON groups, VO groups, VI groups, BE groups, and BK groups.

[0093] Each aggregate index storage unit is associated with a specific access channel. This means that when a data frame is assigned to a certain aggregate index storage unit, it is also implicitly associated with the access channel associated with that storage unit. This association may be used to select the correct channel for transmission when the data frame is ready to be sent based on the aggregate index storage unit where it is located.

[0094] The aggregate index storage unit is divided into multiple groups, each with a specific priority. The priority of a group may be determined based on the type of data frame or the quality of service (QoS) requirement. Multiple access channels can compete at the same time, and the priority of each group is in the following order: BEACON>VO>VI>BE>BK. 3. The priority is reflected in the different edcabackoff parameters. It does not mean that the high priority must be sent first, but the probability of sending first is higher. There is only one AC_WINNER each time the channel competition is performed.

[0095] BEACON packets: Usually used to transmit beacon frames, which are used to broadcast the presence and parameters of access points in wireless networks. Since beacon frames are critical to the stable operation of the network, BEACON packets usually have the highest priority.

[0096] VO packet (Video): used to transmit video traffic. This type of traffic is very sensitive to delay and jitter, so VO packets usually have a higher priority.

[0097] VI group (Voice): used to transmit voice traffic, which is also sensitive to delay, but may be slightly more tolerant to jitter than video traffic. VI group also has a higher priority.

[0098] BE packets (Best Effort): used to transmit best-effort traffic. This type of traffic does not have strict quality of service requirements, so BE packets have a lower priority.

[0099] BK packet (Background): used to transmit background traffic. This type of traffic has the lowest requirements for latency and bandwidth, so the BK packet has the lowest priority.

[0100] When a data frame is assigned to a certain aggregate index storage unit, it is also assigned to a group with a specific priority. During the channel competition and data frame transmission phase, data frames in groups with higher priorities may be processed first. This priority mechanism helps ensure that delay-sensitive or important data frames can be transmitted in a timely manner, thereby improving overall network performance and user experience.

[0101] Furthermore, there is only one BEACON frame at a time and it is placed at a fixed starting address of the LMAC memory. This arrangement facilitates fast access and transmission of BEACON frames because their storage locations are known. The relevant information of the BEACON frame is not placed in the PIPE (referring to the first and second pipes mentioned earlier, which are used for aggregation and transmission management of data frames). This means that the BEACON frame will not be aggregated and sent with other data frames. This processing is to ensure the independence and timely transmission of the BEACON frame. Although the BEACON frames themselves do not participate in the aggregate transmission, the channels they are located in can still participate in channel competition. This means that when a device needs to send a BEACON frame, it will compete for channel resources like sending other data frames. However, due to the periodicity and importance of the transmission of BEACON frames, the device may adopt special channel access strategies to ensure the priority transmission of BEACON frames. In order to ensure the timely transmission of BEACON frames, the device may adopt some special channel access strategies, such as reserving channel time, using a shorter contention window or priority channel access. These strategies help reduce delays and conflicts when sending BEACON frames. Placing BEACON frames at fixed addresses and not participating in aggregated transmission but participating in channel competition helps ensure the reliability and timeliness of BEACON frames. This is essential for maintaining network stability and synchronization. At the same time, since the transmission frequency of BEACON frames is relatively low (usually once every certain period of time), this processing method has relatively little impact on overall network performance.

[0102] In summary, when a wireless communication device acts as an AP, special processing of BEACON frames helps ensure network stability and synchronization. By placing BEACON frames at a fixed address and not participating in aggregate transmission but participating in channel competition, the device can maintain the normal operation of the overall network while meeting the BEACON frame transmission requirements.

[0103] In some embodiments of the present application, the sending control information records the current channel state information and the sending state information, and sends the recorded information to the rate adjustment module; the channel state information includes: signal strength, background noise, interference source and CCA duration, and the sending state information includes: flow and number of retransmissions;

[0104] The rate adjustment module adjusts the rate control information according to the recorded information, and the rate control information includes: ppdu type and mcs.

[0105] Among them, signal strength is used to indicate the strength of the received signal and is an important indicator for evaluating channel quality. Background noise reflects the level of background interference in the channel. High background noise may reduce communication quality. Identifying potential sources of interference in the channel helps to avoid or mitigate interference. CCA duration (Clear Channel Assessment duration) indicates the length of time for channel idle state detection and is used to evaluate channel availability. Traffic indicates the current amount or rate of data sent and is a key indicator for evaluating network load. Recording the number of times a data frame needs to be resent due to transmission errors is an important parameter for evaluating communication reliability.

[0106] The closed-loop feedback and adjustment mechanism of this embodiment enables the wireless communication device to dynamically adjust the rate and type of data transmission according to the real-time channel conditions and transmission status. This helps to improve the efficiency and reliability of communication, especially in a changing wireless environment. By carefully managing the PPDU type and MCS, the device can better adapt to changes in channel conditions, thereby maintaining stable communication performance.

[0107] See also Figure 6 As shown, the method for sending a data frame in an embodiment of the present application is described below with reference to a specific example.

[0108] Step 1: PIPE initialization.

[0109] PIPE0 and PIPE1 depth: The depth of PIPE0 and PIPE1 is set to 16, which means that each PIPE can store the index information (buf_idx and type_idx) of up to 16 data frames.

[0110] Initial state: PIPE0 and PIPE1 are both empty at the beginning, and no index information of any data frame is stored.

[0111] Step 2: Pre-fetch data frames and fill PIPE.

[0112] Prefetch process: At time T0, the system prefetches data frames 0 to 15 in sequence and fills their information into PIPE.

[0113] PIPE0 filling: According to the buf_idx numbering rule, data frames 0 to 15 are numbered in sequence and filled into PIPE0, forming a continuous sequence of buf_idx.

[0114] PIPE1 padding: According to the aggregation attribute (type_idx) of the data frame, the data frame is classified and assigned the corresponding type_idx. For example, data frames 0 to 2, 6 to 7 are classified as type_idx = 0, data frames 3 to 5 are type_idx = 1, and so on.

[0115] Step 3: Data frame sending and PIPE update.

[0116] Data frame sending: At time T1, data frame 02,67 is successfully sent.

[0117] PIPE update: After the transmission is successful, the corresponding type_idx=0 level is cleared in PIPE1, indicating that the transmission task of these data frames has been completed. The corresponding buf_idx in PIPE0 is also marked as available or deleted, so there is an extra 5 frame space at the top.

[0118] Step 4: Pre-fetch new data frames and fill PIPE.

[0119] Prefetching new data frames: At time T2, the system prefetches new data frames 16 to 19.

[0120] buf_idx reallocation: Since there is an idle buf_idx in PIPE0, the new data frame is assigned the corresponding buf_idx. For example, data frame 16 is assigned buf_idx=0 (because 0 has been released before).

[0121] Type_idx allocation: A new data frame is assigned type_idx according to its aggregation attribute. Data frame 16 and data frame 1215 belong to the same aggregation category, so they are assigned type_idx = 3. Data frame 1719 is a new aggregation category and is assigned the smallest unused number type_idx = 0.

[0122] Step 5: Data frame sending and PIPE update.

[0123] Data frame transmission: At time T3, AC_BK wins the competition, and data frames 8 to 11 (type_idx=2) are successfully transmitted.

[0124] PIPE update: After successful transmission, the corresponding type_idx=2 level is cleared in PIPE1.

[0125] Step 6: Continue sending data frames.

[0126] Data frame transmission: At time T4, data frames 3 to 5 (type_idx=1) are successfully transmitted.

[0127] PIPE update: The corresponding type_idx=1 level is cleared in PIPE1.

[0128] Step 7: Some data frames are sent successfully.

[0129] Data frame transmission: At time T5, data frame 1216 is attempted to be transmitted, but only data frame 1314 is successful.

[0130] PIPE status: The corresponding buf_idx and type_idx in PIPE are updated according to the sending result.

[0131] Step 8: AC_BE obtains the channel and sends data frames.

[0132] Channel contention: At time T6, AC_BE obtains the channel.

[0133] Data frame transmission: Since data frame 12 has the highest priority (based on a certain priority policy), the system first attempts to transmit the data frame with type_idx = 3. Data frames 12, 15, and 16 are successfully transmitted.

[0134] PIPE update: The corresponding type_idx=3 level is cleared or updated in PIPE1.

[0135] Step 9: The remaining data frames are sent and PIPE is cleared.

[0136] Data frame sending: At time T7, data frames 17 to 19 are successfully sent.

[0137] PIPE status: With the successful transmission of these data frames, PIPE0 and PIPE1 both become empty, indicating that there are no data frames to be sent.

[0138] The technical solution of this application has the following technical effects:

[0139] Convenience of dual PIPE (pipeline) design: By introducing the design of the first pipeline (PIPE0) and the second pipeline (PIPE1), the separation and centralization of storage and transmission management related information are realized. PIPE0 combined with the buf information pool can easily track and control each data frame, because each data frame has a unique buf index as an index. This design simplifies the management process of data frames and improves the maintainability and traceability of the system.

[0140] Efficiency of aggregation management: PIPE1 combines the type information pool so that all aggregation-related information can be centrally acquired. During aggregation control, the system only needs to match the same type index (type_idx) to quickly find the relevant data frame for aggregation processing. This greatly improves the efficiency and accuracy of aggregation management.

[0141] Convenience of unique index: Both the hierarchical and buf indexes of the dual PIPE are unique. This design enables the system to quickly obtain all relevant information of a data frame through the index. This convenience not only improves the processing speed of the system, but also enhances the reliability and stability of the system.

[0142] Clarity of priority processing: The dual PIPE architecture reflects the priority of data frame processing. The bottom-level data frame is always the data frame that UMAC requires to be processed first, so when sending a search, the system always searches from the bottom to the top. This design ensures that data frames can be processed in order of priority, improving the system's response speed and efficiency.

[0143] Stability of synchronous management: The design of dual PIPE synchronous adding frame and synchronous clearing frame ensures the consistency of buf management and aggregation management timing. This synchronization not only simplifies the design complexity of the system, but also improves the stability and reliability of the system. By ensuring that the data frame status in the two pipes is updated synchronously, the system can avoid problems such as data inconsistency and conflict, thereby ensuring the continuity and integrity of data transmission.

[0144] The present application also provides a computer storage medium, which can store multiple instructions, and the instructions are suitable for being loaded and executed by a processor as described above. Figure 3 The method steps of the embodiment shown in the figure can be found in the specific execution process. Figure 3 The specific description of the illustrated embodiment will not be repeated here.

[0145] The present application also provides a computer program product, which stores at least one instruction, and the at least one instruction is loaded and executed by the processor to implement the data frame sending method described in the above embodiments.

[0146] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiments can be implemented by instructing related hardware through a computer program, and the program can be stored in a computer-readable storage medium, and when the program is executed, it can include the processes of the embodiments of the above-mentioned methods. The storage medium can be a disk, an optical disk, a read-only storage memory, or a random access memory, etc.

[0147] What is disclosed above is only a preferred embodiment of the present application, and it certainly cannot be used to limit the scope of rights of the present application. Ordinary technicians in this field can understand that all or part of the processes of the above embodiment and equivalent changes made according to the claims of the present application are still within the scope of the invention.

Claims

1. A method for sending a data frame, characterized in that: Applied to a wireless communication device, the data link layer of the wireless communication device is provided with a first pipeline and a second pipeline; the first pipeline and the second pipeline are FIFO queues, the first pipeline includes N+1 buffer index storage units for storing buf index, and the value range of the buf index is 0 to N; the second pipeline includes N+1 aggregation index storage units for storing type index; the first pipeline and the second pipeline are composed of N+1 pipeline layers, each pipeline layer includes an aggregation index storage unit and a buffer index storage unit, and the pipeline layer numbers of the N+1 pipeline layers are 0 to N from bottom to top; Wherein, the method for sending the data frame includes: The rate control module receives the data frame from the UMAC controller, adds the rate control information in the reserved space of the data frame, and then writes the processed data frame into the LMAC memory; When the LMAC memory is not empty, the prefetch control module reads a data frame from the LMAC memory, parses the read data frame to obtain rate control information, storage address information and aggregation attribute information, writes the parsed rate control information and storage address information into the buf information pool, and writes the parsed aggregation attribute information into the type information pool; The storage aggregation management module determines an unused target buf index with the smallest value according to the buf index used in the first pipeline, assigns the target buf index to the read data frame, determines an idle target pipeline layer number with the smallest value, and writes the target buf index into the target pipeline layer number indication buffer index storage unit; querying whether the parsed aggregate attribute information exists in the type information pool, and if so, querying the type index matching the parsed aggregate attribute information in the second pipeline, and writing the matching type index into the aggregate index storage unit indicated by the target pipeline layer number; if the parsed aggregate attribute information is not queried in the type information pool, determining an unused target type index with the smallest value according to the type index used in the second pipeline, and writing the target type index into the aggregate index storage unit indicated by the target pipeline layer number; When it is detected that the second pipeline is not empty, the EDCA module is instructed to perform channel contention, a target channel for which contention has been successfully transmitted by the EDCA module is received, and a type index in an aggregate index storage unit associated with the target channel is obtained, and the obtained type index is searched from the bottom layer of the second pipeline, and a buf index in the pipeline layer where the obtained type index is located is written into a sending queue; The EDCA module performs channel competition and notifies the storage aggregation management module of the channel that successfully competes; When the sending control module detects that the sending queue is not empty, it reads the buf index from the sending queue, queries the corresponding storage address information and rate control information in the buf information pool according to the read buf index, reads the data frame in the LMAC memory according to the queried storage address information, and uses the queried rate control information to send the read data frame to the receiver through the physical layer; receives feedback information from the receiver, and notifies the aggregation management module of the feedback information; The aggregation management module will determine the buf index of the successfully sent data frame based on the feedback information, determine the pipeline layer corresponding to the buf index in the first pipeline, delete the data in the pipeline layer, and move the data in the remaining pipeline layers down one layer as a whole.

2. The method according to claim 1, characterized in that The N+1 aggregation index storage units are respectively associated with an access channel, and the N+1 aggregation index storage units are divided into multiple groups, each group is set with a priority, and the multiple groups are BEACON group, VO group, VI group, BE group, and BK group.

3. The method according to claim 1, characterized in that Also includes: The sending control information records the current channel state information and the sending state information, and sends the recorded information to the rate adjustment module; The channel state information includes: signal strength, background noise, interference source and CCA duration, and the transmission state information includes: flow rate and number of retransmissions; The rate adjustment module adjusts the rate control information according to the recorded information, and the rate control information includes: ppdu type and mcs.

4. A data frame sending device, characterized in that: Applied to a wireless communication device, the data link layer of the wireless communication device is provided with a first pipeline and a second pipeline; the first pipeline and the second pipeline are FIFO queues, the first pipeline includes N+1 buffer index storage units for storing buf index, and the value range of the buf index is 0 to N; the second pipeline includes N+1 aggregation index storage units for storing type index; the first pipeline and the second pipeline are composed of N+1 pipeline layers, each pipeline layer includes an aggregation index storage unit and a buffer index storage unit, and the pipeline layer numbers of the N+1 pipeline layers are 0 to N from bottom to top; Wherein, the sending device comprises: The rate control module is used to receive the data frame from the UMAC controller, add the rate control information in the reserved space of the data frame, and then write the processed data frame into the LMAC memory; A prefetch control module, configured to read a data frame from the LMAC memory when the LMAC memory is not empty, parse the read data frame to obtain rate control information, storage address information and aggregation attribute information, write the parsed rate control information and storage address information into the buf information pool, and write the parsed aggregation attribute information into the type information pool; A storage aggregation management module, used to determine an unused target buf index with the smallest value according to the buf index used in the first pipeline, assign the target buf index to the read data frame, and determine an idle state and the smallest target pipeline layer number, and write the target buf index into the target pipeline layer number indication buffer index storage unit; querying whether the parsed aggregate attribute information exists in the type information pool, and if so, querying the type index matching the parsed aggregate attribute information in the second pipeline, and writing the matching type index into the aggregate index storage unit indicated by the target pipeline layer number; if the parsed aggregate attribute information is not queried in the type information pool, determining an unused target type index with the smallest value according to the type index used in the second pipeline, and writing the target type index into the aggregate index storage unit indicated by the target pipeline layer number; When it is detected that the second pipeline is not empty, the EDCA module is instructed to perform channel contention, a target channel for which contention has been successfully transmitted by the EDCA module is received, and a type index in an aggregate index storage unit associated with the target channel is obtained, and the obtained type index is searched from the bottom layer of the second pipeline, and a buf index in the pipeline layer where the obtained type index is located is written into a sending queue; The EDCA module is used to perform channel competition and notify the storage aggregation management module of the channel that has successfully competed; A sending control module, configured to read a buf index from the sending queue when detecting that the sending queue is not empty, query the corresponding storage address information and rate control information in the buf information pool according to the read buf index, read a data frame in the LMAC memory according to the queried storage address information, and send the read data frame to the receiver through the physical layer using the queried rate control information; receive feedback information from the receiver, and notify the aggregation management module of the feedback information; The aggregation management module is also used to determine the buf index of the successfully sent data frame based on the feedback information, determine the pipeline layer corresponding to the buf index in the first pipeline, delete the data in the pipeline layer, and move the data in the remaining pipeline layers down one layer as a whole.

5. A computer storage medium, characterized in that: The computer storage medium stores a plurality of instructions, and the instructions are suitable for being loaded by a processor and executing the method steps according to any one of claims 1 to 3.

6. A wireless communication device, characterized in that: include: A processor and a memory; wherein the memory stores a computer program, and the computer program is suitable for being loaded by the processor and executing the method steps as claimed in any one of claims 1 to 3.