Cómo elegir un microcontrolador para aplicaciones de procesamiento de señales digitales
Este artículo analiza las características que debe buscar cuando necesite una MCU para actuar como controlador del sistema y como procesador de señales digitales.
Este artículo analiza las características que debe buscar cuando necesite una MCU para actuar como controlador del sistema y como procesador de señal digital.
El procesamiento de señales digitales puede agregar una funcionalidad valiosa a una amplia variedad de productos y aplicaciones. Incluso los diseños que están limitados por el costo, el factor de forma o el cronograma pueden incorporar fácilmente los beneficios de DSP, porque hoy en día los ingenieros tienen acceso a una gran cantidad de código de biblioteca, proyectos de ejemplo y procesadores de alto rendimiento que son económicos y relativamente fáciles de usar. .
Un verdadero procesador de señal digital, como una parte de la familia C5000 de Texas Instruments o la familia SHARC de Analog Devices, puede ser un dispositivo intimidante. He trabajado principalmente con DSP de Texas Instruments y, en general, la experiencia fue productiva y satisfactoria. Sin embargo, en ese caso no tuve que diseñar la placa de circuito y no disfruté el proceso de intentar depurar fallas extrañas del sistema y comprender los detalles del sistema operativo.
No hay duda de que ciertas tareas DSP computacionalmente intensivas requerirán un verdadero procesador de señal digital o incluso un FPGA. Sin embargo, también es cierto que en numerosas aplicaciones bastaría con un microcontrolador elegido correctamente. Este artículo analiza las características y capacidades en las que debe concentrarse cuando desee asegurarse de que su MCU tenga suficiente potencia DSP.
¿8, 16 o 32 bits?
Este problema es menos sencillo de lo que piensa. En general, los dispositivos de 16 y 32 bits serán más apropiados para aplicaciones DSP. El procesamiento de señales digitales implica procedimientos matemáticos que a menudo conducirán a grandes números, y desea un procesador que pueda manipular directamente estos grandes números.
Sin embargo, el procesamiento de 8 bits no es intrínsecamente malo, y si sabe que tendrá que lidiar con un rango limitado de valores digitales, un microcontrolador de 8 bits podría ser una buena opción.
Además, los ingenieros a menudo no tienen el tiempo o la inclinación para estudiar los detalles de bajo nivel de un procesador y, en consecuencia, puede ser difícil establecer una conexión clara entre el ancho de bits especificado y la eficiencia computacional real. Por ejemplo, ¿un "microcontrolador de 32 bits" tiene registros de 32 bits? ¿Una ALU de 32 bits? ¿Un bus de direcciones de 32 bits? ¿Una interfaz de comunicación de 32 bits? ¿Qué significa exactamente "32 bits"? Estos detalles podrían influir en su decisión, especialmente si espera lidiar principalmente con números pequeños que no necesitan todos esos bits adicionales.
Esta arquitectura modernizada de 8 bits fue desarrollada por Silicon Labs (diagrama tomado de este documento). Advierten contra la suposición de que un dispositivo de 16 o 32 bits superará sistemáticamente a un dispositivo de 8 bits.
Velocidad del reloj
La frecuencia máxima de reloj de un microcontrolador es sin duda un buen indicador de sus méritos como procesador de señales digitales. Sin embargo, es esencial comprender la diferencia entre los ciclos de reloj por segundo y las instrucciones por segundo. El procesador realiza las tareas de DSP mediante la ejecución de instrucciones y, en consecuencia, su rendimiento está influenciado tanto por la frecuencia del reloj como por el número de ciclos de reloj necesarios para ejecutar las instrucciones.
Desafortunadamente, este problema rápidamente se vuelve bastante complicado. El número de ciclos de reloj necesarios para una instrucción varía de una instrucción a la siguiente, y el promedio El número de ciclos de reloj por instrucción se puede reducir mediante el uso de una arquitectura canalizada. Luego, debe considerar la cantidad de "funcionalidad por instrucción", es decir, tal vez el microcontrolador A necesite solo una instrucción para hacer algo que requeriría múltiples instrucciones en el microcontrolador B.
Este diagrama transmite el concepto de procesador interconectado. Consulte este artículo para obtener más información. Colin M.L. Burnett [CC-BY-SA-3.0].
Aquí está mi recomendación abreviada:si está comparando dispositivos de la misma familia, opte por la frecuencia de reloj más alta. Si está comparando dispositivos con diferencias arquitectónicas importantes, intente encontrar una especificación confiable que indique la velocidad de ejecución de la instrucción (expresada como MIPS, millones de instrucciones por segundo) o el número promedio de ciclos de reloj por instrucción.
Punto fijo frente a punto flotante
El término "punto flotante" se refiere a una representación numérica en la que el punto de base puede "flotar" porque el número consta de una parte entera (la mantisa) y un exponente. La alternativa ("punto fijo") corresponde a la forma en que normalmente manejamos y percibimos los datos en un microcontrolador normal. Una comparación cuidadosa entre la aritmética de punto flotante y la aritmética de punto fijo no es de ninguna manera una tarea simple, pero parece haber consenso en que el procesamiento de punto flotante puede ser superior en aplicaciones matemáticamente intensivas.
Creo que es seguro decir que todos los microcontroladores son dispositivos de punto fijo, porque en mi opinión, si realmente es un procesador de punto flotante, ya no es un microcontrolador. Sin embargo, si está realmente decidido a maximizar su rendimiento matemático mientras permanece dentro del dominio del microcontrolador, debe considerar un dispositivo que incluya un co de punto flotante. procesador.
El LPC3180FEL320 de NXP, un microcontrolador basado en Arm de 16/32 bits, tiene un coprocesador de punto flotante y puede alcanzar hasta 220 MIPS. STMicroelectronics también tiene microcontroladores STM32 que incorporan una unidad de punto flotante (FPU).
Usé algunas matemáticas de punto flotante en mi proyecto de sensor táctil circular. En la mayoría de los casos, una FPU separada es innecesaria; los compiladores son buenos para implementar variables de punto flotante en microcontroladores típicos.
Resumen
En este artículo, exploramos las características de la CPU que hacen que un microcontrolador sea más o menos adecuado para aplicaciones DSP. Creo que en la mayoría de las situaciones tiene sentido enfocarse en el ancho de bits y MIPS; no debería tener que preocuparse mucho por el punto flotante versus el punto fijo a menos que planee hacer algunos cálculos numéricos serios con su MCU. Continuaremos con este tema en el próximo artículo, en el que se analizarán las funciones periféricas relacionadas con DSP.
Introducción a la serie de microcontroladores
Este artículo es parte de una serie más amplia. Puede encontrar el resto de los artículos a continuación:
- ¿Qué es un microcontrolador? Una introducción al componente central en innumerables dispositivos electrónicos
- Cómo elegir el microcontrolador adecuado para su aplicación
- Cómo leer una hoja de datos de un microcontrolador:Introducción y primeros pasos
- Cómo leer la hoja de datos de un microcontrolador:exploración del hardware
Tecnología Industrial
- Cómo elegir periféricos de microcontrolador para aplicaciones de procesamiento de señales digitales
- Cómo la IA está impulsando el distanciamiento social para la transformación del negocio digital
- Cómo elegir un taller de mecanizado CNC confiable para piezas CNC
- Cómo elegir la mejor solución de IIoT para la fabricación de equipos pesados
- Cómo prepararse para la Industria 4.0
- Cómo elegir el sensor adecuado para aplicaciones de llenado
- Cómo elegir una válvula proporcional para dispositivos médicos
- Cómo elegir un proveedor de Scan-Pac para sus materiales de fricción
- Intel Edison IoT:cómo elegir Intel Edison para su prototipo de IoT
- ¿Cómo elegir la fresa y la programación adecuadas para CNC?
- Cómo elegir un proyecto para la automatización