fpga4fun.com - where FPGAs are fun.
Home
Welcome
Information


FPGA projects
Music box
Pong game
R/C servos
Text LCD module
Quadrature decoder
PWM and one-bit DAC
Debouncer
LED displays
Crossing clock domains
External contributions

FPGA interface projects
RS-232
JTAG
I2C
EPP
SPI
CNC steppers

FPGA advanced projects
Graphic LCD panel
Digital oscilloscope
10BASE-T interface
PCI interface
Spoc CPU core

Hands-on
A simple oscilloscope


FPGA introduction
What are FPGAs?
How FPGAs work
FPGA pins
Clocks and global lines
Download cables
Configuration
Learn more

FPGA software
Design software
Pin assignment
Design-entry/HDL
Simulation/HDL
Synthesis and P&R

FPGA electronic
SMD technology
Crystals and oscillators

HDL info
HDL tutorials
Verilog tips
VHDL tips

Quick-start guides
ISE
Quartus

Site
News
FPGA links
HDL tutorials
Forum


10BASE-T FPGA interface part 2 - IP/UDP over Ethernet

Let's concentrate on Ethernet/IP/UDP packets.
These packets are simple to produce; yet powerful, they can make their way on the Internet (and be sent anywhere in the world!).

Here's an example:

55 55 55 55 55 55 55 D5 00 10 A4 7B EA 80 00 12 34 56 78 90 08 00 45 00 00 2E B3 FE 00 00 80 11 05 40 C0 A8 00 2C C0 A8 00 04 04 00 04 00 00 1A 2D E8 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 B3 31 88 1B

Read on, it is decoded below.

Protocol stack

The packet uses three different protocols: Ethernet, IP and UDP (low to high level protocols).
Each protocol adds its own functionality and is embedded into a lower level one. The UDP is embedded into the IP, which itself is embedded into the Ethernet. This is a good example on how network protocols are used together.
The packet shown above is decoded here: You can notice the IPs used: from "192.168.0.44" to "192.168.0.4". These are local IPs, this packet won't go very far...

Create your own packets

Here's a simple software that allows to create custom Ethernet/IP/UDP packets.
Download it here. Source code is included (Delphi for now, if anyone translates it to C/C++, please send).



Every time you press the "Send!" button, the software builds a packet, displays it and sends it to the serial port (that will be useful later in part 3 of this project).

>>> NEXT: 10BASE-T FPGA interface part 3 - Sending packets >>>



This page was last updated on November 05 2006.