3

Я работал над созданием UART на FPGA. Я могу успешно передавать и получать отдельные символы, напечатанные на PuTTY. Однако, когда я настраиваю свою FPGA на постоянную запись больших последовательностей "A", иногда я получаю последовательности «@» или некоторые другие символы, пока не сброслю FPGA несколько раз.

Я считаю, что UART на компьютере теряет различие между начальным битом и нулем. Задержка между двумя "А" составляет ~ 30 мкс (измеряется с помощью логического анализатора), а скорость передачи составляет 115200 8N1.

Существует ли минимальная задержка между двумя последовательными кадрами RS232?

3 ответа3

2

Существует ли минимальная задержка между двумя последовательными кадрами RS232?

Нет, в EIA/RS232C такого требования нет (ни минимального, ни максимального).
Стартовый бит следующего символа может сразу следовать за стоп-битом символа.
Обратите внимание, что линия находится в режиме ожидания в состоянии маркировки, которое соответствует уровню стоп-бита.

Интересно, что вы не упоминаете бит Stop в кадре символов.

Я считаю, что UART на компьютере теряет различие между начальным битом и нулем. Задержка между двумя "А" составляет ~ 30 мкс (измеряется с помощью логического анализатора)

Вы используете неправильный инструмент для этой задачи! Вы должны использовать сферу. Вы не можете проанализировать проблему синхронизации, просмотрев сэмплированную и санированную передачу аналогового сигнала.
Разница между начальным битом и нулем заключается в синхронизации. Кадры символов передаются с асинхронной скоростью. Но биты кадра должны быть синхронизированы с указанной тактовой частотой.
Для скорости 115200 бод это будет 8,68 мксек на 1 бит. Для 8 битов данных плюс стартовый бит и стоповый бит время кадра составляет 86,8 мксек.
Ваш вопрос подразумевает, что вы не удосужились взглянуть на спецификацию EIA/RS232C для минимального времени нарастания / спада и когда сигнал обычно дискретизируется. Интересный способ реализации HW.

Возможно, вам также следует использовать частотомер, чтобы измерить генератор скорости передачи данных на каждом конце. Несовпадение в несколько процентов обычно можно терпеть. Несоответствие может вызвать симптомы, которые вы видите.
Почему получатель не сообщает об ошибках кадрирования? Вместо того, чтобы просто смотреть на вывод, возможно, вам нужно просмотреть статистику последовательного порта, т.е. /proc/tty/driver/...

1

Я подозреваю, что UART все еще очень похожи на оригинальные. Они использовали тактовую частоту 16xdata для "выборки" данных по сравнению с более ранней аналоговой схемой, в которой использовался генератор, запускаемый фронтом. Используя выборочный подход, UART может довольно точно позиционировать время выборки в середине импульсов и даже делать несколько выборок, чтобы быть немного более устойчивым к помехам.

Ваше описание неясно, поскольку вы говорите в недавнем комментарии об "обнаружении начального бита", но ранее вы подразумевали, что вы ПЕРЕДАЕТЕ, и, следовательно, вам нечего "обнаружить".

1

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

Смотрите Асинхронная последовательная связь

Сигнал RS232

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

Возможно, вам следует установить более низкую скорость, возможно, ваша ПЛИС не излучает правильно сформированный сигнал на более высоких скоростях.

Также RS232 является асинхронным, я полагаю, что это означает, что приемник должен синхронизировать свою синхронизацию на основе начального и конечного битов.

  • А является двоичным 01000001
  • @ является двоичным 01000000

Разница заключается в точном выборе времени. При неточной синхронизации приемник может считать шесть вместо пяти, в то время как утверждается +3 ... 15 В.

См. Синхронизация сигнала и Характеристики сигнала

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .