microcontrolador

27
Microcontroladores

Upload: alberto-jimenez

Post on 23-Jun-2015

1.940 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Microcontrolador

Microcontroladores

Page 2: Microcontrolador

Microcontrolador

• El µC es un sistema cerrado. Todas las partes del computador están contenidos en su interior y sólo salen al exterior las líneas que gobiernan los periféricos.

µC

Page 3: Microcontrolador

Ejemplo

• Un horno microondas se gobierna mediante un µC en el que se almacena el programa de control de 382 instrucciones, cada una de las cuales ocupa una palabra de la memoria de instrucciones. Sabemos que para soportar el teclado y una pantalla LCD se necesitan 12 líneas de E/S.

• ¿Cuál de los tres µC mostrados será el más recomendable utilizar?

Modelo Memoria de instrucciones

Líneas

E/S

Precio

PIC16F83 512 13 ¿?

PIC16C84 1024 13 ¿?

PIC16C74 4096 33 ¿?

Page 4: Microcontrolador

Arquitectura Interna• El procesador• Memoria no volátil para el programa de control.• Memoria de escritura y lectura para los datos.• Líneas de E/S para el control de periféricos

a) Comunicación paralelob) Comunicación seriec) Puertos diversos configurables como entrada o salida

• Recursos auxiliaresa) Circuito de relojb) Temporizadoresc) Perro guardián (whatchdog)d) Convertidores ADC y DACe) Comparadores analógicosf) Protección ante fallos de la alimentacióng) Estado de reposo o de bajo consumo

Page 5: Microcontrolador

El Procesador• La necesidad de conseguir eficiencia en el procesamiento de

instrucciones ha desembocado en el empleo generalizado de procesadores de arquitectura Harvard frente a las tradicionales que seguían la arquitectura de von Neumann.

• Arquitectura de von Neumann: aquí el procesador se conecta con una memoria única a través de un sistema de buses, donde coexisten datos e instrucciones.

• Arquitectura Harvard: en la arquitectura Harvard son independientes la memoria de instrucciones y la memoria de datos y cada una dispone de su propio sistema de buses para el acceso, lo que permite optimizar sus características propiciando el paralelismo. Además, la capacidad de cada memoria es diferente.

• Los procesadores modernos usan la técnica de tuberías (pipe-line) para procesar instrucciones, que consiste en la segmentación del procesador descomponiéndolo en etapas, que operan paralelamente para poder procesar varias instrucciones a la vez.

• El procesador de los microcontroladores modernos responde también a la arquitectura RISC (conjunto de instrucciones reducido).

Page 6: Microcontrolador

Arquitectura Harvard

• En la arquitectura “Harvard” la memoria de instrucciones y la de datos son independientes.

Memoria de

InstruccionesEl Procesador

Memoriade

Datos

BUS DE DIRECCION DE INSTRUCCIONES

10 BITS

BUS DE INSTRUCCIONES

14 BITS

BUS DE DIRECCION DE DATOS

9 BITS

BUS DE DATOS

8 BITS

Page 7: Microcontrolador

Características de arquitectura Harvard

• En una arquitectura Harvard la instrucción es buscada de la memoria de programa en un solo ciclo.

• Mientras la memoria de programa está siendo accesada, la memoria de datos puede ser leída o escrita.

• Esta arquitectura de buses separados permiten que una instrucción pueda ser ejecutada mientras la próxima es buscada.

Page 8: Microcontrolador

Características Fundamentales

• Instrucciones de palabra larga.

• Instrucciones de una sola palabra

• Solapamiento de instrucciones

• Instrucciones de un solo ciclo

• Conjunto de instrucciones reducido

• Arquitectura de file de registros

• Instrucciones ortogonales o simétricas

Page 9: Microcontrolador

Instrucciones de palabra larga

• Estas instrucciones usan un bus mayor, o sea de más bits, que un bus de memoria de datos de 8 bits. Esto es posible debido a que los dos buses son separados.

