Fundamentos de Microprocesadores y Microcontroladores: Conceptos Clave

Fundamentos de Microprocesadores y Microcontroladores

Tareas del Microprocesador

  • Dirigir y coordinar todos los componentes del equipo.
  • Realizar las operaciones aritméticas y lógicas.

Megabyte

Unidad de medida de cantidad de datos informáticos 220.

Interrupciones

Una interrupción se puede definir como una señal proveniente de un dispositivo externo, que llega a una entrada del microprocesador dedicada a este propósito y que indica al microprocesador que el dispositivo que la originó está solicitando servicio.

Cuando ocurre una interrupción, el microprocesador suspende temporalmente la ejecución del programa principal y transfiere el control a una subrutina especialmente diseñada para atender al dispositivo que provocó la interrupción.

Contador de Programa

Es un registro que contiene la dirección de la próxima instrucción a ejecutar.

Stack Pointer

Contiene la dirección actual del Stack.

Stack o Pila

El Stack o Pila es una región de memoria usada para guardar datos transitoriamente y que deberán ser usados posteriormente. Son de tipo LIFO (del inglés last in first out, es decir, «último en entrar, primero en salir») que permite almacenar y recuperar datos (TOS).

  • «Apilar» (push): coloca un objeto en la pila.
  • «Retirar» o «Desapilar» (pop): retira el último elemento apilado.

Los principales módulos que conforman el Basic Stamp son: un módulo intérprete o traductor que convierte las instrucciones para que sean interpretadas por la máquina, una EEPROM, un oscilador de 20 MHz y un regulador de voltaje de 5V.

Arquitecturas Von Neumann y Harvard

Von Neumann: La unidad central de proceso (CPU) está conectada a una memoria única donde se guardan las instrucciones del programa y los datos.

Harvard: La unidad central de proceso (CPU) está conectada a dos memorias (una con las instrucciones y otra con los datos) por medio de dos buses diferentes.

Diferencia entre Microprocesador, Microcontrolador y Microcomputador

El microcontrolador está formado por un microprocesador y el conjunto de subsistemas: memoria volátil (cálculo temporal), memoria no volátil (donde almacena el programa), entrada y salida.

Microprocesador: Es un dispositivo integrado digital capaz de interpretar y ejecutar un conjunto secuencial de instrucciones (programa). Básicamente contiene circuitos electrónicos que realizan operaciones aritméticas, lógicas y de control. Se trata de un sistema muy complejo, por eso debe ir integrado en chips. El microprocesador es el «cerebro» o parte inteligente de este sistema. El microcontrolador incluye todos estos elementos del microprocesador en un solo Circuito Integrado.

Arquitecturas Von Neumann vs. Harvard

Von Neumann: Posee un bus de datos común para la memoria de programa y la memoria de datos.

Harvard: Posee buses de datos separados para cada una de ellas.

Comunicación Sincrónica vs. Asincrónica

La diferencia entre comunicación sincrónica y asincrónica es que la comunicación asincrónica se puede enviar o recepcionar datos en cualquier instante, no así en la comunicación sincrónica que se debe coordinar con los pulsos del reloj generados por el microcontrolador y los flancos. Es decir, para enviar o transmitir datos se requiere coordinación con un reloj de pulsos.

Comunicación Semiduplex

Solo permite la transmisión en los dos sentidos, pero no de forma simultánea.

Registro PSW

El registro acumulador (ACC) almacena los resultados de las operaciones aritméticas y lógicas. El registro de estado (PSW, Processor Status Word o Palabra de Estado del Procesador) contiene los indicadores de estado del sistema (lleva dígitos, desbordamientos, etc.).

Registro SFR

Registros de Funciones Especiales (SFR). Los registros SFR tienen como operación principal controlar el núcleo del microcontrolador y módulos periféricos.

Watchdog

Aunque la traducción sea «perro guardián», es un concepto de protección usado para volver a reiniciar el programa cuando este «se pierde» o realiza una acción no prevista. Los watchdog existen físicos o por programa. Su funcionamiento es: cuenta cada ciertos pulsos de reloj en un determinado tiempo esperando algún evento generado por el programa. Si no le llega tal evento, el watchdog se activa y hace que todo empiece de nuevo. Si le llega el evento, entonces todo está bien y no hace nada.

