Бит-бэнгинг относится к концепции того, чтобы сигналы, которые выходят из устройства или поступают в него, генерировались / отбирались программным, а не аппаратным обеспечением. Очевидно, что требуется какое-то оборудование, но при использовании битового разброса единственным оборудованием для каждого выхода является защелка, которая может быть явно установлена или очищена программным обеспечением, а единственным оборудованием для каждого входа является интерфейс, позволяющий программному обеспечению проверить, является ли оно высокий или низкий (и обычно выполняют условную ветвь для одного состояния, но не для другого).
Максимальная скорость, которая может быть достигнута с помощью битовой синхронизации, обычно составляет часть от той, которая может быть достигнута с помощью специализированного аппаратного обеспечения, но вне ограничений, налагаемых скоростью процессора, битовая комбинация является гораздо более универсальной и может использоваться в обстоятельствах где оборудование общего назначения не совсем подходит, а оборудование специального назначения не будет экономически эффективным.
Например, многие контроллеры имеют порт «SPI-style», который ведет себя по существу следующим образом: когда байт записывается в определенный регистр, аппаратное обеспечение будет генерировать некоторое количество тактовых импульсов (обычно восемь), синхронизируя бит данных на передний фронт каждого тактового импульса и выборка входного бита данных на заднем фронте. Обычно порты в стиле SPI контроллеров позволяют настраивать различные функции, но в некоторых случаях может потребоваться сопряжение процессора с устройством, которое выполняет что-то необычное. Устройство может требовать, чтобы биты данных были обработаны с кратными, отличными от восьми, или оно может требовать, чтобы данные выводились и отбирались на одном и том же фронте тактового сигнала, или оно может иметь некоторые другие необычные требования. Если конкретное оборудование на используемом контроллере может поддерживать точные требования, отлично (некоторые предоставляют настраиваемое количество битов, отдельно конфигурируемую синхронизацию передачи и приема и т. д.) Если нет, может быть полезна разбивка битов. В зависимости от контроллера, синхронизация битов интерфейса SPI-ish часто занимает в 2-10 раз больше времени, чем позволяет аппаратному обеспечению обрабатывать его, но если требования не соответствуют аппаратному обеспечению, обмен данными медленнее может быть лучше, чем не будучи в состоянии сделать это вообще.
Одна важная вещь, которую следует отметить при проектировании с побитовым битом, - это то, что они являются простейшими и наиболее надежными в обстоятельствах, когда либо устройства, с которыми осуществляется связь, ожидают на контроллере побитового битования, чтобы сгенерировать все свои временные характеристики, либо когда контроллеру будет разрешено ждите, не отвлекаясь, событие, чтобы прибыть, и где он сможет сделать все, что нужно сделать с этим событием, прежде чем наступит любое другое событие, на которое он должен действовать. Они гораздо менее устойчивы в условиях, когда устройство должно быть способно реагировать на внешние раздражители в течение относительно короткого периода времени, но не может направить 100% своей энергии на отслеживание таких раздражителей.
Например, предположим, что требуется, чтобы процессор передавал данные в стиле UART последовательно со скоростью, которая очень высока относительно его тактовой частоты (например, PIC, который выполняет 8192 команды в секунду, желает выводить данные со скоростью 1200 бит / с). Если никакие прерывания не разрешены, такая передача не является трудной (синхронизируйте один бит каждые семь циклов команд). Если PIC ничего не делает, кроме ожидания входящего байта данных со скоростью 1200 бит / с, он может выполнить 3-тактный цикл, ожидающий стартовый бит, а затем перейти к синхронизации данных с семичастными интервалами. Действительно, если бы у PIC был байт данных, готовый к отправке, когда поступил входящий байт данных, для PIC было бы достаточно времени, чтобы PIC отправил свой байт данных одновременно с чтением входящего байта. Точно так же,если такой ответ будет иметь фиксированное время относительно первоначальной передачи . С другой стороны, для PIC не было бы возможности обрабатывать обмен данными по битам таким образом, чтобы любому устройству было разрешено передавать в любое удобное время (в отличие от наличия одного устройства, которое могло бы передавать, когда оно видит). подходит и делает все, что угодно, когда не передает, и одно устройство, которое должно было бы тратить большую часть своего времени, ничего не делая, кроме ожидания передачи с первого устройства).