Introduzione
Il compilatore mikroC comprende, nelle sue più recenti versioni, una libreria denominata "SPI Ethernet Library", con la quale è possibile creare, in modo piuttosto semplice, il software necessario all’utilizzo del controller ENC28J60.
Tale libreria, però, soffre di alcune limitazioni: ad esempio, non prevede la frammentazione e la ritrasmissione dei pacchetti; rimane comunque un valido aiuto per piccoli progetti.
Uno sguardo d’insieme
La libreria fornisce diverse funzioni; quelle basilari sono:
- SPI_Ethernet_Init: inizializza il controller per poter inviare/ricevere dati.
- SPI_Ethernet_doPacket: questa funzione deve essere eseguita più spesso possibile; essa è adibita all’elaborazione dei pacchetti in arrivo.
- SPI_Ethernet_putByte: scrive un byte nel buffer del controller.
- SPI_Ethernet_getByte: legge un byte dal buffer del controller.
Inoltre, l’applicazione che utilizza la libreria deve implementare le funzioni Spi_Ethernet_UserTCP e Spi_Ethernet_UserUDP, le quali vengono chiamate dalla libreria stessa nel momento in cui venga ricevuto un pacchetto (contenente dati) rispettivamente con protocollo TCP ed UDP.
A tali metodi vengono passati alcuni parametri che permettono di selezionare (eventualmente) il servizio da eseguire (tramite il numero di porta), identificare il mittente e conoscere la dimensione del pacchetto ricevuto. Quest’ultimo può essere letto un byte alla volta tramite la funzione SPI_Ethernet_getByte.
L’eventuale risposta andrà scritta nel buffer tramite SPI_Ethernet_putByte, e la sua dimensione dovrà essere il valore di ritorno del metodo Spi_Ethernet_UserTCP o Spi_Ethernet_UserUDP.
Vediamo subito un esempio.