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

Modulo di debug per microcontrollori della serie MCS51. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica

Libreria tecnica gratuita

Enciclopedia della radioelettronica e dell'elettrotecnica / microcontrollori

Commenti sull'articolo Commenti sull'articolo

Lo sviluppo di dispositivi basati su microcontrollori (MCU), di norma, viene eseguito secondo un piano semplice: l'MCU in una connessione tipica viene “appesantito” con le periferiche necessarie, quindi viene scritto il software. In questo caso, dovrai utilizzare vari strumenti che si occupano del lavoro di routine, lasciando al programmatore il compito di risolvere i problemi creativi.

Il dispositivo descritto di seguito è un “prodotto semilavorato” di un sistema a microcontrollore, uno strumento per il suo debugging e un oggetto di ricerca allo stesso tempo. È destinato all'acquisizione di competenze di programmazione e debug per i programmi MCS51, ma può anche servire come modello di un sistema reale, consentendo di eseguire il debug del software applicativo insieme all'oggetto di controllo. Avendo un tale modulo, allo sviluppatore verrà risparmiata la necessità di utilizzare frequentemente un programmatore o un emulatore ROM, che sono inaccessibili a molti a causa del loro costo elevato.

Lo schema del modulo di debug per il microcontrollore della serie MCS51 è mostrato in figura. La maggior parte dei nodi sono realizzati secondo circuiti standard e il dispositivo di interfaccia con la porta seriale di un personal computer (PC) è preso in prestito dal dispositivo descritto nell'articolo di S. Kuleshov e Yu. Zaumenny "Programmatore di chip ROM" (" Radio", 1995, n. 10, pag. 22 -25). Ai pin liberi delle porte P1 e P3 del microcontrollore DD1 (terminano con le frecce nello schema) possono essere collegate varie periferiche. La spina XP1 è collegata tramite un cavo alla presa di una delle porte seriali del PC sotto il quale funzionerà il modulo.

Modulo di debug per microcontrollori serie MCS51
(clicca per ingrandire)

Dopo aver applicato la tensione di alimentazione, il condensatore C3 viene caricato attraverso il resistore R1. Secondo il segnale di reset RES generato dall'elemento DD3.4, MK DD1 torna al suo stato iniziale ed esegue operazioni preparatorie, inclusa l'impostazione del livello logico su 1 su tutti i pin della porta P3. Il trigger sugli elementi DD3.1, DD3.2 è in uno stato in cui il suo segnale di uscita imposta la distribuzione della memoria in modo tale che l'area degli indirizzi 0-7FFFH della memoria del programma occupi la ROM (DD5) e 8000H-0FFFFH occupi la RAM ( DD6). Viene eseguito il programma Monitor situato nella ROM. Digitando i comandi del Monitor sulla tastiera del PC, l'operatore può lavorare con la RAM e le periferiche del modulo.

Per trasferire il trigger in un altro stato è necessario inviare dal PC di controllo il comando RESET Monitor descritto di seguito, che imposta il segnale MOD=0. Gli indirizzi della RAM e della ROM della memoria del programma vengono scambiati e il programma, precedentemente inserito dall’operatore nella RAM del modulo, inizia a funzionare. Ciò consente di emulare il funzionamento di un dispositivo reale e controllare i programmi tradotti in indirizzi di memoria ridotta, ad esempio preparati per la scrittura nella ROM. Il pulsante SB1 viene utilizzato per ripristinare il MK al suo stato originale senza modificare l'allocazione della memoria. Il monitor può essere riavviato solo premendo il pulsante SB2 o spegnendo e riaccendendo. Ciò consente ai programmi sottoposti a debug di operare liberamente con lo stato della porta P3 (ad esempio, quando si lavora con le periferiche), senza timore di cambiare accidentalmente l'allocazione della memoria.

