Menu English Ukrainian Russo Casa

Libreria tecnica gratuita per hobbisti e professionisti Libreria tecnica gratuita


ENCICLOPEDIA DELLA RADIOELETTRONICA ED ELETTRICA
Libreria gratuita / Schemi di dispositivi radioelettronici ed elettrici

Progettiamo dispositivi su microcontrollori. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica

Libreria tecnica gratuita

Enciclopedia della radioelettronica e dell'elettrotecnica / microcontrollori

Commenti sull'articolo Commenti sull'articolo

Tra l'idea iniziale di creare un dispositivo basato su un microcontrollore (MCU) e lo sviluppo del suo programma, c'è una fase importante: la stesura di uno schema a blocchi dell'algoritmo. Spesso viene dimenticato o, peggio, trascurato. La programmazione viene eseguita “euristicamente”, essenzialmente per tentativi ed errori. Il risultato è un programma mal funzionante, macchinoso, non del tutto comprensibile nemmeno al suo creatore, e difficile da modernizzare. Tuttavia, metodi abbastanza semplici sono noti da tempo e vengono utilizzati dai programmatori, consentendo, a partire dalla formulazione verbale dell'algoritmo, di progettare con competenza il suo diagramma a blocchi. Gli interessi professionali dell'autore dell'articolo risiedono nel campo degli sviluppi sui MK della serie Z8, ma il materiale da lui presentato si applica anche ad altri tipi di MK.

L'interazione di qualsiasi sistema MK con l'operatore e l'oggetto di controllo può essere rappresentata come mostrato in Fig. 1 diagramma [1]. Nel caso generale, l'oggetto di controllo è dotato di attuatori e sensori. L'operatore umano agisce sul microcontrollore utilizzando dispositivi master e riceve informazioni sullo stato dell'oggetto dalle letture dei dispositivi di visualizzazione. I primi sono interruttori, pulsanti, resistori variabili, i secondi sono indicatori luminosi (compresi grafici e alfanumerici), dispositivi emettitori di suoni e altri dispositivi di segnalazione.

Progettiamo dispositivi su microcontrollori

