viernes, 14 de enero de 2011

Microcontroladores - parte II

Sigamos entonces con este proceso de aprender un poco acerca de los microcontroladores. En este artículo empezaremos a detallar las partes fundamentales de la mayoría de los microcontroladores que existen en el mercado.


Pero antes un pequeño inciso para mostrarles lo fácil que puede ser trabajar con estos micros. En el siguiente link podrán ver un video de un pequeño tutorial de como manejar un servo con un arduino.


En los micros tradicionales, hacer esto es relativamente complejo si lo hicieramos en el lenguaje nativo, es decir en assembler. En C y Basic tiende a ser más fácil y ya se consiguen librerías especializadas que permiten manejar los mismos a través de simples comandos. Pero verán en el video que con Arduino y una librería especializada son básicamente 5 comandos para controlar el servo a través de un potenciómetro... la utilidad... infinita realmente.

PROCESADOR

El procesador de los microcontroladores de la actualidad está basado principalmente en arquitecturas tipo Harvard(1) y microprocesadores tipo RISC (2), que se identifica por poseer un repertorio de instrucciones de máquina pequeño y simple, de forma que la mayor parte de las instrucciones se ejecuten en un ciclo de instrucción.

El objetivo de diseñar micros con esta arquitectura es posibilitar la segmentación y el paralelismo en la ejecución de instrucciones y reducir los accesos a memoria.

La arquitectura Harvard es por excelencia la utilizada en supercomputadoras, en microcontroladores, y sistemas integrados en general. El procesador tiene los buses segregados, de modo que cada tipo de memoria tiene un bus de datos, uno de direcciones y uno de control.

La ventaja fundamental de esta arquitectura es que permite adecuar el tamaño de los buses a las características de cada tipo de memoria; además, el procesador puede acceder a cada una de ellas de forma simultánea, lo que se traduce en un aumento significativo de la velocidad de procesamiento, típicamente los sistemas con esta arquitectura pueden ser dos veces más rápidos que sistemas similares con arquitecturas Von Neumann(3).

La desventaja esta es que consume muchas líneas de E/S del procesador; por lo que en sistemas donde el procesador está ubicado en su propio sustrato, solo se utiliza en supercomputadoras. Sin embargo, en los microcontroladores y otros sistemas integrados, donde usualmente la memoria de datos y programas comparten el mismo sustrato que el procesador, este inconveniente deja de ser un problema serio y es por ello que encontramos la arquitectura Harvard en la mayoría de los microcontroladores.

Algunos Conceptos (de Wikipedia y otros)

(1) Arquitectura Harvard: en esta arquitectura son independientes la memoria de instrucciones y la memoria de datos y cada una dispone de su propio sistema de buses para el acceso. Esta dualidad, además de propiciar el paralelismo, permite la adecuación del tamaño de las palabras y los buses a los requerimientos específicos de las instrucciones y de los datos.

(2) RISC: es una filosofía de diseño de CPU para computadora que está a favor de conjuntos de instrucciones pequeñas 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.

(3) Arquitectura Von Neumann: se caracteriza porque la CPU (Central Process Unit) se conecta con una memoria única, donde co-existen datos e instrucciones, a través de un sistema de buses.


No hay comentarios:

Publicar un comentario