The technology of the disclosure relates generally to an audio bus in a computing device and, more particularly, to a SOUNDWIRE-XL/SOUNDWIRE NEXT audio bus.
Mobile terminals have become increasingly common in modern society. These devices have evolved from large, clunky, relatively simple telephonic devices to small, multifunction, multimedia devices with vastly improved processing power. The early mobile terminals generally provided poor sound quality and little, if any, visual image capacity. As the processing power for these mobile terminals has increased and the range of multimedia options has increased, the quality of the possible audio experience has likewise increased. In particular, contemporaneous mobile terminals may include multiple speakers and multiple microphones and, optionally, may communicate with remote audio devices such as headsets.
The MIPI® Alliance introduced the Serial Low Power Inter-chip Media Bus (SLIMbus®) protocol to help standardize communication between audio elements of a mobile terminal. While effective at providing communication between the audio elements of the mobile terminal, SLIMbus has not seen widespread acceptance by the industry. Accordingly, the MIPI Alliance has introduced the SOUNDWIRE specification to supplement and, in some cases, replace the SLIMbus protocol.
The SOUNDWIRE specification provides for a two-wire communication bus that may not exceed fifty centimeters (50 cm) in length. While such distances are readily satisfied for the audio elements within the mobile terminal, such distances may be too short for some regularly used ancillary devices such as a headset. Accordingly, the MIPI Alliance introduced a SOUNDWIRE variant allowing distances greater than 50 cm. This variant was originally referred to as SOUNDWIRE-XL and was a two-wire differential bus. Proposals within the MIPI Alliance changed SOUNDWIRE-XL from a point-to-point bus to a multi-drop bus, and the name migrated to SOUNDWIRE NEXT. Along with the change in nomenclature, the purpose of SOUNDWIRE NEXT has moved from being focused on external peripherals to inclusion within a mobile terminal. Making the SOUNDWIRE-XL bus a multi-drop bus has raised new operational issues with opportunities for new solutions.
Aspects disclosed in the detailed description include systems and methods for in-band reset and wake up on a differential audio bus. In particular, after entering a low-power mode, a master device, sometimes referred to as a downstream facing interface (DFI), opens a drain on a transistor driving the differential audio bus to cause the bus to “float” (i.e., be held at a value weakly). When a slave device, sometimes referred to as an upstream facing interface (UFI), needs the bus to wake, the slave device may transition the state of the bus, which is possible because of the weak hold on the bus. On detecting the transition of the bus, the master device may reassert control of the state of the bus and hold the bus in this new state until ready to issue a synchronization sequence. Likewise, an additional aspect of the present disclosure provides a distinctive sequence of transitions to trigger a reset of all slave devices on the bus. Thus, a mechanism is provided to allow resets in all operational conditions, including at bootup, during normal operation, during standby operations, and when a slave device is misbehaving. Likewise, in-band wake up has no requirement of a fast response time from the master device, can co-operate with the bus reset, and provides a clear indication of wake up to all devices on the bus.
In this regard in one aspect, a method for waking elements on a bus is disclosed. The method includes holding a differential audio bus at a first value while the differential audio bus is in a standby mode. The method also includes detecting a slave transitioning the differential audio bus to a second value. The method also includes holding the differential audio bus at the second value with a master of the differential audio bus after detecting the slave transitioning. The method also includes beginning a synchronization event on the differential audio bus.
In another aspect, a method for waking elements on a bus is disclosed. The method includes, while a slave device is in a standby mode, receiving an internal wake-up event for the slave device. The method also includes driving a differential audio bus from a first value to a second value. The method also includes releasing the differential audio bus. The method also includes, subsequent to releasing, receiving a synchronization event on the differential audio bus.
In another aspect, an integrated circuit (IC) is disclosed. The IC includes a bus interface configured to be coupled to a differential audio bus. The IC also includes a transceiver configured to send and receive data across the differential audio bus through the bus interface. The IC also includes a control system coupled to the transceiver. The control system is configured to hold the differential audio bus at a first value while the differential audio bus is in a standby mode. The control system is also configured to detect a slave transitioning the differential audio bus to a second value. The control system is also configured to hold the differential audio bus at the second value after detecting the slave transitioning. The control system is also configured to determine that software is ready to resume normal operation. The control system is also configured to begin a synchronization event on the differential audio bus.
In another aspect, an IC is disclosed. The IC includes a bus interface configured to couple to a differential audio bus. The IC also includes a transceiver configured to send and receive data on the differential audio bus through the bus interface. The IC also includes a control system coupled to the transceiver. The control system is configured to receive an internal wake-up event. The control system is also configured to chive the differential audio bus from a first value to a second value. The control system is also configured to release the differential audio bus. The control system is also configured to, subsequent to release, receive a synchronization event on the differential audio bus.
In another aspect, a method for resetting elements on a differential audio bus is disclosed. The method includes holding a differential audio bus at a first value until all slaves lose synchronization equal to a first time duration. The method also includes transitioning the differential audio bus to a second value for a second time duration shorter than the first time duration. The method also includes transitioning the differential audio bus to the first value for a third time duration equal to the first time duration. The method also includes beginning a synchronization event.
In another aspect, an IC is disclosed. The IC includes a bus interface configured to couple to a differential audio bus. The IC also includes a transceiver configured to send and receive data on the differential audio bus through the bus interface. The IC also includes a control system coupled to the transceiver. The control system is configured to hold the differential audio bus at a first value until all slaves lose synchronization equal to a first time duration. The control system is also configured to transition the differential audio bus to a second value for a second time duration shorter than the first time duration. The control system is also configured to transition the differential audio bus to the first value for a third time duration equal to the first time duration. The control system is also configured to begin a synchronization event.
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 in-band reset and wake up on a differential audio bus. In particular, after entering a low-power mode, a master device, sometimes referred to as a downstream facing interface (DFI), opens a drain on a transistor driving the differential audio bus to cause the bus to “float” (i.e., be held at a value weakly). When a slave device, sometimes referred to as an upstream facing interface (UFI), needs the bus to wake, the slave device may transition the state of the bus, which is possible because of the weak hold on the bus. On detecting the transition of the bus, the master device may reassert control of the state of the bus and hold the bus in this new state until ready to issue a synchronization sequence. Likewise, an additional aspect of the present disclosure provides a distinctive sequence of transitions to trigger a reset of all slave devices on the bus. Thus, a mechanism is provided to allow resets in all operational conditions, including at bootup, during normal operation, during standby operations, and when a slave device is misbehaving. Likewise, in-band wake up has no requirement of a fast response time from the master device, can co-operate with the bus reset, and provides a clear indication of wake up to all devices on the bus.
In this regard,
As better illustrated in
The benefit to SOUNDWIRE NEXT of using the wake-up and reset processes outlined herein includes the ability to perform in-band signaling, obviating the need for additional pins and conductors. Further, the processes disclosed herein are robust enough to accommodate almost any state on the bus including bootup, normal operation, standby, and misbehaving slaves. Still further, it allows operation without requiring a fast response time from the master, allows cooperation between the wake up and the bus reset, and allows a clear indication to all slaves that a wake up is taking place on the bus.
As a note of nomenclature, because the bus 102 is a differential bus, the bus 102 has two logical states: namely, the first state is where a first line carries a high voltage and a second line carries a low voltage, and the second state is where the first line carries a low voltage and the second line carries a high voltage. By definition, one of these states represents a logical one (1), and the other state represents a logical zero (0).
As long as the answer to block 204 is no, then the process 200 loops back to remain in the standby state (i.e., block 202). Once the answer to block 204 is yes, some entity has pulled the bus 102 to a logical one (1), the master device 104 actively drives a logical one (1) on the bus 102. Meanwhile, the entity that originally drove the bus 102 to logical one (1) releases the bus 102 (block 206). Concurrently, the master device 104 indicates or begins a wake-up request (wakeupReq) to the master's software driver (block 208). The wake-up request causes a command 208A to be passed up the stack to a software driver.
With continued reference to
Note that while the process 200 contemplates holding the bus 102 at a weak zero (0) to indicate the standby mode and having the slave device 106 drive the bus 102 to a logical one (1) to indicate a wake-up event, the values could equivalently be swapped without departing from the scope of the present disclosure.
On the slave side, a process 300 is illustrated in
With continued reference to
While the discussion above focuses on the wake-up process, the present disclosure is not limited to just the wake-up process. Exemplary aspects of the present disclosure also address a bus reset procedure.
With continued reference to
It should be appreciated that while the above discussion contemplates the standby state being associated with the weak zero (0) followed by the wake up beginning at the transition to one (1), the opposite could also be true without departing from the scope of the present disclosure. That is, standby could be a weak one (1), and the transition to zero (0) could be the beginning of the wake up.
The systems and methods for in-band reset and wake up on a differential audio bus according to aspects disclosed herein may be provided in or integrated into any processor-based device. Examples, without limitation, include a set top box, an entertainment unit, a navigation device, a communications device, a fixed location data unit, a mobile location data unit, a global positioning system (GPS) device, a mobile phone, a cellular phone, a smart phone, a session initiation protocol (SIP) phone, a tablet, a phablet, a server, a computer, a portable computer, a mobile computing device, 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.
Exemplary aspects of the present disclosure are well suited for use with a SOUNDWIRE NEXT bus. There are a variety of locations in a computing device at which a SOUNDWIRE NEXT bus may be placed. In this regard,
With continued reference to
With continued reference to
With continued reference to
Similarly,
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 devices described herein may be employed in any circuit, hardware component, 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 be combined. It is to be understood that the operational steps illustrated in the flowchart diagrams may be subject to numerous different modifications as will be readily apparent to one of skill in the art. Those of skill in the art will also understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations. Thus, the disclosure is not intended to be limited to the examples and designs described herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
The present application claims priority to U.S. Patent Application Ser. No. 62/575,871 filed on Oct. 23, 2017 and entitled “IN-BAND RESET AND WAKE UP ON A DIFFERENTIAL AUDIO BUS,” the contents of which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62575871 | Oct 2017 | US |