Tutte le unità funzionali e le connessioni mostrate nello schema sono necessarie solo in sistemi complessi di monitoraggio e controllo interattivi. Nei cosiddetti sistemi di controllo ad anello aperto, il microcontrollore funziona “alla cieca”, senza ricevere alcuna informazione sullo stato dell’oggetto. A volte non fornisce nemmeno all'operatore alcuna informazione sull'opera (sia propria che dell'oggetto), soprattutto se è possibile valutare i risultati del controllo osservando l'oggetto stesso. Nei sistemi di controllo chiusi, l'MC regola le azioni di controllo sull'oggetto in base alle letture del sensore, ma anche qui non sono necessari dispositivi di visualizzazione. I sistemi di controllo non contengono attuatori e, con l'aiuto di dispositivi master, l'operatore seleziona solo i parametri controllati o cambia le modalità operative degli indicatori.

La metodologia per la progettazione di sistemi su MK [2, 3] comprende la formulazione e l'analisi del problema, la sua interpretazione ingegneristica, lo sviluppo di uno schema a blocchi dell'algoritmo e il testo del programma applicativo. In tali sistemi si tende ad assegnare il massimo numero di funzioni al software. L'efficienza della loro implementazione determina in ultima analisi la quantità di memoria richiesta, la velocità e l'affidabilità del sistema nel suo complesso. Naturalmente dobbiamo ancora sviluppare il diagramma concettuale e il design del prodotto stesso, ma li toccheremo solo nella misura necessaria per lo sviluppo del programma MK.

Una dichiarazione del problema è una formulazione verbale dei requisiti per il sistema che si sta progettando. Innanzitutto ne descrivono lo scopo, le caratteristiche dell'oggetto di controllo, dei sensori, degli indicatori, degli attuatori e dei dispositivi master. Successivamente, dovresti parlare in dettaglio del comportamento desiderato del sistema in tutte le situazioni possibili, comprese quelle "anomale". In nessun caso bisogna fare affidamento su azioni dell'operatore prive di errori. Ad esempio, dopo aver sentito un segnale di emergenza, potrebbe premere il pulsante "START" invece del pulsante "STOP" prescritto o premere casualmente tutti i pulsanti di seguito. Naturalmente è impossibile prevedere tutte queste situazioni, ma dobbiamo lottare per questo. È imperativo specificare i valori numerici dei parametri del sistema in fase di progettazione.

Innanzitutto, l’attività è formulata, di regola, “a livello dell’utente”. Ad esempio, il compito iniziale per lo sviluppo di un sistema di controllo della ventola potrebbe suonare così: "Accendi e spegni la ventola, regola l'intensità del flusso d'aria e cambia la sua direzione (scarico / scarico)." L'analisi ingegneristica ridurrà questo problema al controllo della velocità e della direzione di rotazione della ventola, un motore elettrico CC. Poiché la potenza dei segnali di uscita dell'MC è ovviamente insufficiente per il controllo diretto del motore, sarà necessario installare uno speciale dispositivo di pilotaggio tra di loro, generando segnali della potenza richiesta, e il compito verrà risolto dall'MC. sarà limitato alla fornitura di azioni di controllo al conducente.

Non ci soffermeremo nel dettaglio sulla scelta degli elementi di controllo della potenza, dei sensori e dei dispositivi per la loro interfaccia con l'MK. Oggi per questi scopi vengono prodotti microcircuiti specializzati, il cui utilizzo è molto più efficiente rispetto alla costruzione di un sistema da componenti discreti.

Supponiamo che verrà utilizzato un driver per motore CC integrato LMD18200 di National Semiconductor. Uno schema tipico del suo collegamento è mostrato in Fig. 2. Contiene un ponte di potenti transistor MOS, la cui diagonale include un motore.

Progettiamo dispositivi su microcontrollori

Il conducente è controllato utilizzando tre segnali logici. All'ingresso PWM (Pulse Wide Modulation) vengono forniti impulsi rettangolari, il cui rapporto tra la durata e il periodo di ripetizione (fattore di lavoro) determina la velocità del motore. Il livello logico del segnale all'ingresso DIR (direzione) stabilisce la polarità della tensione fornita al motore e quindi la direzione della sua rotazione. Impostando il livello di registro. 1 all'ingresso BR (freno), il motore viene arrestato e se in questo momento è presente un registro all'ingresso PWM. 0, il circuito di alimentazione del motore sarà semplicemente aperto, altrimenti anche i cavi del motore saranno collegati tra loro, il che garantirà la frenata di emergenza.

Il conducente ha due sensori integrati. Uno di questi genera una corrente che fluisce dal pin CUR (corrente) ed è proporzionale alla corrente del motore con un fattore di 377 μA/A. L'uscita del sensore di temperatura TF (Thermal Flag) è discreta con un collettore aperto. Entra nello stato di registro. 0. se il cristallo del driver viene riscaldato oltre 145 °C.

Formuliamo i requisiti per il dispositivo di controllo del motore del ventilatore e, in sostanza, il driver del motore.

Il dispositivo di comando deve essere dotato di pulsanti, premendo i quali l'operatore (utilizzatore) può accendere e spegnere il motore, cambiare direzione, aumentarne e diminuirne la velocità. Deve essere presente l'indicazione del senso di rotazione del motore con segnali luminosi di diversi colori e un allarme acustico in caso di incidente (surriscaldamento o sovraccarico).

Dopo aver applicato la tensione di alimentazione, il dispositivo deve, senza accendere il motore, attendere un comando che specifichi il senso di rotazione. La sua ricezione dovrebbe essere confermata da un segnale luminoso. Al comando “START”, il motore deve essere acceso e iniziare a ruotare nella direzione specificata ad una frequenza media (duty cycle del segnale PWM = 0.5). Per i comandi "SLOWER" e "FASTER", il duty cycle deve diminuire o aumentare di conseguenza, senza andare oltre 0.2... 1. Il comando "STOP" deve arrestare immediatamente il motore, dopodiché potrà essere riavviato impartendo il comando Comando "AVVIO".

Se viene superato il valore consentito dell'assorbimento di corrente, che può essere una conseguenza, ad esempio, di un bloccaggio meccanico dell'albero motore, quest'ultimo deve essere spento e deve essere emesso un segnale acustico intermittente con una frequenza di 1000 Hz sotto forma di brevi raffiche (la loro durata e le pause tra di loro è di 1 s). Se il microcircuito si surriscalda, è necessario spegnere il motore ed emettere un segnale acustico a raffiche lunghe (la durata delle raffiche e delle pause è di 2 s). L'allarme acustico dovrebbe rimanere attivo fino ad allora. finché l'operatore non impartisce il comando STOP riportando il dispositivo allo stato originale. Prima che venga dato un comando del genere, non dovrebbe rispondere a nessun altro.

Già in questa fase si dovrebbe astrarre dai dettagli che non sono essenziali per lo sviluppo del programma MK. Ad esempio, in questo caso non importa. che l'oggetto di controllo (motore) funge da azionamento del ventilatore, il tipo di ventilazione (scarico o mandata) dipende dalla direzione della sua rotazione e l'intensità del flusso d'aria dipende dalla frequenza. Inoltre, quando si sviluppa un algoritmo, è possibile dimenticare completamente il motore e il suo driver, concentrandosi sulla generazione di segnali di controllo PWM. DIR, BR ed elaborazione del segnale dai sensori CUR e TE.

Analizzando il problema formulato è opportuno individuare subito alcune problematiche che inevitabilmente si manifesteranno nelle fasi successive. Ad esempio, il sistema dovrebbe rispondere a un comando RUN se la direzione di rotazione non è preimpostata? Se si. allora in quale direzione dovrebbe ruotare il motore in questo caso? È necessario mantenere la velocità e il senso di rotazione specificati dopo l'arresto e il riavvio del motore? E una volta risolta la situazione di emergenza? È necessario rispondere a tutte queste domande il prima possibile.

Sulla base della descrizione verbale vengono compilati elenchi di segnali di ingresso e di uscita del MK. Il primo comprende i comandi impartiti dall'operatore e i segnali dei sensori: “ESTRAZIONE”. "POMPARE". "INIZIO". "PIÙ VELOCE". "PIÙ LENTAMENTE." "FERMARE". "SOVRACCARICO" (CUR). "SURRISCALDAMENTO" (TF). Il secondo contiene segnali di controllo per il driver del motore e indicatori: PWM - velocità di rotazione. DIR - senso di rotazione, BR - spegnere il motore. G - accende il LED verde. Y - accende il LED giallo. S - suono.

Tenendo conto di quanto sopra, possiamo trarre una conclusione preliminare. ciò che MK richiede. avere almeno 14 pin per il collegamento di circuiti esterni (otto ingressi e sei uscite). Poiché il segnale CUR è analogico, sarà necessario un comparatore per confrontare le letture del sensore con un valore accettabile e generare un segnale logico di "SOVRACCARICO". Pertanto, MK è preferibile. dotato di comparatore incorporato. Adatta, ad esempio, è la modifica minima a 18 pin della serie Z86 MK. L'opzione più economica è un microcircuito. Z86E02. È tutto per ora. per quanto riguarda l'hardware del dispositivo. La distribuzione dei segnali di ingresso e uscita sui pin MC non è significativa in questa fase.

Successivamente, si consiglia di rappresentare l'algoritmo specificato verbalmente sotto forma di un cosiddetto grafo della macchina a stati finiti. Un dispositivo discreto è considerato una macchina a stati finiti se è possibile elencare tutti gli stati in cui può trovarsi, tutti gli eventi (influenze esterne) che portano a cambiamenti di stato e tutti i segnali di uscita generati. Questi sono proprio i dispositivi basati su MK.

Un esempio di grafico di un automa è mostrato in fig. 3.

Progettiamo dispositivi su microcontrollori

Gli stati sono rappresentati dai nodi (vertici) del grafico. In questo caso sono quattro: A. B. C e D. I vertici sono collegati da archi dotati di frecce che indicano la direzione della transizione, sopra l'arco è indicato l'evento Xi che provoca questa transizione, e sotto di esso c'è un insieme dei segnali di uscita Yi generati dalla macchina in questo momento e invariati fino alla transizione successiva. In teoria, da ciascun vertice del grafico dovrebbero uscire esattamente altrettanti archi. quanti diversi influssi esterni sono possibili sulla macchina. Se qualche evento non cambia lo stato dell'automa, l'arco corrispondente viene mostrato entrando nello stesso vertice da cui è uscito. Tuttavia, per non ingombrare il disegno, in pratica vengono lasciati solo quelli di questi archi. a cui sono associati i cambiamenti nei segnali di uscita. Ad esempio, dal grafico riportato in Fig. 3. È possibile rimuovere gli archi A-A e B-B. Nel linguaggio comune ciò significa che la macchina negli stati A e B non risponde all'evento X3.

Eventi che interessano la macchina, implementati sotto forma di programma MK. non sono solo “diretti”, causati da cambiamenti nei livelli logici dei segnali forniti ai pin esterni dell'MC, ma anche “indiretti”. Questi ultimi includono, ad esempio, un determinato risultato del confronto dei valori calcolati e specificati di un determinato parametro o il completamento di un'operazione a lungo termine. A volte è difficile tracciare il confine tra eventi diretti e indiretti. Ad esempio, un evento comune come l'attivazione di un timer integrato in un MK può essere considerato indiretto se registrato. analizzando il numero situato nel registro corrispondente, oppure direttamente, rispondendo al segnale generato dal timer alla fine del conteggio. I segnali di uscita possono anche essere indiretti, senza modificare direttamente i livelli logici sulle uscite MK. Spesso, quando si passa da uno stato all'altro della macchina, vengono assegnati solo determinati valori alle variabili del programma.

Tornando al problema in questione, costruiamo un grafico della macchina di controllo motore. Analizzando il compito, possiamo distinguere i seguenti stati:

  • START - impostato immediatamente dopo l'accensione. Vengono eseguite le azioni iniziali necessarie: vengono impostati i valori iniziali delle variabili del programma e dei segnali di uscita e vengono configurati i dispositivi periferici. Successivamente la macchina passa allo stato STOP1 (un buon esempio di transizione basata su un evento indiretto - il completamento dell'inizializzazione);
  • STOP 1 - la macchina vi entra al termine dell'inizializzazione o dopo essere uscita da una situazione di emergenza. Uscite in base ai comandi che specificano il senso di rotazione del motore:
  • STOP2 - la macchina è in attesa del comando "START";
  • FUNZIONAMENTO - stato principale, il dispositivo genera un segnale PWM. Uscire tramite comando "STOP" o tramite segnali provenienti da sensori di emergenza;
  • SURRISCALDARE. SOVRACCARICO - stati nei quali la macchina passa dallo stato di FUNZIONAMENTO a seguito dell'attivazione dei relativi sensori. Il motore è spento e il dispositivo genera segnali sonori. L'uscita avviene solo tramite il comando "STOP".

