Todavía no he usado un chip DSP. Todo lo que sé es que su arquitectura es tal que pueden realizar cálculos bastante rápido, generalmente dentro de un ciclo de reloj, tienen instrucciones de acumulación múltiple en su conjunto de instrucciones y tienen DMA para que la CPU no tenga que perder un tiempo precioso moviendo datos alrededor. Creo que hay más, pero estos son algunos puntos básicos.
Puedo ver que Microchip tiene dsPIC, que es su línea de chips DSP. ¿No podemos simplemente usar un PIC18 o PIC32 que también tiene multiplicadores incorporados para hacer DSP también? ¿En qué se diferencia el dsPIC del PIC normal?
Mi pregunta principal es esta: ¿Por qué necesitamos tener algo separado y distinto llamado chip DSP y no integrar la capacidad de cálculo de unidad de coma flotante de alta precisión en todos los microcontroladores? Seguramente con las tecnologías de proceso que tenemos ahora, esto no debería ocupar mucho espacio.
Además, ¿cómo sé que necesito usar un chip DSP en mi proyecto en lugar de un microcontrolador normal?
Por lo general, "DSP..." significa "potencia más relevante y/o hardware más relevante en el momento en que se presentó el producto ".
Los procesadores generalizados tienden a ponerse al día con los dispositivos especializados más antiguos.
DSPIC tiene p[probablemente más de 10 años - Olin lo sabrá.
[Los elementos entre paréntesis se relacionan con algunos ejemplos de DSPIC; no son exhaustivos].
En los productos DSP, espere una combinación de:
Espere cosas como desplazadores de barril,
canalizaciones amplias y rápidas y tiempos de ejecución de ciclo único rápidos,
instrucciones de ciclo único amplias,
DMA [6 u 8 canales, búfer de RAM de puerto dual] rangos de direccionamiento de memoria lineal grandes [programa de 4 Mword , 64 kB de datos] características especializadas orientadas a la aritmética
Tal vez:
periféricos especializados como control de motor,
hardware para varios estándares de comunicaciones diferentes [CAN, IIC, UART, IIS, AC97, ...] búferes de comunicaciones más profundos que los habituales [4 bytes] más rápidos y /o ADC más anchos de lo habitual [2 Msps, 10 o 12 bits]
Encontrará la mayoría de estos en la familia DSPIC, y cada vez más en las familias de procesadores gp.
En casos extremos, obtiene microcodificación de usuario y más.
Algunas de las ventajas de un dsPIC sobre los PIC de arquitectura anterior, como las familias PIC 16 y 18:
Esto también permite una mejor arquitectura de software. La rutina de interrupción para un periférico en particular puede estar en el mismo módulo que el otro código que maneja ese periférico, en lugar de tener que tener una rutina de interrupción global.
Por lo general, la característica distintiva clave de un DSP en comparación con una CPU de propósito general es que el DSP puede ejecutar ciertas operaciones de procesamiento de señales con pocos o ningún ciclo de CPU desperdiciado en instrucciones que no calculan resultados.
Una de las operaciones más básicas en muchos algoritmos DSP clave es la operación MAC (multiplicación-acumulación), que es el paso fundamental que se utiliza en los productos cruzados y de punto de matriz, filtros FIR e IIR, así como FFT. Un DSP normalmente tendrá una organización de registro y/o memoria y una ruta de datos que le permite realizar al menos 64 operaciones MAC en pares de datos únicos en una fila sin desperdiciar relojes en la sobrecarga de bucle o movimiento de datos. Las CPU de uso general generalmente no tienen suficientes registros para lograr esto sin usar instrucciones adicionales para mover datos entre registros y memoria.
El dsPIC33 es esencialmente un PIC24 con una modesta capacidad DSP, principalmente un MAC dual. Está dirigido al control motor. Llamarlo DSP sería exagerar: Microchip se refiere a él como un controlador de señal digital, lo que refleja su aplicación objetivo de control de motores.
Lo he usado en aplicaciones de procesamiento de señales modestas para la decodificación de banda base de GMSK de baja velocidad, pero esa aplicación luego se implementó y amplió con éxito en un ARM Cortex-M3 a 72 MHz. No usaría ningún tipo de PIC por elección. Aparte del nicho PIC32, son arquitectónicamente extraños e inconsistentes en toda la gama. ARM Cortex-M4 o M7, por ejemplo, poseen un soporte DSP mucho más extenso que dsPIC con una selección mucho más amplia de piezas y rango de rendimiento.
Puede procesar la señal sin usar un DSP dedicado. Los DSP actuales se vuelven útiles cuando se procesan múltiples señales o cuando se opera a frecuencias de muestreo muy altas, como por ejemplo, para radio definida por software. Sin embargo, cada vez más podría usar un FPGA para eso.
David
clifford