Runner
Up




AVR WINNERS ANNOUNCEMENT

Runner-Up

Mike Neufield
Kelowna, BC Canada

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.

 

 
     
 
sponsored by