Il grafico costruito è mostrato in fig. quattro.

Progettiamo dispositivi su microcontrollori

È facile vedere che è impossibile modificare un senso di rotazione errato impostato accidentalmente senza accendere e poi spegnere il motore. Inoltre, per avviarlo, devi sempre dare due comandi: direzione e avvio. Rifiutando il comando "START" si elimina la condizione STOP2. e indirizzare gli archi dei comandi “SPINGERE” ed “ESTRAZIONE” direttamente nello stato di FUNZIONAMENTO. Di conseguenza, ci sarà un pulsante in meno sul pannello di controllo e un ingresso MK verrà liberato. e il motore si accenderà immediatamente dopo aver premuto uno qualsiasi dei pulsanti che impostano la direzione. A rigor di termini, qualsiasi modifica a un determinato algoritmo di controllo deve ottenere il consenso del cliente o del futuro utente del dispositivo. Ma nella pratica amatoriale, il cliente, l'esecutore e l'utente sono spesso una persona ed è sufficiente "consultarsi con se stessi".

È sorprendente che il grafico non rifletta il metodo di generazione di un segnale PWM con un ciclo di lavoro variabile. In generale, questo può essere fatto tramite un dispositivo speciale controllato dal MK. Ma ci sforziamo di implementare tutto in modo puramente programmatico, quindi dovremo dividere lo stato WORK in due. Nel primo (LAVORO) PWM = 0, nel secondo (LAVORO 1) - PWM = 1.

