0% encontró este documento útil (0 votos)
96 vistas32 páginas

Introducción a Microcontroladores PIC

Este documento describe los conceptos básicos de los microcontroladores, incluyendo su arquitectura interna y funcionalidad. Explica que un microcontrolador es un sistema computacional completo en un solo chip que generalmente se dedica a una tarea específica. Describe la arquitectura Harvard de dos memorias separadas y cómo esto permite la ejecución eficiente de instrucciones. También proporciona detalles sobre la arquitectura y operación interna del microcontrolador PIC16F84 como ejemplo.

Cargado por

Alejo Czombos
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
96 vistas32 páginas

Introducción a Microcontroladores PIC

Este documento describe los conceptos básicos de los microcontroladores, incluyendo su arquitectura interna y funcionalidad. Explica que un microcontrolador es un sistema computacional completo en un solo chip que generalmente se dedica a una tarea específica. Describe la arquitectura Harvard de dos memorias separadas y cómo esto permite la ejecución eficiente de instrucciones. También proporciona detalles sobre la arquitectura y operación interna del microcontrolador PIC16F84 como ejemplo.

Cargado por

Alejo Czombos
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd

MICROCONTROLADORES

ARQUITECTURA HARVARD
MICROCONTROLADOR
• Es un computador en un solo circuito
integrado
• Tiene todos los elementos de una
computadora.
• La capacidad de procesamiento es
limitada.
• Generalmente dedicado a una tarea
específica
MICROCONTROLADOR ≡ COMPUTADOR dedicado
MICROCONTROLADOR ≡
COMPUTADOR dedicado
• Un solo programa en memoria (para una
aplicación determinada)
• Líneas de I/O que se conectan a los sensores y
actuadores de los dispositivos a controlar
• Los recursos complementarios son para
atender a los requerimientos del dispositivo
• Una vez programado y configurado solo puede
gobernar la tarea asignada
ARQUITECTURA HARVARD
Arquitectura HARVARD.
• Dos memorias separadas, una para
instrucciones y otra para datos y cada una
posee su sistema de buses para su
acceso.
• Esto permite además del paralelismo de
operaciones
• Las memorias de instrucciones y datos se
dimensionan con tamaños adecuados.
FORMATO DE INSTRUCCIONES EN UNA
SOLA PALABRA LARGA
• Al tener 2 buses separados, el bus de
instrucciones es diferente (14 bits para el caso de
PIC16F84) respecto al bus de datos (8 bits para el
mismo ejemplo).
• En el ejemplo del PIC16F84: al codificarse en una
sola palabra de 14 bits, cada instrucción se trae a
la CPU en un único ciclo de instrucción (que
equivale a 4 ciclos de reloj).
• En arquitecturas Von Neumann, con las mismas
limitaciones, se requieren varios paquetes de 8
bits para completar una instrucción, lo cual
implica mas accesos a memoria.
EJECUCION DE INSTRUCCIONES EN UN
SOLO CICLO (SALVO SALTOS)
• Al disponer de un bus de memoria de programa de 14 bits, la
instrucción se trae a la CPU en un solo ciclo de instrucción.
Esta instrucción contiene toda la información requerida y se
ejecuta en un solo ciclo.
• Un ciclo de instrucción consiste en 4 ciclos de reloj o ciclos Q
(Q1, Q2, Q3 y Q4).
• Durante el ciclo de ejecución de la instrucción el proceso es el
siguiente:
– La instrucción traída durante el ciclo de instrucción anterior se
copia al registro de instrucciones (IR) durante el ciclo Q1.
– La instrucción es decodificada y ejecutada durante los ciclos Q2,
Q3 y Q4.
– Si la instrucción conlleva un acceso a la memoria de datos para
lectura, este acceso se realiza durante el ciclo Q2.
– Si la instrucción conlleva un acceso a la memoria de datos para
escritura, este acceso se realiza durante el ciclo Q4.
MICROPROCESADOR
VS
MICROCONTROLADOR
• Un microprocesador es un sistema abierto con
el que puede construirse una computadora con
las características que se desee, utilizando los
módulos necesarios.

• Un microcontrolador es un sistema cerrado que


en sí es una computadora completa de
prestaciones limitadas que “no se pueden
modificar”.
PIC16F84
• Características destacadas
– Sencillez de manejo por su juego reducido de
instrucciones
– Buena información técnica de fácil acceso
– Precio y disponibilidad en el mercado
– Herramientas de desarrollo fáciles y baratas
– Buen equilibrio de parámetros: velocidad,
consumo, tamaño, alimentación, código
compacto, etc.
MICROCONTROLADORES PIC
(gama media: PIC 16X84)

+ 5 v cc

