José Estay A / jea I semestre académico 2014 Computadores (TU Sistemas Computacionales) Elementos de estructura de computadores.

Slides:



Advertisements
Presentaciones similares
Equipo #3 Unidad III: ALU Efraín Corral Eduardo Castillo Elías Alarcón
Advertisements

Bases de la programación de un PLC
DISEÑO DE TRANSFERENCIA ENTRE REGISTROS
A REA DE TECNOLOGIA ELECTRONICA U NIVERSIDAD DE O VIEDO LECCION 5 – ARQUITECTURA INTERNA DE LOS PIC - 1F.F. LINERA ARQUITECTURA BASICA. CARACTERISTICA.
LOS PUERTOS DE E/S PUERTO A
FAMILIA DE LÓGICA PROGRAMABLE EMBEBIDA ALTERA FLEX 10K.
Integrantes: Moyolehuani Tatéi Temai
MICROCONTROLADORES PIC
ARQUITECTURA DE COMPUTADORAS
RESUMEN: Softmicro de 8 bits Xilinx
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
El procesador: la ruta de datos y el control (II Parte)
Introducción a los MCU´s de Motorola
Windows XP sp3.
Circuitos Combinacionales Comunes
Composición Interna de un Procesador
Lenguaje Ensamblador integrantes: Esthela Vianey Vázquez Medina No.30
Microcomputadores Prof : Tatiana Marín R.. Sistema basado en microprocesador de 8 bits.
TRADUCTOR DE UN PROGRAMA

