¿Cuáles son las ventajas y desventajas de usar un software integrado para hacer hardware integrado?
¿Cuáles son las ventajas y desventajas de usar un software integrado para hacer hardware integrado?
En algunos casos, puede reemplazar el hardware con firmware. Por ejemplo, puede implementar un contador o un controlador LCD o LED o un controlador SPI con firmware utilizando pines de E / S de propósito general.
Las desventajas generalmente se relacionan con la velocidad: un circuito hecho con hardware puede responder en nanosegundos y puede estar relativamente libre de fluctuaciones. Las implementaciones de Firware pueden tener una gran fluctuación y una respuesta lenta, dependiendo de cómo se implementen exactamente (sondeadas o con interrupciones, por ejemplo). También pueden requerir un poco más de esfuerzo de desarrollo que solo abatir una pieza de hardware dedicada.
La ventaja puede ser la reducción de costos (y el espacio de la placa y quizás también la potencia).
El firmware se puede usar para emular periféricos de hardware cuando el microcontrolador no tiene el tipo de periférico que necesita, o si necesita varios del mismo tipo y muchos no están disponibles (por ejemplo, necesita dos UART y solo el microcontrolador tiene uno.
Algunos de los periféricos que se pueden emular son:
SPI, I²C, UART y otros protocolos serie. Esto es generalmente denominado " bit banging ".
Comparador: puede crear una de cada dos entradas de ADC (ver arriba)
DSP: emulación de instrucciones MAC, buffers circulares, direccionamiento de bit invertido, etc.
Lo único que todos estos tienen en común es una sincronización muy precisa. Esto puede requerir un procesador muy rápido.
Por ejemplo, si uno quiere "explotar un bit" en una interfaz UART a 115.200 baudios (la velocidad en baudios más alta en uso común), un bit tendrá un ancho de 8.69 µs. Para encontrar con precisión la mitad del bit de inicio, se debe escanear al menos 8 veces más rápido, o 1 µs. (Los UART de hardware normalmente escanean dos veces más rápido, o 16X). Un módulo de captura de entrada de hardware realmente ayudaría aquí. Pero aún necesitarías escanear la mitad del bit startr más tarde.
La principal ventaja de emular hardware con firmware, es que compensa la falta de un periférico en particular en un microcontrolador, o más a menudo, compensa una cantidad insuficiente de un tipo de periférico en particular.
También evita tener que agregar periféricos adicionales a la PCB, como UART, ADC, DAC, etc. en un SPI o I²C para compensar la falta de un periférico en el microcontrolador.
La principal desventaja es la cantidad de tiempo de programación requerido y la necesidad de temporizadores adicionales. El espacio de código probablemente no sea demasiado importante, excepto para el DSP.