Ora forniremo gli eventi che causano le transizioni tra di loro: l'attivazione alternata di due timer, uno dei quali imposta la durata degli impulsi PWM e il secondo - le pause tra di loro e ciascun timer, quando attivato, avvia l'altro. Dato che in questo caso i timer "logici" non funzionano mai contemporaneamente, possono essere implementati utilizzando un timer "fisico", modificando programmaticamente il suo ritardo dopo ogni operazione.

I comandi “FASTER” e “SLOWER” regolano i ritardi temporali dei timer, lasciando la loro somma invariata e uguale al periodo di ripetizione specificato degli impulsi PWM. La macchina può rispondere a questi comandi in entrambi gli stati considerati. Tuttavia, per semplificare l'algoritmo, è consentito limitare la reazione a uno solo di essi. A causa della breve durata di questi stati, il ritardo di esecuzione rimarrà invisibile all'operatore.

Altro chiarimento necessario è verificare l'ammissibilità dei valori di ritardo temporale. In base all'attività, il ciclo di lavoro del segnale PWM. uguale a T1/(T1+T0). dove T1 e T0 sono i ritardi temporali dei timer, devono rimanere sempre nell'intervallo 0,2...1. Pertanto dopo ogni comando di variazione della velocità la macchina deve portarsi nello stato di CHECK e solo da lì ritornare nello stato di FUNZIONAMENTO stato lungo uno dei due archi. Il primo corrisponde a un risultato positivo del test; cliccandoci sopra vengono impostati i nuovi valori della velocità dell'otturatore. Il secondo: il risultato è negativo, gli estratti precedentemente validi rimangono invariati.

