Embedded System Design (CSEE 4840)Sarfraz NawazMark NieburScott SchuffAthar Shiraz SiddiquiOverview Project Overview System Architecture VOIP Protocols Issues and Lessons Learned Future Work and ReferencesProject Overview SIP/RTP based VOIP phone with an Asterisk Registrar Very small memory footprint – 512KB SRAM PS/2 keyboard for input and 2-line LCD display Embedded Operating System (uCos/II) for multi-threading Iniche TCP/IP stack for socket communications Altera NIOS 2 processor (50 MHz) DE2: Wolfram Audio chip, Davicom DM9000A EmacSystem Architecture Modularized into Application logic, System Software and Hardware Design layers with OOP design SIP/SDP and RTP on UDP for session initiation and media respectivelyArchitecture DiagramVOIP ApplicationNiche TCP/IP StackµC/OS-II Operating SystemHAL/DriversCRTNIOS II/fTimer (sys clock)EthernetAudioSRAMKeyboardAvalon busLCD DisplaySoftware Stack Hardware OverviewsipMain FSMSnd IRQEnetAudioSystem Software uCos/II os, iniche TCP/IP stack NIOS 2 command line tools (bspgenerate, make, download, terminal) Multi-threaded design No call-time heap allocation (pools, queues pre-generated) Drivers (DM9000A, sound, lcd, keybd) State machine app implementationSIP and RTP Protocols Constructed SIP protocol for Unicast communication SDP used for Media Session Management Integrated the RTP lib API to create the RTP clientsAsterisk Server Asterisk 1.6 configured in canreinvite=no mode All extensions support UDP traffic SIP Messages and RTP Media Sessions via Asterisk The message flow diagram:Asterisk Server(Registrar)SIP/RTP MessagesVOIP Client 2VOIP Client 1SIP/ RTPHardware Design Interrupts used as an interface to the processor 256 sample buffers in/out 8Khz sample rate Interrupts every 30msecIssues and Lessons Learned Avoid use of 3rdparty software libraries in embedded systems SIP implementation and use of SDP more (RTP) Media Session management TCP/IP can be done very nicely on a small embedded system Test audio with more than just a single toneFuture Work Video calls like Skype Contact lists for easy calling Audio conferencing (multi-way calls) World peace Cure hunger, cancer, etc.`References RFC 3261 (SIP: Session Initiation Protocol) (http://www.ietf.org/html/rfc3261) RFC 1889 (RTP) (http://tools.ietf.org/html/rfc1889) RTP Library API (http://www.cs.columbia.edu/irt/software/rtplib/rtplib-1.0a1/rtp_api.html) Asterisk Server (http://www.asterisk.org/) and PJSIP (http://www.pjsip.org/) Nios II Software Developer’s Handbook (http://www.altera.com/literature/hb/nios2/n2sw_nii5v2.pdf) NicheStack IPv4 Datasheet (http://www.iniche.com/pdf/nichestackipv4_ds.pdf) μC/OS-II (http://www.micrium.com/products/rtos/kernel/benefits.html) HD44780U LCD Display Datasheet (http://www.sparkfun.com/datasheets/LCD/HD44780.pdf) LCD interface timing diagram (http://home.iae.nl/users/pouweha/lcd/lcd0.shtml#_8bit-transfer) LCD interface commands
View Full Document