Debugging dei bus seriali nei sistemi embedded con l’oscilloscopio digitale

I sistemi embedded sono presenti praticamente ovunque nella nostra società. Una definizione base di sistema embedded è quella di un sistema di computer con uno scopo preciso, che è parte di un sistema più grande al quale offre servizi di controllo e di monitoraggio. Un tipico sistema embedded inizia con l’avviare delle apposite applicazioni quando viene acceso e le termina solo una volta che è stato spento. Virtualmente, ogni dispositivo elettronico prodotto oggi può essere considerato un sistema embedded.

 

Vediamone una lista esplicativa:

- Le casse automatiche

- Telefoni cellulari

- Stampanti

- Forni a microonde

- Sistemi a guida inerziale per missili

- Lettori DVD

- PDA

- PLC per il monitoraggio e l’automazione industriale

 

I sistemi embedded possono contenere differenti tipi di dispositivi, inclusi i microprocessori, i microcontrollori, DSP, RAM, EPROMs, FPGAs, A/Ds, D/As, e I/O. Fino ad ora questi dispositivi hanno comunicato con l’ambiente esterno e tra di loro utilizzando ampi bus paralleli. Oggi, tuttavia, questi bus tendono ad essere sostituiti con bus in serie per le seguenti ragioni:

- È richiesto meno spazio sul circuito a causa di un numero inferiore di segnali da convogliare - Costi minori - Richiesta inferiore di energia

- Un numero inferiore di connettori

- Clock embedded

- Segnalazione differenziale per una migliore noise immunity

 

Mentre i bus seriali offrono un certo numero di vantaggi, al tempo stesso pongono delle difficoltà significative per i progettisti di sistemi embedded, per il fatto che il segnale viene trasmesso in serie piuttosto che in parallelo. Questa nota applicativa indaga i problemi comuni per i progettisti di sistemi embedded e spiega come risolverli utilizzando le capacità degli oscilloscopi della serie MSO/DPO- – MSO/DSA/DPO70000C, DPO7000C, MSO/DPO5000, MSO/DPO4000B,MSO/DPO3000 e della serie MSO/DPO2000.

Bus Parallelo contro bus seriale

Con un’architettura parallela, ogni componente del bus possiede il suo proprio percorso del segnale. Ci potrebbero essere 16 linee di indirizzi, 16 linee di dati, una linea di clock e vari altri segnali di controllo. I valori inviati attraverso il bus vengono trasferiti nello stesso tempo lungo tutte le linee parallele. Questo rende relativamente facile capire a prima vista i dati ottenuti sia sull’oscilloscopio che sul display di un analizzatore logico.

Per esempio, nella figura in alto è stato utilizzato un analizzatore logico per acquisire il clock, l’indirizzo, i dati e le linee di controllo da un microcontrollore. Utilizzando uno state trigger abbiamo potuto isolare il transfer del bus che stavamo cercando; per decodificare ciò che accade sul bus, dobbiamo osservare lo stato logico di ogni indirizzo, dato e linea di controllo. Con un bus seriale tutte queste informazioni vengono inviate in serie su pochi conduttori (a volte uno). Questo significa che un segnale singolo può includere le informazioni relative ai dati, al controllo, al clock e all’indirizzo. Per avere un’idea, si può osservare il CAN (Control Area Network) mostrato in figura.

Questo messaggio contiene il principio di un frame, un identificatore, i dati, CRC, la fine di un frame e anche alcuni bit di controllo. Per rendere ancora più complicate le cose, il clock è inserito nei dati e l’accumulo di bit viene usato per assicurare un numero di margini adeguato affinché il dispositivo ricevente possa bloccare il clock. Il contenuto del messaggio diventa difficile da comprendere anche ad un occhio esperto.

Ora immaginiamo che questo sia un messaggio difettoso, che capita solo una volta al giorno. Gli oscilloscopi tradizionali e gli analizzatori logici non sono adeguatamente equipaggiati per gestire un simile segnale. Anche con uno standard seriale più semplice come I2C resta più difficile osservare cosa viene trasmesso lungo il bus di quanto lo sia con un protocollo parallelo. I2C utilizza linee di dati e clock separati, così almeno in questo caso è possibile usare il clock come un punto di riferimento.

Tuttavia, bisogna ancora trovare l’inizio del messaggio (i dati vanno verso il basso mentre il clock è alto) e ispezionare manualmente e scrivere il valore dei dati per ogni picco del clock. Ci possono volere anche alcuni minuti per decodificare un singolo messaggio in una lunga acquisizione, senza avere idea se quello è il messaggio che si sta cercando. Il processo può essere tedioso e tendente all’errore.

Triggering contro ricerca negli oscilloscopi digitali

Come abbiamo discusso nell’arco di questa nota applicativa, viene richiesto un sistema in grado di eseguire il triggering per isolare l’evento di interesse sul bus seriale. Tuttavia, una volta acquisiti i dati, il triggering non funziona più nel momento in cui essi vogliono essere analizzati. La serie MSO/DPO Wave Inspector and Advanced Search and Mark offre questa possibilità grazie alla sua potente funzione di ricerca.

Nella figura l’oscilloscopio ha compiuto una ricerca attraverso una lunga acquisizione, per ogni messaggio CAN che contiene uno specifico indirizzo e un contenuto di dati, e ha segnato ognuno di essi con un triangolo bianco vuoto. Per navigare tra gli eventi basta premere i tasti Previous e Next sul pannello frontale.

Conclusioni

Se da un lato ci sono molti benefici nel passaggio da bus paralleli a seriali nella progettazione dei sistemi embedded, dall’altro si creano una serie di difficoltà che gli ingegneri devono affrontare. Con gli strumenti di misurazione e di test tradizionali è molto più difficile innescare l’evento che si sta cercando, è praticamente impossibile capire quali informazioni sono presenti semplicemente osservando il segnale analogico e il processo di decodifica manuale di un lungo periodo di attività del bus per diagnosticare i problemi è estremamente dispendioso, a livello di tempo, e incline all’errore. La serie MSO/DPO cambia ogni cosa.

Grazie al suo trigger potente e alle capacità di decodifica e di ricerca, oggi gli ingegneri possono risolvere i problemi nella progettazione di sistemi embedded con un’efficienza eccezionale.

Ecco l’indice dei bus presenti in questo documento:

- I2C

- SPI

- USB

- Ethernet

- RS-232

- CAN

- LIN

- MIL-STD-1553

- FlexRay

- Il Bus Audio I2S

- Bus MIPI DSI-1/CSI-2

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

Una risposta

  1. Avatar photo capsula2003 13 Aprile 2012

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend