The technology of the disclosure relates generally to power conservation on an audio bus.
Mobile communication devices have become increasingly common in current society. The prevalence of these mobile communication devices is driven in part by the many functions that are now enabled on such devices, Increased processing capabilities in such devices mean that mobile communication devices have evolved from pure communication tools into sophisticated mobile entertainment centers, thus enabling enhanced user experiences.
The mobile communication devices commonly include at least one microphone and multiple speakers. The microphone and the speakers used in the mobile communication devices typically have analog interfaces which require a dedicated two-wire connection between each pair of devices. Since a mobile communication device is capable of supporting multiple audio devices, it may be desirable to allow a microprocessor or other control device in the mobile communication device to communicate audio data to multiple audio devices over a common communication bus simultaneously.
In this regard, the MIPI® Alliance initially developed the Serial Low-power Inter-chip Media Bus (SLIMbus℠ or SLIMBUS) to handle audio signals within a mobile communication device. The first release was published in October 2005 with v1.01 released on Dec. 3, 2008. In response to industry feedback, MIPI has also developed SoundWire℠ (SOUNDWIRE), a communication protocol for a processor in the mobile communication device (the “master”) to control distribution of digital audio streams between one or more audio devices (the “slave(s)”) via one or more SOUNDWIRE slave data ports. Version 1 was released on Jan. 21, 2015.
While SOUNDWIRE is well suited for use in mobile terminals, there are trade-offs associated with the use of SOUNDWIRE. For example, most mobile terminals are battery powered. Consumers demand that time between battery charging be maximized. Accordingly, there is pressure to reduce power consumption in mobile terminals. SOUNDWIRE, by design (in part to reduce latency), maintains an active clock and data line(s) at all times. Maintaining such an active clock and data line(s) does consume battery power. Accordingly, there may be room to improve battery power utilization by a SOUNDWIRE bus.
Aspects disclosed in the detailed description include systems and methods for power conservation on an audio bus through clock manipulation. In particular, exemplary aspects of the present disclosure provide for systems and methods for allowing a clock signal on an audio bus such as a SOUNDWIRE audio bus to be stopped when there are no pending commands from a master device. The clock signal may resume when a new command from the master device is generated or the master receives an interrupt from a slave device. By stopping the clock signal in this fashion, power is saved because the clock transitions on the bus are eliminated. Further, latency is held to a minimum by allowing the master to respond to interrupts from the slaves.
In this regard in one aspect, an apparatus is disclosed. The apparatus includes an audio bus master. The audio bus master includes a bus interface coupled to an audio bus. The bus interface includes a frame control circuit configured to enter a clock stop state when a command is not pending.
In another aspect, an apparatus is disclosed. The apparatus includes an audio bus master. The audio bus master includes a means to couple to an audio bus. The means to couple to the audio bus includes a means to enter a clock stop state when a command is not pending.
In another aspect, a method of controlling an audio bus is disclosed. The method includes determining that no command is pending for the audio bus. The method also includes entering a clock stop state responsive to determining that no command is pending.
With reference now to the drawing figures, several exemplary aspects of the present disclosure are described. The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects.
Aspects disclosed in the detailed description include systems and methods for power conservation on an audio bus through clock manipulation. In particular, exemplary aspects of the present disclosure provide for systems and methods for allowing a clock signal on an audio bus such as a SOUNDWIRE audio bus to be stopped when there are no pending commands from a master device. The clock signal may resume when a new command from the master device is generated or the master receives an interrupt from a slave device. By stopping the clock signal in this fashion, power is saved because the clock transitions on the bus are eliminated. Further, latency is held to a minimum by allowing the master to respond to interrupts from the slaves.
Before addressing particulars of the present disclosure, an overview of an audio system, and particularly a SOUNDWIRE audio system, are provided with reference to
In this regard,
The SOUNDWIRE specification defines a fixed frame having multiple lanes (up to eight). In practice, each lane is assigned to one of the one or more data lines 112(1)-112(8) of the multi-wire bus 108. The frame has rows and columns, In each row, bit slots are provided that may change from any source to any other source.
In conventional operation, the bus interface 130 remains active to handle commands from the control system 132 as well as periodically interrogate slaves to see if there are any interrupts at the slaves. Such activity causes essentially continuous activity on the multi-wire bus 108, which consumes power. This power consuming bus activity is symbolically illustrated in
In contrast, exemplary aspects of the present disclosure allow the multi-wire bus 108 to be stopped or idled such that the pings to query the slaves are suspended, resulting in power savings. As the multi-wire bus 108 may be idle in this fashion for hundreds of milliseconds, the power savings may be substantial.
An exemplary process to allow for link stoppage is provided with reference to
The process 350 is substantially similar to process 300 but before the process 350 returns to block 306 for execution of the command, the master sends a ping (e.g., ping 222) to acquire a status of one or more slaves (block 352). This ping determines whether the slave(s) is still attached (block 354). If the answer to block 354 is negative, then the process 350 ends and an error is generated (block 356). The error may occur when the slave does not operate correctly (due to a different system error condition, such as a low batter). The error may be provided to an operating system or the like. Otherwise, the command is executed at block 306.
Exemplary aspects of the present disclosure are enabled by a software driver working with a circuit in the bus interface 130. It should be appreciated that after enabling the circuit, the software driver can enter a temporal “sleep” condition, where low-level operations of the bus interface 130 operate without software intervention. One exemplary such circuit 400 is illustrated in
The software driver 402 also indicates which data ports are enabled through a channel enable circuit 412. The enable signals are provided to a negative OR (NOR) gate 414. When all port channels are disabled, a signal is provided to the AND gate 408. When both inputs to the AND gate 408 are present, a clock stop enter enable signal 416 is provided.
The OR gate 410 also receives a signal from a second AND gate 418. The second AND gate 418 receives a first input 420 indicating that the multi-wire bus 108 is in a clock stop state and a second input 422 indicating that a wakeup request has been received. Thus, when the multi-wire bus 108 is in a clock stop state and a wakeup request is received, the AND gate 418 outputs a signal to the OR gate 410 to exit the clock stop state. The OR gate 410 also outputs a signal to exit the clock stop state when there is at least one pending command. The circuit 400 thus allows entry into the clock stop state and exit from the clock stop state to provide commands or respond to interrupts.
The systems and methods for power conservation on an audio bus through clock manipulation according to aspects disclosed herein may he provided in or integrated into any processor-based device. Examples, without limitation, include a set top box, an entertainment unit, a navigation device, a communications device, a fixed location data unit, a mobile location data unit, a global positioning system (GPS) device, a mobile phone, a cellular phone, a smart phone, a session initiation protocol (SIP) phone, a tablet, a phablet, a server, a computer, a portable computer, a mobile computing device, a wearable computing device (e.g., a smart watch, a health or fitness tracker, eyewear, etc.), a desktop computer, a personal digital assistant (PDA), a monitor, a computer monitor, a television, a tuner, a radio, a satellite radio, a music player, a digital music player, a portable music player, a digital video player, a video player, a digital video disc (DVD) player, a portable digital video player, an automobile, a vehicle component, avionics systems, a drone, and a multicopter.
In this regard,
With continued reference to
With continued reference to
With continued reference to
Those of skill in the art will further appreciate that the various illustrative logical blocks, modules, circuits, and algorithms described in connection with the aspects disclosed herein may be implemented as electronic hardware, instructions stored in memory or in another computer readable medium and executed by a processor or other processing device, or combinations of both. The master devices, and slave devices described herein may be employed in any circuit, hardware component, integrated circuit (IC), or IC chip, as examples. Memory disclosed herein may be any type and size of memory and may be configured to store any type of information desired. To clearly illustrate this interchangeability, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. How such functionality is implemented depends upon the particular application, design choices, and/or design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
The various illustrative logical blocks, modules, and circuits described in connection with the aspects disclosed herein may be implemented or performed with a processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices (e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration).
The aspects disclosed herein may be embodied in hardware and in instructions that are stored in hardware, and may reside, for example, in Random Access Memory (RAM), flash memory, Read Only Memory (ROM), Electrically Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), registers, a hard disk, a removable disk, a CD-ROM, or any other form of computer readable medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a remote station. In the alternative, the processor and the storage medium may reside as discrete components in a remote station, base station, or server.
It is also noted that the operational steps described in any of the exemplary aspects herein are described to provide examples and discussion. The operations described may be performed in numerous different sequences other than the illustrated sequences. Furthermore, operations described in a single operational step may actually be performed in a number of different steps. Additionally, one or more operational steps discussed in the exemplary aspects may he combined. It is to he understood that the operational steps illustrated in the flowchart diagrams may be subject to numerous different modifications as will be readily apparent to one of skill in the art. Those of skill in the art will also understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, hits, symbols, and chips that may he referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the disclosure will he readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations. Thus, the disclosure is not intended to be limited to the examples and designs described herein, but is to be accorded the widest scope consistent with the principles and features disclosed herein.