|
An Ethernet-based remote audio
player

Abstract
This project is a hardware device
designed to access MPEG-encoded audio over a 10BaseT Ethernet
network. The system employs a protocol designed to allow multiple
player units to connect to a single server and simultaneously
and independently receive audio over the network. Users of each
remote player can navigate through the available selection of
music by using the built-in keypad and LCD screen, or with an
infrared remote control. The embedded software sends Ethernet
frames containing commands to the server, requesting song titles
(which appear on the LCD), playlist information, and MPEG audio
data. The Windows-based server software maintains status information
on each connected player, sending frames of requested information
back to the player unit.
The device is based on an Atmel
90s8535 AVR microcontroller, programmed in C. The network interface
is provided by a Realtek 8019AS Ethernet controller, which is
connected to the AVR on an eight-bit data bus. Also connected
to the bus are eight control buttons and a 16x2 character LCD.
A Micronas Intermetall MAS3507 MPEG decoder chip is connected
to the AVR via the SPI. The decoder also provides a demand signal
and I2C control interface, which are connected to
three of the AVR’s I/O pins. The analog audio signal is produced
by a Crystal Semiconductor CS4334 digital-to-analog converter,
which is directly connected to the decoder’s serial data out
interface.
The server software is based on
a packet capture library that sends and receives raw Ethernet
frames. When a player unit is first turned on, it sends out
a broadcast frame containing status information and an initialization
request command. Upon receipt of this initialization packet,
the server records the source MAC address in a list of other
active players. It sends a reply packet, which indicates the
server’s MAC address. Following this, the player and server
converse by exchanging status frames which consist of several
fields, including player status, command, song code, group code,
song title, group name, song play time, current play time, current
track number, number of tracks in current group, bit rate, and
a synchronization number.
This system can be applied anywhere
that multiple people could need to simultaneously listen to
different audio files stored in one location. This could be
at home, where each member of the household would be able to
individually listen to their own music, all stored on one central
computer. Retail stores could make use of the system to allow
multiple customers to preview compact discs. With a large enough
hard drive in the server, a record store could encode its entire
inventory and make it available for previewing, on-demand, to
as many customers as there are player units on the network.
Networked players could be installed in the seat-backs of airliners
to provide in-flight audio. Player units would be very inexpensive,
as the components in the prototype are worth less than $50.

|