introducción a los microprocesadores / microcontroladores

12
DEPARTAMENTO DE ELECTRONICA Arquitectura de Microcontroladores Cap 1.doc Ing. Josè M. Salama Electrónica Digital II hoja 1 de 12 Introducción a los microprocesadores / microcontroladores Capítulo 1 Análisis de un procesador simple El concepto de Arquitectura de computadoras de computadoras de computadoras de computadoras se define como el funcionamiento, estructura y diseño de computadoras. Dentro de este término se engloban entre otros aspectos tales como: Almacenamiento Control Interconexión Temporización Entrada/salida Instrucciones Direccionamiento Controlador Se denomina controlador al dispositivo que se emplea para el manejo o gobierno de uno o varios procesos. El controlador conceptualmente no ha cambiado con el tiempo, pero su implementación ha tenido diversas transformaciones a lo largo del mismo, aunque muchas de ellas se utilizan en la actualidad con mucha frecuencia ya sea por costo, confiabilidad o sencillez. Hubo transformaciones desde mecánicas, luego con elementos de lógica discreta, Relay, y en la década del ´60 aparecen los PLC (sigla de origen inglés para denominar al Controlador Lógico Programable); posteriormente se emplearon los microprocesadores, que se rodeaban con chips de memoria y elementos de E/S montados sobre una placa de circuito impreso.

Upload: others

Post on 29-Dec-2021

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introducción a los microprocesadores / microcontroladores

DEPARTAMENTO DE ELECTRONICA

Arquitectura de Microcontroladores Cap 1.doc

Ing. Josè M. Salama Electrónica Digital II hoja 1 de 12

Introducción a los microprocesadores / microcontroladores Capítulo 1

Análisis de un procesador simple

El concepto de Arquitectura de computadoras de computadoras de computadoras de computadoras se define como el funcionamiento, estructura y diseño de computadoras.

Dentro de este término se engloban entre otros aspectos tales como:

• Almacenamiento • Control • Interconexión • Temporización • Entrada/salida • Instrucciones • Direccionamiento

Controlador

Se denomina controlador al dispositivo que se emplea para el manejo o gobierno de uno o varios procesos.

El controlador conceptualmente no ha cambiado con el tiempo, pero su implementación ha tenido diversas transformaciones a lo largo del mismo, aunque muchas de ellas se utilizan en la actualidad con mucha frecuencia ya sea por costo, confiabilidad o sencillez.

Hubo transformaciones desde mecánicas, luego con elementos de lógica discreta, Relay, y en la década del ´60 aparecen los PLC (sigla de origen inglés para denominar al Controlador Lógico Programable); posteriormente se emplearon los microprocesadores, que se rodeaban con chips de memoria y elementos de E/S montados sobre una placa de circuito impreso.

Page 2: Introducción a los microprocesadores / microcontroladores

DEPARTAMENTO DE ELECTRONICA

Arquitectura de Microcontroladores Cap 1.doc

Ing. Josè M. Salama Electrónica Digital II hoja 2 de 12

En la actualidad, todos estos elementos se encuentran incluidos en un chip que recibe el nombre de microcontrolador. La diferencia fundamental entre un microcontrolador y un microprocesador está en que el primero posee una cantidad limitada de procesos e instrucciones de lógica y cálculo pero un manejo versátil y poderoso de distintos periféricos, como ser varios puertos de entrada/salida, conversiones AD/DA, etc.; en cambio en el microprocesador estas características son a la inversa.

Un microcontrolador dispone normalmente de los siguientes componentes:

• Procesador o UCP (Unidad Central de Proceso). • Memoria RAM para Contener los datos. • Memoria para el programa tipo ROM/PROM/EPROM. • Líneas de E/S para comunicarse con el exterior. • Diversos módulos para el control de periféricos (temporizadores, Puertas

Serie y Paralelo, CAD: Conversores Analógico/Digital, CDA: Conversores Digital/Analógico, etc.).

• Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema.

Las primeras computadoras consistían en máquinas compuestas por distintos elementos, cuya finalidad era ejecutar una serie de operaciones. Dichas operaciones se realizaban cableando dichos elementos (Hardware) y estos respondían generalmente de forma secuencial.

