You are on page 1of 49

Unidad 5 Arquitecturas embebidas o microcontroladores

LUIS ENRIQUE GOMES DUEAS CHRISTIAN URIEL CARDOSO VENTURA JAVIER TRUEBA FLORES LUIS ANGEL DOMINGUES CRUZ

QU ES UN MICROCONTROLADOR?
MICROCONTROLADOR = MICROPROCESADOR + MEMORIA + PERIFERICOS

MICROPROCESADOR
ES UNA MAQUINA DE ESTADOS QUE INTERPRETA UNA SERIE DE INSTRUCIONES ALMACENADAS EN UNA MEMORIA Y REALIZA OPERACIONES CON ELLAS NECESITA AL MENOS UNA MEMORIA Y UN INTERFAZ CON EL USUARIO PARA PODER FUNCIONAR

MEMORIA
ALMACENA LAS INSTRUCIONES A INTERPRETAR Y LOS DATOS QUE ESTAS UTILIZAN. PROGRAMA Y DATOS PUEDEN ESTAR EN JUNTOS (ARQUITECTURA PRINCENTON) O SEPARADOS (ARQUITECTURA HARVARD)

PERIFERICOS (I)
PUERTOS (E/S)
PARALELO (CONTROLAR PINES) SERIE (COMUNICACION OTRO MICRO)

CONVERSORES A/D TIMERS PWM ETC...

PERIFERICOS (II)
LOS UTILIZAMOS ESCRIBIENDO Y LEYENDO SUS REGISTROS (DETERMINADAS POSICIONES DE MEMORIA ASOCIADOS A ESTOS) EN LENGUAJES DE ALTO NIVEL (C) LO HACEMOS MEDIANTE FUNCIONES ESPECIFICAS

CONVERSOR A/D
MIDE LA TENSION CONTINUA A UNA ENTRADA Y LA CONVIERTE EN UN VALOR DIGITAL PROPORCIONAL A ESTE. TIPICAMENTE ENTRE 0-5V

A/D

0011010101 1001010101 0101011010 1010110101 0101101010

TIMERS
SON CONTADORES NOSOTROS FIJAMOS SU PERIODO SE PUEDEN LEER Y A VECES ESCRIBIR. NOS PERMITEN MEDIR TIEMPOS, GENERAR SEALES PERIODICAS, ETC...

GENERADOR DE PWM
SEAL DE UNA CUADRADA PERIODICA DE UNA DETERMINADA FRECUENCIA EN LA QUE MODIFICAMOS EL CICLO DE TRABAJO NOS SIRVE PARA CONTROLAR MOTORES EN VELOCIDAD

5V 0V

QU ES UNA INTERRUPCION?
ES UN EVENTO QUE INTERRUMPE EL PROGRAMA QUE SE ESTA EJECUTANDO PARA EJECUTAR OTRO TROZO DE PROGRAMA QUE EN ESE MOMENTO TIENE MS PRIORIDAD. UNA VEZ EJECUTADO ESTE TROZO SE CONTINUA CON EL PROGRAMA PENDIENTE

INTERRUPCIONES
EXTERNAS:
CAMBIO DE ESTADO DE UN PIN PECEPCION PUERTO SERIE

INTERNAS:
DESBORDAMIENTO DE TIMER FIN DE CONVERSION A/D INTERRUPCION SOFTWARE

MICROCONTROLADOR PIC 16F84A


Caractersticas Generales del PIC16F84A
El microcontrolador PIC16F84A posee 18 pines, de los cuales 13 son usados para entrada/Salida. Adems, cuenta con un Timer/Contador interno y 4 fuentes de interrupcin a la CPU. En la Figura se presenta un diagrama con su apariencia externa. Cada uno de los pines que lo componen se describen a continuacin.

DIAGRAMA DE PINES DEL PIC 16F84A

Organizacin de la Memoria del PIC16F84A


La memoria del PIC16F84A se divide en dos reas principales: La primera es la de registros Especiales, que nos sirven para configurar el dispositivo (entradas y salidas, interrupciones, timer/contador, etc...) y obtener informacin sobre su estado actual (resultados de operaciones lgicas, Interrupciones, lectura de entradas y escritura de salidas, etc...). La segunda es la de Registros de Uso General, que consiste en 68 registros (de 8 bits cada uno), los cuales podemos utilizar para lo que estimemos necesario. En la Figura 2 podemos ver esta divisin junto con el nombre de los registros especiales y sus direcciones en hexadecimal.

