progettazione elettronica sistemi a microprocessore

Progettazione elettronica sistemi a microprocessore

progettazione elettronica sistemi a microprocessore

Possiamo avere un software perfetto ed a sicurezza intrinseca. Ma tutto può essere facilmente compromesso da un pessimo design del sistema di watch dog o dalla corruttibilità della memoria di lavoro.

QUESTO BLOG CONTIENE INFORMAZIONI UTILI ALLO SVILUPPO DI SISTEMI A MICROPROCESSORE PER IMPIEGHI CRITICI. SONO ANALIZZATE LE ARCHITETTURE MULTIPROCESSORE E LA LORO SICUREZZA.

Se si desidera sviluppare una scheda elettronica di controllo per un macchinario complesso o dal funzionamento critico il primo passo è progettare un sistema di watch dog sicuro. Si tratta di pensare 'out of the box' e di tralasciare la elettronica standard. Occorre avere una visione della sicurezza che probabilmente si riesce ad avere solo con l'esperienza e con gli anni. La matematica poco può fare in questo setttore. L'esperienza non è tanto importante del progettare la scheda elettronica in sè dal punto di vista hardware. L'esperienza occorre quando di deve collaudare il prodotto. Concentrarsi quindi sulle 'cose' o funzioni che assolutamente il microprocessore non deve fare.

Progettazione elettronica sistemi con watch-dog

progettazione elettronica watch dog

Per evitare la corruzione dei dati occorre una progettazione elettronica accurata del sistema di watch dog. Particolare attenzione ai limiti di funzionamento delle memorie utilizzate.

MICROPROCESSORE E SISTEMI DI WATCH DOG

La progettazione elettronica di un buon sistema di watch dog è particolarmente delicata e complessa. Per avere un sistema affidabile, il sistema di wach dog deve lavorare con un sistena di monitoraggio della alimentazione del microcontrollore indipendente al punto di vista hardware. Questo sistema di monitoraggio deve tenere bloccato il microprocessore in caso la alimentazione è di caratteristiche incerte (instabile, fluttuante, mancante..). Deve inoltre garantire il rilascio del RESET quando la alimentazione è congrua per il sistema. Il watch dog deve inoltre informare, per mezzo di un interrupt ad elevatissima priorità quando la alimentazione sta per cadere. In questo modo il microprocessore ha il tempo di interrompere eventuali scritture in memorie non volatili. In pochi millisecondi il micro deve avere la certezza di avere scritto dati sicuri nelle memorie. In caso di lunghi dati, specialmente e si usano EEPROM, meglio annullare quello che si è scritto parzialmente. Nella progettazione elettronica avere cura di sciegliere un microcontrollore che possa funzionare al di sotto della tensione di funzionamento minima della EEPROM; non viceversa. In caso di caduta di tensione durante la scrittura, se il micro perde il controllo dei segnali SDA ed SCL, la memoria potrebbe prendere degli 'abbagli'. Dal punto di vista software, il micro dovrebbe mantenere il reset del watch dog in modo accurato. La pratica migliore è stabilire la durata di ogni routine e sub routine. Se il software si 'perde per strada', il time-out del watch dog provvede a resettare il microprocessore. Risulta buona norma di progettazione elettronica non mettere mai il clear del watch dog in routine di interrupt.

Progettazione elettronica sistemi con EEPROM

progettazione elettronica eeprom

Le EEPROM sono una risorsa indispensabile in sistemi a microprocessore o microcontrollore. Possono memorizzare dati di calibrazione e parametri importantissimi per la automazione del siste,. Ma attenzione a non correompere i dati.

WATCH DOG E CORRUZIONE DATI

La progettazione elettronica di un sistema che utilizza EEPROM permette vantaggi straordinari. Purtroppo la corruzione dei dati nelle EEPROM potrebbe causare problemi catastrofici. Occorre un sistema di watch dog che prevenga la corruzione dei dati nel momento che si blocca il microprocessore. Oltre ad avere un buon sistema di watch dog come spiegato sopra, occorre una gestione molto accurata degli accessi alla memopria EEPROM. Oggi sono disponibili tagli di oltre un mega. Questo permette di memorizzare anche sequenze di programma oltre che a dati necessari al funzionamento. Risulta buona norma suddividere la memoria in almeno tre banchi. Il software dovrebbe essere progettato in modo da comprimere i dati per ottimizzare lo spazio da usare per la memoria. Buon norma risulta utilizzare il terminale CHIP SELECT. Questo terminale deve essere abilitato solo quando si ha la necessità di accedere alla memoria e solo se il sistema di watch dog indica che avete sufficiente tempo per scrivere i dati necessari. Altro accorgimento è utilizzare un buon algoritmo di check sum. Dal punto di vista hardware ovviamente occorre calcolare bene la impedenza dei pull up in funzione della distanza dal microcontrollore. la scrittura dei dati deve essere fatta in tre zone separate. Quando il microprocessore trova una incongruenza avete la possibilità della correzione automatica degli errori (analisi due su tre) oppure potete avvisare l'operatore in modo che prenda le precauzioni del caso.