Continuando ad analizzare il grafico notiamo che gli stati OVERHEAT e OVERLOAD differiscono solo per il periodo di ripetizione del segnale sonoro. È una buona idea combinarli in uno solo, chiamandolo ACCIDENT. Il segnale audio S può essere generato utilizzando due timer, simili al segnale PWM discusso sopra. Inoltre è consigliabile utilizzare lo stesso timer “fisico”, che in questo stato rimane inattivo.

Per rendere il suono intermittente è possibile utilizzare un altro timer, ma è più semplice farne a meno contando i periodi del segnale generato utilizzando un contatore implementato nel software, accendendo e spegnendo il segnale in uscita dopo un certo numero di essi. Tutto ciò richiederà la fornitura di stati aggiuntivi della macchina e le transizioni tra di loro.

Il grafico sviluppato del controllo automatico del motore è mostrato in fig. 5.

Progettiamo dispositivi su microcontrollori

Si noti che le dichiarazioni verbali delle azioni eseguite vengono sostituite assegnando valori specifici alle variabili. Ad esempio, al posto della frase “accendi il LED giallo”, viene indicato Y = 1 e viene specificato che il LED verde deve essere spento, G = 0. Oltre ai segnali di uscita e ai ritardi del timer già citati, il la costante T è il periodo di ripetizione degli impulsi PWM e la variabile N è il numero di impulsi S rimanenti fino alla fine dell'intervallo del segnale audio generato.

Il passo successivo è convertire il grafico in un diagramma a blocchi dell'algoritmo dell'operazione MK. Innanzitutto occorre numerare tutti i vertici del grafico (stati della macchina). L'ordine di numerazione è molto importante nell'implementazione hardware della macchina. Scegliendolo correttamente, puoi semplificare notevolmente il dispositivo. Per l'implementazione del software questo non è così significativo e nella maggior parte dei casi la numerazione può essere arbitraria. Il programma deve prevedere una cosiddetta “variabile di stato”, alla quale durante il funzionamento vengono assegnati valori pari ai numeri degli stati attuali. Nei programmi complessi possono esserci diverse variabili di questo tipo. Molti linguaggi di programmazione consentono di attribuire nomi simbolici a valori numerici. Questo può essere utilizzato ampiamente, poiché una riga di programma in cui ad una variabile viene assegnato il valore RABOTA è molto più chiara di una riga che assegna, ad esempio, il valore 6.

Nella fig. 6 è presentato un tipico diagramma a blocchi dell'algoritmo di controllo nella sua forma più generale. Dopo l'inizializzazione il programma viene eseguito ciclicamente. Dopo aver analizzato la variabile di stato, esegue la procedura appropriata in ogni ciclo. Un cambiamento nello stato della macchina si riflette assegnando un nuovo valore alla variabile di stato, a seguito della quale nel ciclo successivo verrà eseguita una procedura diversa.

Progettiamo dispositivi su microcontrollori

Le procedure che implementano ogni stato della macchina sono costruite secondo schemi a blocchi simili a quelli mostrati in Fig. 7. Innanzitutto vengono analizzate le influenze esterne (eventi). Successivamente il processo viene suddiviso in tanti rami quanti sono gli archi uscenti dal corrispondente vertice del grafo dell'automa, ognuno di essi prevede l'esecuzione delle funzioni necessarie per attuare questa transizione e, infine, un valore pari al numero del vertice verso cui è diretto l'arco è assegnato alla variabile di stato. È possibile anche un altro approccio: prima si realizzano gli archi che entrano nel vertice e poi si reagisce alle influenze. Il suo principale svantaggio è che il programma deve “sapere” da quale stato la macchina è passata a quello attuale, cosa che nel caso precedente non era richiesta.

Progettiamo dispositivi su microcontrollori

Si prega di notare che nella fig. La Figura 7 mostra due possibili opzioni per uscire dalla procedura statale. Nella prima gli eventi vengono analizzati ciclicamente finché non ne viene rilevato uno che provoca l'uscita da questo stato. Nel secondo, se non ci sono tali influenze. la procedura è completata come evidenziato dalla linea tratteggiata.

