Time Synchronization in Wireless Networks
By using timestamp communication and connection slot assignments, wireless networks achieve accurate and reliable clock synchronization, enabling synchronized operations across devices despite transmission uncertainties.
Patent Information
- Application Number
- JP2022061797
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-07-30
- Filing Date
- 2022-04-01
- Publication Date
- 2025-11-06
- Estimated Expiration
- 2042-04-01
AI Technical Summary
Existing wireless networks face challenges in accurately synchronizing clocks across devices due to uncertainties in data transmission times, leading to inefficiencies and potential clock drift, especially in environments with interference and noise.
A central device communicates timestamps and connection interval durations to peripheral devices, allowing them to calculate clock discrepancies and synchronize operations using individually assigned connection slots, with optional broadcast messaging and eavesdropping for reliability.
Enables precise and efficient synchronization of wireless devices, facilitating simultaneous operations across networks with reduced packet loss and improved accuracy under varying conditions.
Smart Images

Figure 0007765338000001 
Figure 0007765338000002 
Figure 0007765338000003
Abstract
Description
[Technical Field]
[0001] Related Applications This application claims the benefit of U.S. Provisional Application No. 63 / 170,339, filed April 2, 2021, the entire contents of which are incorporated herein by reference.
[0002] Technical Field The present disclosure relates to wireless networks, and more particularly to time synchronization of various electronic devices that communicate wirelessly, for example, via Bluetooth or Bluetooth Low Energy (BLE) connections. [Background technology]
[0003] For example, personal area networks such as Bluetooth (BT) use the 2.4 GHz radio frequency band to provide wireless connectivity for a variety of applications, including personal, industrial, scientific, and medical applications. BT networks use a packet-based protocol and have an architecture that includes a central device (CD) and a peripheral device (PD). A CD can communicate with multiple PDs. Typically, data is transferred between the CD and a specific PD during the time allocated for a particular PD-CD communication link. At the designated time, the PD can receive messages and data from the CD and then communicate the data to the CD. Additionally, a CD can occasionally use a broadcast mode in which the same data is communicated to multiple PDs simultaneously. Bluetooth Low Energy (BLE) networks have a similar communication range to BT networks but consume significantly less power and cost. BLE devices often remain in sleep mode and transition to active mode when data communication is about to occur. The BLE protocol also supports mesh networks where data can flow through multiple paths and does not rely on a rigid hierarchy of devices, so the same device can often act as both a CD and a PD, depending on the specific network conditions and topology. [Brief explanation of the drawings]
[0004] [Figure 1] FIG. 1 illustrates exemplary clock synchronization in a wireless network using timestamps generated by a central device and known durations of connection time intervals, according to some embodiments. [Figure 2] FIG. 1 illustrates an example process for performing synchronization operations in a wireless network using scheduled connection events, according to some embodiments. [Figure 3] FIG. 1 illustrates an example process for performing synchronization operations in a wireless network using broadcast advertisements, according to some embodiments. [Figure 4] FIG. 1 illustrates an example process for performing synchronization operations in a wireless network using scheduled connection events with additional protection against packet loss, according to some embodiments. [Figure 5] FIG. 1 illustrates an exemplary process for performing synchronization operations in a wireless network while restricting airspace usage by utilizing eavesdropping, according to some embodiments. [Figure 6A] FIG. 1 illustrates an exemplary triggering scheme for initiating synchronization events in a wireless network, according to some embodiments, that uses a hardware interrupt. [Figure 6B] FIG. 1 illustrates an exemplary triggering scheme for initiating a synchronization event in a wireless network, according to some embodiments, that uses a firmware or software interrupt. [Figure 7] 1 is a flowchart of an exemplary method performed by a central device of a wireless network to facilitate synchronized operation by multiple peripheral devices of the wireless network, according to some embodiments. [Figure 8]1 is a flowchart of an exemplary method performed by a central device of a wireless network to facilitate synchronized operation by multiple peripheral devices with added protection against data loss, according to some embodiments. [Figure 9] 1 is a flowchart of an exemplary method performed by a peripheral device of a wireless network to perform a synchronization operation, according to some embodiments. [Figure 10] 1 is a flowchart of an exemplary method for a peripheral device to schedule the execution of a synchronization operation, according to some embodiments. [Figure 11] 1 is a diagram of a wireless network system in which time synchronization and synchronization operations may be performed, according to some embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0005] In many applications, including personal, industrial, scientific, and medical, time synchronization of separate devices can provide significant benefits. Under time-varying conditions, it can be advantageous to perform measurements or initiate several other actions simultaneously by multiple devices. For example, the performance of an electric vehicle can depend on the uniformity of charging and discharging of multiple high-voltage battery cells. Accurate, synchronous (concurrent) measurement of each cell's state can provide data that can be used to optimize battery utilization during vehicle acceleration, driving, braking, and various other maneuvers, as well as during charging. Similarly, medical devices may be configured to collect data simultaneously from multiple locations on a patient's body. Industrial testing (e.g., crash testing of automobiles or any other safety-critical equipment) may depend on the synchronization of measurements by multiple sensors. Such synchronization is typically achieved through wired connections, which can be used to ensure that all signals are generated, transmitted, and / or received simultaneously. However, wired connections can be cumbersome to install and maintain, especially when multiple small devices are integrated and used as part of a larger system. In some cases, wired connections to numerous peripheral devices may be inconvenient, impractical, or even unsafe. Therefore, it may be advantageous to deploy wireless sensors / devices that are easier to install, maintain, and replace than wired devices.
[0006] Because wireless devices are largely independent of one another, they may have clocks that operate at slightly different speeds compared to other clocks. For example, different clocks may have slightly different drift, jitter, etc. Therefore, it would be beneficial to synchronize all or at least some of the wireless devices. For example, devices operating using BT, BLE, or some other wireless network technology may be synchronized by appropriately arranged signals exchanged between a central device (CD) and various peripheral devices (PDs).
[0007] The existing method of time synchronization is that the PD synchronizes the first recording time t aThe CD receives the request, generates a real-time clock (RTC) timestamp TS, and sends the TS back to the PD. The PD then sends the response at a second time t b and records this time point. Furthermore, the master timestamp TS is set to the midpoint (t a +t b ) / 2. The PD then calculates the estimated discrepancy Δ=(t a +t b ) / 2-TS. This estimated discrepancy can then be used for future synchronization operations. For example, if the PD is instructed by the CD to perform a certain action at time T' (according to the CD's clock), the PD can add this discrepancy at a specific time to determine that this action should be performed at time t' = T' + Δ (according to the PD's clock).
[0008] An implicit assumption of this method is that the time interval between sending a request for a timestamp and the RTC timestamp being generated by the CD is equal to the time interval between the RTC timestamp being generated by the CD and the RTC timestamp being received by the PD. Such an assumption may not be necessarily accurate, as the exact times for data transmission and processing are subject to various uncertainties (e.g., due to signal blockages, network interference and noise, etc.). For example, sometimes transmission from the CD to the PD may take longer than the reverse (or vice versa). On the other hand, requesting multiple RTC timestamps over a period of time and calculating the average clock discrepancy may take a significant amount of time, which may be too long (and may suffer from additional clock drift over longer periods of time).
[0009] Aspects and embodiments of the present disclosure address these and other limitations of existing technologies by enabling systems and methods for efficient and accurate clock synchronization in wireless networks (e.g., for performing synchronization operations). In one exemplary embodiment, a CD and a PD may communicate once per connection interval T0, where the PD may send a timestamp request to the CD at the start of a connection event, and the CD may record the CD's timestamp TS immediately after receiving the request. The CD may then wait until the next connection event to communicate the recorded timestamp to the PD. As described in more detail below, the PD may infer a clock discrepancy Δ based on the timestamp instant TS and the duration of the connection interval T0. Once the discrepancy Δ is determined by the various PDs, the CD may use the determined discrepancy to send instructions by time for a synchronization operation, and the multiple PDs may be able to perform this operation synchronously. In another exemplary embodiment, the CD may not communicate a timestamp to the PD. Instead, during the initial establishment of wireless connections between the CD and the various PDs, the CD may assign each PD a connection slot (within the connection interval T0) that is individually offset from the start of the connection interval. The individual offsets may be known to an application (installed on the CD) that schedules the synchronization operation. The application can set a target time for the synchronization operation and communicate the remaining time until the target time to each PD during each PD's assigned connection slot. Using the communicated time, various PDs may be able to begin performing the synchronization operation at the same target time. In some embodiments, the CD can use advertisement broadcasting to simultaneously communicate the target time for the synchronization operation to multiple PDs. Many other embodiments and variations of these embodiments are discussed below. Where convenient, features that serve similar roles in different figures are labeled similarly (with different first digits) (e.g., CD110, CD210, and CD310 in Figures 1, 2, and 3).
[0010] FIG. 1 illustrates an exemplary clock synchronization 100 in a wireless network using timestamps generated by a central device and known durations of connection time intervals, according to some embodiments. FIG. 1 generally illustrates the operation of a central device (CD) 110 and a peripheral device (PD) 120. The CD 110 and PD 120 may be part of a Bluetooth (BT) network, a Bluetooth Low Energy (BLE) network, or any other wireless network. The CD 110 and PD 120 may have a pre-established wireless network connection. While FIG. 1 illustrates a single PD 120 for simplicity and brevity, the CD 110 may simultaneously support connections with multiple PDs. The various devices illustrated in FIG. 1 may be communicatively coupled (e.g., via a wired connection, a bus, or wirelessly) to one or more associated devices. In some embodiments, the PD 120 (and in some cases the CD 110) may monitor the status of, or facilitate the operation of, the associated devices. For example, PD 120 (and / or various other PDs not shown in FIG. 1 ) may be associated with one or more cells of a battery (e.g., an automotive battery of an electric vehicle) and may perform (or facilitate) measurements of the state of the battery cells. This measurement may be performed periodically or at times determined by a host controller communicatively coupled to PD 110. PD 120 (and / or various other PDs) may be incorporated into a battery pack. The battery may be used to power an electric motor that propels the electric vehicle. When the battery is powering the motor, the battery cells may be in a constant state of discharge (and / or charging, for example, during braking), which may occur differently in different cells. To perform meaningful and accurate measurements of the state of the various cells, the various PDs of the wireless network may synchronously perform measurements (or cause measurements to be performed by associated sensors coupled to the cells).
[0011] In some embodiments, synchronization operations by the PD are enabled by allowing various devices in a wireless network to determine the difference between their internal clocks and at least one other reference device in the network, e.g., the CD 110. The determined clock difference may be used to perform synchronization operations simultaneously on multiple devices. In some embodiments, clock synchronization 100 may be facilitated by specifications of the wireless protocol of the CD-PD connection. For example, connection events 130-1 and 130-2 may be separated by a connection interval T0, as may be set by the CD 110 during initial establishment of the connection between the CD 110 and the PD 120. In the following description of FIG. 1, readings of the CD 110's internal clock (e.g., RTC) are indicated by an uppercase T with various subscripts (if used), and readings of the PD 120's internal clock are indicated by a lowercase t with various subscripts, as well.
[0012] In some embodiments, clock synchronization 100 may be achieved as follows: CD 110 may send message 112 to PD 120 at the start of connection event 130-1. This message 112 may include one or more data packets and frames, such as management frames, control frames, etc. In some embodiments, message 112 may be an empty message that includes a header but no data frames. In response to receiving message 112, PD 120 may generate a request 122 for a timestamp TS from the RTC of CD 110 and transmit the generated request to CD 110. The provision of message 112 to PD 120, the generation of request 122 by PD 120, and the transmission of request 122 to CD 110 may be performed over a time period substantially shorter than the duration of connection interval T0, although some delay may be associated with such processes. For example, it may take time t1 for message 112 to be transmitted from CD 110 to PD 120 and processed by PD 120 (e.g., by the PHY layer and link layer of PD 120). Furthermore, it may take time t2 for PD 120 to generate request 122, convert this request 122 into one or more frames, generate a data packet based on the frame, and send the data packet to CD 110. Additionally, it may take time t3 for request 122 to be received and processed by CD 110.
[0013] Upon receiving request 122 from PD 120, CD 110 generates timestamp 140. The generated timestamp 140 may include the current value TS of CD 110's RTC at the time timestamp 140 was generated. When the next connection event 130-2 occurs, CD 110 may send the generated timestamp 140 to PD 120 in message 114. Again (as with the previous message 112), it may take a time t1 before message 114 is received by PD 120.
[0014] To perform clock synchronization, PD 120 can record its own time t at the arrival time of message 114 (accompanied by timestamp 140) and can perform a comparison between the value T of timestamp 140 received from CD 110 and the current value of PD 120's clock (e.g., RTC), taking into account the connection interval. In some embodiments, this comparison may be performed as follows: In response to receiving message 114, a processing unit of PD 120 can estimate the current value T of CD's clock at the time PD 120 generated timestamp t. In some embodiments, PD 120's processing unit can estimate the current value T as the sum of timestamp 140 value T and the duration of the connection interval; T = T + T . In some embodiments, PD 120's processing unit can further correct for the time it takes for request 122 to be generated by PD 120 to be sent and processed by CD 110, and can estimate the time as, for example, T = T + T - t - t .
[0015] It should be understood that the above formulas are intended as examples, and that various other clock synchronization schemes based on connection interval duration, for example, using different specific formulas while considering different (or additional) corrections, are possible and still fall within the scope of the present disclosure.
[0016] Once the current clock value T of CD 110 has been estimated, the processing unit of PD 120 can then calculate a clock difference (discrepancy, offset, etc.) Δ=tT and use this clock difference to perform various synchronization operations as may be directed by CD 110 or scheduled by software or firmware running on PD 120. Such instructions may be received as part of message 112, message 114, or any other (preceding or subsequent) message communicated by CD 110. Upon receiving an instruction to perform a synchronization operation at time T′, PD 120 can add the determined clock difference Δ to identify the precise time t′=T′+Δ to perform (or start) the operation.
[0017] 1 may be reversed, i.e., CD 110 may send a request for a timestamp to PD 120 (e.g., as part of message 112), and upon receiving the timestamp from PD 120, CD 110 may perform a calculation (similar to that described above) to determine the clock difference between the two devices. Then, when CD 110 generates an instruction for PD 120 to perform an operation (e.g., in synchronization with other PDs in the wireless network), CD 110 may include in the instruction a time for the operation corrected to account for this difference Δ. In some embodiments, there may be a logical unit on PD 120 for detecting whether a data packet has been dropped, e.g., for detecting whether a time longer than connection interval T0 (or twice connection interval 2T0, etc.) has elapsed between PD 110 generating request 112 and receiving timestamp 140, triggering an additional request to CD 110 for a new timestamp. In some embodiments, for additional precision, the process may be repeated multiple times, and a statistical metric may be used to correct for the clock difference, for example, by calculating the mean or mode of the calculated difference Δ.
[0018] FIG. 2 illustrates an exemplary process 200 for performing synchronization operations in a wireless network using scheduled connection events, according to some embodiments. As illustrated, clock synchronization may be performed in a system including a CD 210 wirelessly connected to multiple PDs 220-X (e.g., PD 220-A, PD 220-B, etc.), where the CD 210 uses the difference in scheduled communication times with the various PDs 220-X to facilitate synchronization operations at a particular point in time 250. In FIG. 2, the CD 210 schedules a time for communication with each of the various PDs 220-X. While only two peripheral devices, PD 220-A and PD 220-B, are shown in FIG. 2 for simplicity, various embodiments need not limit the number of peripheral devices. In some embodiments, the wireless network may be a connected mesh network, whereby any device can be designated as an operating CD, and that role can change from device to device over time. While FIG. 2 provides some information useful in understanding the embodiments, it will be understood that other devices, events, and processes not explicitly shown may be part of the wireless network and their communications, such as other devices associated with (or coupled to) CD210 or PD220-X, or wireless communications by PD220-X back to CD210 during various connection events (e.g., connection events 230-A, 230-B, 231-A, etc.).
[0019] The synchronization operation occurring at time 250 may be a measurement of the state of devices associated with PD220-X and / or CD210. In one embodiment, each PD220-X is associated with a sensor configured to monitor cells in a battery of an electric vehicle, or with a medical device that takes readings from a particular part of a patient's body, or the like. When the synchronization operation time 250 is reached, some or all of the devices (e.g., PD220-X and / or CD210) may perform simultaneous measurements (or any other operation) to obtain accurate data characterizing the state of the system being measured (or to initiate some other operation).
[0020] In some embodiments, the synchronization operation may alternatively be a clock synchronization event, where all PDs 220-X simultaneously record an RTC timestamp t and compare the recorded timestamp with a timestamp T recorded by CD 210 and communicated (e.g., broadcast) to PDs 220-X at the same point in time. The PDs 220-X can then use the recorded timestamp difference Tt in performing future synchronization operations.
[0021] In some embodiments, CD 210 establishes and programs communication with multiple PDs 220-X. CD 210 manages the timing of various connection events 230-X with each PD 220-X for the exchange of data with each PD 220-X per connection interval T0. CD 210 may, for example, wirelessly communicate with PD 220-A and PD 220-B. CD 210 schedules a time point for communication with PD 220-A and a time point for communication with PD 220-B that is delayed by offset time B 232.
[0022] In one non-limiting example, CD 210 sends message 212 to PD 220-A during (e.g., at the start of) connection event 230-A. Message 212 sends a delay time T A234. Message 212 may include corrections for communication times, processing times, etc., such as those captured by t1, as discussed above. More specifically, the delay time T A may be shortened by the expected correction. For example, the delay time T A -t1 may be communicated to PD 220-A. In some embodiments, CD 210 may communicate an intentional delay time T A During the connection event 230-B, the CD 210 communicates a delay time T B 236. Another message 214 containing the message 236 is sent to PD 220-B. The delay time T B 236 may be selected taking into account the time between connection event 230-A and connection event 230-B, for example, taking into account offset time B 232.
[0023] 2, after the synchronization operation point in time 250 has passed (and after the synchronization operation has been performed), CD 210 may again communicate with PD 220-A during one of the subsequent connection events, e.g., connection event 231-A. More specifically, CD 210 may send a new message 216 to PD 220-A, which may include a new delay time for a second synchronization operation (not shown). Additionally, PD 220-A may also send data 218 to CD 210. This data may include measurements made by PD 220-A (or a device associated with PD 220-A) in conjunction with the performed synchronization operation.
[0024] In some embodiments, the delay time T A and T BThe determination of the offset times may be performed by a synchronization application running on the CD 210. This synchronization application may determine the time point 250 of the synchronization operation, identify offset times for the various PDs 220-X, generate the content of messages 212 and 214, collect data generated during or in association with the synchronization operation from the PDs, etc. In some devices and wireless networks (e.g., BT and BLE networks), the synchronization application may not have standard access to offset times that can be managed by lower-level mechanisms (e.g., the link layer) of the CD 210. To address such situations, modifications to the communication standards used by the CD 210 and the PDs 220-X may be made. More specifically, after the link layer of the CD 210 determines the offset times for the various PDs (e.g., during the period when the network connection is established), the link layer may allow the synchronization application to access the configured offsets.
[0025] FIG. 3 illustrates another exemplary process 300 for performing synchronization operations in a wireless network using broadcast advertisements, according to some embodiments. In particular, the CD 310 can broadcast messages 312-X (e.g., 312-1, 312-2, 312-3, etc.) that are received by the PD 320-X. In some embodiments, the messages 312-X can include BT or BLE advertisement packets. The messages 312-X can include data that facilitate future synchronization operations by devices in the wireless network. In some embodiments, to avoid data loss due to radio interference or changing environmental conditions, it may be advantageous for the CD 310 to broadcast multiple messages in preparation for a single synchronization operation, with successive broadcasts being separated by an interval T1 (or, in some embodiments, unequal time intervals T1≠T2). Multiple broadcasts can mitigate issues with packet loss during transmission or as a result of data reception errors by the PD 320-X.
[0026] In one exemplary embodiment, the CD 310 broadcasts a message 312-1 to multiple PDs 320-X (although two PDs are shown in FIG. 3, it will be understood that any number of PDs may be present). The message 312-1 may include information that facilitates synchronization by at least some of the PDs 320-X at a future time (e.g., synchronization operation time 350). After a predetermined time, e.g., interval T1, the CD 310 may broadcast a second message 312-2 that further facilitates synchronization at the future time 350 and may include updated information generated in light of the passage of time interval T1. Similarly, more messages may be broadcast to advertise the synchronization operation time 350, each adjusted to account for the passage of time between the broadcast messages.
[0027] In one embodiment, the CD 310 determines whether the synchronization operation is to occur at a future time T SYNC The CD 310 may determine that the synchronization should be performed at a time 350, such as a delay 334 (e.g., T SYNC After the time interval T1 has elapsed, the CD 310 may broadcast a first advertisement message 312-1 containing an updated delay time 336 (e.g., T SYNC Similarly, after the time interval T2 has elapsed, the CD 310 may broadcast another updated delay time (e.g., T SYNC A third advertisement message 312-3, which may include a target event count (T1, T2, ...), may be broadcast, and so on. In another embodiment, message 312-X may include an event counter and a delay time. Once the target event count is reached, e.g., after a predetermined number of intervals T1, T2, ... have elapsed, PD 320-X may wait for the broadcasted delay time to elapse and then perform the action at the synchronization action point 350.
[0028] In some embodiments, the intervals T1, T2, ... are of the same duration. In such embodiments, the messages 312-X may be periodic advertisements. Additionally, the CD 310 (and / or the PD 320-X) may consider various corrections, such as, for example, a correction for communication delay t1. While FIG. 3 illustrates communication delay t1 as being the same for PD 320-A and PD 320-B, this should not be construed as limiting. Distinct and different corrections may be determined (e.g., empirically) for separate PDs 320-X to account for different locations, environments, processors, capabilities, etc. of the various PDs 320-X. These corrections may take various forms, some of which are described in connection with FIG. 1.
[0029] FIG. 4 illustrates an exemplary process 400 for performing synchronization operations in a wireless network using scheduled connection events with additional protection against packet loss, according to some embodiments. While two PDs 420-A and 420-B are shown in FIG. 4, it will be understood that this number of PDs is not limited. The CD 410 can send messages to the PDs 420-X (e.g., at the start of communication intervals T1, T2, etc.) to schedule times to receive communications from each PD 420-X. It will be understood that in a particular wireless network, such as a mesh network, different devices can act as the CD 410 at different times. The CD 410 can broadcast a message 412 to one or more PDs 420-X (e.g., PD 420-A, PD 420-B, etc.). This message 412 can include an indication of the time of a future synchronization event. In some embodiments, this indication may be a delay time (e.g., delay time 434) or an event counter and delay time. Message 412 may also include information managed by CD410 indicating the time and channel for each PD 420-X to reply to CD410. Depending on the network configuration (e.g., implemented by CD410), all PDs 420-X may be scheduled to transmit data to CD410 in each communication interval, or only some of the PDs 420-X may communicate with CD410 in a given communication interval. The indication of the time for communication from a particular PD 420-X to CD410 may be an offset time from the start of the particular communication interval to the time of communication by the PD 420-x, e.g., offset time A 428 for PD 420-A, offset time B 432 for PD 420-B, etc. As described in connection with the above figures, delays in communication and processing (e.g., t1), as well as other possible delays, may be taken into account in various ways.
[0030] At their scheduled times, the PDs 420-X can communicate messages 414 and 416 to the CD 410. These messages 414 and 416 can include empty packets (e.g., header-only packets), data from recent (e.g., synchronization) measurements taken by devices associated with the PDs 420-X, timestamps, or other information. In some cases, as depicted by the cross on the message 414 from PD 420-A to CD 410 in FIG. 4, one or more data packets transmitted by any of the PDs 420-X may not be received by the CD 410 due to interference, noise, disturbance, or some other cause. If the CD 410 detects that the scheduled message 414 from PD 420-A has not arrived, the CD 410 can broadcast a subsequent message 418, for example, at the start of the next communication interval T2. This message 418 may include similar data as message 412, such as an indication of the time 450 of the synchronization event (delay time 436) and information facilitating the PD 420-X's communication to the CD 410. Message 418 may also include a request to replace a lost data packet, such as a request to have PD 420-A resend a copy of message 414. The contents of message 414 that did not reach CD 410 may then be retransmitted; for example, PD 420-A may send a new message 422, which may include the data lost in message 414, at a communication time scheduled by CD 410. For example, an embodiment such as that shown in FIG. 4 may be used when reliable data transfer from PD 420-X to CD 410 is desired, when the wireless network has a significant amount of noise and / or interference, when some of the PDs 420-X may be low-power devices, and other cases.
[0031] FIG. 5 illustrates an exemplary process 500 for performing synchronization operations in a wireless network while restricting airspace use by utilizing eavesdropping, according to some embodiments. As illustrated generally in FIG. 5, a CD 510 may establish a connection with a PD 520-A (it will be understood that the number of PDs 520-X is not limited to two). During each connection event 530-1, 530-2, etc., the CD 510 may send a message 512, 514, etc., to the PD 520-A that includes an indication of a future time point of the synchronization operation (e.g., synchronization operation time point 550). As detailed above, the indication of the time point may include a delay time (e.g., delay time 532, etc.), a target clock time, an event counter, or any other suitable method of facilitating the synchronization operation. The synchronization operation may include taking a measurement (or instructing an associated device to take a measurement), generating data such as a timestamp, or performing some other action (e.g., actuating a switch, manipulating a physical device, etc.).
[0032] PD 520-B can eavesdrop on message 512 transmitted by CD 510 (e.g., as indicated by dashed arrow 513). This eavesdropping may be facilitated by a previous (e.g., temporary) wireless connection established between CD 510 and PD 520-B, or a previous (or current) wireless connection between PD 520-A and PD 520-B, etc. For example, from a previous connection with CD 510, PD 520-B may possess authentication information (e.g., the name of the wireless network, public / private keys used to encrypt communications, and / or other information). In some embodiments, PD 520-B may not have previously established a connection with CD 510 and / or PD 520-A and is a passive listener of communications occurring between CD 510 and PD 520-A. PD 520-B eavesdropping on message 512 can determine a time point 550 for the synchronization operation based, for example, on the delay time 532 included in message 512. Subsequently, PD 520-B can perform a synchronous operation simultaneously with PD 520-A.
[0033] 5, PD 520-A can send message 522 to CD 510 during connection event 530-2, e.g., to communicate data generated in association with a synchronization operation. Message 522 can include, e.g., measurement data, an RTC timestamp, etc. The next connection event 530-2 can occur after connection interval T0, and CD 510 and PD 520-A can again communicate with PD 520-B, which is still eavesdropping on the communication (e.g., as indicated by dashed arrow 515), e.g., to intercept further instructions regarding future synchronization events, such as may be included in message 514. In some embodiments, PD 520-B can establish an active wireless connection with CD 510 during connection event 530-2 and deliver message 524 to CD 510, including data acquired by PD 520-B in association with the synchronization event.
[0034] In some eavesdropping embodiments, CD510 may change (e.g., periodically or occasionally) the particular PD with which CD510 wirelessly communicates. For example, after a predetermined time, CD510 may disconnect from PD520-A and establish a connection with PD520-B (now with PD520-A eavesdropping). In some eavesdropping embodiments, CD510 may maintain a connection with a first subset of PDs 520-X while a second subset of PDs 520-X eavesdrops on the communications of the first subset. In some eavesdropping embodiments, PD520-B may wirelessly communicate with another PD, e.g., PD520-A, and relay data to CD510 via PD520-A. Various other connection schemes and patterns may be devised that are within the scope of this disclosure.
[0035] 6A and 6B illustrate an exemplary triggering scheme for initiating a synchronization event in a wireless network, according to some embodiments. The components (and their operations) illustrated in FIGS. 6A and 6B may be implemented as part of a peripheral device in the wireless network. FIG. 6A illustrates a triggering scheme 600 using a hardware interrupt. After a message indicating the time of a synchronization operation is received by the PD from the CD, an application 630 instantiated on the PD can determine a future time for the synchronization operation to be performed by the PD (e.g., as described in connection with FIGS. 1-5). The application 630 can configure a programmable comparator (e.g., a hardware comparator) 620 at the time of the synchronization operation. The comparator 620 may monitor a clock value output by the PD's clock 610, which may be synchronized with the CD's clock (or other clocks in the network), e.g., using one of the methods described above. When comparator 620 detects that the current clock value output by clock 610 coincides with (or exceeds) the time point of a synchronous operation (as programmed by application 630), comparator 620 outputs an interrupt signal to the PD's central processing unit (CPU) 650. CPU 650 stops the current task being processed therein and, using the PD and / or one or more devices associated with the PD, accesses a memory device (e.g., a register) having instructions that cause CPU 650 to perform a synchronous operation 640 (e.g., perform a measurement, initiate one or more operations, etc.).
[0036] FIG. 6B illustrates a trigger scheme 602 that uses a firmware or software interrupt. After a message indicating the time for a synchronization operation is received by the PD, an application 630 instantiated on the PD can determine the time for the synchronization operation and can configure a programmable firmware (FW) interrupt 662 in the BT firmware 660. When the BT firmware 660 determines that the time for the synchronization operation has arrived, the BT firmware 660 outputs an interrupt signal to the CPU 650, which performs the synchronization operation 640 as described above in connection with FIG. 6A. In some embodiments, instead of programming the FW interrupt 662, the application 630 can program a software (SW) interrupt 632 (shown in a dashed box). At the time of the synchronization operation, the SW interrupt 632 outputs an instruction to the BT firmware 660, which communicates an interrupt signal to the CPU 650.
[0037] 7-10 are flowcharts illustrating exemplary methods 700-1000 for performing synchronization operations by various devices connected via a wireless network. In some embodiments, messages are communicated between at least some of the devices in the network to synchronize the internal clocks of each device. In some embodiments, the CD sends messages that facilitate simultaneous execution of operations by multiple PDs. In some cases, the operation may be to perform a measurement or may utilize some additional device associated with the PD, such as a device that communicates with the PD (via a wired, wireless, optical, etc. connection) but not directly with the CD. In some embodiments, some or all PDs synchronously record a timestamp and can use this recorded timestamp to synchronize their internal clocks and perform subsequent synchronization operations. In some embodiments, there may be protection in any of the methods 700-1000 against data loss or other communication errors.
[0038] 7-10 are not intended to limit the methods described therein to any particular combination, permutation, or assignment of actors, i.e., whether the PD or CD actually performs a particular action. Rather, they are intended to illustrate several embodiments of the present disclosure, and one skilled in the art will recognize that some actions may be rearranged for a particular application, some actions need not always be performed, some actions may be omitted, etc.
[0039] FIG. 7 is a flowchart of an exemplary method 700 performed by a central device of a wireless network to facilitate synchronized operation by multiple peripheral devices of the wireless network, according to some embodiments. Method 700 may be used to synchronize the internal clocks of one or more PDs with the internal clock of a CD. Method 700 may also be used to facilitate synchronized operation by multiple devices associated with each of the PDs. In block 710, a CD establishes wireless connections with the multiple PDs. The established connections may use any suitable wireless communication protocol to support the wireless network. In some embodiments, the wireless network may be a Bluetooth (BT) network or a Bluetooth Low Energy (BLE) network. Some or all PDs of the network may be communicatively coupled to at least one associated device, e.g., a device configured to take measurements or perform an action. For example, an associated device may be configured to determine the condition or status of several other devices, which may be located in physically separate locations.
[0040] At block 720, the CD optionally receives a time synchronization request from at least one of the PDs (as indicated by the dashed outline of the block). At block 730, the CD transmits one or more messages to the PD. In those embodiments in which the CD receives a time synchronization request (at block 720), the message transmitted at block 730 may be in response to receiving the request. The transmitted message may include a timestamp associated with a reference time measured by the CD's internal clock. This reference time may be associated with the CD's receipt of the time synchronization request from each PD (block 720). For example, the reference time may be the actual time of receiving the synchronization request, which may be compensated for by various delay times t1, t2, t3, as further described in connection with FIG. 1.
[0041] The message sent by the CD in block 730 can facilitate the execution of the synchronization operation. The message can include an indication of the time of the synchronization operation. The indication can be a delay time from the time of the message to the time of the operation. The indication can include, for example, an event counter and a delay to be implemented after a target event counter is reached. Some or each of the PDs can receive an indication of a personalized time point. For example, the first message sent for the first PD can include an indication of the first time point of the synchronization operation (e.g., the delay time T in FIG. 2). A 234). The indication of the first time point may be determined relative to a predetermined first communication time for the first PD (e.g., the start of connection interval T0 as shown in FIG. 2). Similarly, the second message sent for the second PD may include an indication of a second time point for the synchronization operation (e.g., the start of delay time T0 in FIG. 2). B The indication of the second time point may be determined relative to a predetermined second communication time (e.g., offset time B232) for the second PD. More specifically, the delay time T B236 may be defined as the difference between the connection interval T0 and the offset time B232 (optionally, a correction, e.g., t1, is also taken into account). A synchronization operation may be an interaction between the PD and one or more associated devices, such as instructing a meter to take a measurement.
[0042] In block 740, the CD receives data transmitted by some or all of the PDs. The transmitted data may be generated in association with a synchronization operation performed by each PD or by a device associated with each PD. For example, the transmitted data may include results of measurements performed by the PD or by a device associated with the PD. The transmitted data may also include a timestamp recorded by the PD's CPU or other data related to the synchronization operation.
[0043] FIG. 8 is a flowchart of an exemplary method 800 performed by a central device of a wireless network to facilitate synchronization operations by multiple peripheral devices with additional protection against data loss, according to some embodiments. Method 800 of FIG. 8 (or a similar method) may be used in conjunction with the embodiments described above. In block 810, the CD transmits a message to one or more PDs to facilitate the execution of a synchronization operation. This message may be transmitted during a pre-scheduled connection event, such as a BLE connection event. The CD may broadcast a message to be received by multiple PDs, transmit a targeted communication to each individual PD, or perform a combination thereof. If the CD is broadcasting a message to all PDs, such a message may be an advertisement message or another type of message that includes an advertisement frame. The message may be a periodic BLE advertisement or may include a periodic BLE advertisement. If the transmitted message is an advertisement message, an indication of the time of the synchronization event may be common to all PDs. The facilitating of the synchronization event may take the form of clock synchronization, relaying a delay time (with or without an event counter) to a specific time point of the synchronization operation, or any other suitable form. If the indication of time is a delayed time, a series of messages may refer to the same synchronization action with a second (e.g., third) indication of time adjusted (e.g., reduced) by the lapse of time between the messages.
[0044] Some or all of the PDs may then perform a synchronization operation, for example, by performing measurements, by initiating one or more actions, by causing associated devices to perform measurements or take one or more actions, or by performing any number of other suitable synchronization operations. During the synchronization operation, data associated with the synchronization operation may be generated. For example, the state of each cell of the battery may be synchronously probed by the PD or a device associated with the PD. Some or all of the PDs may communicate a message to the CD containing data associated with the synchronization operation. In block 820, the CD may determine from the first PD that data generated in connection with the synchronization operation was not received. In block 830, in response to the data not being received, the CD may communicate a request for replacement data from the first PD. In block 840, the CD may receive the replacement data generated by the first PD in response to the received request.
[0045] FIG. 9 is a flowchart of an exemplary method 900 performed by a peripheral device of a wireless network to perform a synchronization operation, according to some embodiments. At block 910, a wireless connection is established between a PD (referred to herein as a first PD) and a CD. The established connection may be over any suitable wireless communication network. In some embodiments, the wireless communication network may be a BT network or a BLE network. In some embodiments, the first PD may have a bidirectional connection with the CD, e.g., a connection that allows the first PD to receive data and transmit data to the CD. In some embodiments, the first PD may have a connection with the CD that allows it to only receive (e.g., accept but not transmit) data from the CD intended for a second (e.g., third) PD of the wireless network. More specifically, the first PD may be capable of eavesdropping on the bidirectional connection established between the second (e.g., third) PD and the CD. In other embodiments, there may not be a communication connection formed between the first (e.g., second) PD and the CD, so that the CD may instead broadcast a message (e.g., a BT advertisement message) intended to be received by multiple PDs. Each or some of the PDs may be communicatively coupled to one or more associated devices.
[0046] In some embodiments, the first PD may send a time synchronization request to the CD at block 920. In response to receiving this time synchronization request, the CD may generate and send one or more messages that may include a timestamp of a reference time, measured by the CD's internal clock, associated with the time at which the CD received the time synchronization request. In some embodiments, the time at which the CD received the request may be adjusted by the time it took the CD to process the request and create the timestamp, as well as other possible delays.
[0047] In block 930, the first PD receives from the CD one or more messages generated and transmitted by the CD in response to receiving the time synchronization request. In block 940, the first PD determines a time point for a synchronization operation in consideration of the received messages. More specifically, the synchronization operation may cause one or more devices associated with the first CD to perform some function (e.g., make a measurement or perform some other operation), record a timestamp for subsequent communication to the CD (or to another PD), etc. In embodiments in which the CD records a timestamp (e.g., in response to a request from the first PD), the time point for the synchronization operation may be determined in consideration of the timestamp TS recorded by the CD and a connection interval (e.g., T0) associated with the period of data exchange between the CD and the first PD, as described in more detail in connection with FIG. 1 . In block 950, a synchronization operation may be performed by the first PD. This synchronization operation may be performed simultaneously with various other PDs in the network performing similar (or individualized) operations. In some embodiments, the CD may also perform similar (or different) operations simultaneously. For example, the CD may similarly perform measurements of the state of one or more cells of the battery. A synchronization operation may include, for example, interaction of the first (e.g., second) PD with one or more associated devices, such as a measurement device (e.g., a sensor), an actuator, a processing unit, or any other suitable device.
[0048] In some embodiments, the first (e.g., second) PD (and optionally the CD) may generate data in connection with the synchronization operation at block 960. At block 970, the first (e.g., second) PD may transmit data generated in connection with the synchronization operation to the CD, such as data describing measurements of the state of a device associated with the first (e.g., second) PD.
[0049] The CD may not receive data from some or all of the PDs due to, for example, communication errors, interference, etc. In some embodiments, the CD may send a request for replacement data for the lost data to the PDs. This request for replacement data may be received by the first (e.g., second) PD in block 980. Upon receiving the request, the PD may send another data packet (or multiple data packets) including replacement data for the lost data in block 990, e.g., at the PD's next scheduled time for communicating with the CD.
[0050] FIG. 10 is a flowchart of an exemplary method 1000 for a peripheral device to schedule the execution of a synchronization operation, according to some embodiments. At block 1010, the PD receives one or more messages. At block 1020, considering the one or more received messages, the PD determines a future time for the synchronization operation, e.g., as described above in connection with FIGS. 1-5. The received message may be of any appropriate type that provides an indication of the synchronization operation. At block 1030, the PD schedules the synchronization operation by setting an interrupt that initiates the synchronization operation. This interrupt may be set to a predetermined time prior to the time of the synchronization operation, taking into account delays such as those discussed above in connection with FIG. 6. The length of these delays may be empirically determined (e.g., previously measured or estimated) using any appropriate method. The interrupt may be any one or more of a programmable software interrupt, a firmware interrupt, or a hardware interrupt. In some embodiments, the hardware interrupt is caused by a dedicated hardware block comparator that detects a clock value associated with the synchronization operation and triggers the operation when the clock value is detected. At block 1040, the synchronization operation triggered by the interrupt is executed.
[0051] 11 is a diagram of a wireless network system 1100 in which time synchronization and synchronization operations may be performed, according to some embodiments. A CD 1110 is shown that can support wireless connections and data exchange with multiple PDs. While two PDs 1120-A and 1120-B are shown for simplicity, the wireless network system 1100 may include any number of PDs. As discussed in more detail below, several components and modules of the PD 1120-A are shown. While the internal structure of the CD 1110 and PD 1120-B is not shown, it will be understood that some or all of the components of the PD 1120-A may be present within the CD 1110, PD 1120-B, and other devices of the wireless network system 1100.
[0052] CD 1110 can establish wireless connections 1104 and 1106 with PDs 1120-A and 1120-B, respectively, as indicated schematically by the arrows. Wireless connections 1104 and 1106 may be BT connections, BLE connections, or any other suitable connections. Some or all of the PDs may be associated with one or more devices; for example, PD 1120-A may be associated with (and communicatively coupled to) one or more devices 1122-A, and PD 1120-B may be associated with device B 1122-B, as indicated by the respective solid lines in FIG. 11 . In some embodiments, one or more PDs, e.g., PD 1120-A and / or PD 1120-B, can send time synchronization requests to CD 1110. Similarly, CD 1110 can communicate one or more messages to PD 1120-A and / or PD 1120-B. The messages sent by CD 1110 may be in response to receiving time synchronization requests from one or more PDs. This message may be sent to each PD during a separate connection event, or may be broadcast to all PDs (or a subset thereof) in the wireless network system 1100. In some embodiments, the CD 1110 may establish a wireless connection 1106 with the PD 1120-B but not establish a wireless connection 1104 with the PD 1120-A. In such a case, the PD 1120-A may be eavesdropping on the wireless connection 1106. The message may include a timestamp associated with a reference time measured by the clock of the CD 1110. This reference time may be a time associated with the CD 1110 receiving a time synchronization request from one or more PDs 1120-A and / or 1120-B. The message from the CD 1110 to the PD may include an indication of a time point of a future synchronization operation. This indication of time may be common to some or all PDs in the wireless network system 1100, or may be generated for an individual PD (or group of PDs), for example, taking into account a schedule for communication between the CD 1110 and the various PDs in the wireless network system 1100.
[0053] The PD 1120-A (and similarly, the PD 1120-B or any other PD of the wireless network system 1100) may be any device that supports network connectivity and functionality (e.g., receiving, transmitting, and relaying data), such as a desktop computer, laptop computer, tablet, phone, smart TV, sensor, lighting device, electric battery, generator, appliance, controller (e.g., air conditioning, heating, hot water controller), lock, security system component, location beacon, or any other type of network device. The PD 1120-A may support a synchronization application 1130, which may be a module (e.g., software, firmware, hardware component, or any combination thereof) for performing time synchronization and facilitating synchronization operations by the PD 1120-A. In some embodiments, synchronization operations by the PD 1120-A are performed simultaneously with operations by other devices (e.g., by other PDs and / or CDs of the wireless network system 1100). In some embodiments, synchronization operations by the PD 1120-A may not be performed simultaneously with operations performed by other devices, but may be performed according to a predetermined pattern. For example, PD 1120-A can perform one operation at a first predetermined time, PD 1120-B can perform another (or similar) operation at a second predetermined time (which may be earlier or later than the first predetermined time), etc. A synchronization application 1130 on PD 1120-A can operate in conjunction with (e.g., receive instructions from and provide data to) similar applications instantiated on CD 1110. The synchronization application 1130 can be an industrial application, a vehicle application, a safety application, a measurement control application, a technical control and monitoring application, a smart home control application, a navigation application, a robotics application, etc.The synchronization application 1130 can generate time synchronization requests to CD1110, receive and process indications of the time of the synchronization operation from CD1110, cause associated device 1122-A to perform one or more operations in conjunction with the synchronization operation, collect data from associated device 1122-A, process and communicate the collected data (including exchange data) to CD11110, and so on.
[0054] The PD 1120-A (as well as other PDs and CDs) may be capable of wireless connectivity in a single radio band (e.g., the 2.4 GHz band, the 5 GHz band, the 60 GHz band, etc.) or multiple bands (e.g., both the 2.4 GHz band and the 5 GHz band). The PD 1120-A may use (or be connected to) one or more antennas 1140 for receiving and transmitting radio waves. In some embodiments, the antenna 1140 may be or include a single multiple-input multiple-output (MIMO) antenna. Signals received by the antenna 1140 may be processed by a radio component 1142, which may include filters (e.g., bandpass filters), low-noise radio frequency amplifiers, down-conversion mixers, intermediate frequency amplifiers, analog-to-digital converters, inverse Fourier transform modules, deviation modules, interleavers, error correction modules, scramblers, and other (analog and / or digital) circuitry that may be used to process modulated signals received by the antenna 1140. The radio component 1142 can provide the received (and digitized) signal to a physical layer component (PHY) 1144. The PHY 1144 can convert the digitized signal into a frame that can be provided to a link layer 1146. The link layer 1146 can have multiple states, such as, for example, advertising, scanning, starting, connecting, and standby. The link layer 1146 can convert the frame into a data packet. During transmission, data processing can occur in the reverse direction, with the link layer 1146 converting the data packet into a frame, which is converted by the PHY 1144 into a digital signal provided to the radio component 1142. The radio component 1142 can convert the digital signal into a radio signal, which can be transmitted using the antenna 1140. In some embodiments, the radio component 1142, the PHY 1144, and the link layer 1146 can be implemented as part of a radio controller, for example, implemented as a single integrated circuit.
[0055] The PD 1120-A (or other PD and CD devices) may include one or more CPUs 1150. In some embodiments, the CPU 1150 may include one or more finite state machines (FSMs), field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc. The PD 1120-A may have a single processor that performs various operations related to synchronization operations along with other processes that may be running on the PD 1120-A. In some embodiments, the PD 1120-A may have a dedicated processor for synchronization operations that is separate from other processes and applications running on the PD 1120-A. The PD 1120-A may further include a memory device 1160, which may be (or may include) non-volatile, e.g., read-only (ROM) memory, as well as volatile, e.g., random access (RAM) memory. The memory device 1160 of the PD 1120-A may also store code and support data for the synchronization application 1130.
[0056] PD 1120-A may further include a clock 1148 and a power management unit (PMU) 1170, which may manage clock / reset and power resources. PD 1120-A may further include an input / output (I / O) controller 1190 to enable communication with other external devices and structures, including associated device 1122-A. In some embodiments, I / O controller 1190 may enable a general purpose I / O (GPIO) interface, a USB interface, a PCM digital audio module, and other I / O components.
[0057] It should be understood that the above description is intended to be illustrative, and not restrictive. Many other example embodiments will be apparent to those skilled in the art upon reading and understanding the above description. While the present disclosure describes particular examples, it will be recognized that the disclosed systems and methods are not limited to the examples described herein, but may be practiced with modification within the scope of the appended claims. Accordingly, the specification and drawings should be regarded in an illustrative, rather than a restrictive, sense. The scope of the present disclosure should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.
[0058] The above-described method, hardware, software, firmware, or code embodiments may be implemented via instructions or code stored on a machine-accessible, machine-readable, computer-accessible, or computer-readable medium that is executable by a processing element. "Memory" includes any mechanism that provides (i.e., stores and / or transmits) information in a form readable by a machine, such as a computer or electronic system. For example, "memory" includes random access memory (RAM), e.g., static RAM (SRAM) or dynamic RAM (DRAM), ROM, magnetic or optical recording media, flash memory devices, electrical recording devices; optical recording devices, acoustic recording devices, and any type of tangible, machine-readable medium suitable for storing or transmitting electronic instructions or information in a form readable by a machine (e.g., a computer).
[0059] References throughout this specification to "one embodiment" or "an embodiment" mean that a particular feature, structure, or characteristic described in connection with an embodiment is included in at least one embodiment of the present disclosure. Thus, the appearances of the phrase "in one embodiment" or "an embodiment" in various places throughout this specification do not necessarily all refer to the same embodiment. Furthermore, particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
[0060] In the foregoing specification, a detailed description has been given with reference to certain exemplary embodiments. It will be apparent, however, that various modifications and changes can be made to those embodiments without departing from the broader spirit and scope of the present disclosure, as set forth in the appended claims. Accordingly, the specification and drawings should be regarded in an illustrative rather than a restrictive sense. Furthermore, the use of the foregoing terms "embodiment," "embodiment," and / or "other exemplary language" do not necessarily refer to the same embodiment or the same example, but may refer to different and distinct embodiments, as well as potentially the same embodiment.
[0061] The words "example" or "exemplary" are used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as "example" or "exemplary" is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the words "example" or "exemplary" is intended to present concepts in a concrete form. As used in this application, the term "or" is intended to mean an inclusive "or" rather than an exclusive "or." That is, unless otherwise specified or clear from context, "X includes A or B" is intended to mean any natural inclusive permutation. That is, if X includes A, X includes B, or X includes both A and B, then "X includes A or B" satisfies any of the above cases. Additionally, the articles "a" and "an," as used in this application and the appended claims, should generally be construed to mean "one or more" unless specifically directed to the singular or unless otherwise clear from the context. Furthermore, the use of the terms "one embodiment" or "one embodiment" or "an embodiment" throughout is not intended to refer to the same embodiment or embodiments unless specifically stated otherwise. Also, the terms "first," "second," "third," "fourth," etc., as used herein, are meant as labels distinguishing between different elements and do not necessarily have an ordinal meaning according to their numerical designations.
Claims
1. 1. A method for performing synchronization operations in a wireless network, the method comprising: Establishing a wireless connection between a central device (CD) of the wireless network and a plurality of peripheral devices (PDs) of the wireless network, the wireless network being a Bluetooth (BT) wireless network or a Bluetooth Low Energy (BLE) wireless network, each of the PDs being communicatively coupled to one or more associated devices; sending, by the CD, one or more messages to each of the plurality of PDs to facilitate execution of the synchronization operation, including interaction between each of the plurality of PDs and each of the one or more associated devices; receiving, by the CD, a plurality of data, each of the plurality of data being generated in association with the synchronization operation performed by a respective PD of the plurality of PDs or by a device associated with each PD; Including, the one or more messages include a timestamp associated with a reference time measured by a clock on the CD; Each PD estimates a current value T as the sum of a timestamp value TS and the duration of a connection interval T0; method.
2. the step of transmitting the one or more messages to each of the plurality of PDs is in response to receiving a time synchronization request from each of the PDs, and the reference time is a time associated with the CD receiving the time synchronization request from each of the PDs. The method of claim 1.
3. The one or more messages: a first message for a first PD of the plurality of PDs, the first message including an indication of a first time point of the synchronization operation, the indication of the first time point being determined relative to a predetermined first communication time for the first PD; a second message for a second PD of the plurality of PDs, the second message including an indication of a second time point of the synchronization operation, the indication of the second time point being determined relative to a predetermined second communication time for the second PD; Including, the second communication time is different from the first communication time; The method of claim 1.
4. the one or more messages transmitted to each of the plurality of PDs include an indication of at least a first time point of the synchronization operation, the indication of the first time point being generated by the CD for each of the PDs. The method of claim 1.
5. The step of receiving the plurality of data includes: communicating, by the CD, a request for first data from a first PD of the plurality of PDs in response to not receiving the first data from the first PD; receiving, by the CD, exchange data for the first data from the first PD; Including, The method of claim 4.
6. the one or more messages sent to each of the plurality of PDs include a first advertising message, and the indication of the first time point is common to the plurality of PDs; The method of claim 4.
7. The one or more messages transmitted to each of the plurality of PDs further include a second advertisement message having an indication of a second time point common to the plurality of PDs, the second advertisement message being transmitted in response to a lapse of a predetermined time from transmission of the first advertisement message, and at least one of the first advertisement message or the second advertisement message including a periodic advertisement packet. The method of claim 6.
8. the interaction of each of the plurality of PDs with each of the one or more associated devices includes performing measurements of conditions of at least some of the one or more associated devices. The method of claim 1.
9. The synchronization operation is scheduled by setting an interrupt that initiates the synchronization operation at a predetermined time prior to the start of the synchronization operation, the interrupt comprising: programmable software interrupts, Firmware interrupt, or a hardware interrupt caused by a comparator detecting a clock value associated with said synchronous operation; At least one of The method of claim 1.
10. 1. A method for performing synchronization operations in a wireless network, the method comprising: Establishing a wireless connection between a central device (CD) of the wireless network and a first peripheral device (PD) of a plurality of peripheral devices (PDs) of the wireless network, the wireless network being a Bluetooth (BT) wireless network or a Bluetooth Low Energy (BLE) wireless network, each of the PDs being communicatively coupled to one or more associated devices; receiving, by the first PD, one or more messages from the CD; determining, by the first PD, a time point for the synchronization operation of the plurality of PDs in consideration of the one or more received messages; performing the synchronization operation at a determined time by the first PD or a device associated by the first PD; Including, the one or more messages include a timestamp associated with a reference time measured by a clock on the CD; the time point of the synchronization operation is determined by taking into consideration i) the timestamp and ii) a connection interval associated with a period of data exchange between the CD and the first PD; method.
11. the method further comprising transmitting, by the first PD, a time synchronization request to the CD, wherein the reference time is a time associated with receipt, by the CD, of the time synchronization request; The method of claim 10.
12. the one or more received messages include an indication of a first time point generated by the CD for the first PD of the synchronization operation, the indication of the first time point being defined relative to a predetermined first communication time for the first PD; The method of claim 10.
13. the method further comprising transmitting, by the first PD, to the CD, first data generated in association with the synchronization operation; The method of claim 10.
14. The method comprises: receiving, by the first PD, from the CD, a request for replacement data for the first data, the received request indicating that the CD has not received the first data; transmitting second data by the first PD to the CD, the second data being replacement data for the first data; further comprising:
14. The method of claim 13.
15. the one or more messages are directed by the CD to a second PD of the plurality of PDs, the second PD being different from the first PD; The method of claim 10.
16. the one or more messages are transmitted to each of the plurality of PDs and include a first advertisement message, the first advertisement message including an indication of a first time point of the synchronization operation; The method of claim 10.
17. the one or more messages further include a second advertising message, the second advertising message including an indication of a second time point and transmitted in response to a lapse of a predetermined time from transmission of the first advertising message, and at least one of the first advertising message or the second advertising message including a periodic advertising packet; 17. The method of claim 16.
18. performing the synchronization operation includes measuring a state of the one or more associated devices communicatively coupled to the first PD; The method of claim 10.
19. The synchronization operation is scheduled by setting an interrupt that initiates the synchronization operation at a predetermined time prior to the start of the synchronization operation, the interrupt comprising: programmable software interrupts, Firmware interrupt, or a hardware interrupt triggered by a comparator detecting a clock value associated with said synchronous operation; At least one of The method of claim 10.
20. 1. A system comprising: a plurality of peripheral devices (PDs) in a wireless network, the wireless network being a Bluetooth wireless network or a Bluetooth low energy wireless network; a central device (CD) of said wireless network; Including, The CD is establishing a wireless connection between the CD and each of the plurality of PDs; communicating one or more messages to each of the plurality of PDs, the messages including a timestamp associated with a reference time measured by a clock of the CD; Each PD of the plurality of PDs is determining a time point for synchronization operation for the plurality of PDs using the one or more messages communicated by the CD; performing said synchronization operations including interaction between each PD and one or more associated devices communicatively coupled to said PD; transmitting data generated by each of the PDs or by the one or more associated devices in connection with the synchronization operation; infer the current value T as the sum of the timestamp value TS and the duration of the connection interval T 0 ; system.
21. the CD communicates the one or more messages to each of the plurality of PDs in response to receiving a time synchronization request from each of the PDs, and the reference time is a time associated with the CD's receipt of the time synchronization request from each of the PDs.
21. The system of claim 20.
22. The one or more messages transmitted by the CD include: a first message for a first PD of the plurality of PDs, the first message including an indication of a first time point of the synchronization operation, the indication of the first time point being determined relative to a predetermined first communication time for the first PD; a second message for a second PD of the plurality of PDs, the second message including an indication of a second time point of the synchronization operation, the indication of the second time point being determined relative to a predetermined second communication time for the second PD; Including, the second communication time is different from the first communication time; 21. The system of claim 20.
23. A system, comprising: a plurality of peripheral devices (PDs) in a wireless network, the wireless network being a Bluetooth wireless network or a Bluetooth low energy wireless network; a central device (CD) of said wireless network; Including, The CD is establishing a wireless connection between the CD and each of the plurality of PDs; communicating one or more messages to each of the plurality of PDs; Each PD of the plurality of PDs is receiving one or more messages from the CD; determining a time point for synchronous operation of the plurality of PDs in consideration of the one or more received messages; performing said synchronization action at a determined time; the one or more messages include a timestamp associated with a reference time measured by a clock on the CD; the time point of the synchronization operation is determined by taking into consideration i) the timestamp and ii) a connection interval associated with a period of data exchange between the CD and the first PD; system.
Citation Information
Patent Citations
Wireless access network system, wireless communication method, synchronous server, and node unit
JP2004186877A
Time Synchronization in Wireless Ad Hoc Networks of Medical Devices and Sensors
JP2008522459A
Radio system, radio apparatus, communication program, and communication method
JP2017034654A
Device synchronization
US20150131645A1
Radio base station, radio communication network system, and communication control method
WO2013171817A1