6 pensieri su “progettazione elettronica sistemi a microprocessore

  1. HO UNA SCHEDA ELETTRONICA DI ACQUISIZIONE ARDUINO. MI OCCUPO DI PROGETTAZIONE ELETTRONICA A LIVELLO DILETTANTISTICO. IL CONVERTITORE HA 8 BIT. LE LETTURE SONO BALLERINE. COME POSSO STABILIZZARLE? SPECIFICO CHE HO 5 SENSORI DI TEMPERATURA PER MONITORAGGIO DI UNA SERRA. CI SONO CIRCA 100 METRI DI CAVO IN TUTTO. NON HO ENERGIA ELETTRICA. VORREI METTERE UN PICCOLO PANNELLO SOLARE. MA ALLA ENTRATA DELLA SERRA VORREI LEGGERE LE TEMPERAURE NELLE VARIE PARTI SENZA TUTTE LE VOLTE FARE IL GIRO DELLA SERRA. MA NON CAPISCO PERCHE’ LE LETTURE SONO BALLERINE. GRAZIE

    1. La tecnologia per stabilizzare le letture comprende soluzioni hardware e software. Prima di tutto occorre una buona progettazione elettronica delle connessioni delle masse per minimizzare gli effetti dai disturbi elettromagnetici. Importante applicare lo stesso principio alla progettazione elettronica della scheda. Separare i circuiti digitali da quelli analogici. Avere una massa comnune in un solo punto è la soluzione migliore. Per il cavo consiglio un doppino attorcigliato e schermato. Se trasmette il segnale in loop di corrente 4-20mA ottiene una migliore immunità al rumore e riduce gli errori dovute alle masse. Nel suo caso le inerzie termiche della serra per fortuna le permettono di fare una media aritmetica per ridurre l’ondulazione delle misure. Credo che può tranquillamente aggiornare le letture ogni due secondi. Ogni aggiornamento è una media di alcune decine di valori. La temperatura di un ambiente non si modifica in frazioni di secondo. Il microprocessore potrebbe quindi escludere dalla media aritmetica le misure che escono di un 10% dalla media precedente se diversi dai campionamenti adiacenti. ESEMPIO: 20°-23°-21°-21°-19°-20°-24°-20°-21°-21°-21°. Dalla media di questi 11 valori il microprocessore dovrebbe eliminare il 23 ed il 24. Sono chiaramente disturbi. Occorre sostituire inoltre questi vaalori con il risutato della media precedente (esempio 19 gradi), Il risultato della media risulta perciò 20.18°C. Dal punto di vista del microprocessore occorre molta attenzione alla alimentazione (credo a 5V) del convertitore analogico digitale. Il ripple non deve superare i 10mV. Altra soluzione è espandere la risoluzione del convertitore da 8 a 10 bit. In pratica, da 255 punti di misuura a 1023 punti di misura. Questo lo si ottiene a mezzo software con semplici routine in linguaggio C. Basta accumulare 16 risultati e dividere pe 4 (2 volte shift a destra). Si crea in questo modo una risoluzione virtuale di 10 bit. Colleghi infine i sensori in configurazione a stella. Il centro stella deve essere la centralina. Eviti soluzioni in cascata. Introdurrebbe troppi errori e loop che generano segnai spurii. Bernini Mentore

  2. Anche io uso Arduino ma ho messo un convertitore a 10 bit. Le conversioni sono veloci. Qulacuno sa dirmi se esistono risoluzioni maggiori tipo 16 bit. Ho sentito diore che si possono trovare fino a 22 bit. Grazie

    1. Molto semplice, ma tutto dipende dalla velocità del convertitore. Un SAR embedded nei normali microcontrollori ha un tempo di conversione di max 10 microsecondi. Se ha un convertiore a 10 bit, può accumulare 16 risultati ma dividere per 4. In questo modo potrebbe ottenere una risoluzione virtuale di 12 bit. Accumulando sempre più campioni potrebbe arrivare anche a 22 bit semprechè non abbia ristretti limiti di tempo per avere il risultato. Utilizzando un converitore da 8 microsecondi di conversione potrebbe avere risultati da 22 bit in poche decine di millisecondi. Bernini

  3. qualcuno mi spiega la dfferenza tra la risoluzione e la precisione. ho trovato molte spiegazioni con un sacco di matematica. Qualcuno con esperienza in progettazione elettronica riesce a speigare senza mettere delle formule???????????? GRAZIE MILLE!! BACI(se c’e una progettatrice elettronica femmina!)

    1. Si parla di convertitori di misura immagino. Semplicissimo. La risoluzione indica quanti punti di misura fornisce il convertitore di misura. Esempio un bit le fornisce uno zero od un uno. Come dire ZERO VOLT E 10 VOLT. Con questo convertitore non riesce a fare nulla!Già con 2 bit riesce ad avere4 stati diversi: 0V, 3,33V, 6,66V e 10V (IN PRATICA DIVIDE IL FONDO SCALA DI 10 VOLT IN 3 PARTI). Parlando di 10 bit di risoluzione cominciamo a dividere 10VOLT in 1023 parti!(9.77mv per gradino). La risoluzione è quanti punti o scalini riesce a fornire il convertitore. Si parla di precisione per avere una corrispondenza con uno strumento di riferimento ritenuto preciso. Un convertitore di misura da 10 bit al 90% della scala deve fornire 8.999999999V. Praticamente 9V! Se con lo strumento di precisione misurate 9,1v potete dire che il convertiore ha una precisione di 1,1%. Nella realtà ci sono fenomeni di non linearità della risposta del convertitore. Poetete trovare perciò punti di conversione con errore zero. Il calcolo della precisione di un convertitore è una procedura molto complessa. Di solito è sufficiente verificare lo zero, il fondo scala, il 10% ed il 90% della scala e fare una media. Ad esempio potrebbe esserci 1%, 0,5%, 0,8% ed 1,2%. Possiamo dire cjha la precision media è del 0,9%. Quindi risoluzione capacità di sminuzzare le letture in piccoe unità e la precisione indica la bontà del convertirore. BERNINI

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *