Collaudo su sistemi embedded

Microcontrollori per il collaudo dei sistemi embedded

Con il recente incremento esponenziale nell’uso di microcontrollori, gli ingegneri impegnati nella progettazione o nel collaudo nel settore dall’elettronica industriale e dell’Information Technology, fronteggiano la necessità di collaudare e testare circuiti che sono spesso caratterizzati da linee di dati seriali a bassa velocità, flussi di dati ad alta velocità o anche entrambi. Spesso è inoltre necessario testare e collaudare la temporizzazione di bus di dati o indirizzi di 8 o 16 bit.

Il test a segnali misti

Molti microcontrollori presenti nei sistemi embedded sono dispositivi a 8 bit ma è spesso necessario analizzare, oltre alle linee dati o indirizzi, lo status di livelli digitali quali “enable”, “clock” o altri, pertanto è molte volte desiderabile disporre di uno strumento di test in grado di utilizzare un totale di 18 linee digitali. Analogamente l’uso di 36 linee per i sistemi a 16 bit può essere molto utile. In alcuni casi l’ingegnere che esegue i test ha la necessità di vedere solo i livelli minimi e massimi di voltaggio e la sincronia di tutte le linee per essere sicuro che tutto funzioni, ma siccome i segnali digitali divengono sempre più veloci risulta sempre più necessario poter analizzare le caratteristiche “analogiche” di un segnale digitale (come il suo rise time, l’overshoot, la ridondanza ecc..).

In altri casi la cosa più complessa è trovare un modo di eseguire un trigger su una combinazione di stati dei segnali digitali e analogici, ovvero di “prequalificare” un evento di trigger con un determinato stato digitale del bus. Esiste un metodo per configurare un trigger logico con fino a 41 input, una possibilità non così potente come quella disponibile sugli analizzatori logici, ma adatta a molte applicazioni. L’utente può specificare logiche come “high”, “low”, “indifferente” o “qualunque edge” per ognuno dei segnali in ingresso. È anche possibile specificare un sottogruppo, come ad esempio un certo indirizzo o valore del dato, per poi chiedere all’oscilloscopio di eseguire il trigger a un certo valore del bus – ad esempio “Esegui trigger su indirizzo 4C”.

Una volta impostato il trigger per acquisire l’evento che interessa è possibile visualizzare sia il segnale digitale che quello analogico sullo schermo di un oscilloscopio. I segnali analogici possono essere visualizzati nel modo normale attivando i canali da 1 a 4, mentre i segnali digitali posso essere visualizzati sia come singole linee logiche oppure come gruppo di bus. Ad esempio l’utente può definire D0-D7 come un gruppo di otto linee digitali (magari le linee di indirizzo e di dati) e il gruppo può essere attivato o disattivato sullo schermo con un singolo tocco dello stesso. È anche possibile alternare la visualizzazione delle otto linee individuali del gruppo come singole tracce oppure come traccia singola del gruppo stesso che ne descrive il valore (ad esempio il valore di indirizzo o dati del bus) in rapporto al tempo. L’utente può anche fare misurazioni col cursore sulle linee digitali nello stesso modo in cui può farlo sugli input analogici, e può anche eseguire misure parametriche sulle linee digitali quali le misurazioni di impulso, ampiezza, duty cycle, e delay esattamente come sui segnali analogici. Se si vogliono analizzare le proprietà “analogiche” di un segnale digitale la linea digitale andrà connessa a uno dei quattro input analogici dell’oscilloscopio.

Per esempio la misurazione di un overshoot in un segale digitale necessita di più informazioni rispetto alle semplici logiche high/low e connettendo una linea digitale a uno dei 4 ingressi BNC del pannello frontale l’oscilloscopio acquisirà il segnale utilizzando un Adc a 8 bit, permettendo quindi di visualizzare dettagli quali overshoot o ringing, potendo applicare dei parametri per la misurazione di queste proprietà.

Decodifica dei dati

Purtroppo molti ingegneri che collaudano dispositivi a semiconduttori o prodotti di livello ancor superiore che incorporano segnali a bassa velocità con dati seriali, si vedono costretti a perdere parecchio tempo a guardare il proprio segnale, trascrivere intere stringhe di numeri per poi tradurre questi valori in comandi.

Questo procedimento è chiaramente molto lungo e soggetto a errori umani. La traduzione delle stringhe di “1” e “0” in messaggi utili e comprensibili è un compito che può essere facilmente, precisamente e rapidamente svolto da programmi come quelli disponibili in molti moderni oscilloscopi. Sono disponibili pacchetti software per la decodifica di protocolli I2C, Spi, RS232 (o più generici Uart), Can, FlexRay, Lin e molti altri. Questi pacchetti software consentono all’utente, oltre alla decodifica, anche di impostare dei trigger sui dati decodificati (ad esempio è possibile eseguire il trigger su di uno start, uno stop, un determinato indirizzo, un certo valore del dato, un messaggio di errore, un Nack ecc..). Un oscilloscopio a segnali misti può anche misurare la latenza tra un punto su un segnale e un punto su un altro. Se ad esempio si sta progettando il sistema elettronico di frenata di un’automobile, una delle misurazioni chiave potrebbe essere quella del tempo che intercorre tra il segnale analogico di pressione sul pedale del freno e l’attività del bus Can che invia comandi alle pompe dei freni.

Con un oscilloscopio a segnali misti è possibile misurare i parametri, creare statistiche dai parametri oppure creare istogrammi che mostrano la distribuzione delle misurazioni di voltaggio o temporizzazione sui segnali digitali, sui segnali analogici o su un misto di segnali analogici e digitali interoperanti.

 

Leave a Reply