25 de febrero de 2010

Cuestionario Microcontroladores

Puedes descargar la teoría aquí

El objetivo es que lo respondas (en grupos de 5 personas) una vez haya quedado vista la sesión de teoría.
Descargar preguntas

Algunos ejemplos de especificaciones de micros que me habéis preguntado:

- Endurance: 2000 write/erase cycles at 85 degrees.
Hace referencia a la cantidad de veces que puede ser programado, es una magnitud que sirve para compararlo con otros micros. Es indicativo de la durabilidad del dispositivo.


- Tx output power up to 3,5dBm.
Indica la potencia de emisión para dispositivos que incluyen un transmisor de radio para comunicaciones inalámbricas. Se expresa en miliwatios o en dBm, unidades de medida utilizadas principalmente en telecomunicaciones, más información aquí.

- Active Reset from internal sources, ISP, Debug, SPI, PWM, MIPS, Cristal oscillator.


Soluciones:

1. Cita las diferencias entre sistemas basados en microcontrolador y en microprocesador.

Los sistemas basados en microprocesador necesitan placas externas para funcionar, tarjetas de adquisición de datos DAQ (como las vistas en las prácticas), memoria, sistemas gráficos, etc. Para su utilización se hace necesario la utilización de un S.O. (Linux, Windows, MacOS) sobre el que se instala la aplicación. Los sistemas basados en microprocesadores se utilizan en aplicaciones genéricas y en aquellos entornos en los que la potencia de cálculo es prioritaria.

Un ejemplo es el control y clasificación de piezas de fruta en un almacén con ayuda de videocámaras. En este caso hay una gran cantidad de información que debe ser procesada en tiempo real y requiere la utilización de CPU muy potentes, en estos casos es difícil que un microcontrolador pueda competir.

Por otra parte en los sistemas con microprocesador tenemos una gran facilidad en la visualización de la información (salida VGA) y podemos usar periféricos externos estándar. A favor del microprocesador podemos decir que es más flexible en cuanto al hardware (mucha oferta en el mercado) y al software a utilizar (diferentes compiladores).

En contra tenemos el espacio que ocupa un sistema basado en un microprocesador. Si el producto final debe ser comercializado y tener un tamaño reducido, no es una opción trabajar con un PC y debemos pensar en sistemas basados en microcontroladores.

El microcontrolador es un sistema empotrado que contiene todo lo necesario, dispone de la unidad de control, la CPU, el banco de registros, la memoria principal, el módulo de entrada/salida y el sistema de adquisición de datos (DAQ). Debido a su alta integración solemos encontrarlos en sistemas empotrados y de tamaño reducido, principalmente, siendo el bajo coste por unidad uno de los principales argumentos para su elección. Un sistema basado en un microcontrolador no depende del S.O.

Si el objetivo es un hardware que pueda venderse, que sea portable y barato (fabricando cientos o incluso miles de unidades), entonces estará justificado el uso de microcontroladores. Si lo que deseamos es controlar un proceso en una nave industrial, un PC con una tarjeta de adquisición de datos será suficiente. Hay que tener en cuenta que en este caso generalmente los clientes necesitarán una actualización del sistema en el tiempo, algo que no sucede con sistemas desarrollados con microcontrolador como puedes ser mp3, móviles u otros dispositivos que son sistemas cerrados.

Resumiendo podríamos decir que un microcontrolador se utiliza en aplicaciones específicas en las que la potencia de cálculo no es proiritaria y sí lo es el tamaño. Los sistemas basados en microprocesador se utilizan en aplicaciones en las que esté justificado el uso de un PC ya sea por razones de espacio o por costes, pero básicamente el producto final a obtener puede determinar la plataforma a utilizar.

2. Cita dispositivos de tu entorno que utilicen microcontroladores.

Mando a distancia de la televisión, nevera, Xbox, iPod, coche, microondas, reloj digital, coche, móvil, TV, osciloscopio, aparatos de cocina, aire acondicionado, cámaras digitales, lectores de tarjetas.

3. Busca dos fabricantes de microcontroladores y detalla las características de uno de sus micros que integre puertos USB o que pueda transmitir datos vía radiofrecuencia (RF).

Microchip tiene muchos modelos que incluyen interfaz USB. Un ejemplo puede ser el modelo PIC18F13K50.

Atmel por otro lado, también ofrece integrados con USB, otro ejemplo puede ser el modelo AT90USB1286.

4. Describe para los modelos anteriores elegidos, las características principales, velocidad, cantidad de memoria, número de puertos, dispositivos integrados, etc.

