Ethernet Module Development

From Open Circuits

Jump to: navigation, search

This wiki describes the development of Ethernet Module.

Contents

[edit] Architecture

  • See here for block diagram


[edit] Development Roadmap

[edit] Phase 1

  • Select chips and draw schematic and pcb
  • Obtain samples for chip

[edit] Phase 2

  • Device driver
  • Create a Linux socket API wrapper in freertos_posix

[edit] Phase 3

  • Reference to Linux socket/lwip, create libraries for
    • DHCP client
    • HTTP server
      • Decide how to get files (html, css, cgi, etc) from nvm (with/without file system)
      • Decide an efficient means to create and download web page to nvm
    • DNS resolver
    • SMTP mail client
    • SNMP agent
    • TELNET application

[edit] Phase 4


[edit] Software TCP/IP Stack Solution

[edit] Circuit and PCB

Special Item Description Quantity
DM9000AEP Ethernet Controller from Davicom 1
HR911102A RJ45 Connector with Integrated Magnetics for 10/100 Base-TX 1
93LC46B-I/SN 1K Serial EEPROM 1 (Optional)
25MHz Crystal Crystal 1
22pF For Crystal Use 2
220uF For RXVDD25/TXVDD25 1
49.9ohm For RX+/RX-/TX+/TX- 4
6.8kohm For BGRES/BGGND 1
510ohm For LEDs 2


[edit] Software Implementation

[edit] Driver

  • Download dm9000a.c
  • Download dm9000a.h
  • Base on FreeRTOS and dsPIC33 platform
  • Using POSIX-like API:
    • int dmfe_open(int flags): initialize the Ethernet controller for 10MHz Half-Duplex
    • int dmfe_close(): turn off the PHY layer
    • int dmfe_read(void): copy a packet to the default buffer
    • int dmfe_write(unsigned char device, unsigned char *buf, int count): copy count bytes of the data from buf and transmit
    • void dmfe_interrupt(void): process the transmit interrupt from DM9000A

[edit] uIP

  • Light-weight TCP/IP stack designed for 8-bit/16-bit embedded systems

[edit] lwIP

  • Light-weight TCP/IP stack designed for 8-bit/16-bit embedded systems
  • Consume more resource than uIP


[edit] Hardware TCP/IP Stack Solution

[edit] Circuit and PCB

Personal tools