Group 4 Craig Bellamy Jeremy Ruple Frank Swehosky Ryan VanAlstine

20
Group 4 Craig Bellamy Jeremy Ruple Frank Swehosky Ryan VanAlstine

description

Group 4 Craig Bellamy Jeremy Ruple Frank Swehosky Ryan VanAlstine. Introduction. The Internet is capable of wide-scale multimedia streaming Current analog streaming are limited to range, ex. t.v., FM radio We propose to create an Internet Radio player. Original Objectives and Deliverables. - PowerPoint PPT Presentation

Transcript of Group 4 Craig Bellamy Jeremy Ruple Frank Swehosky Ryan VanAlstine

Group 4Craig BellamyJeremy Ruple

Frank SwehoskyRyan VanAlstine

Introduction

The Internet is capable of wide-scale multimedia streamingCurrent analog streaming are limited to range, ex. t.v., FM radioWe propose to create an Internet Radio player

Original Objectives and Deliverables

Connect to a remote server via TCP/IPReceive streaming audioDecode the streaming audioConvert a digital signal into an analog signalOutput the analog signal to a line outScanning functionalityPreset and programmable buttonsFinal product: a functional web radio player

Background

Multimedia TechnologyMultimedia StreamingTCP/IPEmbedded System

Approaching the Problem

ResearchuClinuxSoftware Scanning functionality Downloading mp3 data Decoding mp3 data

Approaching the Problem cont.

Hardware DAC/Speakers LCD Button interface

Integration Software integration Device drivers

Coldfire Board

What it provides: 8 MB RAM 1 MB Flash ROM NE2000 compatible Ethernet interface 2 serial connections, 1 for Terminal 1 16 bit general purpose parallel I/O

port

uClinux

The Linux/Microcontroller project is a port of the Linux 2.0 to systems without a Memory Management Unit At present, only Motorola MC68000 derivatives are supported NFS and SMB file-systems can be mounted

uClinux-negative cont.

no fork() - use vfork(), check semantics still OK.

limited libc - either add more to libc, or remove some functionality.

binary size - currently exec() loader can't handle things bigger than 128k. This can be extended by hacking the linux/mmnommu code, grep for BIGALLOCS.

Software Design

Scanning Broadcasting Sites

Use a packet sniffer? Security risks Difficult implementation

Use Shoutcast’s web page! Contains mp3 broadcasting sites Download contents of page Parse page Store into an array

Downloading MP3 Data

Connect to the site (tcp connection)Issue command to sendReceive data into buffersStore buffers into a file

Decoding the MP3 Data

Input the MP3 file that was downloadedUse Huffman’s Algorithm to decode it minimal variable-length encoding based

on the frequency of each character

Output the decoded data to the DAC

DAC Driver

purpose of the DAC driver is to allow data in memory to be sent to the physical DAC via a programmable port

accepts a buffer of data and a given frequency, and will output one 16 bit value at each period to the physical DAC data has to be sent to the physical DAC one bit at a time

Original TimelineComponent

1 2 3 4 5 6 7 8 9 10 11 12 13 14

Install Software X SNetwork Interface X X T PDigital-to-Audio X X T RMP3 Decoding X X T IRCA line out, Speakers X T NIntegration of hardware X G T TLCD Interface X T

Button Interface B X X TNet Scan R X X TIntegration of System E X XTesting A T T TFinal Presentation K X

Modified TimelineComponent 7 8 9 10 11 12 13 14Install Linux in ROM S XConnect to Website & Download MP3 data P X X T

MP3 Decoding R X X TScanning Algorithm I X X TButton & LCD Interface N X X TDAC and LCD Drivers G X X TIntegration of All Hardware B X X

Integration of Whole System R X X XTesting E T T TFinal Presentation A X X

K

Accomplishments

Connect to a remote server via TCP/IP Receive streaming audio Decode the streaming audio Convert a digital signal to an analog signal Output the analog signal to a line out Scanning functionality Preset and programmable buttons XFinal product: a functional web radio player X

Current Problems

Limited commands with uClinuxIntegration of software and hardware DAC device driver Passing data between programs

Size of the ROM 1 MB ROM vs. 3.6 MB kernel

Unreliable Coldfire board

QUESTIONS ?