stringtranslate.com

Немного стук

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

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

Пример кода C

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

// передаем байт последовательно, сначала старший бит void send_8bit_serial_data ( беззнаковые символьные данные ) { int i ;      // выбираем устройство (активный низкий уровень) output_low ( SD_CS );  // отправляем биты 7..0 for ( i = 0 ; i < 8 ; i ++ ) { // учитываем крайний левый бит // устанавливаем высокий уровень строки, если бит равен 1, низкий уровень, если бит равен 0 if ( data & 0x80 ) output_high ( СД_ДИ ); еще выходной_низкий ( SD_DI );                   // импульсное состояние часов, чтобы указать, что значение бита должно быть прочитано output_low ( SD_CLK ); задерживать (); выходной_высокий ( SD_CLK );    // сдвигаем байт влево, чтобы следующий бит был самым левым данными <<= 1 ; }     // отменяем выбор устройства output_high ( SD_CS ); } 

Соображения

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

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

Рекомендации

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

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

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