El bloqueo de bits se produce cuando un componente o módulo de hardware UART o USART no está disponible o no se utiliza.
Básicamente significa que software necesita dar servicio a cada bit posiblemente a través de bucle, comparación de contador o interrupción.
El uso de una macro-celda de registro de desplazamiento o un componente externo no es verdadero. A menos que el software proporcione al menos el reloj o las condiciones de inicio / finalización, si un temporizador de hardware está activando un registro de desplazamiento, ha creado un ART bruto receptor, transmisor) agrega un poco más de código VHDL y es un UART (pero si consideras que el VHDL es un código, entonces es un bit banging).
EDITAR:
Sobre una reflexión más profunda, necesito hacer más aclaraciones. Los golpes de bits son diferentes de lo que puede ser el otro tipo en virtud del hecho de que se realiza un bit a la vez en lugar de un byte (o palabra) a la vez. Esto significa que el software tiene que realizar múltiples operaciones de comunicación correspondientes al trabajo realizado para cada bit con posibles sobrecargas adicionales para los bits de inicio y parada o cambios de estado según el formato / protocolo. Hace que el cambio registre la antítesis de los bits bang porque es el componente del circuito el que podrá cronometrar múltiples bits sin supervisión. Una situación incierta sería usar un registro de desplazamiento para mover los datos pero generar los bordes del reloj en el software. Esto probablemente caería en Bit-banging aún debido al hecho de que el software tiene que atender el movimiento de datos (reloj del) en una base de bit a bit (incluso con el registro de desplazamiento de datos).
Si configura un periférico ART, UART, USART, SPI, I2C, etc. y luego envía un byte (o palabra) y los datos se mueven (o ingresan) sin más asistencia de software que NO sea un bit banging.