Improving coordinated sampled listening (CSL) stability using calculated CSL packet transmission time delay in processor-based devices

By calculating CSL packet transmission time delay using ARM Cortex-M4 and Cortex-M0 processor cores, the device aligns transmission times with synchronization windows, stabilizing CSL communications and ensuring successful packet reception.

WO2025194371A1PCT designated stage Publication Date: 2025-09-25QUALCOMM INC +6
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/082616
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-20
Publication Date
2025-09-25

AI Technical Summary

Technical Problem

The variability in CSL packet transmission time delay due to task switching and inter-processor communications in processor-based devices leads to misalignment of transmission times with synchronization windows, causing instability in Coordinated Sampled Listening (CSL) communications.

Method used

A processor-based device calculates CSL packet transmission time delay by determining application and radio processor time base values, calculating time differential and reception timestamp values, and adjusting transmission times to align with CSL channel sampling windows, using ARM Cortex-M4 and Cortex-M0 processor cores for improved synchronization.

Benefits of technology

Enhances CSL stability by accurately determining transmission times, ensuring successful packet reception at Synchronized Sleepy End Devices, thereby stabilizing CSL communications.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024082616_25092025_PF_FP_ABST
    Figure CN2024082616_25092025_PF_FP_ABST
Patent Text Reader

Abstract

Improving Coordinated Sampled Listening (CSL) stability using calculated CSL packet transmission time delay in processor-based devices is disclosed herein. In some aspects, an application processor device determines an application processor time base value, and receives a first CSL packet comprising a first time differential value between a radio processor time base value and a reception time of the first CSL packet by a radio processor device. The application processor device calculates a second time differential value between the application processor time base value and a reception time of the first CSL packet by the application processor device, and calculates a delay value using the first and second time differential values. The application processor device uses the delay value to calculate a reception timestamp value and a CSL channel sampling window value, and transmits a second CSL packet directed at a time indicated by the CSL channel sampling window value.
Need to check novelty before this filing date? Find Prior Art

Description

IMPROVING COORDINATED SAMPLED LISTENING (CSL) STABILITY USING CALCULATED CSL PACKET TRANSMISSION TIME DELAY IN PROCESSOR-BASED DEVICESTECHNICAL FIELD

[0001] The technology of the disclosure relates generally to the use of Coordinated Sampled Listening (CSL) in processor-based devices, and, in particular, to the transmission of packets using CSL.BACKGROUND

[0002] In 2003, the Institute of Electrical and Electronics Engineers (IEEE) published a technical standard called IEEE 802.15.4 that defines the operation of wireless sensor networks (WSNs) and low-rate wireless personal area networks (LR-WPANs) . IEEE 802.15.4 specifies the physical (PHY) and the Medium Access Control (MAC) layers for LR-WPANs, thereby enabling the development of technology for machine-to-machine (M2M) communication applications based on wireless sensing systems. A subsequent amendment, IEEE 802.15.4-2015, provides a feature called Coordinated Sampled Listening (CSL) that can be used to optimize power consumption for communicating devices. When CSL is in use, a receiving device (e.g., a Synchronized Sleepy End Device (SSED) that is configured not to receive data when idle) performs channel sampling operations to sample for CSL packets from a transmitting device only during set intervals (i.e., “synchronization windows” ) . This avoids the need for the SSED to perform data polling, which reduces power consumption by the SSED.

[0003] For CSL-based communications to be successful, the transmitting device must transmit CSL packets during the same synchronization windows in which the receiving device is performing channel sampling operations. The transmitting device conventionally determines transmission times based on, e.g., reception time of a previous CSL packet from the receiving device, a CSL phase value communicated to the transmitting device as part of the CSL protocol, and a fixed delay value. The fixed delay value is intended to account for the lack of time synchronization between a radio processing device and an application processing device of the transmitting device by estimating a CSL packet transmission time delay caused by relaying a previous CSL packet between the radio processing device and the application processing device.  However, the CSL packet transmission time delay may vary depending on the specific operating circumstances (e.g., task switching and / or inter-processor communications) of the transmitting device. If the CSL packet transmission time delay is unexpectedly larger than the fixed delay value used to determine transmission times, the transmitting device may transmit CSL packets at time intervals that do not align with the synchronization windows during which the receiving device performs channel sampling operations. This would cause the receiving device to fail to receive the CSL packets, resulting in instability of CSL communications.

[0004] Accordingly, it is desirable to provide mechanisms for more accurately determining CSL packet transmission time delay.

[0005] SUMMARY OF THE DISCLOSURE

[0006] Aspects disclosed in the detailed description include improving Coordinated Sampled Listening (CSL) stability using calculated CSL packet transmission time delay in processor-based devices. Related apparatus, methods, and computer-readable media are also disclosed. In this regard, a processor-based device comprises an application processor device (e.g., an ARM Cortex-M4 processor core, as a non-limiting example) and a radio processor device (e.g., an ARM Cortex-M0 processor core, as a non-limiting example) communicatively coupled to the application processor device. The application processor device is responsible for application execution by the processor-based device, while the radio processor device is responsible for interfacing with radio hardware to relay CSL packets between the application processor device and a Synchronized Sleepy End Device (SSED) external to the processor-based device.

[0007] In exemplary operation, the application processor device is configured to determine an application processor time base value. The application processor device receives a first CSL packet from the radio processor device, wherein the first CSL packet comprises a first time differential value between a radio processor time base value and a reception time of the first CSL packet by the radio processor device. The application processor device calculates a second time differential value between the application processor time base value and a reception time of the first CSL packet by the application processor device, and then calculates a delay value as a difference between the second time differential value and the first time differential value. The application processor  device also calculates a reception timestamp value as a difference between the reception time of the first CSL packet by the application processor device and the delay value, and calculates a CSL channel sampling window value as a sum of the reception timestamp value and a CSL phase value. The application processor device then transmits a second CSL packet to the SSED at a time indicated by the CSL channel sampling window value.

[0008] Some aspects may further provide that the radio processor device determines a radio processor time base value. Prior to the application processor device receiving the first CSL packet from the radio processor device, the radio processor device receives the first CSL packet (e.g., from the SSED) . The radio processor device calculates the first time differential value between the radio processor time base value and the reception time of the first CSL packet by the radio processor device. The radio processor device then appends the first time differential value to the first CSL packet, and transmits the first CSL packet comprising the first time differential value to the application processor device.