ARQUITECTURA DE LOS MICROPROCESADORES DE 8 BITS
Microcontroladores PIC16F84A.
2.2 Registro de Banderas Conjunto de bits que nos dan información sobre el estado del procesador y sobre el resultado de la última operación efectuada.
INTERRUPCIONES Y TEMPORIZADORES Programación en C para electrónica.
Diseño de un Controlador de Luces de un Semáforo
José Estay A / jea I semestre académico 2014 Computadores (TU Sistemas Computacionales) Elementos de estructura de computadores.
EXAMEN CORTO SOBRE FLIP-FLOPS
Administración de Memoria Memoria Virtual
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
INTERRUPCIONES Introducción.
Arquitectura del 8086/8088 TEEL 4011
TIMER 1 El módulo TIMER1 así como el TIMER0 es un temporizador/contador con las siguientes características. Trabaja con 16 bits (con 2 registros de 8 bits:TMR1H.
Maquinas Digitales  La idea principal es dividir el procesamiento de cada una de las instrucciones en una serie de pasos totalmente independientes.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Overview Sistemas Computacionales
Asignación de Espacio No Contiguo
Conceptos Arquitectónicos del computador
MICROCONTROLADORES NOCIONES BÁSICAS. ¿QUÉ ES UN MICROCONTROLADOR? MICROCONTROLADOR = MICROPROCESADOR + MEMORIA + PERIFERICOS.
UNIDAD VI: CIRCUITOS LÓGICOS SECUENCIALES
Funcionamiento de la CPU
Unidad I: Registros e Interrupciones Facilitador: Ing. Eduardo Brando.
Microcomputadores Prof: Tatiana Marín R.. Lenguaje máquina = lenguaje binario InstrucciónLenguaje máquina (binario)OP ( hex)Nemónico Restar F0SUB.

Arquitectura de Von Neumann
Nombre: Cristian Achina Curso: 4to «A» Fecha:
Datapath para las instrucciones de carga y almacenamiento (load/store)
“Organización y Arquitectura de Computadores” William Stallings
Sesión 11: - Comparador, Captura y PWM. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.
Sesión 09: TIMER como base de tiempo.
Sesión 08: Interrupciones - IRQ. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.
Microprocesadores II PIC16C5X Ing. Nelwi Báez.
NOCIONES BÁSICAS COMPUTO II
Estructura Microcontrolador
introducción al Lenguaje Ensamblador
RESUMEN: Softmicro de 8 bits Xilinx
PICmicro GAMA MEDIA: PIC16F84 [I]
¿Qué es un Microcontrolador?
ESTADO Registro de ESTADO más utilizado  Es el registro más utilizado.  Ocupa la dirección 03 H tanto del Banco 0 como el Banco 1 de la Memoria de Datos.
Programando puertos en C freescale
José Alvarado – Cristian Anzola
Programación de microcontroladores PIC16f877a en linux
 PRESENTADO POR : ANDRES MAYORGA DANIELA PAEZ VEGA.
Máquinas de estado con VHDL
El microprocesador y su arquitectura
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
Circuitos Combinacionales I
CONIMEIRA XVI Bootloaders para microcontroladores PIC de Microchip Presentan: Ing. Ricardo Guadrón Tec. Juan José Guevara Escuela Especializada en Ingeniería.
Arquitectura de Computadores Clase 17 Tecnologías de Memorias IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de.
Unidad de Control Ubicación: Es uno de los tres bloques funcionales principales en los que se divide una unidad central de procesamiento (CPU). Realizar.
SISTEMAS ELECTRÓNICOS 3ºGIERM1 1. Introducción 2. Tipos de datos 3. Estructuras típicas de programación 4. Manejo de bits Tema 7. Programación de microcontroladores.
Transcripción de la presentación:

José Estay A / jea I semestre académico 2014 Computadores (TU Sistemas Computacionales) Elementos de estructura de computadores

Registros de funciones especiales SFR El conjunto archivo de registros está dividido en registros de funciones especiales SFR y registros de propósito general GPR Los SFR tienen funciones predeterminadas, especificadas en la hoja de datos del 16F877 figura 2-3, y ocupan las localizaciones 00..1F en banco 0, 80..9F en banco 1, F en banco 2 y F en banco 3 Muchos registros son repetidos en mas de un banco

Program counter: PCL PCL contiene los 8 bits mas bajos del PC Los bits superiores (PC 12..8) son accedidos vía PCLATH El PC es incrementado por cada instrucción y su contenido es reemplazado durante un GOTO, CALL (dirección de programa) o RETURN (stack)

Status Register (Registro de estado) El registro de estado graba el resultado de ciertas operaciones, el estado de la alimentación e incluye los bits de seleciión de banco Las funciones de los bits son detalladas en de la hoja de datos

Flag zero (Z) Este flag es seteado cuando el resultado de una operación de registros es cero, y limpiado cuando no es cero El set completo de instrucciones debe ser consultado para confirmar cuales operaciones afectan el flag Z Las instrucciones BIT TEST y SKIP usan este flag para bifurcación condicional, pero hay que recordar que hay instrucciones dedicadas para decrementar o incrementar y brincar si es cero

Carry flag El flag de carry es solo afectado por las instrucciones de sumar, restar y rotar Si el resultado de una operación de suma genera un carry, este flag es seteado, esto es, cuando 2 números de 8 bits dan una suma de 9 bits. El bit de carry debe ser incluido en cálculos posteriores a fin de obtener el resultado correcto En la resta el flag de carry debe estar seteado inicialmente, ya que provee el digito de prestamo (si se requiere) en el bit más significativo del resultado

Si el flag de carry es limpiado después de la resta, significa que el resultado fue negativo, ya que el sustraendo fue mayor que el minuendo. Tomados juntos, el flag de carry y el de zero permiten detectar si el resultado de una operación aritmética es positivo, negativo o zero, como se muestra en la tabla a continuación:

Resultados aritméticos

Acarreo de dígito: DC Digit Carry Un registro de archivo puede ser visto con un contenido de 8 bits o 1 byte Puede también ser usado como 2 nibbles Cada nibble puede representar un dígito HEX (0..F) DC graba un carry desde el bit más significativo del nibble inferior (bit 3) De este modo DC permite que se puede llevar a cabo aritmética HEX de la misma manera como la aritmética de 8 bits usa el flag C

Selección de banco de registros En la MCU ‘F877 el archivo de registros de RAM está dividido en 4 bancos de 128 localizaciones, bancos 0..3 Al encender el banco 0 es seleccionado por omisión Para acceder a los otros bancos los bits de selección de bancos deben ser modificados, como se muestra en la tabla a continuación:

Seleccionar banco de registros

Se observa que algunos registros se repiten (mirrored) en más de un banco haciendo más fácil y rápido el acceso a ellos cuando se conmuta a ese banco Por ejemplo, el registro de STATUS se repite en todos los bancos Además un bloque de GPRs al final de cada banco se repite, tal que sus contenidos de datos son disponibles sin cambiar de banco Los bancos de registros son seleccionados con los bits RP0 y RP1 del registro de STATUS. Pero en vez de esto, más convenientemente, la pseudo-operación BANKSEL puede ser usada. El operando para BANKSEL es cualquier registro en ese banco, o su etiqueta. De hecho BANKSEL detecta los bits del banco en la dirección del registro y los copia en los bits de selección de banco del registro de STATUS

Power status bits Hay 2 bits de sólo lectura en el reg. de STATUS los cuales indican el estado global de la MCU. El bit Power Down (PD) es limpiado a cero cuando el modo SLEEP es ingresado El bit Tome Out (TO) es limpiado cuando el tiempo del WdT ha finalizado

Puertos Hay 5 puertos paralelo en el ‘F877, rotulados A..E Todos los pines pueden ser usados como entradas o salidas digitales orientadas al bit o al byte. Sus funciones alternativas son resumidas en la tabla a continuación:

Funciones alternativas de los puertos

Se observa que muchos de los pines de los puertos tienen 2 o más funciones, dependiendo de la inicialización de los registros de control asociados Al encender o resetear el sistema, los bits del registro de control de los puertos adoptarán una condición por omisión (ver tabla 2.1 en la hoja de datos, columnas a mano derecha) Los bits del registro TRIS (Dirección sentido de los datos) en el banco 1 por omisión en 1, seteando así los puertos B, C y D como entradas Si esto cumple con los requerimientos no es necesaria mas inicialización ya que otros registros de control relevantes son generalmente reseteados para ofrecer I/O digital sencilla por omisión

Sin embargo hay una importante excepción: los puertos A y E son seteados para entrada análoga por omisión, ya que el registro de control análogo ADCON1 en el banco 1por omisión es Para setear estos puertos como entrada digital, este registro debe ser cargado con el código x x (x = don’t care) digamos 06 Si entrada análoga es requerida sobre solo algunos pines seleccionados, ADCON1 puede ser inicializado con códigos de bit que pueden entregar un mix análogo/digital sobre los puertos A y E Observe que ADCON1 está en el banco 1tal que BANKSEL es necesario para accederlo

TIMERS TEMPORIZADORES El ‘F877 posee 3 timers en hwr hoja de datos secciones 5, 6 y 7) Estos son usados para llevar a cabo operaciones de temporización simultáneamente con el programa TIMER0 usa un registro de 8 bits, TMR0, registro de archivo dirección 01 Su salida es un flag de overflow TMROIF, bit 2 del registro de control de interrupciones INTCON, dirección 0B

