Sistemas con Microprocesadores I

Anuncio
Sistemas con Microprocesadores I
1
Microcontroladores
Introducción
Harvard vs. von-Neumann
Clasificación del procesador
Segmentado o Pipeline
Ortogonal vs. No ortogonal
2
Microcontroladores PIC
Siglas y fabricante
Caracterı́sticas principales
3
El PIC16F84
Arquitectura
Primer Ejemplo: Ejercicio 1
Sı́mbolos básicos en los diagramas de flujo
Operaciones en la ALU
Instrucciones utilizadas
Solución al Ejercicio 1
Estructura básica de un programa en PIC
Solución al Ejercicio 1 (Segunda parte)
4
Laminillas complementarias
Mauricio López V. (Ingenierı́a)
Microcontroladores PIC
Mayo, 2015
1 / 40
Microcontroladores
Introducción
Microcontroladores
Un microcontrolador es:
Un integrado programable.
Contiene todos los componentes necesarios para el control de las funciones de una
tarea definida.
Microcontroladores de arquitectura cerrada.
Modelo construido con:
Un determinado CPU (Unidad de Procesamiento Central).
Cierta capacidad de memoria de datos.
Cierto tipo y capacidad de memoria de instrucciones.
Un número de terminales de E/S (Entrada/Salida).
Un conjunto de recursos auxiliares muy concretos.
El modelo no permite variaciones ni ampliaciones.
Debe encontrarse en su estructura todo lo que precisa para la aplicación en
particular.
Microchip a elegido principalmente este modo de arquitectura.
Mauricio López V. (Ingenierı́a)
Microcontroladores PIC
Mayo, 2015
2 / 40
Microcontroladores
Introducción
Microcontroladores
Un microcontrolador es:
Un integrado programable.
Contiene todos los componentes necesarios para el control de las funciones de una
tarea definida.
Microcontroladores de arquitectura cerrada.
Modelo construido con:
Un determinado CPU (Unidad de Procesamiento Central).
Cierta capacidad de memoria de datos.
Cierto tipo y capacidad de memoria de instrucciones.
Un número de terminales de E/S (Entrada/Salida).
Un conjunto de recursos auxiliares muy concretos.
El modelo no permite variaciones ni ampliaciones.
Debe encontrarse en su estructura todo lo que precisa para la aplicación en
particular.
Microchip a elegido principalmente este modo de arquitectura.
Mauricio López V. (Ingenierı́a)
Microcontroladores PIC
Mayo, 2015
2 / 40
Microcontroladores
Introducción
Sistema basado en microcontrolador (arquitectura cerrada)
Formado por un solo circuito integrado.
Reduce considerablemente el tamaño y el costo.
Mauricio López V. (Ingenierı́a)
Microcontroladores PIC
Mayo, 2015
3 / 40
Microcontroladores
Introducción
Microcontroladores
Microcontroladores de arquitectura abierta.
Además de disponer de una estructura interna determinada:
Pueden emplear sus lı́neas de E/S para sacar al exterior los bus de: datos,
direcciones y control.
Tienen la posibilidad de ampliar la memoria y las terminales de E/S con circuitos
integrados externos.
Sin embargo, esto se asemeja a la solución que emplean los clásicos
microprocesadores.
Microchip dispone de modelos PIC con arquitectura abierta.
Mauricio López V. (Ingenierı́a)
Microcontroladores PIC
Mayo, 2015
4 / 40
Microcontroladores
Introducción
Sistema basado en microprocesador (arquitectura abierta)
Su arquitectura está compuesta por varios circuitos integrados que incluyen
memorias y módulos de E/S.
Mayor tamaño.
Más costo y menor fiabilidad.
Mauricio López V. (Ingenierı́a)
Microcontroladores PIC
Mayo, 2015
5 / 40
Microcontroladores
Introducción
Microcontrolador vs. Microprocesador
Mauricio López V. (Ingenierı́a)
Microcontroladores PIC
Mayo, 2015
6 / 40
Microcontroladores
Harvard vs. von-Neumann
Arquitectura Harvard vs. von−Neumann
Arquitectura von-Neumann.
El CPU está conectado a una memoria única que almacena las instrucciones del
programa y los datos.
El formato de la palabra de todas las instrucciones y de los datos tiene la misma
longitud y éste está limitado de acuerdo al ancho del bus de datos de la memoria
utilizada, que es de 8 bits.
Cuando deba acceder a una instrucción o a un dato de longitud de más de un byte,
deberá realizar más de un acceso a la memoria.
Arquitectura Harvard.
Dos memorias independientes a las que se conectan mediante dos grupos de bus
separados:
Memoria de datos.
Memoria de programa.
Mauricio López V. (Ingenierı́a)
Microcontroladores PIC
Mayo, 2015
7 / 40
Microcontroladores
Clasificación del procesador
Clasificación del procesador
Las CPU, en relación al tipo de instrucción que utilizan, pueden clasificarse en:
CISC (Complex Instruction Set Computer ).
Procesadores con un juego de instrucciones complejo.
Repertorio de instrucciones elevado y algunas muy sofisticadas y potentes.
Requieren muchos ciclos de reloj para ejecutar las instrucciones complejas.
RISC (Reduced Instruction Set Computer ).
Procesadores con un repertorio de instrucciones reducido.
Instrucciones simples y suelen ejecutarse en un ciclo de máquina.
Por lo general tienen una estructura segmentada (Pipeline) y ejecutan casi todas
las instrucciones utilizando el mismo intervalo de tiempo.
SISC (Specific Instruction Set Computer).
Procesadores con un juego de instrucciones especı́fico para cada aplicación.
Están destinados a aplicaciones muy concretas.
Mauricio López V. (Ingenierı́a)
Microcontroladores PIC
Mayo, 2015
8 / 40
Microcontroladores
Segmentado o Pipeline
Procesador segmentado o Pipeline
Realiza de manera simultánea la ejecución de una instrucción y la búsqueda de
la siguiente instrucción.
Se puede ejecutar una instrucción en un ciclo de máquina (un ciclo de máquina
puede abarcar varios ciclos de reloj).
Mauricio López V. (Ingenierı́a)
Microcontroladores PIC
Mayo, 2015
9 / 40
Microcontroladores
Ortogonal vs. No ortogonal
Arquitectura Ortogonal vs. No ortogonal
Arquitectura simplificada interna de la ruta de datos en la CPU :
En una arquitectura NO ortogonal (Microprocesador tradicional ):
La salida de la ALU (Unidad Aritmética y Lógica) tiene como destino la
entrada del acumulador.
En una arquitectura ortogonal (Microcontrolador PIC ):
Una instrucción puede utilizar cualquier elemento de la arquitectura como fuente
o destino.
Mauricio López V. (Ingenierı́a)
Microcontroladores PIC
Mayo, 2015
10 / 40
Microcontroladores PIC
Siglas y fabricante
El microcontrolador PIC
PIC − Peripheral Interface Controller.
Fabricante: Microchip Technology Inc.
Mauricio López V. (Ingenierı́a)
Microcontroladores PIC
Mayo, 2015
11 / 40
Microcontroladores PIC
Caracterı́sticas principales
Caracterı́sticas principales de un microcontrolador PIC
Arquitectura Harvard .
El CPU se conecta de forma independiente y con bus diferentes con la
memoria de instrucciones y con la de datos.
La arquitectura Hartad permite al CPU acceder simultáneamente a las dos
memorias.
Mauricio López V. (Ingenierı́a)
Microcontroladores PIC
Mayo, 2015
12 / 40
Microcontroladores PIC
Caracterı́sticas principales
Caracterı́sticas principales de un microcontrolador PIC
Se aplica la técnica de segmentación (Pipeline) en la ejecución de las
instrucciones.
La segmentación permite al procesador realizar al mismo tiempo la ejecución de
una instrucción y la búsqueda del código de la siguiente.
La mayorı́a de las instrucciones se ejecutan en un ciclo de instrucción o de
máquina y equivale a cuatro ciclos de reloj.
Las instrucciones de salto ocupan dos ciclos de instrucción. En éstas, una vez que
se completa el primer ciclo de instrucción, se conoce la dirección de la siguiente
instrucción a ejecutar.
Mauricio López V. (Ingenierı́a)
Microcontroladores PIC
Mayo, 2015
13 / 40
Microcontroladores PIC
Caracterı́sticas principales
Caracterı́sticas principales de un microcontrolador PIC
El formato de todas las instrucciones tiene la misma longitud .
Todas las instrucciones tiene la misma longitud.
Longitud de 12 bits − Gama baja.
Longitud de 14 bits − Gama media.
Longitud de 16 bits − Gama alta y Gama mejorada.
Permite la optimización de la memoria de instrucciones.
Facilita la construcción de ensambladores y compiladores.
Procesador RISC (Reduced Instruction Set Computer ; Conjunto de juego de
instrucciones reducido).
33 instrucciones − Gama baja (PIC16C5X).
35 instrucciones − Gama media (PIC16CXX).
56 instrucciones − Gama alta (PIC17CXX).
75 instrucciones − Gama mejorada (PIC18CXX).
Mauricio López V. (Ingenierı́a)
Microcontroladores PIC
Mayo, 2015
14 / 40
Microcontroladores PIC
Caracterı́sticas principales
Caracterı́sticas principales de un microcontrolador PIC
Todas las instrucciones son ortogonales.
Cualquier instrucción puede manejar cualquier elemento de la arquitectura
como fuente o como destino.
Mauricio López V. (Ingenierı́a)
Microcontroladores PIC
Mayo, 2015
15 / 40
Microcontroladores PIC
Caracterı́sticas principales
Caracterı́sticas principales de un microcontrolador PIC
Arquitectura basada en banco de registros.
Todos los objetos del sistema (puertos de E/S, temporizadores, memoria de
datos, etc.) están implementados fı́sicamente como registros.
Diversidad de modelos de microcontroladores con prestaciones y recursos
diferentes.
Gran variedad de modelos de microcontroladores PIC que permite al usuario
seleccionar el más conveniente para su proyecto.
Mauricio López V. (Ingenierı́a)
Microcontroladores PIC
Mayo, 2015
16 / 40
Microcontroladores PIC
Caracterı́sticas principales
Caracterı́sticas principales de un microcontrolador PIC
Herramientas de soporte y económicas.
Microchip y otras empresas ponen a disposición de los usuarios numerosas
herramientas para desarrollar hardware y software (programadores,
simuladores, ensambladores, compiladores C, intérpretes y compiladores
BASIC, etc.).
Formato uniforme de los datos.
En general los datos y los operandos tienen una longitud de 8 bits.
Mauricio López V. (Ingenierı́a)
Microcontroladores PIC
Mayo, 2015
17 / 40
El PIC16F84
Arquitectura
Arquitectura del PIC16F84
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Mayo, 2015
18 / 40
El PIC16F84
Arquitectura
Arquitectura del PIC16F84
Memoria de programa Flash/ROM de 1K x 14 bits.
Memoria de datos RAM 68 x 8 bits (dividida en dos):
22 registros de propósito especı́fico (SFR, Registros de Funciones Especiales).
68 de propósito general.
Memoria de datos EEPROM de 64 x 8 bits.
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Mayo, 2015
19 / 40
El PIC16F84
Arquitectura
Memoria de datos RAM
⇐= Registros de funciones especiales (SFR).
Se usan para el control de los periféricos
(o dispositivos).
⇐= Registros de propósito general.
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Mayo, 2015
20 / 40
El PIC16F84
Primer Ejemplo: Ejercicio 1
Primer Ejemplo
Ejercicio 1 : Sumar dos datos, por ejemplo 05h más 02h. El valor 05h almacenado en
el registro de usuario llamado Operando1 y el valor 02h en el registro Operando2. El
resultado de la suma guardarlo en el registro de usuario llamado Resultado. Asociar
el Operando1 a la localidad de memoria 0x0C, el Operando2 a la localidad de
memoria 0x0D y el Resultado a la localidad de memoria 0x0E.
Es decir:
Resultado ← Operando1 + Operando2
Para ello:
Realizar un programa que almacene el valor 05h en la localidad de memoria
0x0C (registro de usuario Operando1) y el valor 02h en la localidad de memoria
0x0D (registro de usuario Operando2).
Sumar los contenidos de las localidades de memoria 0x0C (Operando1) y
0x0D (Operando2).
Guardar el resultado de la suma en la localidad de memoria 0x0E (registro de
usuario Resultado).
Usar como referencia el PIC16F84.
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Mayo, 2015
21 / 40
El PIC16F84
Primer Ejemplo: Ejercicio 1
Ejercicio 1: Resultado ← Operando1 + Operando2
Primer Operando: Localidad de
memoria 0x0C, con contenido 05.
0
0
0
0
0
1
0
0
+
0
0
0
0
Resultado: Localidad de memoria
0x0E, con contenido 07.
1
0
0
1
0
0
0
0
1
1
1
0
Segundo Operando: Localidad de
memoria 0x0D, con contenido 02.
Memoria de Datos
Localidades
de memoria
0x0C
Operando 1
0x0D
Operando 2
0x0E
Resultado
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Sumar el contenido de estas
localidades de memoria.
La suma se almacena en
esta localidad de memoria.
Mayo, 2015
22 / 40
El PIC16F84
Primer Ejemplo: Ejercicio 1
Primer Ejemplo
En este primer ejercicio, también se aprenderá:
La simbologı́a básica de los diagramas de flujo.
El conjunto de instrucciones del lenguaje ensamblador en los microcontroladores
PIC (solamente las instrucciones involucradas en la solución del problema).
La arquitectura interna de la ruta de datos que entran y salen de la CPU.
La estructura básica de un programa en ensamblador.
El uso del MPLAB como herramienta para simula y compilar el programa, y
grabar el microcontrolador PIC.
Por lo que antes de dar solución al problema, primero se analizan los temas,
siguiendo el orden:
La simbologı́a básica de los diagramas de flujo.
La arquitectura interna de la ruta de datos que entran y salen de la CPU cuando
se ejecuta una instrucción que utiliza cualquier elemento de la arquitectura como
fuente o destino.
El conjunto de instrucciones del lenguaje ensamblador utilizados en la solución
del ejercicio.
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Mayo, 2015
23 / 40
El PIC16F84
Sı́mbolos básicos en los diagramas de flujo
Sı́mbolos básicos en los diagramas de flujo
Inicio o Fin (Óvalo o elipse): Representa inicio o fin de la secuencia de
operaciones.
Proceso (rectángulo): Representa una operación de proceso (son la mayorı́a de
las operaciones realizadas en un programa).
Decisión (rombo): Representa una decisión que da lugar a una transferencia
condicional de control (bifurcación entre dos camino posibles dependiendo de la
respuesta: SI o NO).
Subrutina: Representa un conjunto de operaciones cuyo empleo se repite varias
veces en el programa.
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Mayo, 2015
24 / 40
El PIC16F84
Sı́mbolos básicos en los diagramas de flujo
Sı́mbolos básicos en los diagramas de flujo
Conector: Indica el camino que sigue un programa. Indica los puntos de ruptura
y reanudación de la trayectoria de flujo (cı́rculos identificados mediante un
número o caracter).
Lı́neas y flechas: los sı́mbolos están conectados por lı́neas sólidas con puntos de
flecha que indican el camino a seguir por el programa.
Finalidad de los diagramas de flujo:
Simplificar la codificación del algoritmo en el lenguaje particular del
microcontrolador.
Facilitar la comprensión del algoritmo por otras personas.
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Mayo, 2015
25 / 40
El PIC16F84
Operaciones en la ALU
Operaciones en la ALU y el registro W
Para operaciones lógicas o aritméticas que involucran dos operandos, un
operando provienen del registro W y el otro provienen de cualquier otro registro
o del propio código de instrucciones.
El destino del resultado de la operación puede ser el registro W o el registro que
fungió como el otro operando.
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Mayo, 2015
26 / 40
El PIC16F84
Instrucciones utilizadas
Instrucciones utilizadas
Conjunto de instrucciones del lenguaje ensamblador en los microcontroladores PIC:
M OV LW
M OV F
ADDW F
M OV W F
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Mayo, 2015
27 / 40
El PIC16F84
Instrucciones utilizadas
M OV LW : Mueve una literal a W
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Mayo, 2015
28 / 40
El PIC16F84
Instrucciones utilizadas
M OV F : Mueve un registro
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Mayo, 2015
29 / 40
El PIC16F84
Instrucciones utilizadas
ADDW F : Suma W y un registro
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Mayo, 2015
30 / 40
El PIC16F84
Instrucciones utilizadas
M OV W F : Mueve W a un registro
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Mayo, 2015
31 / 40
El PIC16F84
Solución al Ejercicio 1
Solución al Ejercicio 1: Pseudocódigo
a) Inicialización del PIC
Variables de usuario.
b) Inicialización del contenido de los dos operandos
Operando1 ← 05h y
Operando2 ← 02h.
c) Suma de los operandos y almacenamiento del resultado.
Resultado ← Operando1 + Operando2.
d) Fin del programa.
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Mayo, 2015
32 / 40
El PIC16F84
Solución al Ejercicio 1
Solución al Ejercicio 1: Diagrama de flujo
INICIO
Configuración del PIC
(puertos, SFR,
constantes, variables).
Inicialización del PIC (variables).
Operando1 <-- H'05'
Inicialización del contenido del primer operando.
Operando2 <-- H'02'
Inicialización del contenido del segundo operando.
Resultado <-- Operando2 + Operando1
FIN
Mauricio López V. (Ingenierı́a)
Suma de los
operandos.
Fin del programa.
Microcontrolador PIC16F84
Mayo, 2015
33 / 40
El PIC16F84
Solución al Ejercicio 1
Solución al Ejercicio 1: Diagrama de flujo extendido
INICIO
Configuración del PIC
(puertos, SFR,
constantes, variables).
INICIO
W <-- 05h
Operando1 <-- W
Configuración del PIC
(puertos, SFR,
constantes, variables).
Inicialización del PIC (variables).
Operando1 <-- H'05'
Inicialización del contenido del primer operando.
Operando2 <-- H'02'
Inicialización del contenido del segundo operando.
W <-- 02h
Operando2 <-- W
Resultado <-- Operando2 + Operando1
Suma de los
operandos.
W <-- Operando1
FIN
Fin del programa.
W <-- W + Operando2
Resultado <-- W
FIN
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Mayo, 2015
34 / 40
El PIC16F84
Solución al Ejercicio 1
Solución al Ejercicio 1: Diagrama de flujo extendido
INICIO
Configuración del PIC
(puertos, SFR,
constantes, variables).
W <-- 05h
Operando1 <-- W
W <-- 02h
Operando1
Operando2
Resultado
EQU
EQU
EQU
0x0c
0x0d
0x0e
; Define la posicion del Operando 1
; Define la posicion del Operando 2
; Define la posicion del Resultado
Carga el número 5 a W.
Mueve lo que tengas en W al "Operando1".
Carga el número 2 a W.
Operando2 <-- W
Mueve lo que tengas en W al "Operando2".
W <-- Operando1
Mueve el contenido de memoria "Operando1" al registro W.
W <-- W + Operando2
Resultado <-- W
FIN
Suma contenido de memoria "Operando2" con W y lo almacena en W.
Mueve W a la memoria "Resultado".
Fin del programa.
código
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Mayo, 2015
35 / 40
El PIC16F84
Estructura básica de un programa en PIC
Estructura básica de un programa Ensamblador
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Mayo, 2015
36 / 40
El PIC16F84
Solución al Ejercicio 1 (Segunda parte)
Consideraciones en la codificación del programa (Solución Ejercicio 1)
Declaraciones de los registros especiales.
Declaraciones de las constantes.
Declaraciones de las variables en la RAM:
Operando1,
Operando2 y
Resultado.
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Mayo, 2015
37 / 40
El PIC16F84
Solución al Ejercicio 1 (Segunda parte)
Listado del programa (Solución Ejercicio 1)
Programa que suma el contenido de la posicion 0x0C y 0x0D y guarda en 0x0E.
List p=16f84
; Introduce el modelo del PIC que se usa.
;----------------------------------------------------------------------------------------------;
Zona de etiquetas
Operando1
EQU 0x0C ; Define la posicion del Operando 1
Operando2
EQU 0x0D ; Define la posicion del Operando 2
Resultado
EQU 0x0E ; Define la posicion del Resultado
;----------------------------------------------------------------------------------------------ORG 0
; Comando que indica al ensamblador la dirección
; de la memoria de programa donde situa la siguiente
; instrucción.
MOVLW
0x05
; Carga el número 5 a W (acumulador). 5 ----> W.
MOVWF
Operando1
; Mueve lo que tengas en el acumulador al ‘Operando 1’
; W ----> Operando 1
MOVLW
0x02
; Carga un número 2 al registro acumulador. 2 ----> W.
MOVWF
Operando2
; Mueve lo que tengas en el acumulador al ‘Operando 2’
; W ----> Operando 2.
MOVF
Operando1,0 ; Mueve lo que tengas en el contenido de memoria dado
; por el Operando 1 al registro acumulador.
; Operando 1 ----> W
ADDWF
Operando2,0 ; Suma lo que tengas en el contenido de memoria dado
; por el Operando 2 con el registro acumulador y lo
; almacena en el acumulador.
; W + Operando 2 ----> W
MOVWF
Resultado
; Mueve lo que tengas en el acumulador al contenido de
; memoria dado por el ‘Resultado’.
; W ----> Resultado
END
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Mayo, 2015
38 / 40
Laminillas complementarias
Laminillas complementarias
Laminillas
complementarias
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Mayo, 2015
39 / 40
Laminillas complementarias
Solución al Ejercicio 1: Diagrama de flujo extendido
INICIO
Configuración del PIC
(puertos, SFR,
constantes, variables).
W <-- 05h
Operando1 <-- W
W <-- 02h
Operando2 <-- W
W <-- Operando1
LIST p=16F84A
;----------------------------------------------------------------------------------------;
Zona de etiquetas
Operando1
EQU 0x0c ; Define la posicion del Operando 1
Operando2
EQU 0x0d ; Define la posicion del Operando 2
Resultado
EQU 0x0e ; Define la posicion del Resultado
MOVLW
0x05
; Carga el número 5 a W. 5 ----> W.
MOVWF
Operando1
; Mueve lo que tengas en W al
; Operando 1. W ----> Operando 1.
MOVLW
0x02
; Carga el número 2 a W. 2 ----> W.
MOVWF
Operando2
; Mueve lo que tengas en W al
; Operando 2. W ----> Operando 2.
MOVF
Operando1,0
; Mueve el contenido de memoria
; (Operando 1) al registro W.
ADDWF
Operando2,0
; Suma contenido de memoria
; (Operando 2) con W y lo almacena
; en W. W + Operando 2 ----> W.
MOVWF
Resultado
; Mueve W a la memoria
; (Resultado). W ----> Resultado.
W <-- Operando2 + Operando1
Resultado <-- W
FIN
END
; Fin del programa.
return
Mauricio López V. (Ingenierı́a)
Microcontrolador PIC16F84
Mayo, 2015
40 / 40
Descargar