|
||
| Pubblicato il: 19.01.2007 | A cura di: Paolo Conte |
L’intento di questa serie di articoli è quella di realizzare un interfaccia Ethernet
per microcontrollori PIC, sfruttando il controller ENC28J60 di Microchip.
Ciò 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.
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.
Verrà illustrato l’hardware necessario al funzionamento del controller e vedremo quali sono le funzioni e come si configura l’ENC28J60.
Il modello OSI (Open System Interconnection) è stato ideato nel 1978 dall’ISO (International Organization for 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.

In un pacchetto di rete, i dati dei vari livelli sono incapsulati uno nell’altro, come in una matriosca.
Ciò significa che:

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).