Бит стучать - Bit banging

В компьютерная инженерия и электротехника, немного стучать это жаргон для любого метода передача информации который использует программное обеспечение вместо специализированного оборудования для генерации передаваемых сигналов или обработки полученных сигналов. Программное обеспечение непосредственно устанавливает и образцы состояния GPIO (например, булавки на микроконтроллер ), и отвечает за соблюдение всех требований к синхронизации и протокольной последовательности сигналов. В отличие от битового стука, специализированное оборудование (например, UART, SPI интерфейс ) удовлетворяет этим требованиям и при необходимости обеспечивает буфер данных чтобы снизить требования к программному обеспечению по времени. Bit banging может быть реализован с очень низкими затратами и обычно используется в встроенные системы.[1]

Bit banging позволяет устройству реализовывать различные протоколы с минимальными аппаратными изменениями или без них. В некоторых случаях использование битов становится возможным благодаря новым, более быстрым процессорам, потому что более современное оборудование работает намного быстрее, чем оборудование, когда были созданы стандартные протоколы связи.

Пример кода C

Следующее Язык C пример кода передает байт данных на SPI автобус.

// Последовательная передача байта, сначала MSBпустота send_8bit_serial_data(беззнаковый char данные){   int я;   // выбираем устройство (активный минимум)   output_low(SD_CS);   // отправляем биты 7..0   для (я = 0; я < 8; я++)   {       // рассматриваем крайний левый бит       // установить высокий уровень строки, если бит 1, низкий уровень, если бит 0       если (данные & 0x80)           output_high(SD_DI);       еще           output_low(SD_DI);       // импульсы состояния часов, чтобы указать, что битовое значение должно быть прочитано       output_low(SD_CLK);       задержка();       output_high(SD_CLK);       // сдвинуть байт влево, чтобы следующий бит был крайним левым       данные <<= 1;   }   // отменить выбор устройства   output_high(SD_CS);}

Соображения

Вопрос о том, следует ли развертывать битовую синхронизацию или нет, является компромиссом между нагрузкой, производительностью и надежностью, с одной стороны, и доступностью аппаратной альтернативы, с другой. Процесс программной эмуляции потребляет больше вычислительной мощности, чем поддержка выделенного оборудования. Микроконтроллер тратит большую часть своего времени на отправку или получение образцов к контактам и от них за счет других задач. Производимый сигнал обычно имеет больше дрожь или глюки, особенно если процессор одновременно выполняет другие задачи. Однако, если программа для обработки битов прервать - управляемые сигналом, это может иметь второстепенное значение, особенно если управляющие сигналы, такие как РТС, CTS, или DCD доступны. Программная реализация может быть решением, когда конкретная аппаратная поддержка недоступна или требует более дорогого микроконтроллера.

Смотрите также

использованная литература

  1. ^ Предко, Михаил (2000). Программирование и настройка микроконтроллеров PICmicro (2-е изд.). McGraw-Hill Professional. стр.10 –12. ISBN  978-0-07-136172-9.

внешние ссылки

Асинхронный последовательный (RS-232)
Автобус I²C
Автобус SPI