Por ejemplo si consideramos como sistema una caldera, el controlador que regula el funcionamiento de la misma recibirá información de un sensor que mide constantemente la temperatura del agua, y cuando traspasa los límites prefijados, el controlador genera las señales adecuadas que accionaran los correspondientes

Page 3: Introducción a los microprocesadores / microcontroladores

DEPARTAMENTO DE ELECTRONICA

Arquitectura de Microcontroladores Cap 1.doc

Ing. Josè M. Salama Electrónica Digital II hoja 3 de 12

actuadores que intentan llevar el valor de la temperatura dentro del rango estipulado. En este caso el controlador esta llevando a cabo un control llamado a “lazo cerrado” pues toma información sobre una determinada variable que quiere controlar y luego ejecuta las acciones necesarias sobre los actuadores para que dicha variable llegue al valor preestablecido.

Otro ejemplo sería el control de la secuencia de un semáforo, este tipo de control no posee sensores aunque en algunos casos pueden utilizarse, el encendido de las luces del semáforo siguen una determinada secuencia con tiempos prefijados para cada una de ellas. En este caso el controlador lleva a cabo un control a lazo abierto, pues actúa sobre la variable de salida sin tener en cuenta el estado en que se encuentra esta o sea sin tomar información del estado de la misma.

Este ejemplo lo tomaremos como base para explicar la arquitectura de un microcontrolador rudimentario y a partir de él llegar a los utilizados en la actualidad..

El siguiente circuito se puede utilizar para controlar la secuencia de un semáforo.

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

1 Hz

Vcc VccV A R

V A R

L1

CK

Page 4: Introducción a los microprocesadores / microcontroladores

DEPARTAMENTO DE ELECTRONICA

Arquitectura de Microcontroladores Cap 1.doc

Ing. Josè M. Salama Electrónica Digital II hoja 4 de 12

El principio de funcionamiento de este circuito podría sintetizarse de la siguiente manera:

En este caso inicialmente se activa la llave L1 seteandose el flip flop V encendiéndose la luz verdeverdeverdeverde. Al primer pulso de CK el FF V por tener sus entradas JK en 01, su salida pasa a 0 apagándose la luz verde, como el FF A cambia de estado con cada pulso de CK, se enciende la luz AmarillaAmarillaAmarillaAmarilla y el FF R al tener sus entradas en nivel bajo permanece en 0. Al segundo pulso de CK el FF V permanece en 0 por tener las mismas condiciones anteriores, el FF A vuelve a cambiar de estado por lo que se apaga la luz amarilla y como el FF R tiene sus entradas en 1 cambia de estado encendiéndose la luz rojarojarojaroja. Al tercer pulso de CK el FF V repite las condiciones anteriores por lo que la luz verde permanece apagada, el FF A vuelve a cambiar de estado, no así el FF R por lo que quedan encendidas las luces amarilla y amarilla y amarilla y amarilla y rojarojarojaroja. Al siguiente pulso de CK los 3 FF quedan con la condición de cambiar de estado por lo que se enciende la luz verdeverdeverdeverde y se apagan la amarilla y la roja volviendo a la condición inicial y a repetir la secuencia [[[[ V V V V –––– A A A A –––– R R R R –––– RA RA RA RA –––– V .....] V .....] V .....] V .....].

Los tiempos que permanecen encendidas cada luz dependen de la frecuencia del CK que se utilice.

Si se quisiera cambiar la secuencia de encendido de las luces o tener tiempos distintos para cada una de ellas se debería cambiar la estructura del circuito.

Se debía hacer un cambio conceptual en los sistemas basados en comportamientos secuenciales para no tener que cambiar la estructura circuital del mismo cada vez que se quería modificar su secuencia. Para ello, el científico John von Neumann, propuso el concepto de programa almacenado (software)(software)(software)(software), el cual consiste en una serie de instrucciones guardadas en una memoria que se deben ejecutar ordenadamente.

Page 5: Introducción a los microprocesadores / microcontroladores

DEPARTAMENTO DE ELECTRONICA

