2. Microcontrolador
MICROCONTROLADOR
• Se requiere escoger el mejor dispositivo que
cumpla con todas las características mínimas
para el buen desarrollo del sistema.
• La meta es escoger el más económico que
tenga los parámetros y características
deseadas para la aplicación.
• Los rangos van desde los 4 bits con
características limitadas hasta 32 bits de alta
velocidad.
Ing. Fernando A. Urbano M. 2
3. Microcontrolador
ARQUITECTURA BÁSICA
• CPU: circuito secuencial complejo cuya
función primaria es ejecutar los programas
que se encuentran almacenados en la Flash
EEPROM (Electrically Erasable
Programmable Read Only Memory).
• Programa: serie de instrucciones para
desarrollar una tarea específica.
• Los programas son desarrollados por de
diseñadores de sistemas basados en
microcontroladores (Ustedes) usando
herramientas de desarrollo.
Ing. Fernando A. Urbano M. 3
4. Microcontrolador
ARQUITECTURA BÁSICA (2)
Arquitectura basada en acumulador: las
instrucciones comienzan y terminan en registros
especialmente diseñados llamados
acumuladores (A y B).
Ing. Fernando A. Urbano M. 4
6. Microcontrolador
ARQUITECTURA BASADA EN REGISTROS (2)
Ambos operandos están almacenados en
registros que generalmente, están ubicados en
la CPU. El resultado de una operación,
también se almacena en un registro. Como los
registros y la CPU operan a la misma
velocidad, el procesador no tiene que bajarla
para leer o escribir los operandos. El resultado
de una operación también se almacena en un
resgistro.
Ing. Fernando A. Urbano M. 6
7. Microcontrolador
ARQUITECTURA BASADA EN PILA (1)
Ing. Fernando A. Urbano M. 7
8. Microcontrolador
ARQUITECTURA BASADA EN PILA (2)
Ambos operandos y la operación a ser
desarrollada se almacena en la pila. Puede
basarse en registros dedicados o puede ser
una porción de la memoria RAM (Random
Acces Memory).
Ing. Fernando A. Urbano M. 8
9. Microcontrolador
ARQUITECTURA PIPELINE (SEGMENTADA)
TRAE DECODIFICA TRAE EJECUTA ESCRIBE
INSTRUCCION INSTRUCCION OPERANDOS INSTRUCCION RESULTADOS
Consiste de subsistemas hardware separados
llamados etapas para traer una instrucción
desde la memoria, decodificarla, traer los
operandos desde la memoria o los registros,
ejecutar la instrucción y luego escribir los
resultados nuevamente en la memoria.
Ing. Fernando A. Urbano M. 9
10. Microcontrolador
ARQUITECTURA PIPELINE (2)
Cada etapa está procesando simultáneamente
una instrucción diferente de manera tal que el
resultado completo se da cuando se termina la
ejecución de una instrucción en cada ciclo de
reloj.
Generalmente se realizan instrucciones
simples fácilmente implementadas en una sola
etapa.
Ing. Fernando A. Urbano M. 10
11. Microcontrolador
CONJUNTO DE INSTRUCCIONES RISC VS
CISC
La arquitectura del conjunto de instrucciones
están relacionadas muy de cerca con la
arquitectura del microcontrolador.
Hay dos tipos básicos de arquitectura de
instrucciones:
• RISC: Reduced Instruction Set Computer
• CISC: Complex Instruction Set Computer
Ing. Fernando A. Urbano M. 11
12. Microcontrolador
RISC
• Tiene un complemento de instrucciones
simples construidas en bloques.
• Tiene instrucciones más complejas se
construyen a partir de las básicas.
• Hace que los sistemas tengan arquitecturas
de CPU menos complejas.
Ing. Fernando A. Urbano M. 12
13. Microcontrolador
CISC
• Tiene un complemento de características más
completas.
• Instrucciones más complejas.
Como diseñador de sistemas Usted necesita
estar íntimamente familiarizado con la
arquitectura hardware y software de un
microcontrolador dado, particularmente si va a
programar los sistemas en lenguaje
ensamblador.
Ing. Fernando A. Urbano M. 13
14. Microcontrolador
REGISTROS DE CONFIGURACIONES
La mayoría de microcontroladores tienen
registros complementarios denominados
Registros de configuraciones (Register Set).
Es una interfaz entre el usuario y los diferentes
subsistemas ubicados en el microcontrolador.
Cada registro consiste de varios flip-flops que
pueden verse como un interruptor configurable.
Ing. Fernando A. Urbano M. 14
15. Microcontrolador
REGISTRO DE CONFIGURACIONES (1)
Ing. Fernando A. Urbano M. 15
16. Microcontrolador
MEMORIA
Este tramo de memoria direccionable contiene
varios tipos de memorias incluida SRAM
(Static Random Acces Memory), EEPROM
(byte-addressable Electrically Erasable
Programmable Read Only Memory) y memoria
Flash programable EEPROM.
Para tener en vista las ubicaciones de la
memoria y el tipo presente en el sistema, se
usa una herramienta visual llamada mapa de
memoria.
Ing. Fernando A. Urbano M. 16
17. Microcontrolador
MEMORIA (2)
El mapa de memoria
muestra cuales direcciones
de memoria están
actualmente en uso y el tipo
de memoria presente.
Ing. Fernando A. Urbano M. 17
18. Microcontrolador
TIPOS DE MEMORIA
RAM: Es volátil. Puede escribirse y leerse
durante la ejecución del programa. Típicamente
se usa durante el desarrollo del sistema para
almacenar un programa. Una vez se completa
el desarrollo, todo el programa se almacena
una memoria no volátil tal como la Flash
EEPROM. Durante la ejecución del programa
se usa para almacenar variables globales,
soportar ubicación de memoria dinámica de
variables y proveer ubicación para la Pila.
Ing. Fernando A. Urbano M. 18
19. Microcontrolador
TIPOS DE MEMORIA (2)
EEPROM de byte direccionable: se usa para
almacenar y llamar variables
permanentemente durante la ejecución del
programa. Útil para almacenar datos que
deben ser retenidos durante un fallo de
potencia pero que pueden ser cambiados
cuando se necesite. Aplicaciones como data
loggers, combinaciones de cerraduras
electrónicas y cajas fuertes, contadores de
turno. Etc.
Ing. Fernando A. Urbano M. 19
20. Microcontrolador
TIPOS DE MEMORIA (3)
Flash EEPROM: se usa para almacenar
programas. Es borrable y programable.
Algunos sistemas de microcontroladores
proveen un gran complemento de RAM y ésta
memoria. Por lo tanto, un programa puede
desarrollarse en la RAM y luego transferirse a
la Flash cuando se complete. Otros fabricantes
poseen una pequeña RAM y una gran Flash.
Con ésta configuración de memoria, el sistema
desarrollado se guarda en la Flash.
Ing. Fernando A. Urbano M. 20
22. Microcontrolador PIC16F87X
DISPOSITIVOS PERIFÉRICOS PIC16F87X
• Timer0: temporizador-contador de 8 bits con
predivisor de 8 bits.
• Timer1: temporizador-contador de 16 bits con
predivisor.
• Timer2: temporizador-contador de 8 bits con
predivisor y postdivisor.
• Dos módulos de Captura - Comparación –
PWM.
22
Ing. Fernando A. Urbano M.
23. Microcontrolador PIC16F87X
DISPOSITIVOS PERIFÉRICOS PIC16F87X (2)
• Conversor A/D de 10 bits.
• Puerto Serie Síncrono (SSP) con SPI e I2C.
• USART.
• Puerta Paralela Esclava (PSP). Sólo en
encapsulado de 40 pines.
23
Ing. Fernando A. Urbano M.
24. Microcontrolador PIC16F87X
PIC16F87X – PROCESADOR RISC CON
ARQUITECTURA HARVARD
La arquitectura usada por Microchip se
caracteriza por la independencia entre la
memoria de código y la de datos. De ésta
manera la capacidad y el tamaño de los
buses de cada memoria se adaptan
estrictamente a las necesidades del diseño,
facilitando el trabajo en paralelo de las dos
memorias.
24
Ing. Fernando Aparicio Urbano Molano
25. Microcontrolador PIC16F87X
PIC16F87X – PROCESADOR RISC CON
ARQUITECTURA HARVARD (1)
La arquitectura RISC se presenta en el
reducido número de instrucciones, consta de
35 instrucciones, que se ejecutan en un ciclo
de instrucción, equivalente a cuatro periodos
de reloj, excepto las de salto que necesitan
dos ciclos.
25
Ing. Fernando Aparicio Urbano Molano
26. Microcontrolador PIC16F87X
PIC16F87X – PROCESADOR RISC CON
ARQUITECTURA HARVARD (2)
Bus de dirección de Bus de dirección de
instrucciones Datos
13 9
Memoria de Memoria de
Procesador Datos
código (Flash)
14 CPU 8 (SRAM)
BUS DE BUS DE DATOS
INSTRUCCIONES
26
Ing. Fernando Aparicio Urbano Molano
28. Microcontrolador PIC16F87X
ARQUITECTURA PIC16F87X (2)
La memoria de código está direccionada por
el PC (Contador de Programa) en conexión
con la pila de 8 niveles. La memoria de datos
RAM contiene el Banco de Registros
Específicos y el Banco de los Registros de
Propósito General y transfiere información
bidireccional por el bus de datos de 8 líneas
que interconecta todos los elementos. El
camino de Datos está formado por una ALU
de 8 bits que trabaja conjuntamente con el
Registro de Trabajo W.
28
Ing. Fernando Aparicio Urbano Molano
29. Microcontrolador PIC16F87X
PIC16F877 – ORGANIZACIÓN DE LA
MEMORIA DE PROGRAMA
29
Ing. Fernando Aparicio Urbano Molano
30. Microcontrolador PIC16F87X
PIC16F877 – ORGANIZACIÓN DE LA
MEMORIA DE PROGRAMA (2)
La memoria FLASH, donde se almacena el
programa de aplicación, puede tener una
capacidad de 4K u 8K palabras de 14 bits
cada una, se divide en páginas de 2K palabras
y está direccionada con el PC, que tiene un
tamaño de 13 bits. La Pila tiene 8 niveles de
profundidad y es transparente para el usuario,
funciona automáticamente y no dispone de
instrucciones.
30
Ing. Fernando Aparicio Urbano Molano
32. Microcontrolador PIC16F87X
MEMORIA DE DATOS RAM
• Tiene posiciones implementadas en RAM y
otras en EEPROM.
• Consta de 4 bancos de 128 bytes cada uno.
• Para seleccionar un banco se emplean los
bits 5 y 6 del registro de estado (STATUS)
Banco RP1 RP0
0 0 0
1 0 1
2 1 0
3 1 1
32
34. REGISTROS DE CONTROL
REGISTROS DE CONTROL
• Para gobernar el funcionamiento de los
recursos de los PIC existe un conjunto de
registros específicos (SFR) cuyos bits
soportan el control de los mismos.
• Están ubicados en las primeras posiciones de
cada banco de la memoria de datos RAM.
Ing. Fernando A. Urbano M. 34
35. REGISTROS DE CONTROL
REGISTRO DE ESTADO (STATUS)
• El registro STATUS contiene el estado
aritmético de la ALU, el estado del RESET y
los bits de selección del banco de la memoria
de datos.
• Es el más usado de todos, ya que sus bits
están destinados a controlar las funciones
vitales del procesador.
• Está duplicado en las cuartas posiciones de
cada banco (03h, 83h, 103h y 183h)
Ing. Fernando A. Urbano M. 35
36. REGISTROS DE CONTROL
REGISTRO DE ESTADO (STATUS) (1)
IRP RP1 RP0 TO PD Z DC C
Bit 7 Bit 0
Z (Zero): Señalizador (bandera) de cero. Se
coloca a 1 cuando el resultado es cero.
C (Carry/borrow): Acarreo del 8° bit. Se
coloca a 1 automáticamente cuando existe
acarreo en el bit más significativo en las
instrucciones de suma. También actúa como
señalizador de préstamo en la resta, pero en
éste caso la polaridad es inversa.
Ing. Fernando A. Urbano M. 36
37. REGISTROS DE CONTROL
REGISTRO DE ESTADO (STATUS) (2)
Es decir, si vale 0 hay préstamo. La resta se
efectúa mediante el complemento a dos.
Para las instrucciones de rotación este bit se
carga con el bit menos significativo, si es
rotación a la derecha; o el más significativo,
si es a la izquierda.
Los señalizadores TO y PD son activos en
bajo y sirven para indicar la causa que ha
provocado la reinicialización del procesador.
Ing. Fernando A. Urbano M. 37
38. REGISTROS DE CONTROL
REGISTRO DE ESTADO (STATUS) (2)
El bit IRP se usa concatenado con el bit de
más peso del registro FSR para elegir el
banco de la memoria RAM en el
direccionamiento indirecto:
0: Banco 0 y 1 (00h-FFh)
1: Banco 2 y 3 (100h-1FFh)
Ing. Fernando A. Urbano M. 38