Ethernet controllers a confronto

Scopo di questo articolo è quello di percorrere una panoramica nel variegato e ricco mondo dei controller Ethernet. Questo tipo di interfaccia è sempre più comune in molti dispositivi elettronici, consentendo l’espletamento di importanti funzionalità quali ad esempio il controllo ed il monitoraggio  remoto.

La maggior parte degli apparati elettronici, anche quelli embedded, dispone oggi di un’interfaccia Ethernet, tramite la quale è possibile configurare, controllare e monitorare il funzionamento anche da remoto. L’interfaccia Ethernet, a livello di potocollo di comunicazione, si appoggia poi spesso sul protocollo TCP/IP, il cui stack è disponibile sulla maggiorparte dei microcontrollori di fascia medio-alta. Assegnando all’interfaccia Ethernet un indirizzo IP, è possibile inserire l’apparato all’interno di una rete e renderlo raggiungibile da una postazione remota, collegandosi via rete con applicazioni dedicate oppure tramite un comodo web server.

Un po’ di storia

L’Ethernet costituisce un layer fisico tramite il quale è possible realizzare delle reti locali (in inglese: local area network, o semplicemente LAN) ed è una tecnologia che è stata introdotta oltre trenta anni fa. Nel corso di questi anni essa si è imposta come la tecnologia LAN con la maggiore diffusione al mondo, grazie alle sue caratteristiche di elevata velocità, basso costo, e semplicità di installazione ed utilizzo. Inoltre, l’Ethernet ha l’importante caratteristica di supportare un’ampia gamma di protocolli di rete, consentendo l’integrazione tra sistemi appartenenti a produttori differenti. La nascita dell’Ethernet viene fatta risalire ad un ingegnere della Xerox, Robert Metcalfe, che per primo nel 1973 realizzò una prima, e per quei tempi innovativa, versione di rete che interconnetteva tra loro delle workstation con delle stampanti. Nonostante l’importante scoperta di Metcalfe e dei suoi collaboratori fosse coperta da brevetto e nonostante il fatto che Xerox di fatto fosse proprietaria dell’invenzione, non venne impedito a questo standard di diffondersi rapidamente a livello mondiale, mettendo a disposizione di tutti questa promettente tecnologia.

Gli standard Ethernet

La prima rete Ethernet realizzata da Metcalfe disponeva di una velocità pari a circa 2.94 Mbps, ma già nel 1980 un consorzio di società tra cui figuravano Digital Equipment Corporation (DEC), Intel, e Xerox, elaborò uno standard Ether net per reti a 10 Mbps. In quello stesso anno, l’ente americano  IEEE (Institute of Electrical and Electronics Engineers) fondò un comitato con lo scopo dichiarato di creare un nuovo standard per reti aperte. La risposta non tardò ad arrivare: nel 1985, il  comitato pubblicò la parte di standard relativa all’Ethernet, nota come IEEE 802.3 Carrier Sense Multiple Access with Collision Detection (CSMA/CD); questa parte di standard definiva sia il metodo di accesso che il livello fisico. Lo standard emesso dall’IEEE è stato successivamente adottato sia dall’ANSI (American National Standards Institute) che dall’ISO (International Organization of Standards). La normativa ISO è molto importante in quanto è il modello a cui fanno riferimento le società che producono dispositivi per reti Ethernet (controller, switch, router, hub, ecc.). La tabella 1 riassume i principali standard Ethernet che si sono succeduti dal 1985 ai giorni nostri.

Tabella 1: i principali standard Ethernet dal 1985 ai giorni nostri.

Tabella 1: i principali standard Ethernet dal 1985 ai giorni nostri.

Lo standard IEEE 802.3u pubblicato nel 1995 portò la velocità dell’Ethernet, ottenibile sia su filo di rame che su fibra ottica, a 100 Mbps. Sebbene lo standard 100Base-T fosse molto simile al 10Base-T, non tutti a quei tempi richiedevano una tale larghezza di banda. Per risolvere eventuali conflitti tra i  due sistemi, questo standard introdusse anche il concetto di autonegoziazione, cioè una procedura attraverso la quale i dispositivi collegati in rete possono appunto “contrattare” e decidere la velocità da adottare. Le reti Fast Ethernet, che obbediscono  a questo standard, sono in grado di funzionare ad entrambe le velocità, commutando automaticamente da una all’altra quando occorra adeguarsi alle velocità di altri dispositivi. Nel 2002, con lo standard 802.3ae, venne introdotto lo standard relativo al Gigabit Ethernet: questo si comporta come l’Ethernet 10 Mbps e 100 Mbps, con la differenza che consente di raggiungere velocità molto superiori, sia su filo di rame che su fibra ottica. Gigabit Ethernet supporta la modalità full duplex, il controllo di flusso, ed il  Simple Network Management Protocol (SNMP), un protocollo molto usato per la configurazione ed il controllo dei network element (switch, router, ecc.). Permette inoltre l’utilizzo dei jumbo frame, cioè dei frame di lunghezza compresa tra 64 e 9215 byte, superando così la limitazione dell’Ethernet standard che prevedeva una dimensione compresa tra 64 e 1518 byte. L’utilizzo dei jumbo frame riduce drasticamente il numero di pacchetti che viaggiano sulla rete, consentendo un utilizzo più efficiente della banda disponibile.