[0009] In some aspects, the application processor device calculates a next CSL channel sampling window value as a current time value at the application processor device minus a remainder of a current time value divided by a CSL period value, summed with a remainder of the CSL channel sampling window value divided by a CSL period value, summed with a product of a count of a next CSL channel sampling window and the CSL period value. Some aspects may further provide that the application processor device may determine that synchronization with the SSED has been lost. In response, the application processor device calculates a retransmit time value as a sum of the reception timestamp value minus a product of a count of a retransmit attempt and a synchronization time increment, summed with a CSL phase value. The application processor device in such aspects then retransmits the second CSL packet at a time indicated by the retransmit time value. According to some such aspects, the application processor device may also calculate a next CSL channel sampling window value as the current time value at the application processor device minus a remainder of the current time value divided by the CSL period value, summed with a remainder of the retransmit time value divided by the CSL period value, summed with a product of a count of a next CSL channel sampling window and the CSL period value.

[0010] In another aspect, a processor-based device is provided. The processor device comprises an application processor device, and a radio processor device communicatively coupled to the application processor device. The application processor device is configured to determine an application processor time base value. The application processor device is further configured to receive, from the radio processor device, a first CSL packet comprising a first time differential value between a radio processor time base value and a reception time of the first CSL packet by the radio processor device. The application processor device is also configured to calculate a second time differential value between the application processor time base value and a reception time of the first CSL packet by the application processor device. The application processor device is additionally configured to calculate a delay value as a difference between the second time differential value and the first time differential value. The application processor device is further configured to calculate a reception timestamp value as a difference between the reception time of the first CSL packet by the application processor device and the delay value. The application processor device is also configured to calculate a CSL channel sampling window value as a sum of the reception timestamp value and a CSL phase value. The application processor device is additionally configured to transmit a second CSL packet directed to a SSED at a time indicated by the CSL channel sampling window value.

[0011] In another aspect, a method for improving CSL stability using calculated CSL packet transmission time delay in processor-based devices is provided. The method comprises determining, by an application processor device of a processor-based device, an application processor time base value. The method further comprises receiving, by the application processor device from a radio processor device of the processor-based device, a first CSL packet comprising a first time differential value between a radio processor time base value and a reception time of the first CSL packet by the radio processor device. The method also comprises calculating, by the application processor device, a second time differential value between the application processor time base value and a reception time of the first CSL packet by the application processor device. The method additionally comprises calculating, by the application processor device, a delay value as a difference between the second time differential value and the first time differential value. The method further comprises calculating, by the application processor device, a reception timestamp value as a difference between the reception time of the first CSL packet by the  application processor device and the delay value. The method also comprises calculating, by the application processor device, a CSL channel sampling window value as a sum of the reception timestamp value and a CSL phase value. The method additionally comprises transmitting, by the application processor device, a second CSL packet directed to a SSED at a time indicated by the CSL channel sampling window value.

[0012] In another aspect, a non-transitory computer-readable medium is disclosed. The non-transitory computer-readable medium stores computer-executable instructions that, when executed, cause an application processor device of a processor-based device to determine an application processor time base value. The computer-executable instructions further cause the application processor device to receive, from a radio processor device of the processor-based device, a first CSL packet comprising a first time differential value between a radio processor time base value and a reception time of the first CSL packet by the radio processor device. The computer-executable instructions also cause the application processor device to calculate a second time differential value between the application processor time base value and a reception time of the first CSL packet by the application processor device. The computer-executable instructions additionally cause the application processor device to calculate a delay value as a difference between the second time differential value and the first time differential value. The computer-executable instructions further cause the application processor device to calculate a reception timestamp value as a difference between the reception time of the first CSL packet by the application processor device and the delay value. The computer-executable instructions also cause the application processor device to calculate a CSL channel sampling window value as a sum of the reception timestamp value and a CSL phase value. The computer-executable instructions additionally cause the application processor device to transmit a second CSL packet directed to a SSED at a time indicated by the CSL channel sampling window value.

[0013] BRIEF DESCRIPTION OF THE FIGURES

[0014] Figure 1 is a diagram illustrating a timeline of conventional Coordinated Sampled Listening (CSL) communications between a Synchronized Sleepy End Device (SSED) , a radio processor device of a processor-based device, and an application  processor device of the processor-based device, in which a CSL packet transmission time delay negatively affects communications with the SSED;

[0015] Figure 2 is a block diagram illustrating an exemplary processor-based device that includes an application processor device and a radio processor device configured to improve CSL stability using calculated CSL packet transmission time delay, according to some aspects;

[0016] Figure 3 is a diagram illustrating in greater detail the first time differential value calculated by the radio processor device of Figure 2 and the second time differential value calculated by the application processor device of Figure 2, according to some aspects;

[0017] Figures 4A-4C provide a flowchart illustrating exemplary operations performed by the application processor device (and, in some aspects, the radio processor device) of Figure 2 for improving CSL stability using calculated CSL packet transmission time delay, according to some aspects; and

[0018] Figure 5 is a block diagram of an exemplary processor-based device that can include the processor-based device of Figure 2.DETAILED DESCRIPTION

[0019] With reference now to the drawing figures, several exemplary aspects of the present disclosure are described. The word “exemplary” is used herein to mean “serving as an example, instance, or illustration. ” Any aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects. The terms “first, ” “second, ” and the like are used herein to distinguish between similarly named elements, and are not to be interpreted as indicating an ordinal relationship between such elements unless expressly described as such herein.

[0020] Aspects disclosed in the detailed description include improving Coordinated Sampled Listening (CSL) stability using calculated CSL packet transmission time delay in processor-based devices. Related apparatus, methods, and computer-readable media are also disclosed. In this regard, a processor-based device comprises an application processor device (e.g., an ARM Cortex-M4 processor core, as a non-limiting example) and a radio processor device (e.g., an ARM Cortex-M0 processor core, as a non-limiting example) communicatively coupled to the application processor device. The application  processor device is responsible for application execution by the processor-based device, while the radio processor device is responsible for interfacing with radio hardware to relay CSL packets between the application processor device and a Synchronized Sleepy End Device (SSED) external to the processor-based device.

[0021] In exemplary operation, the application processor device is configured to determine an application processor time base value. The application processor device receives a first CSL packet from the radio processor device, wherein the first CSL packet comprises a first time differential value between a radio processor time base value and a reception time of the first CSL packet by the radio processor device. The application processor device calculates a second time differential value between the application processor time base value and a reception time of the first CSL packet by the application processor device, and then calculates a delay value as a difference between the second time differential value and the first time differential value. The application processor device also calculates a reception timestamp value as a difference between the reception time of the first CSL packet by the application processor device and the delay value, and calculates a CSL channel sampling window value as a sum of the reception timestamp value and a CSL phase value. The application processor device then transmits a second CSL packet to the SSED at a time indicated by the CSL channel sampling window value.

[0022] Some aspects may further provide that the radio processor device determines a radio processor time base value. Prior to the application processor device receiving the first CSL packet from the radio processor device, the radio processor device receives the first CSL packet (e.g., from the SSED) . The radio processor device calculates the first time differential value between the radio processor time base value and the reception time of the first CSL packet by the radio processor device. The radio processor device then appends the first time differential value to the first CSL packet, and transmits the first CSL packet comprising the first time differential value to the application processor device.