Overflow (Desbordamiento de un Buffer)

Es un error de software que se produce cuando se copia una cantidad de datos sobre un área que no es lo suficientemente grande para contenerlos, sobrescribiendo de esta manera otras zonas de memoria, produciendo un fallo en la programación.

Error Framing

¿Qué Significa un Error de Framing en Comunicación Serial? Los datos seriales se transmiten un byte a la vez. Cada byte tiene un formato específico que incluye bit de inicio, bits de datos, bit de paridad y bits de paro. Un error de framing ocurre cuando se recibe un byte de datos pero no está en el formato esperado.

Funcionamiento del Módulo CCP en Modo Captura

Capturan los 16 bits de los registros TMR1 y TMR2 cuando ocurre un evento: flanco de bajada o de subida, etc. El pin se configura como entrada. Timer 1 y 3 sincronizados con reloj interno. Se apaga el módulo ya que puede provocar falsa interrupción.

Funcionamiento del Módulo CCP en Modo Comparación

Los bits de CCPR1 son comparados con TMR1 y TMR2 (los 16 bits). Cuando CCPx coincide con el valor de un timer, los pines RC2/CCP1 se ponen en estado alto, bajo, cambia de estado o se mantiene sin cambios. Timer 1 y 3 sincronizados con reloj interno. Si se cambia la configuración del módulo CCP, se apaga el módulo porque puede haber falsa interrupción.

Bus de Datos

La propia palabra “Bus” ya está anunciando el “transporte” de algo, y en este caso, se refiere a datos para procesarse por un equipo informático. El Bus de Datos soporta tanto la información como las instrucciones declaradas sobre la misma, de tal forma de gestionar operaciones.

De este modo, se da lugar a 3 tipos de “Buses”: Datos, Direcciones y Control.

  • Bus de Datos: Se encarga de mover la información por los componentes de hardware del sistema de computación, tanto de Entrada (teclado, mouse, etc) como de salida (monitor, impresora, etc.).
  • Bus de Direcciones: Ubica los datos en el Sub-sistema de Memoria teniendo relación directa con los procesos de CPU.
  • Bus de Control: Tiene la tarea de marcar el estado de una instrucción dada a la PC.

Tipos de Memoria

Hay cinco tipos de memoria para soportar estas funciones:

  • ROM: Se graba el chip durante su fabricación, implica costos altos y solo se recomienda cuando se produce en serie.
  • EPROM: Se graba con un dispositivo que es gobernado mediante un computador personal.
  • OTP: Se graba por el usuario igual que la memoria EPROM, a diferencia de la EPROM la OTP se puede grabar solamente una vez.
  • EEPROM: La grabación es similar a la de las memorias EPROM y OTP, la diferencia es que el borrado se efectúa de la misma forma que el grabado, o sea eléctricamente.
  • FLASH: Forma desarrollada de la memoria EEPROM que permite que múltiples posiciones de memoria sean escritas o borradas en una misma operación de programación mediante impulsos eléctricos, frente a las anteriores que solo permite escribir o borrar una única celda cada vez.

RAM Estática vs. Dinámica

RAM Estática: Está formada por flip-flops tipo D.

RAM Dinámica: Está formada por transistores MOS.

Conversor Analógico Digital

El conversor analógico digital posee una resolución de 10 bits. Controlado por los registros ADCON1 y ADCON0. El resultado de la conversión es almacenado en los registros ADRESL y ADRESH.