Arquitectura de Microcontroladores Cap 1.doc

Ing. Josè M. Salama Electrónica Digital II hoja 5 de 12

Basándonos en las consideraciones propuestas por von Neumann desarrollaremos un circuito que permita controlar la secuencia de encendido de las luces del semáforo. Dicho circuito podría representarse por el siguiente esquema:

10 Hz

Decodificador

de Instrucciones

ContadorRst

Ck

Q0

Qn

MemoriaA0

An

D0

D4

D3

D2

D1

D5

D6

D7

x

y a

b

S1

RA

V

S2

RA

V

Para este circuito el contador utilizado es uno del tipo ascendente que incrementa su cuenta por cada pulso de CK que aparece en su entrada. Las salidas

Q0 a Qn de este contador están conectadas a las entradas de dirección A0 a An de

una memoria con palabras de 8 bits de dato D0 a D7 . Al ir contando el contador, la memoria se va recorriendo en forma secuencial desde la dirección 0 en adelante y esta entregará en sus salidas los datos que tenga almacenados en las distintas direcciones.

Se puede observar que mientras el bit de datos D7 permanezca en 1, al contador le llegaran los pulsos de CK provistos por el generador correspondiente haciendo que el contador incremente su cuenta por lo que se procede a recorrer secuencialmente la memoria. En cambio si el bit de datos D7 permanece en 0 la compuerta inhabilita el paso de los pulsos de CK y el contador se detiene en el valor que estaba y por consiguiente la memoria quedará direccionada en una dirección fija. El bit de datos D6 es el que proporcionará el reset de la memoria que supondremos se logrará con un 1 en la entrada correspondiente, en este caso el contador volverá a la posición inicial 0 por lo que la memoria quedará direccionada también en la dirección 0 .

Page 6: Introducción a los microprocesadores / microcontroladores

DEPARTAMENTO DE ELECTRONICA

Arquitectura de Microcontroladores Cap 1.doc

Ing. Josè M. Salama Electrónica Digital II hoja 6 de 12

• Ejemplo 1Ejemplo 1Ejemplo 1Ejemplo 1 Si quisiéramos encender solamente las luces del semáforo S1 con una sola secuencia [ R R R R –––– A A A A –––– V V V V ] y que luego este quede apagado, deberíamos escribir lo siguiente en la memoria:

Inicialmente al estar la memoria posicionada “direccionada”“direccionada”“direccionada”“direccionada” en la dirección 0, el bit D0 enciende la luz roja y con D7 en 1 queda habilitada la entrada de CK, con el próximo pulso de CK la memoria pasa a la dirección 1encendiendo la luz amarilla mediante D1 , al siguiente pulso de CK se enciende la luz verde que está comandada por el bit D2 , por último con el próximo pulso de CK quedan apagadas todas las luces y como el bit D7 está en 0 queda inhabilitada la entrada de pulsos de CK por lo que el semáforo quedará permanentemente apagado.

• Ejemplo 2Ejemplo 2Ejemplo 2Ejemplo 2 Si ahora quisiéramos encender los 2 semáforos simulando la secuencia de un cruce de calles deberíamos escribir en la memoria lo mostrado en la tabla.

a b V2 A2 R2 V1 A1 R1

D7 D6 D5 D4 D3 D2 D1 D0

Dir 0 1 0 0 0 0 0 0 1

Dir 1 1 0 0 0 0 0 1 0

Dir 2 1 0 0 0 0 1 0 0

Dir 3 0 0 0 0 0 0 0 0

Dir 4 x x x x x x x x

a b V2 A2 R2 V1 A1 R1

D7 D6 D5 D4 D3 D2 D1 D0

Dir 0 1 0 1 0 0 0 0 1

Dir 1 1 0 0 1 0 0 0 1

Dir 2 1 0 0 0 1 0 0 1

Dir 3 1 0 0 0 1 0 1 1

Dir 4 1 0 0 0 1 1 0 0

Dir 5 1 0 0 0 1 0 1 0

Dir 6 1 0 0 0 1 0 0 1

Dir 7 1 0 0 1 1 0 0 1