[0023] In some aspects, the application processor device calculates a next CSL channel sampling window value as a current time value at the application processor device minus a remainder of a current time value divided by a CSL period value, summed with a remainder of the CSL channel sampling window value divided by a CSL period value, summed with a product of a count of a next CSL channel sampling window and  the CSL period value. Some aspects may further provide that the application processor device may determine that synchronization with the SSED has been lost. In response, the application processor device calculates a retransmit time value as a sum of the reception timestamp value minus a product of a count of a retransmit attempt and a synchronization time increment, summed with a CSL phase value. The application processor device in such aspects then retransmits the second CSL packet at a time indicated by the retransmit time value. According to some such aspects, the application processor device may also calculate a next CSL channel sampling window value as the current time value at the application processor device minus a remainder of the current time value divided by the CSL period value, summed with a remainder of the retransmit time value divided by the CSL period value, summed with a product of a count of a next CSL channel sampling window and the CSL period value.

[0024] Before discussing exemplary operations for improving CSL stability using calculated CSL packet transmission time delay, a timeline of conventional CSL communications according to the Institute of Electrical and Electronics Engineers (IEEE) 802.15.4-2015 technical standard and the potential shortcomings thereof are first discussed. In this regard, Figure 1 illustrates a timeline of CSL communications between an SSED 100, a radio processor device (captioned as “RADIO PROC” in Figure 1) 102 of a processor-based device 104, and an application processor device (captioned as “APP PROC” in Figure 1) 106 of the processor-based device 104. In Figure 1, events occurring at the SSED 100, the radio processor device 102, and the application processor device 106 are shown on corresponding arrows 108, 110, and 112 representing the flow of time. Note that the radio processor device 102 and the application processor device 106 are not time-synchronized.

[0025] During conventional CSL communications, the SSED 100 may transmit a first CSL packet (not shown) to the processor-based device 104 at a time point indicated by arrow (captioned “SSED TRANSMIT PACKET” in Figure 1) 114. The first CSL packet is subsequently received by the radio processor device 102 of the processor-based device 104 at a time point indicated by arrow (captioned “RADIO RECEIVE PACKET” in Figure 1) 116. The radio processor device 102 then transmits the first CSL packet to the application processor device 106, where it is received at a time point indicated by arrow (captioned “APP RECEIVE PACKET” in Figure 1) 118. The time period between the  radio processor device 102 receiving the first CSL packet and the application processor device 106 receiving the first CSL packet is the CSL packet transmission time delay (captioned as “CSL PACKET TX TIME DELAY” in Figure 1) 120.

[0026] The SSED 100 later begins to perform channel sampling operations at time points indicated by arrows (captioned as “SSED CHANNEL SAMPLING” in Figure 1) 122 (0) -122 (S) , while remaining idle in between each channel sampling operation. The time period between the SSED 100 first transmitting the first CSL packet and the first channel sampling operation is the CSL phase value 124, while the time period between each of the channel sampling operations is the CSL period value 126. Because the SSED 100 is idle and not receiving data between each channel sampling operation, the application processor device 106 must transmit a responsive second CSL packet (not shown) to the SSED 100 during one of the channel sampling operations at corresponding time points indicated by the arrows 122 (0) -122 (S) for the second CSL packet to be successfully received by the SSED 100.

[0027] In conventional operation, the application processor device 106 determines what time to attempt transmission of the second CSL packet based on the time the application processor device 106 receives the first CSL packet as indicated by the arrow 120, the CSL phase value 124 communicated to the processor-based device 104 as part of the CSL protocol, and a fixed delay value (not shown) . Because the radio processor device 102 and the application processor device 106 are not time-synchronized, the fixed delay value is used to represent an estimate of the CSL packet transmission time delay based on prior evaluation of the performance of the processor-based device 104. However, the CSL packet transmission time delay may vary depending on the specific operating circumstances of the processor-based device 104. For example, variations caused by the radio processor device 102 performing task switching, by inter-processor communications or interrupts, and / or by the application processor device 106 performing task switching may cause the CSL packet transmission time delay to be greater than the fixed delay value.

[0028] In the example of Figure 1, this results in the application processor device 106 transmitting the second CSL packet at delayed time points indicated by arrows (captioned as “APP DELAYED TRANSMIT” in Figure 1) 128 (0) -128 (S) . Because the delayed time points indicated by the arrows 128 (0) -128 (S) do not align with the channel samplings at  the time points indicated by the arrows 122 (0) -122 (S) , the SSED 100 will not receive the second CSL packet transmitted by the application processor device 106. It is thus desirable to more accurately estimate the CSL packet transmission time delay to enable more stable CSL communications between the processor-based device 104 and the SSED 100.

[0029] In this regard, Figure 2 is a block diagram of an exemplary processor-based device 200 that is configured to improve CSL stability using calculated CSL packet transmission time delay. The processor-based device 200 comprises an application processor device 202 and a radio processor device 204 communicatively coupled to the application processor device 202 via, e.g., an interconnection bus (not shown) . In some aspects, the application processor device 202 may comprise an ARM Cortex-M4 processor core, while some aspects may provide that the radio processor device 204 comprises an ARM Cortex-M0 processor core. The application processor device 202 is responsible for application execution by the processor-based device 200, while the radio processor device 204 is responsible for interfacing with radio hardware (not shown) to relay CSL packets between the application processor device 202 and an SSED 206 external to the processor-based device 200. The application processor device 202 and the radio processor device 204 are not time-synchronized.

[0030] The processor-based device 200 of Figure 2 may encompass any one of known digital logic elements, semiconductor circuits, processing cores, and / or memory structures, among other elements, or combinations thereof. Aspects described herein are not restricted to any particular arrangement of elements, and the disclosed techniques may be easily extended to various structures and layouts on semiconductor dies or packages. It is to be understood that some aspects of the processor-based device 200, the application processor device 202, and / or the radio processor device 204 may include elements in addition to or instead of those illustrated in Figure 2, and / or may include more or fewer of the elements illustrated in Figure 2. For example, the processor-based device 200 may further include caches, controllers, communications buses, and / or persistent storage devices, which are omitted from Figure 2 for the sake of clarity.

[0031] The application processor device 202 (and, in some aspects, the radio processor device 204) of Figure 2 are configured to perform calculations to more accurately estimate CSL packet transmission time delay. In exemplary operation, the  application processor device 202 determines an application processor time base value 208, which represents a time value preceding the start of CSL communications. The application processor device 202 then receives a first CSL packet 210 from the radio processor device 204. As used herein, the term “CSL packet” refers to a data packet formatted according to the IEEE 802.15.4-2015 technical standard for CSL communications. The first CSL packet 210 comprises a first time differential value (captioned as “TIME DIFF” in Figure 2) 212 that represents a time period between a radio processor time base value 214 and a reception time 216 of the first CSL packet 210 by the radio processor device 204. This is illustrated by the exemplary equation shown in Table 1 below, where m0Timestamp represents the reception time 216, m0Base represents the radio processor time base value 214, and diffM0 represents the first time differential value 212:

