IP Phone Chip System Design 邱垂民 CS group/EE R92921106 2004/6/15.

Slides:



Advertisements
Similar presentations
Nios Multi Processor Ethernet Embedded Platform Final Presentation
Advertisements

NS Training Hardware. NS9750 System Overview.
purpose Search : automation methods for device driver development in IP-based embedded systems in order to achieve high reliability, productivity, reusability.
StreamBlade SOE TM Initial StreamBlade TM Stream Offload Engine (SOE) Single Board Computer SOE-4-PCI Rev 1.2.
Reporter :LYWang We propose a multimedia SoC platform with a crossbar on-chip bus which can reduce the bottleneck of on-chip communication.
ARM development environment Modified Content Philips LPC2106 ARM chip ARM target board PSPad customised development environment Troubleshooting.
RUAG Aerospace 11 Using SpaceWire as EGSE Interface Anders Petersén, Torbjörn Hult RUAG Aerospace Sweden AB (Saab Space) International SpaceWire Conference.
TigerSHARC and Blackfin Different Applications. Introduction Quick overview of TigerSHARC Quick overview of Blackfin low power processor Case Study: Blackfin.
© ABB Group Jun-15 Evaluation of Real-Time Operating Systems for Xilinx MicroBlaze CPU Anders Rönnholm.
Handheld TFTP Server with USB Andrew Pangborn Michael Nusinov RIT Computer Engineering – CE Design 03/20/2008.
Configurable System-on-Chip: Xilinx EDK
29 April 2005 Part B Final Presentation Peripheral Devices For ML310 Board Project name : Spring Semester 2005 Final Presentation Presenting : Erez Cohen.
Technion Digital Lab Project Xilinx ML310 board based on VirtexII-PRO programmable device Students: Tsimerman Igor Firdman Leonid Firdman Leonid.
Hardware Support for Operating Systems Sunny Gleason Vivek Uppal COM S 414
Getting Started with a Cortex-M3 Board
Ethernet Bomber Ethernet Packet Generator for network analysis Oren Novitzky & Rony Setter Advisor: Mony Orbach Started: Spring 2008 Part A final Presentation.
Ethernet Bomber Ethernet Packet Generator for network analysis Oren Novitzky & Rony Setter Advisor: Mony Orbach Spring 2008 – Winter 2009 Midterm Presentation.
Asst. Prof. Dr. Alper ŞİŞMAN
Embedded Systems Programming Introduction to the course.
Leveraging Existing Application Processors in Mobile Devices to Implement VoIP Client.
OS Implementation On SOPC Final Presentation
NS Training Hardware. System Controller Module.
Hardware Overview Net+ARM – Well Suited for Embedded Ethernet
NET+OS 6.1 Training. BSP NET+OS 6.1 BSP Initialization Memory map New features Debugging Porting Issues.
Embedded Systems Principle of Debugger. Reference Materials kl.de/avr_projects/arm_projects/#winarmhttp://
The 6713 DSP Starter Kit (DSK) is a low-cost platform which lets customers evaluate and develop applications for the Texas Instruments C67X DSP family.
Lecture 5. AT91 - Memory Map, Timers, and AIC -
NetBurner MOD 5282 Network Development Kit MCF 5282 Integrated ColdFire 32 bit Microcontoller 2 DB-9 connectors for serial I/O supports: RS-232, RS-485,
N e v e r s t o p t h i n k i n g. IP-Phone solution 2nd Workshop on Wideband Speech Quality in Terminals and Networks: Assessment and Prediction 22nd.
Embedded Linux porting Kernel
1 New method of video transfer and control functions for training in computer classroom and for audiovisual applications WP4: User Interface SCREENS –
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
LPC2148 Programming Using BLUEBOARD
The integrated Development of Embedded linux and SOC IP
Samsung ARM S3C4510B Product overview System manager
1-1 Embedded Network Interface (ENI) API Concepts Shared RAM vs. FIFO modes ENI API’s.
10/12/ Embedded XINU and WRT54GL. 10/12/ Topics Logic and shift operators Data-driven vs function-driven Embedded XINU and WRT54GL.
Porting Operating Systems Phan Duy Hùng (PhD) ES Lecturer – Hanoi FPT University.
NS7520.
Ethernet Driver Changes for NET+OS V5.1. Design Changes Resides in bsp\devices\ethernet directory. Source code broken into more C files. Native driver.
1 uClinux course Day 4 of 5. 2 Author: D L Johnson CPU Architectures.
NIOS II Ethernet Communication Final Presentation
ARM 7 & ARM 9 MICROCONTROLLERS AT91 1 Development Tools & Partners.
S&IP Consortium Course Material Standard I/O and Core Peripherals Speaker: Tian-Sheuan Chang July, 2004.
Porting Linux Linux onto the Puppeteer SA1110. The Puppeteer board –SA1110 CPU –SMSC LAN91C96I ethernet –8 Mb Flash Intel 28F320C3 Boot block flash –32.
SOC Consortium Course Material Core Peripherals National Taiwan University Adopted from National Chiao-Tung University IP Core Design.
ATtiny23131 A SEMINAR ON AVR MICROCONTROLLER ATtiny2313.
Embedded Network Interface (ENI). What is ENI? Embedded Network Interface Originally called DPO (Digital Product Option) card Printer without network.
AT91 Products Overview. 2 The Atmel AT91 Series of microcontrollers are based upon the powerful ARM7TDMI processor. Atmel has taken these cores, added.
Ethernet Bomber Ethernet Packet Generator for network analysis
Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats All slower than CPU.
ChibiOS/RT Demo A free embedded RTOS
ARM 7 & ARM 9 MICROCONTROLLERS AT91 1 AT91RM9200 Software delivery.
LonWorks Introduction Hwayoung Chae.
NAM S.B MDLAB. Electronic Engineering, Kangwon National University 1.
CEng3361/18 CENG 336 INT. TO EMBEDDED SYSTEMS DEVELOPMENT Spring 2007 Recitation 01.
Tiva C TM4C123GH6PM UART Embedded Systems ECE 4437 Fall 2015 Team 2:
The World Leader in High Performance Signal Processing Solutions IP-PBX introduction Jerry Zeng Blackfin uClinux Team.
Chap. 4 ARM Boot Loader Internals. 2 S3C2500 ARM940T Core module ARM9TDMI CoreIC.
Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective.
Embedded Linux By Gus Wirth. What makes it embedded? ● Rather nebulous, line has blurred over the years ● Limited purpose ● Small resources compared to.
2D-Graphic Accelerator
Voice Controlled Robot by Cell Phone with Android App
Lab 1: Using NIOS II processor for code execution on FPGA
Microcontrollers & GPIO
ECE 3551 Microcomputer Systems 1
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
Chapter 9 Bootloader.
Embedded XINU and WRT54GL
Presentation transcript:

