Uploaded by DANIEL EDUARDO ZAVALA ESQUIVEL

GUIA PARA MICROS

advertisement
GUIA DE MICROS
En 1969 Intel Corporation lanzo el primer microprocesador, el 4004, microprocesador de 4
bits.
 Solo direccionaba 4096 localidades de 4 bits.
 Contenía un conjunto de 45 instrucciones.
 Se empleó en los primero juegos de video.
 Pequeños controaldores
En 1971 intridujero el 8008 de 8 bits
Clasificación
CISC (Complex Instructions Set Computer)
 Gran número de instrucciones
 Control microprogramado (instrucciones en memoria)
 Menor velocidad.
 Menor consumo de espacio
 Pocos registros
RISC (Reduce Instructions Set Computer)
 Reducido número de instrucciones.
 Control alambrado. (instrucciones en hardware)
 Mayor velocidad.
 Mayor consumo de espacio.
 Muchos registros.
 Motorola, Apple, National
MICROPROCESADOR
 Propósito General
 Los elementos auxiliares (memoria, puertos, reloj, etc.) son externos al CPU
 Fabricación más costosa
 Arquitectura potente y flexible
EL MICROPROCESADOR: Es el dispositivo encargado de realizar cálculos aritméticos y
lógicos, temporizar y controlar las operaciones de los demás elementos de un sistema
1)Unidad de control. 2)Unidad
Aritmético-lógica (ALU). 3)Registros.
4)Contador programa. 5)Registros
generales. 6)Registro de estado. Stack.
TRES BLOUES
 CPU.
 Memoria.
Los tres se encuentran
conectados mediante buses.
 Puertos
Las entradas y salidas se conectan por puertos
Un puerto es una interfaz física de una computadora a través del la cual pasan los datos
hacía y desde los periféricos.
Los programas conjunto instrucciones que se ejecutan para resolver un problema
específico. El programa se almacena en memoria
BUSSES
 BUS DE DIRECCIONES
 Unidireccional ( Salida).
 Determina la capacidad de acceso de un procesador
 BUS DE DATOS
 Bidireccional.
 Influye en la velocidad de acceso de un procesador
 BUS DE CONTROL
 Señales de control del procesador.
- Ejemplos: Lectura ( Rd), Escritura ( Wr), Memoria ( MEM), Puertos ( IOR)
Unidad central de procesamiento (CPU)
Tiene la función de realizar las operaciones lógicas y aritméticas para controlar la
transferencia de información entre los dispositivos
 La CPU interpreta, y ejecuta secuencialmente las instrucciones del programa
 Las instrucciones vienen acompañadas de datos o direcciones.
 Las instrucciones son leídas por la CPU a través del bus de datos cuando
ésta las solicita.
 La CPU genera señales de control para coordinar las transacciones.
4 PARTES
Registros.
Son localizaciones físicas que sirven para almacenar temporalmente datos, pueden ser de 8
o 16 bits. Estos están conformados por:
 Acumulador (W)
Almacena temporalmente el resultado de las operaciones a ritméticas
lógicas
 Registro de Instrucciones (IR)
Almacena la instrucción que esta ejecutando el CPU.
 Contador de Programa (PC)
Contiene la dirección de la siguiente instrucción del programa.
 Registro de memoria (MAR)
Contiene la dirección de memoria a la cual se tendrá acceso.
 Registro de operación (ROP)
Contiene el código de la operación que ejecutara la unidad a
ritmética lógica
Unidad Aritmética Lógica. ALU
Red combinacional que se encarga de realizar operaciones entre 2 o más operandos.
Características:
 Requiere dos palabras de datos y una de control que especifica el tipo de
operación.
 La ALU realiza la operación especificada y genera un apalabra de salida que
representa el resultado.
 El resultado se puede dirigir a cualquier registro en el CPU.
 La dirección del resultado lo determina el circuito de control.
 Las señales de estado se dirigen al registro de condición.
 Trabaja en conjunto con el registro del acumulador (W)
