INSTITUTO INSTI TUTO TECNOLOGICO NACIONAL DE MEXICO CAMPUS ISTMO INGENIERIA INGENIERIA EN MECATRONICA MICROCONTROLDADORES MC GASTON DEHESA VALENCIA
UNIDAD I1 ARQUITECTURA DE LOS L OS MICROCONTROLADORES MICROCONTROLA DORES
SANTIAGO LOPEZ L OPEZ MARCO MARCO ANTONIO CULAJAY CULAJ AY SANTIAGO KIMBER GIOVANI GIOVANI ALONSO AL ONSO VICENTE LEIBNIZ LEIB NIZ 7 MT 31/10/17
1
Contenido
Microcontroladores ..................................................................................................................................... 3 Arquitectura de los microcontroladores ........................................................................................................ 4
La arquitectura Harvard y sus ventajas: ............................................................................................. 5 .................. ................................... ................................... ................................ ............... 6 Arquitectura interna de un microcontrolador. ................................... CPU (unidad central de proceso): ....................................................................................................... 6 Memoria: .................................................................................................................................................. 6 Unidades de entrada/salida: ................................................................................................................. 7 Arquitectura RISC y CISC ..................................................................................................................... 8 1.1 Diferencia entre microcomputadora microcomput adora y, microprocesador microprocesado r y microcontrolador ........................................ ....................... ................. 9 1.2 Características y aplicaciones de microcontroladores. .......................................................................... 11 1.3 Tipos de arquitecturas computacionales ............................................................................................... 18 1.4 Tipos de microcontroladores y sus fabricantes .................................. ................. ................................... ................................... ................................. ................ 22 1.5 Componentes del microcontrolador ...................................................................................................... 29 1.5.1 Registros internos ................................. ................ .................................. ................................... ................................... .................................. ................................... ......................... .......30 1.5.2 Tipos y distribución de las memorias internas ................................................................................... 39 1.5.3 Periféricos .......................................................................................................................................... 41 1.5.4 Instrucciones del microcontrolador. ................................................................................................... 43 1.5.6 El reset y sus posibles fuentes. ........................................................................................................... 48 1.6 Características Característ icas de la fuente de alimentación y consumo con sumo de potencia del microcontrolador. microcontrolador . ................ 54 1.7 Ambiente integrado de desarrollo (IDE) ............................................................................................... 54 1.7.1 Ensamblador y compilador. ............................................................................................................... 55 1.7.2 Simulador, debugger y emulador. ...................................................................................................... 57 1.7.3 Equipos programadores (downloaders). ............................................................................................. 59 1.8 Herramientas de desarrollo. .................................................................................................................. 60 Bibliografía ................................................................................................................................................. 62
2
Contenido
Microcontroladores ..................................................................................................................................... 3 Arquitectura de los microcontroladores ........................................................................................................ 4
La arquitectura Harvard y sus ventajas: ............................................................................................. 5 .................. ................................... ................................... ................................ ............... 6 Arquitectura interna de un microcontrolador. ................................... CPU (unidad central de proceso): ....................................................................................................... 6 Memoria: .................................................................................................................................................. 6 Unidades de entrada/salida: ................................................................................................................. 7 Arquitectura RISC y CISC ..................................................................................................................... 8 1.1 Diferencia entre microcomputadora microcomput adora y, microprocesador microprocesado r y microcontrolador ........................................ ....................... ................. 9 1.2 Características y aplicaciones de microcontroladores. .......................................................................... 11 1.3 Tipos de arquitecturas computacionales ............................................................................................... 18 1.4 Tipos de microcontroladores y sus fabricantes .................................. ................. ................................... ................................... ................................. ................ 22 1.5 Componentes del microcontrolador ...................................................................................................... 29 1.5.1 Registros internos ................................. ................ .................................. ................................... ................................... .................................. ................................... ......................... .......30 1.5.2 Tipos y distribución de las memorias internas ................................................................................... 39 1.5.3 Periféricos .......................................................................................................................................... 41 1.5.4 Instrucciones del microcontrolador. ................................................................................................... 43 1.5.6 El reset y sus posibles fuentes. ........................................................................................................... 48 1.6 Características Característ icas de la fuente de alimentación y consumo con sumo de potencia del microcontrolador. microcontrolador . ................ 54 1.7 Ambiente integrado de desarrollo (IDE) ............................................................................................... 54 1.7.1 Ensamblador y compilador. ............................................................................................................... 55 1.7.2 Simulador, debugger y emulador. ...................................................................................................... 57 1.7.3 Equipos programadores (downloaders). ............................................................................................. 59 1.8 Herramientas de desarrollo. .................................................................................................................. 60 Bibliografía ................................................................................................................................................. 62
2
Microcontroladores
Figura 1.1 microcontrolador
Primero que todo comenzaremos definiendo que son los microcontroladores: Los microcontroladores (a breviado μC, UC o MCU) son circuitos integrados que son capaces de ejecutar órdenes que fueron grabadas en su memoria. Su composición composi ción está dada por varios bloques funcionales, los cuales cumplen una tarea específica. Son dispositivos que operan uno o más procesos, por lo general los microcontroladores están basados en la arquitectura de Harvard, la cual consiste en dispositivos de almacenamiento separados (memoria de programa y memoria de datos). El termino microcontrolador está dado por dos palabras que son “Micro”-“Controlador” las cuales tienen por significado “pequeño (en tamaño)” y “maniobrar o controlar (función principal)” procesos los cuales son definidos mediante la programación.
Un
micro controlador está constituido en su interior por las tres principales unidades funcionales de una computadora. Las cuales son: unidad central de procesamiento, memoria y periféricos de entrada y salida. En fin un microcontrolador es un sistema completo, con unas prestaciones limitadas que no pueden modificarse y que puede llevar a cabo las tareas para las que ha sido programado de forma autónoma. En cuanto a la arquitectura de los microcontroladores la detallaremos con mayor profundidad a continuación…
3
Arqu itect ur a de l os mi cr oc on tr olador es
Arquitectura Von Neumann La arquitectura tradicional:
Figura 1.2 arquitectura
La arquitectura tradicional de computadoras y microcontroladores se basa en el esquema propuesto por John Von Neumann, en el cual la unidad central de proceso, o CPU, está conectada a una memoria única que contiene las instrucciones del programa y los datos. El tamaño de la unidad de datos o instrucciones está fijado por el ancho del bus de la memoria. Las dos principales limitaciones de esta arquitectura tradicional son: a) Que la longitud de las instrucciones está limitada por la unidad de longitud de
los datos, por lo tanto el microprocesador debe hacer varios accesos a memoria para buscar instrucciones complejas. b) La velocidad de operación (o ancho de banda de operación) está limitada por
el efecto de cuello de botella que significa un bus único para datos e instrucciones que impide superponer ambos tiempos de acceso. La arquitectura Von Neumann permite el diseño de programas con código automodificable, práctica bastante usada en las antiguas computadoras que solo tenían acumulador y pocos modos de direccionamiento, pero innecesaria, en las computadoras modernas.
4
La arquitectura Harvard y sus ventajas:
Figura 1.3 memoria
La arquitectura conocida como Harvard, consiste simplemente en un esquema en el que el CPU está conectado a dos memorias por intermedio de dos buses separados. Una de las memorias contiene solamente las instrucciones del programa, y es llamada Memoria de Programa. La otra memoria solo almacena los datos y es llamada Memoria de Datos. Ambos buses son totalmente independientes y pueden ser de distintos anchos. Para un procesador de Set de Instrucciones Reducido, o RISC (Reduced Instrucción Set Computer), el set de instrucciones y el bus de la memoria de programa. Pueden diseñarse de manera tal que todas las instrucciones tengan una sola posición de memoria de programa de longitud. Además, como los buses son independientes, el CPU puede estar accediendo a los datos para completar la ejecución de una instrucción, y al mismo tiempo estar leyendo la próxima instrucción a ejecutar. Podemos observar claramente que las principales ventajas de esta arquitectura son: a) El tamaño de las instrucciones no está relacionado con el de los datos, y por
lo tanto puede ser optimizado para que cualquier instrucción ocupe una sola posición de memoria de programa, logrando así mayor velocidad y menor longitud de programa. b) El tiempo de acceso a las instrucciones puede superponerse con el de los
datos, logrando una mayor velocidad de operación. Una pequeña desventaja de los procesadores con arquitectura Harvard, es que deben poseer instrucciones especiales para acceder a tablas de valores constantes que pueda ser necesario incluir en los programas, ya que estas tablas se encontraran
5
físicamente en la memoria de programa (por ejemplo en la EPROM de un microprocesador). Arquitectura interna de un microcontrolador.
Figura 1.4 arquitectura interna
CPU (unidad central de proceso): Podemos decir que la CPU, siglas en inglés de unidad central de proceso, es el núcleo del microcontrolador. Se encarga de ejecutar las instrucciones almacenadas en la memoria, de la que hablaremos más adelante. Es lo que habitualmente llamamos procesador o microprocesador, término que a menudo se confunde con el de microcontrolador. En esta línea cabe aclarar que, tal y como estamos viendo, ambos términos no son lo mismo: el microprocesador es una parte de un microcontrolador y sin él no sería útil; un microcontrolador, en cambio, es un sistema completo que puede llevar a cabo de forma autónoma una labor. Memoria: Entendemos por memoria los diferentes componentes del microcontrolador que se emplean para almacenar información durante un periodo determinado de tiempo. La información que necesitaremos durante la ejecución del programa será, por un lado, el propio código, y por otro, los diferentes datos que usemos durante la ejecución del mismo. Hablaremos por tanto de memoria de programa y de memoria de datos, respectivamente. La diferente naturaleza de la información que hay que almacenar hace necesario el uso de diferentes tipos memorias. Sin hacer especial énfasis en este 6
apartado, sí habrá que tener en cuenta una clasificación básica, que distingue entre memoria volátil y no volátil. La primera es aquella que pierde la información que almacena al desconectarla de la alimentación; la segunda, como resulta obvio, no. Por lo tanto, se hace evidente que al menos la memoria de programa deberá ser no volátil: no sería práctico que el programa grabado en el microcontrolador se borrara cada vez que apagáramos el dispositivo. Con respecto a la memoria de datos, diremos por el momento según la situación puede interesarnos una u otra.
Unidades de entrada/salida: Las unidades de entrada/salida son los sistemas que emplea el microcontrolador para comunicarse con el exterior. Imaginemos una televisión: por un lado tiene un dispositivo de salida, como es la pantalla, y por otro lado, de entrada, como son los botones de subir o bajar volumen y de cambio de canal. Así, los dispositivos de entrada nos permitirán introducir información en el microcontrolador y los de salida nos servirán para que éste la saque al exterior.
7
Arquitectura RISC y CISC
Figura 1.5 RISC y CISC RISC (Reduced Instruction Set Computer) – Computadora con Juego de Instrucciones Reducidas.
En este caso la idea es que el microcontrolador reconoce y ejecuta sólo operaciones básicas (sumar, restar, copiar etc.) Las operaciones más complicadas se realizan al combinar éstas (por ejemplo, multiplicación se lleva a cabo al realizar adición sucesiva). Es como intentar explicarle a alguien con pocas palabras cómo llegar al aeropuerto en una nueva ciudad. Sin embargo, no todo es tan oscuro. Además, el microcontrolador es muy rápido así que no es posible ver todas las “acrobacias” aritméticas que realiza.
El usuario sólo puede ver el resultado final de todas las operaciones. Por último, no es tan difícil explicar dónde está el aeropuerto si se utilizan las palabras adecuadas tales como: a la derecha, a la izquierda, el kilómetro etc.
8
1.1 Diferencia entre microcom putadora y, micropro cesador y microc ontrolador
El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso (CPU), también llamado procesador, de un computador. El CPU está formado por la Unidad de Control, que interpreta las instrucciones, y el BUS de Datos, que los ejecuta. Los pines de un microprocesador sacan al exterior. Las líneas de sus buses de direcciones, datos y control, para permitir conectarle con la Memoria y los Módulos de (ENTRADA / SALIDA) E/S y configurar un computador implementado por varios circuitos integrados. Se dice que un microprocesador es un sistema abierto porque su configuración es variable de acuerdo. Con la aplicación a la que se destine. El microcontrolador es un sistema cerrado. Todas las partes del computador están contenidas en su interior y sólo salen al exterior las líneas que gobiernan los periféricos. Las características de un sistema cerrado representan una desventaja con relación a los Microprocesadores. Pero en la práctica cada fabricante de microcontroladores oferta un elevado número de modelos diferentes, desde los más sencillos hasta los más poderosos. Es difícil no encontrar uno que se adapte a nuestros requerimientos del momento. Es posible seleccionar la capacidad de las memorias, el número de líneas. De (ENTRADA / SALIDA) E/S, la cantidad y potencia de los elementos auxiliares, la velocidad de funcionamiento, etc. Por todo ello, un aspecto muy destacado del diseño es la selección del microcontrolador a utilizar. Podemos concluir con que la diferencia fundamental entre un Microprocesador y un Microcontrolador: es. Que el Microprocesador es un sistema abierto con el que se puede construirse un computador con las características que se desee, acoplándole los módulos necesarios. Los productos que para su regulación incorporan un microcontrolador disponen de las siguientes ventajas: Aumento de prestaciones, un mayor control sobre un determinado elemento.
9
Representa una mejora considerable en el mismo. Aumento de la habilidad al reemplazar el microcontrolador por un elevado número de elementos disminuye el riesgo de averías y se precisan menos ajustes. Reducción del tamaño en el producto acabado. La integración del microcontrolador en un chip disminuye el volumen. La mano de obra y los stocks. Mayor flexibilidad: las características de control están programadas por lo que su medicación sólo necesita cambios en el programa de instrucciones. Una microcomputadora o microordenador es una computadora pequeña, con un microprocesador como su unidad central de procesamiento (CPU). Generalmente, el microprocesador incluye los circuitos de almacenamiento (o memoria caché) y entrada/salida en el mismo circuito integrado (o chip).
10
1.2 Características y aplicaciones de microcontroladores.
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 límites prefijados. Genera las señales adecuadas que accionan los actuadores que intentan llevar el valor de la temperatura dentro del rango estipulado. Aunque el concepto de controlador ha permanecido invariable a través del tiempo, su implementación física ha variado frecuentemente. Hace tres décadas los controladores se construían exclusivamente con componentes de lógica discreta; posteriormente se emplearon los microprocesadores, que se rodeaban con chips de memoria y E/S sobre una tarjeta de circuito impreso. En la actualidad, todos los elementos del controlador se han podido incluir en un chip, el cual recibe el nombre de microcontrolador. Realmente consiste en un sencillo pero completo computador contenido en el corazón (chip) de un circuito integrado. Memoria En los microcontroladores la memoria de instrucciones y datos está integrada en el propio chip. Una parte debe ser no volátil, tipo ROM, y se destina a contener el programa de instrucciones que gobierna la aplicación. Otra parte de memoria será tipo RAM, volátil, y se destina a guardar las variables y los datos. La RAM en estos dispositivos es de poca capacidad pues sólo debe contener las variables y los cambios de información que se produzcan en el transcurso del programa. Por otra parte, como sólo existe un programa activo, no se requiere guardar una copia del mismo en la RAM pues se ejecuta directamente desde la ROM
11
Según el tipo de memoria ROM que dispongan los microcontroladores, la aplicación y utilización de los mismos es diferente. Se describen las cinco versiones de memoria no volátil que se pueden encontrar en los microcontroladores del mercado. 1º. ROM con máscara Es una memoria no volátil de sólo lectura cuyo contenido se graba durante la fabricación del chip. El elevado coste del diseño. De la máscara sólo 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 volátil de sólo lectura “progr amable una sola vez” por el usuario. OTP (One Time Programable). La versión OTP es
recomendable cuando es muy corto el ciclo de diseño del producto, o bien, en la construcción de prototipos y series muy pequeñas. 3ª EPROM Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read Only Memory) pueden borrarse y grabarse muchas veces. La grabación 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 cápsulas son de material cerámico y son más caros que los microcontroladores con memoria OTP que están hechos con material plástico. 4ª EEPROM Se trata de memorias de sólo lectura, programables y borrables eléctricamente EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la programación como el borrado, se realizan eléctricamente desde el propio grabador y bajo el control programado de un PC. Es muy cómoda y rápida la operación de grabado y la de borrado. 12
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. Se va extendiendo en los fabricantes la tendencia de incluir una pequeña zona de memoria EEPROM en los circuitos programables para guardar y modificar cómodamente una serie de parámetros que adecuan el dispositivo a las condiciones del entorno. 5ª FLASH Se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume menos y es más pequeña. A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es más rápida 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 volátil. Es más veloz y tolera más ciclos de escritura/borrado. Las memorias EEPROM y FLASH son muy útiles al permitir que los microcontroladores que las incorporan puedan ser reprogramados “en circuito”, es decir, sin tener que sacar
el circuito integrado de la tarjeta. Así, un dispositivo con este tipo de memoria incorporado al control del motor de un automóvil. Permite que pueda modificarse el programa durante la rutina de mantenimiento periódico, compensando los desgastes y otros factores tales como la compresión, la instalación de nuevas piezas, etc. La reprogramación del microcontrolador puede convertirse en una labor rutinaria dentro de la puesta a punto. Puertas de Entrada y Salida La principal utilidad de las patitas que posee la cápsula que contiene un microcontrolador es soportar las líneas de E/S que comunican al computador interno con los periféricos exteriores.
13
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 sincronización de todas las operaciones del sistema. Generalmente, el circuito de reloj está incorporado en el microcontrolador y sólo 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 cerámico 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 energía. Recursos especiales Cada fabricante oferta numerosas versiones de una arquitectura básica de microcontrolador. En algunas amplía las capacidades de las memorias, en otras incorpora nuevos recursos, en otras reduce las prestaciones al mínimo para aplicaciones muy simples, etc. La labor del diseñador es encontrar el modelo mínimo que satisfaga todos los requerimientos de su aplicación. De esta forma, minimizará el coste, el hardware y el software. Los principales recursos específicos 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 guardián o “Watchdog”: Es un temporizador que cuando se desborda y pasa
por cero provoca un reset automáticamente 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 energía en periodos de tiempo donde el microcontrolador se mantiene en espera de instrucciones. • Conversor A/D: Procesa señales analógicas convirtiéndolas en señales digitales.
14
• Comparador analógico: Algunos modelos de microcontroladores disponen
internamente de un amplificador operacional que actúa como comparador entre una señal fija de referencia y otra variable que se aplica por una de las patitas de la cápsula. La salida del comparador proporciona un nivel lógico 1 ó 0 según una señal sea mayor o menor que la otra. Puertas de Entrada y Salida La principal utilidad de las patitas que posee la cápsula que contiene un microcontrolador es soportar las líneas de E/S que comunican al computador interno con los periféricos 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 sincronización de todas las operaciones del sistema. Generalmente, el circuito de reloj está incorporado en el microcontrolador y sólo 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 cerámico 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 energía. Recursos especiales Cada fabricante oferta numerosas versiones de una arquitectura básica de microcontrolador. En algunas amplía las capacidades de las memorias, en otras incorpora nuevos recursos, en otras reduce las prestaciones al mínimo para aplicaciones muy simples, etc. La labor del diseñador es encontrar el modelo mínimo que satisfaga.
15
Todos los requerimientos de su aplicación. De esta forma, minimizará el coste, el hardware y el software. Los principales recursos específicos que incorporan los microcontroladores son: • Temporizadores o “Timers”: Se emplean para con trolar periodos de tiempo y para
llevar la cuenta de acontecimientos que suceden en el interior. • Perro guardián o “Watchdog”: Es un temporizador que cuando se desborda y pasa
por cero provoca un reset automáticamente 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 energía en periodos de tiempo donde el microcontrolador se mantiene en espera de instrucciones. • Conversor A/D: Procesa señales analógicas convirtiéndolas en señales digitales. • Comparador analógico: Algunos modelos de microcontroladores disponen
internamente de un amplificador operacional que actúa como comparador entre una señal fija de referencia y otra variable que se aplica por una de las patitas de la cápsula. La salida del comparador proporciona un nivel lógico 1 ó 0 según una señal sea mayor o menor que la otra. Aplicaciones Cada vez existen más productos que incorporan un microcontrolador con el fin de aumentar sustancialmente sus prestaciones, reducir su tamaño y coste, mejorar su fiabilidad y disminuir el consumo. Algunos fabricantes de microcontroladores superan el millón de unidades de un modelo determinado producidas en una semana. Este dato puede dar una idea de la masiva utilización de estos componentes. Los microcontroladores están siendo empleados en multitud de sistemas presentes en la vida diaria, como pueden ser juguetes, horno microondas, frigoríficos, televisores, computadoras, impresoras, módems, el sistema de arranque de nuestro coche, etc. Otras aplicaciones como instrumentación electrónica, control de sistemas en una nave espacial, etc. Una aplicación típica podría emplear varios microcontroladores para 16
controlar pequeñas partes del sistema. Estos pequeños controladores podrían comunicarse entre ellos y con un procesador central, probablemente más potente, para compartir la información y coordinar sus acciones, como, de hecho, ocurre ya habitualmente en cualquier PC. Aplicación típica podría emplear varios microcontroladores para controlar pequeñas partes del sistema. Estos pequeños controladores podrían comunicarse entre ellos y con un procesador central, probablemente más potente, para compartir la información y coordinar sus acciones, como, de hecho, ocurre ya habitualmente en cualquier PC. Actualmente los microcontroladores tienen gran uso en ramos como:
•
Industria automotriz: Control de motor, alarmas, regulador del servofreno,
dosificador, etc.
•
Industria de los electrodomésticos: control de calefacciones, lavadoras, cocinas
eléctricas, etc.
•
Informática: como controlador de periféricos.
•
Industria de imagen y sonido: tratamiento de la imagen y sonido, control de los
motores de arrastre del giradiscos, video, etc.
17
1.3 Tipos d e arquitecturas co mputacionales
En ciencias de la computación y la ingeniería, la arquitectura de computadoras es un conjunto de disciplinas que describen un sistema informático mediante la especificación de las partes y sus relaciones. La Arquitectura de computadoras es diferente de la arquitectura de los edificios, esta última es una forma de arte visual. Mientras que la primera es parte de la informática. En ambos casos (edificios y equipo), un diseño completo tiene muchos detalles, y algunos detalles están implícitos en la práctica común. Por ejemplo, en un nivel alto, la arquitectura de la computadora puede estar enfocado en cómo actúa. La unidad de procesamiento central (CPU) y la forma en que utiliza la memoria del ordenador. Algunas arquitecturas informáticas de moda incluyen computación en clúster y no uniforme a memoria. Los Arquitectos informáticos utilizan computadoras para diseñar nuevos equipos. Los Software de emulación puede ejecutar programas escritos. En un conjunto de instrucciones propuesto. Mientras que el diseño es muy fácil de cambiar en esta etapa, los diseñadores del compilador colaboran con frecuencia con los arquitectos, lo que sugiere mejoras en el conjunto de instrucciones. Emuladores modernos pueden medir el tiempo en ciclos de reloj: El consumo de energía estimado en julios y dar estimaciones realistas de tamaño de código de bytes. Estos afectan a la comodidad del usuario, la vida de una batería, y el tamaño y el costo de la mayor parte física de la computadora: su memoria. Es decir, que ayudan a estimar el valor de un diseño por ordenador. Subcategorías. El arte de la arquitectura de la computadora tiene tres categorías principales: •
Arquitectura del conjunto de instrucciones o ISA. El ISA se definen los códigos que un procesador central lee y actúa sobre. Es el lenguaje de máquina (o lenguaje ensamblador), incluyendo el conjunto de instrucciones, tamaño de la 18
palabra, los modos de dirección de memoria, registros del procesador, y los formatos de datos y de direcciones.
•
Microarquitectura, también conocido como la organización Computacional describe las rutas de datos, elementos de procesamiento de datos y elementos de almacenamiento de datos, y describe cómo deben aplicar la ISA. [2] El tamaño de un ordenador caché de CPU por ejemplo, es un problema de organización que por lo general no tiene nada que ver con la ISA.
•
Diseño del sistema incluye todos los demás componentes de hardware dentro de un sistema de computación. Estos incluyen: 1. Rutas de datos, tales como buses ordenador e interruptores. 2. Controladores de memoria y jerarquías. 3. El procesamiento de datos que no sea la CPU, tales como acceso directo a
memoria (DMA). 4. Temas diversos tales como la virtualización, multiprocesamiento y software
de funciones. Algunos arquitectos de empresas como Intel y AMD utilizan distinciones más sutiles:
•
MacroArquitectura: capas arquitectónicas microarquitectura, por ejemplo: ISA.
más
abstractos
de
la
•
Arquitectura del conjunto de instrucciones (ISA): que el anterior pero sin:
•
Asamblea ISA: un ensamblador inteligente puede convertir un lenguaje ensamblador abstracto común a un grupo de máquinas en poco diferente lenguaje de máquina para diferentes implementaciones
19
•
Programador MacroArquitectura Visible: herramientas de lenguaje de alto nivel, tales como compiladores puede definir una interfaz consistente o contrato para los programadores que utilizan ellos, abstraer diferencias subyacentes ISA, CASD y microarquitecturas. Por ejemplo: la C , C + + o Java estándares definen diferente Programmer MacroArquitectura Visible – aunque en la práctica la microarquitectura C para un equipo en particular incluye
•
CASD (microcódigo Instruction Set Architecture), una familia de máquinas con diferentes microarquitecturas nivel de hardware, pueden compartir una arquitectura microcódigo común, y por lo tanto una CASD.
•
Pin Arquitectura: Las funciones de hardware que el microprocesador debe proporcionar a una plataforma de hardware, por ejemplo, el 86 pines A20m, FERR / IGNNE o un color. Además, los mensajes que el procesador debe emitir para que externos caches pueden ser invalidadas (vaciado). Funciones arquitectura.
Pin son más flexibles que las funciones de ISA porque el hardware externo puede adaptarse a las nuevas codificaciones, o cambiar de un alfiler a un mensaje. El término "arquitectura" se ajusta, porque las funciones deben ser proporcionados para los sistemas compatibles, incluso si los cambios detallados método. Tipos. Arquitectura computacional RISC. En arquitectura computacional, RISC del inglés Reduced Instruction Set Computer (Computadora con Conjunto de Instrucciones Reducido). Tipo de microprocesadores con las siguientes características fundamentales: 1. Instrucciones de tamaño fijo y presentado en un reducido número de
formatos.
20
2. Sólo las instrucciones de carga y almacenamiento acceden a memoria a por
datos. RISC es una filosofía de diseño de CPU para computadora que está a favor de conjuntos de instrucciones pequeños y simples que toman menor tiempo para ejecutarse. El tipo de procesador más comúnmente utilizado en equipos de escritorio, el x86, está basado en CISC en lugar de RISC. Aunque las versiones más nuevas traducen instrucciones basadas en CISC x86 a instrucciones más simples basadas en RISC para uso interno antes de su ejecución. Arquitectura computacional CISC. Del inglés Complex Instruction Set Computer. Conjunto de microprocesadores cuyo conjunto de instrucciones se caracteriza por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos, en contraposición a la arquitectura RISC. Los CISC pertenecen a la primera corriente de construcción de procesadores, antes del desarrollo de los RISC. Ejemplos de ellos son: Motorola 68000, Zilog Z80 y toda la familia Intel x86 usada en la mayoría de ordenadores personales del planeta. Diferencias ente CISC y RISC Todos los CPUs x86 compatibles con la PC son procesadores CISC (Computadora de Conjunto de Instrucciones Complejas), pero en las Mac nuevas o en alguna que se hagan dibujos de ingeniería complejos, probablemente tengan un CPU RISC (Computadora de Conjunto de Instrucciones Reducido). La diferencia práctica entre CISC y RISC es que los procesadores CISCx86 corren a DOS, Windows 3.1 y Windows 95 en el modo nativo; es decir, sin la traducción de software que disminuya el desempeño. Pero CISC y RISC también reflejan dos filosofías de computación rivales.
21
1.4 1. 4 Tipos Tipos d e microcontr oladores y su s fabricantes
Los microcontroladores suelen clasificarse por familias o por el número de Bits que manejan (4, 8, 16 ó 32 bits). Lógicamente los microcontroladores de 16 y 32 bits son superiores a los de 4 y 8 bits en cuanto a funcionalidades, siendo que los microcontroladores microcontroladores de 8 bits dominan el mercado. Prácticamente la totalidad de los microcontroladores actuales se fabrican con tecnología CMOS 4 (Complementary Metal Oxide Semiconductor). Esta tecnología supera a las técnicas anteriores anteriores por su bajo consumo y alta inmunidad al ruido. Arquitecturaa de 8-bits . Arquitectur •
PIC10: Es la familia familia "Baseline" "Baseline" de de Microchip, Microchip, son micros con 12-bit de palabra de programa y destacan por su bajo precio y número de pines escasos, hay micros de 6 a 14 pines. Son micros potentes ya que según modelo pueden contener periféricos de reloj interno, convertidor A/D, comparadores, interrupciones interrupciones externas.
Por lo tanto son ideales para cuando el tamaño es escaso y la cantidad de pines no es demasiado grande para nuestros proyectos.
•
PIC12: En esta familia, podemos distinguir en dos grandes grupos, el grupo "Baseline" y la "Mid-Range", es decir el medio rango de Microchip. Son micros más potentes que la familia PIC10 ´por tener más prestaciones. En caso de que nuestro proyecto necesiten más pines y periféricos internos que los que nos ofrece la familia PIC10, esta es nuestra familia ideal, bajos coste y un número abundante de periféricos internos.
•
PIC16: Esta familia es muy parecida a la PIC12, en cambio, dispone de más pines por lo tanto en algunos PIC's de esta familia, podemos encontrar varios periféricos juntos y listos para poder ser usados con sus respectivos pines. En esta familia también nació el mítico PIC16C84, un microcontrolador microcontrolador que alzó las venta y la publicidad de la empresa Microchip. 22
•
PIC18: Es la familia má máss alta de Microchip, y una de de las que que se están usando más acorde al paso del tiempo, los usuarios descubren esta fantástica familia y quedan encantados, micros con una cantidad de pines y periféricos considerables, por lo tanto, los hacen ideales para proyectos con envergadura y complejidad media-alta.
Arquitecturaa de 16-bits. Arquitectur Microchip, pone a disposición del usuario, dos familias cuyo procesador es de 16-bits. Una es la llamada PIC24, que sigue la línea de microcontroladores de 8-bits, y la otra es la denominada dsPIC, es la apuesta de Microchip en el mundo del procesado de señal. •
PIC24: Microcontroladores con un alto rendimiento y de bajo coste. Podemos encontrar dos subfamilias, la denominada PIC24F, es la subfamilia que ofrece Microchip para aplicaciones de bajo coste, donde podemos encontrar microcontroladores con memoria flash hasta 128kBytes y una velocidad de procesado de 16MIPS.
La otra subfamilia, es la denominada PIC24H, PIC 24H, ésta es la hermana mayor que la anterior, anterior , donde son ideales para proyectos con un alto rendimiento, con una velocidad de procesado de 40MIPS y memoria flash de programa hasta 256kBytes entre otras cosas. •
dsPIC: Son dispositivos dispositivos especializados especializados en trabajar en el procesado digital de señales, encontramos dos subfamilias, la subfamilia menor denominada dsPIC30, cuya aplicación es necesaria para proyectos de sistemas embebidos en tiempo real con una alimentación de 5V a una velocidad de procesado de 30MIPS.
La subfamilia grande, es la llamada dsPIC33F, y se distinguen de la anterior subfamilia, que la tensión de alimentación a una velocidad de procesado de 40MIPS es de 3.3V, aparte ésta subfamilia dispone de más memoria de programa flash y de memoria RAM.
23
Arquitecturaa de 32-bits. Arquitectur En esta categoría, encontramos sólo una familia, la denominada PIC32, diseñados para aplicaciones embebidas que requieran una cantidad de memoria mayor, un procesado de la información mayor, y una cantidad considerable de periféricos. Para el trabajo con esta categoría, Microchip ofrece el entorno de trabajo MPlab, el cual incluye: El compilador en ensamblador de forma gratuita denominado ASM32, pero para esta categoría, se aconseja utilizar un lenguaje de nivel medio-alto, tal como es el caso del lenguaje C. A continuación una tabla comparativa entre algunos tipos de Microcontroladores de diferentes marcas y diferente número de bits:
24
FABRICANTE
FAMILIA
ARQUITECTUR A
IDE
ADUC8xx
CISC 8 bits 8051
-
ADUC7xx
RISC 32 bits ARM7
-
AT89xxx
CISC 8 bits 8051
Prog. independiente s
TS87xxx
CISC 8 bits
Prog. independiente s
AVR
RISC 8 bits
AVR studio
AT91xxx
RISC 16 bits ARM7/9
-
EP73xxx
RISC 32 bits ARM7
-
EP93xxx
RISC 32 bits ARM9
-
C8051F
CISC 8 bits 8051
-
HC05
CISC 8 bits 6800
-
HC08
CISC 8 bits 6809
Code Warrior
HC11
CISC 8 bits 6809
-
HC12
CISC 16 bits
-
Analog Device www.analog.com
Atmel www.atmel.com
Cirrus Logic www.cirrus.com
Cygnal www.silabs.com
Freescale (Motorola) www.freescale.com
25
Fujitsu www.fujitsu.com
HCS12
CISC 16 bits
Code Warrior
HC16
CISC 16 bits
-
56800
CISC 16 bits
-
68K
CISC 32 bits 68000
-
ColdFire
CISC 32 bits
-
MAC7100
RISC 32 bits ARM7
-
F2MC-8
CISC 8 bits
-
F2MC-16
CISC 16 bits
-
FR
RISC 32 bits
-
C5xxx
CISC 8 bits 8051
-
C8xxx
CISC 8 bits 8051
-
C16xxx
CISC 16 bits
-
XC16xxx
CISC 16 bits
-
TCxxx
CISC 32 bits
-
MCS251
CISC 8 bits 8051
-
MCS96/296
CISC 16 bits
-
DS80Cxxx
CISC 8 bits 8051
-
DS83Cxxx
CISC 8 bits 8051
-
Infineon www.infineon.com
Intel www.intel.com
Maxim (Dallas) www.maxim-ic.com
26
Microchip www.microchip.com
NS (NATIONAL SEMICONDUCTOR) www.national.com
Philips www.semiconductors.philips.com
Rabbit Semiconductor www.rabbitsemiconductor.co m
Renesas www.renesas.com
DS89Cxxx
CISC 8 bits 8051
-
MAXQ
RISC 16 bits
-
PIC 10,12,14,16,17,1 8
RISC 8 bits
MPLAB
dsPIC
RISC 16 bits
MPLAB
COP8xxx
CISC 8 bits
Webench
CR16Cxxx
CISC 16 bits
-
CP3000
RISC 16 bits
-
P8xxx
CISC 8 bits 8051
-
Xaxxx
CISC 16 bits
-
LPC2xxx
RISC 32 bits ARM7
-
Rabbit2000
CISC 8 bits
-
Rabbit3000
CISC 8 bits
-
740
CISC 8 bits
-
H8
CISC 16 bits
HEW
H8S
CISC 16 bits
HEW
M16C
CISC 16 bits
-
7700
CISC 16 bits
-
H8SX
CISC 32 bits
-
Super H
CISC 32 bits
HEW
27
ST (SGS-THOMSON) www.stm.com
Texas Instruments www.ti.com
Toshiba chips.toshiba.com
Ubicom (Scenix) www.ubicom.com
Zilog www.zilog.com
ST5
CISC 8 bits
Visual FIVE
ST6
CISC 8 bits
-
ST7
CISC 8 bits
STVD 7
ST9
CISC 8 bits
STVD 9
ST9
CISC 16 bits
STVD 9
ST10
CISC 16 bits
-
ARM7
RISC 32 bits ARM7
-
MSC12xxx
CISC 8 bits 8051
-
MSP430
CISC 16 bits
Eclipse
TMS470
RISC 32 bits ARM7
-
870
CISC 8 bits
-
900/900H
CISC 16 bits
-
900/900H
CISC 32 bits
-
SXxx
RISC 8 bits
-
Z8xxx
CISC 8 bits Z80
-
Z8Encore!
CISC 8 bits Z80
-
eZ80Aclaim
CISC 8 bits Z80
-
28
1.5 Componentes del mic rocon trolador
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 límites prefijados, genera las señales adecuadas. Que accionan los efectores que intentan llevar el valor de la temperatura dentro del rango estipulado. Aunque el concepto de controlador ha permanecido invariable a través del tiempo, su implementación física ha variado frecuentemente. Hace tres décadas, los controladores se construían exclusivamente con componentes de lógica discreta. Posteriormente se emplearon los microprocesadores, que se rodeaban con CI de memoria y E/S sobre una tarjeta de circuito impreso. En la actualidad, todos los elementos del controlador se han podido incluir en un CI, el cual recibe el nombre de microcontrolador. Realmente consiste en un sencillo pero completo computador contenido en un circuito integrado. Un microcontrolador dispone normalmente de los siguientes componentes: • CPU • Memoria RAM para Contener los datos. • Memoria para el programa tipo ROM/PROM/EPROM. • Líneas de E/S para comunicarse con el exterior. • Diversos módulos para el control de periféricos (temporizadores,
Puertos Serie y Paralelo, CAD y CDA, etc.). • TIMER que sincroniza el funcionamiento de todo el sistema.
29
1.5.1 Registr os internos
La computadora que diseñaremos requiere una serie de registros de 8 y 16 bits que tanto el usuario como el CPU pueden utilizar. Los registros de 8 bits, denominados acumuladores, sirven únicamente como dispositivos de almacenamiento. Los registros de 16 bits, denominados registros contadores, tienen mayor funcionalidad, pues además de servir como dispositivos de almacenamiento, permiten incrementar o decrementar el dato guardado. Registros acumuladores Los registros acumuladores de 8 bits están conectados directamente a las entradas de la UPA, de esta manera se pueden efectuar operaciones lógico aritméticas en forma directa. La figura 5.4 muestra el diagrama de bloques del acumulador. Como puede observar, el acumulador está formado por un registro “latch” y por tres “transeivers”.
Los transeivers tienen la función de aislar o conectar el latch a los diferentes buses de datos del acumulador (A, B y C).
30
Figura 5.4. Diagrama de bloques del acumulador.
Las líneas de control E1 y E0 permiten seleccionar alguno de los buses de entrada conectados al acumulador. La tabla 5.2 muestra la relación existente entre estas líneas y el bus que seleccionan.
E1 0
E0 0
Bus Seleccionado Ninguno
0
1
A
1
0
B
1
1
C
Tabla 5.2. Relación entre las señales de control E1:E0 y los buses que seleccionan.
La línea w habilita la carga de datos en el acumulador, de manera que si presenta
31
un nivel lógico bajo (0), escribirá el dato del bus seleccionado en el latch. Si por el contrario, presenta un nivel lógico alto (1), entonces el registro latch estará habilitado sólo para lectura. También existen dos señales de salida: la bandera de cero (Z) y la bandera de negativo (N). La bandera Z vale uno si el dato en el acumulador es cero, y vale cero en caso contrario. La bandera N refleja el signo del número guardado, dicho signo está dado por el bit más significativo del acumulador.
La siguiente figura muestra una configuración de la UPA con los registros acumuladores para efectuar la multiplicación de dos números. Tenga en cuenta que el algoritmo de debe estar implementado en la máquina de estados. La línea w habilita la carga de datos en el acumulador, de manera que si presenta un nivel lógico bajo (0), escribirá el dato del bus seleccionado en el latch. Si por el contrario, presenta un nivel lógico alto (1), entonces el registro latch estará habilitado sólo para lectura. También existen dos señales de salida: la bandera de cero (Z) y la bandera de negativo (N). La bandera Z vale uno si el dato en el acumulador es cero, y vale cero en caso contrario. La bandera N refleja el signo del número guardado, dicho signo está dado por el bit más significativo del acumulador.
32
Algoritmo de la multiplicación La siguiente figura muestra una configuración de la UPA con los registros acumuladores para efectuar la multiplicación de dos números. Tenga en cuenta que el algoritmo de multiplicación debe estar implementado en la máquina de estados.
Figura 5.6. Acumuladores A y B conectados a la UPA para efectuar la multiplicación de dos números.
33
Usando como base este diseño se pueden efectuar multiplicaciones. El siguiente ejemplo ilustra la multiplicación de 2 valores de 8 bits cada uno.
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
X
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
Básicamente, esta multiplicación se puede hacer con sumas y corrimientos. El siguiente algoritmo muestra cómo hacer la multiplicación. B = Multiplicando A = Multiplicador Q = A A=0 FOR j = 0:7 IF (Q0 = 1) THEN A = A + B Q = Corrimiento a la derecha de Q un bit, con Q7 = A0 A = Corrimiento a la derecha de A un bit. Si Q0 = 1 entonces A7 = Acarreo de A+B, si no A7 = 0 END FOR B=Q Finalmente, el resultado de AxB queda en los acumuladores A (parte más significativa) y B (parte menos significativa). La siguiente tabla muestra los cálculos efectuados por la UPA para obtener el resultado de AxB.
34
Registro B 0000 0111 0000 0111 0000 0111
Registro A 0000 0101 0000 0000 0000 0111
Registro Q
Acciones
XXXXXXX X
-----------
0000 0101 0000 0101
Q←A, A←0
0000 0111
0000 0011
1000 0010
0000 0111
0000 0011
1000 0010
0000 0111
0000 0001
1100 0001
0000 0111 0000 0111 0000 0111 0000 0111 0000 0111 0000 0111 0000 0111 0000 0111 0000 0111 0000 0111 0000 0111 0000 0111 0010 0011
0000 1000 0000 0100 0000 0100 0000 0010 0000 0010 0000 0001 0000 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
1100 0001 0110 0000 0110 0000 0011 0000 0011 0000 0001 1000 0001 1000 1000 1100 1000 1100 0100 0110 0100 0110 0010 0011 0010 0011
Como Qo=1 entonces A←A+B Corrimiento de A y Q a la derecha con Q7=Ao y A7=Acarreo de A+B Como Qo=0 no hace nada Corrimiento de A y Q a la derecha con Q7=Ao y A7=0 Como Qo=1 entonces A←B+A Corrimiento de A y Q a la derecha Como Qo=0 no se hace nada Corrimiento de A y Q a la derecha Como Qo=0 no se hace nada Corrimiento de A y Q a la derecha Como Qo=0 no se hace nada Corrimiento de A y Q a la derecha Como Qo=0 no se hace nada Corrimiento de A y Q a la derecha Como Qo=0 no se hace nada Corrimiento de A y Q a la derecha B←Q X - Significa “no importa”
Tabla 5.3. Operaciones para efectuar la multiplicación de A por B.
35
La figura 5.7 muestra la carta ASM que ejecuta la multiplicación de dos operandos de 8 bits. Observe como las salidas de la carta ASM son las que controlan las funciones de la UPA.
Figura 5.7. Carta ASM para la multiplicación de dos operandos de 8 bits.
36
Registro contador de 16 bits La figura 5.8a muestra un registro contador de 16 bits, y tres transeivers que lo aíslan o lo conectan a los buses de la arquitectura.
Figura 5.8a. Diagrama de bloques de un registro contador de 16 bits.
Figura 5.8b. Registro contador de 16 bits.
37
La tabla 5.4 muestra la relación entre las líneas de control C2, C1 y C0, y las operaciones que realiza el contador. Líneas de Control C2 C1 C0 0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
Función del Contador
Mantiene su valor (Lectura) Incrementa en 1 Decrementa en 1 Carga un valor en la Parte Baja (Escritura) Carga un valor en la Parte Alta (Escritura) Carga un valor de 16 bits (Escritura) Corrimiento a la Izquierda Corrimiento a la Derecha
Tabla 5.4. Operaciones del registro contador.
Finalmente, las señales E2 , E1 y E0 permiten seleccionar los buses de entrada/salida en el registro. Por ejemplo, E2 selecciona el bus E, E1 selecciona el bus C y E0 selecciona el bus D.
38
1.5.2 Tipos y dis tribuc ión de las memorias internas Tipos de Memorias
Hay dos arquitecturas conocidas; la clásica de von Neumann, y la arquitectura Harvard. Arquitectura Von Neumann Dispone de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a través de un sistema de buses único (direcciones, datos y control). Arquitectura Harvard Dispone de dos memorias independientes, una que contiene sólo instrucciones, y otra que contiene sólo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultáneamente en ambas memorias, ésta es la estructura para los PIC's
39
El procesador o UCP Es el elemento más importante del microcontrolador. Se encarga de direccionar la memoria de instrucciones, recibir el código OP de la instrucción en curso, decodificarlo y ejecutarlo, también realiza la búsqueda de los operandos y almacena el resultado
Estructura genérica de un microcontrolador
40
1.5.3 Periféricos Ese nombre indica las distintas tareas que el microcontrolador puede realizar con
ese pin dentro del circuito electrónico. Algunos pines se pueden usar para leer un valor analógico, otros para generar una señal PWM, para establecer una comunicación mediante un protocolo serie, etc.. Es decir el nombre del pin indica a que parte del hardware del microcontrolador se puede conectar dicho pin. En la hoja de características del microcontrolador podemos ver los distintos módulos hardware (periféricos) que lo componen:
Cada cuadrado de la imagen anterior lo podemos ver como un circuito electrónico que está dentro del microcontrolador y capaz de realizar una función determinada. Los módulos se comunican con la CPU del microcontrolador, donde se ejecutan las instrucciones del programa, y con el mundo exterior mediante los pines de entrada 41
y salida. En el programa que hacemos para el microcontrolador se configura el funcionamiento de los distintos módulos, así como qué módulo va conectado a cada pin del microcontrolador. Para saber cómo se configuran y se usan los distintos módulos (periféricos) del microcontrolador tenemos que mirar cómo se estructura su memoria. El microcontrolador tiene 3 tipos de memorias: la memoria de programa FLASH, la memoria de datos SRAM, y la memoria de datos EEPROM.
42
1.5.4 Instruccio nes del mi crocon trolador. Juego de instrucciones
El juego de instrucciones para los microcontroladores 16F8XX incluye 35 instrucciones en total. La razón para un número tan reducido de instrucciones yace en la arquitectura RISC. Esto quiere decir que las instrucciones son bien optimizadas desde el aspecto de la velocidad operativa, la sencillez de la arquitectura y la compacidad del código. Lo malo de la arquitectura RISC es que se espera del programador que haga frente a estas instrucciones. Por supuesto, esto es relevante sólo si se utiliza el lenguaje ensamblador para la programación. Este libro se refiere a la programación en el lenguaje de alto nivel C, lo que significa que la mayor parte del trabajo ya fue hecho por alguien más. Así, sólo se tienen que utilizar instrucciones relativamente simples. Tiempo de ejecución de instrucciones Todas las instrucciones se ejecutan en un ciclo. La únicas excepciones pueden ser las instrucciones de ramificación condicional o las instrucciones que cambian el contenido del contador de programa. En ambos casos, dos ciclos de reloj son necesarios para la ejecución de la instrucción, mientras que el segundo ciclo se ejecuta como un NOP (No operation). Las instrucciones de un ciclo consisten en cuatro ciclos de reloj. Si se utiliza un oscilador de 4 MHz, el tiempo nominal para la ejecución de la instrucción es 1 μS. En cuanto a las instrucciones de ramificación, el tiempo de ejecución de la instrucción es 2 μS. Juego de instrucciones de los microcontroladores PIC de 14 bits: INSTRUCCIÓN
DESCRIPCIÓN
OPERACIÓN
BANDERA
CLK
*
Instrucci ones para la transmisión de datos MOVLW k
Mover literal a W
k -> w
1
MOVWF f
Mover el contenido de Waf
W -> f
1
MOVF f,d
Mover el contenido de fad
f -> d
Z
1
CLRW
Borrar el contenido de W
0 -> W
Z
1
43
1, 2
CLRF f
Borrar el contenido de f
0 -> f
SWAPF f,d
Intercambiar de nibbles en f
f(7:4),(3:0) -> f(3:0),(7:4)
Z
1
2
1
1, 2
Instrucciones aritmético – lógicas ADDLW k
Sumar literal a W
W+k -> W
C, DC, Z
1
ADDWF f,d
Sumar el contenido de W y f
W+f -> d
C, DC ,Z
1
SUBLW k
Restar W de literal
k-W -> W
C, DC, Z
1
SUBWF f,d
Restar W de f
f-W -> d
C, DC, Z
1
ANDLW k
AND W con literal
W AND k -> W
Z
1
ANDWF f,d
AND W con f
W AND f -> d
Z
1
IORLW k
OR inclusivo de W con literal
W OR k -> W
Z
1
IORWF f,d
OR inclusivo de W con f
W OR f -> d
Z
1
1, 2
XORWF f,d
OR exclusivo de W con literal
W XOR k -> W
Z
1
1, 2
XORLW k
OR exclusivo de W con f
W XOR f -> d
Z
1
INCF f,d
Sumar 1 a f
f+1 -> f
Z
1
1, 2
DECF f,d
Restar 1 a f
f-1 -> f
Z
1
1, 2
RLF f,d
Rotar F a la izquierda a través del bit de Acarreo
C
1
1, 2
RRF f,d
Rotar F a la derecha a través del bit de Acarreo
C
1
1, 2
COMF f,d
Complementar f
Z
1
1, 2
f -> d
Instrucci ones orientadas a bit
44
1, 2
1, 2
1, 2
BCF f,b
Poner a 0 el bit b del registro f
0 -> f(b)
1
1, 2
BSF f,b
Poner a 1 el bit b del registro f
1 -> f(b)
1
1, 2
Instrucci ones de control d e programa BTFSC f,b
Saltar si bit b de registro f es 0
Skip if f(b) = 0
1 (2)
3
BTFSS f,b
Saltar si bit b de reg. f es 1
Skip if f(b) = 1
1 (2)
3
DECFSZ f,d
Disminuir f en 1. Saltar si el resultado es 0
f-1 -> d skip if Z=1
1 (2)
1, 2, 3
INCFSZ f,d
Incrementar f en 1. Saltar si el resultado es 1
f+1 -> d skip if Z=0
1 (2)
1, 2, 3
GOTO k
Saltar a una dirección
k -> PC
2
CALL k
Llamar a una subrutina
PC -> TOS, k > PC
2
RETURN
Retornar de una subrutina
TOS -> PC
2
RETLW k
Retornar con literal en W
k -> W, TOS > PC
2
RETFIE
Retornar de una interupción
TOS -> PC, 1 -> GIE
2
1
Otras instrucciones NOP
No operación
TOS -> PC, 1 -> GIE
CLRWDT
Reiniciar el temporizador perro guardián
0 -> WDT, 1 -> TO, 1 -> PD
TO, PD
1
SLEEP
Poner en estado de reposo
0 -> WDT, 1 -> TO, 0 -> PD
TO, PD
1
45
1 Si un registro de E/S está modificado, el valor utilizado será el valor presentado en los pines del microcontrolador. 2 Si la instrucción se ejecuta en el registro TMR y si d=1, el pre-escalador será borrado. 3 Si la instrucción se ejecuta en el registro TMR y si d=1, el pre-escalador será borrado.
1.5.5 Distribució n de terminales .
Terminales del microcontrolador y sus respectivas funciones: Ésta sería la disposición de sus terminales y sus respectivos nombres.
Encapsulado DIP - PIC16C84/F84
Patas 1, 2, 3, 17 y 18 (RA0-RA4/TOCKI): Es el PORT A. Corresponden a 5 líneas bidireccionales de E/S (definidas por programación). Es capaz de entregar niveles TTL cuando la alimentación aplicada en VDD es de 5V ± 5%. El pin RA4/TOCKI como entrada puede programarse en funcionamiento normal o como entrada del contador/temporizador TMR0. Cuando este pin se programa como entrada digital, funciona como un disparador de Schmitt (Schmitt trigger), puede reconocer señales un poco distorsionadas y llevarlas a niveles lógicos (cero y cinco voltios). Cuando se usa como salida digital se comporta como colector abierto; por lo tanto se debe poner una resistencia de pull-Up (resistencia externa conectada a un nivel de cinco voltios, ...no te preocupes, más abajo lo entenderás mejor). Como salida, la lógica es inversa: un "0" escrito al pin del puerto entrega a la salida un "1" lógico. Este pin como salida no puede manejar cargas como fuente, sólo en el modo sumidero. 46
Pata 4 (MCLR / Vpp): Es una pata de múltiples aplicaciones, es la entrada de Reset (master clear) si está a nivel bajo y también es la habilitación de la tensión de programación cuando se está programando el dispositivo. Cuando su tensión es la de
VDD
el
PIC
funciona
normalmente.
Patas 5 y 14 (VSS y VDD): Son respectivamente las patas de masa y alimentación. La tensión de alimentación de un PIC está comprendida entre 2V y 6V aunque se recomienda
no
sobrepasar
los
5.5V.
Patas 6, 7, 8, 9, 10, 11, 12, 13 (RB0-RB7): Es el PORT B. Corresponden a ocho líneas bidireccionales de E/S (definidas por programación). Pueden manejar niveles TTL cuando la tensión de alimentación aplicada en VDD es de 5V ± 5%. RB0 puede programarse además como entrada de interrupciones externas INT. Los pines RB4 a RB7 pueden programarse para responder a interrupciones por cambio de estado. Las patas RB6 y RB7 se corresponden con las líneas de entrada de reloj y entrada de datos respectivamente, cuando está en modo programación del integrado. Patas 15 y 16 (OSC1/CLKIN y OSC2/CLKOUT): Corresponden a los pines de la entrada externa de reloj y salida de oscilador a cristal respectivamente.
47
1.5.6 El reset y sus posibles fuentes.
El Reset es una acción con la cual se “inicia” el trabajo de los microprocesadores y microcontroladores. Esta acción se ejecuta cuando se aplica una señal denominada reset- aun terminal, designado también como reset.
Reset de un Pic
En un microprocesador, la señal de reset se genera manualmente al pulsar un botón(reset manual) o cuando se pone en marcha el sistema(reset por encendido) En un microcontrolador hay otras posibles fuentes de reset como son el reset por fallo de alimentación(power-glitch reset, brown-out reset) y el rest por desbordamiento del perro guardián. El reset por desbordamiento del perro guardián se produce cuando la tensión de alimentación cae momentáneamente por debajo de un cierto valor umbral, de modo que C se descarga parcialmente y se alcanza y se alcanza la condición Vreset < Vumbral. El Reset por desbordamiento del perro guardián se produce cuando por alguna razón no se ha refrescado(borrado) a tiempo el perro guardián. Generalmente ello significa que el microcontrolador se ha “perdido” en la ejecución del programa, es
decir, se ha salido de la secuencia correcta. es muy importante que el microcontrolador efectúe una acción de reset cuando se poducen falos de este tipo. Ello garantiza que en situaciones como éstas, en las que el
microcontrolador
perdería
secuencia correcta de instrucciones del
inexorablemente
programa,
no
salte
la a
una dirección aleatoria sino que vaya a una dirección determinada( la del valor de reset) donde se pueden efectuar acciones que contrarresten el fallo que ha 48
producido
El Perro Guardian
Wathdog Timer o perro guardián Es un recurso disponible en muchos microcontroladores. Consta de un oscilador binario de N bits. El oscilador puede ser el oscilador principal del microcontrolador, aunque se prefiere un oscilador independiente. La salida de la última etapa del contador va conectada al circuito de reset del microcontrolador. El conteo no se puede detener de ninguna forma, pero el contador se puede borrar, es decir poner a 0, desde el programa. El funcionamiento del perro guardián es como sigue. El oscilador envía sus pulsos periódica y y permanentemente a la entrada de reloj del contador. Si el contador llega a contar los N pulsos, se desborda, su salida se activa y produce el reset del microcontrolador. El objetivo del programador es evitar el desbordamiento del wathdog. Dado que una vez iniciado el conteo, el perro guardián no se puede detener, la única manera es llevar el contador a 0, para evitar el desbordamiento y hacerlo a intervalos de tiempo más cortos que el tiempo que se tarda en contar los N pulsos. Para hacerlo el programador debe distribuir a lo largo del programa las instrucciones que borran el perro guardián. 49
Si el programa se ejecuta correctamente, el perro guardián nunca se desbordaría pués antes de hacerlo ha sidi borrado del programa. En cambio, el microcontrolador se pierde y el programa deja de ser ejecutado en la secuencia correcta, el perro guardián no es borrado a tiempo, se desborda y produce el reset del microcontrolador, con lo que es posible retomar el control y reconducir el programa por el camino correcto. Temporizador Watchdog API Llamadas al sistema Sistema de llamada wdt_alloc ()
Propósito Devuelve un identificador válido que identifica el temporizador de vigilancia asignado wdt_realloc () Reasigna el temporizador de vigilancia, que fue devuelto por la última llamada a wdt_alloc () . Esto permite que un nuevo actor crea en un altamente disponible (HA) entorno a asumir la gestión de vigilancia para un actor que ha muerto. Si el temporizador de vigilancia está armado, también se volverá a cargar en la presente convocatoria. Desarma y libera el temporizador de vigilancia wdt_free () wdt_get_maxinterval Devuelve el intervalo de tiempo de espera máximo que se puede establecer para el temporizador () wdt_set_interval () Establece el intervalo de tiempo de espera para el temporizador de vigilancia. Si ambos componentes de intervalo son cero, el temporizador está desarmado. wdt_get_interval () Devuelve el conjunto de tiempo de espera actual para el intervalo de temporizador de vigilancia wdt_arm () Inicia un nuevo intervalo de tiempo de espera, la duración del cual será fijado por wdt_set_interval () wdt_disarm () Desarma el temporizador de vigilancia Devuelve el estado del temporizador de vigilancia. Un valor wdt_is_armed () positivo se devuelve si el temporizador está activado. Vuelve a cargar el temporizador de vigilancia. El temporizador se wdt_pat () inicia un nuevo intervalo de tiempo de espera, la duración de los cuales se establece por wdt_set_interval () . wdt_startup_commit Indica si el temporizador de vigilancia de la secuencia de arranque () se ha completado con éxito. La conclusión con éxito indica que el sistema ya no necesita ser reiniciado si el dispositivo de modo watchdog restablecimiento armados por el marco arranque expire. Debido a que el dispositivo de modo watchdog reset no debe ser desarmado, el sistema continuará para recargar el dispositivo de modo de reinicio en silencio hasta que se apague o hasta que el temporizador de vigilancia está destinado de forma explícita y armados por el marco HA (u otra aplicación).
50
Sistema de llamada wdt_shutdown ()
Propósito Indica si el sistema se está cerrando. Durante el apagado, el dispositivo de modo watchdog reset no debe volver a cargar por más que el intervalo de tiempo de espera configurado. Esto asegurará que el sistema se restablece, incluso si la secuencia de apagado no se completa dentro del período de tiempo de espera. La presente convocatoria se producirá un error si se invoca cuando el dispositivo de vigilancia está armado.
Componente de un Microcontrolador
Componentes de un microcontrolador
Un microcontrolador combina los recursos fundamentales disponibles en un microcomputador, es decir, la unidad central de procesamiento CPU), la memoria y los recursos de entrada y salida, en un único circuito integrado. La fig que vemos a continuación muestra el diagrama en bloque interno de un micro controlador. Los Micro controladores disponen de un oscilador que genera los pulsos que sincronizan todas las operaciones internas. El oscilador puede ser del tipo RC, aunque generalmente se prefiere que esté controlado por un cristal de cuarzo (XTAL) debido a su gran estabilidad de frecuencia. La velocidad de ejecución de las instrucciones del programa está en relación directa con la frecuencia del oscilador del micro controlador. La MAR :es el registro de direcciones de memoria (memory adress register). MBR: Este registro es el buffer de datos de la memoria (memory buffer register). 51
ROP: Este registro contiene el código de operación de la ALU Al igual que un microcomputador, la CPU es el “cerebro” del micro controlador Esta unidad trae las instrucciones del programa , una a una, desde la memoria donde están almacenadas, las interpreta (descodifica) y hace que se ejecuten. En la CPU se incluyen los circuitos ALU para realizar operaciones aritméticas y lógicas elementales con los datos binarios La CPU de un micro controlador dispone de diferentes registros algunos de propósito general y otros para propósitos específicos. Entre estos últimos están el registro de Instrucción, el Acumulador, el registro de estado, el contador de Programa, el registro de Direcciones de datos y el Puntero de la Pila. El Registro de Instrucción (RI) almacena la instrucción que está siendo ejecutada por la CPU. El RI es invisible para el programador. El Acumulador (ACC: Accumulator), es el registro asociado a al operaciones aritméticas y lógicas que se pueden realizar en la ALU. En cualquier operación, uno de los adatos debe estar en el ACC y el resultado se obtiene en ACC. El ACC no existe en los microcontroladores PIc que tienen en cambio en el registro W (Working Register), con características muy parecidas a las del ACC. El Registro de estado (STATUS) agrupa los bits indicadores de las características del resultado de las operaciones aritméticas y lógicas realizadas en la ALU. Entre los indicadores están el signo el resultado ( si es + o -) si el resultado es 0, si hay acarreos o préstamos, el tipo de paridad (par o Impar) del resultado, etc. El contador de Programa (PC. Program Counter) es el registro de la CPU donde se almacenan direcciones de instrucciones. cada vez que la CPU busca una instrucción en la memoria, el PC se incrementa, apuntando así a la siguiente instrucción. En un instante de tiempo dado, el PC contiene la dirección de las instrucción que será ejecutada a continuación. Las instrucciones de transferencia de control modifican el valor del PC. El registro de Direcciones de Datos (RDD) almacenan direcciones de datos situados en la memoria. este registro de datos (RDD) amacena direcciones de datos situados en la memoria. este registro es indispensable para el direccionamiento indirecto de datos en al memoria. El RDD toma diferentes nombres según el micro 52
controlador . En los PIC, el RDD es el registro FSR (File Select Register). El Puntero de la Pila(SP: Stack Pointer) es el registro que almacena direcciones de datos en la pila. Los micro controladores PIC carecen de registro SP. La memoria del Micro controlador es el lugar donde son almacenadas las instrucciones del programa y los datos que manipula. En un micro controlador hay 2 tipos de memoria. la memoria RAM( Randon Acces Memory) y la ROM( Random Only Memory). Tanto la memoria RAM como la memoria ROM son de acceso aleatorio, pero la costumbre ha de dejado el nombre RAM para las memorias de lectura y escritura. El término”acceso aleatorio” se refiere a que el tiempo necesario para localizar un
dato no depende del lugar de la memoria donde esté almacenado. En las memorias de acceso secuencial, en cambio, cuando más alejado esté un dato de la posición a la que se ha accedido por última vez, más se tarda en localizar. La cantidad de memoria ROM disponible es normalmente muy superior a la cantidad de memoria RAM. sto se debe a dos razones: la 1era es que la gran mayoría de las aplicaciones requieren programas que manejen pocos datos;la 2da razón es que la memoria RAM ocupa mucho más espacio en el circuito integrado que la memoria ROM, de modo que es mucho más costosa que ésta. La entrada y la salida es particularme importante en los microcontroladores, pues a través de ella el microcontrolador interacciona con el exterior.
53
1.6 Características de la fuente de alimentación y cons umo de potencia del microcontrolador. 1.7 Ambiente in tegrado d e desarroll o (IDE) Un entorno de desarrollo integrado o IDE (acrónimo en ingles de integrated
development environment), es un programa informático compuesto por un conjunto de herramientas de programación. Puede dedicarse en exclusiva a un solo lenguaje de programación o bien, poder utilizarse para varios. Un IDE es un entorno de programación que ha sido empaquetado como un programa de aplicación, es decir, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica (GUI). Los IDE proveen un marco de trabajo amigable para la mayoría de los lenguajes de programación tales como C++, PHP, Python, Java, C#, Delphi, Visual Basic, etc. En algunos lenguajes, un IDE puede funcionar como un sistema en tiempo de ejecución, en donde se permite utilizar el lenguaje de programación en forma interactiva, sin necesidad de trabajo orientado a archivos de texto. Algunos ejemplos de entornos integrados de desarrollo (IDE) son los siguientes: Eclipse
•
NetBeans
•
•
IntelliJ IDEA
•
JBuilder de Borland
•
JDeveloper de Oracle
KDevelop
•
Anjunta
•
Clarion
•
•
MS Visual Studio
•
Visual C++
54
1.7.1 Ensamblador y compilador.
Ensamblador Ensamblador se refiere a un tipo de programa, informático que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene código máquina ejecutable directamente por la máquina para la que se ha generado. La tarea fundamental de un ensamblador es traducir un programa en lenguaje de ensamblador al código correspondiente en lenguaje de máquina. Tipos De Ensambladores Ensambladores cruzados: Se denominan así a los ensambladores que se utilizan en una computadora que posee el procesador diferente al que tendrán las computadoras donde se va a ejecutar el programa objeto producido. Ensambladores residentes: Son aquellas que permanecen en la memoria principal de la computadora y cargar para su ejecución al programa objeto producido. Micro ensambladores: Al programa que indica al intérprete de instrucciones de la CPU como debe actuar se le denomina microprograma. El programa que ayuda a realizar este microprograma se llama micro ensamblador. Macro
ensambladores:
Son
ensambladores
que
permiten
el
uso
de
macroinstrucciones. Ensambladores de una fase: leen una línea y la traducen directamente para producir una instrucción de lenguaje maquina o la ejecuta si se trata de una pseudosinstrucción. Se construye la tabla de símbolos a medida que aparecen las definiciones de variables, etiquetas, etc. Ensambladores de dos fases: Realiza la traducción en dos etapas: 1° fase leen el programa fuente y construyen la tabla de símbolos, 2° fase vuelve a leer el programa fuente y pueden ir traduciendo totalmente pues reconocen la totalidad de los símbolos. Compilador Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un 55
programa equivalente que la maquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser simplemente texto. Este proceso de traducción se conoce como compilación. Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de maquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a cómo piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora. Fases del compilador
Clasificación De Compiladores De una pasada: Examina el código fuente una vez, generando el código o programa objeto. Pasadas múltiples: Requiere pasos intermedios para producir código en otro lenguaje y una pasada final para producir y optimizar el código producido durante pasos anteriores. Compiladores incrementales: Generan un código objeto, instrucción por instrucción cuando el usuario teclea cada orden individual. Compilador cruzado: Se genera código en lenguaje objeto para una maquina diferente a la que se está utilizando para compilar. Compilador con montador: Compila distintos módulos de forma independiente y después es capaz de aplazarlos. 56
1.7.2 Simulador, debugger y emu lador. Simulador
Programa que reproduce por software el comportamiento del microcontrolador en la ejecución de un programa. Tipos de simuladores y definición •
MPSIM ------ Es un simulador de Microchip para los PIC.
•
SIMUPIC 84´ ------ Es un simulador de Microsystems Engineering, sólo útil para los PIC16X84.
•
MPLAB ------- Simula programas en ensamblador.
Debugger Un depurador (en inglés, debugger), es un programa que permite depurar o limpiar los errores de otro programa informático. Al iniciarse la depuración, el depurador lanza el programa a depurar. Este se ejecuta normalmente hasta que el depurador detiene su ejecución, permitiendo al usuario examinar la situación. El depurador permite detener el programa en: •
Un punto determinado mediante un punto de ruptura.
•
Un punto determinado bajo ciertas condiciones mediante un punto de ruptura condicional.
•
Un momento determinado cuando se cumplan ciertas condiciones.
•
Un momento determinado a petición del usuario.
Emulador Un emulador es un programa capaz de actuar de intérprete en la máquina destino para que un software originalmente escrito para otra plataforma pueda ser ejecutado en ella.
57
El emulador traduce el código de la máquina original al código de la de destino , por lo que nuestra computadora ni siquiera sabe que está comportándose como otra plataforma (otro sistema operativo diferente al que ejecuta por defecto), y tan solo ejecuta el programa siguiendo su propio juego de instrucciones pero adaptado desde la plataforma original. Para poder ejecutarse, los desarrolladores de este tipo de aplicaciones se documentan sobre la arquitectura interna de las máquinas a emular (procesador, juego de instrucciones, tipo y cantidad de registros y de memoria, direccionamientos, etc.) e implementan un comportamiento idéntico al de las mismas, gracias a la traducción de cada una de las operaciones al código de la máquina destino. Gracias a la potencia de las computadoras actuales, el proceso de traducción, que en otro caso conllevaría un tiempo elevado, se realiza en un instante, lo que permite dar la impresión de estar ejecutando el juego o la aplicación como si del original se tratase, aunque en algunos casos las velocidades pueden ser tanto mayores como menores de las observadas en la plataforma nativa.
58
1.7.3 Equipos programadores (downloaders).
Un programador es una herramienta hardware que traduce información de un determinado lenguaje (hex, ASCII,?) en información que pueda interpretar el microcontrolador para el funcionamiento correcto de la placa que utilicemos. Características generales •
Pueden programar distintos tipos de memorias y microcontroladores
•
Conexión serie o paralela según modelos
•
Fácilmente actualizables
•
Permiten testear circuitos integrados
Programador Universal SCM MP−UNIV
Programador universal expansible por software •
Soporta una amplia familia de dispositivos programables
•
Función de testeo de circuitos integrados digitales
•
Convertible en un emulador de ROM mediante un opcional soportando memorias de hasta 4Mb
Advantech Lab TOOL −48 •
Programador universal con zócalo ZIF de 48 pines DIP
•
Conectado a PC por puerto paralelo
•
Software para Windows 95/98/2000/NT
•
Fácilmente actualizable mediante Internet
•
Gran rapidez de programación (utilizando memoria flash de 8Mb) •
La programación se inicia al insertar el componente en el zócalo •
No necesita adaptadores para componentes en DIP
Programador De Memoria Y Microcontroladores
59
•
Es capaz de programar diferentes tipos de memorias como EPROM, Flash... y microcontroladores como 8051y sus derivaciones
•
Soporta archivos en formato hexadecimal, binario,etc
•
Programa dispositivos con encapsulados DIP, QFP, LCC y PLCC
•
Incluye conversores de formato
•
Software para Dos y Windows
1.8 Herramientas de desarrollo. Uno de los factores que más importancia tiene a la hora de seleccionar un
microcontrolador entre todos los demás es el soporte tanto software como hardware de que dispone. Un buen conjunto de herramientas de desarrollo puede ser decisivo en la elección, ya que pueden suponer una ayuda inestimable en el desarrollo del proyecto. Las principales herramientas de ayuda al desarrollo de sistemas basados en microcontroladores son: Desarrollo del software: Ensamblador . La programación en lenguaje ensamblador puede resultar un tanto
ardua para el principiante, pero permite desarrollar programas muy eficientes, ya que otorga al programador el dominio absoluto del sistema. Los fabricantes suelen proporcionar el programa ensamblador de forma gratuita y en cualquier caso siempre se puede encontrar una versión gratuita para los microcontroladores más populares. Compilador . La programación en un lenguaje de alto nivel (como el C) permite
disminuir el tiempo de desarrollo de un producto. No obstante, si no se programa
60
con cuidado, el código resultante puede ser mucho más ineficiente que el programado en ensamblador. Las versiones más potentes suelen ser muy caras, aunque para los microcontroladores más populares pueden encontrarse versiones demo limitadas e incluso compiladores gratuitos. Depuración : debido a que los microcontroladores van a controlar dispositivos
físicos, los desarrolladores necesitan herramientas que les permitan comprobar el buen funcionamiento del microcontrolador cuando es conectado al resto de circuitos. Simulador . Son capaces de ejecutar en un PC programas realizados para el
microcontrolador. Los simuladores permiten tener un control absoluto sobre la ejecución de un programa, siendo ideales para la depuración de los mismos. Su gran inconveniente es que es difícil simular la entrada y salida de datos del microcontrolador. Tampoco cuentan con los posibles ruidos en las entradas, pero, al menos, permiten el 20 paso físico de la implementación de un modo más seguro y menos costoso, puesto que ahorraremos en grabaciones de chips para la prueba in-situ. Placas de evaluación . Se trata de pequeños sistemas con un microcontrolador ya
montado y que suelen conectarse a un PC desde el que se cargan los programas que se ejecutan en el microcontrolador. Las placas suelen incluir visualizadores LCD, teclados, LEDs, fácil acceso a los pines de E/S, etc. El sistema operativo de la placa recibe el nombre de programa monitor. El programa monitor de algunas placas de evaluación, aparte de permitir cargar programas y datos en la memoria del microcontrolador, puede permitir en cualquier momento realizar ejecución paso a paso, monitorizar el estado del microcontrolador o modificar los valores almacenados los registros o en la memoria. Emuladores en circuito . Se trata de un instrumento que se coloca entre el PC
anfitrión y el zócalo de la tarjeta de circuito impreso donde se alojará el microcontrolador definitivo. El programa es ejecutado desde el PC, pero para la tarjeta de aplicación es como si lo hiciese el mismo microcontrolador que luego irá en el zócalo. Presenta en pantalla toda la información tal y como luego sucederá cuando se coloque la cápsula. 61