Каков принцип последовательной связи UART?
09.22.2023
Что такое коммуникационный протокол UART?
UART, как один из протоколов асинхронной последовательной связи, работает путем передачи каждого символа передаваемых данных по одному. Значение каждого бита заключается в следующем:
Начальный бит: Сначала выдается логический "0", указывающий на начало передачи символа.
Бит данных: сразу после стартового бита. Количество битов данных может быть 4, 5, 6, 7, 8, и т.д., которые составляют персонаж. Обычно используется ASCII-код. Передача начинается с самого младшего бита и позиционируется по тактовой частоте.
Бит четности: Бит данных добавляется к этому биту, чтобы сделать количество битов "1" четным (четная четность) или нечетным (нечетная четность) для проверки правильности передачи данных.
Стоп-бит: это конечная метка символьных данных. Его высота может составлять 1 бит, 1,5 бита или 2 бита. Поскольку данные синхронизируются по линии передачи и каждое устройство имеет свои собственные часы, вполне вероятно, что во время обмена данными между двумя устройствами происходит небольшая рассинхронизация. Следовательно, стоп-бит не только указывает на окончание передачи, но и предоставляет компьютеру возможность скорректировать тактовую синхронизацию. Чем больше битов применяется к стоп-биту, тем больше допуск для различной тактовой синхронизации, но также и тем медленнее скорость передачи данных.
Бит холостого хода: В логическом состоянии "1" это означает, что передача данных по текущей линии отсутствует.
Принцип работы последовательной связи UART
(1) Процесс отправки данных:
Состояние ожидания, линия находится на высоком уровне; когда получена команда передачи, опустите бит данных времени T линии, затем данные отправляются в порядке от низкого к высокому, после отправки данных затем отправьте бит четности и стоп-бит, кадр передачи данных завершено.
(2) Процесс приема данных:
Когда обнаруживается нисходящий фронт (высокий уровень становится низким) линии, это означает, что по линии осуществляется передача данных, и данные принимаются от младшего бита к старшему в соответствии с согласованной скоростью передачи в бодах.
Поскольку UART является асинхронной передачей, синхронные часы передачи отсутствуют. Чтобы обеспечить корректность данных, UART использует тактовую частоту с 16-кратной скоростью передачи данных в бодах для выборки. Для каждых данных имеется 16 тактовых выборок, и берется среднее значение выборки, чтобы гарантировать, что при выборке не будет пропущен код или неправильная информация.? Как правило, количество битов данных в одном кадре UART равно 8, так что даже при наличии одной тактовой ошибки для каждых данных приемник все равно может правильно выполнить выборку данных.
Синхронизация приема данных UART выглядит следующим образом: когда обнаруживается нисходящий фронт данных, это указывает на то, что в линии есть данные для передачи, и именно тогда счетчик CNT начинает отсчет. Когда счетчик равен 24=16+8, выбранное значение является 0-м битом данных; когда значение счетчика равно 40, выбранное значение является первым битом данных, и так далее, для следующих 6 выборок данных. Если требуется проверка четности, то, когда значение счетчика равно 152, дискретизируемым значением является бит четности; когда значение счетчика равно 168, дискретизируемым значением является "1", что указывает на стоп-бит и прием данных завершен.