Conjunto de instrucciones y lenguaje ensamblador


REGISTROS INTERNOS DEL MICROPROCESADOR La Unidad Central de Proceso (CPU, por sus siglas en ingls) tiene 14 registros internos cada uno de 16 bits. Los primeros cuatro, AX, BX, CX y DX, son de uso general y se pueden usar tambin como registros de 8 bits. Es decir, AX se puede dividir en AH y AL (AH es el byte alto, high, y AL es el byte bajo, low) Lo mismo es aplicable a los otros tres (BX en BH y BL, CX en CH y CL y DX en DH y DL)

Estos son los nicos registros que pueden usarse de modo dual (en 8 o 16 bits) AX (acumulador) BX (registro base) CX (registro contador) DX (registro de datos) DS (registro del segmento de datos) ES (registro del segmento extra) SS (registro del segmento de pila) CS (registro del segmento de cdigo) BP (registro de apuntadores base) SI (registro ndice fuente) DI (registro ndice destino) SP (registro del apuntador de pila) IP (registro del apuntador de siguiente instruccin) F (registro de banderas)

El registro de banderas es un registro de 16 bits, pero no todos los bits se usan. PSW Contiene 9 banderas. Tres banderas de control TF, DF, IF y seis banderas de status CF, PF, AF, ZF, SF, OF. Estas 6 ltimas banderas representan el resultado de una operacin aritmtica o lgica. Permiten al programa alterar el curso de ejecucin basado en los valores lgicos que almacenan.

AF Llevar auxiliar = 1, indica que hubo llevar del nibble (4 bits) 0 al nibble 1. O un pedir prstamo del nibble alto al nibble bajo. CF Llevar = 1, cuando ha ocurrido un llevar o pedir prstamo del resultado (8 o

16 bits)
OF Sobreflujo = 1, indica que ha ocurrido un sobreflujo aritmtico. Esto significa que el tamao del resultado excede la capacidad de ALMACENAMIENTO del destino y el dgito significativo se perdi. SF Signo. Esta bandera se activa cuando el bit ms significativo del resultado es 1. Ya que los nmeros binarios negativos son representados usando notacin C2, SF refleja el signo del resultado: 0 indica + 1 indica PF Paridad. Cuando esta bandera est activa, el resultado de la operacin tiene un nmero par de unos. Esta bandera se usa para verificar errores en la transmisin. ZF Cero. Esta bandera se activa cuando el resultado de la operacin es cero. Las tres banderas de control sern discutidas despus durante el curso DF = bandera de direccin IF = bandera de interrupcin TF = bandera de trampa

NJUNTO DE INSTRUCCIONES (Microprocesadores 8086/8088) Se pueden clasificar en los siguientes grupos: Instrucciones de Transferencia de Datos. Estas instrucciones mueven datos de una parte a otra del sistema; desde y hacia la memoria principal, de y a los registros de datos, puertos de E/S y registros de segmentacin. Las instrucciones de transferencia de datos son las siguientes: MOV transfiere XCHG intercambia IN entrada OUT salida XLAT traduce usando una tabla LEA carga la direccin efectiva LDS carga el segmento de datos LES carga el segmento extra LAHF carga los indicadores en AH SAHF guarda AH en los indicadores PUSH FUENTE (sp) fuente POP DESTINO destino (sp)

Control de Bucles (instrucciones simples) stas posibilitan el grupo de control ms elemental de nuestros programas. Un bucle es un bloque de cdigo que se ejecuta varias veces. Hay 4 tipos de bucles bsicos: o Bucles sin fin o Bucles por conteo o Bucles hasta o Bucles mientras Las instrucciones de control de bucles son las siguientes: INC incrementar DEC decrementar LOOP realizar un bucle LOOPZ,LOOPE realizar un bucle si es cero LOOPNZ,LOOPNE realizar un bucle si no es cero JCXZ salta si CX es cero

Instrucciones de Prueba, Comparacin y Saltos.


Este grupo es una continuacin del anterior, incluye las siguientes instrucciones: TEST verifica CMP compara JMP salta JE, JZ salta si es igual a cero JNE, JNZ salta si no igual a cero JS salta si signo negativo JNS salta si signo no negativo JP, JPE salta si paridad par JNP, JOP salta si paridad impar

JO salta si hay capacidad excedida


JNO salta si no hay capacidad excedida JB, JNAE salta si por abajo (no encima o igual) JNB, JAE salta si no est por abajo (encima o igual) JBE, JNA salta si por abajo o igual (no encima)