MAC address  e IP address

Ogni Network Interface Card (NIC, in pratica ogni dispositivo in grado di consentire il collegamento a una rete) Ethernet dispone di un identificativo univoco chiamato MAC address, assegnato dal produttore della scheda: esso si compone di 48 bit (6 byte), in cui i primi 24 bit identificano univocamente  il produttore, mentre i restanti  costituiscono una sorta di serial number per identificare univocamente quel dispositivo di rete. L’indirizzo IP si compone di due parti: indirizzo di rete ed indirizzo host. Ogni rete dispone di un proprio indirizzo univoco assegnato dal Network Information Center e costituisce la prima parte dell’indirizzo IP; la seconda è rappresentata dall’indirizzo dell’host, anch’esso univoco. L’indirizzo IP è composto da quattro byte e la notazione più diffusa è quella che prevede l’utilizzo dei punti per separare le quattro parti dell’indirizzo; ad esempio: 164.125.45.22 è un’indirizzo IP.

I controller Ethernet

Oggi sul mercato esistono molti dispositivi in grado di supportare lo standard Ethernet, sia a livello MAC (Medium Access Control) che a livello PHY (il livello fisico). Alcuni di questi controller sono dispositivi stand-alone, altri sono integrati all’interno di microcontrollori che spesso dispongono già di altre interfacce di comunicazione quali il  CAN bus oppure l’USB. Nel seguito verranno presi in considerazione alcuni di questi componenti, precisando però che la selezione offerta dal mercato è molto ampia, pertanto non sarà possibile condurre un’analisi esaustiva.

Microchip ENC28J60

Si tratta di un controller Ethernet standalone (vedi figura 1), che ai tempi della sua presentazione, nel 2005, era il più piccolo al mondo. L’ENC28J60 presenta le seguenti caratteristiche:

» è conforme allo standard IEEE 802.3, integrando sullo stesso chip sia l’Ethernet Physical Layer (PHY) che il Medium Access Control (MAC) a 10 Mbps;

» dispone di un’interfaccia seriale (SPI)

che semplifica la connessione verso il controllore host a sole quattro linee. La velocità di questa SPI è pari a 10 Mbps, e possono essere interfacciati persino microcontrollori ad 8 bit;

» ha 28 pin ed è disponibile in diversi tipi di package (visibili sempre in figura 1);

» dispone di un buffer dual-port SRAM di 8 Kb per la memorizzazione dei pacchetti, riducendo la quantità di memoria necessaria sul controllore host;

» ha  una  funzionalità  di  filtering  programmabile dei pacchetti, siano essi di tipo Unicast, Multicast, oppure Broadcast. Questa importante caratteristica riduce notevolmente  il carico di lavoro del controllore host;

» supporta le modalità full ed half-duplex;

» è economico e semplice da utilizzare;

» microchip for nisce gratuitamente lo stack software TCP/IP;

» sempre da Microchip è disponbile una scheda di interfaccia Ethernet (PICtail) progettata appositamente per agevolare lo sviluppo su questo componente.

Tutte queste proprietà fanno dell’ENC28J60 la soluzione adatta per chi desidera dotare la propria applicazione embedded di un’interfaccia Ether net, consentendo l’accesso ed il controllo da remoto. Data la sua economicità e facilità di utilizzo, questo componente ha riscosso un notevole successo anche in ambito hobbystico ed amatoriale.

Microchip PIC18F97J60

Questa famiglia di microcontrollori ad 8bit integra una periferica Ethernet con velocità pari a 10Mbps, una soluzione quindi ideale per applicazioni di controllo e monitoraggio a distanza quali automazione industriale, strumentazione, automazione domestica, e sicurezza.  Il controllore Ethernet integrato su questi PIC ha le medesime caratteristiche e funzionalità del modello stand-alone ENC28J60.

Maxim DS80C400-411

