In questa pagina è analizzato il segnale seriale asincrono, utile per trasmettere dati tra dispositivi con modesta potenza di calcolo.
Come piattaforma di sviluppo verrà usato Arduino.
Arduino dispone al proprio interno di un modulo UART (Universal Asynchronous Receiver Transmitter) cioè un dispositivo hardware che permette di trasmette e ricevere segnali seriali asincroni con codifica NRZ. Tale modulo è permanentemente connesso all'interfaccia USB del PC attraverso l'integrato FT232 (oppure CH340) e quindi non è pienamente utilizzabile.
Il diagramma temporale di in segnale seriale asincrono è costituito da:
Tutti i bit hanno la stessa durata.
Il segnale è disponibile sul pin 1 (Tx) di Arduino.
Qui una trattazione estesa, anche se datata.
L'esempio seguente è relativo ad un segnale a 9 600 bit/s (9 600 baud) trasmesso da Arduino; ciascun bit ha durata 104 µs. Il byte trasmesso è 0x0F (0000 1111) a partire dal bit meno significativo, cioè "al contrario":
Il segnale è generato dal seguente codice:
void setup()
{ Serial.begin(9600);
}
void loop()
{ Serial.write(0x0F);
delay(4);
}
Se si desidera utilizzare più di un'interfaccia seriale è possibile usare la libreria SoftwareSerial che permette la trasmissione e la ricezione di segnali seriali asincroni senza usare hardware dedicato. Questa libreria ha diversi limiti (velocità ridotta, uso pesante della CPU, interrupt disattivate...), ma è una buona risorsa se si vuole usare un'interfaccia seriale per ricevere da dispositivi diversi dal PC oppure serve una seconda interfaccia seriale.
La figura di apertura mostra i segnali relativi a due interfacce seriali gestiti contemporaneamente da Arduino:
Lo scopo è usare Arduino per ricevere e trasmettere in contemporanea due flussi di bit, usando due interfacce seriali. Le fasi seguenti devono essere verificate in sequenza:
Nel caso non si disponga di un oscilloscopio, in questo file è disponibile un esempio utilizzabile con il software di Picoscope in modalità demo.
RS485 permette una comunicazione half-duplex tra più dispositivi, anche su distanze relativamente lunghe distanze. Qui una descrizione approfondita.
Attività 3 [avanzata]
Realizzare il collegamento tra due o più nodi in cui il doppino è pilotato da un integrato MAX485 o simile.
Pagina creata nel dicembre 2021
Ultima modifica: 28 dicembre 2021
Appunti scolastici - Versione 0.1019 - maggio 2023
Copyright 2012-2023, Vincenzo Villa (https://www.vincenzov.net)
Quest'opera stata rilasciata con licenza Creative Commons | Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)