1 / 28

Implementation LAN91c111-NE driver on Altera cyclone NIOS SoC development board

Implementation LAN91c111-NE driver on Altera cyclone NIOS SoC development board. 蕭詣懋 SoC EE CCU 5/23/2005. 蕭詣懋 “93mowmow@vlsi.ee.ccu.edu.tw”. outline. Introduction Cyclone board ( platform introduction) lwIP Lan911c. introduction.

nessa
Download Presentation

Implementation LAN91c111-NE driver on Altera cyclone NIOS SoC development board

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Implementation LAN91c111-NE driver on Altera cyclone NIOS SoC development board 蕭詣懋 SoC EE CCU 5/23/2005 蕭詣懋“93mowmow@vlsi.ee.ccu.edu.tw”

  2. outline • Introduction • Cyclone board ( platform introduction) • lwIP • Lan911c

  3. introduction • Porting a open source TCP/IP stack (Lwip) on Altera Nios Cyclone development borad

  4. Cyclone board

  5. Features A CycloneTM EP1C20F400C7device • 8 Mbytes of flash memory • 1 Mbyte of static RAM • 16 Mbytes of SDRAM • On board logic for configuring the Cyclone device from flash memory • On-board Ethernet MAC/PHY device • Two RS-232 DB9 serial ports

  6. Our idea • Find a small TCP/IP for small device. The small TCP/IP named LWIP that is created by Adam Dunkels. • We hope that we can port LWIP to Nios and develop some sample programs for verifying it “Adam Dunkels” http://www.sics.se/~adam/

  7. LWIP feature lwIP is an implementation of the TCP/IP protocol stack. The focus of the lwIP stack is to reduce memory usage and code size, making lwIP suitable for use in small clients with very limited resources such as embedded systems. In order to reduce processing and memory demands,lwIP uses a tailor made API that does not require any data copying. This report describes the design and implementation of lwIP. The algorithms and data structures used both in the protocol implementations and in the sub systems such as the memory and buffer management systems are described. “lwip” http://savannah.nongnu.org/projects/lwip/

  8. lwIP

  9. Line of LWIP code

  10. Introduction to lwIP • Since small devices such as sensors are often required to be physically small and inexpensive……….. • lwIP describes the design and implementation of a small TCP/IP stack that is small enough to be use in minimal system.

  11. Protocol layering • lwIP allows using a more relaxed scheme for communication between the application and the lower layer protocol • Shared memory • Also, since the application process can use the same memory as the networking code the application can read and write directly to the internal buffers, thus saving the expense of performing a copy.

  12. Overview • lwIP consists of several modules: • Operating system emulation layer • Buffer and memory management subsystems • Network interface functions • Functions for computing the Internet checksum • lwIP also includes an abstract API

  13. Process model • lwIP • It uses a process model in which all protocols reside in a single process and thus separated form the operating system kernel • AP may either reside in the lwIP process, or be in separate process.

  14. Process model (cont’) • Having lwIP implemented as a user space process rather than in the operating system kernel has both its advantages and disadvantages: • advantages That is portable across different operating system • disadvantages The problem of having to wait for a scheduling quantum before getting a chance to service requests still is problem.

  15. The operating system emulation layer • In order to make lwIP portable: • The operating system emulation layer provides a uniform interface to operating system services such as timers, process synchronization, and message passing mechanisms.

  16. Buffer and Memory Management • Packet Buffers – pbufs • Similar to mbuf • Allocating dynamic memory to hold packet contents • Letting packet data reside in static memory

  17. Buffer and Memory Management • 3 types: • PBUF_RAM • Header stored in a PBUF_RAM • PBUF_ROM • Data is located in PBUF_ROM • This data may not modified • PBUF_POOL • Allocating a single pbuf is fast • Used by network device driver

  18. Buffer and Memory Management A PBUF_RAM pbuf chained with a PBUF_ROM pbuf that has data in external memory

  19. A chained PUBF_POOL pubf from the pbuf pool

  20. Network interface - LWIP

  21. Network interface - BSD

  22. TCP Processing - LWIP

  23. UDP processing - LWIP

  24. Single Chip Ethernet Controller • Dual Speed - 10/100 Mbps • 8 Kbytes Internal Memory for Receive and Transmit FIFO Buffers • Supports 8, 16 and 32 Bit CPU Accesses • Internal 32 Bit Wide Data Path (Into Packet Buffer Memory) • Single 25 MHz Reference Clock for Both PHY and MAC • Low Power CMOS Design

  25. Lan911c block diagram

  26. Timing diagram

  27. demo Linux Cyclone A lwip program (tcp_receiver.c) A stander socket program ( tcp_sender.c )

More Related