Pasos para realizar una conversión A/D

  1. Configuración del módulo A/D
    • Seleccionar canal de entrada (ADCON0)
    • Habilitar el módulo A/D (ADCON0)
    • Configurar los pines analógicos y los voltajes de referencia (ADCON1)
    • Escoger el tiempo de adquisición (ADCON2)
    • Seleccionar el tiempo de conversión TAD’s (ADCON2)
  2. Configurar las interrupciones A/D
    • Borrar el ADIF bit
    • Poner en 1 el bit ADIE
    • Poner en 1 el bit GIE.
  3. Esperar a que transcurra el tiempo de adquisición si es necesario
  4. Conversión
    • Comenzar la conversión. Colocando en 1 el bit GO/DONE del (ADCON0)
  5. Esperar a que la conversión A/D termine. Cuando GO/DONE se pone en 0 ó se da una interrupción A/D
  6. Leer el resultado de la conversión en (ADRESH:ADRESL) y ADIF necesario borrar el bit ADIF, si es necesario.

Registro CMCON: controla las entradas del comparador y las salidas multiplexadas.

Ciclo Máquina

El ciclo de las operaciones realizadas por el procesador para procesar una instrucción del programa particular: recuperar, decodificar, ejecutar y colocar el resultado en la memoria.

Temporizadores o «Timers»

Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la cuenta de acontecimientos que suceden en el exterior (contadores). Para la medida de tiempos se carga un registro con el valor adecuado y a continuación dicho valor se va incrementando o decrementando al ritmo de los impulsos de reloj o algún múltiplo hasta que se desborde y llegue a 0, momento en el que se produce un aviso. Cuando se desean contar acontecimientos que se materializan por cambios de nivel o flancos en alguna de las patitas del microcontrolador, el mencionado registro se va incrementando o decrementando al ritmo de dichos impulsos.

Protección ante Fallo de Alimentación o «Brownout»

Se trata de un circuito que resetea al microcontrolador cuando el voltaje de alimentación (VDD) es inferior a un voltaje mínimo («brownout»). Mientras el voltaje de alimentación sea inferior al de brownout el dispositivo se mantiene reseteado, comenzando a funcionar normalmente cuando sobrepasa dicho valor.

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. También hay modelos de microcontroladores con un módulo de tensión de referencia que proporciona diversas tensiones de referencia que se pueden aplicar en los comparadores.

Comunicación Sincrónica vs. Asincrónica (Reiteración)

La diferencia entre comunicación sincrónica y asincrónica es que la comunicación asincrónica se puede enviar o recepcionar datos en cualquier instante, no así en la comunicación sincrónica que se debe coordinar con los pulsos del reloj generados por el microcontrolador y los flancos, es decir para enviar a transmitir datos se requiere coordinación con un reloj de pulsos.

Definiciones Clave

  1. CPU: Es la unidad central de procesos, la CPU es el cerebro que cumple la función de leer, decodificar y ejecutar las instrucciones almacenadas en memoria.
  2. Microcontrolador: Un microcontrolador es un circuito integrado. En su interior encontramos un procesador, memoria, y varios periféricos. Un microcontrolador es un dispositivo integrado digital capaz de interpretar y ejecutar un conjunto secuencial de instrucciones (programa). Básicamente contiene circuitos electrónicos que realizan operaciones aritméticas, lógicas y de control. Se trata de un sistema muy complejo, por eso debe ir integrado en chips.
  3. Stack Pointer: Puntero que contiene la dirección actual del stack.
  4. Bus de Datos: Se encarga de mover la información por los componentes de hardware del sistema de computación, tanto de Entrada (teclado, mouse, etc) como de salida (monitor, impresora, etc.).
  5. Conversión A/D:
    • Comenzar la conversión. Colocando en 1 el bit GO/DONE del (ADCON0).
    • Esperar a que la conversión A/D termine. Cuando GO/DONE se pone en 0 ó se da una interrupción A/D.
    • Leer el resultado de la conversión en (ADRESH:ADRESL) y ADIF necesario borrar el bit ADIF, si es necesario.

Error Framing (Reiteración)

Los datos seriales se transmiten un byte a la vez. Cada byte tiene un formato específico que incluye bit de inicio, bits de datos y bit de paridad. Un error de framing ocurre cuando se recibe un byte de datos pero no está en el formato esperado.

Overrun

Normalmente se produce en los dispositivos y las aplicaciones cuando se reciben más datos a continuación de los que se anticipan, por lo general debido a que el buffer de memoria asignado o físico no es lo suficientemente grande.