JNBE, JA salta si no por abajo o igual (encima)


JL, JNGE salta si menor que (no mayor o igual) JNL, JGE salta si no menor que (mayor o igual) JLE, JNG salta si menor que o igual (no mayor) JNLE, JG salta si no menor que o igual (mayor)

Instrucciones de Llamado y Retorno de Subrutinas. Para que los programas resulten eficientes y legibles tanto en lenguaje ensamblador como en lenguaje de alto nivel, resultan indispensables las subrutinas:

CALL llamada a subrutina RET retorno al programa o subrutina que llam

Instrucciones Aritmticas. Estas instrucciones son las que realiza directamente el 8086/8088 a. Grupo de adicin: ADD suma ADC suma con acarreo AAA ajuste ASCII para la suma DAA ajuste decimal para la suma b. Grupo de sustraccin: SUB resta SBB resta con acarreo negativo AAS ajuste ASCII para la resta DAS ajuste decimal para la resta c. Grupo de multiplicacin: MUL multiplicacin IMUL multiplicacin entera AAM ajuste ASCII para la multiplicacin d. Grupo de divisin: DIV divisin IDIV divisin entera AAD ajuste ASCII para la divisin e. Conversiones: CBW pasar octeto a palabra CWD pasar palabra a doble palabra NEG negacin

Tratamiento de cadenas: Permiten el movimiento, comparacin o bsqueda rpida en bloques de datos: MOVC transferir carcter de una cadena MOVW transferir palabra de una cadena CMPC comparar carcter de una cadena CMPW comparar palabra de una cadena SCAC buscar carcter de una cadena SCAW buscar palabra de una cadena LODC cargar carcter de una cadena LODW cargar palabra de una cadena STOC guardar carcter de una cadena STOW guardar palabra de una cadenaCOMPUTACIN V MICROPROCESADORES Y MICROCOMPUTADORAS 3. LENGUAJE ENSAMBLADOR DEL MICROPROCESADOR LUIS URIETA PREZ Y PABLO FUENTES RAMOS 3 -8 REP repetir CLD poner a 0 el indicador de direccin STD poner a 1 el indicador de direccin

Instrucciones Lgicas. Son operaciones bit a bit que trabajan sobre octetos o palabras completas: NOT negacin AND producto lgico OR suma lgica XOR suma lgica exclusiva

Instrucciones de Desplazamiento, Rotacin y Adeudos. Bsicamente permiten multiplicar y dividir por potencias de 2 SHL, SAL desplazar a la izquierda (desplazamient o aritmtico) SHR desplazar a la derecha SAR desplazamiento aritmtico a la derecha ROL rotacin a la izquierda ROR rotacin a la derecha RCL rotacin con acarreo a la izquierda RCR rotacin con acarreo a la derecha CLC borrar acarreo STC poner acarreo a 1

Instrucciones de Pila. Una de las funciones de la pila del sistema es la de salvaguardar (conservar) datos (la otra es la de salvaguardar las direcciones de retorno de las llamadas a subrutinas): PUSH introducir POP extraer PUSHF introducir indicadores POPF extraer indicadores Instrucciones de Control del microprocesador. Hay varias instrucciones para el control de la CPU, ya sea a ella sola, o en conjuncin con otros procesadores: NOP no operacin HLT parada WAIT espera LOCK bloquea ESC escape

Instrucciones de Interrupcin. STI poner a 1 el indicador de interrupcin CLI borrar el indicador de interrupcin INT interrupcin INTO interrupcin por capacidad excedida (desbordamiento) IRET retorno de interrupcin

Caractersticas y uso de elementos del microcontrolador


Definicin Recibe el nombre de controlador el dispositivo que se emplea para el gobierno de uno o varios procesos. Por ejemplo, el controlador que regula el funcionamiento de un horno dispone de un sensor que mide constantemente su temperatura interna y, cuando traspasa los lmites prefijados, genera las seales adecuadas que accionan los actuadores que intentan llevar el valor de la temperatura dentro del rango estipulado.

Recursos comunes a todos los microcontroladores


Al estar todos los microcontroladores integrados en un chip, su estructura fundamental y sus caractersticas son muy parecidas. Todos deben disponer de los bloques esenciales: procesador, memoria de datos e instrucciones, lneas de entrada y salida, oscilador de reloj y mdulos controladores de perifricos. Sin embargo, cada fabricante intenta enfatizar los recursos idneos para las aplicaciones a las que se destintan preferentemente.

