Una vision general de los sistemas embebidos con microcontroladores PIC y MPLAB X IDE

Un sistema embebido es típicamente un diseño que utiliza la potencia de un microcontrolador pequeño, como el microcontrolador Microchip PIC® (MCU) o el controlador de señal digital dsPIC® (DSC). Estos microcontroladores combinan una unidad de microprocesador (como la CPU en una computadora personal) con algunos circuitos adicionales llamados periféricos, más algunos circuitos adicionales, en el mismo chip para hacer un pequeño módulo de control que requiere pocos dispositivos externos. Este dispositivo individual puede integrarse en otros dispositivos electrónicos y mecánicos para un control digital de bajo costo.

Diferencias entre un controlador embebido y una computadora personal

La principal diferencia entre un controlador embebido y una computadora personal es que el controlador embebido está dedicado a una tarea o conjunto de tareas específicas. Una computadora personal está diseñada para ejecutar diferentes tipos de programas y para conectarse a muchos dispositivos externos diferentes. Un controlador embebido tiene un único programa y, como resultado, se puede usar de manera económica para incluir la potencia informática y el hardware suficientes para realizar esa tarea dedicada. Una computadora personal tiene una unidad de procesamiento central (CPU) generalizada relativamente cara con muchos otros dispositivos externos (memoria, unidades de disco, controladores de video, circuitos de interfaz de red, etc.). Un sistema embebido tiene una MCU de bajo costo para su inteligencia, tiene muchos circuitos periféricos en el mismo chip y tiene relativamente pocos dispositivos externos. A menudo, un sistema embebido es una parte invisible, o submódulo de otro producto, como un taladro inalámbrico, refrigerador o abridor de puerta de garaje. El controlador en estos productos hace una pequeña parte de la función de todo el dispositivo. El controlador agrega inteligencia de bajo costo a algunos de los subsistemas críticos en estos dispositivos. Un ejemplo de un sistema embebido es un detector de humo. Su función es evaluar las señales de un sensor y hacer sonar una alarma si las señales indican la presencia de humo. Un pequeño programa en el detector de humo se ejecuta en un bucle infinito, muestrea la señal del sensor de humo o permanece inactivo en un modo de "Suspensión" de baja potencia, que se activa con una señal del sensor. El programa suena la alarma. El programa posiblemente tenga algunas otras funciones, como una función de prueba de usuario y una alerta de batería baja. Si bien una computadora personal con un sensor y una salida de audio podrían programarse para realizar la misma función, no sería una solución rentable (ni funcionaría con una batería de nueve voltios, desatendida durante años). Los diseños embebidos utilizan microcontroladores económicos para poner inteligencia en las cosas cotidianas de nuestro entorno, como detectores de humo, cámaras, teléfonos celulares, electrodomésticos, automóviles, tarjetas inteligentes y sistemas de seguridad.

Componentes de un microcontrolador PIC

El MCU PIC tiene memoria de programa en chip para el firmware, o instrucciones codificadas, para ejecutar un programa. Un contador de programa (PC) se utiliza para direccionar la memoria del programa, incluidas las direcciones de reinicio e interrupción. Se usa una pila de hardware con instrucciones de llamada y devolución en el código, por lo que funciona con la memoria del programa, pero no forma parte de ella. Las hojas de datos del dispositivo describen los detalles de la operación de la memoria del programa, los vectores y la pila.


El microcontrolador también tiene datos o memoria de "registro de archivos". Esta memoria consta de Registros de funciones especiales (SFR) y Registros de fines generales (GPR). Los SFR son registros utilizados por la CPU y las funciones periféricas para controlar la operación deseada del dispositivo. Los GPR son para el almacenamiento de variables que el programa necesitará para el cálculo o el almacenamiento temporal. Algunos microcontroladores tienen memoria EEPROM de datos adicionales. Al igual que con la memoria del programa, las hojas de datos del dispositivo describen los detalles del uso y la operación de la memoria de datos.


Además de la memoria, el microcontrolador tiene una cantidad de circuitos de dispositivos periféricos en el mismo chip. Algunos dispositivos periféricos se llaman puertos de entrada / salida (E / S). Los puertos de E / S son pines en el microcontrolador que se pueden usar como salidas y se pueden enviar a alta o baja para enviar señales, luces intermitentes, altavoces de unidad, casi cualquier cosa que se pueda enviar a través de un cable. A menudo, estos pines son bidireccionales y también se pueden configurar como entradas, lo que permite que el programa responda a un interruptor externo, un sensor o para comunicarse con algún dispositivo externo.


Para diseñar un sistema de este tipo, elija qué periféricos son necesarios para la aplicación. La siguiente es una lista de periféricos comunes:
• Los convertidores analógicos a digitales (ADC) permiten que los microcontroladores se conecten a los sensores y reciban niveles cambiantes de voltaje.
• Periféricos de comunicación serie que permiten la transmisión de comunicaciones a través de unos pocos cables a otro microcontrolador, a una red local o a Internet.
• Los periféricos en la MCU PIC llamados "temporizadores" miden con precisión los eventos de señal y generan y capturan señales de comunicación, producen formas de onda precisas, incluso restablecen automáticamente el microcontrolador si se cuelga o se pierde debido a una falla de alimentación o un mal funcionamiento del hardware.
• Otros periféricos detectan cuando la energía externa se sumerge en niveles peligrosos, de modo que el microcontrolador puede almacenar información crítica y apagarse de manera segura antes de que la energía se pierda por completo.

Los periféricos y la cantidad de memoria que necesita una aplicación para ejecutar un programa determinan en gran medida qué PIC MCU utilizar. Otros factores podrían incluir la potencia consumida por el microcontrolador y su "factor de forma", es decir, el tamaño y las características del paquete físico que debe residir en el diseño del objetivo.

