200 likes | 269 Views
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.
E N D
Group 4Craig BellamyJeremy RupleFrank SwehoskyRyan 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 • Connect to a remote server via TCP/IP • Receive streaming audio • Decode the streaming audio • Convert a digital signal into an analog signal • Output the analog signal to a line out • Scanning functionality • Preset and programmable buttons • Final product: a functional web radio player
Background • Multimedia Technology • Multimedia Streaming • TCP/IP • Embedded System
Approaching the Problem • Research • uClinux • Software • 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.
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 send • Receive data into buffers • Store buffers into a file
Decoding the MP3 Data • Input the MP3 file that was downloaded • Use 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
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 X • Final product: a functional web radio player X
Current Problems • Limited commands with uClinux • Integration 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