Circuito de temporización y control.
Es la encargada de generar las señales para realizar las operaciones indicadas por el usuario.
 Estas señales de control incluyen el control de lectura, escritura y
direccionamiento de memoria a través del bus de control.
Otras señales de control se conectan a la ALU y los registros del procesador para regular el
flujo de información
Unidad de tiempo
 Se encarga de generar señales de sincronización de acuerdo a una señal de
reloj y es la responsable de la velocidad del microprocesador.
Unidad de decodificación.
Tiene a cargo el proceso de trasladar un patrón binario en una operación o secuencia de
operaciones. Se encarga de generar las señales necesarias a todas las partes que integran el
microprocesador para que esta instrucción se ejecute.
Registro de códigos de condición.
 Almacena la información que describe la condición de operaciones anteriores.
Contiene 8 bits y cada uno representa condiciones como:
 Acarreo, Desbordamiento, Cero, Medio acarreo entre otros.
Las operaciones del microprocesador son sincronizadas por un oscilador, ya que se
requiere un cierto numero de pulsos para ejecutar las operaciones que se especifican en
las instrucciones.
Un ciclo de instrucción consiste en uno o más ciclos de máquina.
Durante un ciclo de máquina se realizan los siguientes ciclos:
 Ciclo de búsqueda (fetch cycle)
