The technology of the disclosure relates generally to audio buses having multiple masters and particularly to SOUNDWIRE audio buses having multiple masters.
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 means 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.
There are situations where there may be multiple masters in an audio system that couple to a single slave. For example, a first master may control microphones and speakers of a headset for voice communication such as a phone call while a second master may monitor a microphone in the headset for an always-on listening program such as the APPLE SIRI application or the AMAZON ALEXA application. In the past, the two masters may operate at different clock rates and require separate audio buses. Such duplication of buses increases the requirements for the peripheral and may otherwise be inefficient. Accordingly, a more efficient arrangement may provide cost savings and greater flexibility.
Aspects disclosed in the detailed description include multiple masters connecting to a single slave in an audio system. In particular, exemplary aspects of the present disclosure designate a primary master between the multiple masters. Clock signals from secondary masters are turned off. In a first exemplary aspect, data signals from the secondary masters are still provided over at least one distinct data line to the slave. In a second exemplary aspect, data signals from the secondary masters are multiplexed onto a single data line of the primary master. By eliminating a second clock line and potentially combining data lines, pin counts may be reduced resulting in cost savings therefrom. Additionally, the peripheral to which the data line(s) is coupled may be simplified through elimination of duplicative hardware, resulting in further cost savings for such peripherals.
In this regard in one aspect, an apparatus for controlling an audio bus including a device is disclosed. The apparatus includes an audio bus interface including a clock output and at least one data lane output. The apparatus also includes a first audio master core coupled to the audio bus interface and a clock source. The apparatus also includes a second audio master core coupled to the first audio master core through a link.
In another aspect, a method for providing signals from multiple audio master cores to a single audio slave core is disclosed. The method includes providing a first master core. The method also includes providing a second master core. The method also includes providing a link between the first master core and the second master core. The method also includes designating the first master core as a primary master core and the second master core a secondary master core.
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 multiple masters connecting to a single slave in an audio system. In particular, exemplary aspects of the present disclosure designate a primary master between the multiple masters. Clock signals from secondary masters are turned off. In a first exemplary aspect, data signals from the secondary masters are still provided over at least one distinct data line to the slave. In a second exemplary aspect, data signals from the secondary masters are multiplexed onto a single data line of the primary master. By eliminating a second clock line and potentially combining data lines, pin counts may be reduced resulting in cost savings therefrom. Additionally, the peripheral to which the data line(s) is coupled may be simplified through elimination of duplicative hardware, resulting in further cost savings for such peripherals.
Before addressing particular aspects of the present disclosure, a brief overview of a SOUNDWIRE audio system is 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 the past, there may be situations where a single slave peripheral, such as a codec, may be coupled to multiple masters. Frequently, the solution to this situation was two full audio buses. This situation is illustrated in
With continued reference to
In practice, the first SOUNDWIRE master core 222 communicates with the first SOUNDWIRE slave core 218 through a first SOUNDWIRE bus 248 having a first clock line 250 and one or more data lines 252. Similarly, the second SOUNDWIRE master core 224 communicates with the second SOUNDWIRE slave core 220 through a second SOUNDWIRE bus 254 having a second clock line 256 and one or more data lines 258. This arrangement leads to duplicative clock lines and data lines and requires more pins at both the application processor 202 and the codec 204. Such duplicative lines and pins may increase the cost of the component. Consequently, some peripheral manufacturers wish to reduce costs of the peripherals by consolidating cores in the peripheral. However, the different functions may still need different masters in the application processor.
Exemplary aspects of the present disclosure allow one of the master cores to assume primacy over others of the master cores to coordinate communication to the external circuit. This coordination allows potential elimination of duplicative clock lines and/or consolidation of data lines. The reduction in lines being connected to the external circuit may reduce pin counts as well as reduce routing requirements for the lines. Accordingly, cost savings may be achieved by such consolidation. It should be appreciated that while only two masters are discussed, the present disclosure may be extended to more than two masters, with one master assuming the primary role and all other masters assuming subordinate roles as outlined below.
In this regard,
With continued reference to
To facilitate operation, the first SOUNDWIRE master core 328 communicates with the second SOUNDWIRE master core 330 through a link 354, which may be internal conductive traces in the metal layers of the integrated circuit (IC) or chip containing the application processor 302. The protocol used over the link 354 may be any acceptable signaling protocol. The link 354 may be part of a system bus for the application processor 302 as needed or desired. Because the peripheral 304 has only one slave core 306, only the one clock input 308 is present. Accordingly, only one clock line 356 is provided in the SOUNDWIRE: bus 358. The SOUNDWIRE specification allows for up to eight data lines, and thus, the data line(s) from the first SOUNDWIRE master core 328 and the data line(s) from the second SOUNDWIRE master core 330 may be combined into a single bus 358. Since the clock rates from the two SOUNDWIRE master cores 328, 330 are forced to be the same, the second SOUNDWIRE master core 330 does not have to provide a clock signal to the bus 358 (generally indicated at the “x” 360 for the clock output). Likewise, any control signals that the second SOUNDWIRE master core 330 would send are provided to the slave core 306 through the first SOUNDWIRE master core 328 via the link 354. That is, in all multi-master configurations, the primary master (e.g., the first SOUNDWIRE master core 328) is responsible for and owns the generation and management of the control channel (Control-Ch) assigned on bit slots 0-47 of the first column of a frame. Conversely, any secondary master is not generating, nor is it required to observe any control channel bit slots. Individual data ports may be assigned to any of the available data lines, and all the masters are synchronized to the same bank-switch event. The general concept of a bank-switch event is defined in the SOUNDWIRE specification and is understood although currently the SOUNDWIRE specification does not contemplate two or more masters being synchronized to a single bank-switch event as provided herein. More detail on this synchronization is provided below with reference to
Note that it is expected that the secondary SOUNDWIRE master core 330 will not have any control over the control channel. In this specific connection topology where Data-Lane® (e.g., the first data lane) is coming from the primary SOUNDWIRE master core 328 and Data-Lane1 (e.g., the second data lane) is coming from the secondary SOUNDWIRE master core 330, it is permitted for the secondary SOUNDWIRE master core 330 to own part of or all of the control bit slots if this simplifies implementation. As with all engineering decisions, the tradeoff for this flexibility is made at the expense of allocating space in the payload audio channel and lowering the possible overall bandwidth. In the event that the secondary SOUNDWIRE master core 330 has this functionality, the secondary SOUNDWIRE master core 330 shall ignore any response from the slave on the fields of the control channel of Data-Lane0.
While only two master cores are shown in
As an alternative to the computing system 300 of
With continued reference to
To facilitate operation, the first SOUNDWIRE master core 428 communicates with the second SOUNDWIRE master core 430 through a link 454, which may be internal conductive traces in the metal layers of the IC or chip containing the application processor 402. The protocol used over the link 454 may be any acceptable signaling protocol. The link 454 may be part of a system bus for the application processor 402 as needed or desired. Because the peripheral 404 has only one slave core 406, only the one clock input 408 is present. Accordingly, only one clock line 456 is provided in the SOUNDWIRE bus 458. The SOUNDWIRE specification allows for up to eight data lines, but if the peripheral 404 only has a single data input 410, the data line(s) from the first SOUNDWIRE master core 428 and the data line(s) from the second SOUNDWIRE master core 430 may be multiplexed into the single data input 410 on the bus 458. Since the clock rates are forced to be the same, the second SOUNDWIRE master core 430 does not have to provide a clock signal to the bus 458 (generally indicated at the “x” 462). Likewise, any control signals that the second SOUNDWIRE master core 430 would send are provided to the slave core 406 through the first SOUNDWIRE master core 428 via the link 454. It should be appreciated that the multiplexing may be internal to the application processor 402 or external thereto.
In particular,
Note that the use of the “/” herein indicates and/or.
The multiple masters connecting to a single slave in an audio system 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 bus. There are a variety of locations in a computing device at which a SOUNDWIRE 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 master devices and slave 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 widest scope consistent with the principles and features disclosed herein.