Arquitectura bsica Aunque inicialmente todos los microcontroladores adoptaron la arquitectura clsica de Von Neumann, en el momento presente se impone la arquitectura Harvard. La arquitectura de Von Neumann se caracteriza por disponer de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a travs de un sistema de buses nico (direcciones, datos y control). La arquitectura Harvard dispone de dos memorias independientes: una, que contiene slo instrucciones y otra, slo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultneamente en ambas memorias.

Procesador CPU Es el elemento ms importante del microcontrolador y determina sus principales caractersticas, tanto a nivel hardware como a nivel de software. Se encarga de direccionar la memoria de instrucciones, recibir el cdigo OP de la instruccin en curso, su decodificacin y la ejecucin de la operacin que implica la instruccin, as como la Sistema de desarrollo PIC18F452 Captulo 2 bsqueda de los operandos y el almacenamiento del resultado. Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los procesadores actuales:

CISC: Computadores de Juego de Instrucciones Complejo: Disponen de ms de 80 instrucciones mquina en su repertorio, algunas de las cuales son muy sofisticadas y potentes, requiriendo muchos ciclos para su ejecucin. RISC: Tanto la industria de los computadores comerciales como la de los microcontroladores estn decantndose hacia la filosofa RISC (Computadores de Juego de Instrucciones Reducido). En estos procesadores el repertorio de instrucciones mquina es muy reducido y las instrucciones son simples y, generalmente, se ejecutan en un ciclo. La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del procesador. SISC: En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, adems de ser reducido, es especfico, o sea, las instrucciones se adaptan a las necesidades de la aplicacin prevista. Esta filosofa se ha bautizado con el nombre de SISC (Computadores de Juego de Instrucciones Especfico).

Memoria En los microcontroladores la memoria de instrucciones y datos est integrada en el propio chip. Una parte debe ser no voltil, tipo ROM, y se destina a contener el programa de instrucciones que gobierna la aplicacin. Otra parte de memoria ser tipo RAM, voltil, y se destina a guardar las variables y los datos. La RAM en estos dispositivos es de poca capacidad pues slo debe contener las variables y los cambios de informacin que se produzcan en el transcurso del programa. Por otra parte, como slo existe un programa activo, no se requiere guardar una copia del mismo en la RAM pues se ejecuta directamente desde la ROM.

1. ROM con mscara Es una memoria no voltil de slo lectura cuyo contenido se graba durante la fabricacin del chip. El elevado coste del diseo de la mscara slo hace aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades. 2. OTP El microcontrolador contiene una memoria no voltil de slo lectura programable una sola vez por el usuario. OTP (One Time Programmable). La versin OTP es recomendable cuando es muy corto el ciclo de diseo del producto, o bien, en la construccin de prototipos y series muy pequeas.

3 EPROM Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read Only Memory) pueden borrarse y grabarse muchas veces. La

grabacin se realiza, como en el caso de los OTP, con un grabador gobernado desde un
PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cpsulas son de material cermico y son ms caros que los microcontroladores con memoria OTP que estn hechos con material plstico. 4 EEPROM Se trata de memorias de slo lectura, programables y borrables elctricamente EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la programacin como el borrado, se realizan elctricamente desde el propio grabador y bajo el control programado de un PC. Es muy cmoda y rpida la operacin de grabado y la de borrado.

Los microcontroladores dotados de memoria EEPROM una vez instalados en el


circuito, pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se usan grabadores en circuito que confieren una gran flexibilidad y rapidez a la hora de realizar modificaciones en el programa de trabajo.

5 FLASH Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume menos y es ms pequea. A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es ms rpida y de mayor densidad que la EEPROM. La alternativa FLASH est recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de programa no voltil. Es ms veloz y tolera ms ciclos de escritura/borrado.

Puertas de Entrada y Salida La principal utilidad de las patitas que posee la cpsula que contiene un microcontrolador es soportar las lneas de E/S que comunican al computador interno con los perifricos exteriores. Reloj principal Todos los microcontroladores disponen de un circuito oscilador que genera una onda cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la sincronizacin de todas las operaciones del sistema. Generalmente, el circuito de reloj est incorporado en el microcontrolador y slo se necesitan unos pocos componentes exteriores para seleccionar y estabilizar la frecuencia de trabajo. Dichos componentes suelen consistir en un cristal de cuarzo junto a elementos pasivos o bien un resonador cermico o una red R-C. Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las instrucciones pero lleva aparejado un incremento del consumo de energa.

