stringtranslate.com

poco golpeando

En ingeniería informática e ingeniería eléctrica , bit banging o bit bashing [ cita requerida ] es un término técnico para cualquier método de transmisión de datos que emplee software como sustituto del hardware dedicado para generar señales transmitidas o procesar señales recibidas. Dicho software establece y toma muestras directamente de los estados de los GPIO (por ejemplo, pines de un microcontrolador ) para transmitir y recibir, respectivamente, y es responsable de cumplir con todos los requisitos de temporización y secuenciación de protocolos de las señales. A diferencia del bit banging, el hardware dedicado (p. ej., UART , SPI , I²C ) satisface estos requisitos y, si es necesario, proporciona un búfer de datos para relajar los requisitos de temporización del software. La explosión de bits se puede implementar a un costo muy bajo y se usa comúnmente en sistemas integrados . [1]

La explosión de bits permite que un dispositivo implemente diferentes protocolos con cambios de hardware mínimos o nulos. En algunos casos, la explosión de bits es factible gracias a procesadores más nuevos y más rápidos porque el hardware más reciente opera mucho más rápido que el hardware cuando se crearon los protocolos de comunicaciones estándar.

ejemplo de código C

El siguiente ejemplo de código en lenguaje C transmite un byte de datos en un bus SPI .

// transmite el byte en serie, MSB primero anula send_8bit_serial_data ( datos de caracteres sin firmar ) { int i ;      // selecciona el dispositivo (activo bajo) salida_baja ( SD_CS );  // envía los bits 7..0 for ( i = 0 ; i < 8 ; i ++ ) { // considera el bit más a la izquierda // establece la línea alta si el bit es 1, baja si el bit es 0 if ( datos y 0x80 ) salida_alta ( SD_DI ); de lo contrario salida_baja ( SD_DI );                   // pulsa el estado del reloj para indicar que se debe leer el valor del bit output_low ( SD_CLK ); demora (); salida_alta ( SD_CLK );    // desplaza el byte hacia la izquierda para que el siguiente bit sean los datos más a la izquierda <<= 1 ; }     // deselecciona el dispositivo salida_alta ( SD_CS ); } 

Consideraciones

La cuestión de si implementar bit banging o no es una compensación entre carga, rendimiento y confiabilidad, por un lado, y la disponibilidad de una alternativa de hardware, por el otro. El proceso de emulación de software consume más potencia de procesamiento que el soporte de hardware dedicado. El microcontrolador dedica gran parte de su tiempo a enviar o recibir muestras hacia y desde los pines, a expensas de otras tareas. La señal producida suele tener más jitter o glitches , especialmente si el procesador también está ejecutando otras tareas mientras se comunica. Sin embargo, si el software de bit-banging es impulsado por la señal, esto puede ser de menor importancia, especialmente si hay disponibles señales de control como RTS, CTS o DCD . La implementación en software puede ser una solución cuando no se dispone de soporte de hardware específico o se requiere un microcontrolador más costoso.

Ver también

Referencias

  1. ^ Predko, Michael (2000). Programación y personalización de microcontroladores PICmicro (2ª ed.). Profesional de McGraw-Hill . págs. 10-12. ISBN 978-0-07-136172-9.

enlaces externos

Serie asíncrona (RS-232)
Autobús I²C
Autobús SPI