Si tratta di un microcontrollore a 100 pin ad elevato grado di integrazione basato sul core 8051, con spiccate caratteristiche per l’utilizzo in veste di “network controller”. Le periferiche in dotazione includono infatti un MAC Ethernet 10/100, tre porte seriali, un controllore CAN 2.0B, 1-Wire Master, e 64 pin di I/O configurabili. Lo stack TCP/IP è mappato sulla ROM del controllore, supporta fino a 32 connessioni contemporaneamente, ed è in grado di raggiungere un transfer rate pari a 5 Mbps. Le caratteristiche della periferica Ethernet si possono così riassumere:

» Interfaccia Ethernet MAC 10/100 compatibile con lo standard IEEE 802.3.

» Buffer  di trasmissione/ricezione da 8 Kb.

» Supporto per modalità half e full-duplex, e controllo di flusso.

» Filtering degli indirizzi Multicast e Broadcast con supporto per le VLAN.

» Bassissimo assorbimento di potenza nella modalità sleep, da cui può essere risvegliato alla ricezione di un frame Ethernet.

» Il MAC address può essere opzionalmente acquisito dal componente dello stesso produttore DS2502-E48.

NetBurner MOD5234

I  moduli NetBurner permettono di realizzare in modo rapido delle applicazioni basate sul controllo via Web e sono basati sul microprocessore Freescale ColdFire 5234 a 32-bit, in grado di fornire prestazioni superiori a 140 MIPS (figura 2).

Figura 2: il modulo NetBurner MOD5234.

Figura 2: il modulo NetBurner MOD5234.

Il modulo supporta la modalità Fast Ethernet, e quindi entrambe le velocità 10/100 Mbps. Questo modulo può essere impiegato come processore principale dell’applicazione, oppure come secondo processore di rete, disponendo di 2 Mb di memoria flash, 8 Mb di memoria SDRAM, ed il controllore Fast Ethernet unitamente al connettore RJ-45 ed ai led dell’interfaccia fisica. NetBurner mette inoltre a disposizione degli sviluppatori un completo kit di sviluppo, il quale include: la piattaforma hardware, l’ambiente di sviluppo (IDE) Eclipse con compilatore GNU C/C++, lo stack TCP/IP, un sistema operativo, un Web server,  il debugger grafico GDB e moltre altre utilità.

Renesas  Technology  H8S/2400 e SH7670

I  microcontrollori Renesas della serie H8S/2400 dispongono di una periferica Ethernet 10/100 con le seguenti caratteristiche (vedi figura 3):

» trasmissione e ricezione di frame Ethernet secondo lo standard IEEE802.3u MII (Media Independent Interface);

» supporto  per  entrambe  le  velocità 10/100 Mbps;

» supporto per le modalità full-duplex e half-duplex;

» riconoscimento dei Magic Packet e funzionalità di Wake-On-LAN (WOL);

» controllo di flusso conforme allo standard IEEE802.3x;

» controllore DMA dedicato (E-DMAC). Questo controllore richiede un Ethernet PHY 10/100 esterno. Il microcontrollore SH7670 è invece basato su un core RISC con architettura interna a 32-bit e dispone di un controllore Ethernet integrato con un media access control (MAC) conforme allo standard IEEE802.3u, supportando  quindi  entrambi  i  data  rate 10/100 Mbps. Le caratteristiche del controllore Ethernet integrato sono del tutto simili a quelle del modello H8S/2400, inclusa la necessità di utilizzare un layer fisico (PHY) esterno, e la disponibilità di un controllore per l’accesso diretto alla memoria (E-DMAC) in grado di sollevare notevolmente la CPU a livello di elaborazione.

Figura 3: i microcontrollori Renesas.

Figura 3: i microcontrollori Renesas.

STMicroelectronics STR910F

La serie di microcontrollori STR910F di STM (figura 4), basata sul core processor ARM9E, dispone di due bus interni separati per l’accesso simultaneo al codice ed ai dati, una memoria SRAM ed una memoria Flash che possono arrivare, rispettivamente, fino a 96 e 544 Kbyte, ed integra un controllore Ethernet con Media Independent Interface (MII) conforme allo sandard IEEE802.3-2002.

Figura 4: STM STR910F.

Figura 4: STM STR910F.

L’STR910F richiede un dispositivo esterno per realizzare il livello fisico (PHY) dell’interfaccia  di rete, il quale si connette alla porta MII tramite 18 segnali. Il modulo MAC del controllore presenta le seguenti caratteristiche:

» supporto per entrambi i data rate 10 e 100 Mbps;

» supporto per i tagged frame (gestione delle VLAN, o lan virtuali);

» Operatività  in half e in full-duplex;