El registro del TIMER es incrementado vía una entrada del reloj la cual es derivada ya sea desde el oscilador MCU (f OSC ) o de un tren de pulsos externos en RA4 El registro cuenta desde 0 a 255 y luego da la vuelta a 0 nuevamente Cuando el registro va desde FF a 00, se setea T0IF Si el reloj interno es usado el registro actúa como un Timer Cada instrucción en la MCU toma 4 ciclos de reloj para su ejecución, así el ciclo de instrucción es f OSC /4

Los timers son impulsados desde este reloj de instrucción, el cual puede ser monitoreado externamenteen CLKOUT si el chip está operando con un reloj RC Si es precargado con un valor por ejemplo de 155D, Timer0 contará 100 pulsos de reloj antes que T0IF sea seteado Si el chip está impulsado por un Xtal de 4 MHz, el reloj de instrucción será de 1 MHz y el Timer se sobrepasará despues de 100 uSeg Si esto fuera usado para conmutar sobre una salida, una señal con un periodo exacto de 2x100 uSeg será obtenida

Alternativamente, una cuenta de pulsos externos puede ser realizada y leer el registro cuando termine o disparar la lectura por una señal externa Así los Timers pueden ser usados como contadores En la hoja de datos se muestra el diagrama de bloques completo del Timer0, el cual muestra un registro de preescala y el timer watchdog El prescalador es un registro que divide por N, donde N=2, 4, 8, 16, 32, o 256, significando que la razón de la cuenta en la salida es reducida por este factor