IP Phone Chip System Design 邱垂民 CS group/EE R /6/15

Outline IP-Phone-Chip architecture and function VoIP SoC uPlatform Core architecture and function System Architecture of IP-Phone Software Device drivers and APIs coding uClinux Porting on SOHO gateway Reference

IP-Phone-Chip Development Board Block Diagram

Functional Description of IP- Phone-Chip The IP-Phone-Chip is a complete VoIP single-chip solution. And the network interface is implemented as an auto negotiating 10/100 Mbits/s Ethernet based LAN. This chip includes a complete three- port Ethernet subsystem implemented as a three-port switch (two external, one internal) with priority queuing running at 10/100 Mbits/s

IP-Phone-Chip Function Block Diagram Bridge & DMA AHB APB ARM9TDMI Core Instruction cache Instruction MMU Data Cache Data MMU Write Buffer Embedded ICE MIPS4Kc AMBA Bus I/F ARM9TDMI Core Instruction cache Instruction MMU Data Cache Data MMU Write Buffer Embedded ICE AMBA Bus I/F ARM9TDMI Core Instruction cache Instruction MMU Data Cache Data MMU Write Buffer Embedded ICE AMBA Bus I/F JTAG DSP Core AMBA Bus I/F Internal Memory HBI DSP TSI DSP Core AMBA Bus I/F Internal Memory HBI DSP TSI DSP Core AMBA Bus I/F Internal Memory HBI DSP TSI Reset CLOCK / PLL & POWER Reset CLOCK / PLL & POWER Internal SRAM Internal SRAM Serial Peripheral Interface RTC GPIO / Keypad controller GPIO / Keypad controller IRQ Controller Timer/Counter 2 Timer/Counter 1 Timer/Counter 0 Timer/Counter 2 Timer/Counter 1 Timer/Counter 0 Timer/Counter 2 Timer/Counter 1 Timer/Counter 0 UART 1 UART 0 UART 1 UART 0 UART 1 UART 0 Watchdog Timer EMIF SDRAM Controller SRAM Controller Flash Controller EMIF SDRAM Controller SRAM Controller Flash Controller SDRAM Controller SRAM Controller Flash Controller Ethernet DMA Ethernet DMA 10/100 Mbits/s three-port Ethernet Switch Controller 10/100 Mbits/s three-port Ethernet Switch Controller

