Bit-banging
— технология организации
последовательного соединения
с использованием программной эмуляции вместо специализированного аппаратного устройства. Программа непосредственно устанавливает состояние
GPIO
выводов на микроконтроллере (либо
LPT
на компьютере), таким образом полностью обеспечивая нужные характеристики сигнала. Обычно используется в дешевых устройствах.
Содержание
Ограничения
Скорость эмулированного устройства ограничена временем установки вывода и временем исполнения кода. Поэтому Bit-banging как правило используется для эмуляции низкоскоростных устройств или низкоскоростных версий устройств
Сложно гарантировать точное время выполнения кода, что может создавать проблемы при реализации протоколов, чувствительных к синхронизации
Программная эмуляция расходует ресурсы процессора
Полученный сигнал может иметь высокий
джиттер
, особенно если процессор выполняет другие задачи, кроме коммуникации
Требуется ручное согласование уровней сигналов и токов
, без которого можно повредить GPIO выводы или второе устройство, участвующее в протоколе
Применение
В ядре
Linux
есть поддержка эмуляции
I²C
через GPIO
.
С помощью техники Bit-banging можно добавить поддержку последовательного порта
и I2C к устройствам PIC.
Иногда также реализуются программаторы
JTAG
, например, на устройствах
Arduino
.
Существуют реализации простейших
USB
устройств
на GPIO выводах без применения специальных микросхем, реализующих физический уровень (PHY).
Некоторые USB-to-serial адаптеры, например FT232 позволяют работу в режиме bitbang.
Некоторые контроллеры MMC/SD можно перевести в режим, в котором они выдают 4-5 высокочастотных сигнала. Например, с помощью контроллера из состава СнК Jz4720 удавалось создать
VGA
-сигнал
.
Примечания
Michael Predko.
. — 2nd. — McGraw-Hill Professional, 2000. — P. 10–12. —
ISBN 978-0-07-136172-9
.
Mike Szczys
.
от 30 декабря 2013 на
Wayback Machine
. — 2013. — February 21.
(неопр.)
. Дата обращения: 30 декабря 2013.
31 декабря 2013 года.
(неопр.)
. Дата обращения: 15 мая 2011. Архивировано из
26 июля 2013 года.
(неопр.)
. Дата обращения: 30 декабря 2013.
30 декабря 2013 года.
(неопр.)
. Дата обращения: 30 декабря 2013.
30 декабря 2013 года.
(неопр.)
. Дата обращения: 30 декабря 2013.
30 декабря 2013 года.
(неопр.)
. Дата обращения: 30 декабря 2013.
31 декабря 2013 года.
(неопр.)
. Дата обращения: 1 января 2014.
17 апреля 2014 года.
Mike Szczys (2011-05-10).
.
из оригинала
2 января 2014
. Дата обращения:
1 января 2014
.