El intervalo del timer watchdog también puede ser extendido si este es seleccionado como el reloj fuente Los bits de selección de preescala y otros bits de control para el Timer0 se encuentran en OPTION_REG Algunos valores típicos de configuración del Timer0 se muestran en la tabla a continuación:

Timer1 es un contador de 16 bits, que consiste de un TMR1H y un TMR1L (0E y 0F) El máximo conteo es de Timer2 es un contador de 8 bits – TMR2 – con un preescalador de 4 bits, un posescalador de 4 bits y un comparador Puede ser usado para generar PWM

Direccionamiento registro archivo indirecto El registro de archivo 00 (INDF) es usado para direccionamiento registro indirecto La dirección del registro es puesta en el registro seleccionador FSR Cuando el dato es escrito o leído desde INDF es realmente escrito o leído desde el registro de archivo apuntado por FSR Esto es muy usual para extraer una lectura o escritura de un bloque continuo de GPRs, por ejemplo cuando se salva los datos que están siendo leídos desde un puerto sobre un periodo de tiempo Ya que 9 bits son necesarios para direccionar todos los regsitros (000-1FF), el bit IRP en el regsitro de estado es usado como un bit extra

Registros de control de interrupción Los registros involucrados en el manejo de una interrupción son: INTCON, PIR1, PIR2, PIE1, PIE2 y PCON Una INT en el PIC resulta siempre en un salto a la dirección de código 004 Si hay mas de una fuente de interrupción, entonces la fuente debe ser detectada y la correspondiente ISR seleccionada Por omisión las INT están deshabilitadas tal que los programas pueden ser cargados con su ORG en 0000 y el significado de la dirección 0004 puede ser ignorado

Si INT van a ser usadas la dirección del MAIN debe estar en 0005, o superior y un GOTO START puesto en la dirección 0000 Un GOTO ISR puede ser puesto en la dirección 0004 usando la directiva ORG la cual establece la dirección en la cual la instrucción será puesta por el Assembler El bit Global Interrupt Enable (INTCON, GIE) debe ser seteado para habilitar el sistema de interrupción Por ejemplo, el bit INTCON, T0IE, es seteado para habilitar para que un rebalse del Timer0 dispare la secuencai de interrupción Cuando el Timer0 se rebalsa, INTCON, T0IF (Timer0 Interrupt Flag) se setea para indicar la fuente de la interrupción y la ISR es así llamada

Los flags pueden ser verificados por la ISR para establecer la fuente de la INT, si mas de una está habilitada Una lista de fuentes de interrupción y sus bits de control se muestran en la tabla a continuación:

Las fuentes de INT primarias son el Timer0 y el puerto B La entrada RB0 es usada para interrupción simple Pines RB4..RB7 pueden ser seteados tal que cualquier cambio en estas entradas inicia una INT Esto puede ser usado para detectar cuando un botón o una tecla conectada al puerto B ha sido presionada, y la ISR procesa entonces la entrada correspondientemente Las restantes fuentes de INT son habilitadas por el bit Peripheral Interrupt Enable (INTCON, PEIE)

Estos son individualmente habilitados y asociados a un flag en PIE1, PIE2, PIR1 y PIR2 El diseñador debe decidir sobre la prioridad de las INT La profundidad limitada del stack en el PIC debe se tomada en cuenta especialmente si varios niveles de subrutinas son implementados así como múltiples interrupciones

Registros de control de periféricos La función de la mayoría de los bloques periféricos y sus configuraciones deben ser estudiadas y analizadas en la hoja de datos del F877 y en los múltiples ejemplos que se encuentran en bibliografía El único periférico que no requiere de conexiones externas es la EEPROM Este es un bloque de memorias R/W no volátil el cual almacena datos durante un power-down, por ejemplo un código de seguridad o una combinación para un candado electrónico Un set de registros en el banco 2 y 3 son usados para acceder a esta memoria

Fin TUSistComp_Comp06 JEA/jea