Тут ещё такая засада с бодами (по инфе вики): в ней учитываются служебные биты. И тогда например для RS232 с форматом 1 старт, 8 данных, 1 чётность, 1 стоп скорость в бодах будет скажем стандартная 115200 бод, а эффективная скорость в битах будет всего лишь 8/11 от 115200 или 83782 бита/с
Вот это сообщение заставило вмешаться и взять нормальную клавиатуру.
1. боды - это про изменения сигнала в секунду.
Конечно, количество изменений сигнала в секунду зависит от того, что в сигнале передаётся. Поэтому, боды - это максимальное количество изменений сигнала в секунду.
2. биты\сек - это про количество передаваемой информации (в секунду).
Для того, чтобы "почувствовать" разницу, хорошо рассмотреть крайние случаи, когда боды и биты\сек различаются в разы (на двоичные порядки).
1. Кодирование с возвращением к нулю. Боды в два раза больше битов в секунду.
2. Манчестерское кодирование. Боды в два раза больше битов в секунду (в худшем случае, а значит так и измеряем).
3. Квадратурная модуляция. Тут наоборот.
Если в созвездии 4 точки, то боды в два раза меньше, чем биты в секунду (каждое изменение сигнала кодирует два бита).
Если в созвездии 16 точек, то боды в четыре раза меньше, чем биты в секунду (каждое изменение сигнала кодирует четыре бита).
-- 19.06.2024, 21:56 --И теперь возвращаемся к асинхронной передаче данных, пресловутый UART.
Тут наблюдается "плавающая терминология". Кто влез, кто по дрова.
UART, как физический уровень передачи данных подразумевает:
а) стартовый бит
б) один или два стоповых бита
в) один или ноль бита четности (при наличии, бит четности может иметь разный смысл - дополнение до четного, или дополнение до нечетного)
г) 7 или 8 битов данных
При этом, очевидно, биты в пунктах от а) до в) никакой информации (поступившей со второго уровня ISO-OSI) не переносят.
Тогда
1. биты в пунктах от а) до в), конечно, учитываются при подсчете бод.
2.1. Можно сказать, что биты в пунктах от а) до в)
учитываются при подсчете скорости в битах в секунду. Так как это всё таки "биты в канале передачи данных". Ну и пусть, не переносят полезной информации.
Тогда
для UART боды и биты в секунду - это синонимы.
2.2. Можно сказать, что биты в пунктах от а) до в)
не учитываются при подсчете скорости в битах в секунду. Тогда для UART боды и биты в секунду - это
не синонимы.
Как правило, идут по пути 2.1. Но при пересчете битов в секунду в байты в секунду, делят не на 8, а на коэффициент больше 8, учитывающий служебные биты.
Например, для наиболее часто используемого режима 8N1 для пересчета в байты делят на 10, а не на 8. Что удобно
-- 19.06.2024, 22:07 --Для иллюстрации.
Для часто используемых скоростей UART, например, 9600, 19200 или 115000:
а) в учебной и (около) научной литературе вы найдете 9600, 19200 или 115000
бодб) в практической литературе вы найдете 9600, 19200 или 115000
бит\сек.
Очевидно, это одно и то же. Но в пункте б) при подсчете бит, которые "в секунду", учитываются и служебные биты, не переносящие информации.
-- 19.06.2024, 22:12 --в) но вы никогда не найдете пересчет 9600, 19200 или 115000 бод
в биты в секунду с учетом того, что служебные биты не переносят информации.
В байты в секунду - сколько угодно. "Переводной коэффицент" для режима UART 8N1 - см. выше.