El μP proporciona la dirección de una instrucción en memoria.
La unidad de memoria decodifica la dirección y el contenido de é sta
se transfiere (se lee el contenido de la dirección
 Ciclo de ejecución (execution cycle)
La instrucción se decodifica y posteriormente se ejecuta
Durante un ciclo de máquina se realizan las siguientes operaciones:
 El contenido del PC se coloca en el
MAR.
 El contenido del MAR se transfiere a
la memoria.
 La memoria decodifica la dirección
enviada.
 Se lee la instrucción desde la memoria.
 La instrucción se coloca en el registro IR.
 La instrucción es decodificada.
 Ejecución de la instrucción.
 El PC se incrementa o desactiva de
acuerdo a la instrucción que se está
ejecutando
Durante un ciclo de instrucción se procesan dos tipos de palabras:
 Palabras de instrucción
 Palabras de datos
Todos los μP disponen de un conjunto básico de instrucciones que se pueden agrupar según
su funcionalidad.
 Transferencia de datos.
 Cadenas de caracteres.
 Aritmética.
 Subrutinas e
interrupciones.
 Manipulación de bits.
 Control del procesador.
 Bucles y saltos.
A las instrucciones en código binario se denomina lenguaje máquina.
Con objeto de no escribir los programas en lenguaje máquina se utilizan Nemónicos que
constituyen lo que se conoce como lenguaje ensamblador
 Los programas ensambladores se encargan de traducir los nemónicos en
código máquina.
 Incluyen pseudo-instrucciones necesarias para facilitar la programación.
 Un compilador traduce las instrucciones de un lenguaje de alto nivel a
lenguaje de máquina
MICROCONTROLADOR
Es un circuito integrado programable que contiene elementos periféricos de comunicación.
Un microcontrolador es un circuito de alta escala de integración que incorpora la mayor parte
de los elementos que conforman un controlador.
El microcontrolador es un dispositivo dedicado.
En su memoria sólo reside un programa destinado a gobernar una aplicación determinada,
una vez programado y configurado el microcontrolador solamente sirve para gobernar dicha
tarea.
 Propósito Específico

Fabricación económica.
 Los elementos auxiliares son
internos al CPU (Microcomputer
Single Chip)

Arquitectura específica.
ESTRUCTURAS
 Estructura Harvard
Estructura Von New Man
PIC DE MICROCHIP
En la actualidad se emplean cada vez más debido a:
 Velocidad
 Información y herramientas de
apoyo.
 Precio
 Gamas
 Facilidad de uso
 PIC12C5X
➔ Gama baja o clásica ( palabra de programa de 12 bits).
 PIC16CXXX
➔ Gama media (palabra de programa de 14 bits).
 PIC17CXXX, PIC18XXX
➔ Gama alta (palabra de programa de 16 bits).
PIC. “Periphera Interface Controller”
Los fabrica ARIZONA MICROCHIP TECHNOLOGY
Características
Arquitectura siguiendo el modelo
Harvard
Distinción entre Memoria de Programa y
Memoria de datos.Distinción entre bus de
datos y bus de instrucciones. Distinción
entre palabra de datos y palabra de
instrucciones.
Ejecución
Dos etapas de ejecución.
Cada instrucción se ejecuta en un
ciclo de reloj, salvo los saltos que
se resuelven en 2
Arquitectura del repertorio de instrucciones siguiendo el modelo RISC
Un único tamaño de instrucción.
Banco de Registros
Características Generales (PIC16F870)
Consta de una ALU, decodificador de instrucciones, y una matriz de registros.
 Incluye un módulo de memoria para programa y una memoria auxiliar para
datos del tipo EEPROM.
 Arquitectura Harvard.
 Bus de datos= 8 bits,
 Bus de instrucciones=14 bits.
 RISC (35 instrucciones).
 Las instrucciones se ejecutan en 1 ciclo, excepto los saltos.
 Dispone de 4 puertos de entrada y salida.
 Entradas multiplexadas para interrupciones y contador.
 Tipo Flash integrada en el propio chip.
 En la posición 000h está el
Vector de Reset.
 Desbordamiento del
temporizador TMR0
 En la posición 04h está el
Vector de Interrupción.
 Cambio de estado en pines
RB4 - RB7.
 Activación del pin INT
 Velocidad máxima de
20MHz.
 Organización de Memoria.
 4 bancos o páginas de 128 registros de 8 bits.
 Página ‘0’ ⇒ 80 registros: 12 especiales
 (SFR) y 68 generales (GPR).
 Página ‘1’ ⇒ 12 registros de funciones específicas (SFR).
 64 registros de 8 bits.
BANCOS
 La memoria interna de datos, también llamada archivo de registros (register file),
esta dividida en dos grupos:
 Los registros especiales (11 pos 00 al 0B)
 Los registros de propósito generales (08 al 4F)
 Los registros especiales contienen la palabra de estado (STATUS).
 Los registros de datos de los tres puertos de entrada salida los 8 bits menos
significativos del program counter (PC).
Se puede operar con un solo banco a la vez, 5 y 6 bits (FSR).
Tres bloques de memoria
RAM: Dividida en dos bloques:
•
•
GPR. Registros de propósito general
SFR Registros de propósito especial
EEPROM: Grabable dinámicamente desde programa.
•
•
Sólo puede contener datos.
Sólo permite acceso indirecto.
FLASH: Memoria de programa
•
•
Dado que el PC tiene un tamaño de 13 bits: máximo 8Kx14
En PIC16F84: 1K disponible: 0000h..03FFh
 Reset vector: 0000h
 Interrupt vector: 0004h (Una única entrada de interrupción. A continuación se ha
de verificar cual de las líneas la ha generado)
Se organiza en bancos.
En PIC16F8x: 2 bancos..
En PIC16F8x: 79 bytes (Cada banco admite hasta 128 bytes)
Registros:
 SFR
 Banco 0: RP0=0  0x00 -> 0x0B
 Banco 1: RP0=1  0x00 -> 0x0B
 GPR
 Banco 0: 0x0C -> 0x4F (68 bytes)
 Banco 1: Mapeado completamente en el banco 0
STATUS
OPTION
INTCON
Se dispone de un total de 13 líneas.
 Cada una programable individualmente como entrada o como salida
Se distribuyen en 4 puertos:
 PORT A, PORT B, PORTC Y PORTD
Se accede a cada puerto leyendo o escribiendo en su registro (5h y 6h en RAM)
Para configurar cada línea como entrada o salida se modifica su bit correspondiente en el
registro TRIS del puerto asociado: TRIS A, TRIS B, TRISC, TRISD (85h y 86h en RAM)
 ‘1’ línea configurada como entrada
 ‘0’ línea configurada como salida
 PUERTO RA0-RA4
 Puerto bidireccional de Entrada/Salida.
 RA4/T0CKL puede comportarse como una Entrada/Salida normal, o bien
como una entrada de reloj del contador/temporizador TMR0.
 PUERTO RB0-RB7
 Puerto bidireccional de Entrada/Salida.
 RB0/INT puede ser utilizado como una entrada de interrupciones.
 RB4/RB7 pueden ser utilizados para generar interrupciones ante un cambio
de nivel.
 RB6/RB7 pueden ser utilizados para programa el PIC.
OSCILADOR
 Mediante los condensadores y el oscilador se puede seleccionar la frecuencia
del reloj: 455KHz, 2 MHz, 4MHz, 8MHz y 10 MHz.
 Ciclo de instrucción = 4 · Periodo de reloj
 Ejemplo:
 Frecuencia de reloj = 4MHz ⇒ Periodo de reloj = 250ns.
 Ciclo de instrucción = 1/Fosc x 4 = 250 ns x 4 = 1 μs.
 Temporizador/Contador
 Consiste en un contador cíclico de 00h a FFh. Cuando se llega a FF se
produce un desbordamiento. Dos modos de trabajo:
 Temporizador: determinar intervalos concretos
de tiempo. Se incrementa con cada ciclo de
instrucción o divisor.
 Contador: contar impulsos producidos en el
exterior del sistema.
PIC consiste en un pequeño conjunto de 32 a 35
instrucciones de 12 bits, que pueden ser agrupadas para
su estudio en tres o cinco grupos.
 Instrucciones que operan con bytes y que involucran algún registro de la
memoria interna.
 Instrucciones que operan solo sobre el registro W y que permiten cargarle
una constante implícita.
 Instrucciones que operan sobre bits individuales de los registros de la
memoria interna.
 Instrucciones de control de flujo del programa.
Instrucciones especiales, cuyas funciones o tipos de operandos son muy específicos
 Estas instrucciones pueden ser de simple o doble operando.
El primer operando es el registro seleccionado.
 El segundo, en caso de existir, será el registro W.
El destino donde se guardara el resultado, será el registro seleccionado o el W.
Las instrucciones siguientes son las tres operaciones lógicas de doble operando :
 ANDWF
f,d
;operación AND lógica,
destino = W f
 IORWF
f,d
;operación OR lógica,
destino = W f
 XORWF
f,d
;operación XOR lógica,
destino = W f
 Las que siguen son las cuatro operaciones aritméticas y lógicas sencillas de simple
operando :
 MOVF
f,d ;movimiento de datos,
destino = f
 COMF
f,d ;complemento lógico,
destino = f
 INCF f,d ;incremento aritmético, destino = f + 1
 DECF f,d ;decremento aritmético,
destino = f – 1
 Instrucciones de rotación de bits a través del CARRY :
 RLF f,d ;rotación a la izquierda, destino = f ROT
 RRF f,d ;rotación a la derecha, destino = f ROT
 En estas operaciones (Rotate Left File y Rotate Right File) los bits son desplazados
de cada posición a la siguiente, en sentido derecho o izquierdo.
 El desplazamiento es cerrado, formando un anillo, con el bit C (CARRY) de la
palabra de estado.
 En estas dos instrucciones, el único bit afectado de la palabra de estado del
procesador es el bit C, que tomará el valor que tenia el bit 7 o el bit 0, según sea el
sentido del desplazamiento.
 Estas instrucciones son muy útiles para la manipulación de bits, y además para
realizar operaciones aritméticas, ya que en numeración binaria, desplazar un número
a la izquierda es equivalente a multiplicarlo por 2, y hacia la derecha, a dividirlo por
2.
 La instrucción que realizan el intercambio de posiciones entre los cuatro bits menos
significativos y los cuatro más significativos (nibble bajo y nibble alto).
 SWAPF
f,d ;intercambia nibbles,destino = SWAP f
 Las dos operaciones que siguen son la suma y la resta aritméticas :
 ADDWF
f,d ;suma aritmética,
destino = f + W
 SUBWF
f,d ;resta aritmética, destino = f - W
 Estas operaciones (ADD W a F y SUBstract W de F) afectan a los tres bits de estado
C, DC y Z.
 El bit Z se pone en 1 si el resultado de la operación es 00000000, y se pone
en 0 si el resultado tiene cualquier otro valor.
 Las instrucciones que siguen son de simple operando, pero son casos especiales ya
que el destino es siempre el registro seleccionado :
 CLRF f
;borrado de contenido,
 MOVWF
f
f=0
;copia contenido W f,
f=W
 La instrucción CLRF (CLeaR File) afecta solo al bit Z que resulta siempre 0.
 La instrucción MOVWF (MOVe W a F) no afecta ningún bit de la palabra de
estado.
 Operaciones lógicas tradicionales, similares a las que ya vimos anteriormente, pero
realizadas entre una constante de programa y el registro W :
 IORLW k
; operación OR lógica,
W=W k
 ANDLW k
; operación AND lógica, W = W k
 XORLW k
; operación XOR lógica,
W=W k
 La instrucción que sigue sirve para cargar una constante de programa en el registro
W:
 MOVLW k ;carga constante en W, W = K
 Esta instrucción no afecta ninguno de los bits de estado del procesador.
 La instrucción que sigue (CLeaR W).
 CLRW ;borra el contenido de W, W = 0
 Al igual que en la instrucción CLRF, el único bit de estado afectado es el Z que
resulta 1.
 Instrucciones que operan solamente sobre el bit especificado, el resto de los bits del
registro no son alterados.
 BCF
f,b ;borra el bit b de f ;
bit f(b) = 0
 BSF
f,b ;coloca en uno el bit b de f ;
bit f(b) = 1
 Estas instrucciones (Bit Clear File y Bit Set File) no afectan ningún bit de la palabra
de estado del procesador.
BIT
 Instrucciones de Control
 GOTO k
;salto a la posición k (9 bits) del programa
 Esta instrucción simplemente carga la constante k en el
 registro PC (contador de programa).
 CALL k ;salto a la subrutina en la posición k (8 bits)
 Su comportamiento es muy similar al de la instrucción GOTO, salvo que
además de saltar guarda en el stack la dirección de retorno de la subrutina
(para la instrucción RETLW).
 Esto lo hace simplemente guardando en el stack una copia del PC incrementado,
antes de que el mismo sea cargado con la nueva dirección k.
 RETLW k ;retorno de subrutina con constante k, W = k
 Esta instrucción produce el retorno de subrutina con una constante literal k en el
registro W.
 BTFSC f,b ;salteo si bit = 0, bit = f(0) saltea
 BTFSS f,b ;salteo si bit = 1, bit = f(1) saltea
 BTFSC salta a la próxima instrucción si el bit b del registro f es cero.
 La instrucción BTFSS salta si el bit es 1.
 Estas instrucciones pueden usarse para realizar o no una acción según sea el estado
de un bit, o en combinación con GOTO, para realizar una bifurcación condicional.
 DECFSZ f,d ;
decrementa y salta sí 0, destino= f - 1
 INCFSZ f,d ; incrementa y saltea sí 0, destino= f + 1
 Estas dos instrucciones se comportan de manera similar a DECF e INCF,
salvo que no afectan a ningún bit de la palabra de estado.
 Estas instrucciones se utilizan generalmente en combinación con una instrucción de
salto (GOTO), para el diseño de ciclos o lazos (loops) de instrucciones que deben
repetirse una cantidad determinada de veces.
 NOP ;no hace nada, consume tiempo
Dispositivos encargados de realizar cálculos operaciones y controlar módulos periféricos:
MICROCONTROLADOR
Módulo que interpreta y ejecuta secuencialmente las instrucciones del programa: CPU
Cuáles son los componentes que constituyen el microprocesador:
ALU, PC, CPU, Registro
Nombre del conjunto de pulsos necesarios para ejecutar las operaciones de una instrucción:
Ciclo de Máquina
Principales registros que componen la cpu: W IR PC MAR ROP
Download