Difference between revisions of "Ethernet Module Development"

From OpenCircuits
Jump to navigation Jump to search
 
(update internal links)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
This project aims to develop an Ethernet Module, to be used in conjunction with a 8/16 bits embedded system such as the dsPic33F development board.  
+
This wiki describes the development of [{{SERVER}}/Ethernet_Module Ethernet Module].
  
 
==Architecture==
 
==Architecture==
*See [http://www.opencircuits.com/Multi-purpose_Embedded_System#TCP.2FIP_Stack here] for block diagram
+
*See [[Multi-purpose_Embedded_System#TCP.2FIP_Stack | here]] for block diagram
  
  
Line 34: Line 34:
 
==Software TCP/IP Stack Solution==
 
==Software TCP/IP Stack Solution==
 
===Circuit and PCB===
 
===Circuit and PCB===
*In [http://chungyan5.no-ip.org/vc/?root=ethernet gEDA format] and its gEDA [http://www.opencircuits.com/PCB_Footprints#gEDA_Symbols_and_footprints sym and footprints]
+
*In [http://chungyan5.no-ip.org/vc/?root=ethernet gEDA format] and its gEDA [[PCB_Footprints#gEDA_Symbols_and_footprints | sym and footprints]]
 
{|border="1" cellspacing="0" cellpadding="5"
 
{|border="1" cellspacing="0" cellpadding="5"
 
! Special Item !! Description !! Quantity
 
! Special Item !! Description !! Quantity
Line 69: Line 69:
 
*Download [http://chungyan5.no-ip.org/vc/trunk/demo_posix/dspic/drivers/?root=freertos_posix dm9000a.c]
 
*Download [http://chungyan5.no-ip.org/vc/trunk/demo_posix/dspic/drivers/?root=freertos_posix dm9000a.c]
 
*Download [http://chungyan5.no-ip.org/vc/trunk/demo_posix/dspic/drivers/include/?root=freertos_posix dm9000a.h]
 
*Download [http://chungyan5.no-ip.org/vc/trunk/demo_posix/dspic/drivers/include/?root=freertos_posix dm9000a.h]
*Base on [http://www.freertos.org/ FreeRTOS] and [http://opencircuits.com/DsPIC30F_5011_Development_Board dsPIC33 platform]
+
*Base on [http://www.freertos.org/ FreeRTOS] and [[DsPIC30F_5011_Development_Board | dsPIC33 platform]]
 
*Using POSIX-like API:
 
*Using POSIX-like API:
 
**'''int dmfe_open(int flags)''': initialize the Ethernet controller for 10MHz Half-Duplex
 
**'''int dmfe_open(int flags)''': initialize the Ethernet controller for 10MHz Half-Duplex

Latest revision as of 03:01, 4 August 2009

This wiki describes the development of Ethernet Module.

Architecture[edit]

  • See here for block diagram


Development Roadmap[edit]

Phase 1[edit]

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

Phase 2[edit]

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

Phase 3[edit]

  • 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

Phase 4[edit]


Software TCP/IP Stack Solution[edit]

Circuit and PCB[edit]

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


Software Implementation[edit]

Driver[edit]

  • 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

uIP[edit]

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

lwIP[edit]

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


Hardware TCP/IP Stack Solution[edit]

Circuit and PCB[edit]