Data transmission method and device, electronic equipment and storage medium
By adjusting the timing of satellite communication windows and data transmission strategies, the problem of energy waste in non-terrestrial network/low Earth orbit satellite IoT scenarios has been solved, achieving more efficient communication and energy consumption optimization.
Patent Information
- Application Number
- CN202511631061.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-11-07
- Publication Date
- 2026-02-13
AI Technical Summary
In non-terrestrial network/low Earth orbit satellite IoT scenarios, the periodicity of visibility and invisibility of ground terminals due to the relative altitude movement of satellites to the ground leads to wasted terminal energy and low communication efficiency. Existing technologies cannot effectively optimize the wake-up and sleep strategies of satellite visibility windows.
By adjusting the start and end times of the first time window, a second time window is determined, and the merging batch is determined in combination with the uplink transmission rate and service arrival rate. This optimizes the communication duration and data transmission strategy between the terminal and the satellite, including dynamic adjustments to wake-up advance, window opening cycle, and heartbeat interval, thereby optimizing the terminal's energy consumption and communication success rate.
It increases the alignment probability between the terminal and the satellite communication window, reduces the terminal's energy consumption and invalid waiting, improves the system's robustness and communication efficiency, and avoids buffer overflow and capacity waste.
Smart Images

Figure CN121531437A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the field of communication, and in particular to a data transmission method and device, electronic equipment and storage medium. BACKGROUND
[0002] In a non-terrestrial network (NTN) / low earth orbit satellite (LEO) Internet of Things scenario, the LEO moves relative to the ground, causing the ground terminal to exhibit periodic "visibility - invisibility".
[0003] To ensure communication between the ground terminal and the satellite, the ground terminal usually opens a window based on a predicted time window and transmits data to the satellite with a fixed data amount.
[0004] However, this method results in a large amount of empty scanning or empty listening by the terminal, wasting the terminal's energy consumption. SUMMARY
[0005] The present application provides a data transmission method and device, electronic equipment and storage medium, which can reduce the energy consumption of the terminal.
[0006] To achieve the above-mentioned purpose, the present application adopts the following technical solutions: In a first aspect, the present application provides a data transmission method, comprising: determining a first time window according to ephemeris and terminal position, the first time window being used to indicate a time period during which the satellite is within the communicable range of the terminal; adjusting the start time and end time of the first time window to obtain a second time window; wherein the start time of the second time window is earlier than the start time of the first time window, and the end time of the second time window is later than the end time of the first time window; determining a merging batch based on the length of the second time window, the uplink transmission rate and the service arrival rate, the service arrival rate being used to indicate the rate at which data enters the message queue, and the merging batch being used to indicate the total amount of data transmitted by the terminal to the satellite within the second time window; and transmitting data to the satellite within the second time window based on the merging batch.
[0007] In a possible implementation manner of the first aspect, the adjusting the start time and the end time of the first time window to obtain the second time window comprises: determining a mean value of the start time of the first time window as a start time of the second time window, and determining a variance of the start time of the first time window by using a Gaussian distribution or a sub-Gaussian distribution; determining a mean value of the end time of the first time window as an end time of the second time window, and determining a variance of the end time of the first time window by using a Gaussian distribution or a sub-Gaussian distribution; determining the start time of the second time window based on the start time of the first time window and the variance of the start time of the first time window, and determining the end time of the second time window based on the end time of the first time window and the variance of the end time of the first time window.
[0008] In a possible implementation manner of the first aspect, the determining the start time of the second time window based on the start time of the first time window and the variance of the start time of the first time window, and the determining the end time of the second time window based on the end time of the first time window and the variance of the end time of the first time window comprises: the start time and the end time of the second time window satisfy the following relationship:
[0009] In the formula, t2 represents the start time of the second time window, t1 represents the start time of the first time window, σ1 represents the variance of the start time of the first time window, t2 represents the end time of the second time window, t1 represents the end time of the first time window, σ1 represents the variance of the end time of the first time window, and c represents a confidence coefficient. t2 represents the start time of the second time window, t1 represents the start time of the first time window, c represents the confidence coefficient, σ1 represents the variance of the start time of the first time window, t2 represents the end time of the second time window, t1 represents the end time of the first time window, σ1 represents the variance of the end time of the first time window.
[0010] In a possible implementation manner of the first aspect, the determining the merging batch quantity based on the time length of the second time window, the uplink transmission rate, and the service arrival rate comprises: determining a window opening period of the terminal, the window opening period being used to indicate a time period from a terminal wake-up time to a terminal sleep time; and determining the merging batch quantity based on the window opening period, the time length of the second time window, the uplink transmission rate, and the service arrival rate.
[0011] In a possible implementation manner of the first aspect, the determining the window opening period of the terminal further comprises: determining a wake-up advance amount of the terminal, the wake-up advance amount being used to determine a wake-up time of the terminal, the wake-up time being used to indicate a time at which the terminal is woken up before the start time of the second time window; and waking up the terminal at the wake-up time, so that the terminal can communicate with the satellite, the wake-up time being a difference between the start time of the second time window and the wake-up advance amount.
[0012] In a possible implementation manner of the first aspect, the determination of the wake-up advance and the window opening period of the terminal comprises: determining the wake-up advance and the window opening period, with a weighted sum of the idle power consumption of the terminal, the wake-up power consumption of the terminal and the partial quantile delay of the terminal as an optimization target, and with an overlap probability of the window opening period and the second time window greater than or equal to a first probability threshold, and the window opening period greater than or equal to a first window opening period threshold and less than or equal to a second window opening period threshold as constraint conditions.
[0013] In a possible implementation manner of the first aspect, the determination of the merging batch based on the window opening period, the time length of the second time window, the uplink transmission rate and the service arrival rate comprises: determining the minimum value among a first data amount, a second data amount and a third data amount as the merging batch, the first data amount being used to indicate an ideal total amount of data transmitted in the second time window according to the uplink transmission rate, the second data amount being used to indicate a merging batch threshold, and the third data amount being used to indicate a total amount of data that can be transmitted in the window opening period according to the service arrival rate.
[0014] In a possible implementation manner of the first aspect, the determination of the minimum value among the first data amount, the second data amount and the third data amount as the merging batch comprises: the merging batch satisfies the following relationship:
[0015] In the formula, M represents the merging batch, represents the uplink transmission rate, represents the time length of the second time window, represents the time variation amount, represents the single packet air interface occupation rate, represents the merging batch threshold, represents the service arrival rate, represents the window opening period.
[0016] In a possible implementation manner of the first aspect, the method further comprises: in a case where the second time windows corresponding to the plurality of satellites overlap, determining a data transmission weight of each satellite based on a confidence degree of the second time window of each satellite, a gain of the second time window of each satellite, a time length of the second time window of each satellite and a congestion condition of each satellite link, the data transmission weight being used to indicate a proportion of data transmitted by the terminal to each satellite in a single transmission to the merging batch; and transmitting data to the corresponding satellite according to the data transmission weight.
[0017] With reference to the first aspect, in a possible implementation manner, the method further includes: determining, with a heartbeat energy consumption of the terminal being minimized as an optimization target, a drift of a real-time clock (RTC) of the terminal being less than or equal to a synchronization error threshold, and a probability of an RTC timing error being less than a timing error threshold being greater than or equal to a second probability threshold as constraint conditions, a heartbeat interval of the terminal, the heartbeat interval being used to indicate a time interval of sending, by the terminal, a heartbeat keep-alive message to the satellite within the second time window; and sending, to the satellite, a heartbeat keep-alive signal according to the heartbeat interval within the second time window.
[0018] With reference to the first aspect, in a possible implementation manner, the method further includes: in a case where the terminal access condition is met, performing an abnormal fallback strategy in response to a failure in sending data to the satellite, to reduce a retry number of the terminal and an energy consumption of the terminal; and in a case where the terminal access condition is not met, entering a sleep state by the terminal; wherein the terminal access condition includes: a current time being greater than or equal to a start time of the second time window and less than or equal to an end time of the second time window, and the terminal being able to access a communication channel of the satellite, and a window sending success rate being greater than or equal to a success rate threshold, the window sending success rate being used to indicate a predicted probability of a data amount to be sent by the terminal being successfully sent within the second time window.
[0019] With reference to the first aspect, in a possible implementation manner, the abnormal fallback strategy includes: in a case where a sending failure number of the terminal is less than a failure number threshold, when the terminal fails to send for an n th time, a waiting time of the terminal is a minimum value between a first waiting time and a second waiting time, the waiting time being a waiting time length from a sending failure of the terminal to a re-sending, the first waiting time being a preset ratio of a waiting time of the terminal for the (n-1) th time, the second waiting time being a waiting time threshold, and n being a positive integer greater than 1; and in a case where the sending failure number of the terminal is greater than or equal to the failure number threshold, entering, by the terminal, the sleep state.
[0020] In a second aspect, the present application provides a data transmission apparatus, which includes: a processing unit, configured to determine a first time window according to ephemeris and a terminal position, the first time window being used to indicate a time period during which a satellite is within a communicable range of the terminal; the processing unit is further configured to adjust a start time and an end time of the first time window to obtain a second time window, wherein the start time of the second time window is earlier than the start time of the first time window, and the end time of the second time window is later than the end time of the first time window; the processing unit is further configured to determine a merging batch quantity based on a time length of the second time window, an uplink transmission rate, and a service arrival rate, the service arrival rate being used to indicate a rate of data entering a message queue, and the merging batch quantity being used to indicate a total amount of data transmitted by the terminal to the satellite within the second time window; and a communication unit, configured to send data to the satellite based on the merging batch quantity within the second time window.
[0021] In a possible implementation manner of the second aspect, the processing unit is configured to: determine a variance of the start time of the first time window by a Gaussian distribution or a sub-Gaussian distribution, with a mean of the start time of the first time window as a starting time of the first time window; determine a variance of the end time of the first time window by a Gaussian distribution or a sub-Gaussian distribution, with a mean of the end time of the first time window as an ending time of the first time window; determine the start time of the second time window based on the start time of the first time window and the variance of the start time of the first time window, and determine the end time of the second time window based on the end time of the first time window and the variance of the end time of the first time window.
[0022] In a possible implementation manner of the second aspect, the processing unit is configured to: the start time and the end time of the second time window satisfy the following relationship:
[0023] wherein, denotes the start time of the second time window, denotes the start time of the first time window, denotes a confidence coefficient, denotes the variance of the start time of the first time window, denotes the end time of the second time window, denotes the end time of the first time window, denotes the variance of the end time of the first time window.
[0024] In a possible implementation manner of the second aspect, the processing unit is configured to: determine a windowing period of the terminal, the windowing period being used to indicate a time period from when the terminal wakes up to when the terminal enters a sleep state; and determine the merging batch based on the windowing period, a time length of the second time window, an uplink transmission rate, and a service arrival rate.
[0025] In a possible implementation manner of the second aspect, the processing unit is further configured to: determine a wake-up advance amount of the terminal, the wake-up advance amount being used to determine a wake-up time of the terminal, the wake-up time being used to indicate a time at which the terminal wakes up before the start time of the second time window; and wake up the terminal at the wake-up time, so that the terminal can communicate with the satellite, the wake-up time being a difference between the start time of the second time window and the wake-up advance amount.
[0026] In a possible implementation of the second aspect, the processing unit is configured to: determine the wake-up advance and the window-on period by taking the minimum value of the weighted sum of the idle power consumption of the terminal, the wake-up power consumption of the terminal, and the partial quantile delay of the terminal as an optimization target, and taking the overlap probability of the window-on period and the second time window being greater than or equal to the first probability threshold, the window-on period being greater than or equal to the first window-on period threshold, and the window-on period being less than or equal to the second window-on period threshold as constraint conditions.
[0027] In a possible implementation of the second aspect, the processing unit is configured to: determine the minimum value of the first data amount, the second data amount, and the third data amount as the merged batch, the first data amount being used to indicate an ideal total amount of data transmitted at the uplink transmission rate within the second time window, the second data amount being used to indicate a merged batch threshold, and the third data amount being used to indicate a total amount of data that can be transmitted at the service arrival rate within the window-on period.
[0028] In a possible implementation of the second aspect, the processing unit is configured to: the merged batch satisfies the following relationship:
[0029] In the formula, merged batch represents the merged batch, uplink transmission rate represents the uplink transmission rate, second time window duration represents the duration of the second time window, time variation represents the time variation, single packet air interface occupation rate represents the single packet air interface occupation rate, merged batch threshold represents the merged batch threshold, service arrival rate represents the service arrival rate, window-on period represents the window-on period.
[0030] In a possible implementation of the second aspect, the processing unit is further configured to: in a case where the second time windows corresponding to the plurality of satellites overlap, determine a data transmission weight of each satellite based on the confidence of the second time window of each satellite, the gain of the second time window of each satellite, the duration of the second time window of each satellite, and the congestion situation of each satellite link, the data transmission weight being used to indicate the proportion of the data transmitted by the terminal to each satellite in a single transmission to the merged batch; and transmit data to the corresponding satellite according to the data transmission weight.
[0031] In a possible implementation manner of the second aspect, the processing unit is further configured to: determine a heartbeat interval of the terminal, the heartbeat interval being used to indicate a time interval of sending a heartbeat keep-alive message to the satellite by the terminal in the second time window, with the heartbeat energy consumption of the terminal being minimized as an optimization target, and with a real-time clock (RTC) drift of the terminal being less than or equal to the synchronization error threshold and a probability of the RTC time error being less than the time error threshold being greater than or equal to the second probability threshold as constraint conditions; and send the heartbeat keep-alive signal to the satellite according to the heartbeat interval in the second time window.
[0032] In a possible implementation manner of the second aspect, the processing unit is further configured to: in a case where the terminal access condition is met, perform an abnormal fallback strategy to reduce the retry number of the terminal and the energy consumption of the terminal, in response to a failure in sending data to the satellite; and in a case where the terminal access condition is not met, the terminal enters a sleep state, wherein the terminal access condition includes that the current time is greater than or equal to the start time of the second time window and less than or equal to the end time of the second time window, and the terminal can access the communication channel of the satellite, and the window sending success rate is greater than or equal to the success rate threshold, the window sending success rate being used to indicate a predicted probability of successfully sending the data amount to be sent by the terminal in the second time window.
[0033] In a possible implementation manner of the second aspect, the abnormal fallback strategy includes: in a case where the number of sending failures of the terminal is less than the failure number threshold, when the terminal fails to send for the n th time, a waiting time of the terminal is a minimum value between a first waiting time and a second waiting time, the waiting time being a waiting time length from a sending failure of the terminal to a re-sending, the first waiting time being a preset ratio of the waiting time of the (n-1) th time, the second waiting time being the waiting time threshold, and n being a positive integer greater than 1; and in a case where the number of sending failures of the terminal is greater than or equal to the failure number threshold, the terminal enters the sleep state.
[0034] In a third aspect, the present application provides an electronic device, including: a processor and a communication interface; the communication interface and the processor are coupled, and the processor is configured to run a computer program or instructions to implement the data transmission method described in the first aspect and any possible implementation manner of the first aspect.
[0035] In a fourth aspect, the present application provides a computer readable storage medium, and the computer readable storage medium stores instructions, when the instructions are run on a computer, the computer executes the data transmission method described in the first aspect and any possible implementation manner of the first aspect.
[0036] In a fifth aspect, the present application provides a computer program product comprising instructions which, when the computer program product runs on a computer, enable the computer to perform the data transmission method described in the first aspect and any possible implementation manner of the first aspect.
[0037] In a sixth aspect, the present application provides a chip, which comprises a processor and a communication interface, the communication interface is coupled with the processor, and the processor is configured to run a computer program or instructions to implement the data transmission method described in the first aspect and any possible implementation manner of the first aspect.
[0038] Specifically, the chip provided in the present application further comprises a memory configured to store the computer program or instructions.
[0039] It should be noted that the computer instructions can be stored on the computer readable storage medium in whole or in part. The computer readable storage medium can be packaged together with the processor of the device or packaged separately from the processor of the device, and the present application does not limit the same.
[0040] In a seventh aspect, the present application provides a data transmission system, comprising: an electronic device and a satellite, wherein the electronic device is configured to perform the data transmission method described in the first aspect and any possible implementation manner of the first aspect.
[0041] The description of the second aspect to the seventh aspect in the present application can refer to the detailed description of the first aspect, and the beneficial effects of the description of the second aspect to the seventh aspect can refer to the beneficial effect analysis of the first aspect, which will not be repeated here.
[0042] In the present application, the name of the above-mentioned data transmission device does not constitute a limitation to the device or functional module itself, and in actual implementation, these devices or functional modules can appear with other names. As long as the functions of each device or functional module are similar to those of the present application, they belong to the scope of the claims of the present application and equivalent technologies.
[0043] These aspects or other aspects of the present application will be more apparent in the following description.
[0044] The data transmission method provided by the present application can increase the duration of communication with the satellite by adjusting the start time and end time of the first time window to obtain the second time window, which is equivalent to increasing the alignment probability of the terminal and the satellite communication window boundary, increasing the hit rate of window locking, and thus reducing the monitoring and scanning of the terminal in the invisible period, reducing the energy consumption and invalid waiting of the terminal. By the duration of the second time window, the uplink transmission rate and the service arrival rate, the merging batch is determined, which can reduce the problems of buffer overflow or capacity waste compared to the fixed value of the merging batch, can be more matched with the current actual situation, reduce the energy consumption of the terminal, and improve the system robustness. Attached Figure Description
[0045] Figure 1 This application provides a schematic diagram of the architecture of a data transmission system according to an embodiment of the present application. Figure 2 A flowchart illustrating a data transmission method provided in an embodiment of this application; Figure 3 A flowchart for determining a second time window is provided as an embodiment of this application; Figure 4 A flowchart for determining the merging batch is provided in an embodiment of this application; Figure 5 A schematic diagram of the window opening cycle provided in an embodiment of this application; Figure 6 A flowchart for solving the wake-up advance and windowing period is provided for embodiments of this application; Figure 7 A schematic diagram illustrating the overlapping of second time windows corresponding to multiple satellites, provided in an embodiment of this application; Figure 8 A flowchart for determining heartbeat intervals is provided as an embodiment of this application; Figure 9 A flowchart illustrating an exception handling method provided in this application embodiment; Figure 10 This application provides a schematic diagram of a terminal state machine transition. Figure 11 This is a schematic diagram of the structure of a data transmission system provided in an embodiment of this application; Figure 12 This is a schematic diagram of the structure of a data transmission device provided in an embodiment of this application; Figure 13 This is a schematic diagram of the hardware structure of a data transmission device provided in an embodiment of this application. Detailed Implementation
[0046] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0047] In this article, the term "and / or" is merely a description of the relationship between related objects, indicating that there can be three relationships. For example, A and / or B can represent three situations: A exists alone, A and B exist simultaneously, and B exists alone.
[0048] The terms "first", "second", and the like in the description of the present application and in the claims of the present application are used for distinguishing between similar objects, or to distinguish between different treatments of the same object, and are not necessarily used to describe a specific sequence or order of objects.
[0049] In addition, the terms "comprise", "comprising", "have", "having", "include", "including", "contain", "containing", and any variations thereof in the description and in the claims of the present application are intended to cover a non-exclusive inclusion. For example, a process, method, system, product, or apparatus that comprises a list of steps or units is not limited to the listed steps or units, but can optionally further include other steps or units not listed, or can optionally further include other steps or units inherent to such process, method, system, product, or apparatus.
[0050] It should be noted that the words "exemplary" and "for example" are used herein to mean "an example of" or "an example, only. Any implementation or design solution described herein as "exemplary" or "for example" should not be construed as being more preferred or advantageous than other implementations or design solutions. Rather, the use of the words "exemplary" or "for example" is intended to present concepts in a particular manner.
[0051] In the description of the present application, "a plurality of" means two or more, unless otherwise specified.
[0052] In a non-terrestrial network (NTN) / low earth orbit satellite (LEO) Internet of Things (IoT) scenario, there is a power consumption problem caused by discontinuous coverage. That is, the LEO moves at a high speed relative to the ground, causing the ground terminal to exhibit periodic "visible-invisible". The traditional ground network uses a fixed periodic wake-up mode, which will generate a large amount of "empty scanning / empty monitoring", resulting in power consumption being uneconomical. In the NTN research report of the 3rd generation partnership project (3GPP), the orbit and link characteristics of non-terrestrial networks and the challenges they face are described.
[0053] Extended discontinuous reception (eDRX) and power saving mode (PSM) are widely used in cellular IoT (e.g., narrow band internet of things (NB-IoT), long term evolution for machines (LTE-M) based on 4G LTE network, new radio (NR)). Among them, eDRX is responsible for determining the listening rhythm, and PSM allows the terminal to enter a deep sleep state. However, these mechanisms do not actively align the "satellite visible window". This makes the performance of eDRX / PSM in energy saving limited in use. In the "non-continuous coverage" deployment scenario of NTN, they can only be used as a basic means. The radio access network 2 (RAN2) document also suggests reusing eDRX / PSM and configuring according to coverage discontinuity. That is, "reuse / enhance eDRX / PSM under non-continuous coverage" to make the UE sleep as much as possible during the coverage outage period and listen again at the end. But its essence is still "listening rhythm / deep sleep timing", not "optimal alignment of visible window", which cannot fully utilize the satellite visible window for power consumption optimization.
[0054] Currently, the Small Data Transmission of NR Rel-17 allows user equipment (UE) to initiate small data transmission in the radio resource control (RRC) Inactive state, reducing the context recovery signaling overhead, which is suitable for lightweight reporting within the satellite visible window. In the non-continuous coverage scenario, SDT can reduce the reporting signaling burden within the window, but it does not take care of the sleep / wakeup arrangement itself, and only plays an optimization role at the data transmission level. But this technology still specifies how to plan the terminal's sleep / wakeup according to ephemeris / visible window, which cannot fully utilize the satellite visible window for power consumption optimization.
[0055] The industry document and test guide propose to help the UE predict the satellite visible window through system information block (SIB), ephemeris, initial coverage time, and other network assistance information, which provides an input source for "energy-saving scheduling aligned with the visible window". However, the standard and commercial baseline only provide power-saving "building blocks", that is, only mention network assistance information as one of the signaling sources for "alignment of transit", without integrating "visible window-sleep / wakeup-merged reporting-heartbeat / time correction" into a unified optimization framework, resulting in the inability to achieve optimal power consumption control.
[0056] Currently, the terminal's wake-up time is usually predicted according to ephemeris. Although this method can effectively reduce the empty monitoring, it mostly stays at the level of generating / adjusting the wake-up schedule. During the communication with the satellite, there are many problems affecting the communication efficiency and energy consumption.
[0057] 1. The terminal wake-up time and the satellite visible window are not strictly aligned. Most terminals use fixed periodic or coarse-grained wake-up tables, which makes it impossible to accurately align the start and end times of the visible window. In this way, the terminal will perform monitoring and empty scanning during a large number of invisible periods, resulting in invalid energy consumption and invalid waiting.
[0058] 2. Lack of processing of window boundary uncertainty. Ephemeris error, propagation delay estimation error, and terminal clock drift are not explicitly modeled. Robust boundaries, opportunity constraints, and limitations on overlap probability / success rate make it difficult to quantify and avoid the impact of clock drift / ephemeris error on "lock window hit rate" in the real network, affecting the reliability of the system. Due to these errors, there will be deviations between the terminal's wake-up time and the satellite's visible window boundary, which can easily trigger a chain effect of "unlocked window-repeated scanning", making it difficult to stabilize the lock window hit rate to the expected standard.
[0059] 3. The uplink data merging threshold is statically configured. Currently, small packets are aggregated according to a fixed batch or fixed time length, without considering the window length, available uplink rate, and business arrival rate. This static configuration method can easily lead to insufficient window content, causing buffer overflow or retransmission problems, or waste of capacity, resulting in large time delay.
[0060] 4. There is a lack of linkage mechanism between keep-alive heartbeat and clock drift. The terminal's heartbeat period is usually set based on experience, without forming a constraint relationship with the terminal's clock stability and window alignment accuracy requirements. This results in either too dense heartbeats, causing additional energy consumption, or too sparse heartbeats, allowing time synchronization errors to accumulate, affecting the accuracy of the wake-up timing.
[0061] 5. There is a lack of joint constraint framework for power consumption-time delay-transmission success rate. Currently, parameters are mostly configured independently, and the eDRX / PSM / SDT on the standard side is more like an "energy-saving component", which cannot effectively control the unit time energy consumption, end-to-end 99% percentile time delay, and transmission success probability at the session level, making it difficult to form a verifiable technical goal for service level agreement (SLA). The impact of the terminal's wake-up period, data transmission volume, and terminal heartbeat interval on terminal power consumption is not considered, and the comprehensive optimization of terminal power consumption and performance cannot be achieved.
[0062] 6. Lack of transmission allocation strategies for overlapping multi-satellite windows. In dense constellations or hotspot areas, when multiple satellite windows overlap, existing methods lack mechanisms for distributing load and risk among visible windows or mitigating congestion. This easily leads to congestion and retransmissions within a single window, impacting overall success rate and energy consumption. While commercial materials mention "waiting for the next transit," they do not disclose systematic algorithms for batch allocation and risk control, making them ineffective in handling overlapping multi-satellite situations.
[0063] 7. Boundary control lacking an abnormal rollback mechanism. Currently, when the prediction results do not match the actual situation or the window cannot be locked continuously, most methods adopt unlimited retries or fixed rollback intervals, which are difficult to suppress blind scan behavior in time, resulting in an abnormal increase in energy consumption and signaling overhead in a short period of time.
[0064] 8. Insufficient integration with the existing NR-NTN small data process. In the window-based reporting scenario, the connection between the power-saving orchestration on the terminal side and the small data direct transmission process is not tight enough, and the listening and access timing is not fully coordinated, resulting in optimizable overhead and waiting time.
[0065] In view of this, the data transmission method provided in this application, by adjusting the start and end times of the first time window to obtain a second time window, can increase the duration of communication with the satellite, which is equivalent to increasing the alignment probability between the terminal and the satellite communication window boundary, increasing the window locking hit rate, thereby reducing the terminal's invisibility period of listening and scanning, and reducing the terminal's energy consumption and invalid waiting. By determining the merging batch through the duration of the second time window, the uplink transmission rate, and the service arrival rate, compared with a fixed value for the merging batch, it can reduce the problem of buffer overflow or capacity waste, better match the current actual situation, reduce the terminal's energy consumption, and improve system robustness.
[0066] The embodiments of this application will now be described in detail with reference to the accompanying drawings.
[0067] Figure 1 This is a schematic diagram of the architecture of a data transmission system provided in an embodiment of this application. Figure 1 As shown, the architecture includes: electronic equipment 101 and satellite 102.
[0068] The electronic device 101 can be at least one of a mobile phone, a pad, a computer with wireless transceiver function, a virtual reality (VR) terminal, an augmented reality (AR) terminal, a wireless terminal, a smart phone, a smart watch, a desktop computer, a portable computer, a wireless terminal, a laptop computer, an Internet of Things device, an edge device, and the like, and embodiments of the present application are not limited thereto.
[0069] In some embodiments, the electronic device 101 has a processing function. For example, the electronic device 101 determines a first time window according to ephemeris and a terminal position. The first time window is used to indicate a time period in which the satellite is within the communicable range of the terminal. For another example, the electronic device 101 adjusts the start time and the end time of the first time window to obtain a second time window. The start time of the second time window is earlier than the start time of the first time window, and the end time of the second time window is later than the end time of the first time window. For another example, the electronic device 101 determines a merging batch based on the length of the second time window, the uplink transmission rate, and the service arrival rate. The service arrival rate is used to indicate the rate at which data enters the message queue, and the merging batch is used to indicate the total amount of data transmitted by the terminal to the satellite within the second time window.
[0070] In other embodiments, the electronic device 101 has a communication function. For example, the electronic device 101 transmits data to the satellite 102 based on the merging batch within the second time window.
[0071] The satellite 102 can also be referred to as a satellite node, a communication satellite, and the like. The satellite can be a geostationary earth orbit (GEO) satellite, or a non-geostationary earth orbit (NGEO) satellite. It can also be a high-orbit satellite, a medium-orbit satellite, or a low-orbit satellite. There is a wireless link between the satellite and the electronic device.
[0072] In some embodiments, the satellite 102 is used to provide wireless access services for the electronic device 101. Specifically, one satellite provides one or more service coverage areas (also referred to as cells). The electronic device entering the area can communicate with the satellite through wireless signals to accept the wireless access services provided by the satellite. The satellite 102 can also provide broadcast / pilot / coverage assistance information.
[0073] In other embodiments, the satellite 102 is capable of receiving data from the electronic device 101. For example, the electronic device 101 transmits data to the satellite based on the merging batch within the second time window.
[0074] The electronic device 101 and the satellite 102 are connected through a wireless communication link. The electronic device 101 can interact with the satellite 102 through the air interface.
[0075] It should be noted that the embodiments of the present application can be mutually borrowed or referred to each other, for example, the same or similar steps, method embodiments, system embodiments and device embodiments can be mutually referred to, without limitation.
[0076] Figure 2 A flowchart of a data transmission method provided by an embodiment of the present application is shown in FIG. 2. As shown in the figure, the method can be implemented through S201 to S204. Figure 2
[0077] S201, determining a first time window according to ephemeris and terminal position.
[0078] The first time window is used to indicate a time period in which the satellite is within the communicable range of the terminal.
[0079] Exemplarily, the terminal periodically acquires or caches the ephemeris and the terminal position. Based on geometric judgment or an orbit propagation model (for example, SGP4 model), the line of sight of the satellite and the terminal is calculated according to the ephemeris and the terminal position, and the first time window, i.e., the start time and the end time of the first time window, is obtained. In addition, the network side coverage replication information, the terminal time and the clock jitter parameter can also be combined to realize the prediction of the first time window.
[0080] S202, adjusting the start time and the end time of the first time window to obtain a second time window.
[0081] The start time of the second time window is earlier than the start time of the first time window, and the end time of the second time window is later than the end time of the first time window.
[0082] Exemplarily, the difference between the start time of the second time window and the start time of the first time window is a fixed value. The difference between the end time of the second time window and the end time of the first time window is a fixed value.
[0083] S203, determining a merging batch quantity based on the length of the second time window, the uplink transmission rate and the service arrival rate.
[0084] The service arrival rate is used to indicate the rate of data entering the message queue, and the merging batch quantity is used to indicate the total amount of data transmitted by the terminal to the satellite within the second time window.
[0085] S204, sending data to the satellite based on the merging batch quantity within the second time window.
[0086] Exemplarily, data is transmitted to the satellite in the second time window by using the lightweight access or the SDT, and a data amount of the data is a merged batch.
[0087] The data transmission method provided by the embodiments of the present application can increase the duration of communication with the satellite, which is equivalent to increasing the alignment probability of the terminal and the satellite communication window boundary, increasing the hit rate of window locking, and further reducing the monitoring and scanning of the terminal in the invisible period, reducing the energy consumption and invalid waiting of the terminal. The merged batch is determined according to the duration of the second time window, the uplink transmission rate and the service arrival rate, which can reduce the problems of buffer overflow or capacity waste compared with the fixed value of the merged batch, can be more matched with the current actual situation, reduce the energy consumption of the terminal, and improve the system robustness.
[0088] The above Figure 2 The process of determining the second time window in step S202 shown in the figure will be described. In a possible implementation, the process of determining the second time window in step S202 can be implemented by the following steps 11 to step 13.
[0089] Step 11: The variance of the start time of the first time window is determined by Gaussian distribution or sub-Gaussian distribution with the mean value of the start time of the first time window as the start time.
[0090] Step 12: The variance of the end time of the first time window is determined by Gaussian distribution or sub-Gaussian distribution with the mean value of the end time of the first time window as the end time.
[0091] Step 13: The start time of the second time window is determined based on the start time of the first time window and the variance of the start time of the first time window, and the end time of the second time window is determined based on the end time of the first time window and the variance of the end time of the first time window.
[0092] In some embodiments, the start time and the end time of the second time window satisfy the following formula 1.
[0093] Formula 1 In the formula, denotes the start time of the second time window, denotes the start time of the first time window, denotes a confidence coefficient, denotes the variance of the start time of the first time window, denotes the end time of the second time window, denotes the end time of the first time window, denotes the variance of the end time of the first time window.
[0094] Exemplarily, the confidence coefficient .
[0095] According to formula 1, the duration of the second time window is W= - .
[0096] In this way, the calculation manner of the start time and the end time of the second time window can be determined, the start time of the second time window is obtained by extending the start time of the first time window forward by the variance, and the end time of the second time window is obtained by extending the end time of the first time window backward. Through the extension of the first time window, the boundary of the terminal-satellite visible window can be more accurately aligned, the listening and empty scanning of the terminal in the satellite invisible period are reduced, and then the power consumption and invalid waiting time of the terminal are reduced.
[0097] The start time and the end time of the second time window are determined in the manner of Gaussian distribution or sub-Gaussian distribution, and the determination manner of the second time window can be determined.
[0098] As an example, Figure 3 a flowchart for determining the second time window is provided. As shown in Figure 3 , the process of determining the second time window includes the following steps.
[0099] S301, obtaining ephemeris and terminal position.
[0100] S302, determining the first time window through geometric judgment according to the ephemeris and the terminal position.
[0101] S303, determining the start time and the end time of the second time window through Gaussian distribution or sub-Gaussian distribution.
[0102] The process of determining the merging batch in step S203 shown above Figure 2 will be described. As a possible embodiment of the present application, the process of determining the merging batch in step S203 can be implemented through the following steps 21 to step 22.
[0103] Step 21: determining the window opening period of the terminal.
[0104] The window opening period is used to indicate the time period from the terminal waking up to the terminal entering the sleep state.
[0105] The window opening period of the terminal can be an equal-period window opening or a non-equal-period window opening, and the present application does not limit this.
[0106] Step 22: determining the merging batch based on the windowing period, the length of the second time window, the uplink transmission rate, and the service arrival rate.
[0107] In this way, the merging batch is determined by fully considering the windowing period, the length of the second time window, the uplink transmission rate, and the service arrival rate, so that the merging batch can be adjusted flexibly according to the current situation, avoiding buffer overflow and congestion in the window caused by fixed batch, and reducing unnecessary waiting delay.
[0108] The process of determining the merging batch in step 22 is described below. As a possible embodiment of the present application, the process of determining the merging batch in step 22 can be implemented by the following step one.
[0109] Step one: determining the minimum value of the first data amount, the second data amount, and the third data amount as the merging batch.
[0110] The first data amount is used to indicate the ideal total amount of data transmitted in the second time window according to the uplink transmission rate, the second data amount is used to indicate the merging batch threshold, and the third data amount is used to indicate the total amount of data that can be transmitted in the windowing period according to the service arrival rate.
[0111] In some embodiments, the merging batch determined in step one satisfies the following formula 2.
[0112] Formula 2 In the formula, Merging batch, Uplink transmission rate, Length of the second time window, Time variation, Single packet air interface occupation rate, Merging batch threshold, Service arrival rate, Windowing period; Downward rounding; Upward rounding.
[0113] Exemplarily, the media access control (MAC) overhead and the physical layer (PHY) overhead are included when calculating the single packet air interface occupation rate.
[0114] The time variation is to reserve idle time at the start time and the end time of the second time window to avoid boundary overflow.
[0115] Exemplarily, .
[0116] The specific calculation manner of the first data amount, the second data amount and the third data amount can be determined.
[0117] In this way, under the constraints of the uplink transmission rate, the merging batch threshold and the service arrival rate, the minimum value among the first data amount, the second data amount and the third data amount is determined as the merging batch, so that the determined merging batch can meet the service requirement without exceeding the window bearable amount.
[0118] Exemplarily, Figure 4 A flowchart for determining the merging batch provided by the embodiment of the present application is shown in FIG. 4. Figure 4 As shown in FIG. 4, the process of determining the merging batch includes the following steps.
[0119] S401, determining the first data amount, the second data amount and the third data amount.
[0120] S402, judging whether the first data amount is less than or equal to the second data amount. If yes, performing S403; if no, performing S406.
[0121] S403, judging whether the first data amount is less than or equal to the third data amount. If yes, performing S404; if no, performing S405.
[0122] S404, determining the first data amount as the merging batch.
[0123] S405, determining the third data amount as the merging batch.
[0124] S406, judging whether the second data amount is less than or equal to the third data amount. If yes, performing S407; if no, performing S408.
[0125] S407, determining the second data amount as the merging batch.
[0126] S408, determining the third data amount as the merging batch.
[0127] In addition, in the process of determining the window opening period in step 21, the following steps 31 to 32 are further included.
[0128] Step 31: determining the wake-up advance amount of the terminal.
[0129] The wake-up advance amount is used to determine the wake-up time of the terminal, and the wake-up time is used to indicate the time of waking up the terminal before the start time of the second time window.
[0130] Step 32: waking up the terminal at the wake-up time, so that the terminal can communicate with the satellite.
[0131] The wake-up time is the difference between the start time of the second time window and the wake-up advance amount.
[0132] It can be understood that the terminal itself has a preheating / scanning duration. When the terminal is woken up at the start time of the second time window, it will cause the time when the terminal can communicate to be later than the start time of the second time window. Therefore, the time when the terminal and the satellite can communicate will be reduced. Waking up the terminal before the start time of the second time window and reserving a preheating / scanning duration for the terminal can make the terminal and the satellite communicate in the time period of the second time window, thereby improving the communication efficiency.
[0133] Therefore, by determining the wake-up advance amount and the wake-up time, the terminal can be woken up at the wake-up time, so that the terminal can communicate with the satellite while avoiding being woken up in the invisible window period of the satellite, thereby reducing the empty scanning of the terminal and reducing the power consumption of the terminal.
[0134] Exemplarily, Figure 5 A window opening period diagram is provided for the embodiments of the present application. As Figure 5 shown, the wake-up time of the terminal is 38s in the terminal preheating / scanning phase. In addition, to avoid the terminal not being woken up at the wake-up time, two wake-up times are set before and after the wake-up time, for example, 36s and 39.5s. In the second time window, the start time of the second time window is 40s, and the end time is 70s. The time variation is 1s. To avoid abnormal situations, the in-window wake-up times are set in the second time window, which are 41s, 60s and 69s.
[0135] In some embodiments, the determination process of the wake-up advance amount of the terminal and the window opening period of the terminal includes the following step 41.
[0136] Step 41: Taking the minimum value of the weighted sum of the idle power consumption of the terminal, the wake-up power consumption of the terminal and the terminal's quantile delay as the optimization target, and taking the overlap probability of the window opening period of the terminal and the second time window being greater than or equal to the first probability threshold, the window opening period being greater than or equal to the first window opening period threshold, and the window opening period being less than or equal to the second window opening period threshold as the constraint condition, the wake-up advance amount and the window opening period are determined.
[0137] Exemplarily, the wake-up advance amount and the window opening period satisfy the following formula 3.
[0138] Formula 3 In the formula, , , denotes the weight coefficient; denotes the window opening period; denotes the wake-up advance amount; denotes the idle power consumption of the terminal; denotes the wake-up power consumption of the terminal; representing the quantile latency of the terminal; representing the overlap probability of the windowing period and the second time window of the terminal; representing the first probability threshold; representing the first windowing period threshold; representing the second windowing period threshold.
[0139] Exemplarily, .
[0140] In this way, the determination manner of the windowing period and the wake-up advance of the terminal can be determined, the optimal solution is given through the constraint optimization, the optimized windowing period and wake-up advance can be obtained, the terminal communication is ensured, and the power consumption of the terminal is reduced. The session-level terminal energy consumption, end-to-end quantile latency, and transmission success probability are taken as common evaluation indexes, the technical target meeting the standard is established, and the verification and comparison are facilitated.
[0141] Exemplarily, Figure 6 A flowchart for solving the wake-up advance and the windowing period is provided in the embodiment of the application. As shown in Figure 6 the above process includes the following steps.
[0142] S601, initializing the wake-up advance and the windowing period.
[0143] S602, calculating the weighted sum of the idle power consumption of the terminal, the wake-up power consumption of the terminal, and the quantile latency of the terminal by using gradient descent or heuristic step or piecewise closed-form approximation.
[0144] S603, determining whether the function converges or the iteration number reaches the maximum number. If yes, performing S604; if not, performing S602 to recalculate.
[0145] S604, determining the wake-up advance and the windowing period.
[0146] In addition, in actual engineering application, to simplify the operation, the above process of calculating the windowing period and the wake-up advance can be calculated by the following formula 4.
[0147] Formula 4 In the formula, representing the windowing period; representing the equivalent energy consumption of one wake-up of the terminal; representing the idle power consumption estimation value of the terminal; is a constant; ; representing the average value of the time window interval; representing the wake-up advance.
[0148] Further, in some embodiments, the above method further comprises steps 51 to 52.
[0149] Step 51: In the case of overlapping of the second time windows corresponding to the plurality of satellites, determining a data transmission weight of each satellite based on the confidence of the second time window of each satellite, the gain of the second time window of each satellite, the time length of the second time window of each satellite, and the congestion of the link of each satellite.
[0150] The data transmission weight is used to indicate the proportion of the data transmitted by the terminal to each satellite in a single transmission to the combined batch.
[0151] Exemplarily, the data transmission weight of each satellite satisfies the following formula 5.
[0152] Formula 5 Wherein, i represents the i-th satellite; Wi represents the data transmission weight of the i-th satellite; Ci represents the confidence of the second time window of the i-th satellite; Gi represents the gain of the second time window of the i-th satellite; Ti represents the time length of the second time window of the i-th satellite; Ci represents the congestion of the link of the i-th satellite; is a constant.
[0153] Step 52: Transmitting data to the corresponding satellite according to the data transmission weight.
[0154] Exemplarily, the amount of data transmitted to each satellite satisfies the following formula 6.
[0155] Formula 6 Wherein, Xi represents the amount of data transmitted to the i-th satellite; Wi represents the data transmission weight of the i-th satellite; B represents the combined batch.
[0156] In this way, in the case of overlapping of the second time windows corresponding to the plurality of satellites, the data transmission weight of each satellite is calculated, the data transmission amount in the second time window of each satellite is determined by dividing the combined batch into the second time window of each satellite, which can reduce the congestion and retransmission in a single time window, and fully consider the overall success rate and retransmission rate.
[0157] Exemplarily, Figure 7 is a schematic diagram of overlapping of the second time windows corresponding to the plurality of satellites provided by the embodiments of the present application. As shown in Figure 7As shown, the starting time of the second time window of satellite A is 10s, and the ending time is 230s. The starting time of the second time window of satellite B is 110s, and the ending time is 230s. There is an overlap between the second time windows of satellite A and satellite B, and the overlap duration is about 120s. Among them, the data transmission weight corresponding to satellite A is 0.6, and the data transmission weight corresponding to satellite B is 0.4.
[0158] In addition, in some embodiments, the above method further comprises steps 61 to 62.
[0159] Step 61: determining the heartbeat interval of the terminal, with the minimum heartbeat energy consumption of the terminal as the optimization target, and the constraint condition that the RTC drift of the terminal is less than or equal to the synchronization error threshold, and the probability that the RTC time error is less than the time error threshold is greater than or equal to the second probability threshold.
[0160] Among them, the heartbeat interval is used to indicate the time interval of the terminal sending the heartbeat keep-alive message to the satellite in the second time window.
[0161] Exemplarily, the heartbeat interval of the terminal satisfies the following formula 7.
[0162] Formula 7 In the formula, indicates the heartbeat interval of the terminal; indicates the heartbeat energy consumption of the terminal; indicates the RTC drift; indicates the synchronization error threshold; indicates the RTC time error; indicates the time error threshold; indicates the probability that the time error is less than the time error threshold; indicates the second probability threshold. Among them, the heartbeat energy consumption of the terminal Specifically, it represents the average power consumption generated by the heartbeat behavior, which is inversely proportional to the heartbeat interval , for example , is the energy consumption of the terminal for sending a heartbeat keep-alive signal once.
[0163] Step 62: sending a heartbeat keep-alive signal to the satellite according to the heartbeat interval in the second time window.
[0164] In addition, the terminal can also carry a timestamp and a short check code in the signal frame of sending the heartbeat keep-alive signal to the satellite to ensure security.
[0165] In this way, the corresponding relationship between the heartbeat interval of the terminal and the RTC drift can be established, the keep-alive overhead of the terminal is reduced on the premise of ensuring the alignment accuracy of the time window, and the power consumption of the terminal is further reduced.
[0166] Exemplarily, Figure 8 A flowchart for determining a heartbeat interval is provided for the embodiments of the present application. As shown in 8, the above process includes the following steps.
[0167] S801, generating a candidate solution set based on the terminal heartbeat energy consumption as a target function.
[0168] S802, in the candidate solution set, determining whether the candidate solution satisfies the terminal real-time clock RTC drift amount less than or equal to the synchronization error threshold value, and the probability of the RTC time error less than the time error threshold value greater than or equal to the second probability threshold value. If yes, execute S803, if not, execute S805.
[0169] S803, constructing a feasible solution set based on all the satisfied candidate solutions.
[0170] S804, in the feasible solution set, determining the feasible solution with the minimum target function value as the heartbeat interval.
[0171] S805, adjusting the time error threshold value.
[0172] After adjusting the time error threshold value, re-executing S802.
[0173] In addition, in some embodiments, the above method further includes steps 71 to 72.
[0174] Step 71: in the case of meeting the terminal access condition, in response to the failure of sending data to the satellite, executing an abnormal fallback strategy to reduce the retry number of the terminal and the energy consumption of the terminal.
[0175] Wherein, the terminal access condition includes: the current time is greater than or equal to the start time of the second time window, and the current time is less than or equal to the end time of the second time window, and the terminal can access the communication channel of the satellite, and the window sending success rate is greater than or equal to the success rate threshold (the success rate threshold is the preset expected success rate ), the window sending success rate is used to indicate the predicted probability of the amount of data to be sent by the terminal successfully sent in the second time window.
[0176] In some embodiments, the abnormal fallback strategy includes: in the case that the number of sending failures of the terminal is less than the failure number threshold, when the terminal fails to send the nth time, the waiting time of the terminal is the minimum value between the first waiting time and the second waiting time, the waiting time is the waiting time length from the failure of the terminal to send once to the next retransmission, the first waiting time is a preset ratio of the waiting time of the (n-1)th time, the second waiting time is the waiting time threshold, and n is a positive integer greater than 1; in the case that the number of sending failures of the terminal is greater than or equal to the failure number threshold, the terminal enters a sleep state.
[0177] Exemplarily, when the terminal fails to send for the nth time, the waiting time of the terminal satisfies the following formula 8.
[0178] Formula 8 In the formula, denotes the waiting time of the terminal; denotes the first waiting time; denotes the second waiting time.
[0179] In this way, the content of the abnormal backoff strategy can be determined, the extension of the waiting time of the terminal by the exponential backoff can limit the terminal blind scan duration and the number of attempts, and the power consumption of the terminal can be reduced; in the case where the number of sending failures exceeds the failure threshold, in the "wide scan + low duty cycle" mode, the terminal energy consumption avalanche can be prevented.
[0180] Step 72: In the case where the terminal access condition is not met, the terminal enters the sleep state.
[0181] In this way, for the abnormal situation of the terminal sending data failure and not meeting the terminal access condition, the processing mode of the terminal in the abnormal situation can be determined, the abnormal backoff in the abnormal state can be realized through the abnormal backoff strategy or the sleep state, and the short-term energy consumption peak and signaling overhead can be reduced by limiting the terminal blind scan duration and the number of attempts.
[0182] Exemplarily, Figure 9 A flowchart of an abnormal situation processing provided by an embodiment of the present application is shown in FIG. 8. Figure 9 As shown in the figure, the process can be implemented through the following steps.
[0183] S901, determine whether the terminal meets the access condition. If yes, execute S902; if no, execute S905.
[0184] S902, determine whether the terminal fails to send data to the satellite. If yes, execute S903.
[0185] S903, determine whether the number of sending failures of the terminal is less than the failure threshold. If yes, execute S904. If no, execute S905.
[0186] S904, determine the waiting time of the terminal, and resend data to the satellite after the waiting time.
[0187] S905, the terminal enters the sleep state.
[0188] The data transmission method provided by the embodiments of the present application can be optimized for ephemeris and clock error, improve the lock window hit rate, reduce the occurrence rate of repeated scanning, ensure the alignment accuracy of the wake-up time and window boundary, and be compatible with current small data direct transmission and other methods in terms of timing and monitoring, so as to reduce the access overhead and waiting time in the window.
[0189] In addition, in order to continuously optimize the terminal when performing data transmission with the satellite, the parameters in the data transmission method are re-estimated in a fixed period to further optimize.
[0190] In the process of re-estimating the parameters, the following formula 9 is satisfied.
[0191] Formula 9 In the formula, represents a confidence coefficient; represents a first probability threshold; represents a window opening period; represents a wake-up advance amount; represents a set of parameters to be optimized; represents a target function, i.e., the optimization target in the above formula 3; represents a set of optimization parameters of the (m+1)th iteration (i.e., the next time).
[0192] As an example, in a single satellite scenario, the satellite height is 550 km. The average value of the time window interval is 95 min. The length W of the second time window is 8.5 min. The service arrival rate is 0.15 packets / s. The uplink transmission rate is 20 kbps. The single packet air interface occupation rate is 45 ms.
[0193] 6.5 mJ, , mJ. Among them, the energy consumption of the terminal for sending a heartbeat keep-alive signal once.
[0194] .
[0195] Among them, ms.
[0196] The first probability threshold is 0.9; the success rate threshold, i.e., the expected success rate is 0.95; the quantile delay of the terminal s. The time variation amount is 20 ms. The confidence coefficient is 1.64.
[0197] The windowing period is calculated as about 34 min, and the wake-up advance is 120 ms. The heartbeat interval h is 48 min, ms.
[0198] The merged batch is:
[0199] Compared with the fixed 20 min wake-up used in the prior art, the terminal with the static batch 100 and the heartbeat interval 30 min has a decrease of about 37%-42% in the energy consumption per unit time, a decrease of about 22% in the end-to-end 99% percentile latency, a data transmission success rate of about 99.9%, and a decrease of about 45% in the number of wake-ups per day.
[0200] As another example, in the scenario of the second time window overlap of two satellites, the overlap is 120 s. The data transmission weight corresponding to satellite A is 0.6, and the data transmission weight corresponding to satellite B is 0.4. If the merged batch is transmitted to satellite A entirely, there will be congestion and retransmission, and the data transmission success rate is 92%. After the data is transmitted to the corresponding satellite according to the data transmission weight, the data transmission success rate is increased to 97.8%, and the terminal energy consumption is decreased by 8%.
[0201] Exemplarily, Table 1 is a comparison of the indicators of the data transmission method provided in the embodiments of the present application and other methods.
[0202] Table 1
[0203] Among them, the data / energy statistical period is greater than or equal to 24 h to smooth the intra-day fluctuations.
[0204] As an example, the terminal can be a low power internet of things (LP-IoT) device. The terminal includes a microcontroller unit (MCU), a real-time clock (RTC), a radio frequency (RF), and a non-volatile memory (NVM) in terms of hardware composition. The parameters used in the data transmission method are saved in the NVM.
[0205] The software architecture includes a window predictor, a sleep / wake-up scheduler, an aggregator, a heartbeat / time synchronization controller, a fallback controller, and a state machine.
[0206] The window predictor is used to determine the first time window based on the ephemeris and the terminal position.
[0207] The hibernation / wake-up orchestrator is used to determine the terminal's wake-up advance, the terminal's windowing cycle, and the terminal's wake-up time.
[0208] The aggregation controller is used to determine the merge batch of the terminal.
[0209] The heartbeat / time controller is used to determine the heartbeat interval of the terminal.
[0210] The exception rollback controller is used to determine the handling strategy when the terminal access conditions are met but data transmission fails, and when the terminal access conditions are not met.
[0211] A state machine is used to manage different states of the terminal. The terminal states include S0 sleep, S1 warm-up / scan, S2 aggregation / transmission, S3 heartbeat, and S4 rollback.
[0212] Figure 10 This is a schematic diagram of a terminal state machine transition provided in an embodiment of this application. Figure 10 As shown, after power-on / initialization, the terminal enters S0 sleep mode. Upon reaching the terminal's wake-up time or heartbeat time, the terminal transitions from S0 sleep mode to S1 warm-up / scan. If the terminal is not locked or the scan times out at this point, it continues transitioning from S1 warm-up / scan back to S0 sleep mode. When the terminal is within the second time window, it transitions from S1 warm-up / scan to S2 aggregation / transmission.
[0213] When the terminal is in a periodic heartbeat state, it changes from S0 sleep mode to S3 heartbeat mode, and after the heartbeat ends, it changes from S3 heartbeat mode back to S0 sleep mode.
[0214] When the terminal is in S2 aggregation / transmission state, it switches to S0 sleep mode after the terminal completes data transmission or the second time window ends. When the terminal fails to transmit data, it switches to S4 rollback mode.
[0215] When the terminal is in S4 rollback mode, if the number of transmission failures is less than the failure count threshold, it will switch from S4 rollback to S1 warm-up / scan. If the terminal access failures or the number of transmission failures is greater than or equal to the failure count threshold, it will switch from S4 rollback to S0 sleep mode.
[0216] The terminal implements closed-loop operation through "window prediction -> scheduling -> aggregation / heartbeat -> state machine".
[0217] Figure 11 A structural diagram of a data transmission system provided by an embodiment of the present application is shown in FIG. 1. As shown in the figure, the terminal includes software modules and hardware modules. The software modules include a window predictor, a sleep / wakeup scheduler, an aggregation controller, a heartbeat / time correction controller, an exception fallback controller, and a state machine. The hardware modules include an MCU, an RTC, an RF, and an NVM. Figure 11
[0218] The terminal transmits data to the satellite through the RF. In addition, the satellite can transmit coverage assistance information to the terminal through a ground network.
[0219] As an example, the terminal is operated for 72 hours in a fixed state, a walking state, and a vehicle-mounted state, respectively. After testing, the battery equivalent life of the terminal is improved by 29-34%; the window locking success rate is ≥95%; the first network entry time is shortened by ≥39%; and the SNR fluctuation (standard deviation) is maintained at 0.9-1.6 dB under vibration disturbance.
[0220] The data transmission method in the second time window is compatible with SDT / eDRX / PSM; the management parameters of the terminal are issued by the network side OTA, and OTA updating and temperature / voltage table adaptation are supported.
[0221] In the data transmission method, the single calculation is less than 1 ms @ 64-128 MHz MCU (excluding ephemeris propagation); the running RAM is about 2-4 KB; the ephemeris cache is about 1-4 KB; and the power consumption overhead is reduced due to the reduction of the terminal's empty wakeup. In addition, the RTC, RF, and NVM can be reused; and global navigation satellite system (GNSS) / inertial measurement unit (IMU) can be optionally accessed to improve the position / time accuracy.
[0222] The embodiments of the present application can divide the functional modules or functional units of the data transmission device according to the above-mentioned method examples. For example, each functional module or functional unit can be divided corresponding to each function, or two or more functions can be integrated in one processing module. The integrated module can be realized in the form of hardware or software functional module or functional unit. The division of modules or units in the embodiments of the present application is illustrative, and is only a logical function division. When actually implemented, another division mode can be used.
[0223] Figure 12 This is a schematic diagram of the structure of a data transmission device 120 provided in an embodiment of this application. The data transmission device 120 includes: Processing unit 1201 is configured to determine a first time window based on ephemeris and terminal location, wherein the first time window indicates the period during which the satellite is within the communication range of the terminal; processing unit 1201 is also configured to adjust the start and end times of the first time window to obtain a second time window; wherein the start time of the second time window is earlier than the start time of the first time window, and the end time of the second time window is later than the end time of the first time window; processing unit 1201 is also configured to determine a merging batch based on the duration of the second time window, uplink transmission rate, and service arrival rate, wherein the service arrival rate indicates the rate at which data enters the message queue, and the merging batch indicates the total amount of data transmitted by the terminal to the satellite within the second time window; communication unit 1202 is configured to send data to the satellite within the second time window based on the merging batch.
[0224] In one possible implementation, the processing unit 1201 is configured to: determine the variance of the start time of the first time window using a Gaussian distribution or a sub-Gaussian distribution with the start time of the first time window as the mean of the start time; determine the variance of the end time of the first time window using a Gaussian distribution or a sub-Gaussian distribution with the end time of the first time window as the mean of the end time; determine the start time of the second time window based on the start time and the variance of the start time of the first time window; and determine the end time of the second time window based on the end time and the variance of the end time of the first time window.
[0225] In one possible implementation, the processing unit 1201 is configured such that the start and end times of the second time window satisfy the following relationship:
[0226] In the formula, Indicates the start time of the second time window. Indicates the start time of the first time window. Represents the confidence coefficient. This represents the variance of the start time of the first time window. Indicates the end time of the second time window. Indicates the end time of the first time window. This represents the variance of the end time of the first time window.
[0227] In a possible implementation, the processing unit 1201 is configured to: determine a windowing period of the terminal, the windowing period being used to indicate a time period from when the terminal wakes up to when the terminal enters a sleep state; and determine the merging batch based on the windowing period, a time length of the second time window, the uplink transmission rate, and the traffic arrival rate.
[0228] In a possible implementation, the processing unit 1201 is further configured to: determine a wake-up advance of the terminal, the wake-up advance being used to determine a wake-up time of the terminal, the wake-up time being used to indicate a time at which the terminal wakes up before a start time of the second time window; and wake up the terminal at the wake-up time, so that the terminal can communicate with the satellite, the wake-up time being a difference between the start time of the second time window and the wake-up advance.
[0229] In a possible implementation, the processing unit 1201 is configured to: determine the wake-up advance and the windowing period by taking a weighted sum of an idle power consumption of the terminal, a wake-up power consumption of the terminal, and a quantile latency of the terminal as an optimization objective, and taking an overlap probability of the windowing period and the second time window being greater than or equal to a first probability threshold, the windowing period being greater than or equal to a first windowing period threshold, and the windowing period being less than or equal to a second windowing period threshold as constraint conditions.
[0230] In a possible implementation, the processing unit 1201 is configured to: determine a minimum value of the first data amount, the second data amount, and the third data amount as the merging batch, the first data amount being used to indicate an ideal total amount of data transmitted according to the uplink transmission rate within the second time window, the second data amount being used to indicate a merging batch threshold, and the third data amount being used to indicate a total amount of data that can be transmitted according to the traffic arrival rate within the windowing period.
[0231] In a possible implementation, the processing unit 1201 is configured to: the merging batch satisfies the following relationship:
[0232] In the formula, M represents the merging batch, represents the merging batch, represents the uplink transmission rate, represents a time length of the second time window, represents a time variation amount, represents a single packet air interface occupation rate, represents the merging batch threshold, represents the traffic arrival rate, represents the windowing period.
[0233] In a possible implementation, the processing unit 1201 is further configured to: in a case where the second time windows corresponding to the plurality of satellites overlap, determine a data transmission weight of each satellite based on the confidence of the second time window of each satellite, the gain of the second time window of each satellite, the time length of the second time window of each satellite, and the congestion situation of each satellite link, the data transmission weight being used to indicate a proportion of data transmitted by the terminal to each satellite in a single transmission; and transmit data to the corresponding satellites respectively according to the data transmission weights.
[0234] In a possible implementation, the processing unit 1201 is further configured to: determine a heartbeat interval of the terminal, the heartbeat interval being used to indicate a time interval of transmitting a heartbeat keep-alive message by the terminal to the satellite in the second time window, with a minimum heartbeat energy consumption of the terminal as an optimization target, and a probability that a real-time clock (RTC) drift of the terminal is less than or equal to a synchronization error threshold and an RTC timing error is less than a timing error threshold being greater than or equal to a second probability threshold as a constraint condition; and transmit a heartbeat keep-alive signal to the satellite according to the heartbeat interval in the second time window.
[0235] In a possible implementation, the processing unit 1201 is further configured to: in a case where a terminal access condition is met, perform an abnormal fallback strategy to reduce a retry number of the terminal and an energy consumption of the terminal in response to a failure of transmitting data to the satellite; and in a case where the terminal access condition is not met, the terminal enters a sleep state, wherein the terminal access condition includes that a current time is greater than or equal to a start time of the second time window and less than or equal to an end time of the second time window, and the terminal can access a communication channel of the satellite, and a window transmission success rate is greater than or equal to a success rate threshold, the window transmission success rate being used to indicate a predicted probability that a data amount to be transmitted by the terminal can be successfully transmitted in the second time window.
[0236] In a possible implementation, the abnormal fallback strategy includes: in a case where a failure number of the terminal is less than a failure number threshold, when the terminal fails to transmit for an n th time, a waiting time of the terminal is a minimum value between a first waiting time and a second waiting time, the waiting time being a waiting time length from a failure of transmitting once to retransmission next time, the first waiting time being a preset ratio of a waiting time of the (n-1) th time, the second waiting time being a waiting time threshold, and n being a positive integer greater than 1; and in a case where the failure number of the terminal is greater than or equal to the failure number threshold, the terminal enters the sleep state.
[0237] Those skilled in the art can clearly understand the data transmission device through the description of the above embodiments. For the convenience and brevity of description, only the above functional modules are taken as examples. In actual application, the above functions can be completed by different functional modules according to needs, that is, the internal structure of the device is divided into different functional modules to complete all or part of the above described functions. The specific working process of the above described system, device and unit can refer to the corresponding process in the foregoing method embodiments, which will not be described here.
[0238] When implemented by hardware, each module in the data transmission device can be realized on the hardware structure of the data transmission device as shown in Figure 13 . Specifically, as shown in Figure 13 , the basic hardware structure of the data transmission device is introduced.
[0239] Figure 13 A hardware structure diagram of a data transmission device provided by the embodiment of the present application is shown in Figure 13 . The data transmission device includes at least one processor 1301, a communication line 1302, and at least one communication interface 1304, and can also include a memory 1303. Among them, the processor 1301, the memory 1303 and the communication interface 1304 can be connected through the communication line 1302.
[0240] The processor 1301 can be a central processing unit (CPU), an application specific integrated circuit (ASIC), or one or more integrated circuits configured to implement one or more embodiments of the present application, such as one or more digital signal processors (DSPs), or one or more field programmable gate arrays (FPGAs).
[0241] The communication line 1302 can include a channel for transmitting information between the above components.
[0242] The communication interface 1304 is used for communication with other devices or communication networks, and can use any transceiver device, such as Ethernet, radio access network (RAN), wireless local area network (WLAN), etc.
[0243] The memory 1303 can be a read-only memory (ROM) or other type of static storage device that can store static information and instructions, a random access memory (RAM) or other type of dynamic storage device that can store information and instructions, an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disk storage, a magnetic disk storage or other magnetic storage devices, or any other medium capable of storing desired program code in the form of instructions or data structures and that can be accessed by a computer, but is not limited thereto.
[0244] In a possible design, the memory 1303 can exist independently of the processor 1301, that is, the memory 1303 can be an external memory of the processor 1301, and in this case, the memory 1303 can be connected to the processor 1301 through the communication line 1302, used to store execution instructions or application program codes, and controlled to execute by the processor 1301 to implement the data transmission method provided in the embodiments of the present application. In another possible design, the memory 1303 can also be integrated with the processor 1301, that is, the memory 1303 can be an internal memory of the processor 1301, for example, the memory 1303 is a cache, which can be used to temporarily store some data and instruction information, and the like.
[0245] As a possible implementation manner, the processor 1301 can include one or more CPUs, for example, the CPUs 0 and 1 in the CPU 1301 in FIG. 13. Figure 13 As another possible implementation manner, the data transmission apparatus can include multiple processors, for example, the processor 1301 and the processor 1307 in the data transmission apparatus 1300 in FIG. 13. Figure 13 As still another possible implementation manner, the data transmission apparatus can further include an output device 1305 and an input device 1306.
[0246] The embodiments of the present application provide a computer program product containing instructions, which, when executed on a computer, cause the computer to perform the data transmission method in the method embodiments.
[0247] The embodiments of the present application also provide a computer readable storage medium, which stores instructions, and when the instructions are executed on a computer, cause the computer to perform the data transmission method in the method flow shown in the method embodiments.
[0248] The computer readable storage medium, for example, can be, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium include: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a register, a hard disk, an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing, or any other medium from which a processor can read and write information. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. Of course, the disclosure is not limited to a particular storage medium. The processor and the storage medium can be located in an ASIC. In some embodiments, the computer readable storage medium can be tangibly embodied as any tangible medium that contains or stores a program and / or data for use by or in connection with an instruction execution system, apparatus, or device.
[0249] Since the data transmission device, the computer readable storage medium and the computer program product in the embodiments of the present application can be applied to the above method, the technical effects that can be obtained are also referable to the above method embodiments, and the embodiments of the present application will not be described here.
[0250] In several embodiments provided by the present application, it should be understood that the disclosed system, device and method 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, another division mode can be used. For example, a plurality of units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the coupling or direct coupling or communication connection between the units or components shown or discussed can be indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.
[0251] The units described as separate components may or may not be physically separate, and the components displayed as units may or may not be physical units, that is, may be located in one place, or may also be distributed to multiple network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the embodiment scheme.
[0252] In addition, each functional unit in each embodiment of the present application can be integrated in one processing unit, or each unit can exist physically, or two or more units can be integrated in one unit.
[0253] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto, any change or replacement within the technical scope disclosed in the present application should be covered in the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.
Claims
1. A data transmission method, characterized in that, The method includes: Based on the ephemeris and the terminal location, a first time window is determined, which indicates the period of time during which the satellite is within the terminal's communication range; The start and end times of the first time window are adjusted to obtain a second time window; wherein the start time of the second time window is earlier than the start time of the first time window, and the end time of the second time window is later than the end time of the first time window. Based on the duration of the second time window, the uplink transmission rate, and the service arrival rate, the merging batch is determined. The service arrival rate is used to indicate the rate at which data enters the message queue, and the merging batch is used to indicate the total amount of data transmitted by the terminal to the satellite within the second time window. Within the second time window, data is sent to the satellite based on the merged batch.
2. The method according to claim 1, characterized in that, The step of adjusting the start and end times of the first time window to obtain the second time window includes: The variance of the starting time of the first time window is determined by using the mean of the starting time as the starting time and by using a Gaussian distribution or a sub-Gaussian distribution. The variance of the termination time of the first time window is determined by using the mean of the termination time as the termination time and by using a Gaussian distribution or a sub-Gaussian distribution. The start time of the second time window is determined based on the start time of the first time window and the variance of the start time of the first time window; the end time of the second time window is determined based on the end time of the first time window and the variance of the end time of the first time window.
3. The method according to claim 2, characterized in that, The step of determining the start time of the second time window based on the start time and variance of the start time of the first time window, and determining the end time of the second time window based on the end time and variance of the end time of the first time window, includes: The start and end times of the second time window satisfy the following relationship: In the formula, This indicates the start time of the second time window. This indicates the start time of the first time window. Represents the confidence coefficient. This represents the variance of the start time of the first time window. This indicates the end time of the second time window. This indicates the end time of the first time window. This represents the variance of the end time of the first time window.
4. The method according to claim 1, characterized in that, The determination of the merging batch based on the duration of the second time window, the uplink transmission rate, and the service arrival rate includes: The window opening period of the terminal is determined, and the window opening period is used to indicate the time period from when the terminal is woken up to when the terminal enters a sleep state; The merging batch is determined based on the windowing period, the duration of the second time window, the uplink transmission rate, and the service arrival rate.
5. The method according to claim 4, characterized in that, Determining the window opening cycle of the terminal further includes: The wake-up advance of the terminal is determined, the wake-up advance is used to determine the wake-up time of the terminal, and the wake-up time is used to indicate the time before the start time of the second time window to wake up the terminal; The terminal is woken up at the wake-up time so that it can communicate with the satellite. The wake-up time is the difference between the start time of the second time window and the wake-up advance.
6. The method according to claim 5, characterized in that, The process of determining the wake-up advance of the terminal and the windowing cycle of the terminal includes: The optimization objective is to minimize the weighted sum of the terminal's idle power consumption, the terminal's wake-up power consumption, and the terminal's quantile delay. The constraints are that the overlap probability between the terminal's windowing period and the second time window is greater than or equal to a first probability threshold, the windowing period is greater than or equal to a first windowing period threshold, and the windowing period is less than or equal to a second windowing period threshold. The wake-up advance amount and the windowing period are then determined.
7. The method according to claim 4, characterized in that, The step of determining the merging batch based on the windowing period, the duration of the second time window, the uplink transmission rate, and the service arrival rate includes: The minimum value among the first data volume, the second data volume, and the third data volume is determined as the merged batch. The first data volume is used to indicate the ideal total amount of data transmitted at the uplink transmission rate within the second time window. The second data volume is used to indicate the merged batch threshold. The third data volume is used to indicate the total amount of data that can be transmitted at the service arrival rate within the window period.
8. The method according to claim 7, characterized in that, Determining the minimum value among the first data volume, the second data volume, and the third data volume as the merged batch includes: The merged batches satisfy the following relationship: In the formula, This indicates the merged batch. This indicates the uplink transmission rate. This indicates the duration of the second time window. Indicates the change over time. Indicates the air interface occupancy rate per packet. Indicates the batch threshold for merging. This indicates the service delivery rate. This indicates the window opening cycle.
9. The method according to claim 1, characterized in that, The method further includes: When the second time windows of multiple satellites overlap, the data transmission weight of each satellite is determined based on the confidence level of the second time window of each satellite, the gain of the second time window of each satellite, the duration of the second time window of each satellite, and the congestion status of each satellite link. The data transmission weight is used to indicate the proportion of data transmitted by the terminal to each satellite in a single batch to the merged batch. Data is sent to the corresponding satellites according to the data transmission weights.
10. The method according to claim 1, characterized in that, The method further includes: With the goal of minimizing the heartbeat energy consumption of the terminal, and with the constraints that the real-time clock (RTC) drift of the terminal is less than or equal to the synchronization error threshold, and the probability that the RTC timing error is less than the timing error threshold is greater than or equal to the second probability threshold, the heartbeat interval of the terminal is determined. The heartbeat interval is used to indicate the time interval within which the terminal sends a heartbeat keep-alive message to the satellite in the second time window. Within the second time window, a heartbeat keep-alive signal is sent to the satellite according to the heartbeat interval.
11. The method according to claim 1, characterized in that, The method further includes: If the terminal access conditions are met, in response to the failure to send data to the satellite, an abnormal fallback strategy is executed to reduce the number of retries and the power consumption of the terminal. If the terminal access conditions are not met, the terminal enters a sleep state; The terminal access conditions include: the current time is greater than or equal to the start time of the second time window, and the current time is less than or equal to the end time of the second time window; the terminal can access the communication channel of the satellite; and the window transmission success rate is greater than or equal to the success rate threshold. The window transmission success rate is used to indicate the predicted probability that the amount of data to be transmitted by the terminal can be successfully transmitted in the second time window.
12. The method according to claim 11, characterized in that, The abnormal rollback strategy includes: When the number of failed transmissions of the terminal is less than the failure count threshold, when the terminal fails to transmit for the nth time, the waiting time of the terminal is the minimum value between the first waiting time and the second waiting time. The waiting time is the waiting time from the time the terminal fails to transmit once until the next retransmission. The first waiting time and the waiting time for the (n-1)th time are a preset ratio. The second waiting time is a waiting time threshold. n is a positive integer greater than 1. If the number of failed transmissions at the terminal is greater than or equal to the failure count threshold, the terminal enters a sleep state.
13. A data transmission device, characterized in that, The device includes: The processing unit is configured to determine a first time window based on the ephemeris and the terminal location, wherein the first time window indicates the period during which the satellite is within the communication range of the terminal; The processing unit is further configured to adjust the start and end times of the first time window to obtain a second time window; wherein the start time of the second time window is earlier than the start time of the first time window, and the end time of the second time window is later than the end time of the first time window. The processing unit is further configured to determine the merging batch based on the duration of the second time window, the uplink transmission rate, and the service arrival rate, wherein the service arrival rate is used to indicate the rate at which data enters the message queue, and the merging batch is used to indicate the total amount of data transmitted by the terminal to the satellite within the second time window; A communication unit is used to send data to the satellite based on the merged batch within the second time window.
14. An electronic device, characterized in that, include: A processor and a communication interface; the communication interface is coupled to the processor, the processor being used to run computer programs or instructions to implement the data transmission method as described in any one of claims 1-12.
15. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores instructions that, when executed by a computer, perform the data transmission method as described in any one of claims 1-12.
16. A computer program product, characterized in that, The computer program product includes computer instructions that, when executed on a computer, cause the computer to perform the data transmission method as described in any one of claims 1-12.