18 patas en total
2 patas p/alimentación
2 patas p/oscilador ext.
1 reset (MCLR bajo)
13 p/lineas de E/S: (RB0 a
RB7 y RA0 a RA4)
Arquitectura Interna
• Bloques principales
– Procesador
– Mem. no volátil-ROM (Cont. prog.)
– Mem. Lectura/escritura (R/W) – (Cont. datos)
– Líneas de E/S (I/O) para comunicación con
los periféricos y otros.
• Transmisión en Paralelo.
• Transmisión en Serie.
• Diversos ports de comunicación (ej.: USB).
– Recursos auxiliares
PIC: Arquitectura Interna
• Recursos auxiliares
– Circuito de reloj
– Temporizadores
– Registro watchdog
– Conversores A/D y D/A
– Comparadores analógicos
– Protección por fallas de alimentación
– Estado de reposo o de bajo consumo
Arquitectura de los
microcontroladores PIC 16F84.
Procesador tipo RISC.
• Posee un juego de instrucciones reducido y simple, de manera que
CASI todas las instrucciones se ejecutan en un solo ciclo de
instrucción.
Procesador segmentado.
• Se pueden realizar simultáneamente las dos fases en que se
descompone la instrucción, es decir que mientras se está
desarrollando la fase de ejecución de una instrucción se realiza la
fase de búsqueda de la siguiente.
Arquitectura ortogonal.
• Cualquier instrucción puede utilizar cualquier elemento (registro) de
la arquitectura como fuente o como destino
Arquitectura basada en banco de registros:
• todos los elementos del sistema (temporizadores, puertos de
entrada/salida, posiciones de memoria, etc.) están implementados
físicamente como registros.
PIC 16x84 – Arquitectura interna
• Siete bloques fundamentales
1. Memoria de programa EEPROM DE 1K por 14 bits
2. Memoria de datos: una RAM con 22 registros de propósito
específico (SFR) y 68 de propósito general (GFR); Otra del
tipo EEPROM de 64 bytes
3. Bus de datos con la ALU, de 8 bits y un registro W que
normalmente contiene el primer operando y luego el resultado
4. Varios registros conectados al bus de datos (puertos de E/S,
temporizador TMR0, etc.)
5. Base de tiempo y circuitos auxiliares
6. Direccionamiento de la mem. de prog. en base al Cont. de
prog. Ligado a una pila de 8 niveles.
7. Direccionamiento directo e indirecto de la mem. RAM
MODOS DE DIRECCIONAMIENTO DE
LOS DATOS
• LOS PIC16x84 PUEDEN ESPECIFICAR LOS DATOS U
OPERANDOS MEDIANTE TRES MODOS DE
DIRECCIONAMIENTO :

• Inmediato, su valor (literal) lo contiene la instrucción y en la ejecución


se carga en el registro W para su posterior procesamiento.
• Directo se utilizan los 5 bits de menos peso de la instrucción para
apuntar cualquiera de las 32 posiciones del banco 0.
• Indirecto se usa como operando el registro INDF, que ocupa la
posición 0 del banco 0. En tal caso, se accede a la posición que apunta el
contenido del registro FSR ubicado en la posición 04 del área de datos. Sus
5 bits de menos peso apuntan la dirección del dato y los bits 6 y 5
seleccionan el banco. No tiene implementado el bit 7, que siempre se lee
como 1.
• El registro INDF no se halla implementado físicamente. Cada vez que se le
referencia, se utiliza el contenido del registro FSR para direccionar al
operando.
CICLO DE INSTRUCCIÓN.
• Un ciclo de Instrucción está dividido en cuatro
partes llamadas ciclos “Q” (Q1, Q2, Q3, Q4).
• La búsqueda y la ejecución de una instrucción
necesitan dos ciclos de instrucción.
• Debido a la separación de las memorias se puede
realizar la búsqueda de una instrucción (memoria
de programa) y solaparla con la ejecución de la
anterior (memoria de datos). Este mecanismo se
conoce como pipeline.
• Cada instrucción se ejecuta efectivamente en un
solo ciclo de instrucción, excepto que la instrucción
sea un salto, caso en el cual se necesitan los dos
ciclos
ALU
CICLOS Q
CICLOS Q

El ciclo de búsqueda comienza con el incremento del contador en Q1.


En el ciclo de ejecución, la instrucción sacada de memoria es colocada
en el registro de instrucción en Q1
En Q2, Q3, Q4 se la decodifica y ejecuta. Específicamente, la lectura
del operando desde la memoria de datos se hace en Q2 (operand
read) y la escritura durante Q4 (destination write).
Memoria de Programa - ROM.
(1Kx14)
El contador de programa está
implementado sobre la memoria
de datos. Al tener implementado
solo 1 K posiciones de memoria
de programa, se ignoran los tres
bits más significativos del
contador de programa.

La dirección 0000h está


reservada para el vector de
RESET y la 0004h para el vector
de INTERRUPCION.
Direccionamiento de la memoria de programa.
Contador de programa.
Memoria de Datos - RAM.

La memoria de datos está


organizada en dos bancos (0 y 1)
de 128 bytes, los cuales
contienen los registros GPR y
SFR.

El banco 0 se selecciona
reseteando el bit RP0 (bit 5 del
registro de estado) y al banco 1
se accede seteando el mismo bit.
REGISTRO DE ESTADO
• Registro de 8 bits
• 7 0

IRP RP1 RP0 TO# PD# Z DC C

C: Acarreo
DC: Acarreo en el cuarto bit de W
Z: Cero: (W) = 0 z = 1 ; (W) ≠ 0  z = 1
PD#: “Power Down”: 1 al conectarse el microcontrolador; 0 cuando se ejecuta sleep
TO#:”Time Out” : 1 al conectarse el microcontrolador; 0 cuando se produce
desbordamiento del Perro Guardián (Watchdog)
RP1 – RP0: Selección de banco en direccionamiento directo. En los PIC16C/F84 solo
se utiliza el RP0
IRP: Selección del banco en direccionamiento indirecto. En los PIC16C/F84 solo se
utiliza el RP0. Se programa como 0.-
REGISTRO DE ESTADO

IRP: Selección del banco en direccionamiento indirecto.


En el PIC16C/F84 este bit no se utiliza, ya que posee
solamente 2 bancos. Se programa como 0.-
DIRECCIONAMIENTO DE LA MEMORIA DE DATOS.
EJEMPLO DE OPERACIÓN CON UN LITERAL.
EJEMPLO DE OPERACIÓN CON LA MEMORIA DE
DATOS (DIRECCIONAMIENTO DIRECTO).
EJEMPLO DE OPERACIÓN CON LA MEMORIA DE DATOS
(DIRECCIONAMIENTO INDIRECTO).

También podría gustarte