Difference between revisions of "Ethernet Module"

From OpenCircuits
Jump to navigation Jump to search
(update internal links)
 
(57 intermediate revisions by 7 users not shown)
Line 1: Line 1:
==Introduction==
+
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 project aims to develop an Ethernet Module, to be used in conjunction with a 8/16 bits embedded system such as [http://opencircuits.com/DsPIC30F_5011_Development_Board the dsPic33F development board].
 
*The entire Ethernet Module consists of:
 
#Hardware: a LAN card based on [http://www.davicom.com.tw/eng/index.htm Davicom] DM9000A chip
 
#Software: a TCP/IP stack based on [http://www.sics.se/~adam/uip/ uIP] 1.0
 
  
===Useful Links===
+
==Objectives==
====DM9000A====
+
The Internet provides an indispensable means to exchange information over long distances. Connection to the Internet is enabled by following the implementation of the Open Systems Interconnection Reference Model (OSI model). In simple words, internet applications require a TCP/IP stack to pack and unpack information into data packets for proper transmission and reception over the Internet. The TCP/IP stack is usually implemented by software and included in the Operating System. Applications can use the stack transparently through socket programming.
*[http://www.davicom.com.tw/eng/products/dm9000a.htm DM9000A Description]
 
*[http://www.davicom.com.tw/big5/download/Data%20Sheet/DM9000A-DS-F01-101906.pdf DM9000A Datasheet]
 
*[http://www.davicom.com.tw/big5/download/AC/dm9000a/DM9000A%20circuit_EMI_052306.pdf Application Circuit]
 
*[http://www.davicom.com.tw/big5/download/LayoutGuide/DM9000A_9010-LG-V11_031706.pdf Layout Guidelines]
 
*[http://www.davicom.com.tw/big5/download/ApplicationNote/DM9000A%20Application%20Notes%20Ver%201_20_101906.pdf Application Note]
 
*[http://www.davicom.com.tw/eng/download/Driver/driver_9000.htm DM9000A Official Drivers]
 
====uIP====
 
*[http://www.sics.se/~adam/uip/index.php/Main_Page uIP Description]
 
*[http://www.sics.se/~adam/uip/index.php/Documentation uIP Documentation]
 
*[http://www.sics.se/~adam/uip/index.php/Download Download]
 
*[http://sourceforge.net/cvs/?group_id=186227 CVS Repository]
 
====lwIP====
 
*[http://savannah.nongnu.org/projects/lwip/ lwIP Description]
 
====HTML====
 
*[http://www.w3schools.com/default.asp W3 Schools]: Learning how to write HTML and JavaScript
 
*[http://www.nvu.com/index.php Nvu]: Open source HTML Editor
 
====SNMP====
 
*[http://www.snmplink.org SNMP Link]: Information on SNMP Agents
 
*[http://pen.iana.org/pen/PenApplication.page IANA]: Applying a Private Enterprise Number
 
  
 +
Since a full-scale TCP/IP stack consumes a large amount of memory and processing power, a number of small footprint TCP/IP stacks have been devised for embedded systems, such as uIP and lwIP. Nevertheless, these TCP/IP stacks are usually not compatible to socket programming, and being implemented by software, still consumes a considerable amount of system resources. Therefore, hardware chips that implemented the TCP/IP stack (e.g. [http://www.wiznet.co.kr/en/pro02.php?&page=1&num=26 WIZNET W5300]) emerged in recent years so as to offload the computation power from the host microcontroller unit (MCU).
  
==Hardware==
+
This project aims to devise a driver and Linux socket wrapper inside freertos_posix for a hardware implemented TCP/IP stack. It is to be used in conjunction with a 8/16 bits embedded system such as (but not restricted to) the [[DsPIC30F_5011_Development_Board | dsPic33F development board]]. Based on the Linux socket API, common application protocols (DHCP/HTTP/DNS/SMTP/SNMP/TELNET) are devised to enable remote control and monitoring.
  
===Component List===
+
===Benefits===
 +
*Provide a means to perform remote control and monitoring via Internet
 +
*Offload TCP/IP stack to chip, freeing memory and processing power of MCU to perform other tasks (e.g. HTTPS)
 +
*Socket API implementation allows more extensible framework for future development and upgrades
 +
*Enable remote control and monitoring via
 +
**Web browser on desktop computer (better web page design and implementation)
 +
**SNMP agents, controlling and monitoring several instruments simultaneously
 +
**TELNET applications for command prompt control and monitoring
 +
**SMTP by sending out email when critical events occur
  
{|border="1" cellspacing="0" cellpadding="5"
+
===Limitations===
! Special Item !! Description !! Quantity
+
*Higher cost chips compare to software stack
|-valign="top"
+
*Need to change hardware if features in stack are updated
| [http://www.davicom.com.tw/big5/download/Data%20Sheet/DM9000A-DS-F01-101906.pdf DM9000AEP] || Ethernet Controller || 1
 
|-
 
| [http://www.hanrun.com/hr/upfile/2_1_113.pdf HR911102A] || RJ45 Connector with Integrated Magnetics for 10/100 Base-TX  || 1
 
|-
 
| [http://ww1.microchip.com/downloads/en/DeviceDoc/21749F.pdf 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
 
|-
 
|}
 
  
===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]
 
  
 +
==Development==
 +
*[[Ethernet Module Development]]
  
==Software==
 
  
===Driver===
+
==User Guide==
Base in Freertos and dspic platform, see http://chungyan5.no-ip.org/vc/tags/1.09.03/demo_posix/dspic/drivers/dm9000a.c?root=freertos_posix&view=markup
+
*[[Ethernet Module User's Guide]]
 +
 
 +
[[category:projects]]

Latest revision as of 02:59, 4 August 2009

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.

Objectives[edit]

The Internet provides an indispensable means to exchange information over long distances. Connection to the Internet is enabled by following the implementation of the Open Systems Interconnection Reference Model (OSI model). In simple words, internet applications require a TCP/IP stack to pack and unpack information into data packets for proper transmission and reception over the Internet. The TCP/IP stack is usually implemented by software and included in the Operating System. Applications can use the stack transparently through socket programming.

Since a full-scale TCP/IP stack consumes a large amount of memory and processing power, a number of small footprint TCP/IP stacks have been devised for embedded systems, such as uIP and lwIP. Nevertheless, these TCP/IP stacks are usually not compatible to socket programming, and being implemented by software, still consumes a considerable amount of system resources. Therefore, hardware chips that implemented the TCP/IP stack (e.g. WIZNET W5300) emerged in recent years so as to offload the computation power from the host microcontroller unit (MCU).

This project aims to devise a driver and Linux socket wrapper inside freertos_posix for a hardware implemented TCP/IP stack. It is to be used in conjunction with a 8/16 bits embedded system such as (but not restricted to) the dsPic33F development board. Based on the Linux socket API, common application protocols (DHCP/HTTP/DNS/SMTP/SNMP/TELNET) are devised to enable remote control and monitoring.

Benefits[edit]

  • Provide a means to perform remote control and monitoring via Internet
  • Offload TCP/IP stack to chip, freeing memory and processing power of MCU to perform other tasks (e.g. HTTPS)
  • Socket API implementation allows more extensible framework for future development and upgrades
  • Enable remote control and monitoring via
    • Web browser on desktop computer (better web page design and implementation)
    • SNMP agents, controlling and monitoring several instruments simultaneously
    • TELNET applications for command prompt control and monitoring
    • SMTP by sending out email when critical events occur

Limitations[edit]

  • Higher cost chips compare to software stack
  • Need to change hardware if features in stack are updated


Development[edit]


User Guide[edit]