Se ci sono poche influenze esterne e la reazione ad esse in ogni stato è specifica, le procedure di rilevamento degli eventi sono incluse nei blocchi di elaborazione degli stati. Ad esempio è possibile verificare se il pulsante "START" viene premuto solo nello stato in cui la macchina deve reagire. Spesso la procedura di filtraggio degli eventi viene posta nel loop principale (in Fig. 6 è mostrata con una linea tratteggiata) e viene fornita una variabile alla quale viene assegnato un valore univocamente associato all'evento accaduto. Ad esempio, il risultato di un sondaggio sulla tastiera è il codice del tasto premuto. Nel blocco di elaborazione dello stato, eseguito secondo la seconda delle opzioni sopra discusse, viene solo analizzato il valore di questa variabile.

A differenza del modello teorico, gli eventi reali spesso accadono simultaneamente. In una situazione del genere, la macchina deve prima reagire all'evento che ha la priorità più alta. Il modo più semplice per impostare le priorità è scegliere la sequenza corretta di analisi degli eventi. Ad esempio, secondo lo schema a blocchi mostrato in Fig. 7, l'evento X1 ha la massima priorità. quello più basso è per HZ. Se gli eventi ad alta priorità si verificano molto più spesso di quelli a bassa priorità, la coda potrebbe non raggiungere mai gli ultimi. Per evitare ciò, agli eventi rari dovrebbe essere data la massima priorità. A volte è necessario modificare la distribuzione di questi ultimi durante l'esecuzione del programma, ad esempio posizionando alla fine della coda ogni evento appena elaborato.

Il comportamento imprevedibile del sistema sull'MK è spesso spiegato da interferenze o rimbalzi dei contatti di controllo. Tali falsi eventi devono essere “esclusi” utilizzando filtri software. Molto spesso, per riconoscere un evento come accaduto, è sufficiente assicurarsi che il livello del segnale logico all'ingresso corrispondente del MK sia rimasto invariato per un certo tempo. Nei casi critici vengono utilizzate procedure più complesse.

Tra i tanti eventi, spesso si possono distinguere quelli “di emergenza”, la cui risposta deve essere immediata. Un tipico esempio. Per non perdere il momento in cui scatta il timer, il programma deve controllare continuamente lo stato del suo registro, senza poter fare altro fino allo scadere del timer. Un segnale di richiesta di interruzione generato dal timer alla fine del conteggio risolve il problema. Avendolo accettato. Il MK immediatamente (in ogni caso, molto più velocemente che durante la normale elaborazione del programma dello stesso evento) procede all'esecuzione della subroutine per servire questo interrupt, il cui indirizzo (vettore) deve essere specificato nelle celle di memoria del programma appositamente designate.

Il dispositivo per le interruzioni vettoriali prioritarie del programma in esecuzione è previsto nella stragrande maggioranza dei microcontrollori. Gli interrupt possono essere esterni o interni. In quest'ultimo caso, l'ingresso della richiesta di interruzione non ha un'uscita esterna, ma è collegato ad una sorgente di richiesta situata direttamente sul chip MK. In genere, gli interrupt interni vengono forniti non solo dal timer, ma anche da altri dispositivi integrati in questo MK: controller della porta seriale, comparatori di segnali analogici, convertitori analogico-digitali.

Spesso una delle interruzioni interne dei moderni MK è associata al cosiddetto Watch Dog, che serve a proteggere da guasti casuali. Questo timer richiede una costante

inizializzazione scrivendo codice specifico in una posizione specifica nello spazio degli indirizzi. Il programma MK è strutturato in modo tale che durante il suo normale svolgimento tale procedura viene eseguita abbastanza spesso. Se il MK è congelato, l'inizializzazione del timer del watchdog si interrompe e dopo qualche tempo invia la sua richiesta di interruzione, la cui elaborazione ha lo scopo di ripristinare il normale funzionamento del sistema. Normalmente la risposta ad un'interruzione del watchdog è la stessa. come segnale esterno che imposta il MK al suo stato iniziale.

Gli interrupt vengono controllati abilitandoli o disabilitandoli a seconda dello stato della macchina da implementare. Se lo stesso interrupt in stati diversi deve essere elaborato in modo diverso, la procedura di elaborazione è costruita in modo simile al ciclo principale del programma, prevedendo l'analisi dello stato. La differenza è questa. che tale procedura non si chiude in un anello. Dopo averlo completato, il MK continuerà ad eseguire il programma dal punto in cui è stato interrotto. Questo è irto di fallimenti, poiché in uno stato che è cambiato a seguito dell'elaborazione dell'interruzione, la continuazione delle azioni interrotte può dare un risultato errato. Sono protetti da tali errori impedendo interruzioni durante l'esecuzione di sezioni critiche del flusso del programma, che. indubbiamente rallenta la risposta del sistema.