[0032] Table 1

[0033] As discussed in greater detail below, the radio processor device 204 according to some aspects may determine the radio processor time base value 214 as a time value preceding the start of CSL communications, and may append the first time differential value 212 to the first CSL packet 210 prior to transmitting the first CSL packet 210 to the application processor device 202.

[0034] The application processor device 202 next calculates a second time differential value (captioned as “TIME DIFF” in Figure 2) 218 between the application processor time base value 208 and a reception time 220 of the first CSL packet 210 by the application processor device 202. This is illustrated by the exemplary equation shown in Table 2 below, where m4Timestamp represents the reception time 220, m4Base represents the application processor time base value 208, and diffM4 represents the second time differential value 218:

[0035] Table 2

[0036] The application processor device 202 further calculates a delay value 222 as a difference between the second time differential value 218 and the first time differential value 212. This is illustrated by the exemplary equation shown in Table 3 below, where diffM4 represents the second time differential value 218, diffM0 represents the first time differential value 212, and delay represents the delay value 222:

[0037] Table 3

[0038] The application processor device 202 also calculates a reception timestamp value 224 as a difference between the reception time 220 of the first CSL packet 210 by the application processor device 202 and the delay value 222. This is illustrated by the exemplary equation shown in Table 4 below, where m4Timestamp represents the reception time 220, delay represents the delay value 222, and rxTimestamp represents the reception timestamp value 224:

[0039] Table 4

[0040] The application processor device 202 further calculates a CSL channel sampling window value 226 as a sum of the reception timestamp value 224 and a CSL phase value such as the CSL phase value 124 of Figure 1. This is illustrated by the exemplary equation shown in Table 5 below, where rxTimestamp represents the reception timestamp value 224, cslphase represents the CSL phase value 124, and firstTxWindow represents the CSL channel sampling window value 226:

[0041] Table 5

[0042] The application processor device 202 then transmits a second CSL packet 228 at a time indicated by the CSL channel sampling window value 226 to the SSED 206.

[0043] As noted above, some aspects may provide that the radio processor device 204 determines the radio processor time base value 214 as, e.g., a time value preceding the start of CSL communications. Upon receiving the first CSL packet 210 from the SSED  206, the radio processor device 204 calculates the first time differential value 212 between the radio processor time base value 214 and the reception time 216 of the first CSL packet 210 by the radio processor device 204, as described above with respect to Table 1. The radio processor device 204 then appends the first time differential value 212 to the first CSL packet 210, and transmits the first CSL packet 210 comprising the first time differential value 212 to the application processor device 202.

[0044] To transmit further CSL packets to the SSED 206, some aspects may provide that the application processor device 202 calculates a next CSL channel sampling window value 230, which represents a time at which the SSED 206 performs a next channel sampling operation. The next CSL channel sampling window value 230 is calculated as a current time value 232 at the application processor device 202 minus a remainder of the current time value 232 divided by a CSL period value such as the CSL period value 126 of Figure 1, summed with a remainder of the CSL channel sampling window value 226 divided by the CSL period value 126, summed with a product of a count 234 of a next CSL channel sampling window and the CSL period value 126. This is illustrated by the exemplary equation shown in Table 6 below, where radionow represents the current time value 232, cslperiod represents the CSL period value 126, firstTxWindow represents the CSL channel sampling window value 226, n represents the count 234 of the next CSL channel sampling window, and nextTxWindow represents the next CSL channel sampling window value 230:

[0045] Table 6

[0046] Some aspects may provide that the application processor device 202 may determine that synchronization with the SSED 206 has been lost (e.g., by determining that synchronization packets have not been received from the SSED 206 within a specified time interval, as a non-limiting example) . In such aspects, the application processor device 202 may calculate a retransmit time value (captioned as “RETRANSMIT” in Figure 2) 236 as a sum of the reception timestamp value 224 minus a product of a count 238 of a retransmit attempt and a synchronization time increment  (captioned as “SYNC TIME INCR” in Figure 2) 240, summed with the CSL phase value 124. This is illustrated by the exemplary equation shown in Table 7 below, where rxTimestamp represents reception timestamp value 224, n represents the count 238 of the retransmit attempt, sync represents the synchronization time increment 240, cslphase represents the CSL phase value 124, and retransmit represents the retransmit time value 236:

[0047] Table 7

[0048] The synchronization time increment 240 represents a time interval at which retransmission attempts will be periodically made by the application processor device 202, and may have a value of, e.g., 4 milliseconds, as a non-limiting example. The application processor device 202 in such aspects retransmits the second CSL packet 228 at a time indicated by the retransmit time value 236.

[0049] According to some such aspects, the application processor device 202 may also calculate a next CSL channel sampling window value 242 as the current time value 232 at the application processor device 202 minus a remainder of the current time value 232 divided by the CSL period value 126, summed with a remainder of the retransmit time value 236 divided by the CSL period value 126, summed with a product of a count 244 of a next CSL channel sampling window and the CSL period value 126. This is illustrated by the exemplary equation shown in Table 8 below, where radionow represents the current time value 232, cslperiod represents the CSL period value 126, retransmit represents the retransmit time value 236, n represents the count 244 of the next CSL channel sampling window, and nextTxWindow represents the next CSL channel sampling window value 242:

[0050] Table 8

[0051] Figure 3 is a diagram illustrating in greater detail the first time differential value 212 calculated by the radio processor device 204 of Figure 2 and the second time  differential value 218 calculated by the application processor device 202 of Figure 2, according to some aspects. As seen in Figure 3, events occurring at the radio processor device 204 (captioned as “RADIO PROC” in Figure 3) and the application processor device 202 (captioned as “APP PROC” in Figure 3) are shown on corresponding arrows 300 and 302 representing the flow of time. The first time differential value 212 of Figure 2 represents the time interval between the arrows in Figure 3 indicating points in time at which the radio processor device 204 determines the radio processor time base value 214 and the reception time 216. Similarly, the second time differential value 218 of Figure 2 represents the time interval between the arrows in Figure 3 indicating points in time at which the application processor device 202 determines the application processor time base value 208 and the reception time 220.

[0052] To illustrate exemplary operations of the application processor device 202 (and, in some aspects, the radio processor device 204) of Figure 2 for improving CSL stability using calculated CSL packet transmission time delay according to some aspects, Figures 4A-4C provide a flowchart showing exemplary operations 400. Elements of Figures 2 and 3 are referenced in describing Figures 4A-4C for the sake of clarity. It is to be understood that some of the exemplary operations 400 shown in Figures 4A-4C may be performed in an order other than that illustrated herein in some aspects, and / or may be omitted in some aspects.

