Funzioni del terminale ASCII e HEX della porta seriale.

Cos'è il formato ASCII e HEX?

I dati in forma di testo e numeri vengono utilizzati per programmare i dispositivi elettronici. Ma i computer non possono comprendere il linguaggio umano. Possono solo comprendere i dati nella forma di 0 e 1. Per rendere i dati interpretabili dal computer vengono utilizzati molti formati numerici. Alcuni di essi sono il sistema numerico binario, il sistema numerico ottale, il sistema numerico esadecimale, ecc ... Per rendere il testo comprensibile ai computer vengono utilizzati i codici ASCII. Per la conversione dei dati da un formato all'altro vengono utilizzati convertitori interni. La conversione da esadecimale ad ASCII è discussa di seguito. I computer fanno riferimento a una tabella standard di codici ASCII per il riferimento.

Cos'è il formato esadecimale?

Il sistema numerico esadecimale è un sistema numerico posizionale utilizzato per rappresentare i numeri. Utilizza sedici simboli per rappresentare i numeri, da cui il nome 'HEX'. I simboli utilizzati dal sistema esadecimale sono '0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F'. Il sistema numerico esadecimale utilizza anche alfabeti come simboli insieme a quelli numerici. I simboli '0-9' vengono utilizzati per rappresentare i numeri da 0 a 9. I simboli 'A-F' vengono utilizzati per rappresentare i numeri da dieci a quindici. La rappresentazione esadecimale dei numeri richiede quattro bit decimali per ogni cifra.

Cos'è un codice ASCII?

ASCII sta per "American Standard Code for Information Interchange". È una delle pietre miliari dell'IEEE. È uno standard di codifica dei caratteri per la comunicazione elettronica per la rappresentazione di lettere e alfabeti nei computer, nei dispositivi elettronici, ecc ... ASCII è stato sviluppato negli Stati Uniti, utilizzando il codice telegrafico. Nel 1963 è stata pubblicata la prima edizione del codice ASCII. Ha subito molte revisioni nel corso degli anni, e l'ultima aggiornamento è stato effettuato nel 1986.
Il codice ASCII si basa sull'alfabeto inglese. Ha 256 codici carattere, che includono anche 127 caratteri specificati.
Il codice ASCII è diviso in due insiemi: il codice ASCII standard e il codice ASCII esteso. Il codice ASCII standard rappresenta caratteri come 'a' a 'z' e cifre '0' a '9'. Vanno da 0 a 127 in decimale e da 00 a 7F nel formato esadecimale. Questi sono anche noti come caratteri stampabili. Il codice compreso tra 0 e 31 contiene caratteri di controllo assegnati per controllare i dispositivi periferici e non sono stampabili. I codici ASCII estesi contengono simboli e caratteri che vengono principalmente utilizzati in diverse lingue. Vanno da 128 a 255 in decimale o da 80 a FF in esadecimale. I codici estesi, insieme ai codici di controllo presenti nel codice ASCII standard, vengono utilizzati per vari protocolli di comunicazione come RS-232, RS-485, RS-422, TTL. Con il passare del tempo, sono state apportate molte modifiche all'ASCII per includere lingue diverse dall'inglese.

Perché ASCII e HEX sono così importanti da mostrare nella porta seriale?

La maggior parte della comunicazione seriale è basata su byte che non sono sempre stampabili. I caratteri stampabili vanno dal valore HEX 0x20 al valore HEX 0x7F. (Per avere una migliore idea dei caratteri stampabili ASCII fare riferimento a questa tabella).
Ecco quando la visualizzazione in uscita del byte HEX è importante durante l'uso della comunicazione seriale e SerialTool consente di visualizzare contemporaneamente i byte ASCII e HEX.
Con il timestamp seriale in entrata e in uscita appropriato, è possibile individuare rapidamente i byte ricevuti e trasmessi tramite la porta seriale. Questa è una funzione estremamente utile quando si desidera eseguire il debug della comunicazione della porta seriale.
Ad esempio, se si utilizza la funzione Monitor Seriale di Arduino nell'IDE di Arduino, non è possibile visualizzare i byte in ingresso e in uscita a meno che non si crei una propria funzione "printf".
SerialTool ti aiuta in questo compito in modo semplice.

Schermata del Terminale ASCII ed Esadecimale