Architecture Overview of VoIP SoC uPlatform Core The VoIP SoC uPlatform Core is an integration platform incorporating MIPS 4Kc to implement system-on-a-chip design. The VoIP SoC uPlatform Core is designed for meeting VoIP application that combines peripheral support functions, and follows the AMBA 2.0 on-chip-bus interface to link with. The VoIP SoC uPlatform Core also supports a wide range of memory type and the configurable peripherals to meet system-on-a-chip integration requirements.

Brief Specification of VoIP SoC uPlatform Core (1) AHB BUS CPU: MIPS4Kc 16Kbyte Instruction cache and 16Kbyte data cache. DSP: Improv’s 32-bit Jazz DSP. VLIW processor architecture. Jazz Host Bus Interface with AMBA Bus Wrapper 1 IRQ Controller 1 clock generator with PLL 1 Interrupt controller support external interrupt source External memory interface (EMI) for SDRAM, FLASH, SRAM devices JTAG test and debug control. Dual 10/100 Mbits/s Ethernet MACs. 10/100 Mbits/s three-port Ethernet switch (two external, one internal) with DMA. (TBD) PCI or USB for WLAN module (TBD)

Brief Specification of VoIP SoC uPlatform Core (2) APB BUS SPI: 1 SPI RTC: 1RTC with calendar Watchdog Timer: 1 Watchdog Timer UART: 1 UART GPIO: 4 ports/ 32 pins Timers/Counters: Two, 32-bit Timers/Counters Bridge: with 2channel DMA

System Architecture of SoC Software

Brief Specification of SoC Software Host Software: OS : MoataVista Linux Device drivers for IP-Phone Demonstration System DSP API ( Implemented by C Code) Jitter Buffer Control System Configuration & Management API (Implemented by C Code) Programming Tool Chain (Including Compiling Environment and Source Level Debugger) Supported library: Moatavista Lib Applications for Moatavista (including Busybox, shell) Supported File system: romfs, nfs, ramdisk TCP/IP protocol stack TFTP client, DHCP client Telnetd, httpd Supported VoIP Signaling: SIP (RFC3261), RTP DEMO Console-based and Web-based Configuration System Demo IP Phone Application supporting supplementary services

IP-Phone Demonstration System Keypad /LED JTAG HeaderDB9 MCU ICEUART/ Console WALL JACK Handset DSP ICE JTAG Header CPU + Peripheral IPs Main Board RJ45 RJ11 Jack Header Speaker -Phone PC LCD RJ45 Ether-Switch +MAC DB CODEC EB DSP DB Peripheral DB PHY EB stackable (AHB Extension) (APB Extension)

Device drivers and APIs coding Keypad/LED LCD DSP Ethernet

Brief Specification of DSP DSP Two-channels Voice processing software : Voice codecs: G.711, G.726 G.729a,, G Acoustic echo cancellation with 64ms tail (TBD) Silence Suppression / Comfortable Noise Generation Tone Generation: DTMF, ringing, and call progress tones Voice Activity Detection Three-way conferencing (2 local 2 network) Automatic Gain Control

DSP driver (read data from HBI) VPS DSP HBI interface interrupt ISR DSP driver SIGIO Kernel mode User mode DSP API API_ISR Wrapper API VDB

DSP driver (write data to HBI) Wrapper API calls VPS_WriteChannelData() in DSP API, then DSP API writes the voice data into kernel mode, and DSP driver saves the data in the transmit_ring_buffer. When interrupted, ISR writes the data in transmit_ring_buffer into Rx_VDB.

