Ethernet 1/7

Ethernet


INTRODUZIONE

L’intento di questa serie di articoli è quella di realizzare un interfaccia Ethernet per microcontrollori PIC, sfruttando il controller ENC28J60 di Microchip.
Cio comprende non soltanto la parte Hardware, ma anche (e soprattutto) quella Software: infatti questi articoli non vertono sull’utilizzo dello stack TCP/IP ufficiale, ma piuttosto sulla creazione di un software "custom" a fini non solo puramente didattici.

Software
Il software di Microchip comprende molte caratteristiche interessanti, ma possiede comunque alcune limitazioni e non è semplicissimo da utilizzare.
Anche la mikroelektronika ha realizzato una piccola libreria per l’uso del controller (si trova con il compilatore mikroC), ma non supportando la frammentazione dei pacchetti (e non essendo possibile modificarla), non si addice molto alla realizzazione di un server HTTP e di qualunque applicazione che preveda uno scambio dati abbastanza consistente (il limite è circa 1.4KB).
Realizzare un proprio stack è un ottimo modo per conoscere i meccanismi che permettono il funzionamento delle reti, ma principalmente agevola l’implementazione di protocolli e funzionalità non previsti in altri stack.
Hardware
Verrà illustrato l’hardware necessario al funzionamento del controller e vedremo quali sono le funzioni e come si configura l’ENC28J60.

Il modello ISO/OSI
Il modello OSI (Open System Interconnection) è stato ideato nel 1978 dall’ISO (International Organization Standardization) al fine di creare uno standard per le comunicazioni tra calcolatori.

Esso è costituito da una pila (stack) di 7 livelli (5 nella versione semplificata); ad ogni livello corrisponde un protocollo, per mezzo del quale due medesimi livelli di sistemi diversi possono comunicare; questo avviene virtualmente in modo diretto ovvero ignorando gli altri livelli.
All’interno dello stesso sistema, ogni livello può comunicare solo con i livelli adiacenti, per mezzo di un’interfaccia.

I livelli del modello semplificato
– Livello 1 : fisico. Si occupa di trasmettere dati nel mezzo fisico (cavo, aria, fibra ottica, ecc.)
– Livello 2 : Datalink. Prepara i dati per essere inviati al mezzo fisico.
– Livello 3 : Rete. Serve per “instradare” i pacchetti nella rete, inoltre aggiunge un distacco dal livello fisico.
– Livello 4 : Trasporto. Assicura la corretta ricezione dei dati, si occupa delle ritrasmissioni in caso di errori e permette di instaurare connessioni.
– Livello 5 : Applicazione. E’ l’ultimo livello della pila e come suggerisce il nome è dove risiedono i vari servizi (HTTP, FTP, E-mail, ecc.).

Incapsulamento
In un pacchetto di rete, i dati dei vari livelli sono incapsulati uno nell’altro, come in una matriosca.
Cio significa che:
– in fase di trasmissione ogni livello invia i propri dati al livello inferiore che aggiunge la propria intestazione (e coda) e poi a sua volta lo invia a livello sottostante fino ad arrivare al mezzo fisico;
– in fase di ricezione ogni livello esamina la sua intestazione e passa i dati al livello superiore

Da notare che la comunicazione non riguarda necessariamente l’ultimo livello, ma avviene sempre tra due livelli uguali.

Questa modularizzazione permette, ad esempio, di trasportare i medesimi dati su supporti fisici diversi: basta pensare alle reti Ethernet e WiFi che trasportano entrambe pachetti TCP/IP, ma su mezzi diversi (cavo ed aria).

Leggi anche:
Ethernet 2/7
Ethernet 3/7
Ethernet 4/7

STAMPA

4 Comments

  1. strange58 28 marzo 2009
  2. Giovanni123 28 marzo 2009
  3. giuseppe ierardi 1 aprile 2011
  4. Emanuele 1 aprile 2011

Leave a Reply