[0053] In some aspects, the exemplary operations 400 may begin in Figure 4A with a radio processor device (e.g., the radio processor device 204 of Figures 2 and 3) of a processor-based device (such as the processor-based device 200 of Figure 2) determining a radio processor time base value (e.g., the radio processor time base value 214 of Figures 2 and 3) (block 402) . The radio processor device 204 subsequently receives, from an SSED (such as the SSED 206 of Figure 2) , a first CSL packet (e.g., the CSL packet 210 of Figure 2) (block 404) . The radio processor device 204 calculates a first time differential value (such as the first time differential value 212 of Figures 2 and 3) between the radio processor time base value 214 and a reception time (e.g., the reception time 216 of Figures 2 and 3) of the first CSL packet 210 by the radio processor device 204 (block 406) . The radio processor device 204 appends the first time differential value 212 to the first CSL packet 210 (block 408) . The radio processor device 204 then transmits the first CSL packet 210 comprising the first time differential value 212 to an application  processor device (such as the application processor device 202 of Figures 2 and 3) of the processor-based device 200 (block 410) .

[0054] The application processor device 202 determines an application processor time base value (e.g., the application processor time base value 208 of Figures 2 and 3) (block 412) . The application processor device 202 receives, from the radio processor device 204, the first CSL packet 210 comprising the first time differential value 212 between the radio processor time base value 214 and the reception time 216 of the first CSL packet 210 by the radio processor device 204 (block 414) . The exemplary operations 400 then continue at block 416 of Figure 4B.

[0055] Referring now to Figure 4B, the exemplary operations 400 continue with the application processor device 202 calculating a second time differential value (such as the second time differential value 218 of Figures 2 and 3) between the application processor time base value 208 and a reception time (e.g., the reception time 220 of Figures 2 and 3) of the first CSL packet 210 by the application processor device 202 (block 416) . The application processor device 202 next calculates a delay value (such as the delay value 222 of Figure 2) as a difference between the second time differential value 218 and the first time differential value 212 (block 418) . The application processor device 202 also calculates a reception timestamp value (e.g., the reception timestamp value 224 of Figure 2) as a difference between the reception time 220 of the first CSL packet 210 by the application processor device 202 and the delay value 222 (block 420) . The application processor device 202 further calculates a CSL channel sampling window value (such as the CSL channel sampling window value 226 of Figure 2) as a sum of the reception timestamp value 224 and a CSL phase value (e.g., the CSL phase value 124 of Figures 1 and 2) (block 422) . The application processor device 202 then transmits a second CSL packet (such as the CSL packet 228 of Figure 2) at a time indicated by the CSL channel sampling window value 226 directed to the SSED 206 (block 424) . The exemplary operations 400 according to some aspects may continue at block 426 of Figure 4C.

[0056] Turning now to Figure 4C, the exemplary operations 400 in some aspects may continue with the application processor device 202 calculating a next CSL channel sampling window value (e.g., the next CSL channel sampling window value 230 of Figure 2) as a current time value (such as the current time value 232 of Figure 2) at the application processor device 202 minus a remainder of the current time value 232 divided by a CSL  period value (e.g., the CSL period value 126 of Figure 2) , summed with a remainder of the CSL channel sampling window value 226 divided by the CSL period value 126, summed with a product of a count (such as the count 234 of Figure 2) of a next CSL channel sampling window and the CSL period value 126 (block 426) . Some aspects may provide that the application processor device 202 may determine that synchronization with the SSED 206 has been lost (block 428) . The application processor device 202 thus calculates a retransmit time value (e.g., the retransmit time value 236 of Figure 2) as a sum of the reception timestamp value 224 minus a product of a count (such as the count 238 of Figure 2) of a retransmit attempt and a synchronization time increment (e.g., the synchronization time increment 240 of Figure 2) , summed with the CSL phase value 124 (block 430) . The application processor device 202 in such aspects retransmits the second CSL packet 228 at a time indicated by the retransmit time value 236 (block 432) .

[0057] According to some such aspects, the application processor device 202 may also calculate a next CSL channel sampling window value 242 as the current time value 232 at the application processor device 202 minus a remainder of the current time value 232 divided by the CSL period value 126, summed with a remainder of the retransmit time value 236 divided by the CSL period value 126, summed with a product of a count (e.g., the count 244 of Figure 2) of a next CSL channel sampling window and the CSL period value 126 (block 434) .

[0058] The processor device according to aspects disclosed herein and discussed with reference to Figures 2 and 3 may be provided in or integrated into any processor-based device. Examples, without limitation, include a set top box, an entertainment unit, a navigation device, a communications device, a fixed location data unit, a mobile location data unit, a global positioning system (GPS) device, a mobile phone, a cellular phone, a smart phone, a session initiation protocol (SIP) phone, a tablet, a phablet, a server, a computer, a portable computer, a mobile computing device, laptop computer, a wearable computing device (e.g., a smart watch, a health or fitness tracker, eyewear, etc. ) , a desktop computer, a personal digital assistant (PDA) , a monitor, a computer monitor, a television, a tuner, a radio, a satellite radio, a music player, a digital music player, a portable music player, a digital video player, a video player, a digital video disc (DVD) player, a portable digital video player, an automobile, a vehicle component, an avionics system, a drone, and a multicopter.

[0059] In this regard, Figure 5 illustrates an example of a processor-based device 500 which corresponds in functionality to the processor-based device 200 of Figure 2. In this example, the processor-based device 500 includes a processor device 502 that comprises one or more processor cores 504 coupled to a cache memory 506. The processor device 502 is also coupled to a system bus 508 that can intercouple devices included in the processor-based device 500. As is well known, the processor device 502 communicates with these other devices by exchanging address, control, and data information over the system bus 508. For example, the processor device 502 can communicate bus transaction requests to a memory controller 510. Although not illustrated in Figure 5, multiple system buses 508 could be provided, wherein each system bus 508 constitutes a different fabric.

[0060] Other devices may be connected to the system bus 508. As illustrated in Figure 5, these devices can include a memory system 512, one or more input devices 514, one or more output devices 516, one or more network interface devices 518, and one or more display controllers 520, as examples. The input device (s) 514 can include any type of input device, including, but not limited to, input keys, switches, voice processors, etc. The output device (s) 516 can include any type of output device, including, but not limited to, audio, video, other visual indicators, etc. The network interface device (s) 518 can be any devices configured to allow exchange of data to and from a network 522. The network 522 can be any type of network, including, but not limited to, a wired or wireless network, a private or public network, a local area network (LAN) , a wireless local area network (WLAN) , a wide area network (WAN) , a BLUETOOTHTM network, and the Internet. The network interface device (s) 518 can be configured to support any type of communications protocol desired. The memory system 512 can include the memory controller 510 coupled to one or more memory arrays 524.