• Esto permite que las instrucciones sean accesadas de forma diferente que con un ancho de palabra de un byte, con un uso más eficiente de la memoria de programa.

Page 10: Microcontrolador

Instrucciones de una palabra

• Las instrucciones se codifican en palabras de 14 bits, haciendo posible tener todas las instrucciones de una palabra.

• La búsqueda de una instrucción en la memoria de programa de 14 bits demanda un solo ciclo de bus.

• Con instrucciones de una palabra el número de localidades de memoria de programa es igual al número de instrucciones.

Page 11: Microcontrolador

Ejemplo de instrucción

• CLRF foperación: 0 → f, afecta Zcódigo de máquina: 00 00011fff ffff

Es una instrucción cuyo código ocupa una sola palabra larga de 14 bits que identifica a la misma y donde se señala la dirección fff ffff para accesar al registro f del file.

Page 12: Microcontrolador

Solapamiento de Instrucciones

• La tubería de instrucciones es de dos pasos, lo que quiere decir que se superpone la búsqueda y la ejecución de instrucciones.

• La búsqueda de una instrucción toma un ciclo, mientras que la ejecución toma otro ciclo.

• Pero se solapa la búsqueda de la instrucción en curso con la ejecución de la anterior.

• Así, una instrucción es buscada y otra es ejecutada en el mismo ciclo.

Page 13: Microcontrolador

Solapamiento de Instrucciones

Page 14: Microcontrolador

Instrucciones de un solo ciclo

• Con el bus de memoria de programa de 14 bits, una instrucción completa es buscada en un solo ciclo.

• Si se toma en cuenta la superposición de la búsqueda de una instrucción con la ejecución de la anterior, debido a la tubería de dos pasos, todas las instrucciones son de un solo ciclo, excepto las de ramificación o salto.

• En las instrucciones de ramificación o salto, existe una demora adicional de un ciclo en la ejecución porque la misma modifica el contenido del contador del programa.

• La modificación del contador del programa requiere que se limpie la tubería y que se busque una nueva instrucción de la memoria de programa.

• Estas instrucciones de salto serán entonces de dos ciclos.

Page 15: Microcontrolador

Conjunto de instrucciones reducido

• Cuando un conjunto de instrucciones está bien diseñado es altamente ortogonal o simétrico, menos instrucciones son requeridas para realizar las tareas necesarias.

• Con un menor número de instrucciones, el repertorio completo puede ser aprendido más fácilmente.

• Para los PICs de la gama media los grupos de instrucciones son.

1- Operaciones sobre el file de registros orientadas a byte: 182- Operaciones sobre el file de registros orientadas a bit: 43- Operaciones de literales y de control: 13

• Total: 35 instrucciones

Page 16: Microcontrolador

Arquitectura de file de registros

• La memoria de programa puede ser direccionada en forma directa.

• Los files de registros pueden ser directa e indirectamente direccionados.

• Los registros de funciones especiales, incluyendo el contador del programa, están mapeados en la memoria de datos.

Page 17: Microcontrolador

Ejercicio1: Reflejo de Teclas sobre LEDS

• Leer el estado de 5 teclas E0, E1, …E4 conectadas a RA0, RA1,…RA4 y reflejar el estado lógico de las mismas sobre los leds LED0, LED1, ….LED4 conectados en RB0, RB1,…RB4 respectivamente.

• Diseñar el programa con MPLAB y simularlo con PROTEUS.

RA0

RA1

RA2

RA3

RA4

RB0

RB1

RB2

RB3

RB4

PIC16F84ALED0

LED1

LED2

LED3

LED4

E0

E1

E2

E3

E4

Page 18: Microcontrolador

Diagrama de Flujo• El puerto A se

configura como entrada y el puerto B como salida.

• Un 0 configura salida.

• Un 1 configura entrada Configurar PA como entrada y PB como

salida

Leer estado de PA

Escribir estado de PA en PB

INICIO

Borrar las salidas