Dir 8 1 1 1 0 0 0 0 1

Dir 9

Page 7: Introducción a los microprocesadores / microcontroladores

DEPARTAMENTO DE ELECTRONICA

Arquitectura de Microcontroladores Cap 1.doc

Ing. Josè M. Salama Electrónica Digital II hoja 7 de 12

Como puede observarse desde la dirección 0 hasta la dirección 7 están escritos los datos que comandan una secuencia completa de los semáforos y en la dirección 8 al poner en 1 el bit D6 este resetea al contador permitiendo que la memoria se direccione en la posición 0 reiniciándose la secuencia, por lo que quedan funcionando los semáforos permanentemente.

Como se ha mostrado, con sólo cambiar unos datos en la memoria se cambió la secuencia de encendido de las luces y si se quisiera mantener por mas tiempo alguna de las luces encendidas podríamos repetir los datos de la correspondiente dirección varias veces: por esto es que a diferencia del circuito anterior no hay que cambiar la estructura del mismo sino solamente algunos datos, demostrando su versatilidad.

Este circuito básico que denominaremos “procesador” “procesador” “procesador” “procesador” posee datos almacenados en las distintas direcciones de memoria que se van seleccionando secuencialmente, a esta propiedad la podríamos denominar “ejecución del programa”“ejecución del programa”“ejecución del programa”“ejecución del programa” de control de secuencia del semáforo.

A los bits DDDD0000 ... D ... D ... D ... D5555 los llamaremos bits de dato propiamente dicho, pues estos corresponden a la información que se va a utilizar en el semáforo. Los bits DDDD7777 y y y y D D D D6666 representan lo que llamaremos las “instrucciones”“instrucciones”“instrucciones”“instrucciones” del programa, estos dos bits ingresan al bloque que hemos denominado “Decodificador de instrucciones”, “Decodificador de instrucciones”, “Decodificador de instrucciones”, “Decodificador de instrucciones”, quien es el encargado de operar sobre el contador “Contador de Programa PC“,“Contador de Programa PC“,“Contador de Programa PC“,“Contador de Programa PC“, para que este direccione la memoria convenientemente. Como sólo posee 2 bits de instrucciones se lo denomina “procesador de 2 bits”.“procesador de 2 bits”.“procesador de 2 bits”.“procesador de 2 bits”.

Page 8: Introducción a los microprocesadores / microcontroladores

DEPARTAMENTO DE ELECTRONICA

Arquitectura de Microcontroladores Cap 1.doc

Ing. Josè M. Salama Electrónica Digital II hoja 8 de 12

En la siguiente tabla se muestra el valor que pueden adoptar estos dos bits, la operación que realiza el circuito con su abreviatura:

DDDD7777 DDDD6666 OperOperOperOperación que se realizaación que se realizaación que se realizaación que se realiza AbreviaturasAbreviaturasAbreviaturasAbreviaturas

0000 0000 El contador de programa se bloquea, deteniéndosedeteniéndosedeteniéndosedeteniéndose la ejecución del programa.

STOPSTOPSTOPSTOP HLT ALTO PAUSA

1111 0000 El contador de programa queda habilitado para continuarcontinuarcontinuarcontinuar ejecutando el programa

CONTCONTCONTCONT

0000 1111 El contador de programa se resetearesetearesetearesetea reiniciándose la ejecución del programa.

RSTRSTRSTRST

1111 1111 El contador de programa se resetearesetearesetearesetea reiniciándose la ejecución del programa.

RSTRSTRSTRST

Como se puede observar con dos bits se pueden tener cuatro posibles “instrucciones”“instrucciones”“instrucciones”“instrucciones” que llamaos con las abreviaturas STOP CONTINUARSTOP CONTINUARSTOP CONTINUARSTOP CONTINUAR y RESET, RESET, RESET, RESET, pero como se observa se está desperdiciando una posibilidad debido a que el contador se resetea con el DDDD6666 en 1 sin importar el valor de DDDD7777.... Cabe destacar que los bits DDDD0000 ... ... ... ... DDDD5555 sombreados en este caso, podrían adoptar cualquier valor, debido a que el tiempo que se va a estar ejecutando esta instrucción no depende del valor de período de CK sino al tiempo que tarda el contador de programa en resetearse que es mucho menor, pero se ha decidido escribir el próximo valor que adoptarán estos bits y por ende los semáforos para que estos no presenten aunque mas no sea por un tiempo pequeño una información errónea, este inconveniente será subsanado mas adelante.