[0061] The processor device 502 may also be configured to access the display controller (s) 520 over the system bus 508 to control information sent to one or more displays 526. The display controller (s) 520 sends information to the display (s) 526 to be displayed via one or more video processors 528, which process the information to be displayed into a format suitable for the display (s) 526. The display (s) 526 can include any type of display, including, but not limited to, a cathode ray tube (CRT) , a liquid crystal display (LCD) , a plasma display, a light emitting diode (LED) display, etc.

[0062] The processor-based device 500 in Figure 5 may include a set of instructions (captioned as “INST” in Figure 5) 530 that may be executed by the processor device 502 for any application desired according to the instructions. The instructions 530 may be stored in the memory system 512, the processor device 502, and / or the cache memory 506, each of which may comprise an example of a non-transitory computer-readable medium. The instructions 530 may also reside, completely or at least partially, within the memory system 512 and / or within the processor device 502 during their execution. The instructions 530 may further be transmitted or received over the network 522, such that the network 522 may comprise an example of a computer-readable medium.

[0063] While the computer-readable medium is described in an exemplary embodiment herein to be a single medium, the term “computer-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and / or associated caches and servers) that store the set of instructions 530. The term “computer-readable medium” shall also be taken to include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by a processing device and that cause the processing device to perform any one or more of the methodologies of the embodiments disclosed herein. The term “computer-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical medium, and magnetic medium.

[0064] Those of skill in the art will further appreciate that the various illustrative logical blocks, modules, circuits, and algorithms described in connection with the aspects disclosed herein may be implemented as electronic hardware, instructions stored in memory or in another computer readable medium and executed by a processor or other processing device, or combinations of both. The master devices and slave devices described herein may be employed in any circuit, hardware component, integrated circuit (IC) , or IC chip, as examples. Memory disclosed herein may be any type and size of memory and may be configured to store any type of information desired. To clearly illustrate this interchangeability, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. How such functionality is implemented depends upon the particular application, design choices, and / or design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but  such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.

[0065] The various illustrative logical blocks, modules, and circuits described in connection with the aspects disclosed herein may be implemented or performed with a processor, a Digital Signal Processor (DSP) , an Application Specific Integrated Circuit (ASIC) , a Field Programmable Gate Array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices (e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration) .

[0066] The aspects disclosed herein may be embodied in hardware and in instructions that are stored in hardware, and may reside, for example, in Random Access Memory (RAM) , flash memory, Read Only Memory (ROM) , Electrically Programmable ROM (EPROM) , Electrically Erasable Programmable ROM (EEPROM) , registers, a hard disk, a removable disk, a CD-ROM, or any other form of computer readable medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a remote station. In the alternative, the processor and the storage medium may reside as discrete components in a remote station, base station, or server.

[0067] It is also noted that the operational steps described in any of the exemplary aspects herein are described to provide examples and discussion. The operations described may be performed in numerous different sequences other than the illustrated sequences. Furthermore, operations described in a single operational step may actually be performed in a number of different steps. Additionally, one or more operational steps discussed in the exemplary aspects may be combined. It is to be understood that the operational steps illustrated in the flowchart diagrams may be subject to numerous different modifications as will be readily apparent to one of skill in the art. Those of skill  in the art will also understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.

[0068] The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations. Thus, the disclosure is not intended to be limited to the examples and designs described herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

[0069] Implementation examples are described in the following numbered clauses:

[0070] 1. A processor-based device, comprising:

[0071] an application processor device; and

[0072] a radio processor device communicatively coupled to the application processor device;

[0073] the application processor device configured to:

[0074] determine an application processor time base value;

[0075] receive, from the radio processor device, a first Coordinated Sampled Listening (CSL) packet comprising a first time differential value between a radio processor time base value and a reception time of the first CSL packet by the radio processor device;

[0076] calculate a second time differential value between the application processor time base value and a reception time of the first CSL packet by the application processor device;

[0077] calculate a delay value as a difference between the second time differential value and the first time differential value;

[0078] calculate a reception timestamp value as a difference between the reception time of the first CSL packet by the application processor device and the delay value;

[0079] calculate a CSL channel sampling window value as a sum of the reception timestamp value and a CSL phase value; and

[0080] transmit a second CSL packet directed to a Synchronized Sleepy End Device (SSED) at a time indicated by the CSL channel sampling window value.

[0081] 2. The processor-based device of clause 1, wherein the radio processor device is configured to:

[0082] determine the radio processor time base value;

[0083] receive, from the SSED, the first CSL packet;

[0084] calculate the first time differential value between the radio processor time base value and the reception time of the first CSL packet by the radio processor device;

[0085] append the first time differential value to the first CSL packet; and

[0086] transmit the first CSL packet comprising the first time differential value to the application processor device.

[0087] 3. The processor-based device of any one of clauses 1-2, wherein the application processor device is further configured to calculate a next CSL channel sampling window value as a current time value at the application processor device minus a remainder of the current time value divided by a CSL period value, summed with a remainder of the CSL channel sampling window value divided by the CSL period value, summed with a product of a count of a next CSL channel sampling window and the CSL period value.

[0088] 4. The processor-based device of any one of clauses 1-3, wherein the application processor device is further configured to:

[0089] determine that synchronization with the SSED has been lost;

[0090] calculate a retransmit time value as a sum of the reception timestamp value minus a product of a count of a retransmit attempt and a synchronization time increment, summed with the CSL phase value; and

[0091] retransmit the second CSL packet at a time indicated by the retransmit time value.

[0092] 5. The processor-based device of clause 4, wherein the application processor device is further configured to calculate a next CSL channel sampling window value as a current time value at the application processor device minus a remainder of the current time value divided by a CSL period value, summed with a remainder of the retransmit time value divided by the CSL period value, summed with a product of a count of a next CSL channel sampling window and the CSL period value.

[0093] 6. The processor-based device of any one of clauses 1-5, wherein the application processor device comprises an ARM Cortex-M4 processor core.

[0094] 7. The processor-based device of any one of clauses 1-6, wherein the radio processor device comprises an ARM Cortex-M0 processor core.

[0095] 8. The processor-based device of any one of clauses 1-7, integrated into a device selected from the group consisting of: a set top box; an entertainment unit; a navigation device; a communications device; a fixed location data unit; a mobile location data unit; a global positioning system (GPS) device; a mobile phone; a cellular phone; a smart phone; a session initiation protocol (SIP) phone; a tablet; a phablet; a server; a computer; a portable computer; a mobile computing device; a wearable computing device; a desktop computer; a personal digital assistant (PDA) ; a monitor; a computer monitor; a television; a tuner; a radio; a satellite radio; a music player; a digital music player; a portable music player; a digital video player; a video player; a digital video disc (DVD) player; a portable digital video player; an automobile; a vehicle component; avionics systems; a drone; and a multicopter.

