Какие стандартные ставки UART существуют?

33

Я знаю 9600, 19200, 38400, 57600, 115200 и 1,8432 МБод, но других нет. Почему используются эти значения, и это просто удваивается каждый раз, или происходит что-то более сложное (например, 38400 в четыре раза - это не 115200 бод?)

Причина, по которой я задаю этот вопрос, заключается в том, что я создаю что-то, что может взаимодействовать с различными скоростями передачи. Он инициализируется в 9600, а затем переключается на определенную скорость передачи данных. Но я не могу поддерживать произвольные скорости, потому что используемый мной dsPIC33F не поддерживает произвольные скорости, поскольку он ограничен 16-битным счетчиком BRG. В этом отношении он похож на многие другие процессоры.

Томас О
источник
На практике 16-битный счетчик плюс до / после масштабирования более чем достаточно, чтобы «приблизиться» к произвольным скоростям передачи. Серийный UART может терпеть небольшие несоответствия скорости передачи.
Питер Грин
Uart начинается в середине бита START и должен оставаться около середины бита STOP после сериализации 7-10 битов. Что делает минимальную точность тактового генератора около 2-3%, предпочтительно лучше для обработки шума, джиттера, отклонений в частоте источника ...
TEMLIB

Ответы:

36

Это началось очень давно с телетайпов - я думаю, 75 бод. С тех пор он в основном удваивался с несколькими дробными (x1,5) коэффициентами, например, 28 800, где были ограничения на технологию модема телефонной линии, которая не позволяла ему удвоиться.

Стандартные значения кристаллов получены из этих ранних бодратов, и их доступность определяет будущие показатели. Например,

7,3728MЧАСZ16знак равно460,800бод7,3728MЧАСZ64знак равно115,200бод,

Большинство UARTS используют тактовую частоту скоростей, более современные части (например, NXP LPC) имеют дробные делители, чтобы получить более широкий диапазон с использованием недвоичных кратных.2N×16

Другими общими стандартами являются 31,250 (MIDI) и 250K (DMX), оба из которых, вероятно, выбраны в качестве хороших кратных «круглых» тактов, таких как 1 МГц и т. Д.

mikeselectricstuff
источник
4
Я не думаю, что дробные делители предназначены для получения нестандартных битрейтов, а скорее стандартные битрейты от нестандартных тактовых частот MCU.
Johan.A
3
Я восстановил два телетайпа 1926 года, еще в колледже (1976), и да, они работали со скоростью около 75 бод. Они были маркированы телетайпами бодо. Подключенный к 110 В переменного тока, и двигатель обеспечил синхронизацию, с электрическим соединением между ними. Я погрузил их в бензин, чтобы очистить их. (Дайте мне перерыв - мне было 18. Но это сработало!) Кларк-G позвонил в честный звонок на другой. Увы, я даже не помню, кому я их отдал. :-( Так что, да, вы бы набрали на механической клавиатуре, она бы механически сериализовала ваши нажатия клавиш и
Даг
Yay, Ревущие 20-ые! Какая качественная технология прослужит 50 лет и попадет в сарай Джона Сильвы в Хейворде, штат Калифорния.
Даг
32

RealTerm, бесплатная терминальная программа для Windows, перечисляет эти скорости UART в своем меню Baud:

110, 150, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600

Однако на самом деле это биты в секунду (бит / с), а не скорость передачи - см. Ниже.

110 бод использовались 8-уровневыми телетайпами, такими как ASR-33. Я не знаю, где использовалось 150 бод, но это удвоение 75 бод, обычно используемое (вместе с 60 бод) для TTY с 5 уровнями.

Скорость 300 бит / с была стандартом для первых широко используемых телефонных модемов в 1960-х годах. В то же время появилось количество терминалов по 30 символов в секунду.

При скорости выше 300 бит / с / 300 бод, в которой используется простая частотная манипуляция (FSK), значения для бит / с и бод (символов или тонов в секунду) не совпадают. Например, модем со скоростью 1200 бит / с фактически работает со скоростью 600 бод, а модем со скоростью 4800 бит / с работает со скоростью 1600 бод. Обратитесь к таблице под Полосы пропускания в этой статье . Разница заключается в том, что в дополнение к использованию определенного количества тональных импульсов в секунду, используется фазовая манипуляция и другие методы для извлечения дополнительной полосы пропускания из той же скорости передачи данных, чтобы получить более высокие и более высокие бит / с. (Таким образом, модем 56K работает только на скорости 8000 бод.)

Как видите, список скоростей UART, по сути, начинался с 75 и непрерывно удваивался (пропуская 600), пока не достиг 38400, где он был умножен на 1,5, чтобы получить 57600. 56 Кбит / с - это предел для аналоговой телефонной линии. Более высокие скорости 115200 и выше (снова удвоение, начиная с 57600) используются для проводных соединений.

Как упоминалось в mikeselectricstuffs, 14400 и 28800 бит / с были введены как 1,5 x 9600 и 1,5 x 19200, когда скорости модемов не могли быть удвоены в то время, но редко используются больше.

tcrosley
источник
7
Не для того, чтобы быть педантичным, но программа может поддерживать только то, что позволяет аппаратное обеспечение. Это может даже не беспокоить, а просто перечислить стандартные скорости. Отвечая на мое оборудование, zip(*serial.Serial('COM10').getSupportedBaudrates())он отвечает:(50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200)
Ник Т
2
В восьмидесятых годах я использовал полудуплексный акустический переходник со скоростью 600 бит / с. 75 бит / с долгое время использовались в немецкой системе BTX в направлении выгрузки, скорость была 1200 бит / с.
звездный синий
2
Я также видел 62,5 кБод. На самом деле, это также зависит от ваших основных часов, вы можете рассчитать, какие скорости передачи данных приведут к достаточно низкой ошибке.
вс
5

В течение долгого времени было принято использовать для связи подмножки 115 200, либо подмножки с степенью двух 38 400, либо 57 600, либо 115 200. Большинство ПК поддерживает эти скорости. Некоторое оборудование ПК может поддерживать 230 400 или 460 800. Обратите внимание, что многие встроенные контроллеры, такие как скорости передачи данных, которые кратны их собственным тактовым частотам, и некоторые микросхемы USB-to-serial могут поддерживать любое целое число, кратное 3 000 000 бит / с, поэтому скорости, такие как 1 000 000 бит / с или 1 500 000 бит / с, вероятно, станут более распространенными для устройства для подключения к ПК через USB-чипы.

Кстати, стоит упомянуть еще одну скорость: 31,250 бит / с - это скорость, используемая для стандартного MIDI.

Supercat
источник
4

Оригинальный IBM PC имел 8250 UART. Это заняло тактовую частоту 1,8432 МГц и разделило его на некоторое целое число, чтобы сгенерировать его внутренние тактовые импульсы, и эти тактовые импульсы работают с 16 тактами на бит.

Значение 1 в регистре делителей дает вам 115 200, 2 - 57 600, 3 - 38 400, 6 - 19 200 и т. Д.

Лучше всего использовать DSPIC с тактовой частотой 1,8432 МГц.

Jasen
источник