Я знаю 9600, 19200, 38400, 57600, 115200 и 1,8432 МБод, но других нет. Почему используются эти значения, и это просто удваивается каждый раз, или происходит что-то более сложное (например, 38400 в четыре раза - это не 115200 бод?)
Причина, по которой я задаю этот вопрос, заключается в том, что я создаю что-то, что может взаимодействовать с различными скоростями передачи. Он инициализируется в 9600, а затем переключается на определенную скорость передачи данных. Но я не могу поддерживать произвольные скорости, потому что используемый мной dsPIC33F не поддерживает произвольные скорости, поскольку он ограничен 16-битным счетчиком BRG. В этом отношении он похож на многие другие процессоры.
Ответы:
Это началось очень давно с телетайпов - я думаю, 75 бод. С тех пор он в основном удваивался с несколькими дробными (x1,5) коэффициентами, например, 28 800, где были ограничения на технологию модема телефонной линии, которая не позволяла ему удвоиться.
Стандартные значения кристаллов получены из этих ранних бодратов, и их доступность определяет будущие показатели. Например,
Большинство UARTS используют тактовую частоту скоростей, более современные части (например, NXP LPC) имеют дробные делители, чтобы получить более широкий диапазон с использованием недвоичных кратных.2N× 16
Другими общими стандартами являются 31,250 (MIDI) и 250K (DMX), оба из которых, вероятно, выбраны в качестве хороших кратных «круглых» тактов, таких как 1 МГц и т. Д.
источник
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, когда скорости модемов не могли быть удвоены в то время, но редко используются больше.
источник
zip(*serial.Serial('COM10').getSupportedBaudrates())
он отвечает:(50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200)
В течение долгого времени было принято использовать для связи подмножки 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.
источник
Оригинальный IBM PC имел 8250 UART. Это заняло тактовую частоту 1,8432 МГц и разделило его на некоторое целое число, чтобы сгенерировать его внутренние тактовые импульсы, и эти тактовые импульсы работают с 16 тактами на бит.
Значение 1 в регистре делителей дает вам 115 200, 2 - 57 600, 3 - 38 400, 6 - 19 200 и т. Д.
Лучше всего использовать DSPIC с тактовой частотой 1,8432 МГц.
источник