Page 9: Introducción a los microprocesadores / microcontroladores

DEPARTAMENTO DE ELECTRONICA

Arquitectura de Microcontroladores Cap 1.doc

Ing. Josè M. Salama Electrónica Digital II hoja 9 de 12

Modificando el circuito anterior, para no desperdiciar una opción y disponer de las cuatro instrucciones que nos permiten los dos bits, se puede obtener el circuito siguiente:

1 Hz

Decodificador

de Instrucciones

Contador de

ProgramaRst

Ck

Q0

Qn

MemoriaA0

An

D0

D4

D3

D2

D1

D5

D6

D7

P0

P1

P2

P3

P4

P5

Pst

S1

RA

V

S2

RA

V

a

b

x

y

z

Con este circuito se optimiza el “juego de instrucciones”“juego de instrucciones”“juego de instrucciones”“juego de instrucciones” detalladas anteriormente debido a que ahora tendremos la posibilidad de utilizar las cuatro posibles instrucciones que permite este procesador de dos bits. Para ello se ha modificado también el circuito “decodificador de instrucciones” “decodificador de instrucciones” “decodificador de instrucciones” “decodificador de instrucciones” y el Contador utilizado ahora tiene la propiedad de ser preseteable o sea que si se ingresa un valor

determinado por las entradas PPPP0000 ... P ... P ... P ... P5555 y al activar el comando Pst dicho contador

pasará a tener en sus salidas QQQQ0000 ... Q ... Q ... Q ... Qnnnn, el valor prefijado y continuará la cuenta a

partir de este o sea que la ejecución del programa dará un salto hasta la nueva dirección desde donde este proseguirá.

Page 10: Introducción a los microprocesadores / microcontroladores

DEPARTAMENTO DE ELECTRONICA

Arquitectura de Microcontroladores Cap 1.doc

Ing. Josè M. Salama Electrónica Digital II hoja 10 de 12

El nuevo “set” “set” “set” “set” de instrucciones correspondiente a este nuevo circuito será:

DDDD7777 DDDD6666 AbreviaturasAbreviaturasAbreviaturasAbreviaturas Operación que se realizaOperación que se realizaOperación que se realizaOperación que se realiza

0000 0000 STOPSTOPSTOPSTOP El contador de programa se bloquea, deteniéndosedeteniéndosedeteniéndosedeteniéndose la ejecución del programa.

1111 0000 CONTCONTCONTCONT El contador de programa queda habilitado para continuarcontinuarcontinuarcontinuar ejecutando el programa

0000 1111 RSTRSTRSTRST El contador de programa (PC)(PC)(PC)(PC) se resetearesetearesetearesetea reiniciándose la ejecución del programa.

1111 1111 JMPJMPJMPJMP El “ PC ”“ PC ”“ PC ”“ PC ” se preseteapreseteapreseteapresetea con el valor a donde ssssaltaráaltaráaltaráaltará y proseguirá con la ejecución del programa.

• Ejemplo 3Ejemplo 3Ejemplo 3Ejemplo 3 Veamos como se podría escribir un programa que realice inicialmente el encendido secuencial de cada una de las 6 luces y que luego los 2 semáforos queden titilando en amarillo.

Como se observa desde la dirección 0 a la 5, se realiza el encendido secuencial de todas las luces del semáforo, durante el tiempo que el contador permanece en la dirección 6, los semáforos estarán en amarillo, mientras que cuando el contador esté en la dirección 7 los semáforos permanecerán apagados. Al llegar el contador al valor 8, se preseteará el mismo con el valor 6 “000110”, por lo que los semáforos pasarán nuevamente a amarillo.

a b V2 A2 R2 V1 A1 R1

PC D7 D6 D5 D4 D3 D2 D1 D0

