Первый полностью электронный терминал требовал наличия всего одного стоп-бита и мог печатать со скоростью 300 символов в секунду, обеспечивая скорость передачи 300 бод. По традиции, для каналов передачи данных используются скорости, кратные 300, например 1200, 2400, 4800, 9600 и т. д. Последовательный порт ПК может работать на скоростях до 115 200 бод. Однако придерживаться этих значений, кратных 300, вовсе не обязательно — главное, чтобы приемник и передатчик работали с одинаковой номинальной скоростью.
Обычно приемник при обнаружении входящих данных пытается прочитать значение каждого бита примерно в середине интервала его передачи. То есть на интервале передачи 10 бит будет допустимым уход частоты в пределах ±0.5 бита. Соответственно частоты приемника и передатчика должны отличаться друг от друга не более чем на ±5 %, а их ресинхронизация будет производиться в начале каждого слова данных.
Несмотря на не самую большую эффективность, описанный асинхронный протокол имеет огромное преимущество, заключающееся в том, что он является международным стандартом. Существует несколько его вариантов, к примеру, размер слова может варьироваться от 5 до 9 бит. В нашем примере длина слова равна 8 бит, причем восьмой бит используется для контроля ошибок. Значения случае малых скоростей в тело цикла может потребоваться добавить дополнительные команды nop.
При использовании этой макрокоманды формирования задержки базовые подпрограммы ввода/вывода, код которых приведен в Программе 12.14, похожи на аналогичные подпрограммы для протокола SP1. Подпрограмма PUTCHAR просто выдает на вывод ТХ сигнал НИЗКОГО уровня в течение двух периодов Baud_delay, а затем изменяет состояние вывода восемь раз в соответствии с содержимым регистра DATA_OUT, начиная с младшего бита, т. е. в обратном порядке по сравнению с протоколами SPI/I2C. В конце на вывод ТХ выдается сигнал ВЫСОКОГО уровня для формирования сигнала СТОП.