[0096] 9. A method for improving Coordinated Sampled Listening (CSL) stability using calculated CSL packet transmission time delay in processor-based devices, comprising:

[0097] determining, by an application processor device of a processor-based device, an application processor time base value;

[0098] receiving, by the application processor device from a radio processor device of the processor-based device, a first CSL packet comprising a first time  differential value between a radio processor time base value and a reception time of the first CSL packet by the radio processor device;

[0099] calculating, by the application processor device, a second time differential value between the application processor time base value and a reception time of the first CSL packet by the application processor device;

[0100] calculating, by the application processor device, a delay value as a difference between the second time differential value and the first time differential value;

[0101] calculating, by the application processor device, a reception timestamp value as a difference between the reception time of the first CSL packet by the application processor device and the delay value;

[0102] calculating, by the application processor device, a CSL channel sampling window value as a sum of the reception timestamp value and a CSL phase value; and

[0103] transmitting, by the application processor device, a second CSL packet directed to a Synchronized Sleepy End Device (SSED) at a time indicated by the CSL channel sampling window value.

[0104] 10. The method of clause 9, further comprising:

[0105] determining, by the radio processor device, the radio processor time base value;

[0106] receiving, by the radio processor device from the SSED, the first CSL packet;

[0107] calculating, by the radio processor device, the first time differential value between the radio processor time base value and the reception time of the first CSL packet by the radio processor device;

[0108] appending, by the radio processor device, the first time differential value to the first CSL packet; and

[0109] transmitting, by the radio processor device, the first CSL packet comprising the first time differential value to the application processor device.

[0110] 11. The method of any one of clauses 9-10, further comprising calculating, by the application processor device, a next CSL channel sampling window value as a current time value at the application processor device minus a remainder of the current time value  divided by a CSL period value, summed with a remainder of the CSL channel sampling window value divided by the CSL period value, summed with a product of a count of a next CSL channel sampling window and the CSL period value.

[0111] 12. The method of any one of clauses 9-11, further comprising:

[0112] determining, by the application processor device, that synchronization with the SSED has been lost;

[0113] calculating, by the application processor device, a retransmit time value as a sum of the reception timestamp value minus a product of a count of a retransmit attempt and a synchronization time increment, summed with the CSL phase value; and

[0114] retransmitting, by the application processor device, the second CSL packet at a time indicated by the retransmit time value.

[0115] 13. The method of clause 12, further comprising calculating, by the application processor device, a next CSL channel sampling window value as a current time value at the application processor device minus a remainder of the current time value divided by a CSL period value, summed with a remainder of the retransmit time value divided by the CSL period value, summed with a product of a count of a next CSL channel sampling window and the CSL period value.

[0116] 14. The method of any one of clauses 9-13, wherein the application processor device comprises an ARM Cortex-M4 processor core.

[0117] 15. The method of any one of clauses 9-14, wherein the radio processor device comprises an ARM Cortex-M0 processor core.

[0118] 16. A non-transitory computer-readable medium, having stored thereon computer-executable instructions that, when executed, cause an application processor device of a processor-based device to:

[0119] determine an application processor time base value;

[0120] receive, from a radio processor device of the processor-based device, a first Coordinated Sampled Listening (CSL) packet comprising a first time differential value between a radio processor time base value and a reception time of the first CSL packet by the radio processor device;

[0121] calculate a second time differential value between the application processor time base value and a reception time of the first CSL packet by the application processor device;

[0122] calculate a delay value as a difference between the second time differential value and the first time differential value;

[0123] calculate a reception timestamp value as a difference between the reception time of the first CSL packet by the application processor device and the delay value;

[0124] calculate a CSL channel sampling window value as a sum of the reception timestamp value and a CSL phase value; and

[0125] transmit a second CSL packet directed to a Synchronized Sleepy End Device (SSED) at a time indicated by the CSL channel sampling window value.

[0126] 17. The non-transitory computer-readable medium of clause 16, further stored thereon computer-executable instructions that, when executed, cause the radio processor device to:

[0127] determine the radio processor time base value;

[0128] receive, from the SSED, the first CSL packet;

[0129] calculate the first time differential value between the radio processor time base value and the reception time of the first CSL packet by the radio processor device;

[0130] append the first time differential value to the first CSL packet; and

[0131] transmit the first CSL packet comprising the first time differential value to the application processor device.

[0132] 18. The non-transitory computer-readable medium of any one of clauses 16-17, wherein the computer-executable instructions further cause the application processor device to calculate a next CSL channel sampling window value as a current time value at  the application processor device minus a remainder of the current time value divided by a CSL period value, summed with a remainder of the CSL channel sampling window value divided by the CSL period value, summed with a product of a count of a next CSL channel sampling window and the CSL period value.

[0133] 19. The non-transitory computer-readable medium of any one of clauses 16-18, wherein the computer-executable instructions further cause the application processor device to:

[0134] determine that synchronization with the SSED has been lost;

[0135] calculate a retransmit time value as a sum of the reception timestamp value minus a product of a count of a retransmit attempt and a synchronization time increment, summed with the CSL phase value; and

[0136] retransmit the second CSL packet at a time indicated by the retransmit time value.

[0137] 20. The non-transitory computer-readable medium of clause 19, wherein the computer-executable instructions further cause the application processor device to calculate a next CSL channel sampling window value as a current time value at the application processor device minus a remainder of the current time value divided by a CSL period value, summed with a remainder of the retransmit time value divided by the CSL period value, summed with a product of a count of a next CSL channel sampling window and the CSL period value.

Claims