» Generazione  e rimozione del CRC a 32-bit;

» supporto per diverse modalità di filtraggio dei pacchetti in base ad indirizzi fisici e multicast;

» Canale  DMA a 32-bit per trasferimenti ad alta velocità.

NXP LPC176x e LPC23xx

NXP Semiconductors, società fondata dalla Philips, propone due microcontrollori a 32-bit entrambi dotati di un MAC Ethernet 10/100 (figura 5).

Figura 5: i microcontrollori NXP.

Figura 5: i microcontrollori NXP.

Il  modello LPC176x ha una frequenza di 100 MHz ed è basato sul core Cortex-M3, mentre l’LPC23xx ha una frequenza di 72 MHz ed è basato sul core ARM7.

Silicon  Labs CP220x

Il CP220x è un controllore Ethernet singlechip che dispone di un Media Access Controller (MAC) conforme allo standard IEEE 802.3, un livello fisico (PHY) 10Base-T ed 8 Kbyte di memoria  Flash, il tutto incluso in un contenitore 28-pin QFN (5x5 mm) oppure 48-pin TQFP (9x9 mm). Il  controllore CP220x permette di aggiungere la funzionalità Ethernet a qualunque microcontrollore o microprocessore che disponga di almeno 11 porte di I/O. La memoria flash viene programmata durante la fabbricazione con un MAC address univoco memorizzato nelle ultime sei locazioni di memoria. Ulteriori caratteristiche di questo controllore Ethernet sono le seguenti:

» Supporto per le modalità half e full-duplex con autonegoziazione.

» Riconoscimento e correzione automatica della polarità.

» Disponibilità gratuita del TCP/IP stack e dei device driver.

» Interfaccia parallela per la comunicazione con l’host in grado di raggiungere un transfer rate pari a 30 Mbps.

In figura 6 è presentato lo schema a blocchi del controllore in cui si evidenziano l’interfaccia parallela verso l’host ed il livello fisico.

Figura 6: Silicon Labs CP220X.

Figura 6: Silicon Labs CP220X.

Broadcom  Corporation, AMD, e Intel

Broadcom Corporation, un’azienda leader nella fornitura di soluzioni Gigabit Ethernet e 10-Gigabit Ether net, dispone di un’ampia gamma di controllori Ethernet, con interfacce su bus PCI, PCI-X, e PCIExpress. AMD dispone invece di una serie di controllori Ethernet, chiamata Pcnet, tutti con bus PCI ed in grado di supportare gli standard 10 e 100 Base-T. Intel, infine, dispone anch’essa come Broadcom Corporation, di una multitudine di controllori Gigabit, 10-Gigabit, e Fast Ethernet, con MAC e PHY integrati.

Un “packet sniffer” molto utile

Wireshark è un’applicazione  di packet sniffing liberamente scaricabile dal web all’indirizzo www.wireshark.org. Essa permette di eseguire il monitoraggio, la cattura, e l’analisi dei pacchetti che viaggiano sulla rete a cui è connesso il computer sul quale l’applicazione viene installata. Wireshark fornisce il supporto per numerosi protocolli di rete, tra cui il TCP/IP e l’SNMP, e permette di applicare dei filtri (con espressioni anche molto complesse configurabili dall’utente) in modo tale da visualizzare solo quelli che interessano. Wireshark è un progetto open-source, basato su una licenza  GNU, e quindi liberamente utilizzabile. Esiste anche una versione precedente del programma, del tutto simile, nota con il nome Ethereal. Per poter intercettare i pacchetti che viaggiano sulla rete senza provocare alcun disturbo su di essa, Wireshark sfrutta un’importante funzionalità messa a disposizione dalle schede di rete: queste, infatti, possono essere programmate nella cosiddetta modalità “promiscua”, in cui consentono di eseguire il monitoraggio del traffico. Il grande vantaggio offerto da Wireshark è quello di fornire una rappresentazione grafica molto dettagliata dei pacchetti, la cui struttura viene riconosciuta ed interpretata in base al tipo di protocollo impiegato. In figura 7 è mostrata una tipica schermata ottenuta con Wireshark.

Figura 7: una screenshot di Wireshark

Figura 7: una screenshot di Wireshark

Wireshark supporta in modo nativo lo standard Ethernet, ma è anche in grado di riconoscere altri tipi di reti tra cui l’IEEE 802.11, il Point-To-Point (PPP), ed i loopback. Wireshark è inoltre un’applicazione cross- platform, dal momento che è disponibile per diversi sistemi operativi, tra cui Linux, Microsoft Windows, e Mac OS X.

 

 

Scrivi un commento