I. Field of the Disclosure
The technology of the disclosure relates generally to the Serial Low-power Inter-chip Media Bus (SLIMbus) specification announced by MIPI® and particularly for managing multiple related audio channels using a SLIMbus.
II. Background
Electronic devices, such as mobile phones and computer tablets, have become common in contemporary society for supporting various everyday uses. These electronic devices each commonly include a microphone and speakers. Typical microphones and speakers used in electronic devices have analog interfaces, requiring dedicated two (2) port wiring to connect each device. However, electronic devices may include multiple audio devices, such as multiple microphones and/or speakers. Thus, it may be desired to allow for a microprocessor or other control device in such electronic devices to be able to communicate audio data to multiple audio devices over a common communications bus. Further, it may also be desired to provide a defined communications protocol for transporting digital data relating to audio channels to different audio devices in an electronic device over a common communications bus.
The MIPI® Alliance has set forth the Serial Low-power Inter-chip Media Bus (SLIMbus™) standard, version 1.01 of which was released to adopters on Dec. 3, 2008. Copies of this standard can be found to members of the MIPI® Alliance at www.mipi.org/specifications/serial-low-power-inter-chip-media-bus-slimbussm-specification. SLIMbus is designed as an interface for audio data in the mobile terminal industry, allowing communication between modems, application processors, and standalone codec chips. SLIMbus is a time division multiplexed (TDM) bus with contiguous time slots carrying samples of a given audio channel. More than one channel can be defined on the bus at the same time as bandwidth permits. SLIMbus has been generally adopted by many within the mobile terminal industry.
When more than one channel is provided in a computing device that uses a SLIMbus, the SLIMbus standard does not address how these data channels can be aligned at the destination side so as to provide optimal audio fidelity. Accordingly, the SLIMbus standard may be improved by providing related channel alignment with corresponding increases in audio fidelity.
Aspects disclosed in the detailed description include multi-audio channel alignment schemes. In particular, aspects of the present disclosure provide for accumulation of audio samples across multiple related audio channels at an audio source. Related audio channels indicate their interrelatedness, and when all the related audio channels have data to transmit, the source releases the data onto the time slots of the Serial Low-power Inter-chip Media Bus (SLIMbus), such that the related audio channels are within a given segment window of the time slot. This accumulation is repeated at the boundary of every segment window. Similarly, accumulation may be performed at the audio sink. Components within the audio sink may only read received data if status signals from all related sinks indicate that predefined thresholds have been reached. By providing such accumulation options, audio fidelity is maintained across multiple audio data channels.
In this regard in one aspect, a method of controlling an audio stream is defined. The method comprises providing first data associated with a first audio channel from an audio stream to a first port in an audio service. The method also comprises providing second data associated with a second audio channel from the audio stream to a second port in the audio source. The method further comprises, at the first port, accumulating the first data in a first first in, first out (FIFO) register. The method also comprises, at the second port, accumulating the second data in a second FIFO register and programming the first and second ports to operate at identical channel rates. The method further comprises, at a segment window boundary, draining the first and second FIFO registers, such that equivalent audio samples in the first audio channel and the second audio channel are able to be grouped and placed into a segment window corresponding to the segment window boundary in a time division format.
In another aspect, a method of controlling an audio stream is defined. The method comprises receiving first data associated with a first audio channel from an audio bus at a first port in an audio sink. The method also comprises receiving second data associated with a second audio channel from the audio bus at a second port in the audio sink. The method further comprises, at the first port, accumulating the first data in a first FIFO register and at the second port, accumulating the second data in a second FIFO register. The method further comprises programming the first and second ports to operate at identical channel rates and comparing a first count at the first FIFO register to a first predefined threshold. The method also comprises setting a first ready signal if the first count exceeds the first predefined threshold. The method further comprises comparing a second count at the second FIFO register to a second predefined threshold. The method also comprises setting a second ready signal if the second count exceeds the second predefined threshold and allowing contents of the first and second FIFO registers to be read if the first ready signal and the second ready signal are set.
In another aspect, an audio source is defined. The audio source comprises an interface configured to be coupled to a bus, a first port comprising a first FIFO register, and a second port comprising a second FIFO register. The audio source also comprises a control system operatively coupled to the first port and the second port. The control system is configured to provide first data associated with a first audio channel from an audio stream to the first port and provide second data associated with a second audio channel from the audio stream to the second port. The control system is also configured to instruct the first port to accumulate the first data the first FIFO register and instruct the second port to accumulate the second data in the second FIFO register. The control system is further configured to program the first and second ports to operate at identical channel rates and, at a segment window boundary, drain the first and second FIFO registers, such that equivalent audio samples in the first audio channel and the second audio channel are able to be grouped and placed into a segment window corresponding to the segment window boundary in a time division format.
In another aspect, an audio sink is defined. The audio sink comprises an interface configured to be coupled to a bus. The audio sink also comprises a first port comprising a first FIFO register, the first port configured to receive first data associated with a first audio channel from the interface. The audio sink also comprises a second port comprising a second FIFO register, the second port configured to receive second data associated with a second audio channel from the interface. The audio sink further comprises a control system operatively coupled to the first port and the second port. The control system is configured to instruct the first port to accumulate the first data in the first FIFO register and instruct the second port to accumulate the second data in the second FIFO register. The control system is also configured to program the first and second ports to operate at identical channel rates. The control system is further configured to receive a first ready signal if a first count from the first FIFO register exceeds a first predefined threshold and receive a second ready signal if a second count from the second FIFO register exceeds a second predefined threshold. The control system is further configured to allow contents of the first and second FIFO registers to be read if the first ready signal and the second ready signal are received.
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 multi-channel audio alignment schemes. In particular, aspects of the present disclosure provide for accumulation of audio samples across multiple related audio channels at an audio source. Related audio channels indicate their interrelatedness, and when all the related audio channels have data to transmit, the source releases the data onto the time slots of the SLIMbus, such that the related audio channels are within a given segment window of the time slot. This accumulation is repeated at the boundary of every segment window. Similarly, accumulation may be performed at the audio sink. Components within the audio sink may only read received data if status signals from all related sinks indicate that predefined thresholds have been reached. By providing such accumulation options, audio fidelity is maintained across multiple audio data channels.
Before addressing exemplary methods and processes associated with the present disclosure, an overview of the hardware elements in which such methods and processes may be implemented are provided with reference to
In this regard,
Other devices can be connected to the system bus 18. As illustrated in
The CPU(s) 12 may also be configured to access the display controller(s) 30 over the system bus 18 to control information sent to one or more displays 34. The display controller(s) 30 sends information to the display(s) 34 to be displayed via one or more video processors 36, which process the information to be displayed into a format suitable for the display(s) 34. The display(s) 34 can include any type of display, including but not limited to a cathode ray tube (CRT), a light emitting diode (LED) display, a liquid crystal display (LCD), a plasma display, etc.
While the mobile terminal 10 may include plural speakers and/or plural microphones coupled by a SLIMbus, the mobile terminal 10 may be coupled to an external sound system such as through a docking station (or wirelessly). In this regard,
Regardless of whether the audio components are internal to the mobile terminal 10 (or other processor based device) or an external system, the mobile terminal 10 (or other processor based device) may include a SLIMbus to move audio data between audio components such as modems, codecs, and/or applications processors. In this regard, a simplified audio system 60 is illustrated in
It should be appreciated that each component within the simplified audio system 60 may include multiple ports, each of which may be assigned to different audio channels. Exemplary aspects of this arrangement are illustrated in
Exemplary aspects of the present disclosure provide for accumulating audio data for related audio channels 86 and placing the corresponding samples for the respective related audio channels 86 into a segment window within the TDM signal on the common data wire 74. In this regard,
To get the samples aligned at the source, first in, first out (FIFO) registers may be used at each port.
On the receive side, both sample and phase alignment may be desirable to help improve audio fidelity. The structure of such receive side components is provided with reference to
With continued reference to
With continued reference to
With continued reference to
Against this backdrop of structure, an exemplary process 160 is provided illustrating how related ports at the first component 82(1) are linked. As illustrated, first component 82(1) is a source component. The process 160 begins with the control system 76 gathering audio data to be sent out through the two (or more) audio channels (block 162). The control system 76 and the DMA 100 prefill the FIFO 102 of port(m) with first channel audio data (block 164). The control system 76 and the DMA 100 then prefill the FIFO 108 of port(n) with second channel audio data (block 166). A manager device (not shown) programs the ports 84 to be of the same channel rate (e.g., 48 kHz) (block 168).
With continued reference to
With continues reference to
With continued reference to
As alluded to above, the multi-channel audio alignment schemes 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 mobile phone, a cellular phone, a computer, a portable computer, 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, and a portable digital video player. While any such device may benefit from aspects of the present disclosure, the present disclosure is particularly well suited for use with devices that operate according to the SLIMbus protocol.
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, 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 be combined. It is to be understood that the operational steps illustrated in the flow chart 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 without departing from the spirit or scope of the disclosure. 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.