Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Удаленная работа
Помощь проекту


Калькулятор кадра UART (время и скорость)



Кадр UART (время/скорость)

Время передачи байта и реальная пропускная способность UART по скорости, числу бит данных, чётности и стоп-битам. Учитывает служебные биты кадра.

бод
байт

Как работает кадр UART и что считает калькулятор

UART (асинхронный последовательный порт) передаёт данные без отдельной линии тактирования: приёмник и передатчик заранее договариваются о скорости, а синхронизация восстанавливается по каждому кадру. Скорость задаётся в бодах — это число символов линии в секунду, и для двухуровневого сигнала «бод» численно равен «биту в секунду», но считая вместе со служебными битами. Именно поэтому пропускная способность по полезным данным всегда ниже цифры на этикетке порта: часть времени линия занята стартом и стопом. Калькулятор берёт скорость, число бит данных, наличие чётности и количество стоп-битов, собирает из них длину кадра и переводит её во время передачи одного байта, в реальную пропускную способность (байт/с) и в эффективность кадра.

Бит/кадр = 1 (старт) + данные + чётность (0/1) + стоп (1/1,5/2)
Время байта = бит/кадр / baud    байт/с = baud / бит/кадр
Эффективность = данные / бит-в-кадре · 100 %

Формула прямая: длина кадра — это сумма одного старт-бита, выбранного числа бит данных (обычно 8, реже 5–9), нуля или одного бита чётности и одного, полутора или двух стоп-битов. Разделив длину кадра на скорость, получаем время «на проводе» для одного байта; поделив скорость на длину кадра — сколько байт в секунду реально уходит в линию. Эффективность показывает, какая доля времени тратится именно на данные, а не на обрамление кадра.

Из чего состоит кадр и зачем каждый бит

Кадр всегда начинается со старт-бита — перепада линии из состояния покоя (лог. 1) в 0. Этот фронт запускает внутренний счётчик приёмника, который затем сэмплирует середину каждого следующего бита. Далее идут биты данных, младшим вперёд (LSB first). Необязательный бит чётности добавляет простейший контроль ошибок: он дополняет число единиц до чётного или нечётного, что ловит любое одиночное искажение. Завершают кадр стоп-биты (лог. 1) — они гарантируют паузу перед следующим стартом и дают приёмнику время обработать байт. Полтора и два стоп-бита исторически нужны были медленным устройствам и до сих пор встречаются в промышленных протоколах. Запись «8N1» читается как 8 бит данных, No parity (нет чётности), 1 стоп — самый распространённый формат, дающий кадр ровно в 10 бит.

Обе стороны обязаны использовать одинаковый формат и одинаковую скорость: асинхронная схема не передаёт тактовую частоту, поэтому расхождение бодрейта накапливается по кадру и на последних битах сэмпл может «съехать» в соседний. Допустимое рассогласование — порядка ±2…3 % на 10-битном кадре; сколько именно ошибки даёт ваш делитель, удобно прикинуть в калькуляторе ошибки бодрейта. Сам делитель скорости в микроконтроллере задаётся через тактовый модуль — его считает таймер/прескейлер МК.

Время передачи, пропускная способность и эффективность

Время одного бита равно 1/baud, а время байта — это длина кадра, умноженная на время бита. При 8N1 накладные расходы составляют 2 бита из 10, то есть эффективность 80 %: пятая часть канала уходит на обрамление. Добавление чётности или второго стоп-бита удлиняет кадр до 11–12 бит и роняет эффективность до 73–67 %, зато повышает надёжность. Пропускная способность в байтах в секунду — это просто скорость, делённая на длину кадра, и она напрямую задаёт, уложится ли поток в требуемый темп: например, лог с датчика на 10 строк по 64 байта в секунду требует минимум 640 байт/с полезных, то есть 6400 бод с запасом. Для непрерывных потоков (аудио, телеметрия) удобно сверять требуемую цифру с калькулятором битрейта потока.

