Documente Academic
Documente Profesional
Documente Cultură
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)
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
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
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 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:
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
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.
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
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
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
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.
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.