Eth driver (1) esw_init_module() register_netdev() esw_init() switch_init() to set up ARL decision register(04h) to zero to disable all port first ether_setup() to assign some of the fields set MAC address in net_device data structure write MAC address to hardware via ARL decision register (30h, 34h) set net_device methods (open, stop, do_ioctl, get_stats, tx_timeout, hard_start_xmit) set net_device data members (watchdog_timeo, irq, dma)

Eth driver (2) esw_open() Disable esw irqs (ESW_IRQ_FS_RCV_OK, ESW_IRQ_TS_TX_OK, ESW_IRQ_TS_QUEUE_EMPTY, ESW_IRQ_FS_QUEUE_FULL) Register ESW init fs, ts ring buffers enable_irq() Start the transmit queue enable switch dma interrupts via BASE_ADDR_INT_REGS(04h) enable from-switch dma function via BASE_ADDR_DMA_REGS(04h) set up ARL decision register(04h) to ARL_DECISION_VALUE

Eth driver (3) esw_get_stats() return esw_private->esw_stats esw_tx_timeout() esw_show_state() to print some items for debugging esw_start_xmit() Check if there are enough space Calculate the TS descriptor entry Trigger the command unit resume (BASE_ADDR_DMA_REGS(00h) To Switch Enable)

Eth driver (4) esw_fs_rcv_ok_interrupt(): Packet from switch received OK Clear FS_RCV_OK status register bit by write 1 (BASE_ADDR_INT_REGS(00h)) Check for a rare out-of-memory case dev_alloc_skb(): allocate an skbuff for sending skb_reserve(): Align IP on 16 byte boundaries eth_type_trans(): Determine the packet's protocol ID netif_rx(): queues a received packet for the upper (protocol) levels to process enable from switch interrupt again

Eth driver (5) esw_ts_tx_ok_interrupt(): Packet to switch transmitted OK esw_ts_buffer_gc(): Free the original skb dev_kfree_skb_irq(): raise softirq esw_tsqe_interrupt(): TS Queue Empty Interrupt Clear TSQE status register bit by write 1 (BASE_ADDR_INT_REGS(00h)) netif_wake_queue(): test_and_clear_bit dev- >state

Eth driver (6) esw_fsqf_interrupt(): FS Queue Full Interrupt Clear FSQF status register bit by write 1 (BASE_ADDR_INT_REGS(00h)) esw_init_fs_desc_ring() init from switch (rx) ring write FS base addr and fssd to hardware (BASE_ADDR_DMA_REGS(14h,0Ch)) disable fs dma first enable from-switch dma function

Functions of SML

IP Phone Software Architecture Input Unit Call Unit Wrapper API Media Unit Display Unit Network Configuration Data IP Phone Software Architecture K200 SIP SML API LCD API Keypad API RTP Packet DSP API

uClinux Porting on SOHO gateway

Brief Specification of SOHO gateway The SOHO gateway inherit from Samsung4510A Fully 16/32-bit RISC architecture ARM7TDMI core JTAG-based debug solution External bus for ROM/SRAM, flash memory, DRAM and external I/O Unified Instruction/Data Cache Ethernet controller DMA engine with burst mode 100/10-Mbit per second operation DMA controller UARTs Timers Programmable I/O Interrupt controller

Steps of porting Download a uClinux distribution for Samsung 4510B Build ARM toolchain based on gcc Modify some kernel files according to your platform Build the big endian kernel Using TRACE32 to download image file onto the SDRAM on SOHO gateway and debug the kernel

Build ARM toolchain based on gcc Build form the tar balls Install binutils Install elf2flt Install genromfs Install gcc

Build kernel Make menuconfig Make dep Make lib_only Make user_only Make romfs Make image Make

Modify some kernel files include/asm/arch/hardware.h include/asm/arch/io.h include/asm/arch/irq.h include/asm/arch/irqs.h include/asm/arch/memory.h include/asm/arch/param.h include/asm/arch/system.h include/asm/arch/vmalloc.h …

Reference MontaVista Linux User’s Guide The Wookey’s “Porting the Linux Kernel to a New ARM platform” The Wookey’s “GNU Toolchain for ARM targets HOWTO”. Listing of GCC releases. Documents in the kernel source tree. google

Thank You!!