2016-03-16 1 views
1

В UART состояние по умолчанию high начнет процесс, когда он получит start bit i.e, изменение состояния high to low.
Как UART обрабатывает спайки или изменение состояния шума?

Мой вопрос В каком-то худшем случае любой spike, noise or interrupt может изменить насытить по умолчанию из high to low, которое достаточно для UART, чтобы обнаружить его в качестве стартового бита, так что не следует начинать обработку следующих битов. Я знаю, что UART внутренне обрабатывает эти сценарии и избегает обработки.

Может ли кто-нибудь объяснить мне, как ведет себя UART для этого?

+0

нет единого универсального дизайна uart, который каждый использует, и не существует стандарта, который соответствует требованиям для обработки ошибок. Поэтому нет ответа на вашу проблему ... «это зависит» ... –

ответ

1

Если падение сигнала достаточно короткое, UART может не обнаружить его как стартовый бит. Например, UART может перевыполнять линейный уровень со скоростью передачи в 16 раз и когда он обнаруживает спадающий фронт в линии RX, тогда будет искать определенное количество 0 выборок в следующих 16 для обнаружения стартового бита. Если он не видит достаточно 0 выборок, он не будет считать его стартовым битом (и может установить бит условия, который указывает на шумную/грязную линию).

Но если UART видит падение линии достаточно долго, чтобы считать его стартовым битом, UART начнет обработку, как если бы символ был получен. Если сигнал «мусор», это может привести к:

  • поддельный характер,
  • ошибка кадрирования,
  • ошибка четности (если UART сконфигурирован для проверки четности),
  • в «перерыв» сигнал (если линия остается в низком состоянии достаточно долго)

технического описания для UART устройства должно предоставить подробную информацию о том, как биты выборки & обнаружено.

-1

UART - старая, все более устаревшая технология 1970-х годов, поэтому обработка ошибок оставляет желать лучшего. На самом фундаментальном уровне UART будет запускать любое чтение по падающему фронту, который является стартовым битом.

Так что, если есть шум, который интерпретируется как падающий фронт стартового бита, UART будет затем пробовать 8 бит данных с временем выборки в соответствии с его предварительно сконфигурированной скоростью (обычно он составляет 16 раз быстрее, чем установленный бод). Он будет выбирать независимо от любых имеющихся краев. После этого он будет синхронизироваться в бит потенциальной четности, а затем 1 или 2 стоповых бита.

В точке, где считывается стоповый бит, UART проверяет правильность бит четности (если присутствует), если нет, вы получите ошибки четности. И затем он проверяет бит остановки, который должен быть высоким, иначе вы получите ошибку кадрирования.

Эти проверки ошибок составляют примерно пятьдесят/пятьдесят качеств. Ошибки в два бита или больше могут вызвать множество проблем. «Четность», в частности, является слабым методом обнаружения ошибок. Профессионалы прекратили использовать его около 30 лет назад. В целом, вероятность обнаружения ошибки аппаратными средствами очень плохая, по дизайну.

Вот почему все протоколы, основанные на UART, должны иметь множество контрольных сумм, байт синхронизации и другие такие накладные расходы для работы.UART очень уязвим для EMI, до такой степени, что вы не можете надежно использовать шины UART вне монтажной платы, без использования дифференциальных сигналов (например, RS-422).

0

UART Receiver образцы Rx линия 16 times (большинство uC) перед подтверждением значения each bit. Например, если бод равен 9600, каждое битовое время будет 104uS. Теперь, чтобы правильно определить значение каждого бита (т. Е. Его high or low), приемник UART запрашивает шину каждые 104uS/16 секунд. Большинство голосов этих образцов затем используются для определения значения бит. Начальный бит используется для указания получателю, что бит данных должен быть принят. Обязательно, чтобы начальный бит был low. Используя такую ​​схему выборки, приемник обеспечивает устранение эффектов шума.

Смежные вопросы