Se nel sistema sono presenti più fonti di richieste di interruzione rispetto agli ingressi MK previsti, nell'hardware viene implementata una richiesta di gruppo, combinando le uscite di più fonti utilizzando un circuito OR. Avendo accettato tale richiesta. MK è obbligato a scoprire chi lo ha inviato ed elaborarlo di conseguenza.

L'intero algoritmo operativo del dispositivo è talvolta implementato da una serie di routine di gestione degli interrupt. In questo caso, il ciclo principale degenera in diverse istruzioni macchina, fino ad arrivare ad un singolo comando che salta incondizionatamente a se stesso. Molti MK forniscono specificamente i comandi HALT o IDLE, che utilizzano. In sostanza smettono di funzionare (a volte si spegne anche il generatore dell'orologio). Solo una richiesta di interruzione in arrivo può far uscire l'MC da questo stato. Dopo aver terminato l'elaborazione della richiesta. Il microcontrollore esegue la transizione incondizionata al comando di stop fornito nel loop principale e si “addormenta” nuovamente. Questa modalità è molto economica, poiché la potenza consumata da un MK fermo viene ridotta molte volte, aumentando solo durante la reazione alle influenze esterne.

Lo schema a blocchi dell'algoritmo di controllo del motore del ventilatore, sviluppato tenendo conto di quanto sopra, è composto da due parti, mostrate in Fig. 8 (ciclo principale) e Fig. 9 (elaborazione dell'interruzione del timer). Entrambi corrispondono sostanzialmente ai tipici diagrammi a blocchi discussi sopra, con l'eccezione che vengono combinate le stesse operazioni eseguite durante l'elaborazione di eventi diversi. Il gestore dell'interruzione del timer genera segnali PWM e S. Quando si passa dallo stato STOP allo stato RUN, l'interruzione è abilitata e quando si ritorna allo stato STOP, è disabilitata.

Progettiamo dispositivi su microcontrollori

Il programma ora ha una variabile di stato ST, a cui per chiarezza vengono assegnati valori stringa - i nomi degli stati corrispondenti. Come accennato in precedenza, nel programma questi saranno numeri: numeri di stato o i loro nomi simbolici. I valori assegnati alla variabile N0 sono selezionati in base al presupposto che i periodi di ripetizione degli impulsi generati PWR e S siano uguali e pari a 1 ms. Se non è così. Lo schema a blocchi dovrà essere leggermente modificato.

Progettiamo dispositivi su microcontrollori

Ora puoi passare alla selezione di un MK, alla distribuzione dei segnali di ingresso e di uscita sui suoi pin e allo sviluppo di uno schema elettrico completo del dispositivo. Dopo aver determinato a quali circuiti esterni saranno collegati i bit di una particolare porta di ingresso/uscita del MK e i livelli logici dei segnali in questi circuiti, il programmatore può iniziare a sviluppare il programma.

Letteratura

  1. Franke K. Introduzione ai microcomputer: Per. con lui. - M.: Energoatomiedat. 1998.
  2. Kagan B. M., Stashin V. V. Fondamenti di progettazione di dispositivi di automazione basati su microprocessore. - M.: Energoatomiedat. 1987.
  3. Stashin V.V., Urusov A.V., Mologoitseva O.F. Progettazione di dispositivi digitali su microcontrollori a chip singolo. - M.: Energoatomiedat. 1990.

Autore: M. Gladshtein, Rybinsk

Vedi altri articoli sezione microcontrollori.

Leggere e scrivere utile commenti su questo articolo.

<< Indietro

Ultime notizie di scienza e tecnologia, nuova elettronica:

Macchina per diradare i fiori nei giardini 02.05.2024

Nell'agricoltura moderna si sta sviluppando il progresso tecnologico volto ad aumentare l'efficienza dei processi di cura delle piante. Presentata in Italia l'innovativa macchina per il diradamento dei fiori Florix, progettata per ottimizzare la fase di raccolta. Questo attrezzo è dotato di bracci mobili, che permettono di adattarlo facilmente alle esigenze del giardino. L'operatore può regolare la velocità dei fili sottili controllandoli dalla cabina del trattore tramite joystick. Questo approccio aumenta significativamente l'efficienza del processo di diradamento dei fiori, offrendo la possibilità di adattamento individuale alle condizioni specifiche del giardino, nonché alla varietà e al tipo di frutto in esso coltivato. Dopo due anni di test della macchina Florix su diverse tipologie di frutta, i risultati sono stati molto incoraggianti. Agricoltori come Filiberto Montanari, che utilizza una macchina Florix da diversi anni, hanno riscontrato una significativa riduzione del tempo e della manodopera necessari per diluire i fiori. ... >>

Microscopio infrarosso avanzato 02.05.2024

I microscopi svolgono un ruolo importante nella ricerca scientifica, consentendo agli scienziati di approfondire strutture e processi invisibili all'occhio. Tuttavia, vari metodi di microscopia hanno i loro limiti e tra questi c'è la limitazione della risoluzione quando si utilizza la gamma degli infrarossi. Ma gli ultimi risultati dei ricercatori giapponesi dell'Università di Tokyo aprono nuove prospettive per lo studio del micromondo. Gli scienziati dell'Università di Tokyo hanno presentato un nuovo microscopio che rivoluzionerà le capacità della microscopia a infrarossi. Questo strumento avanzato consente di vedere le strutture interne dei batteri viventi con sorprendente chiarezza su scala nanometrica. In genere, i microscopi nel medio infrarosso sono limitati dalla bassa risoluzione, ma l’ultimo sviluppo dei ricercatori giapponesi supera queste limitazioni. Secondo gli scienziati, il microscopio sviluppato consente di creare immagini con una risoluzione fino a 120 nanometri, ovvero 30 volte superiore alla risoluzione dei microscopi tradizionali. ... >>

Trappola d'aria per insetti 01.05.2024

L’agricoltura è uno dei settori chiave dell’economia e il controllo dei parassiti è parte integrante di questo processo. Un team di scienziati dell’Indian Council of Agricultural Research-Central Potato Research Institute (ICAR-CPRI), Shimla, ha trovato una soluzione innovativa a questo problema: una trappola per insetti alimentata dal vento. Questo dispositivo risolve le carenze dei metodi tradizionali di controllo dei parassiti fornendo dati sulla popolazione di insetti in tempo reale. La trappola è alimentata interamente dall'energia eolica, il che la rende una soluzione ecologica che non richiede energia. Il suo design unico consente il monitoraggio sia degli insetti dannosi che utili, fornendo una panoramica completa della popolazione in qualsiasi area agricola. “Valutando i parassiti target al momento giusto, possiamo adottare le misure necessarie per controllare sia i parassiti che le malattie”, afferma Kapil ... >>

Notizie casuali dall'Archivio

Vetro autorigenerante 06.06.2018

Gli scienziati dell'Università di Tokyo hanno sintetizzato un materiale che può "attaccare" graffi e crepe. Allo stesso tempo, non necessita di riscaldamento, come la maggior parte di questi materiali. Affinché il vetro "si attacchi", è necessario esercitare una leggera pressione su di esso, ad esempio collegare pezzi di vetro con le mani e stringere saldamente.

Si presume che lo sviluppo degli scienziati giapponesi possa essere utilizzato per realizzare schermi per smartphone, tablet e altri dispositivi.

In precedenza, gli sviluppatori statunitensi proponevano il vetro che può essere ripristinato aumentando le dimensioni. Inoltre, nel 2015, LG ha mostrato un telefono con una pellicola protettiva che può attaccare insieme i danni

Altre notizie interessanti:

▪ Chiavetta USB di PNY

▪ Trovato un pianeta dove piove da pietre preziose

▪ Notebook Eurocom M4 con schermo 13,3" 3200x1800

▪ Giochi con quanti di energia

▪ MOSFET ad alta tensione per dispositivi di commutazione ad alta velocità

News feed di scienza e tecnologia, nuova elettronica

 

Materiali interessanti della Biblioteca Tecnica Libera:

▪ sezione del sito Audio Art. Selezione dell'articolo

▪ articolo Jomini da Jomini, ma non una parola sulla vodka. Espressione popolare

▪ articolo In che modo gli antichi astronomi immaginavano l'universo? Risposta dettagliata

▪ articolo Nodo di serpente. Consigli di viaggio

▪ articolo Colla per l'incollaggio della gomma su metallo e legno. Ricette e consigli semplici

▪ articolo Moltiplicatore di qualità. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica

Lascia il tuo commento su questo articolo:

Nome:


E-mail (opzionale):


commento:





Tutte le lingue di questa pagina

Homepage | Biblioteca | Articoli | Mappa del sito | Recensioni del sito

www.diagram.com.ua

www.diagram.com.ua
2000-2024