RS-232 Debug con l’oscilloscopio digitale

RS-232 è uno standard ampliamente utilizzato per comunicazioni seriali tra due dispositivi su una breve distanza. È meglio conosciuto per il suo utilizzo in porte seriali di vecchi PC, ma è anche comune per i sistemi embedded come una porta di debug oppure per collegare due dispositivi. Lo standard RS-232-C è stato introdotto nel 1969 ed è stato revisionato due volte da allora, ma i cambiamenti sono stati minimi e i segnali sono interoperabili con RS-232-C. Ci sono anche altri standard correlati, come RS-422 e RS-485, che sono simili ma usano una differente segnalazione per comunicare su lunghe distanze.

RS232: come funziona

I due terminali cui si fa riferimento sono DTE (data terminal equipment) e DCE (data circuit-terminating equipment). In alcune applicazioni, il dispositivo DTE controlla il dispositivo DCE; la differenza tra DTE e DCE è arbitraria. Lo standard RS-232 specifica numerosi segnali, molti dei quali non sono comunemente utilizzati. I due più importanti sono il Transmitted Data (Tx) e il Received Data (Rx). Tx trasporta i dati da DTE a DCE e la linea Tx del dispositivo DTE è la linea Rx del dispositivo DCE.

 

Allo stesso modo, Rx porta i dati da DCE e DTE. Lo standard RS-232 non specifica quali connettori usare. I più comuni sono quelli a 25 pin o a 9 pin. Altri connettori dieci, otto o sei pin. È anche possibile connettere due dispositivi RS-232 sullo stesso circuito senza utilizzare i connettori standard. Quando si connettono due dispostivi RS-232, è di solito richiesto un null modem. Questo dispositivo scambia diverse linee, incluse le Tx e le Rx. In questo modo, ogni dispositivo può inviare dati sulla sua linea Tx e ricevere dati sulla sua linea Rx.

La tabella mostra il pinout utilizzato per un connettore a 9 pin, comunemente utilizzato con i segnali RS-232. Bisogna ricordare che se il segnale è passato attraverso un null modem, molti dei segnali verranno scambiati. E, cosa ancora più importante, quando si provano i segnali RS-232. È spesso di aiuto utilizzare un breakout box.

 

Questo dispositivo permette di provare i segnali con facilità all’interno di un cavo RS-232. I breakout box sono economici e pronti all’uso nei negozi di elettronica. Lo standard RS-232 non specifica il contenuto trasmesso attraverso il bus. Di solito è un testo ASCII, ma vengono utilizzati anche dati binari, spesso divisi in pacchetti. Con il testo ASCII, i pacchetti vengono spesso terminati da una nuova linea. Con i dati binari, si usano invece altri valori, come 00 o FF hex. I dispositivi spesso implementano RS-232 utilizzando un ricevitore/trasmettitore asincrono (UART), che utilizza un registro a scorrimento per convertire un byte di dato in un flusso seriale, e viceversa. Nei progetti embedded, gli UART possono anche comunicare direttamente senza utilizzare un ricetrasmettitore RS-232.

La figura mostra un byte di dato RS-232. Il byte è composto dai seguenti bit:

- Start: il byte inizia con un bit di start

- Data: seguono diversi bit di dati. Otto bit è la soluzione più comune, ma alcune applicazioni utilizzano anche sette bit. Pure quando vengono trasmessi solo sette bit, il dato è informalmente riferito ad un byte. Nella comunicazioni UART to UART, si possono trovare anche dati di 9 bit.

- Parity: un parity bit opzionale.

- Stop: 1 o 2 bit di stop. Un bus RS-232 non ha una linea di clock; ogni dispositivo usa il suo proprio clock per determinare il momento in cui campionare le linee di dati.

Debuggare RS-232 con l'oscilloscopio digitale

Il modulo applicativo DPOxCOMP o l’applicazione SR-COMP abilitano il serial triggering e l’analisi per il bus RS-232. È possibile vedere i dati del proprio RS-232. RS-422, RS-485 o UART comodamente sul proprio oscilloscopio, senza il bisogno di collegarlo ad un PC o ad un decoder specifico. Usando i tasti del pannello frontale del bus, si può definire un bus RS-232 inserendo parametri base, come i canali che vengono utilizzati, il bit rate e il parity (come in figura).

In questo esempio, è stata scelta una decodifica ASCII; la serie MSO/DPO può anche mostrare i dati RS-232 come binari o in esadecimale. Possibile scenario: un dispositivo che interroga un sensore per chiedere i dati su un bus RS-232; il sensore non risponde alla richiesta di dati e bisogna scoprire se il sensore non riceve la richiesta, oppure la riceve ma la ignora. Per prima cosa, bisogna provare le linee Tx e Rx e allestire un bus sull’oscilloscopio, poi configurare l’oscilloscopio in modo da individuare (trigger) quando la richiesta di dati viene inviata attraverso la linea Tx. L’acquisizione è mostrata in figura.

Qui è possibile vedere la linea Tx sul canale digitale 1 e la linea Rx sul canale digitale 0 e viene mostrata la richiesta sulla linea Tx e la risposta sulla linea Rx. I cursori indicano che le risposte arrivano 37 ms dopo la fine della richiesta. Il problema si risolve aumentando il timeout del controller, dando più tempo al sensore per rispondere. Il trigger dell’oscilloscopio della serie MSO/DPO include le seguenti capacità:

 

- Tx Start Bit: innesca il bit che indica l’inizio di un byte.

- Tx End of Packet: innesca l’ultimo byte in un pacchetto. Un pacchetto può essere terminato da uno specifico byte: Null (00 hex), linefeed (0A hex), carriage return (0D hex), space (20 hex) o FF hex.

- Tx Data: attiva fino a 10 byte di valori di dati specificati dall’utente.

- Rx StartBit, Rx End of Packet, e Rx Data: sono simili ai trigger Tx, ma sulla linea Rx.

Con l’oscilloscopio serie MSO/DPO, è possibile vedere facilmente i segnali RS-232, analizzarli e correlarli ad un’altra attività nel proprio dispositivo.

Gli oscilloscopi digitali Tektronix sono disponibili da Farnell


L'articolo è tratto da Debugging Serial Buses in Embedded System Designs di Gina Bonini Technical Marketing Manager @Tektronix.

Oscilloscopio digitale Tektronix MSO2024

L'oscilloscopio Tektronix (4 canali, display TFT color, 200Mhz di banda e campionamento a 1Gsps) è disponibile subito qui nello store.

 

Scarica subito una copia gratis

3 Commenti

  1. Avatar photo Emanuele 31 Gennaio 2012
  2. Avatar photo Edi82 31 Gennaio 2012
  3. Avatar photo Emanuele 1 Febbraio 2012

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend