El bit banging es un término técnico que describe un método de transmisión de datos digitales que utiliza entrada/salida de propósito general (GPIO) en lugar de hardware informático diseñado específicamente para la comunicación de datos . [ 1 ] El software de control es responsable de satisfacer los requisitos del protocolo , incluida la temporización, lo cual puede ser un desafío debido a los recursos limitados del sistema anfitrión y las demandas concurrentes sobre el software.
En cambio, el hardware de comunicación dedicado (por ejemplo, UART , SPI , I²C ) satisface los requisitos del protocolo, lo que tiende a reducir la carga de ejecución del sistema de control ( el software y su procesador principal ). En particular, algunos dispositivos de comunicación ofrecen almacenamiento en búfer de datos para disminuir la carga de ejecución del sistema de control. También existen dispositivos periféricos dedicados a la manipulación de bits, denominados entradas/salidas programables , que combinan la flexibilidad de esta técnica con la baja carga de ejecución del hardware dedicado.
El método de manipulación de bits puede permitir que un ordenador admita un protocolo con pocos o ningún cambio de hardware y, por lo tanto, puede ser una opción de menor coste, ya que cambiar el software suele ser menos costoso que cambiar el hardware.
El bit banging se usa comúnmente en sistemas embebidos . [ 2 ]
Elegir entre la transmisión de datos por manipulación directa (bit banging) y el hardware de comunicación dedicado implica sopesar la carga, el rendimiento y la fiabilidad, por un lado, y la disponibilidad del hardware, por otro. La transmisión de datos por manipulación directa consume más recursos de procesamiento que el uso de hardware dedicado. El procesador dedica gran parte de su tiempo a controlar las líneas de datos, lo que impide otras tareas de procesamiento. Además, a menos que la latencia de interrupción del hardware sea uniforme, como en los primeros modelos de Atmel PIC , y se ofrezcan otras garantías que suelen encontrarse en los diseños de procesadores de barril , como el coprocesador de E/S CDC 6600 , la transmisión de datos por manipulación directa suele resultar en una señal de menor calidad , con más fluctuaciones y fallos , especialmente si el procesador realiza otras tareas simultáneamente. Sin embargo, si el software se controla mediante interrupciones de la señal, la calidad de la señal puede ser mejor, sobre todo si se dispone de señales de control como RTS, CTS o DCD . La transmisión de datos por manipulación directa puede ser la única solución cuando no se dispone de hardware de comunicación dedicado.
Ejemplo
El siguiente ejemplo de código en lenguaje C transmite un byte de datos en un bus SPI mediante manipulación de bits.
void send_8bit_serial_data ( unsigned char data ) { // seleccionar dispositivo (activo bajo) output_low ( SD_CS );// enviar bits 7..0 para ( int i = 0 ; i < 8 ; i ++ ) { // considerar el bit más a la izquierda // establecer la línea en alto si el bit es 1, en bajo si el bit es 0 si ( data & 0x80 ) output_high ( SD_DI ); else output_low ( SD_DI );// Pulsa el estado del reloj para indicar que se debe leer el valor del bit output_low ( SD_CLK ); delay (); output_high ( SD_CLK );// desplazar byte a la izquierda para que el siguiente bit sea el dato más a la izquierda <<= 1 ; }// deseleccionar salida del dispositivo output_high ( SD_CS ); }Véase también
- Arquitectura de 1 bit : ancho de bits de la arquitectura de computadora. Páginas que muestran descripciones breves de destinos de redirección.
- Manipulación de bits : modificación algorítmica de datos por debajo del nivel de palabra.
- Flujo de bits : secuencia de dígitos binarios. Páginas que muestran descripciones breves de los destinos de redireccionamiento.
- Manipulador de bits (desambiguación)
- Arquitectura serie de bits : sistema computacional en el que los datos se envían bit a bit a través de un cable.
- Cargador rápido : programa de aceleración de software para la carga de archivos.
- FTDI – Empresa escocesa de diseño de dispositivos semiconductores
- Integrated Woz Machine : versión de un solo chip del controlador de disquete para Apple II (IWM).
- Lápiz óptico : dispositivo de entrada de computadora
- Sondeo (informática) – Proceso de muestreo del estado del dispositivo
- Radio definida por software : sistema de radiocomunicación implementado en software.
- Máquina virtual : software que emula un ordenador completo.
Referencias
- ↑ "Glosario de términos de ingeniería eléctrica (EE) de Analog Devices" . Consultado el 22 de septiembre de 2024 .
- ↑ Predko, Michael (2000). Programación y personalización de microcontroladores PICmicro (2.ª ed.). McGraw-Hill Professional . págs. 10-12 . ISBN 978-0-07-136172-9.
Enlaces externos
- Notas sobre la manipulación de bits en la comunicación asíncrona en serie
- Manipulación de bits para comunicación serial asíncrona
- Bit banging para RS-232
- I2C en AVR mediante manipulación de bits
- SPI eficiente mediante manipulación de bits para el microcontrolador 8051
- Transmisión de datos
- Procesamiento de señales
- circuitos digitales
- Sistemas embebidos