1.A processor-based device, comprising:an application processor device; anda radio processor device communicatively coupled to the application processor device;the application processor device configured to:determine an application processor time base value;receive, from the radio processor device, a first Coordinated Sampled Listening (CSL) packet comprising a first time differential value between a radio processor time base value and a reception time of the first CSL packet by the radio processor device;calculate a second time differential value between the application processor time base value and a reception time of the first CSL packet by the application processor device;calculate a delay value as a difference between the second time differential value and the first time differential value;calculate a reception timestamp value as a difference between the reception time of the first CSL packet by the application processor device and the delay value;calculate a CSL channel sampling window value as a sum of the reception timestamp value and a CSL phase value; andtransmit a second CSL packet directed to a Synchronized Sleepy End Device (SSED) at a time indicated by the CSL channel sampling window value.2.The processor-based device of claim 1, wherein the radio processor device is configured to:determine the radio processor time base value;receive, from the SSED, the first CSL packet;calculate the first time differential value between the radio processor time base value and the reception time of the first CSL packet by the radio processor device;append the first time differential value to the first CSL packet; andtransmit the first CSL packet comprising the first time differential value to the application processor device.3.The processor-based device of claim 1, wherein the application processor device is further configured to calculate a next CSL channel sampling window value as a current time value at the application processor device minus a remainder of the current time value divided by a CSL period value, summed with a remainder of the CSL channel sampling window value divided by the CSL period value, summed with a product of a count of a next CSL channel sampling window and the CSL period value.4.The processor-based device of claim 1, wherein the application processor device is further configured to:determine that synchronization with the SSED has been lost;calculate a retransmit time value as a sum of the reception timestamp value minus a product of a count of a retransmit attempt and a synchronization time increment, summed with the CSL phase value; andretransmit the second CSL packet at a time indicated by the retransmit time value.5.The processor-based device of claim 4, wherein the application processor device is further configured to calculate a next CSL channel sampling window value as a current time value at the application processor device minus a remainder of the current time value divided by a CSL period value, summed with a remainder of the retransmit time value divided by the CSL period value, summed with a product of a count of a next CSL channel sampling window and the CSL period value.6.The processor-based device of claim 1, wherein the application processor device comprises an ARM Cortex-M4 processor core.7.The processor-based device of claim 1, wherein the radio processor device comprises an ARM Cortex-M0 processor core.8.The processor-based device of claim 1, integrated into a device selected from the group consisting of: a set top box; an entertainment unit; a navigation device; a communications device; a fixed location data unit; a mobile location data unit; a global positioning system (GPS) device; a mobile phone; a cellular phone; a smart phone; a session initiation protocol (SIP) phone; a tablet; a phablet; a server; a computer; a portable computer; a mobile computing device; a wearable computing device; a desktop computer; a personal digital assistant (PDA) ; a monitor; a computer monitor; a television; a tuner; a radio; a satellite radio; a music player; a digital music player; a portable music player; a digital video player; a video player; a digital video disc (DVD) player; a portable digital video player; an automobile; a vehicle component; avionics systems; a drone; and a multicopter.9.A method for improving Coordinated Sampled Listening (CSL) stability using calculated CSL packet transmission time delay in processor-based devices, comprising:determining, by an application processor device of a processor-based device, an application processor time base value;receiving, by the application processor device from a radio processor device of the processor-based device, a first CSL packet comprising a first time differential value between a radio processor time base value and a reception time of the first CSL packet by the radio processor device;calculating, by the application processor device, a second time differential value between the application processor time base value and a reception time of the first CSL packet by the application processor device;calculating, by the application processor device, a delay value as a difference between the second time differential value and the first time differential value;calculating, by the application processor device, a reception timestamp value as a difference between the reception time of the first CSL packet by the application processor device and the delay value;calculating, by the application processor device, a CSL channel sampling window value as a sum of the reception timestamp value and a CSL phase value; andtransmitting, by the application processor device, a second CSL packet directed to a Synchronized Sleepy End Device (SSED) at a time indicated by the CSL channel sampling window value.10.The method of claim 9, further comprising:determining, by the radio processor device, the radio processor time base value;receiving, by the radio processor device from the SSED, the first CSL packet;calculating, by the radio processor device, the first time differential value between the radio processor time base value and the reception time of the first CSL packet by the radio processor device;appending, by the radio processor device, the first time differential value to the first CSL packet; andtransmitting, by the radio processor device, the first CSL packet comprising the first time differential value to the application processor device.11.The method of claim 9, further comprising calculating, by the application processor device, a next CSL channel sampling window value as a current time value at the application processor device minus a remainder of the current time value divided by a CSL period value, summed with a remainder of the CSL channel sampling window value divided by the CSL period value, summed with a product of a count of a next CSL channel sampling window and the CSL period value.12.The method of claim 9, further comprising:determining, by the application processor device, that synchronization with the SSED has been lost;calculating, by the application processor device, a retransmit time value as a sum of the reception timestamp value minus a product of a count of a retransmit attempt and a synchronization time increment, summed with the CSL phase value; andretransmitting, by the application processor device, the second CSL packet at a time indicated by the retransmit time value.13.The method of claim 12, further comprising calculating, by the application processor device, a next CSL channel sampling window value as a current time value at the application processor device minus a remainder of the current time value divided by a CSL period value, summed with a remainder of the retransmit time value divided by the CSL period value, summed with a product of a count of a next CSL channel sampling window and the CSL period value.14.The method of claim 9, wherein the application processor device comprises an ARM Cortex-M4 processor core.15.The method of claim 9, wherein the radio processor device comprises an ARM Cortex-M0 processor core.16.A non-transitory computer-readable medium, having stored thereon computer-executable instructions that, when executed, cause an application processor device of a processor-based device to:determine an application processor time base value;receive, from a radio processor device of the processor-based device, a first Coordinated Sampled Listening (CSL) packet comprising a first time differential value between a radio processor time base value and a reception time of the first CSL packet by the radio processor device;calculate a second time differential value between the application processor time base value and a reception time of the first CSL packet by the application processor device;calculate a delay value as a difference between the second time differential value and the first time differential value;calculate a reception timestamp value as a difference between the reception time of the first CSL packet by the application processor device and the delay value;calculate a CSL channel sampling window value as a sum of the reception timestamp value and a CSL phase value; andtransmit a second CSL packet directed to a Synchronized Sleepy End Device (SSED) at a time indicated by the CSL channel sampling window value.17.The non-transitory computer-readable medium of claim 16, further stored thereon computer-executable instructions that, when executed, cause the radio processor device to:determine the radio processor time base value;receive, from the SSED, the first CSL packet;calculate the first time differential value between the radio processor time base value and the reception time of the first CSL packet by the radio processor device;append the first time differential value to the first CSL packet; andtransmit the first CSL packet comprising the first time differential value to the application processor device.18.The non-transitory computer-readable medium of claim 16, wherein the computer-executable instructions further cause the application processor device to calculate a next CSL channel sampling window value as a current time value at the application processor device minus a remainder of the current time value divided by a CSL period value, summed with a remainder of the CSL channel sampling window value divided by the CSL period value, summed with a product of a count of a next CSL channel sampling window and the CSL period value.19.The non-transitory computer-readable medium of claim 16, wherein the computer-executable instructions further cause the application processor device to:determine that synchronization with the SSED has been lost;calculate a retransmit time value as a sum of the reception timestamp value minus a product of a count of a retransmit attempt and a synchronization time increment, summed with the CSL phase value; andretransmit the second CSL packet at a time indicated by the retransmit time value.20.The non-transitory computer-readable medium of claim 19, wherein the computer-executable instructions further cause the application processor device to calculate a next CSL channel sampling window value as a current time value at the application processor device minus a remainder of the current time value divided by a CSL period value, summed with a remainder of the retransmit time value divided by the CSL period value, summed with a product of a count of a next CSL channel sampling window and the CSL period value.

Citation Information

Patent Citations

  • Communication device and communication method

    US20160191229A1