Page 19: Microcontrolador

Algunas directivas del Ensamblador

• list P=PIC16F84A, F=INHX8M, C=160, N=80, ST=OFF, MM=OFF, R=DEC• include P16F84A.INC• _config (_CP_OFF & _PWRTE_ON & _XT_OSC & _WDT_OFF )• errorlevel -302 ;ignora “error” cuando se graba en banco1• title “ Ejercicio #1”• org 0x05• End

F indica al ensamblador tipo de formato a usarse al crear el archivo ejecutable PROG1.HEXC y N indican al ensamblador el número de columnas y filas en cada página del archivo PROG1.LST que se lo puede imprimir y observar el listado del programa.ST y MM indican al ensamblador si se incluye o no la tabla de símbolos y mapa de memoria en el archivo PROG1.LST.__config especifica la palabra de configuración del microcontrolador

Page 20: Microcontrolador

Ejemplo de instrucción sobre el file de registros

• CLRF fcódigo: 0000011fff fffff es un localidad de la memoria de datos formada por los registros especiales y los registros de propósito general, cuya dirección viene dada por xxxfffffff, donde xxx depende de los bits 7, 6 y 5 del registro de ESTADO y del modo de dirección indirecto o directo, como se estudiará más adelante.

Page 21: Microcontrolador

Instrucciones ortogonales o simétricas

• Estas instrucciones hacen posible realizar cualquier operación sobre cualquier registro usando cualquier modo de dirección.

• Esta naturaleza simétrica y la ausencia de “instrucciones especiales” hacen la programación simple y eficiente.

• El repertorio de instrucciones de los PIC de gama media tiene solamente dos instrucciones no orientadas a registros, las cuales son usadas para dos situaciones especiales.A) SLEEP: pone al micro en reposo o modo de bajo consumo de potencia.B) CLRWDT: esta relacionada con el circuito de vigilancia (whatchdog timer). Limpia el registro contador de este temporizador.

Page 22: Microcontrolador

Ejemplo de instrucciones ortogonales

• ADDWF f, d• SUBWF f, d• CLRF f• INCF f, d• DECF f, d• COMF f, d• XORW f, d• IORWF f, d• ANDWF f, d

• RRF f, d• RLF f, d• SWAPF f, d• MOVWF f• MOVF f, d• BCF f, b• BSF f, b• BTFSC f, b• BTFSS f, b

Page 23: Microcontrolador

Familia PIC16F8X• Los PIC16F8X son iguales a los PIC16C8X salvo que sustituyen flash por

EPROM para la memoria de programa.

µC

MEMORIA DE

PROGRAMA

FLASH

MEMORIA DE DATOS

RAM

EEPROM DATOS

PIC16F83 512 BYTES 36 BYTES 64 BYTES

PIC16F84 1 K BYTES 68 BYTES 64 BYTES

Page 24: Microcontrolador

PIC16F84A

Page 25: Microcontrolador
Page 26: Microcontrolador

Característica Interna

• En el diagrama de bloques se puede apreciar la organización de los puertos de E/S de la familia PIC16F8X.

• Tiene dos puertos de E/S y un temporizador TMR0.

• El puerto A tiene 5 líneas (RA0 a RA4) en la que RA4 es compartida con la entrada T0CKI para el TMR0.

• El puerto B posee 8 líneas de E/S (RB0 a RB7), en la que la línea RB0 es compartida con la entrada INT de la interrupción externa.

Page 27: Microcontrolador

Característica Interna

• Hay dos bloques de memoria en los PIC de gama media: la memoria de programa y la memoria de datos.

• En la memoria de datos de los PIC de la gama media hay en general 4 bancos de memoria.

• En los PIC16F8X existen solo dos bancos de memoria de datos, de 00H a 7FH y de 80H a FFH, como se estudiará mas adelante.

• La memoria de programa está organizada en palabras de 14 bits. Esta memoria es de sólo lectura y únicamente se ejecutará el código contenido en ella.