Network Controllable MP3 Player BRADY THORNTON & JASON BROWN - - PowerPoint PPT Presentation

network controllable mp3 player
SMART_READER_LITE
LIVE PREVIEW

Network Controllable MP3 Player BRADY THORNTON & JASON BROWN - - PowerPoint PPT Presentation

Network Controllable MP3 Player BRADY THORNTON & JASON BROWN (GROUP 12) Goal A user-friendly MP3 player that can be controlled from any computer in your home. How? Music playback: Decode and play MP3 files stored on an SD card. Network


slide-1
SLIDE 1

Network Controllable MP3 Player

BRADY THORNTON & JASON BROWN (GROUP 12)

slide-2
SLIDE 2

Goal

A user-friendly MP3 player that can be controlled from any computer in your home. How?

Music playback: Decode and play MP3 files stored on an SD card. Network Control: Integrate a web server and client API for controlling playback. User-Friendliness: Design a user interface to bring these components together.

slide-3
SLIDE 3

Motivation

  • Practical and appealing to technical and non-technical individuals alike
  • Well-defined subject matter with a clear end goal
  • Interesting design challenges with streaming data, multitasking, and client-

server architecture

slide-4
SLIDE 4

Hardware Design

  • Leverages built-in Altera

DE2 components with some interfacing glue in the FPGA

  • Use of open IP cores

wherever possible (SD IP core, audio codec)

  • Communication between

blocks occurs on the Avalon bus

Out In InOut

System Boundary NIOS II/f CPU @ 100MHz SDRAM Audio Codec LCD SPI Interface Avalon Bus

I2C & Data Bus

SD Card Audio Out Ethernet Controller Ethernet

slide-5
SLIDE 5

High-Level Features We’re Proud Of

  • We wrote a lightweight ID3 parsing library using the ID3v1/v2 and MPEG Layer

III encoding specifications.

  • Hot-swapping SD cards during playback is supported, with asynchronous

client updating.

  • Multiple web clients are supported and updated in real time.
  • Clients connected to the internet will automatically download artist images,

album covers, artist biographies, and recommended artists.

slide-6
SLIDE 6

uC/OS-II operating system

Software Overview

MP3 Decoder Task Web Server Task Hardware Audio Buffer Interrupts Player State data API calls

slide-7
SLIDE 7

Multitasking Design

  • We exploit interrupts on the audio codec’s FIFO buffer of output

samples to perform real-time task switching.

  • When the FIFO runs low on data (25% full), the interrupt fires and its

ISR posts to a binary semaphore, dispatching further MP3 decoding.

  • Once full, the decoder task pends on the semaphore, yielding the

CPU to the web server task.

slide-8
SLIDE 8

Multitasking Performance

MP3 Decoder: Decode 1 second of audio (~ 0.65 seconds) Serve client requests (~ 0.35 seconds) 1 Second Audio out: play 1 second of audio (Signal decoder when running low)

slide-9
SLIDE 9

Web Task & Client-Server Architecture

  • The web server task parses API calls and updates the server side state if

a control request has been made.

  • Player state is a C structure that’s semaphore-protected to ensure there

are no race conditions or other undesirable behavior during state changes.

  • The player task checks the state during buffer re-loading and between

tracks to control the output of audio samples.

slide-10
SLIDE 10

Web Task & Client-Server Architecture

  • Client initially loads web application using HTTP GET requests.
  • Status checks are done once per second (per client). Control API

requests are instantaneous.

  • The client makes API calls using jQuery’s AJAX methods. Exchanged data

is JSON formatted.

slide-11
SLIDE 11

User Interface Design

  • In industry, a user interface can mean the difference between a product’s

success or its failure.

  • Our goal: a pleasant, intuitive, and responsive UI.
  • Designed and coded from the ground up.
slide-12
SLIDE 12

Demo

WEB APPLICATION