Short-range wireless state synchronization when resuming from standby
By disabling the communication of the short-range wireless module before the first integrated circuit of the wireless computing device enters a low-power state and delaying the communication of the short-range wireless module upon exiting the low-power state, the state mismatch problem is solved, enabling faster and more reliable connection recovery and improving the user experience.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-09-01
- Publication Date
- 2026-03-10
AI Technical Summary
When the wireless computing device recovers from a low-power state, a state mismatch may occur between the first integrated circuit and the short-range wireless module, resulting in connection loss or delayed reconnection, which affects the user experience.
By disabling the short-range wireless module before the first integrated circuit enters a low-power state and delaying its communication with the first integrated circuit via event notification upon exit, the module is ensured to be in a known state upon exit, thus avoiding state mismatch.
It enables wireless computing devices to restore short-range wireless connections more quickly and reliably, reducing the chance of users waiting to re-establish connections and improving user responsiveness.
Smart Images

Figure CN121645443A_ABST
Abstract
Description
Technical Field
[0001] This implementation generally relates to short-range wireless connections in systems capable of entering and exiting low-power states, and more particularly to reconnecting Bluetooth connections after the associated system resumes operation after exiting a low-power state. Background Technology
[0002] Many wireless devices can communicate using various short-range wireless communication protocols. For example, many cellular phones and other mobile computing devices can use the Bluetooth communication protocol to communicate with devices such as speakers, microphones, sensors, headsets, keyboards, mice, etc. Additionally, many mobile computing devices operate on battery power and can operate in reduced power modes to save power. For example, mobile computing devices can enter sleep mode (also known as suspending to RAM (random access memory)), which significantly reduces the power consumption of the mobile computing device while allowing it to resume operation without requiring a re-issue of commands or waiting for the device to fully boot up. Summary of the Invention
[0003] This summary is provided to introduce, in a simplified form, the selection of concepts further described in the detailed description below. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter.
[0004] One innovative aspect of this disclosed subject matter can be implemented in a method for restoring connectivity between a first integrated circuit and a short-range wireless module. An example method is executed by the first integrated circuit and includes: receiving a command to enter a low-power state; receiving a command to exit the low-power state; scheduling an event notification indicating the earliest time for the short-range wireless module to resume communication with the first integrated circuit; and restoring communication between the short-range wireless module and the first integrated circuit in response to exiting the low-power state and in response to the event notification.
[0005] In some aspects, the method further includes disabling the wireless connection provided by the short-range wireless module before entering the low-power state in response to a received command, and then re-enabling the wireless connection provided by the short-range wireless module. In some aspects, the wireless connection provided by the short-range wireless module is based on the Bluetooth communication protocol. In some aspects, re-enabling the wireless connection includes enabling a Bluetooth Low Energy (BLE) scanning mode associated with the short-range wireless module. In some aspects, enabling the BLE scanning mode enables the short-range wireless module to detect requests transmitted by a remote control peripheral device paired with the short-range wireless module. In some aspects, the command to exit the low-power state is associated with the request transmitted by the remote control peripheral device.
[0006] In some aspects, the earliest time is at least partially based on an estimated time for the first integrated circuit to exit the low-power mode and be able to transmit packets to and receive packets from the short-range radio module. In some aspects, the event notification configures the short-range radio module to wait approximately 1.2 seconds before resuming communication with the first integrated circuit.
[0007] In some respects, the event notification is scheduled by a kernel driver associated with the first integrated circuit.
[0008] In some respects, entering the low-power state includes performing a suspend to random access memory (RAM) function at the first integrated circuit.
[0009] In some aspects, the short-range wireless module and the first integrated circuit are coupled via a universal asynchronous receiver-transmitter (UART). In some aspects, scheduling the event notification further includes scheduling a wake-up signal to be transmitted from the first integrated circuit to the short-range wireless module, the wake-up signal indicating the earliest time for the short-range wireless module to resume communication with the first integrated circuit. In some aspects, scheduling the event notification configures the short-range wireless module to ignore one or more UART hardware flow control signals before receiving the wake-up signal.
[0010] Another innovative aspect of this disclosed subject matter can be implemented in a system for restoring connectivity between a first integrated circuit and a short-range wireless module. An example system includes a short-range wireless module and a first integrated circuit, wherein the first integrated circuit is configured to: receive a command to enter a low-power state; receive a command to exit the low-power state; schedule an event notification indicating the earliest time for the short-range wireless module to resume communication with the first integrated circuit; and restore communication between the short-range wireless module and the first integrated circuit in response to exiting the low-power state and in response to the event notification.
[0011] Another innovative aspect of this disclosed subject matter is the ability to store non-transitory computer-readable storage media containing instructions executable by one or more processors of a first integrated circuit. Execution of the instructions causes the first integrated circuit to perform operations including: receiving a command to enter a low-power state; receiving a command to exit the low-power state; scheduling an event notification indicating the earliest time for the short-range wireless module to resume communication with the first integrated circuit; and resuming communication between the short-range wireless module and the first integrated circuit in response to exiting the low-power state and in response to the event notification. Attached Figure Description
[0012] This implementation is illustrated by way of example and is not intended to be limited by the figures in the accompanying drawings.
[0013] Figure 1 A block diagram of an example computing system is shown, within which the example technology can be implemented.
[0014] Figure 2 An example timing diagram is shown, illustrating the timing of a method for restoring the connection between a first integrated circuit and a short-range wireless module according to some implementations.
[0015] Figure 3 A block diagram of an example SoC for a computing system is shown, based on some implementation methods.
[0016] Figure 4 An illustrative flowchart is shown, depicting example operations for restoring the connection between a first integrated circuit and a short-range wireless module according to some implementations. Detailed Implementation
[0017] In the following description, numerous specific details, such as examples of specific components, circuits, and processes, are set forth to provide a thorough understanding of this disclosure. As used herein, the term “coupled” means a direct connection to or connection via one or more intermediate components or circuits. The terms “electronic system” and “electronic device” may be used interchangeably to refer to any system capable of electronically processing information. Furthermore, specific terminology is set forth in the following description, and for purposes of explanation, to provide a thorough understanding of aspects of this disclosure. However, it will be apparent to those skilled in the art that these specific details are not required to practice the exemplary embodiments. In other instances, well-known circuits and devices are shown in block diagram form to avoid obscuring this disclosure. Some portions of the subsequent detailed description are presented in accordance with other notations of procedures, logic blocks, processes, and operations on data bits within computer memory.
[0018] These descriptions and representations are the means by which those skilled in the art of data processing most effectively communicate the substance of their work to others skilled in the art. In this disclosure, procedures, logic blocks, processes, etc., are considered as a self-consistent sequence of steps or instructions that lead to a desired result. These steps are those that require physical manipulation of physical quantities. Typically, although not always, these quantities take the form of electrical or magnetic signals that can be stored, transferred, combined, compared, and otherwise manipulated in a computer system. However, it should be remembered that all terms in these and similar terms are to be associated with appropriate physical quantities and are merely convenient notations applied to those quantities.
[0019] Unless otherwise specifically stated, as will be apparent from the following discussion, throughout this application, the use of terms such as “access,” “receive,” “send,” “use,” “select,” “determine,” “normalize,” “multiply,” “average,” “monitor,” “compare,” “apply,” “update,” “measure,” “derive,” etc., relates to the operation and processes of a computer system or similar electronic computing device that manipulates and transforms data represented as physical (electronic) quantities in the registers and memories of the computer system into other data similarly represented as physical quantities in the computer system’s memory or registers or other such information storage, transmission, or display devices.
[0020] In the accompanying drawings, a single block may be described as performing one or more functions; however, in practice, the one or more functions performed by that block may be performed in a single component or across multiple components, and / or may be performed using hardware, software, or a combination of hardware and software. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps are generally described below according to their functionality. Whether such functionality is implemented as hardware or software depends on the specific application and the design constraints imposed on the overall system. Those skilled in the art may implement the described functionality in different ways for each specific application, but such implementation decisions should not be construed as causing a departure from the scope of this disclosure. Furthermore, example input devices may include components different from those shown, including known components such as processors, memory, etc.
[0021] Unless specifically described as implemented in a particular manner, the techniques described herein can be implemented in hardware, software, firmware, or any combination thereof. Any feature described as a module or component may also be implemented together in an integrated logic device or separately as a discrete but interoperable logic device. If implemented in software, the techniques may be implemented at least in part by a non-transitory processor-readable storage medium comprising instructions that, when executed, perform one or more of the methods described above. The non-transitory processor-readable data storage medium may form part of a computer program product, which may include packaging material.
[0022] Non-transitory processor-readable storage media may include random access memory (RAM) such as synchronous dynamic random access memory (SDRAM), read-only memory (ROM), non-volatile random access memory (NVRAM), electrically erasable programmable read-only memory (EEPROM), flash memory, and other known storage media. Alternatively or additionally, the technology may be implemented at least in part by a processor-readable communication medium that carries or transmits code in the form of instructions or data structures and is accessible, read, and / or executed by a computer or other processor.
[0023] The various illustrative logic blocks, modules, circuits, and instructions described in conjunction with the embodiments disclosed herein can be executed by one or more processors (or processing systems). As used herein, the term "processor" can refer to any general-purpose processor, special-purpose processor, conventional processor, controller, microcontroller, and / or state machine capable of executing scripts or instructions of one or more software programs stored in memory.
[0024] As described above, many wireless computing devices (such as cellular phones, tablet computers, laptop computers, etc.) are capable of communicating using various short-range wireless communication protocols (such as Bluetooth). Such wireless computing devices may include one or more central processing units, associated memory and memory interfaces, input / output devices and interfaces, storage interfaces, etc. For example, such devices and functionality may be implemented in one or more system-on-a-chip (SoC) integrated circuits. Such wireless computing devices may also include one or more modules configured to control communication according to short-range wireless protocols, such as a Bluetooth module for controlling communication according to Bluetooth-related protocols (such as Bluetooth Low Energy (BLE)).
[0025] Since such wireless computing devices are typically mobile devices and battery-powered, power consumption is particularly important, and these devices can be able to enter a sleep mode (suspended in RAM or random access memory) to conserve power. This sleep mode significantly reduces the power consumption of the wireless computing device while allowing it to resume operation without requiring a re-issue of commands or waiting for the device to fully boot up.
[0026] However, a state mismatch may occur when a conventional wireless computing device resumes operation after exiting a reduced power state. More specifically, a state mismatch may occur between the first integrated circuit (such as a System-on-Chips) providing the central processing functionality of the wireless computing device and the second integrated circuit (such as a Bluetooth module) providing short-range wireless functionality. This can lead to lost connections or delayed reconnection. For example, when the short-range wireless protocol is Bluetooth, this state mismatch may arise because the SoC of the wireless computing device is unable to respond promptly to requests from the Bluetooth module upon recovery from a low-power state, resulting in a failed Bluetooth reconnection stream. Users of such wireless computing devices may be affected by this lost connection when a Bluetooth remote control (or another peripheral device) is used to wake the wireless computing device from sleep mode, as the wireless computing device may successfully wake up but then lose connection with the Bluetooth remote control. For the user, this can cause problems due to the Bluetooth remote control being inoperable after exiting sleep mode or due to delayed operation during Bluetooth connection re-establishment. Therefore, it would be desirable to re-establish the connection between the first integrated circuit and the Bluetooth module more quickly and reliably, in order to avoid disconnections and delays for users of peripheral devices paired with the wireless computing device.
[0027] Various aspects generally involve synchronizing the states of the first integrated circuit and the short-range wireless module to enable a faster and more reliable restoration of the short-range wireless connection after the first integrated circuit resumes operation following an exit from a low-power state. For example, when preparing to enter a low-power state (such as a sleep state), the short-range wireless module can be powered down and then powered on to bring it into a known state. The first integrated circuit and the short-range wireless module then enter the low-power state. Upon recovery from the low-power state, a notification is scheduled for the short-range wireless module indicating a time prior to which it should not attempt to communicate with the first integrated circuit. In other words, the event notification instructs the short-range wireless module to wait until the indicated time, which is configured to allow the first integrated circuit to resume operation after exiting the low-power state. This waiting time prevents the short-range wireless module from attempting to communicate with the first integrated circuit without success until the first integrated circuit is ready to send and receive any packets for the short-range wireless module to receive or transmit.
[0028] Specific implementations of the subject matter described in this disclosure can be implemented to achieve one or more of the following potential advantages. Aspects of this disclosure allow wireless computing devices to exit a low-power state while simultaneously and more quickly and reliably restoring short-range wireless connectivity. This allows users of these wireless computing devices to interact with peripheral devices more responsively. For example, users of remote controls, smart light switches, garage door openers, speakers, microphones, or other peripheral devices coupled to a wireless computing device can operate such peripheral devices more responsively compared to conventional technologies. For instance, a user operating a Bluetooth remote control coupled to a wireless computing device (such as a set-top box attached to a television) can operate the remote control more responsively, even when the set-top box has just resumed from sleep mode. This avoids or limits user frustration with conventional devices by reducing the opportunity for users to wait for re-establishment of connections simply because the connection to the wireless computing device has been terminated.
[0029] Figure 1 A block diagram of an example computing system 100 is shown, within which example technologies can be implemented. The computing system 100 includes a system-on-a-chip (SoC) 110 and a short-range wireless module 120 wirelessly coupled to a pairing device 130. The computing system 100 may also include or be coupled to a display 140. In some implementations, the computing system may be a device such as a cellular phone, tablet computer, laptop computer, television set-top box, or another computing device capable of wireless communication using one or more short-range wireless communication protocols, such as Bluetooth. For example, the computing system 100 may operate according to an operating system such as Android, iOS, iPadOS, Windows, or another suitable operating system. Although Figure 1 Display 140 is shown as included in computing system 100, but in some implementations, display 140 may not be included in computing system 100, but may instead be located outside computing system 100 and coupled to computing system via one or more wired or wireless connections. Additionally, although SoC 110 is shown as a single module, in some respects, the functionality of SoC may instead be provided by two or more integrated circuits coupled together to provide the functionality of SoC 110.
[0030] By providing one or more processors, one or more memories provided within or coupled to the SoC 110, one or more memory devices or interfaces to memory devices coupled to the SoC 110, one or more input / output (I / O) interfaces, etc., the SoC 110 provides core functionality to the computing system 100. For example, the SoC may have one or more serial I / O interfaces for exchanging wireless data 104 with the short-range wireless module 120. In some aspects, the SoC may, for example, use a universal asynchronous receiver-transmitter (UART) to asynchronously exchange serial data with the short-range wireless module.
[0031] The short-range wireless module 120 can be wirelessly coupled to one or more paired devices 130. For example, the paired device 130 can be any suitable peripheral device such as a remote control, smart light switch, garage door opener, speaker, microphone, or another peripheral device coupled to the computing system 100. For example, the SoC 110 can exchange data, such as serial data 102 or other data transferred between the SoC 110 and the short-range wireless module 120 via another I / O interface of the SoC 110. The exchanged data may include wireless data 104 transmitted or received by the short-range wireless module 120.
[0032] The SoC may also optionally provide display data 106 to the display 140 via one or more display interfaces of the SoC 110 coupled to the display 140.
[0033] Various components of computing system 100 can operate in reduced power states, such as sleep mode (suspended in RAM), to conserve power. This is particularly important when computing system 100 is battery powered, which is common for mobile devices such as cellular phones, tablets, etc. However, as discussed above, when exiting low-power states, a typical computing system may experience an incorrect or mismatched state between SoC 110 and short-range wireless module 120. For example, this could involve SoC 110 and short-range wireless module 120 having an incorrect or mismatched Bluetooth state when short-range wireless module 120 is configured to communicate with paired device 130 according to the Bluetooth protocol. This could result in a lost connection between computing system 100 and paired device 130, and may require connection re-establishment, causing undesirable delays and a poor user experience for users of computing system 100, as actions performed using paired device 130 may be slow or sluggish after computing system 100 exits sleep mode. For example, when the pairing device 130 is a Bluetooth remote control, commands input using the remote control may be lost or delayed due to the mismatch in state.
[0034] Some conventional technologies might attempt to avoid this state mismatch issue by disabling sleep mode. However, this results in higher power consumption, which is undesirable for devices operating on battery power. Other conventional technologies might support sleep mode, but could add functionality to user-space applications to check the Bluetooth connection status after the system resumes from sleep mode, and potentially restart the Bluetooth service in case of connection loss, such as displaying a pairing interface on display 140. However, this solution is slow and could lead to a worse user experience, as the user must take steps to re-establish the connection between computing system 100 and paired device 130, rather than issuing commands on paired device 130 and then having computing system 100 respond.
[0035] The aspects of this disclosure can avoid these undesirable results of conventional techniques by ensuring that the connection between the computing system 100 and the pairing device 130 is maintained after exiting sleep mode. An example implementation can synchronize the state between the SoC 110 and the short-range wireless module 120 before the SoC enters sleep mode, and then ensure that the SoC 110 is fully capable of exchanging protocol packets with the short-range wireless module 120 before the short-range wireless module 120 attempts to send any such protocol packets to the SoC 110.
[0036] More specifically, an aspect of the example implementation may disable the short-range wireless module 120 before the SoC 110 enters sleep mode and then re-enable it to put it in a known state. For example, a user-space application running on the SoC 110 may turn off the short-range wireless module 120 and then turn it on. In some aspects, re-enabling the short-range wireless module 120 while it is operating according to the Bluetooth protocol may include enabling a Bluetooth Low Energy (BLE) scanning mode associated with the short-range wireless module 120. Such a BLE scanning mode allows the short-range wireless module 120 to detect requests transmitted by one or more pairing devices 130. Thus, putting the short-range wireless module 120 into BLE scanning mode while the SoC 110 is in sleep mode puts the short-range wireless module 120 in a known state.
[0037] Then a command to exit sleep mode is received. For example, sleep mode can be exited in response to a request transmitted by one of the pairing devices 130, and this can be detected by the short-range wireless module 120 operating in BLE scan mode. In some aspects, the kernel driver may be integrated into the recovery stream of SoC 110, such that event notifications are scheduled via the short-range wireless module 120 as part of the recovery stream of SoC 110 exiting sleep mode. The event notification instructs the short-range wireless module 120 to wait a specified time before transmitting any protocol packets to SoC 110. In some aspects, the event notification instructs the short-range wireless module 120 to wait for SoC 110 to send a signal indicating that SoC 110 is capable of receiving protocol packets to the short-range wireless module 120. When the short-range wireless module 120 is a Bluetooth module, such a signal may be the BT_WAKE signal. In some other aspects, the event notification instructs the short-range wireless module 120 to wait an amount of time before transmitting any protocol packets to SoC 110. When the short-range wireless module 120 is a Bluetooth module, the duration can be approximately 1.2 seconds; otherwise, the duration may vary based on the specific short-range wireless protocol associated with the short-range wireless module 120.
[0038] Therefore, the example implementation places the short-range wireless module 120 in a known state before the SoC 110 enters sleep mode, and then, upon exiting sleep mode, instructs the short-range wireless module 120 via an event notification to delay sending any protocol packets to the SoC 110 for a period of time, the time being configured such that the SoC 110 has fully exited sleep mode and is able to send and receive packets from the short-range wireless module 120. In some aspects, the SoC 110 and the short-range wireless module 120 are coupled together via a Universal Asynchronous Receiver-Transmitter (UART). According to such aspects, the event notification may instruct the short-range wireless module 120 to ignore one or more UART hardware flow control messages that would otherwise instruct the short-range wireless module 120 to allow sending protocol packets to the SoC 110. Alternatively, the short-range wireless module 120 is instructed to wait for a BT_WAKE signal to transmit any protocol packets to the SoC 110.
[0039] Figure 2 Example timing diagram 200 illustrates example timing of a method for restoring a connection between a first integrated circuit and a short-range wireless module, according to some implementations. In some aspects, the first integrated circuit may be... Figure 1 The SoC 110 or performs the same as described above for... Figure 1 The SoC 110 describes one or more integrated circuits with similar functions. The short-range wireless module can be... Figure 1An example of a short-range wireless module 120, and more specifically a Bluetooth module. Figure 2 The display status is shown, which may be the status of a display (such as display 140) coupled to the computing system 100. Figure 2 The system status is also displayed, indicating whether the SoC 110 is in sleep mode. In some respects, when the computing system 100 is operating according to the Android operating system, the system status may represent the status of the Linux kernel that forms the basis of the Android operating system. When the SoC 110 is in sleep mode, the system status is displayed as "suspended" instead of "on". Figure 2 It also shows the status of the BT wake-up signal, which indicates when the Bluetooth module can initiate communication with the SoC 110.
[0040] Example timing diagram 200 shows the timing diagram as shown in the figure. Figure 2 The events occurring within several time periods of the "timeline". During the first time period 202, both the SoC 110 and the Bluetooth module are enabled, and the computing system 100 operates normally, allowing the Bluetooth module to facilitate communication between the SoC 110 and the paired device 130. For example, during the first time period 202, the display 140 may remain on, and the system status indicator is "on".
[0041] During the second time period 204, SoC 110 prepares to enter sleep mode. For example, SoC 110 can be configured to enter sleep mode after a specified period of inactivity or in response to a user command. According to an example implementation, SoC 110 can disable and then re-enable the Bluetooth module during the second time period 204. For example, as discussed above, re-enabling the Bluetooth module may include enabling BLE scanning mode. Figure 2 In the diagram, the display is shown to be turned off before the second time period at time 224, as displays are typically turned off to conserve power before the device enters sleep or suspend mode. In some other implementations, the display device may be turned off in response to a user command, such as a user pressing a button on the computing device housing the SoC 110 and the short-range wireless module 120. For example, when the computing device is a cellular phone or tablet, the display may typically be powered off in response to a user pressing a button on the phone or tablet, such as the power button.
[0042] During the third time period 206 and the fourth time period 208, the SoC may enter sleep mode. In some implementations, during the third time period 206, the operating system running on the SoC 110 may execute one or more suspend functions, while during the fourth time period 208, the SoC may execute a suspend-to-RAM function to put the SoC 110 into sleep mode. For example, when the computing system 100 operates according to the Android operating system, during the third time period 206, the Android suspend function may be executed, while during the fourth time period 208, the Linux suspend-to-RAM function may be executed to put the SoC 110 into sleep mode. Once the SoC 110 enters sleep mode, the system state is shown as "suspended" at time 216. Note that this time is shown for simplicity, and the system state may be changed at any suitable time within the third time period 206 and the fourth time period 208.
[0043] During the fifth time period 210, after the SoC 110 has entered sleep mode, an external event is received, causing the SoC 110 to begin exiting sleep mode. For example, the external event may originate outside the computing system 100, such as a request received from a pairing device in pairing device 130. In some other respects, the external event may be received locally on the computing system 100, such as a user request initiated at a keyboard, mouse, touch-sensitive display, or the like directly coupled to the computing system 100. In response to receiving the external event, a recovery stream may be initiated, causing the SoC 110 to exit sleep mode. Figure 2 The indicator shows that at some point during the fifth time period at time 218, the SoC exits sleep mode (indicated by the system status returning to "On"). The display then returns to "On" at time 226.
[0044] As discussed above, in conventional computing systems, short-range wireless modules (such as Bluetooth modules) may attempt to communicate with the SoC 110 before the SoC has completed its recovery flow and before it is able to receive protocol packets (such as Bluetooth packets). For example, in such conventional systems, the Bluetooth module may attempt to communicate with the SoC 110 after receiving one or more UART hardware flow control messages (such as UART Bluetooth Enable Transmit (CTS) messages). In conventional computing systems, the BT wake-up signal may respond to events such as... Figure 2 The time 220 shown is asserted for the reception of such UART hardware control flow messages. As discussed above, attempts to send protocol messages to SoC 110 before SoC 110 has fully resumed after exiting sleep mode may result in lost connectivity and a compromised user experience.
[0045] According to the example implementation, during the recovery flow in the fifth time period 210, an event notification is sent to the Bluetooth module. This event notification instructs the Bluetooth module not to attempt to send any Bluetooth protocol packets to the SoC 110 before the indicated time. In some aspects, this event notification may cause the Bluetooth module to ignore one or more UART hardware control flow messages. In some aspects, this event notification may cause an assertion delay for the BT wake-up signal. Figure 2 The specified time period indicated by delay period 221 can be approximately 1.2 seconds for a Bluetooth module.
[0046] During the sixth time period 212, the operating system of SoC 110 resumes its functionality. For example, when computing system 100 is an Android device, the Linux kernel is woken up during the fifth time period 210, and the Android operating system resumes in the sixth time period 212.
[0047] When the indicated time has elapsed, the BT wake-up signal is asserted (at...). Figure 2 (As shown above, time 222), and the Bluetooth module can transmit protocol packets to the SoC 110. Because the delay ensures that the SoC 110 has fully recovered from sleep mode, no connection is lost, and no state mismatch results, as the Bluetooth module is in a known state before the SoC 110 enters sleep mode. This avoids delays and lost connections that could arise from conventional techniques, as discussed above.
[0048] During the seventh time period 214, the computing system 100 resumes normal operation. For example, the display 140 can be reactivated, and communication with the paired device 130 is restored.
[0049] Figure 3 A block diagram of an example SoC 300 for a computing system is shown, according to some implementations. In some implementations, the SoC 300 may be... Figure 1 An example of SoC 110. In some respects, SoC 300 may be a single system-on-a-chip, while in others, SoC 300 may include multiple integrated circuits performing the functions of SoC 110. The computing system may be Figure 1 An example of a computing system 100.
[0050] The SoC 300 includes a network interface 310, a processing system 320, and a memory 330. The network interface 310 may include one or more interfaces for communicating with remote control devices and networks (such as one or more local area networks, wide area networks, or cellular networks) via wired or wireless connections, and for communicating with one or more local devices (such as pairing device 130) using one or more short-range wireless protocols. More specifically, with respect to this disclosure, the network interface 310 may couple the SoC 300 to one or more short-range wireless modules, such as Bluetooth modules. Figure 1 The short-range wireless module 120.
[0051] The memory 330 may include a non-transitory computer-readable medium (including one or more non-volatile memory elements such as EPROM, EEPROM, flash memory, or hard disk drive, and other examples) capable of storing at least the following software (SW) modules: ●Suspend SW module 332, which executes one or more process flows that put SoC 300 into sleep mode; ● Restore SW module 334, which executes one or more process flows that cause SoC 300 to exit sleep mode; and ● Wireless communication module SW 336 communicates with short-range wireless module 120 to disable or re-enable short-range wireless module 120 or send one or more event notifications to short-range wireless module 120.
[0052] Each software module includes instructions that, when executed by the processing system 320, cause the SoC 300 to perform a corresponding function.
[0053] Processing system 320 may include any suitable one or more processors capable of executing scripts or instructions of one or more software programs stored in SoC 300, such as in memory 330. For example, processing system 320 may execute a suspend SW module 332 to execute one or more process flows that put SoC 300 into sleep mode. Similarly, processing system 320 may execute a resume SW module 334 to execute one or more process flows that exit sleep mode for SoC 300. Further, processing system 320 may execute a wireless communication SW module 336 to communicate with short-range wireless module 120, thereby disabling or re-enabling short-range wireless module 120 or sending one or more event notifications to short-range wireless module 120.
[0054] Figure 4 An illustrative flowchart depicting example operation 400 for restoring the connection between a first integrated circuit and a short-range wireless module, according to some implementations, is shown. In some implementations, example operation 400 may be provided by a SoC (such as...) Figure 1 SoC 110 or Figure 3 (Executed by SoC 300).
[0055] In block 410, SoC 110 may receive a command to enter a low-power state. In block 420, SoC 110 may receive a command to exit a low-power state. In block 430, SoC may schedule an event notification indicating the earliest time for the short-range wireless module to resume communication with the first integrated circuit. In block 440, SoC 110 may resume communication between the short-range wireless module and the first integrated circuit in response to exiting the low-power state and in response to the event notification.
[0056] In some aspects, operation 400 further includes disabling the wireless connection provided by the short-range wireless module before entering a low-power state in response to a received command, and then re-enabling the wireless connection provided by the short-range wireless module. In some aspects, the wireless connection provided by the short-range wireless module is based on the Bluetooth communication protocol. In some aspects, re-enabling the wireless connection includes enabling a Bluetooth Low Energy (BLE) scanning mode associated with the short-range wireless module. In some aspects, enabling the BLE scanning mode enables the short-range wireless module to detect requests transmitted by a remote control peripheral device paired with the short-range wireless module. In some aspects, the command to exit the low-power state in block 420 is associated with a request transmitted by the remote control peripheral device.
[0057] In some aspects, the earliest time is at least in part based on an estimated time for the first integrated circuit to exit low-power mode and be able to transmit packets to and receive packets from the short-range radio module. In some aspects, the event notification configures the short-range radio module to wait approximately 1.2 seconds before resuming communication with the first integrated circuit.
[0058] In some respects, event notifications are scheduled by the kernel driver associated with the first integrated circuit.
[0059] In some respects, entering a low-power state includes performing a suspend function at the first integrated circuit to random access memory (RAM).
[0060] In some aspects, the short-range wireless module and the first integrated circuit are coupled via a universal asynchronous receiver-transmitter (UART). In some aspects, scheduling event notifications in block 430 further includes scheduling a wake-up signal to be transmitted from the first integrated circuit to the short-range wireless module, the wake-up signal indicating the earliest time for the short-range wireless module to resume communication with the first integrated circuit. In some aspects, scheduling event notifications configures the short-range wireless module to ignore one or more UART hardware flow control signals before receiving the wake-up signal.
[0061] Those skilled in the art will recognize that information and signals can be represented using any of a variety of different techniques and skills. For example, data, instructions, commands, information, signals, bits, symbols, and chips, which can be referenced throughout the description above, can be represented by voltage, current, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
[0062] Furthermore, those skilled in the art will recognize that the various illustrative logic blocks, modules, circuits, and algorithmic steps described in conjunction with the aspects disclosed herein can be implemented as electronic hardware, computer software, or a combination of both. To clearly illustrate this interchangeability between hardware and software, various illustrative components, blocks, modules, circuits, and steps have been generally described above in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the specific application and the design constraints imposed on the overall system. Those skilled in the art may implement the described functionality in different ways for each specific application, but such implementation decisions should not be construed as causing a departure from the scope of this disclosure.
[0063] The methods, sequences, or algorithms described in conjunction with the aspects disclosed herein may be implemented directly in hardware, in a software module executed by a processor, or in a combination of both. The software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disks, removable disks, CD-ROMs, or any other form of storage medium known in the art. An exemplary storage medium is coupled to a processor, enabling the processor to read information from and write information to the storage medium. Alternatively, the storage medium may be integrated with the processor.
[0064] In the foregoing description, embodiments have been described with reference to specific examples thereof. However, it will be apparent that various modifications and changes may be made therein without departing from the broader scope of this disclosure as set forth in the appended claims. Accordingly, the description and drawings are to be viewed in an illustrative rather than a limiting sense.
Claims
1. A method for resuming a connection between a first integrated circuit and a short-range wireless module, the method performed by the first integrated circuit and comprising: receiving a command for the first integrated circuit to enter a low-power state; receiving a command to exit the low-power state; scheduling an event notification indicating an earliest time for the short-range wireless module to resume communication with the first integrated circuit; and in response to exiting the low-power state and in response to the event notification, resuming communication between the short-range wireless module and the first integrated circuit.
2. The method of claim 1, further comprising, prior to entering the low-power state in response to the received command, disabling a wireless connection provided by the short-range wireless module, and then re-enabling the wireless connection provided by the short-range wireless module. The wireless connection provided by the short-range wireless module is according to a Bluetooth communication protocol.
3. The method of claim 2, wherein, Re-enabling the wireless connection includes enabling a Bluetooth Low Energy (BLE) scan mode associated with the short-range wireless module.
4. The method of claim 3, wherein, Enabling the BLE scan mode enables the short-range wireless module to detect a request transmitted by a remote peripheral device paired with the short-range wireless module.
5. The method of claim 4, wherein, The command to exit the low-power state is associated with the request transmitted by the remote peripheral device.
6. The method of claim 5, wherein, The earliest time is based at least in part on an estimated time for the first integrated circuit to be able to transmit packets to and receive packets from the short-range wireless module.
7. The method of claim 1, wherein, The event notification configures the short-range wireless module to wait approximately 1.2 seconds before resuming communication with the first integrated circuit.
8. The method of claim 1, wherein, The event notification is scheduled by a kernel driver associated with the first integrated circuit.
9. The method of claim 1, wherein, Entering the low-power state includes performing a suspend-to-RAM function at the first integrated circuit.
10. The method of claim 1, wherein, The short-range wireless module and the first integrated circuit are coupled via a Universal Asynchronous Receiver-Transmitter (UART).
11. The method of claim 1, wherein, Scheduling the event notification includes scheduling a wake-up signal to be transmitted from the first integrated circuit to the short-range wireless module, the wake-up signal indicating the earliest time for the short-range wireless module to resume communication with the first integrated circuit.
12. The method of claim 11, wherein, Scheduling the event notification configures the short-range wireless module to ignore one or more UART hardware flow control messages prior to receiving the wake-up signal.
13. The method of claim 12, wherein, 14. A system for resuming a connection between a first integrated circuit and a short-range wireless module, comprising: a short-range wireless module; and a first integrated circuit, wherein the first integrated circuit is configured to: receive a command for the system to enter a low-power state; receive a command to exit the low-power state; schedule an event notification indicating an earliest time for the short-range wireless module to resume communication with the first integrated circuit; and in response to exiting the low-power state and in response to the event notification, resume communication between the short-range wireless module and the first integrated circuit. 15. The system of claim 14, wherein, The first integrated circuit is further configured to, prior to entering the low power state in response to the received command, disable a wireless connection provided by the short range wireless module, and then re-enable the wireless connection provided by the short range wireless module.
16. The system of claim 15, wherein, Re-enabling the wireless connection includes enabling a Bluetooth Low Energy (BLE) scan mode associated with the short range wireless module.
17. The system of claim 16, wherein, Enabling the BLE scan mode enables the short range wireless module to detect a request transmitted by a remote peripheral device paired with the short range wireless module.
18. The system of claim 14, wherein, The earliest time is based at least in part on an estimated time for the first integrated circuit to be able to transmit packets to and receive packets from the short range wireless module.
19. The system of claim 14, wherein, The short range wireless module and the first integrated circuit are coupled via a Universal Asynchronous Receiver-Transmitter (UART), and wherein scheduling the event notification includes scheduling a wake-up signal to be transmitted from the first integrated circuit to the short range wireless module, the wake-up signal indicating the earliest time for the short range wireless module to resume communication with the first integrated circuit.
20. A non-transitory computer-readable storage medium storing instructions for execution by one or more processors of a first integrated circuit, wherein, Execution of the instructions causes the first integrated circuit to perform operations including: receiving a command for the first integrated circuit to enter a low power state; receiving a command for the first integrated circuit to exit the low power state; scheduling an event notification indicating an earliest time for a short range wireless module coupled to the first integrated circuit to resume communication with the first integrated circuit; and in response to exiting the low power state and in response to the event notification, resuming communication between the short range wireless module and the first integrated circuit.