Recursos especiales Cada fabricante oferta numerosas versiones de una arquitectura bsica de microcontrolador. En algunas ampla las capacidades de las memorias, en otras incorpora nuevos recursos, en otras reduce las prestaciones al mnimo para aplicaciones muy simples, etc. La labor del diseador es encontrar el modelo mnimo que satisfaga todos los requerimientos de su aplicacin. De esta forma, minimizar el coste, el hardware y el software. Los principales recursos especficos que incorporan los microcontroladores son:

Temporizadores o Timers: Se emplean para controlar periodos de tiempo y para llevar la cuenta de acontecimientos que suceden en el interior. Perro guardin o Watchdog: Es un temporizador que cuando se desborda y pasa por cero provoca un reset automticamente en el sistema. Estado de reposo o de bajo consumo: Es un estado del sistema donde se

detiene el reloj principal y sus circuitos asociados con el objetivo de ahorrar


energa en periodos de tiempo donde el microcontrolador se mantiene en espera de instrucciones. Conversor A/D: Procesa seales analgicas convirtindolas en seales digitales. Comparador analgico: Algunos modelos de microcontroladores disponen internamente de un amplificador operacional que acta como comparador entre una seal fija de referencia y otra variable que se aplica por una de las patitas de

la cpsula. La salida del comparador proporciona un nivel lgico 1 0 segn


una seal sea mayor o menor que la otra.

Modulador de anchura de impulsos o PWM: Son circuitos que proporcionan en su salida impulsos de anchura variable, que se ofrecen al exterior a travs de

las patitas del encapsulado.


Puertas de comunicacin: Con objeto de dotar al microcontrolador de la posibilidad de comunicarse con otros dispositivos externos, otros buses de microprocesadores, buses de sistemas, buses de redes y poder adaptarlos con otros elementos bajo otras normas y protocolos. Algunos modelos disponen de recursos que permiten directamente esta tarea, entre los que destacan: UART, adaptador de comunicacin serie asncrona. USART, adaptador de comunicacin serie sncrona y asncrona. Puerta paralela esclava para poder conectarse con los buses de otros

microprocesadores.
USB (Universal Serial Bus), moderno bus serie para los PC. Bus I2C, interfaz serie de dos hilos desarrollado por Philips. CAN (Controller Area Network), permite la adaptacin con redes de conexionado multiplexado desarrollado conjuntamente por Bosch e

Intel para el cableado de dispositivos en automviles.

Lenguajes de programacin Se han desarrollado todo tipo de lenguajes para los microcontroladores, pero los ms usados son el Ensamblador, el BASIC y el C. Los programas escritos en Ensamblador son compactos y rpidos, sin embargo, utiliza neumnicos inteligibles y si no estn bien confeccionados resultarn de gran tamao y lentos. Los lenguajes de alto nivel como el BASIC y el C son ms fciles de comprender y por tanto de disear. Pero como toda mquina digital, el microcontrolador es capaz de entender exclusivamente el lenguaje binario grabado en la memoria. Los compiladores son programas que se encargan de traducir el programa de trabajo escrito en cualquier lenguaje a cdigo mquina para luego grabarlo en la memoria del microcontrolador y ejecutarlo.

Aplicaciones de los microcontroladores


Quiz se despierte porque un reloj-despertador estaba programado para timbrar a determinada hora de la maana, pes si es un reloj digital, entonces el reloj despertador tiene un microcontrolador en su interior, como el de la figura:

Muchas personas antes de levantarse, ven la televisin para ello toman el control remoto y la encienden, ah est otro microcontrolador. La TV se enciende y se muestran las imgenes, pues la televisin tiene uno o ms microcontroladores

Quiz el usuario al continuar la maana, va a la cocina se prepara su desayuno o almuerzo, para ello hace uso del horno de microondas o la estufa (hay algunas estufas que muestran la temperatura), pues esos dispositivos tienen obviamente un microcontrolador en su interior.

La persona quiz, se va a su trabajo o escuela o sale de su casa, si tiene automvil, lo que hace primero es quitar la alarma o abrir los seguros elctricos.

Despus entra al coche y lo enciende. El automvil tiene muchos microcontroladores (panel de instrumentos, inyeccin electrnica, sistema de alarma, etc.)

Prende el estreo y escucha su msica favorita, pues el auto estreo tiene uno o ms microcontroladores.

You might also like