Un microcontrolador se activa cuando se aplica energía y un oscilador comienza a generar una señal de reloj. Dependiendo del microcontrolador, puede haber varios modos operativos de oscilador interno y externo.



Implementación de un diseño de sistema embebido con MPLAB X IDE

Un sistema de desarrollo para controladores embebidos es un sistema de programas que se ejecuta en una computadora que ayuda a escribir, editar, depurar y programar el código, que es la inteligencia de las aplicaciones de sistemas embebidos, en un microcontrolador. MPLAB X IDE es un sistema de este tipo, contiene todos los componentes necesarios para diseñar e implementar aplicaciones de sistemas embebidos. Las tareas típicas para desarrollar una aplicación de controlador embebido son:

1. Crear el diseño de alto nivel. A partir de las características y el rendimiento deseado, decida qué dispositivo PIC MCU o DSC DSC se adapta mejor a la aplicación, luego diseñe los circuitos de hardware asociados. Después de determinar qué periféricos y pines controlan el hardware, escriba el firmware, el software que controlará los aspectos de hardware de la aplicación incorporada. Una herramienta de lenguaje como un ensamblador, que se puede traducir directamente en código de máquina, o un compilador que permite un lenguaje más natural para la creación de programas, se debe utilizar para escribir y editar el código. Los ensambladores y compiladores ayudan a que el código sea comprensible, permitiendo que las etiquetas de funciones identifiquen rutinas de códigos con variables que tienen nombres asociados con su uso, y con construcciones que ayudan a organizar el código en una estructura que se puede mantener.

2. Compile, ensamble y vincule el software utilizando el ensamblador y / o el compilador y el enlazador para convertir su código en "unos y ceros": código de máquina para las MCU PIC. Este código de máquina eventualmente se convertirá en el firmware (el código programado en el microcontrolador).

3. Pon a prueba tu código. Por lo general, un programa complejo no funciona exactamente como se imagina, y los "errores" deben eliminarse del diseño para obtener los resultados adecuados. El depurador le permite ver ejecutar los "unos y ceros", relacionados con el código fuente que escribió, con los símbolos y nombres de funciones de su programa. La depuración le permite experimentar con su código para ver el valor de las variables en varios puntos del programa, y ​​hacer comprobaciones de "qué pasa si", cambiar los valores de las variables y pasar por las rutinas.

4. "Grabe" el código en un microcontrolador y verifique que se ejecuta correctamente en la aplicación finalizada.

Por supuesto, cada uno de estos pasos puede ser bastante complejo. Lo importante es concentrarse en los detalles de su propio diseño, mientras confía en MPLAB X IDE y sus componentes para superar cada paso sin encontrar continuamente nuevas curvas de aprendizaje.

El paso 1 es impulsado por el diseñador, aunque MPLAB X IDE puede ayudar a modelar circuitos y códigos para que se puedan tomar decisiones de diseño cruciales. MPLAB X IDE realmente ayuda con los pasos 2 a 4. Su editr ayuda a escribir el código correcto con las herramientas de idioma de su elección. El editor conoce las construcciones de programación del ensamblador y el compilador y automáticamente "codifica por colores" el código fuente para ayudar a garantizar que sea sintácticamente correcto. El Administrador de proyectos le permite organizar los diversos archivos utilizados en su aplicación: archivos de origen, archivos de encabezado de descripción de procesador y archivos de biblioteca. Cuando se crea el código, puede controlar qué tan rigurosamente el compilador optimizará el tamaño o la velocidad y dónde se programarán las variables individuales y los datos del programa en el dispositivo. También puede especificar un "modelo de memoria" para aprovechar al máximo la memoria del microcontrolador para su aplicación. Si las herramientas de idioma se encuentran con errores al compilar la aplicación, se muestra la línea ofensiva y se puede hacer doble clic para ir al archivo fuente correspondiente para su edición inmediata. Después de la edición, reconstruirá y probará su aplicación nuevamente. A menudo, este bucle de escritura y compilación se realiza muchas veces para código complejo a medida que las subsecciones se escriben y se prueban. MPLAB X IDE pasa por este ciclo con la velocidad máxima, lo que le permite pasar al siguiente paso. Cuando el código se genera sin errores, necesita ser probado. MPLAB X IDE tiene componentes llamados "depuradores" y simuladores de software libre para todos los dispositivos PIC MCU y dsPIC DSC para ayudar a probar el código. Incluso si el hardware aún no está terminado, puede comenzar a probar el código con el simulador, un programa de software que simula la ejecución del microcontrolador. El simulador puede aceptar una entrada simulada (estímulo), para modelar cómo responde el firmware a las señales externas. El simulador puede medir el tiempo de ejecución del código, el código paso a paso para ver variables y periféricos, y rastrear el código para generar un registro detallado de cómo se ejecutó el programa. Cuando el hardware está en una etapa de prototipo, se puede usar un depurador de hardware, como un emulador en circuito o un depurador en circuito. Estas herramientas de depuración ejecutan el código en tiempo real en su aplicación real mediante el uso de circuitos especiales integrados en muchos dispositivos con memoria de programa Flash. Pueden "ver" en el programa del microcontrolador objetivo y la memoria de datos, y detener e iniciar la ejecución del programa, lo que le permite probar el código con el microcontrolador en su lugar en la aplicación. Una vez que la aplicación se ejecuta correctamente, puede programar un microcontrolador con uno de los dispositivos o programadores de desarrollo de Microchip. Estos programadores verifican que el código final se ejecutará según lo diseñado. MPLAB X IDE es compatible con la mayoría de las MCU PIC y todas las DSC dsPIC.

Descargas:

Fuente:

Comentarios

Entradas más populares de este blog

Resistencias

Guía de introducción de XC8