Полезно помнить и про приём: аппаратный UART внутри сэмплирует каждый бит с частотой в 8 или 16 раз выше бодрейта, чтобы точно попасть в его середину и отфильтровать дребезг фронта. От этого зависит, какой запас по рассогласованию частот у вас есть на практике. А время байта задаёт крайний срок обслуживания прерывания: если обработчик приёма не успеет забрать байт из регистра за один интервал кадра, следующий байт затрёт предыдущий — возникнет overrun. Поэтому на высоких скоростях (230400 бод и выше) почти всегда включают аппаратный FIFO или приём по DMA, а расчётное время байта из таблицы служит нижней границей бюджета времени на один принятый символ.

Стандартные скорости и время байта (8N1, 10 бит)

В таблице — привычный ряд скоростей UART, время передачи одного байта в формате 8N1 и полезная пропускная способность. Значения посчитаны по тем же формулам, что и виджет выше.

Скорость, бодВремя байтаПропускная, байт/с
96001,04 мс960
19200520,8 мкс1920
38400260,4 мкс3840
57600173,6 мкс5760
11520086,8 мкс11520
23040043,4 мкс23040
92160010,9 мкс92160

Где применяют — и где не годится

Расчёт кадра нужен всюду, где по последовательному порту гонят данные с жёстким темпом: отладочные логи микроконтроллеров, GPS-модули (NMEA на 9600), модемы и радиомодули, обмен с дисплеями и датчиками. Зная время байта, легко оценить, успеет ли обработчик прерывания разгрести приём, и не переполнится ли буфер FIFO при заданной скорости. Для дальней и помехозащищённой связи тот же кадр UART кладут на дифференциальную физику линии RS-485 — логика бит остаётся прежней, меняется только уровень сигнала. А вот для синхронных шин формула не применима: шина I2C и SPI тактируются отдельной линией, а у битового тайминга CAN кадр устроен принципиально иначе (арбитраж, стаффинг-биты, CRC), поэтому их длину и скорость считают своими калькуляторами. Также учтите: реальная пропускная способность на прикладном уровне ещё ниже расчётной — её съедают паузы между байтами, переключение направления в полудуплексе и служебные поля протокола поверх UART.

Пример

Значения по умолчанию: 115200 бод, 8 бит данных, чётности нет, 1 стоп-бит (формат 8N1). Длина кадра = 1 + 8 + 0 + 1 = 10 бит. Время байта = 10 / 115200 ≈ 86,81 мкс. Пропускная способность = 115200 / 10 = 11520 байт/с. Эффективность = 8 / 10 · 100 = 80 %. Если в поле «Передать N байт» вписать 256, калькулятор покажет время блока = 256 · 10 / 115200 ≈ 22,22 мс. Добавьте бит чётности — кадр станет 11 бит, время байта вырастет до ≈ 95,5 мкс, а эффективность упадёт до ≈ 72,7 %.

См. также: ошибка бодрейта · таймер/прескейлер МК · битрейт потока · линия RS-485 · шина I2C · тайминг CAN · все калькуляторы


Частые вопросы

Сколько времени передаётся байт по UART?

Время = бит в кадре / скорость. Кадр = 1 старт-бит + биты данных + бит чётности (если есть) + стоп-бит(ы). Для 8N1 это 10 бит: на 115200 бод байт идёт 10/115200 ≈ 86,8 мкс.

Почему реальная скорость ниже бод?

Бод — это все биты в секунду, включая служебные. На каждый байт данных приходятся старт/стоп/чётность, поэтому полезная скорость меньше. При 8N1 эффективность 80% (8 бит данных из 10 в кадре).


Похожие калькуляторы — Embedded / интерфейсы
Pull-up I2C  ·  RS-485 линия  ·  ADC ↔ напряжение  ·  ШИМ (скважность)  ·  Таймер/прескейлер МК  ·  ШИМ-ЦАП фильтр  ·  все калькуляторы →


© 2003—2026 «KAZUS.RUN - Электронный портал»