Dir 0 1 0 1 0 0 0 0 0

Dir 1 1 0 0 1 0 0 0 0

Dir 2 1 0 0 0 1 0 0 0

Dir 3 1 0 0 0 0 1 0 0

Dir 4 1 0 0 0 0 0 1 0

Dir 5 1 0 0 0 0 0 0 1

Dir 6 1 0 0 1 0 0 1 0

Dir 7 1 0 0 0 0 0 0 0

Dir 8 1 1 0 0 0 1 1 0

Dir 9

Page 11: Introducción a los microprocesadores / microcontroladores

DEPARTAMENTO DE ELECTRONICA

Arquitectura de Microcontroladores Cap 1.doc

Ing. Josè M. Salama Electrónica Digital II hoja 11 de 12

Cabe destacar que por un lapso muy breve el semáforo 1 encenderá conjuntamente las luces verde y amarilla lo cual es un estado no deseado de las luces del semáforo.

Para que esto no ocurra modificaremos el circuito de la siguiente manera:

Decodificador de

Instrucciones

Contador de

ProgramaRst

Ck

Q0

Qn

MemoriaA0

An

D0

D4

D3

D2

D1

D5

D6

D7

P0

P1

P2

P3

P4

P5

Pst

S1

RA

V

S2

RA

V

L

A

T

C

HLe

1 Hz

a

b

w

x

y

z

Vcc

FFQ T

Q

Con este circuito se puede guardar en el “Latch” cuando se desee, el valor que se mostrará en los semáforos, y cuando se quiera direccionar el PC con el número correspondiente a la dirección a dónde saltar, este nuevo valor no se mostrará como dato de salida debido a que se inhabilita la posibilidad de posibilidad de “latch“latch“latch“latchear”ear”ear”ear” el dato. Se agregó también al decodificador de instrucciones un divisor de pulsos de reloj por lo que cada incremento del “PC”“PC”“PC”“PC” al que llamaremos “ Ciclo de máquina “ “ Ciclo de máquina “ “ Ciclo de máquina “ “ Ciclo de máquina “ le corresponderán varios pulsos de reloj ( en este caso 2 pulsos): esto nos dará la posibilidad de tener mas tiempo para hacer distintas cosas dentro de una misma instrucción. Cabe destacar que el decodificador de instrucciones es el encargado organizar para cada una de las instrucciones los pasos que debe seguir el procesador para ejecutar convenientemente esa instrucción, o sea en cada Ciclo de máquina debe primero leer la instrucción, luego si debe producir un salto bloquear la activación del Lctch, en caso contrario guardar el dato para ser mostrado y

Page 12: Introducción a los microprocesadores / microcontroladores

DEPARTAMENTO DE ELECTRONICA

Arquitectura de Microcontroladores Cap 1.doc

Ing. Josè M. Salama Electrónica Digital II hoja 12 de 12

dependiendo de la complejidad del procesador deberá realizar distintas operaciones antes de pasar a la próxima instrucción activando la entrada de cuenta del PC.

El siguiente diagrama de tiempos muestra un ejemplo de esta técnica.

Guardar dato

Incrm

entar dirección

Decodificar instrucción

Guardar dato

Incrm

entar dirección

Decodificar instrucción

Saltar a otra dirección

Decodificar instrucción

Guardar dato

Incrm

entar dirección

Decodificar instrucción

Guardar dato

Incrm

entar dirección

Instrucción

CONT

Instrucción

CONT

Instrucción

JMP

Decodificar instrucción

Reiniciar el programa

Instrucción

RST

Decodificar instrucción t

PC

t

Le

t

CK

t

CM

Es importante destacar que para el análisis que estamos realizando sobre la arquitectura de un procesador no profundizaremos en la circuitería correspondiente al decodificador de instrucciones ni en los tiempos involucrados en el mismo sino en que este debe tomar la información proveniente de los bits de instrucción, decodificarla y realizar las acciones necesarias para que los datos se guarden, se realice un salto a una dirección determinada, etc. sin que haya ningún tipo de ambigüedad en la decisión a tomar, este análisis se realizará en el momento que sea necesario.