1 May 2019
MIPI SoundWire v1.2 Boosts Flexibility for Integrating Mobile Audio Interfaces
Since the MIPI Alliance introduced MIPI SoundWire® in 2014, manufacturers have taken advantage of the common and scalable audio interface to bring advanced audio features to a wide range of mobile, PCs and other devices. Now, MIPI is bringing even more flexibility to the specification with SoundWire v1.2, available now to MIPI members.
SoundWire was created to give system developers a comprehensive interface for transporting audio and control data to audio peripherals in smartphones, tablets, PCs, wearables, connected cars and IoT devices. It offers an alternative to the fragmented interfaces that had been available for these different types of systems. SoundWire has allowed developers to create simple, low-cost audio devices without the overhead of legacy interfaces. It has also helped them add intelligence to audio devices without unnecessary software complexity in order to bring these products to market more quickly and at lower cost.
The specification allows for multiple audio peripherals on one link and supports a variety of topologies. In addition to enabling the connection with low-cost simple devices such as microphones or amplifiers, it also enables the integration of more advanced microphones, speakers and amplifiers. Further, SoundWire can also be used to implement speaker protection, noise cancellation, microphone power and performance control, and other capabilities.
Technical details of SoundWire
SoundWire v1.2 builds on the technical foundations of SoundWire v1.1, which include several features to support the power, performance and cost requirements of a wide range of systems.
SoundWire is a two-pin, double data rate, multiplexing interface that operates at clock rates up to 12.288MHz. It transports frames of audio data in both PCM (pulse-code modulation) and PDM (pulse-density modulation) formats over a multi-drop bus. Frame sizes are configurable to reduce overhead. SoundWire supports low-gate-count hardware designs to minimize cost and uses configurable frame sizes to reduce transport overhead. The interface can be scaled up or down using anywhere from one to eight channels in a data port, and up to 14 data ports in a slave, depending on the bandwidth requirements of a given peripheral.
The specification defines three types of devices:
- Masters provide clock, synchronization and bus management
- Slaves, in the form of audio components, may have system wake capability and use in-band interrupts
- Monitors, or debug and test devices, can temporarily take over the bus.
Each master can be linked to as many as 11 slaves, which can be mixed and matched in several different topologies depending on system requirements. For example, developers can connect an application processor directly to a series of peripherals, such as microphones and speakers, or use functional partitioning to connect microphones and speakers to different masters on separate buses. It is also possible to partition slave devices among buses based on the use case.
SoundWire also allows for bridging, and with a multilane option, it can form inter-chip links between an application processor and other chips such as audio codecs and Bluetooth radios.
SoundWire has an enumeration mechanism that can identify each slave device, even if it is identical to other devices on the same link, a 4-bit UniqueID as part of the total 48-bit DevID. Using this ID, the master assigns a device number between 1 and 11. Masters can address individual slaves or use a broadcast feature to send the same command to multiple devices, such as a series of digital-to-analog converters.
What's new in SoundWire v1.2
The new release of SoundWire incorporates a range of updates to benefit OEMs, system integrators and vendors of SOCs, devices and systems. These improvements fall into three main categories: Updates that make it easier to implement SoundWire in systems with different hardware topologies, features laying the foundation for device class for SoundWire devices, and optimizations to help hardware, software and system designers.
To help designers integrate SoundWire audio devices in systems with larger form factors or more complex hardware topologies, SoundWire v1.2 includes knobs for software to configure and change the I/O PHY setting to meet a system's physical design criteria.
These can help designers of PCs and other systems. Implementing a low-power bus in topologies with longer physical links may cause discontinuities in impedance, leading to reflections that degrade signal quality. This can be prevented by changing the physical parameters of slave devices, such as their clock frequency, slew rate and drive strength. SoundWire v1.2 includes a standard set of registers that system designers can use to modify slaves to meet hardware requirements. Making sure that master and slave settings suit the system topology improves data reliability and prevents the SoundWire bus from interfering with nearby components such as radio antennas.
It is expected that slave device vendors will implement these optional standard registers, making it easier for system designers to modify slaves' characteristics. This will help OEMs introduce SoundWire to larger systems, such as PCs, in which slave devices are attached to the main system board via cables or flexible circuits.
Figure 2. Example of a physically complex SoundWire system
SoundWire v1.2 also lays the foundation for a major new specification to streamline the integration of SoundWire audio devices. This specification, being developed by the MIPI Software Working Group for release later this year, will introduce support for device classes in SoundWire. This will be another step in the expansion of MIPI's standardization efforts beyond physical-layer interfaces.
Device class for SoundWire will provide a common way to describe the main types of audio devices, such as microphones, jacks and speaker/amplifiers. It will allow operating system developers to include a common piece of software within the OS to identify and support the integration of all devices of that class.
Both device and system developers will reap significant benefits from device class for SoundWire, including lower costs and faster time to market. Rather than having to write all new drivers each time their hardware is integrated into a system, device vendors will be able to rely largely on the OS to supply the necessary software. Meanwhile, they will still be able to provide smaller, specialized pieces of code as needed to support features for a particular system.
SoundWire v1.2 also adds incremental improvements to make it easier for hardware developers to use the specification. For example, it includes a mechanism for communicating the clock rate of the bus directly to the hardware, even when the rate is set dynamically.
SoundWire and SLIMbus
Both specifications describe two-wire, multi-drop, TDM interfaces using CMOS I/O. However, SLIMBus uses fixed frames and operates in single-data-rate mode at a higher maximum frequency of 28MHz. It supports multiple multi-channel, high-quality audio streams, and with eight lanes it can deliver as much as 224Mbps of peak aggregated bandwidth. SLIMBus also includes multi-mastering capability and offers phase coherence for stereophonic sound and microphone arrays.
These specifications are intended for different use cases, though they can be implemented in the same system through bridging.
Figure 3. Example of a SLIMbus / SoundWire bridging solution
SoundWire is a single-master audio architecture designed for both cost-optimized and more intelligent systems. It is ideal for use in new audio designs for new use cases such as low-latency PDM (Pulse Density Modulation). SoundWire is also suited to low-complexity, low-gate-count designs incorporating small, cost-sensitive audio peripherals such as microphones and speakers. SLIMBus is a multi-master architecture primarily for linking larger components, such as application processors and modems, to audio components such as Bluetooth and FM radios and audio codecs. It can also be used to consolidate multiple peripheral buses, such as I2C and UART.
MIPI DisCo for SoundWire
MIPI's portfolio of specifications for audio devices also includes MIPI DisCoSM for SoundWire. This specification adds software discoverability to SoundWire through MIPI Discovery and Configuration Base Architecture (MIPI DisCo), a common framework for discovering the SoundWire devices properties and conveying that to the OS.
DisCo for SoundWire describes the properties of SoundWire masters and slaves, including maximum clock frequency, power management features and types of data ports. It reads those characteristics from firmware, primarily ACPI (Advanced Configuration and Power Interface), upon which DisCo is based. Knowledge of the device properties allows the OS to program the master and slaves parameters accordingly to gain expected operation.
The specification is publicly available now and is an important complement to SoundWire. MIPI recommends that device vendors make DisCo data available for their SoundWire devices. System developers increasingly will expect to have this information provided so they can more easily integrate these components.
MIPI SoundWire is available only to MIPI Alliance members. Organizations that want to help shape the future of audio interfaces in mobile and mobile-influenced devices should consider joining the MIPI Audio Working Group. This group is currently working on a similar audio and control interface for more complex system topologies with longer connections and higher bandwidth. It will allow developers to maintain low EMI in these topologies and will include an improved control layer and audio payload flexibility.