Il LED HL1 costituisce il mezzo più semplice per visualizzare le informazioni ed è molto utile, soprattutto se per un motivo o per l'altro non c'è connessione con il PC. Dopo aver collegato l'alimentazione, lampeggia ad una frequenza di circa 1 Hz, il che indica che il monitor sta funzionando. Il diodo zener protegge il dispositivo dall'inversione di polarità o dalla sovratensione dell'alimentazione +5 V.

Il programma Monitor (Tabella 1) prevede il controllo del modulo e la sua interazione attraverso la porta seriale RS-232C con un PC, da cui vengono trasmessi i comandi e i dati necessari per lavorare su un compito specifico. Attraverso la stessa porta, il PC riceve e visualizza sul proprio schermo i risultati del funzionamento del modulo. Sul PC deve essere eseguito il programma di comunicazione "Telemax" della diffusa shell Norton Commander 5.0, "Hyper Terminal" di Windows 95 OSR2 o un altro simile. Come ultima risorsa, puoi fare a meno di un programma speciale, semplicemente inviando file con i dati preparati alla porta seriale del PC utilizzando un comando MS DOS.

Modulo di debug per microcontrollori serie MCS51
(clicca per ingrandire)

Quando si imposta il programma di comunicazione, è necessario eliminare le righe di inizializzazione del modem, impostare le modalità “Eco locale” e “Broadcast CR/LF” e, se necessario, selezionare il terminale ANSI e la tabella dei codici ASCII. La modalità di funzionamento della porta seriale dovrebbe essere la seguente: velocità - 4800 Baud, numero di bit per carattere - 8, controllo di parità disabilitato, numero di bit di stop - 1. Se tutto è corretto, il testo digitato sulla tastiera del PC sarà inviato al modulo di debug e le sue risposte verranno visualizzate sullo schermo.

I comandi del monitor possono essere digitati sia con la tastiera maiuscola che minuscola. Tutti i caratteri devono avere la codifica ASCII. Il tasto [BackSpace] cancella l'ultimo carattere immesso dal buffer del modulo di debug. Ogni comando è composto da un nome e un operando. La fine di un nome è indicata da un carattere delimitatore: spazio, tabulazione, avanzamento riga o ritorno a capo. Di seguito lo indicheremo convenzionalmente con un carattere di sottolineatura (_), ma puoi inserire uno qualsiasi dei precedenti.

Dopo aver ricevuto il separatore, il Monitor confronta i primi quattro caratteri precedentemente ricevuti e posizionati nel buffer con il contenuto della tabella dei comandi nella ROM. Dopo aver trovato una corrispondenza, ricorda l'indirizzo del gestore comandi dalla stessa tabella e inizia ad accettare un operando: uno o più numeri esadecimali. Concordiamo che gli indirizzi a uno e due byte della memoria interna ed esterna del MK saranno designati rispettivamente XX e XXXX, la lunghezza del blocco - YYYY, altri dati - ZZ o ZZZZ. Ad esempio, XXXX,YYYY è un blocco di memoria dati esterna che inizia all'indirizzo XXXX, lunghezza YYYY byte. Tutti gli zeri iniziali devono essere inclusi. L'operando deve inoltre terminare con un delimitatore, alla ricezione del quale viene avviato il gestore dei comandi. Un delimitatore immesso in un buffer vuoto viene ignorato.

RESET_ ZZZZ_ - la seconda modalità di allocazione della memoria viene attivata, il MK viene riportato al suo stato originale, il controllo viene trasferito all'indirizzo ZZZZ. Per il normale funzionamento del comando è necessaria la RAM funzionante.