Modelo PIC18F13K50.Para empezar puedes ver que utiliza memoria tipo Flash, esto quiere decir que puede programarse muchas veces. Tiene 8KB de espacio para el programa y procesa instrucciones a 12MIPS. Cuenta con 512Bytes de memoria para datos y 256Bytes de EEPROM. Para comunicarse con otros dispositivos cuenta con interfaces USART, SPI e I2C (muy utilizado en sistemas domóticos). Cuenta con 4 temporizadores integrados, uno de 8bits y tres de 16bits. También tiene 9 canales para digitalizar señales analógicas con una resolución de 10bits, esto quiere decir que podríamos utilizar este micro para montar un sistema de alarma con hasta 9 sensores de presencia. Otro dato importante es la tensión de funcionamiento, que está en el rago de 1.8 a 5.5 voltios. Como puedes ver también dispone de interfaz USB. Para datos más específicos puedes consultar la hoja de características mirando en la web del fabricante.
Modelo AT90USB1286.Este micro también dispone de interfaz USB, 128KB de memoria para programa, 8KB para datos y 4KB de EEPROM. Si quisiéramos conectar sensores analógicos podríamos conectar hasta 8 sensores con 10 bits de resolución. Puede ejecutar instrucciones hasta 16MIPS. La tensión de funcionamiento es de 2.7 a 5.5 voltios. Para información detallada, puedes entrar en la web del fabricante y localizar la hoja de características.
5. Si alguna característica de estos microcontroladores es desconocida para ti, apúntala aquí. Detallamos aquellas que nos habéis preguntado (puedes enviar un email si tienes más dudas):
MIPS: Es una forma de medir la potencia de cálculo de un micro. Hace referencia a millones de instrucciones por segundo (Million Instructions Per Second). Puede servir de referencia a la hora de comparar micros pero no es del todo exacto porque depende de las instrucciones de cada micro y de la gestión que hace de la memoria, es decir, puede servir de referencia si tienen el mismo juego de instrucciones pero no será exacto para comparar micros diferentes.
Lee más en Wikipedia.
SPI: Es un estándar de transmisión de datos entre circuitos integrados de equipos electrónicos. Al usar un sistema serie, se reduce el número de pistas, los pines, el tamaño de los circuitos y por lo tanto el coste final. En estos sistemas la velocidad de transmisión no es importante. Si el micro incluye este protocolo, se facilita una rápida integración con otros dispositivos.
Lee más en Wikipedia.
USART: Transmitir la información por un único cable es mucho más efectivo en coste que hacerlo en paralelo utilizando más cables (comunicación serie frente a paralelo). Un dispositivo USART permite transmitir la información de manera secuencial (en serie) entre dispositivos. Por ejemplo cuando un micro tiene esta funcionalidad, transmitir datos desde el micro a un PC por el puerto serie es inmediato.
Lee más en Wikipedia
6. Describe las características del entorno de desarrollo MPLAB IDE de Microchip. ¿Para qué sirve?
Cuando se toma la decisión de utilizar un microcontrolador para un proyecto, necesitamos un software para escribir el código, depurarlo, compilarlo y finalmente grabarlo en el micro, ésta es la finalidad de un entorno de desarrollo (IDE). Los microcontroladores pueden programarse en diferentes lenguajes desde Basic, C, Pascal, ensamblador, etc. Puedes elegir diferentes entornos de desarrollo o compiladores. MPLAB es un IDE fabricado por Microchip y sólo funciona para los micros de esta empresa. También puedes utilizar otros compiladores que pueden programar cualquier microcontrolador (por ello éstos se denominan compiladores cruzados), por ejemplo KEIL es uno de ellos, que precisamente es el que utilizaremos en las prácticas del segundo cuatrimestre.
Página web de KEIL
Lee sobre KEIL en Wikipedia
Lee sobre MPLAB en Wikipedia
Información de MPLAB por Microchip
Tutorial detallado de MPLAB (fuente blog Micropic)
7. ¿Qué es la arquitectura Harvard?
Cuando una máquina tiene arquitectura Harvard, significa que físicamente los datos del programa y las instrucciones se almacenan en lugares diferentes. Por contra en máquinas con arquitectura Von Neumann se almacena juntos los datos y las instrucciones.
Lee sobre la arquitectura Harvard en Wikipedia
8. En un microcontrolador, ¿para qué sirve el registro Watchdog?
También se llama perro guardián. Prácticamente todos los microcontroladores disponen de este sistema. Es un temporizador que decrementa su valor y al llegar a cero hace que el micro se resetee. Si por cualquier motivo, el programa en ejecución falla o se bloquea, este contador hará que el micro se reinicie. Por supuesto en la programación del micro hay que tenerlo en cuenta para ir reiniciando este temporizador se manera periódica para evitar que llegue al valor de disparo. Esta funcionalidad puede deshabilitarse al programarlo, sólo hay que configurar el bit necesario en uno de sus registros.
Lee más en Wikipedia
9. ¿Qué es un ciclo de máquina?
Un ordenador básicamente sólo puede hacer un tarea a la vez. Cada tarea debe desmenuzarse en sus pasos más básicos. La secuencia de pasos desde que lee una instrucción y se ejecuta hasta que se lee la siguiente se llama Ciclo de Máquina. Este ciclo de máquina es igual a un determinado número de tics de reloj, diferente en función del microcontrolador.
Artículo sobre los ciclos de máquina y tiempos de ejecución
10. ¿Qué ventajas puede tener programar en Ensamblador? Cuando diseñas una aplicación para un microcontrolador ¿Es mejor programar en alto nivel o en Ensamblador?
Si va a ser una aplicación compleja, lo mejor es desarrollarla completamente en lenguaje de alto nivel ya que permitirá un mejor trabajo en equipo y una rápida depuración del código, no obstante, si es una aplicación sencilla, de unas pocas decenas de líneas, podría ser interesante, por eficiencia, escribirla en ensamblador.
Definiciones de microcontrolador en la web:
-Monografías.com- Wikipedia

No hay comentarios: