Saltar al contenido principal
LibreTexts Español

16.1: Introducción

  • Page ID
    81993
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Podría decirse que el primer microprocesador comercial fue el Intel 4004 lanzado en 1971. Era un procesador de cuatro bits y estaba compuesto por una serie de CI. Un año después, Intel lanzó el 8008, un procesador de ocho bits en un solo chip. El resto de la década vio el desarrollo de numerosas líneas de microprocesadores y microcontroladores de diversos fabricantes, entre ellos los 8088, Z80, 6502, 6809 y 68000, por nombrar algunos. Estos sirvieron como el núcleo de la primera generación de computadoras domésticas. Su desempeño, aunque impresionante para el día, palidece en comparación con los procesadores modernos. Muchos utilizaron frecuencias de reloj en la región de 1 a 5 MHz y solo podían acceder a cantidades modestas de memoria (normalmente menos de un megabyte). La integración del control electrónico en artículos de consumo cotidianos como autos, hornos microondas y televisores, ganó impulso durante este tiempo dando el microcontrolador. Un microcontrolador puede ser considerado como un microprocesador especializado. Por lo general, no tienen la potencia computacional de los microprocesadores sino que cuentan con otros bloques funcionales que son útiles al interactuar con sensores, actuadores, dispositivos de visualización y similares que se encuentran en la electrónica de consumo o industrial.

    Si bien el diseño de cualquier microcontrolador en particular será único, hay ciertos temas y elementos que son consistentes. A diferencia de un microprocesador utilizado en una computadora personal, un microcontrolador es generalmente una solución todo en uno diseñada para reducir costos y ahorrar espacio. Por ejemplo, los requisitos de código y espacio de datos para una aplicación incrustada tienden a ser bastante pequeños en comparación con las aplicaciones de escritorio tradicionales. En consecuencia, toda la memoria está incluida en el microcontrolador (no debe confundirse con la memoria caché que se encuentra en los microprocesadores que existe principalmente para aumentar la velocidad computacional de la unidad). Además, el microcontrolador incluirá bloques funcionales tales como temporizadores programables independientes, puertos de entrada/salida digitales de propósito general (GPIO) y puertos de entrada analógicos con ADC con ocho o más bits de resolución. Algunos controladores también contienen convertidores digitales a analógicos para la generación directa de señales analógicas u otros bloques especializados para tratar con comunicaciones en serie, comunicaciones inalámbricas, etc. Como un microcontrolador puede tener una gran cantidad de estos bloques de interfaz, no siempre es rentable dedicar pines IC externos para todas y cada una de las funciones de entrada y salida. En consecuencia, los pines suelen ser multiplexados, cada uno de los cuales ofrece múltiples usos posibles. Por ejemplo, un pin específico podría programarse para entrada digital, salida digital o salida modulada por ancho de pulso (obviamente, no simultáneamente).

    Como se menciona en el Capítulo Dos, los procesadores podrían usar un esquema de memoria compartida para código y datos (arquitectura Von Neumann) o un esquema de memoria dividida (arquitectura Harvard). La arquitectura de Harvard es algo menos flexible pero permite un procesamiento más rápido ya que el procesador puede obtener nuevas instrucciones muy rápidamente y sin ningún tipo de colisión con el acceso a los datos. En el caso de los microcontroladores, vale la pena señalar que la memoria que contiene el código debe ser no volátil de lo contrario el programa de control dejará de existir una vez que se haga un ciclo de alimentación.

    El otro elemento importante de importancia en la arquitectura de microprocesador/microcontrolador es el tipo de conjunto de instrucciones utilizado. Las dos opciones básicas son CISC (Computación de conjuntos de instrucciones complejas) y RISC (Computación de conjuntos de instrucciones reducidas). Un procesador CISC contiene instrucciones que pueden ofrecer varios pasos de bajo nivel agrupados en uno. Si bien esto suena muy conveniente, lo malo es que estas instrucciones suelen tardar varios ciclos de reloj en ejecutarse. En comparación, las arquitecturas RISC no utilizan estas complejas instrucciones, sino que se centran en conseguir que cada instrucción se ejecute en un solo ciclo. Estos generalmente también se canalizan, lo que significa que mientras se ejecuta una instrucción, la siguiente instrucción se carga desde la memoria del programa. Los procesadores RISC se utilizan en todo, desde aplicaciones integradas simples hasta teléfonos celulares y supercomputadoras. Dos ejemplos de procesadores RISC integrados son el AVR Atmel y el ARM. Estos se pueden encontrar en aplicaciones como tabletas, teléfonos inteligentes, consolas de juegos, controladores de juegos y controladores automotrices. El AVR es el núcleo de los procesadores ATMega utilizados en la mayoría de las placas controladoras Arduino. Examinaremos el sistema Arduino en los siguientes capítulos.


    This page titled 16.1: Introducción is shared under a CC BY-NC-SA 4.0 license and was authored, remixed, and/or curated by James M. Fiore via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.