DATA_ XXXX:_ ZZ_ [ZZ_][XXXX:_ZZ_ [ZZ_]._ - le informazioni vengono inserite nelle celle successive della memoria dati esterna, a partire dall'indirizzo XXXX. Non è necessario inserire parentesi quadre; indicano solo che il numero di operandi ZZ_ può essere arbitrario. L'immissione dei dati termina con il simbolo del punto. Nella tabella La Figura 2 mostra un esempio di utilizzo dei comandi DATA e RESET per inserire un semplice programma nella RAM ed eseguirlo.

READ_XX_ o READ_XXXX_ - una parola (due byte consecutivi) viene letta dalle celle di memoria della RAM dati interna o esterna. Il risultato sotto forma di numero esadecimale (prima il byte all'indirizzo più alto) viene trasmesso alla porta seriale.

WRITE_XX,ZZ_, WRITE_XX,ZZZZ_, WRITE_XXXX,ZZ_ o WRITE_XXXX,ZZZZ_ - il byte ZZ o la parola ZZZZ viene scritto nell'indirizzo XX o XXXX.

Si noti che le istruzioni READ e WRITE sono implementate utilizzando l'indirizzamento indiretto, quindi non possono funzionare con registri di funzioni speciali. Per accedere ai registri è necessario che per ciascuno di essi siano scritte procedure di scambio con indirizzamento diretto. Un esempio potrebbe essere il gestore del comando SPEED. Se il modulo ha un MCU con 256 byte di RAM interna, i comandi READ e WRITE potranno funzionare con i suoi 128 byte aggiuntivi agli indirizzi 80H-0FFH.

LOAD_XXXX,YYYY_ - riempito con le informazioni ricevute tramite la porta seriale, un blocco di memoria dati esterno.

SAVE_XXXX,YYYY_ - il contenuto del blocco di memoria dati esterna viene trasferito alla porta seriale.

CALL_ZZZZ_ - viene richiamata la subroutine che inizia all'indirizzo ZZZZ. Per tornare al Monitor è necessario terminare con il comando RET. Gli interrupt sono disabilitati mentre la subroutine è in esecuzione.

CHECK_XXXX,YYYY_ - viene calcolata la somma di controllo - il byte basso della somma di tutti i byte del blocco di memoria dati esterna.

FILL_XXXX,YYYY,ZZ_ - l'area della memoria dati esterna viene riempita con il byte ZZ e viene calcolata la sua checksum.

COPY_XXXX,YYYY,ZZZZ_ o COPY_PXXXX,YYYY,ZZZZ_ - il blocco della memoria dati esterna viene copiato nell'indirizzo ZZZZ. Il carattere P indica che l'area da copiare si trova nella memoria del programma. Allo stesso tempo, viene calcolato il checksum.

TEST_XXXX,YYYY_: viene verificata la funzionalità del blocco RAM esterno. Se non ci sono errori viene visualizzato il messaggio “OK”, altrimenti “XXXX: YY<>ZZ”, dove XXXX è l'indirizzo della cella guasta, YY è il valore scritto sulla stessa e ZZ è il valore letto. Il comando non distrugge il contenuto della RAM.

SPEED_ZZ_ o SPEED_ZZ+_ - modifica la velocità di scambio dei dati attraverso la porta seriale. Per impostazione predefinita, è 4800 Baud (determinato dal byte del programma Monitor all'indirizzo 2DH). Un valore uguale all'operando ZZ viene inserito nel registro TH1 del microcontrollore e determina la velocità operativa del suo ricetrasmettitore. Un segno più nell'operando fa sì che la velocità venga raddoppiata impostando il bit PCON.7.

La porta seriale del PC può funzionare a velocità di trasmissione di 110, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600 e superiori. La capacità di configurare in modo abbastanza accurato la porta seriale dell'MCU della serie MSC51 alle velocità specificate dipende dalla frequenza del risonatore al quarzo utilizzato. Ad esempio, se è 12 MHz, la porta può essere configurata a 300, 600, 1200, 2400 e 4800 baud con il comando SPEED con operandi 98, CC, E6, F3 e F3+ rispettivamente. Utilizzando un risonatore da 11 MHz si potrebbe raggiungere una velocità di 9600 baud. Tuttavia, durante il trasferimento dei file, probabilmente l'MK non sarà in grado di elaborare i dati che arrivano ad una velocità troppo elevata.

L'insieme di comandi descritto può essere ampliato e integrato senza ritradurre il Monitor e anche senza cancellare la ROM. Il nuovo gestore comandi viene posizionato nella sua area libera. Il nome del comando (i primi quattro caratteri in maiuscolo) viene scritto a partire dall'indirizzo 5ABH, seguito dall'indirizzo del gestore a due byte e dal byte 0FFH. L'handler deve terminare con una transizione all'indirizzo 23FH.

Tutti gli indirizzi di cella a byte singolo menzionati di seguito si riferiscono alla RAM interna del MK. Il monitor utilizza i banchi di registri 0 e 2, nonché le celle 20H-3FH. Lo stack cresce dall'indirizzo 50H. Quando non riceve ed elabora comandi, il microcontrollore esegue continuamente una subroutine situata nella ROM all'indirizzo indicato nelle celle 35H e 36H. Per impostazione predefinita è 063H. Questa subroutine, modificando periodicamente lo stato della scarica P3.4, accende e spegne il led HL1. La frequenza di lampeggiamento dipende dal contenuto della cella 3DH. Se questo bit deve essere utilizzato per altri scopi, è necessario emettere il comando WRITE_35,006A_.

Le celle 37H e 38H contengono l'indirizzo del gestore degli interrupt della porta seriale, che in realtà funge da spina dorsale del Monitor e determina la sua risposta ai comandi dell'operatore. Per impostazione predefinita, qui viene scritto 0, che corrisponde alla chiamata del gestore standard situato nella ROM all'indirizzo 081H.

Scrivendo un codice diverso da 3 all'indirizzo 0BH si attiva la funzione “Echo”. Il Monitor restituirà tutti i dati ricevuti tramite la porta seriale. Ciò ti consentirà di disattivare "Eco locale" nel programma di comunicazione e, se necessario, di salvare tutti i comandi inviati al modulo di debug e le sue risposte ad essi in un file di testo.

Il numero all'indirizzo 3AH specifica la pausa tra la ricezione di un comando da parte del Monitor e la risposta ad esso, necessaria per commutare alcuni programmi di comunicazione dalla trasmissione alla ricezione (questo non è richiesto per “Telemax”). È pari alla durata della pausa in secondi moltiplicata per 50.

Uno dei risultati dei comandi che operano sui blocchi di memoria (LOAD, SAVE, CHECK, FILL, COPY) è il checksum del blocco posto nella cella 39H. Può essere utilizzato per monitorare la corretta esecuzione dei comandi elencati.

Il monitor può accettare direttamente file in formato Intel HEX creati da molti assemblatori. E' sufficiente inviare tale file alla porta seriale del PC utilizzando un programma di comunicazione o semplicemente con il comando MSDOS COPY <nome file> COM2. La porta preutilizzata (in questo caso COM2) deve essere configurata con il comando MODE COM2:4800,N,8,1. Le informazioni verranno scritte nella memoria dati esterna del modulo di debug e, se i checksum non corrispondono, verrà emesso un messaggio corrispondente.

Ogni riga di un file Intel HEX inizia con due punti, seguiti senza spazi dai seguenti byte esadecimali a due cifre:

  • il numero di byte di dati contenuti nella riga;
  • i byte alti e bassi dell'indirizzo del primo dei byte di dati;
  • byte nullo;
  • byte di dati (il loro numero è dato dal primo byte della stringa);
  • controllare la somma
  • byte basso della solita somma di tutti i byte della stringa, presi con un segno meno.

Un file HEX termina sempre con una riga contenente zero byte di dati e indirizzo dopo i due punti, seguita da un flag dell'ultima riga (01) e da un checksum uguale a FF. La Tabella 3 mostra un esempio di tale file contenente gli stessi dati immessi dal comando Monitor DATA secondo la Tabella 2.

Autore: V.Ogleznev, Izhevsk

Vedi altri articoli sezione microcontrollori.

Leggere e scrivere utile commenti su questo articolo.

<< Indietro

Ultime notizie di scienza e tecnologia, nuova elettronica:

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 ... >>

La minaccia dei detriti spaziali al campo magnetico terrestre 01.05.2024

Sempre più spesso sentiamo parlare di un aumento della quantità di detriti spaziali che circondano il nostro pianeta. Tuttavia, non sono solo i satelliti e i veicoli spaziali attivi a contribuire a questo problema, ma anche i detriti di vecchie missioni. Il crescente numero di satelliti lanciati da aziende come SpaceX crea non solo opportunità per lo sviluppo di Internet, ma anche gravi minacce alla sicurezza spaziale. Gli esperti stanno ora rivolgendo la loro attenzione alle potenziali implicazioni per il campo magnetico terrestre. Il dottor Jonathan McDowell del Centro di astrofisica di Harvard-Smithsonian sottolinea che le aziende stanno rapidamente implementando costellazioni di satelliti e il numero di satelliti potrebbe crescere fino a 100 nel prossimo decennio. Il rapido sviluppo di queste armate cosmiche di satelliti può portare alla contaminazione dell'ambiente plasmatico terrestre con detriti pericolosi e una minaccia per la stabilità della magnetosfera. I detriti metallici dei razzi usati possono disturbare la ionosfera e la magnetosfera. Entrambi questi sistemi svolgono un ruolo chiave nella protezione e nel mantenimento dell'atmosfera ... >>

Solidificazione di sostanze sfuse 30.04.2024

Ci sono parecchi misteri nel mondo della scienza e uno di questi è lo strano comportamento dei materiali sfusi. Possono comportarsi come solidi ma improvvisamente trasformarsi in un liquido fluido. Questo fenomeno ha attirato l'attenzione di molti ricercatori e forse ci stiamo finalmente avvicinando alla soluzione di questo mistero. Immagina la sabbia in una clessidra. Di solito scorre liberamente, ma in alcuni casi le sue particelle iniziano a rimanere bloccate, trasformandosi da liquido a solido. Questa transizione ha importanti implicazioni per molti settori, dalla produzione di farmaci all’edilizia. Ricercatori statunitensi hanno tentato di descrivere questo fenomeno e di avvicinarsi alla sua comprensione. Nello studio, gli scienziati hanno condotto simulazioni in laboratorio utilizzando i dati provenienti da sacchetti di perle di polistirolo. Hanno scoperto che le vibrazioni all’interno di questi insiemi avevano frequenze specifiche, il che significa che solo alcuni tipi di vibrazioni potevano viaggiare attraverso il materiale. Ricevuto ... >>

Notizie casuali dall'Archivio

Buco nero piatto B 01.04.2004

Gli astronomi dell'Università di Cambridge (Inghilterra), studiando una gigantesca nuvola di gas che circonda l'ammasso di galassie nella costellazione del Perseo, a 250 milioni di anni luce dalla Terra, hanno trovato cerchi concentrici in questa nuvola.

Queste regioni di gas densificate e rarefatte sono visibili solo nella gamma dei raggi X (il gas riscaldato genera raggi X).

In sostanza, dicono i ricercatori, stiamo vedendo un suono ultra basso emesso da un buco nero che si trova al centro di una nuvola di gas. Questa è una nota di si bemolle, è 57 ottave sotto l'ottava centrale udibile dall'orecchio umano.

Altre notizie interessanti:

▪ Bracciale sportivo Realme Band 2

▪ Nintendo Switch

▪ Le brevi ore diurne influiscono sull'abilità mentale

▪ Altoparlante portatile Sony Extra Bass SRS-XB33

▪ La calotta glaciale della Groenlandia si sta sciogliendo in modo catastrofico

News feed di scienza e tecnologia, nuova elettronica

 

Materiali interessanti della Biblioteca Tecnica Libera:

▪ sezione del sito Amplificatori di potenza. Selezione dell'articolo

▪ Articolo di Soren Kierkegaard. Aforismi famosi

▪ articolo Perché camminiamo in cerchio quando ci perdiamo? Risposta dettagliata

▪ articolo Dalla storia delle carte geografiche. Consigli di viaggio

▪ articolo Saldatrice elettrica portatile a punti. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica

▪ articolo Alimentazione, 60 volt 0,1 amp. 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