USART

El USART puede ser configurado de las siguientes maneras:

  • Modo Asíncrono (Full-Duplex): En este modo, el USART usa el formato estándar Non-Return-to-Zero (NRZ) [1 bit de partida, 8 o 9 bits de datos y 1 bit de detención. El formato común de datos más común es de 8 bits. El USART transmite y recibe el LSB (Lower Significant Bit – Bit Menos Significativo) primero. El transmisor y receptor del USART son funcionalmente independientes, pero utilizan el mismo formato de datos y velocidad de transmisión.
  • Maestro-Síncrono (Half-Duplex): El modo Maestro indica que el procesador transmite el reloj maestro en la línea CK.
  • Esclavo-Síncrono (Half-Duplex): El modo Esclavo Síncrono se diferencia del modo Maestro en el hecho de que el reloj de desplazamiento (shift clock) es alimentado externamente desde el pin TXx.

Se permite al dispositivo a transferir o recibir datos mientras está en modo de reposo (Sleep).

Watchdog Timer

Cuando el computador personal se bloquea por un fallo del software u otra causa, se pulsa el botón del reset y se reinicializa el sistema. Pero un microcontrolador funciona sin el control de un supervisor y de forma continuada las 24 horas del día. El Perro guardián consiste en un temporizador que, cuando se desborda y pasa por 0, provoca un reset automáticamente en el sistema.

USART (Reiteración)

Transmisor y Receptor Sincrónico/Asincrónico Universal. Se trata de un periférico para la transmisión de datos en formato serie, utilizando técnicas de transmisión sincrónica o asincrónica, según se configure el periférico. Cada dispositivo tiene 2 USART’s, y puede ser configurado cada uno de forma independiente del otro.

Timers

  • Timer 0: Se puede seleccionar un modo de trabajo a 8 o 16 bits Timer/Counter. Se puede leer y escribir en él. Posee un pre escalador propio de 8 bits. Selección de fuente de reloj externa (Pin RA4 T0CKI) o interna Fosc/4. Genera una interrupción cuando se desborda en modo de 8 o 16 bits. El timer 0 es controlado por el registro T0CON Contador / Temporizador de 8 bits que se pueden leer y escribir. Prescaler de 8 bits programable por software. Generación de interrupción al desbordarse de FFh a 00h. Se puede seleccionar el flanco activo si se usa reloj externo.
  • Timer 1: Contador / Temporizador de 16 bits que se pueden leer y escribir. Prescaler programable por software. Generación de interrupción al desbordarse de FFFFh a 0000h. Puede activarse o desactivarse.
  • Timer 2: Temporizador de 8 bits que se pueden leer y escribir. Prescaler para el reloj y postscaler para la salida. TMR2 se incrementa hasta alcanzar el valor de PR2. Puede activarse o desactivarse.
  • Timer 3: Posee las siguientes características: 16 – bits de tamaño, conformado por dos registros de 8 bits, Uso de oscilador externo Interrupción por rebose del temporizador, al pasar de FFFFh a 0000h, Se puede borrar por un disparo del módulo CCP.

Bit de Paridad

Los códigos de paridad se usan en comunicaciones para detectar, y en algunos casos corregir, errores en la transmisión. Para ellos se añade en origen un bit extra llamado bit de paridad a los n bits que forman el carácter original.

Formato NRZ (Non – Return – to – Zero)

Es un tipo de formato de codificación que se denomina NRZ porque el voltaje no vuelve a cero entre bits consecutivos de valor uno. Mediante la asignación de un nivel de tensión a cada símbolo se simplifica la tarea de codificar un mensaje. El valor 0 no se usa nunca.

Puerto Serie RS-232C

Consiste en un conector tipo DB-25 de 25 pines, aunque es normal encontrar la versión de 9 pines DB-9. Es la forma más comúnmente usada para realizar transmisiones de datos entre ordenadores. Comúnmente las señales con las que trabaja este puerto serie son digitales, de +12V (0 lógico) y -12V (1 lógico) para la entrada y salida de datos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.