Communication method and apparatus, and chip and computer-readable storage medium
By encoding Bluetooth data and transmitting it in a dispersed manner using XOR coding, the problem of data loss caused by interference and distance limitations in Bluetooth communication is solved, achieving higher stability and reliability.
Patent Information
- Application Number
- PCT/CN2024/143897
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-19
- Filing Date
- 2024-12-30
- Publication Date
- 2025-09-25
AI Technical Summary
In practical applications, Bluetooth communication is susceptible to electromagnetic interference and transmission distance limitations, which can lead to data packet loss and affect the stability and reliability of communication.
The initial Bluetooth data is encoded using XOR coding to generate multiple sets of target Bluetooth data, which are then dispersed into multiple data packets for transmission, and redundant data is used to improve the robustness and reliability of communication.
Even if some data packets are lost, the receiving end can still restore the initial Bluetooth data through other data packets, improving the stability and reliability of Bluetooth communication.
Smart Images

Figure CN2024143897_25092025_PF_FP_ABST
Abstract
Description
A communication method, device, chip and computer-readable storage medium
[0001] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office on March 19, 2024, with application number 202410331406.1 and application name “A communication method, device, chip and computer-readable storage medium”, the entire contents of which are incorporated by reference into this application. Technical Field
[0002] The present application relates to the field of Bluetooth communications, and in particular to a communication method, device, chip, and computer-readable storage medium. Background Art
[0003] Bluetooth communication is a widely used wireless transmission technology that plays a vital role in data transmission and broadcasting between various devices. However, in practical applications, Bluetooth communication often faces various challenges and interference factors, such as electromagnetic interference and transmission distance limitations. These interference factors can reduce the stability and reliability of Bluetooth communication and even cause a series of problems.
[0004] For example, when a sender needs to transmit Bluetooth data (i.e., raw data), the typical practice is to send the Bluetooth data in multiple Bluetooth packets. Each Bluetooth packet contains a portion of the Bluetooth data, and these Bluetooth packets are transmitted one by one during the communication process. However, if these Bluetooth packets are subject to external interference, such as electromagnetic waves or transmission distance limitations, some Bluetooth packets may be lost. If the receiver fails to receive all Bluetooth packets, it will be unable to fully restore the Bluetooth data sent by the sender, reducing the stability and reliability of Bluetooth communication. Summary of the Invention
[0005] The present application provides a communication method, device, chip and computer-readable storage medium, which can improve the stability and reliability of Bluetooth communication.
[0006] In a first aspect, a communication method is provided, which can be executed by a first electronic device, or by a component of the first electronic device (such as a processor, chip, or chip system, etc.), or by a logic module or software that can realize all or part of the functions of the first electronic device.
[0007] The method includes: obtaining initial Bluetooth data to be sent; when current communication environment information does not meet preset communication environment information, encoding the initial Bluetooth data using an exclusive-OR encoding method to obtain multiple groups of target Bluetooth data; and sending multiple first Bluetooth data packets carrying the multiple groups of target Bluetooth data, wherein each first Bluetooth data packet carries the target Bluetooth data of some groups among the multiple groups of target Bluetooth data.
[0008] It should be understood that the first electronic device serves as a transmitting device, specifically a device with Bluetooth low energy capability. Among them, the first electronic device can be, for example, a terminal device with Bluetooth low energy capability. The initial Bluetooth data can be generated by the first electronic device, or sent to the first electronic device by other devices; of course, it can also be downloaded by the first electronic device through the network. The communication method provided in this application can be applied to broadcast scenarios in Bluetooth communication, and can also be applied to transmission scenarios in Bluetooth communication. The initial Bluetooth data to be sent obtained in different scenarios is different.
[0009] In one possible implementation, in a broadcast scenario, the initial Bluetooth data is broadcast data, which includes relevant information of the first electronic device; in a transmission scenario, the initial Bluetooth data is data during transmission, such as text messages, audio streams, video streams, files, etc.
[0010] It should be understood that the target Bluetooth data can be referred to as encoded data. When the current communication environment information does not meet the preset communication environment information, it means that the current communication is interfered with, such as electromagnetic interference or transmission distance. Among them, the current communication environment information includes at least one of signal strength, signal quality, interference level, spectrum usage and communication distance. The preset communication environment information includes at least one of a preset signal strength threshold, a preset signal quality threshold, a preset interference level threshold, a preset frequency usage threshold and a preset communication distance threshold. When the first electronic device determines that the current communication environment information does not meet the preset communication environment information, it means that the current communication environment is not good or the communication conditions are relatively poor, which is easily interfered with and packet loss is very likely to occur. The first electronic device can encode the initial Bluetooth data using an XOR encoding method to obtain the target Bluetooth data to increase the robustness and reliability of Bluetooth communication.
[0011] Among them, the main idea of using the XOR encoding method is to utilize the properties of the XOR operation to improve the reliability and stability of Bluetooth communication by adding redundant data; with this encoding method, when sending multiple first Bluetooth data packets, each first Bluetooth data packet contains part of the data in the encoded data (that is, each first Bluetooth data packet contains part of the target Bluetooth data in multiple groups of target Bluetooth data). Even if part of the first Bluetooth data packets in the multiple first Bluetooth data packets are lost during the communication process, the recipient (such as the second electronic device) can still restore the initial Bluetooth data by using the data in another part of the first Bluetooth data packet received.
[0012] In a possible implementation, the XOR encoding method is a fountain code encoding method or a batch sparse code encoding method.
[0013] It should be understood that the first electronic device sends multiple first Bluetooth data packets. In the broadcast scenario, the first electronic device can use a broadcast method to send multiple first Bluetooth data packets; in the transmission scenario, the first electronic device can send multiple first Bluetooth data packets to the second electronic device. At this time, the second electronic device is a device that establishes a Bluetooth connection with the first electronic device. Multiple groups of target Bluetooth data are dispersed into multiple first Bluetooth data packets, and each first Bluetooth data packet contains a part of the target Bluetooth data of the group. This distributed transmission is designed to provide fault tolerance for communication. Even if a part of the first Bluetooth data packet is lost, the initial Bluetooth data can be restored by receiving another part of the first Bluetooth data packet.
[0014] According to the communication method provided by the present application, a first electronic device obtains initial Bluetooth data to be sent; when the current communication environment information does not meet the preset communication environment information, the initial Bluetooth data is encoded using an XOR encoding method to obtain multiple groups of target Bluetooth data; and multiple first Bluetooth data packets carrying multiple groups of target Bluetooth data are sent, each first Bluetooth data packet carrying target Bluetooth data of some groups of the multiple groups of target Bluetooth data. Through the XOR encoding method, the initial Bluetooth data is converted into multiple groups of target Bluetooth data and dispersed into multiple first Bluetooth data packets for transmission, so that the initial Bluetooth data can be redundantly protected. When interference occurs during the communication process and causes a part of the first Bluetooth data packet to be lost, the initial Bluetooth data can be restored based on the received other part of the first Bluetooth data packet, avoiding incomplete received data due to packet loss, thereby improving the reliability and stability of communication.
[0015] In one possible implementation, each first Bluetooth data packet includes a first data packet header and a first payload. The data in the first payload is the target Bluetooth data of a portion of the group. The first data packet header indicates that the encoding method of the initial Bluetooth data is an XOR encoding method. The first data packet header can be represented by Header, and the first payload in the first data packet header can be represented by Payload.
[0016] The first data packet header includes a coding flag field that indicates whether the initial Bluetooth data is encoded using an XOR coding method. For example, the coding flag field is a Coding Flag field. By adding the Coding Flag field to the first data packet header, the second electronic device knows how to correctly decode the data, reducing ambiguity and errors in decoding the data, improving the reliability of data decoding, and increasing decoding efficiency.
[0017] In another possible implementation, the first data packet header not only indicates that the encoding method of the initial Bluetooth data is the XOR encoding method, but also indicates the encoding parameters of the XOR encoding method. The encoding parameters refer to specific information on how to encode the initial Bluetooth data, so that the second electronic device decodes the data in the first payload of at least two received first Bluetooth data packets according to the XOR encoding method and the encoding parameters of the XOR encoding method to obtain the initial Bluetooth data, thereby improving the efficiency and accuracy of decoding and further improving the efficiency of the second electronic device in obtaining the initial Bluetooth data.
[0018] The first Bluetooth data packet includes an Algorithm field (i.e., an algorithm field), which is used to indicate encoding parameters of the XOR encoding scheme. In other words, the Algorithm field is used to distinguish between encoding scheme variants, i.e., the Algorithm field indicates different encoding schemes or algorithm variants. Different values in the Algorithm field indicate different encoding schemes or algorithm variants.
[0019] Exemplarily, the coding parameters include coding redundancy.
[0020] In another possible implementation, when the current communication environment information meets the preset communication environment information, the first electronic device sends multiple second Bluetooth data packets carrying initial Bluetooth data; each second Bluetooth data packet includes a second data packet header and a second payload, the data of the second payload in each second Bluetooth data packet is part of the data in the initial Bluetooth data, and the second data packet header indicates that the initial Bluetooth data is not encoded.
[0021] It should be understood that when the current communication environment information meets the preset communication environment information, it indicates that the current communication environment is good, and the probability of packet loss is relatively small at this time, so the initial Bluetooth data does not need to be encoded; the initial Bluetooth data is carried by multiple second Bluetooth data packets, and each second Bluetooth data packet carries part of the initial Bluetooth data.
[0022] The above solution, under the condition of a good communication environment, improves transmission efficiency, reduces resource consumption, simplifies data processing flow, and maintains the uniqueness of the second Bluetooth data packet and communication flexibility by directly transmitting the uncoded initial Bluetooth data.
[0023] In the second aspect, a communication method is provided, which can be executed by a second electronic device, or by a component of the second electronic device (such as a processor, chip, or chip system, etc.), or by a logic module or software that can realize all or part of the functions of the second electronic device.
[0024] The method includes: receiving at least two first Bluetooth data packets from a first electronic device, wherein the at least two first Bluetooth data packets are at least part of a plurality of first Bluetooth data packets sent by the first electronic device, the plurality of first Bluetooth data packets carry a plurality of groups of target Bluetooth data, each first Bluetooth data packet carries a portion of the plurality of groups of target Bluetooth data, and the plurality of groups of target Bluetooth data are obtained by encoding initial Bluetooth data using an exclusive-OR encoding method; and parsing the at least two first Bluetooth data packets to obtain initial Bluetooth data.
[0025] It should be understood that in the broadcast scenario, no Bluetooth communication connection is established between the first electronic device and the second electronic device; in the transmission scenario, the second electronic device is a device that establishes a Bluetooth communication connection with the first electronic device.
[0026] In a possible implementation, each first Bluetooth data packet includes a first data packet header and a first payload, the data in the first payload is a partial group of target Bluetooth data, and the first data packet header indicates that the encoding method of the initial Bluetooth data is an XOR encoding method.
[0027] In a possible implementation, the first data packet header further indicates encoding parameters of the XOR encoding method.
[0028] In a possible implementation, the coding parameter includes coding redundancy.
[0029] In a possible implementation, the XOR encoding method is a fountain code encoding method or a batch sparse code encoding method.
[0030] In one possible implementation, multiple second Bluetooth data packets carrying initial Bluetooth data are received from a first electronic device, each second Bluetooth data packet includes a second data packet header and a second payload, the data in the second payload is part of the data in the initial Bluetooth data, and the second data packet header indicates that the initial Bluetooth data is not encoded; the multiple second Bluetooth data packets are parsed to obtain the initial Bluetooth data.
[0031] For the beneficial effects of each implementation method in the second aspect, please refer to the description of the first aspect and will not be repeated here.
[0032] In a third aspect, a communication device is provided, comprising a module or unit for executing the method in the first aspect or any possible implementation of the first aspect, or comprising a module or unit for executing the method in the second aspect or any possible implementation of the second aspect.
[0033] In a fourth aspect, a communication device is provided, comprising a processor coupled to a memory, the memory being used to store computer programs or instructions, and the processor being used to execute the computer programs or instructions stored in the memory to implement the method in the first aspect or any possible implementation of the first aspect, or to implement the method in the second aspect or any possible implementation of the second aspect.
[0034] In one possible implementation, the apparatus further includes a memory coupled to the processor.
[0035] In a possible implementation, there are one or more processors and / or one or more memories.
[0036] In a possible implementation, the memory may be integrated with the processor, or the memory may be provided separately from the processor.
[0037] In a possible implementation, the device further includes a communication interface, and the processor is coupled to the communication interface.
[0038] In one implementation, the apparatus is a terminal device. Exemplarily, the communication interface may be a transceiver, or an input / output interface.
[0039] In a fifth aspect, a processor is provided, comprising: an input circuit, an output circuit, and a processing circuit. The processing circuit is configured to receive a signal through the input circuit and transmit a signal through the output circuit, so that the processor executes the method of any of the above aspects or any possible implementation of any of the above aspects.
[0040] In a specific implementation, the processor may be a chip, the input circuit may be an input pin, the output circuit may be an output pin, and the processing circuit may be a transistor, a gate circuit, a trigger, or various logic circuits. The input signal received by the input circuit may be, for example, but not limited to, received and input by a receiver, and the signal output by the output circuit may be, for example, but not limited to, output to and transmitted by a transmitter. The input circuit and the output circuit may be the same circuit, which functions as an input circuit and an output circuit at different times. This application does not limit the specific implementation of the processor and various circuits.
[0041] In a sixth aspect, a computer program product is provided, which includes: a computer program (also referred to as code, or instructions), which, when executed, enables a computer to execute a method in any one of the above aspects or any possible implementation of any one of the aspects.
[0042] In the seventh aspect, a computer-readable storage medium is provided, which stores a computer program (also referred to as code, or instructions). When the computer program runs on a computer, it enables the computer to execute the method in any one of the above aspects or any possible implementation of any one of the aspects.
[0043] In an eighth aspect, a chip is provided, comprising a processor for calling and running a computer program from a memory, so that a communication device equipped with the chip executes a method in any one of the above aspects or any possible implementation of any one of the aspects.
[0044] In a ninth aspect, a communication device is provided, which includes an interface and a processor, wherein the interface is used to send and / or receive signals, so that the processor executes the method in any one of the above aspects or any possible implementation of any one of the aspects. BRIEF DESCRIPTION OF THE DRAWINGS
[0045] FIG1 is a schematic structural diagram of an electronic device provided in an embodiment of the present application;
[0046] FIG2 is a software structure block diagram of the electronic device 100 according to an embodiment of the present application;
[0047] FIG3 is a schematic diagram of the format of a Bluetooth data packet of a related technology in a communication method provided in an embodiment of the present application;
[0048] FIG4 is a flow chart of a communication method provided in an embodiment of the present application;
[0049] FIG5 is a schematic diagram of encoding initial Bluetooth data using an XOR encoding method in a communication method provided in an embodiment of the present application;
[0050] FIG6 is a schematic diagram of the format of a first Bluetooth data packet of a communication method provided in an embodiment of the present application;
[0051] FIG7 is a schematic diagram of the format of another first Bluetooth data packet according to a communication method provided in an embodiment of the present application;
[0052] FIG8 is a schematic diagram of sending multiple first Bluetooth data packets in a broadcast manner in a communication method provided in an embodiment of the present application.
[0053] FIG9 is a schematic diagram of decoding multiple groups of target Bluetooth data in a communication method provided in an embodiment of the present application;
[0054] FIG10 is a schematic structural diagram of a communication device provided in an embodiment of the present application;
[0055] FIG11 is a schematic structural diagram of another communication device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0056] The technical solutions in the embodiments of the present application will be described below in conjunction with the drawings in the embodiments of the present application.
[0057] In the description of the embodiments of this application, unless otherwise specified, " / " represents or; for example, A / B can represent A or B. "And / or" in this article is simply a description of the association relationship between related objects, indicating that three relationships can exist; for example, A and / or B can represent: A exists alone, A and B exist at the same time, or B exists alone. In addition, in the description of the embodiments of this application, "a plurality" means two or more than two.
[0058] In the following, the terms "first," "second," and "third" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the quantity of the technical features indicated. Therefore, a feature specified as "first," "second," or "third" may explicitly or implicitly include one or more of the features.
[0059] An embodiment of the present application provides an electronic device for executing the communication method provided in the present application. In some embodiments of the present application, the electronic device may be a mobile phone, a tablet computer, a wearable device, an in-vehicle device, an augmented reality (AR) / virtual reality (VR) device, a laptop computer, an ultra-mobile personal computer (UMPC), a netbook, a personal digital assistant (PDA), etc., or may be other devices or apparatuses capable of Bluetooth communication. The embodiments of the present application do not impose any restrictions on the specific type of the electronic device.
[0060] For example, FIG1 is a schematic structural diagram of an electronic device provided in an embodiment of the present application.
[0061] As shown in Figure 1, the electronic device 100 may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, an antenna 2, a mobile communication module 150, and a wireless communication module 160.
[0062] It should be understood that the structures illustrated in the embodiments of the present application do not constitute a specific limitation on the electronic device 100. In other embodiments of the present application, the electronic device 100 may include more or fewer components than shown, or may combine or separate certain components, or arrange the components differently. The illustrated components may be implemented in hardware, software, or a combination of software and hardware.
[0063] The processor 110 may include one or more processing units. For example, the processor 110 may include an application processor (AP), a modem processor, a graphics processing unit (GPU), an image signal processor (ISP), a controller, a memory, a video codec, a digital signal processor (DSP), a baseband processor, and / or a neural-network processing unit (NPU). The different processing units may be independent devices or integrated into one or more processors.
[0064] The controller may be the nerve center and command center of the electronic device 100. The controller may generate an operation control signal according to the instruction operation code and the timing signal to complete the control of fetching and executing instructions.
[0065] Processor 110 may also include a memory for storing instructions and data. In some embodiments, the memory in processor 110 is a cache memory. This memory can store instructions or data that have just been used or are being recycled by processor 110. If processor 110 needs to use the same instruction or data again, it can directly retrieve it from the memory. This avoids duplicate accesses, reduces processor 110 latency, and thus improves system efficiency.
[0066] In some embodiments, the processor 110 may include one or more interfaces. The interfaces may include an inter-integrated circuit (I2C) interface, an inter-integrated circuit sound (I2S) interface, a pulse code modulation (PCM) interface, a universal asynchronous receiver / transmitter (UART) interface, a mobile industry processor interface (MIPI), a general-purpose input / output (GPIO) interface, a subscriber identity module (SIM) interface, and / or a universal serial bus (USB) interface.
[0067] The wireless communication function of the electronic device 100 can be implemented through the antenna 1, the antenna 2, the mobile communication module 150, the wireless communication module 160, the modem processor and the baseband processor.
[0068] Antenna 1 and Antenna 2 are used to transmit and receive electromagnetic wave signals. The structures of Antenna 1 and Antenna 2 in Figure 1 are merely illustrative. Each antenna in electronic device 100 can be used to cover a single or multiple communication frequency bands. Different antennas can also be reused to improve antenna utilization. For example, Antenna 1 can be reused as a diversity antenna for a wireless local area network. In other embodiments, the antennas can be used in conjunction with a tuning switch.
[0069] The external memory interface 120 can be used to connect an external memory card, such as a Micro SD card, to expand the storage capacity of the electronic device 100. The external memory card communicates with the processor 110 via the external memory interface 120 to implement data storage functions. For example, files such as music and videos can be stored on the external memory card.
[0070] Among them, the wireless communication module 160 can provide wireless communication solutions including wireless local area networks (WLAN) (such as wireless fidelity (Wi-Fi) networks), Bluetooth (BT), near field communication (NFC), etc. applied to the electronic device 100. In some embodiments, the antenna 1 of the electronic device 100 is coupled to the mobile communication module 150, and the antenna 2 is coupled to the wireless communication module 160, so that the electronic device 100 can communicate with the network and other terminal devices through wireless communication technology. The wireless communication technology may include global system for mobile communications (GSM), general packet radio service (GPRS), code division multiple access (CDMA), etc.
[0071] The software system of the electronic device 100 can adopt a layered architecture, an event-driven architecture, a micro-kernel architecture, a microservice architecture, or a cloud architecture. In the embodiment of the present application, the Android system with a layered architecture is used as an example to illustrate the software structure of the electronic device 100.
[0072] FIG2 is a block diagram of the software structure of the electronic device 100 according to an embodiment of the present application.
[0073] It should be understood that the layered architecture can divide the software into several layers, each with a clear role and division of labor; the layers can communicate with each other through software interfaces.
[0074] As shown in Figure 2, the Android system can be divided into four layers: the application layer, the application framework layer, the Android runtime and system libraries, and the kernel layer. The application layer can include a series of application packages.
[0075] As shown in FIG2 , the application package may include applications such as camera, gallery, calendar, call, map, navigation, WLAN, Bluetooth, music, video, and short message.
[0076] The application framework layer provides an application programming interface (API) and programming framework for applications in the application layer. The application framework layer includes some predefined functions.
[0077] As shown in FIG2 , the application framework layer may include a window manager, a content provider, a view system, a telephony manager, a resource manager, a notification manager, and the like.
[0078] The window manager is used to manage window programs. The window manager can obtain the display size, determine whether there is a status bar, lock the screen, take screenshots, etc.
[0079] Content providers are used to store and retrieve data and make it accessible to applications. This data can include videos, images, audio, calls made and received, browsing history and bookmarks, phone books, etc.
[0080] The view system includes visual controls, such as those for displaying text and images. The view system is used to build applications. A display interface can consist of one or more views. For example, a display interface containing a text notification icon might include a view for displaying text and a view for displaying images.
[0081] The phone manager is used to provide communication functions of the electronic device 100, such as management of call status (including answering, hanging up, etc.).
[0082] The resource manager provides various resources for applications, such as localized strings, icons, images, layout files, video files, and so on.
[0083] The Notification Manager allows applications to display notifications in the status bar. These messages can be displayed briefly and then disappear automatically, without requiring user interaction. For example, the Notification Manager can be used to notify users of completed downloads and message reminders. The Notification Manager can also display notifications in the top status bar of the system as icons or scrolling text, such as notifications from background applications, or as dialog windows on the screen. Examples include displaying text messages in the status bar, emitting alert sounds, vibrating the device, or flashing indicator lights.
[0084] The Android runtime includes the core library and the virtual machine. The Android runtime is responsible for scheduling and management of the Android system.
[0085] The core library consists of two parts: one is the function that needs to be called by the Java language, and the other is the Android core library.
[0086] The application layer and application framework layer run in a virtual machine. The virtual machine executes Java files in the application layer and application framework layer as binary files. The virtual machine manages object lifecycles, stack management, thread management, security and exception management, and garbage collection.
[0087] The system library can include multiple functional modules, such as a surface manager, a media library, a 3D graphics processing library (such as the open graphics library for embedded systems (OpenGL ES)) and a 2D graphics engine (such as the skia graphics library (SGL)).
[0088] The surface manager is used to manage the display subsystem and provide fusion of 2D and 3D layers for multiple applications.
[0089] The media library supports playback and recording of multiple audio and video formats, as well as still image files. It supports a variety of audio and video codecs, such as MPEG4, H.264, Moving Picture Experts Group Audio Layer III (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR), Joint Photographic Experts Group (JPG), and Portable Network Graphics (PNG).
[0090] The 3D graphics processing library is used to implement 3D graphics drawing, image rendering, compositing, and layer processing.
[0091] A 2D graphics engine is a drawing engine for 2D drawings.
[0092] The kernel layer is the layer between hardware and software. The kernel layer includes at least display driver, camera driver, audio driver, and sensor driver.
[0093] The electronic devices shown in Figures 1 and 2 above may be transmitting devices, such as the first electronic device, or receiving devices, such as the second electronic device, in the following embodiments. The following description provides a detailed explanation of the communication method provided in the embodiments of the present application, in conjunction with the accompanying drawings and application scenarios. The first electronic device and the second electronic device are devices with Bluetooth Low Energy (BLE) capabilities.
[0094] Currently, to ensure that other devices can identify and interact with the first electronic device, the first electronic device needs to broadcast Bluetooth data packets. The Bluetooth data packets may carry information about the first electronic device, such as its functions and its name. This information enables the first electronic device to recognize and communicate with other devices.
[0095] In BLE versions 4.0 and 4.2, channels 37, 38, and 39 can be used by the first electronic device for "advertising," or for scanning and initiating connections. These channels play a crucial role in BLE communication, primarily providing the following functions:
[0096] 1) Device Discovery: The first electronic device uses these three channels to broadcast Bluetooth data packets that carry information about the first electronic device, such as the device name and its universally unique identifier (UUID). This broadcast information enables other devices to discover and identify the device.
[0097] 2) Connection establishment: The first electronic device searches for and discovers nearby BLE devices by listening to these broadcast channels. Once it finds a BLE device of interest, it selects a channel to initiate a connection request.
[0098] The format of the Bluetooth data packet sent in channels 37, 38 and 39 is shown in (a) of Figure 3. The Bluetooth data packet consists of four parts, namely "Preamble", "Access Address", "Protocol Data Unit (PDU)" and Cyclic Redundancy Check (CRC). Preamble is usually a series of repeated binary sequences with a specific pattern so that the second electronic device can easily identify the beginning of the Bluetooth data packet; the binary sequence is, for example, "01010101" or "10101010". The second electronic device can use it to configure automatic gain control and determine the frequency used by the "0" and "1" bits to ensure that the BLE signal can be reliably received and parsed in various environments. Access Address is the second part of the Bluetooth data packet, which is used to identify the type of PDU that follows. In Bluetooth, Access Address is the second part of the Bluetooth data packet, which is used to identify the type of PDU that follows. The Address can be fixed; this field helps the device determine whether to receive or ignore the following data; the first bit of the access address determines whether the Preamble is "01010101" or "10101010". If the first bit of the access address is "0", the "01010101" sequence is used; if it is "1", the "10101010" sequence is used. This ensures that the first 9 bits of any message are alternating, that is, either "101010101" or "010101010". PDU is the main part of the Bluetooth data packet, containing the actual data to be transmitted; PDU can be further divided into different types and can be changed as needed. CRC is a check field in the Bluetooth data packet, which is used to detect errors that may occur during transmission.
[0099] The PDU in the Bluetooth data packet shown in (a) of Figure 3 may be an Advertising PDU (Advertising Protocol Data Unit). The structure of the Advertising PDU is shown in (b) of Figure 3 . The Advertising PDU consists of two parts: a Header and a Payload. The length of the Payload is determined by the Length field in the Header. The Header is the first part of the Advertising PDU and typically contains some control information describing the content and format of the Payload. The Payload is the second part of the Advertising PDU and contains the actual data to be sent.
[0100] In one possible implementation, the header structure is shown in Figure 3 (c). The header consists of six fields: PDU Type, Reserved for Future Use (RFU), Transmitter Address (TxAdd), Receiver Address (RxAdd), Length, and RFU. PDU Type defines the type of Advertising PDU, used to inform the second electronic device of the purpose of this PDU. The first RFU is typically reserved for future expansion or is not yet used in related technologies. Its value is usually fixed or set according to a specific specification. TxAdd indicates the address type used by the transmitter (i.e., the first electronic device); this can be a public address or a random address. RxAdd indicates which type of address the second electronic device should use. Length specifies the length of the Payload in bytes. The value of this field determines the amount of data contained in the Payload. The second RFU is also reserved for future expansion or is typically fixed or set according to a specific specification. When constructing the Advertising PDU, this information in the header is carried in the Bluetooth data packet so that the second electronic device can detect and interpret it. The different fields set in the header ensure the correct transmission of the data and the correct interpretation of the data by the second electronic device.
[0101] For example, the value of the PDU Type field in the header can be one of SCAN_REQ, ADV_DIRECT_IND, ADV_IND, ADV_NONCONN_IND, ADV_SCAN_IND, SCAN_RSP, and CONNECT_REQ. These values determine the type of Advertising PDU and, therefore, the format of the payload. The following explains the payloads corresponding to different types of Advertising PDUs, with reference to the accompanying figures.
[0102] 1) When the Advertising PDU type is SCAN_REQ, as shown in (d) in Figure 3, the Payload consists of two parts, namely ScanA (scanning device address) and AdvA (address of the broadcasting device); ScanA: in some cases, this may be the public address or random address of the second electronic device; AdvA: This is the address of the first electronic device to which the SCAN_REQ is directed, which allows other devices to know which device is sending the broadcast.
[0103] 2) When the Advertising PDU type is ADV_DIRECT_IND, as shown in (e) of FIG3 , the Payload consists of two parts, namely AdvA and InitA; InitA may be the address of the device that the first electronic device sending the ADV_DIRECT_IND advertisement expects to receive the connection request.
[0104] 3) The type of Advertising PDU is ADV_IND, ADV_NONCONN_IND or ADV_SCAN_IND, as shown in (f) in Figure 3. The Payload consists of two parts: AdvA and AdvData (advertising data); AdvData contains the actual advertising content, such as advertising logo, transmit power level, device name, service UUID, etc.
[0105] 4) When the Advertising PDU type is SCAN_RSP, as shown in Figure 3 (g), the Payload consists of two parts: AdvA and ScanRspData (scan response data). ScanRspData can include data such as the device name and device appearance. ScanRspData is optional, and its content and format depend on actual configuration and requirements.
[0106] 5) When the Advertising PDU type is CONNECT_REQ, as shown in (h) in Figure 3, the Payload consists of three parts: InitA, AdvA, and LLData (link layer data); among them, LLData contains link layer parameters and data related to the connection establishment process.
[0107] The maximum size of a PDU in a Bluetooth data packet is 37 bytes, or PDU Max (Bytes) = 37. This means that when data is encapsulated in this PDU format, its total size (including header and payload) should not exceed 37 bytes. For example, if the PDU header is 2 bytes (2B) and the payload size is 23 to 35B, the payload size can vary between 23 and 35 bytes. The payload is the actual data portion of the PDU, containing the actual data sent by the application layer.
[0108] The payload in the Bluetooth data packet mentioned above carries the original data, i.e., the initial Bluetooth data. When the first electronic device sends the Bluetooth data packet, packet loss often occurs due to interference such as electromagnetic interference and transmission distance limitations. This situation causes the second electronic device to receive incomplete data, seriously affecting the stability and reliability of Bluetooth communication.
[0109] Based on this, an embodiment of the present application provides a communication method, which is applied to a communication system including a sending device and a receiving device. The sending device is a first electronic device, and the receiving device is a second electronic device. This communication method is applicable not only to broadcast scenarios but also to transmission scenarios. As shown in FIG4 , the communication method includes S301 to S305. Each step is explained in detail below.
[0110] S301: The first electronic device obtains initial Bluetooth data to be sent.
[0111] The Bluetooth data is information or content to be transmitted via BLE technology.
[0112] In an embodiment of the present application, the initial Bluetooth data may be generated by the first electronic device, or may be sent to the first electronic device by other devices; of course, it may also be downloaded by the first electronic device through the network. In different application scenarios of Bluetooth communication, the initial Bluetooth data to be sent is different. Among them, in the broadcast scenario, when the first electronic device is in discoverable mode, it will send broadcast data so that other devices can discover it and establish a connection, wherein the initial Bluetooth data is the broadcast data. In the transmission scenario, after the first electronic device establishes a connection with other devices, they can transmit data, and the initial Bluetooth data is the data during transmission.
[0113] In a possible implementation, in a broadcast scenario, the initial Bluetooth data is broadcast data, which includes relevant information of the first electronic device, such as device name, device type, service UUID, etc. The broadcast data is used for device discovery.
[0114] In another possible implementation, in a transmission scenario, the initial Bluetooth data is data during transmission, such as a text message, an audio stream, a video stream, a file, and the like.
[0115] S302: When the current communication environment information does not meet the preset communication environment information, the first electronic device encodes the initial Bluetooth data using an XOR encoding method to obtain multiple groups of target Bluetooth data.
[0116] The target Bluetooth data can be referred to as encoded data. When the current communication environment information does not meet the preset communication environment information, it indicates that the current communication is interfered with, such as electromagnetic interference or transmission distance. The current communication environment information can be the environmental parameters currently collected during the Bluetooth communication process, and the preset communication environment information refers to the pre-set communication environment parameter threshold. The current communication environment information can also be input by the user. The current communication environment information includes but is not limited to at least one of the following parameters:
[0117] 1) Signal strength. Signal strength is usually expressed as the power level of the received signal.
[0118] 2) Signal quality: Signal quality describes the clarity and purity of the signal.
[0119] 3) Interference level. There are various interference sources in the wireless communication environment, such as other wireless communication devices, electrical equipment, electromagnetic radiation, etc. The level of interference directly affects the stability and performance of communication.
[0120] 4) Spectrum usage refers to the spectrum occupancy within the current communication frequency band, including frequencies allocated to users and unused frequencies.
[0121] 5) Communication distance.
[0122] The preset communication environment information includes at least one of a preset signal strength threshold, a preset signal quality threshold, a preset interference level threshold, a preset frequency usage threshold, and a preset communication distance threshold.
[0123] In the embodiment of the present application, determining whether the current communication environment information meets the preset communication environment information can be achieved by:
[0124] In a first manner, the first electronic device may compare the acquired current communication environment information with the preset communication environment information, and determine whether the current communication environment information satisfies the preset communication environment information according to the comparison result.
[0125] Exemplarily, the current communication environment information is the signal strength currently collected by the first electronic device, and the preset communication environment information is a preset signal strength threshold. The currently collected signal strength is compared with the preset signal strength threshold to obtain a comparison result. When the comparison result indicates that the signal strength currently collected by the first electronic device is less than the preset signal strength threshold, it is determined that the current communication environment information does not meet the preset communication environment information; this may indicate that the current communication environment is poor, and in this case, packet loss is very likely to occur. When the comparison result indicates that the signal strength currently collected by the first electronic device is greater than or equal to the preset signal strength threshold, it is determined that the current communication environment information meets the preset communication environment information, which may indicate that the current communication environment is good and the possibility of packet loss is relatively small.
[0126] The second method is to determine whether the current communication environment information meets the preset communication environment information based on the user's input operation, wherein the input operation refers to the operation performed by the user through the user interface or an external application.
[0127] Specifically, when the first electronic device detects a first input operation by the user, it determines that the current communication environment information does not satisfy the preset communication environment information; and when the first electronic device detects a second input operation by the user, it determines that the current communication environment information satisfies the preset communication environment information. The input operation includes the first input operation or the second input operation.
[0128] Exemplarily, when the first electronic device detects a user clicking a red button on the user interface (i.e., a first input operation), the first electronic device determines that the current communication environment information does not meet the preset communication environment information, and the red button is a preset button for inputting that the communication environment is abnormal or poor. When the first electronic device detects a user clicking a yellow button on the user interface (i.e., a second input operation), the first electronic device determines that the current communication environment information meets the preset communication environment information, and the yellow button is a preset button for inputting that the communication environment is normal or good.
[0129] In the embodiment of the present application, if the current communication environment information does not meet the preset communication environment information, it means that the current communication environment is poor or the communication conditions are relatively bad and susceptible to interference. XOR encoding can be used to encode the initial Bluetooth data to obtain the target Bluetooth data to increase the robustness and reliability of Bluetooth communication.
[0130] Among them, the XOR encoding method is an error detection and correction encoding method based on the XOR operation. The XOR operation is a binary operation, and its rule is that when two corresponding binary digits are different, the result is 1; otherwise, the result is 0. In the embodiments of the present application, the main idea of adopting the XOR encoding method is to utilize the properties of the XOR operation to improve the reliability and stability during Bluetooth communication by adding redundant data; in this encoding method, when sending multiple first Bluetooth data packets, each first Bluetooth data packet contains part of the data in the encoded data (that is, the target Bluetooth data of some groups in multiple groups of target Bluetooth data). Even if some of the first Bluetooth data packets in the multiple first Bluetooth data packets are lost during communication, the receiving party (such as the second electronic device) can still recover the original Bluetooth data (that is, the initial Bluetooth data) through the data in the other part of the first Bluetooth data packets received.
[0131] In a possible implementation manner, the XOR encoding method is a fountain code encoding method or a batched sparse codes (Bats) method.
[0132] Among them, encoding the initial Bluetooth data by using the fountain code encoding method to obtain multiple groups of target Bluetooth data can be achieved through the following steps:
[0133] Step 1, divide the initial Bluetooth data into k groups, each group having the same number of bits, and determine a degree distribution function.
[0134] Step 2, according to the determined degree distribution function, randomly generate a degree value d, whose value range is between 1 and k (that is, 0 < d < k + 1). And randomly and uniformly select d groups from the k groups. Among them, the degree value refers to how many groups of the original data are used to obtain a group of target Bluetooth data through the XOR operation.
[0135] Step 3, perform the XOR operation on these d groups to generate a group of target Bluetooth data (that is, a group of encoded data).
[0136] After that, generate a new degree value d, and repeat steps 1 to 3 until N groups of target Bluetooth data are obtained; among them, the number of groups N of the target Bluetooth data is determined by the encoding redundancy m and the number of groups k into which the initial Bluetooth data is divided. N = round(m * k). N is a positive integer greater than 1.
[0137] For example, the number of groups k=3, the coding redundancy m=1.2, then "k*h=3.6, 3.6 is rounded to 4, that is, 4 groups of target Bluetooth data need to be generated, and 4 rounds of encoding are required. As shown in Figure 5, the initial Bluetooth data can be represented as 101111101 in binary. The initial Bluetooth data is divided into 3 groups, the first group is represented as S1, S1=101, the second group is represented as S2, S2=111, and the third group is represented as S3=101. In the first round of encoding, the degree value randomly generated according to the determined degree distribution function is represented by d1, for example, d1=2, then 2 groups are randomly selected, such as S1 and S2, and the first group of target Bluetooth data obtained by performing an XOR operation on S1 and S2 is represented by C1, C1=S1⊕S2=010; in the second round of encoding, according to the determined degree distribution function ... The degree value randomly generated by the determined degree distribution function is represented by d2, for example, d2=2, then 2 groups are randomly selected, such as S1 and S3, and the second group of target Bluetooth data obtained by performing an XOR operation on S1 and S3 is represented by C2, C2=S1⊕S3=000; in the third round of encoding, the degree value randomly generated according to the determined degree distribution function is represented by d3, for example, d3=1, and 1 group is randomly selected, such as S3, and the third group of target Bluetooth data obtained by performing an XOR operation on S3 and a null value is represented by C3, C3=S3=101; in the fourth round of encoding, the degree value randomly generated according to the determined degree distribution function is represented by d4, for example, d4=2, and 2 groups are randomly selected, such as S2 and S3, and the fourth group of target Bluetooth data obtained by performing an XOR operation on S2 and S3 is represented by C4, C4=S2⊕S3=010.
[0138] S303: The first electronic device sends multiple first Bluetooth data packets carrying multiple groups of target Bluetooth data.
[0139] In a broadcast scenario, a first electronic device can broadcast multiple first Bluetooth data packets. In a transmission scenario, a first electronic device can send multiple first Bluetooth data packets to a second electronic device, which establishes a Bluetooth connection with the first electronic device. These first Bluetooth data packets are also called encoded data packets; each first Bluetooth data packet carries target Bluetooth data from a subset of multiple target Bluetooth data sets.
[0140] In an embodiment of the present application, the number of target Bluetooth data groups is represented by N, and the number of target Bluetooth data groups carried in each first Bluetooth data packet is greater than or equal to 1 and less than N. The number of first Bluetooth data packets is greater than 1. Multiple groups of target Bluetooth data are dispersed into multiple first Bluetooth data packets, each of which contains a portion of the target Bluetooth data groups. This dispersed transmission is designed to provide fault tolerance for communication. Even if a portion of the first Bluetooth data packets is lost, the original Bluetooth data can be recovered using the received portion of the first Bluetooth data packets.
[0141] The above solution improves the reliability and stability of Bluetooth communication by adding redundant data and distributing transmission.
[0142] For example, the number of target Bluetooth data groups is four, and the four target Bluetooth data groups are C1, C2, C3, and C4 respectively. The number of first Bluetooth data packets can be three, and the first first Bluetooth data packet can carry two target Bluetooth data groups, such as C1 and C2. The second first Bluetooth data packet can carry one target Bluetooth data group, such as C3. The third first Bluetooth data packet can carry one target Bluetooth data group, such as C4. The first electronic device can send these three first Bluetooth data packets in sequence.
[0143] Each first Bluetooth data packet includes a first data packet header and a first payload. The first data packet header indicates that the encoding method of the initial Bluetooth data is an XOR encoding method. The first data packet header can be represented by Header, and the first payload can be represented by Payload. The target Bluetooth data of the partial group is carried in the first payload. In other words, the data in the first payload is the target Bluetooth data of the partial group.
[0144] In a possible implementation, the first data packet header includes a coding flag field, which indicates that the coding mode of the initial Bluetooth data is an XOR coding mode. The coding flag field is, for example, a Coding Flag field.
[0145] Exemplarily, the coding flag field indicates that the coding method of the initial Bluetooth data is the XOR coding method. Taking the XOR coding method as the fountain code coding method as an example, the value of the coding flag field can be 01; taking the XOR coding method as the batched sparse codes (Bats) coding method as an example, the value of the coding flag field is 11.
[0146] The above solution, which adds a Coding Flag field to the first data packet header, has the following advantages:
[0147] 1) Clearly indicates the encoding method of the initial Bluetooth data (i.e., original data) so that the receiving end can know how to correctly decode the data. This reduces ambiguity and errors when decoding data and improves the reliability of data decoding.
[0148] 2) Improved decoding efficiency: Because the Coding Flag field directly indicates how the initial Bluetooth data is encoded, the receiver can quickly determine the appropriate decoding method without performing additional detection or trying different decoding methods. This reduces processing latency and improves decoding efficiency.
[0149] 3) Support for multiple encoding methods: By adding a Coding Flag field to the first data packet header, the system can support multiple different encoding methods. This provides greater flexibility for Bluetooth communication, allowing the system to adapt to different application scenarios and user needs.
[0150] 4) Simplify protocol implementation: By explicitly indicating the encoding method in the first data packet header, the Bluetooth protocol stack can be simplified. This eliminates the need to carry additional information to identify the encoding method in each first Bluetooth data packet, reducing protocol complexity and overhead.
[0151] 5) Backward compatibility: The addition of the Coding Flag field maintains compatibility with existing Bluetooth devices and systems. It also provides space for future expansion, supporting new coding methods without requiring major changes to the existing protocol.
[0152] 6) If the receiver detects that the encoding method does not match the expected one, it can take appropriate error handling measures, such as requesting retransmission, using the default encoding method, or notifying the user. This clear indication helps to better handle transmission errors and data corruption.
[0153] That is, by adding the Coding Flag field to the first data packet header of the first Bluetooth data packet, the reliability, efficiency and flexibility of Bluetooth communication can be improved, the protocol implementation can be simplified, and the backward compatibility and error handling capability of the system can be enhanced.
[0154] In addition, the first data packet header not only indicates that the encoding method of the initial Bluetooth data is the XOR encoding method, but also can indicate the encoding parameters of the XOR encoding method. The encoding parameters refer to specific information on how to encode the initial Bluetooth data, so that the second electronic device can decode the data in the first payload of at least two received first Bluetooth data packets according to the XOR encoding method and the encoding parameters of the XOR encoding method to obtain the initial Bluetooth data, thereby improving the efficiency and accuracy of decoding and further improving the efficiency of the second electronic device in obtaining the initial Bluetooth data.
[0155] The first Bluetooth data packet may also include an Algorithm field (i.e., an algorithm field). The Algorithm field is used to indicate encoding parameters of the XOR encoding scheme. In other words, the Algorithm field is used to distinguish between encoding scheme variants, i.e., the Algorithm field indicates different encoding schemes or algorithm variants. Different values in the Algorithm field indicate different encoding schemes or algorithm variants.
[0156] For example, when fountain coding is used to encode the initial Bluetooth data, the encoding parameter is the coding redundancy of the fountain coding. For example, an Algorithm value of 0 indicates that the coding redundancy of the fountain coding is 1.2, and an Algorithm value of 1 indicates that the coding redundancy of the fountain coding is 1.5.
[0157] The above solution, which adds the Algorithm field to the first data packet header, has the following advantages:
[0158] 1) Flexibility: By supporting different encoding variants, the system can more flexibly adapt to different application scenarios and needs. For example, some XOR encoding methods may be more suitable for transmitting audio data, while others may be more suitable for transmitting images or text data. By distinguishing the algorithm field, the system can select the most appropriate encoding method when sending multiple first Bluetooth data packets.
[0159] 2) Efficiency: Different encoding variants may have different coding efficiencies and compression ratios. By using the Algorithm field to distinguish them, the system can select variants with higher coding efficiency, reducing Bluetooth communication overhead and improving Bluetooth communication efficiency.
[0160] 3) Scalability: When new encoding algorithms emerge, the Algorithm field can be used to support new encoding variants. This design makes the system scalable and adaptable to new requirements and standards that may emerge in the future.
[0161] In one possible implementation, for the Bluetooth broadcast scenario, the format of the first Bluetooth data packet is shown in FIG6 . The PDU in the first Bluetooth data packet can be called a broadcast type PDU, which includes a 2-byte (2B) Header (i.e., the first data packet header) and a (0 to 37 bytes / 255 bytes) Payload (i.e., the first payload). The Header includes not only a Coding Flag field, but also an Algorithm field. The Coding Flag field represents the encoding method of the initial Bluetooth data, such as the encoding method is fountain code encoding or Bats code encoding. The Algorithm field is used to distinguish variants of the encoding method. Taking the fountain code as an example, Algorithm = 0 / 1, where 0 represents that the encoding redundancy in the fountain code encoding is 1.2, and 1 represents that the encoding redundancy in the fountain code encoding is 1.5.
[0162] In a broadcast scenario, the target Bluetooth data in the Payload follows the Tag-Length-Value (TLV) format: Length (1 byte, i.e., 1B) + AD Type (1B) + AD Data (Length-1). AD Data is a subset of the multiple target Bluetooth data sets obtained by encoding the initial Bluetooth data using an XOR encoding scheme (such as a fountain code).
[0163] For example, as shown in FIG7 , the payload in the first Bluetooth data packet includes 6 bytes (6B) of AdvA and (0 to 31 bytes / 249 bytes) of AdvData. AdvData includes multiple groups of target Bluetooth data, each group of target Bluetooth data is represented by a Coding Block. The length of the Coding Block can be limited by the coding bit length of the fountain code algorithm, that is, the fountain code coding bit length is equal to the length of the Coding Block. This length is related to the user setting. Usually, when transmitting short messages, the length of the Coding Block is set to 4 bits. In FIG6 and FIG7 , "B" refers to bytes, b refers to bits, and one byte is equal to 8 bits.
[0164] In a Bluetooth broadcast scenario, a first Bluetooth data packet broadcasted on channels 37, 38, and 39 is considered an advertising event. First Bluetooth data packets are broadcast at a certain interval, called the advertising interval. To improve device compatibility, this application may add a random 0-10ms delay to this interval. When sending multiple first Bluetooth data packets via broadcast, as shown in Figure 8, each first Bluetooth data packet may be broadcasted on channels 37, 38, and 39. The broadcast interval may be advertising interval + delay.
[0165] S304: The second electronic device receives at least two first Bluetooth data packets from the first electronic device.
[0166] The at least two first Bluetooth data packets are at least some of the multiple first Bluetooth data packets sent by the first electronic device, and the multiple first Bluetooth data packets carry multiple sets of target Bluetooth data, which are obtained by encoding the initial Bluetooth data using an XOR encoding method. In the broadcast scenario, no Bluetooth communication connection is established between the first electronic device and the second electronic device; in the transmission scenario, the second electronic device is a device that establishes a Bluetooth communication connection with the first electronic device.
[0167] In the embodiment of the present application, if there is no packet loss, the second electronic device can receive all first Bluetooth data packets sent by the first electronic device; if there is packet loss, the second electronic device can receive part of the first Bluetooth data packets sent by the first electronic device. For example, if the first electronic device sends 10 first Bluetooth data packets, if there is no packet loss, the second electronic device can receive 10 first Bluetooth data packets; if there is packet loss, the second electronic device receives less than 10 first Bluetooth data packets, such as 8.
[0168] Among them, the above-mentioned at least two first Bluetooth data packets can be all the first Bluetooth data packets received by the second electronic device. For example, if the number of first Bluetooth data packets received by the second electronic device is 10, then the number of at least two first Bluetooth data packets is 10; for example, if the number of first Bluetooth data packets received by the second electronic device is 7, then the number of at least two first Bluetooth data packets is 7.
[0169] Of course, the above-mentioned at least two first Bluetooth data packets can be a preset number of first Bluetooth data packets received first by the second electronic device. For example, the second electronic device can first receive a preset number of first Bluetooth data packets, and the preset number is less than the number of first Bluetooth data packets sent by the first electronic device; wherein the preset number is, for example, 7.
[0170] S305: The second electronic device parses at least two first Bluetooth data packets to obtain initial Bluetooth data.
[0171] In the embodiment of the present application, the second electronic device can decode the data of the first payload in at least two first Bluetooth data packets to obtain initial Bluetooth data.
[0172] The parsing of at least two first Bluetooth data packets to obtain initial Bluetooth data may be achieved in the following manner:
[0173] Method 1: Parse at least two first Bluetooth data packets to obtain that the encoding method of the initial Bluetooth data is an exclusive-OR encoding method, the data of the first payload of any first Bluetooth data packet in the at least two first Bluetooth data packets is the target Bluetooth data of a partial group, and the first data packet header indicates that the encoding method of the initial Bluetooth data is an exclusive-OR encoding method; based on the decoding method corresponding to the exclusive-OR encoding method, decode the data of the first payload corresponding to the at least two first Bluetooth data packets to obtain the initial Bluetooth data.
[0174] Method 2: Parse at least two first Bluetooth data packets to obtain that the encoding method of the initial Bluetooth data is the XOR encoding method and the encoding parameters of the XOR encoding method, the data of the first payload of any first Bluetooth data packet in the at least two first Bluetooth data packets is the target Bluetooth data of a partial group, and the first data packet header indicates that the encoding method of the initial Bluetooth data is the XOR encoding method and the encoding parameters of the XOR encoding method; based on the decoding method corresponding to the XOR encoding method and the encoding parameters of the XOR encoding method, decode the data of the first payload corresponding to the at least two first Bluetooth data packets to obtain the initial Bluetooth data.
[0175] Exemplarily, taking the XOR encoding method as the fountain code encoding method and the application scenario as the broadcast scenario as an example, the second electronic device adopts the decoding method corresponding to the fountain code encoding method to parse at least two first Bluetooth data packets to obtain initial Bluetooth data, which can be achieved by the following steps:
[0176] Step 1: Receive at least two first Bluetooth data packets and search for all target Bluetooth data (i.e., encoded data) with a degree of 1 in the at least two first Bluetooth data packets. The target Bluetooth data with a degree of 1 can be directly decoded to obtain a portion of the original data, i.e., a packet of the original data. A degree of 1 indicates that the target Bluetooth data is derived from a packet in the original data. The original data is composed of multiple packets.
[0177] Step 2: After the target Bluetooth data with a degree of 1 is decoded, an exclusive OR operation is immediately performed on the decoded packet and all the target Bluetooth data connected to the packet to remove the connection between the successfully decoded packet and other target Bluetooth data.
[0178] Step 3: Continue searching for target Bluetooth data with a degree of 1, update the decipherable group set, and repeat the above process.
[0179] Finally, the transmission performance is analyzed based on the decoding results. If all packets of the original data can be obtained, the decoding is successful, otherwise the decoding fails.
[0180] For example, if the number of target Bluetooth data groups corresponding to at least two first Bluetooth data packets is 4, as shown in FIG9 (a), the four target Bluetooth data groups are C1, C2, C3, and C4, respectively; wherein C1 = 010, C2 = 000, C3 = 101, and C4 = 010. From the four target Bluetooth data groups, the target Bluetooth data with a degree of 1 is determined to be C3, and C3 = 101. Then, the group of original data corresponding to C3 can be translated as S3, and S3 is 101. As shown in FIG9 (b), the translated group S3 can be XORed with the target Bluetooth data C2 connected thereto to obtain another group S1 of original data, and S1 = 101. Furthermore, the XORed group S3 can be XORed with the target Bluetooth data C4 connected thereto to obtain another group S2 of original data, and S2 is 111. In this way, S1, S2 and S3 can be combined to obtain the original data (i.e., the initial Bluetooth data). The original data is 101111101. During the decoding process, it can be seen that we did not use the target Bluetooth data C1. If the target Bluetooth data C1 is carried in a first Bluetooth data packet, then even if the first Bluetooth data packet is lost, the original data can still be decoded according to the above decoding process, thereby improving the reliability and stability of Bluetooth communication.
[0181] When there is no target Bluetooth data with degree 1 in the target Bluetooth data corresponding to the at least two first Bluetooth data packets, a linear equation system may be used to decode the target Bluetooth data corresponding to the at least two first Bluetooth data packets to obtain initial Bluetooth data. The linear equation system may be, for example, Gaussian elimination.
[0182] The communication method provided by this application significantly improves the communication reliability of broadcast scenarios (also known as connection discovery scenarios) and transmission scenarios, and can improve the success rate of the second electronic device receiving original data in scenarios with limited distance and interference. Among them, by designing the BLE air interface packet format (i.e., the format of the first Bluetooth data packet) and adopting a redundant coding scheme, the second electronic device can use a corresponding decoding method to implement data parsing, thereby ensuring the robustness of BLE communication. Stable BLE broadcast communication is achieved, the success rate of receiving broadcast data is improved, and stable BLE transmission communication can also be achieved, improving the success rate and reliability of transmitted data.
[0183] Based on the above embodiment, the communication method further includes the following steps:
[0184] When the current communication environment information meets the preset communication environment information, the first electronic device sends multiple second Bluetooth data packets carrying initial Bluetooth data; each second Bluetooth data packet includes a second data packet header and a second payload, and the data of the second payload in each second Bluetooth data packet is part of the data in the initial Bluetooth data, and the second data packet header indicates that the initial Bluetooth data is not encoded.
[0185] In an embodiment of the present application, when the current communication environment information satisfies the preset communication environment information, it indicates that the current communication environment is good, the probability of packet loss is relatively low, and the initial Bluetooth data may not be encoded; the initial Bluetooth data is carried by multiple second Bluetooth data packets, and each second Bluetooth data packet carries a portion of the initial Bluetooth data. Among them, although the second Bluetooth data packet carries the unencoded initial Bluetooth data, the format of the second Bluetooth data packet is different from that of the Bluetooth data packet in the related art, such as that shown in FIG. 3. The second data packet header in the second Bluetooth data packet may also include an encoding flag field, in which case the encoding flag field indicates that the initial Bluetooth data is not encoded.
[0186] Exemplarily, the coding flag field in the second data packet header is a Coding Flag field, and the value of the Coding Flag field is 00, which is used to indicate that the initial Bluetooth data is not encoded. In addition, the second data packet header may also include an Algorithm field, but the value of the Algorithm field is empty at this time.
[0187] In an embodiment of the present application, a second electronic device receives multiple second Bluetooth data packets carrying initial Bluetooth data from a first electronic device, each second Bluetooth data packet including a second data packet header and a second payload, the data of the second payload being part of the data in the initial Bluetooth data, and the second data packet header indicating that the initial Bluetooth data is not encoded; the multiple second Bluetooth data packets may be all data packets sent by the first electronic device, the second electronic device may parse the multiple second Bluetooth data packets, determine that the initial Bluetooth data is not encoded, and then extract the data of the second payload from the multiple second Bluetooth data packets and use it as the initial Bluetooth data.
[0188] The above scheme, this design improves transmission efficiency, reduces resource consumption, simplifies data processing flow, and maintains the uniqueness of the second Bluetooth data packet and communication flexibility by directly transmitting unencoded initial Bluetooth data in a good communication environment.
[0189] Through the communication method provided in the embodiment of the present application, the first electronic device can determine whether to encode the initial Bluetooth data in different communication environments, and send different Bluetooth data packets based on the determination results. After that, the receiving end can correctly parse and process the received data based on the Coding Flag field value and the Algorithm field value in the received Bluetooth data packet, thereby improving the reliability and adaptability of Bluetooth communication.
[0190] An embodiment of the present application provides a communication method, in which a first electronic device obtains initial Bluetooth data to be sent; when the current communication environment information does not meet the preset communication environment information, the initial Bluetooth data is encoded using an XOR encoding method to obtain multiple groups of target Bluetooth data; and multiple first Bluetooth data packets carrying multiple groups of target Bluetooth data are sent, wherein each first Bluetooth data packet carries target Bluetooth data of some groups among the multiple groups of target Bluetooth data. In this way, the initial Bluetooth data is converted into multiple groups of target Bluetooth data through the XOR encoding method, and dispersed into multiple first Bluetooth data packets for transmission, so that the initial Bluetooth data can be redundantly protected. When interference occurs during the communication process and causes a part of the first Bluetooth data packet to be lost, the receiver can restore the initial Bluetooth data based on the other part of the first Bluetooth data packet received, thereby avoiding incomplete received data due to packet loss, thereby improving the reliability and stability of communication.
[0191] The above describes the method embodiments provided by this application, and the following describes the device embodiments provided by this application. It should be understood that the description of the device embodiments corresponds to the description of the method embodiments. Therefore, for matters not described in detail, reference can be made to the method embodiments above. For the sake of brevity, they will not be repeated here.
[0192] Figure 10 is a schematic diagram of the structure of the communication device provided in an embodiment of the present application. As shown in Figure 10, the communication device 4 may include a communication unit 41 and a processing unit 42. The communication unit 41 can implement corresponding communication functions, and the communication can be internal communication of the communication device 4 or communication between the communication device 4 and other devices; the processing unit 42 can implement corresponding processing functions. The communication unit 41 can also be called a communication interface or a transceiver unit. Optionally, the communication device 4 can also include a storage unit, which can be used to store instructions and / or data, and the processing unit 42 can read the instructions and / or data in the storage unit, so that the device implements the aforementioned method embodiment.
[0193] In one possible design, the communication device 4 may be the first electronic device in the above-mentioned communication method, or may be a module or chip applied to the first electronic device. The communication device 4 may be used to execute the steps or processes executed by the first electronic device in the above-mentioned communication method.
[0194] Specifically, the processing unit 42 is used to obtain the initial Bluetooth data to be sent; the processing unit 42 is also used to encode the initial Bluetooth data using an XOR encoding method when the current communication environment information does not meet the preset communication environment information, so as to obtain multiple groups of target Bluetooth data; the communication unit 41 sends multiple first Bluetooth data packets carrying multiple groups of target Bluetooth data, wherein each first Bluetooth data packet carries target Bluetooth data of some groups among the multiple groups of target Bluetooth data.
[0195] Optionally, each first Bluetooth data packet includes a first data packet header and a first payload, the data in the first payload is a partial group of target Bluetooth data, and the first data packet header indicates that the encoding method of the initial Bluetooth data is an XOR encoding method.
[0196] Optionally, the first data packet header further indicates encoding parameters of the XOR encoding method.
[0197] Optionally, the encoding parameters include encoding redundancy.
[0198] Optionally, the XOR encoding method is a fountain code encoding method or a batch sparse code encoding method.
[0199] Optionally, the communication unit 41 is further configured to send multiple first Bluetooth data packets in a broadcast manner; or send multiple first Bluetooth data packets to a second electronic device, where the second electronic device is a device that establishes a Bluetooth connection with the first electronic device.
[0200] Optionally, the communication unit 41 is also used to send multiple second Bluetooth data packets carrying initial Bluetooth data when the current communication environment information meets the preset communication environment information, each second Bluetooth data packet includes a second data packet header and a second payload, the data of the second payload is part of the data in the initial Bluetooth data, and the second data packet header indicates that the initial Bluetooth data is not encoded.
[0201] In one possible design, the communication device 4 may be the second electronic device in the above communication method, or may be a module or chip applied to the second electronic device. The communication device 4 may be used to execute the steps or processes executed by the second electronic device in the above communication method.
[0202] Specifically, the communication unit 41 is used to receive at least two first Bluetooth data packets from the first electronic device, wherein the at least two first Bluetooth data packets are at least part of the multiple first Bluetooth data packets sent by the first electronic device, the multiple first Bluetooth data packets carry multiple groups of target Bluetooth data, each first Bluetooth data packet carries part of the multiple groups of target Bluetooth data, and the multiple groups of target Bluetooth data are obtained by encoding the initial Bluetooth data using an XOR encoding method; the processing unit 42 is used to parse the at least two first Bluetooth data packets to obtain the initial Bluetooth data.
[0203] Optionally, each first Bluetooth data packet includes a first data packet header and a first payload, the data in the first payload is a partial group of target Bluetooth data, and the first data packet header indicates that the encoding method of the initial Bluetooth data is an XOR encoding method.
[0204] Optionally, the first data packet header further indicates encoding parameters of the XOR encoding method.
[0205] Optionally, the encoding parameters include encoding redundancy.
[0206] Optionally, the XOR encoding method is a fountain code encoding method or a batch sparse code encoding method.
[0207] Optionally, the communication unit 41 is also used to receive multiple second Bluetooth data packets carrying initial Bluetooth data from the first electronic device, each second Bluetooth data packet includes a second data packet header and a second payload, the data of the second payload is part of the data in the initial Bluetooth data, and the second data packet header indicates that the initial Bluetooth data is not encoded; the processing unit 42 parses the multiple second Bluetooth data packets to obtain the initial Bluetooth data.
[0208] Regarding the steps or processes executed by each unit in the communication device 4, please refer to the description in the corresponding method for details, which will not be described in detail here.
[0209] It should be understood that the "units" in the communication device 4 can be implemented by hardware, software, or by hardware executing corresponding software implementations. For example, a "unit" can refer to an application specific integrated circuit (ASIC), an electronic circuit, a processor (such as a shared processor, a dedicated processor, or a group processor, etc.) and a memory for executing one or more software or firmware programs, a combined logic circuit, and / or other suitable components that support the described functions. For another example, the communication unit 41 can be replaced by a transceiver transceiver circuit (for example, a receiving circuit and a transmitting circuit), and the processing unit 42 can be replaced by a processor or a processing circuit.
[0210] The units of each example described in the embodiments of this application can be implemented with electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0211] Figure 11 shows a schematic diagram of the structure of another communication device 5 provided in an embodiment of the present application. The device 5 can be a first electronic device or a second electronic device, or can be a chip, a chip system, or a processor that supports the first electronic device or the second electronic device to implement the above method. The device can be used to implement the method described in the above method embodiment. For details, please refer to the description of the above method embodiment.
[0212] The device 5 may include one or more processors 51, which may also be referred to as processing units, and may implement certain control functions. The processor 51 may be a general-purpose processor or a dedicated processor. For example, it may be a baseband processor or a central processing unit. The baseband processor may be used to process communication protocols and communication data, while the central processing unit may be used to control a communication device (e.g., a base station, a baseband chip, a user chip, a DU, or a CU), execute software programs, and process data from the software programs.
[0213] In an optional design, the processor 51 may also store instructions and / or data, and the instructions and / or data can be executed by the processor 51, so that the device 5 executes the method described in the above method embodiment.
[0214] In another optional design, the device 5 may include a communication interface 52 for implementing receiving and transmitting functions. For example, the communication interface 52 may be a transceiver circuit, an interface, an interface circuit, or a transceiver. The transceiver circuit, interface, interface circuit, or transceiver for implementing the receiving and transmitting functions may be separate or integrated. The transceiver circuit, interface, interface circuit, or transceiver may be used for reading and writing code / data, or the transceiver circuit, interface, interface circuit, or transceiver may be used for transmitting or delivering signals.
[0215] Optionally, the device 5 may include one or more memories 53, which may store instructions. These instructions can be executed on the processor 51, causing the device 5 to perform the method described in the above method embodiment. Optionally, the memory 53 may also store data. Optionally, the processor 51 may also store instructions and / or data. The processor 51 and memory 53 may be provided separately or integrated together.
[0216] The present application also provides a computer program product, which includes: computer program code, which, when executed on a computer, enables the computer to execute the various steps or processes executed by the first electronic device or the second electronic device in any of the above method embodiments.
[0217] The present application also provides a computer-readable storage medium, which stores program code. When the program code runs on a computer, the computer executes the steps or processes executed by the first electronic device or the second electronic device in any of the above method embodiments.
[0218] The present application also provides a communication device, including a processor and an interface, wherein the interface is used to send and / or receive signals, so that the processor executes the various steps or processes executed by the first electronic device or the second electronic device in any of the above method embodiments.
[0219] The present application also provides a communication system, which includes at least one of a first electronic device and a second electronic device.
[0220] The above-mentioned device embodiments and method embodiments are completely corresponding, and the corresponding steps are performed by the corresponding modules or units. For example, the communication unit or communication interface performs the receiving or sending steps in the method embodiment. Other steps except sending and receiving can be performed by the processing unit or processor.
[0221] In the embodiments of this application, each term and English abbreviation is provided for convenience of description and shall not constitute any limitation to this application. This application does not exclude the possibility of defining other terms that can achieve the same or similar functions in existing or future agreements.
[0222] As used in this specification, the terms "component," "module," "system," and the like are used to represent computer-related entities, hardware, firmware, a combination of hardware and software, software, or software in execution. For example, a component can be, but is not limited to, a process running on a processor, a processor, an object, an executable file, an execution thread, a program, and / or a computer. By way of illustration, both an application running on a computing device and a computing device can be a component. One or more components can reside in a process and / or an execution thread, and a component can be located on one computer and / or distributed between two or more computers. In addition, these components can be executed from various computer-readable storage media having various data structures stored thereon. Components can communicate, for example, via local and / or remote processes based on signals having one or more data packets (e.g., data from two components interacting with another component between a local system, a distributed system, and / or a network, such as the Internet interacting with other systems via signals).
[0223] Those skilled in the art will appreciate that the various illustrative logical blocks and steps described in conjunction with the embodiments disclosed herein can be implemented using electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0224] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can be based on the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0225] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of units is only a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0226] Units described as separate components may or may not be physically separate, and 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 these units may be selected to achieve the purpose of this embodiment according to actual needs.
[0227] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
[0228] In the above embodiments, the functions of each functional unit can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When software is used for implementation, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions (programs). When the computer program instructions (program) are loaded and executed on a computer, the process or function according to the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network or other programmable devices. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from a website, computer, server or data center to another website, computer, server or data center by wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) mode. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrations. The available media may be magnetic media (eg, floppy disk, hard disk, magnetic tape), optical media (eg, DVD), or semiconductor media (eg, solid state disk (SSD)).
[0229] If the function is implemented in the form of 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 the present application, or the part that contributes to the prior art, or the part of the technical solution, can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes several instructions for enabling a computer device (which can be a personal computer, server, or network device, etc.) to execute all or part of the steps of the various embodiments of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk, and other media that can store program code.
[0230] The above are only specific embodiments of the present application, but the scope of protection of this application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.
Claims
1. A communication method, characterized in that: Applied to a first electronic device, the method includes: Get the initial Bluetooth data to be sent; When the current communication environment information does not meet the preset communication environment information, the initial Bluetooth data is encoded using an XOR encoding method to obtain multiple sets of target Bluetooth data; A plurality of first Bluetooth data packets carrying the plurality of groups of target Bluetooth data are sent, wherein each first Bluetooth data packet carries the target Bluetooth data of some groups among the plurality of groups of target Bluetooth data.
2. The method according to claim 1, characterized in that Each of the first Bluetooth data packets includes a first data packet header and a first payload, the data of the first payload is the target Bluetooth data of the partial group, and the first data packet header indicates that the encoding mode of the initial Bluetooth data is an XOR encoding mode.
3. The method according to claim 2, characterized in that The first data packet header further indicates encoding parameters of the XOR encoding method.
4. The method according to claim 3, characterized in that The coding parameters include coding redundancy.
5. The method according to any one of claims 1 to 4, characterized in that: The XOR encoding method is a fountain code encoding method or a batch sparse code encoding method.
6. The method according to any one of claims 1 to 5, characterized in that: The sending of the plurality of first Bluetooth data packets carrying the plurality of groups of target Bluetooth data includes: Sending the plurality of first Bluetooth data packets in a broadcasting manner; or The multiple first Bluetooth data packets are sent to a second electronic device, where the second electronic device is a device that establishes a Bluetooth connection with the first electronic device.
7. The method according to any one of claims 1 to 6, characterized in that: The method further comprises: When the current communication environment information meets the preset communication environment information, multiple second Bluetooth data packets carrying the initial Bluetooth data are sent, each second Bluetooth data packet includes a second data packet header and a second payload, the data of the second payload is part of the data in the initial Bluetooth data, and the second data packet header indicates that the initial Bluetooth data is not encoded.
8. A communication method, characterized in that: Applied to a second electronic device, the method includes: receiving at least two first Bluetooth data packets from a first electronic device, wherein the at least two first Bluetooth data packets are at least some of a plurality of first Bluetooth data packets sent by the first electronic device, the plurality of first Bluetooth data packets carry a plurality of groups of target Bluetooth data, each first Bluetooth data packet carries a portion of the plurality of groups of target Bluetooth data, and the plurality of groups of target Bluetooth data are obtained by encoding initial Bluetooth data using an exclusive-OR encoding method; The at least two first Bluetooth data packets are parsed to obtain the initial Bluetooth data.
9. The method according to claim 8, characterized in that Each first Bluetooth data packet includes a first data packet header and a first payload, the data of the first payload is the target Bluetooth data of the partial group, and the first data packet header indicates that the encoding mode of the initial Bluetooth data is an XOR encoding mode.
10. The method according to claim 9, characterized in that The first data packet header further indicates encoding parameters of the XOR encoding method.
11. The method according to claim 10, characterized in that The coding parameters include coding redundancy.
12. The method according to any one of claims 8 to 11, characterized in that: The XOR encoding method is a fountain code encoding method or a batch sparse code encoding method.
13. The method according to any one of claims 8 to 12, characterized in that: The method further comprises: receiving a plurality of second Bluetooth data packets carrying the initial Bluetooth data from the first electronic device, each second Bluetooth data packet including a second data packet header and a second payload, data in the second payload being part of the initial Bluetooth data, and the second data packet header indicating that the initial Bluetooth data is not encoded; The multiple second Bluetooth data packets are parsed to obtain the initial Bluetooth data.
14. A communication device, characterized in that: The method comprises a unit for executing the steps of the method according to any one of claims 1 to 7, or a unit for executing the steps of the method according to any one of claims 8 to 13.
15. A communication device, characterized in that: include: A processor, the processor is coupled to a memory, the memory is used to store a program or instruction, when the program or instruction is executed by the processor, the communication device performs the method according to any one of claims 1-7 or any one of claims 8-13.
16. A chip, characterized in that: include: A processor, configured to call and run a computer program from a memory, so that a communication device equipped with the chip executes the method according to any one of claims 1 to 7 or any one of claims 8 to 13.
17. A computer-readable storage medium having a computer program or instruction stored thereon, characterized in that: When the computer program or instructions are executed, the computer is caused to perform the method according to any one of claims 1 to 7 or any one of claims 8 to 13.
18. A computer program product, characterized in that The method comprises computer program instructions, wherein the computer program instructions cause the computer to perform the method according to any one of claims 1 to 7 or any one of claims 8 to 13.
Citation Information
Patent Citations
A method and apparatus for data transmission
CN106464503B
A method and apparatus for transmitting data
CN106664628B
Target wake time (TWT) renegotiation
US20230319711A1
Data transmission method and apparatus
WO2015109500A1