Требуется ли точная скорость передачи данных в последовательной связи (USB или RS232)?


8

В последовательной связи означает, что скорость передачи данных означает, что мы должны использовать точную тактовую частоту или это диапазон частот, который мы можем использовать?

и если это точное значение, насколько оно должно быть? например, могу ли я использовать 555 в качестве часов цепи последовательной связи?


UART обычно может терпеть отклонение около ~ 3%. Зависит от конкретного, хотя.
Евгений Ш.

Для USB это будет указано в стандарте, который можно бесплатно скачать.
Фотон

Ответы:


6

Время должно быть достаточно точным, чтобы не рассыпаться до повторной синхронизации протокола.


Последовательный UART повторно синхронизирует каждый байт, и байт составляет около 10 бит (8 бит данных плюс начало и конец). Мы предполагаем, что наш UART ориентирован на середину каждого бита. Если все идеально и неточен только один конец, то есть разница между двумя концами ссылки составляет примерно 5%.

Однако:

  1. Оба конца ссылки могут быть неточными относительно номинала. В худшем случае один конец может быть ниже номинального, а другой - выше номинального.
  2. Могут быть систематические неточности. Например, большинство UARTS имеют ограниченный диапазон настроек генератора скорости передачи.
  3. Ваш UART основан на главных часах с конечной скоростью. Даже если генератор тактовой частоты и скорости передачи данных идеален, это приведет к тому, что он не достигнет точной середины каждого бита.

Суть в том, что 1% ошибок на ваших часах почти наверняка в порядке. Ошибка 5% почти наверняка является проблемой. Между этими двумя цифрами это может быть или не быть проблемой в зависимости от общей картины.

Это высокий заказ для RC генератора. Допустим, ваш R имеет допуск 1%, а ваш C допуск 2%. Это дает примерно 3% допуска к постоянной времени в сети RC, и это до того, как вы начнете думать о любых ошибках, вносимых вашей микросхемой драйвера.

Итак, суть в том, что вы должны смотреть на кристаллический или керамический резонатор.


Что касается USB, у меня нет опыта анализировать с первых принципов, но https://www.silabs.com/community/interface/knowledge-base.entry.html/2004/03/15/usb_clock_tolerance-gVai говорит, что 1,5% для низкой скорости и 0,25% для полной скорости.


Если можно запрограммировать скорость передачи данных в 3% или более точных шагах и использовать подходящую последовательность «обучения», точность RC не может быть проблемой. Если кто-то знает, что другой конец будет попеременно отправлять 0xF8 и 0xF0 (низко для четырех и пяти битов соответственно), устанавливая скорость передачи на 33% быстрее, это должно привести к последовательному получению 0xF0 (5,33 битов) и 0x80 (6,67 битов). раз). Получив другие значения, вы узнаете, что кто-то быстрее или медленнее, чем эта скорость «33% больше», а получение повторных 0xF0 0x80 будет означать, что нужно снизить скорость на 25% и начать реальное общение.
суперкат

8

В УАППАХ , обычно используемые в серийных системах RS - 232 типа работают путем отбора проб линии данных где - то в середине бита в соответствии с делением заранее определенной скоростью передачи данных базовой тактовой частоты. Таким образом, если отправленные данные и приемник не находятся на одной частоте, «точка выборки» будет перемещаться ближе к границе битового кадра в последовательных битах.

При обычном UART длина бита для байта составляет 10 или 11 бит. 1 старт, 8 данных и 1 или 2 стоповых бита. Половина блуждания 10-го бита приводит к ошибке 0,5 / 10 = 5%.

Однако в действительности ваш допуск меньше, чем тот, потому что вам также нужно добавить в задержку базового периода частоты, которая добавит смещение от переднего фронта начального бита. Чем выше ваша базовая частота, тем меньше эффект.

Что касается использования таймера 555 для этой цели, я бы не рекомендовал его, если вы не планируете ручную регулировку в цепи 555.

УСАПП с другой стороны , использует более сложный способ управления , что попытки синхронизировать передачу в принятых данных. Это может быть достигнуто за счет использования шаблона данных, который имеет встроенные тактовые импульсы, использования переданных тактовых импульсов или некоторой формы фазовой синхронизации с полученными фронтами данных. (Хотя, возможно, последний действительно псевдосинхронный.)


Поскольку вы знаете, о чем говорите, я подумал упомянуть аббревиатуру «U S ART», которая должна быть частью этого ответа. Ну, это сделало бы ответ полным по моему мнению, и после этого заслуживает +1 от меня.
Гарри Свенссон

1
@HarrySvensson хм .. я согласен .. но попытка решить, что просто делает ответ более запутанным для 555 упаковки OP.
Trevor_G

1
USART отличается тем, что может быть синхронным. И если он используется в качестве синхронного интерфейса, то часы являются общими для обоих концов, и тогда тактовая частота не имеет значения.
gbarry

1
О, хорошо, это может быть в комментариях вместо этого, спасибо @gbarry. Я не против +1 к Тревору.
Гарри Свенссон

@HarrySvensson Я добавил короткое, волнообразное объяснение разницы для полноты ..
Trevor_G
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.