The Role of Software in Arcam Amplifiers
By Chris Mann – Principle Software Engineer, Global Engineering, Harman Luxury Audio Group
A modern amplifier now has to include features such as a range of inputs, the integration of 3rd party modules for digital audio processing, and control over IP.
As an example, the new SA30 supports both analogue and digital inputs, an integrated streaming module, Dirac room correction, and HDMI ARC control as well as RS232 and IP control interfaces including support for Control4 (and other control systems).
The design may incorporate a number of boards, each containing various peripherals which are controlled by one or more microprocessors running their own software. Depending on the role of the microprocessor, its software may also perform some digital signal processing, along with communication with the other microprocessors.
A Software Solution
A wide variety of peripherals are used in the design of the amplifier. These include front panel buttons, Encoders, LED’s, Analogue-to Digital Converters (ADCs) and Digital-to-Analogue Converters (DACs), SPDIF digital Receivers and Transmitters, Volume controls, Displays, TCP/IP modules etc.
These are controlled by software whose job is to monitor and receive data from the inputs, to process the data and pass commands to the peripherals controlling the signal flow, and outputs.
Communication with the peripherals can use a variety of low-level protocols such as SPI, I2C, and RS232 each requiring different approaches. Much of this communication can be handled by standard “framework” modules that are supplied by the microprocessor suppliers 3rd parties, or developed in-house which reduce the amount of application specific code. However, sometimes bespoke code is required, either for performance reasons, or to reduce the size of the code in scenarios where the microprocessor has limited processing capabilities.
The application specific code is generally structured as a control loop which periodically reviews the state of the inputs, performs some processing, and sends control messages to the internal components. This is also augmented by the use of “interrupts” where a peripheral may send asynchronous data that must be handled as it arrives.
This raises a number of challenges in the design of the software:
- Where the flow of data being received or output is time critical (for example: in digital signal processing, or specific communication protocols) the control loop interval may be limited to a specific time period. This prohibits any processing that may take a significant amount of time (e.g. sending a large amount of data to a peripheral).
- An interrupt suspends the control loop while it is being processed.
- It may take a discrete time for a peripheral to process a message that it is sent e.g. where a peripheral is enabled, it may take a number of microseconds before it is ready to process any further messages or input.
One central approach to dealing with these issues is to split the processing into a number of small steps, so rather than receive or send a large amount of data in a single cycle, the data will be stored in a buffer and processed in small “chunks.” This can be seen in the general approach to interrupts where the code handling the interrupt must be made as fast as possible which usually involves storing the data gathered in the interrupt for later processing in the control loop.
Timers are also used to delay tasks that are dependent on a previous action (e.g. waiting for a peripheral to get up and running), or to perform regular tasks whose interval is longer than that of the processing loop.
Communication is required between the microprocessors used in the amplifier. In software terms this usually involves a bespoke protocol based on one of the low-level protocols with the software treating the other microprocessor in a similar way to its peripherals, however an extra layer is required to implement the bespoke messages which may include handling handshaking, control functions, and data transfer.
Looking to the Future
In the future, amplifier design will increasingly be required to incorporate the advancements in new streaming technologies and the use of the internet for delivering content. The role of software is integral to this.