roboforum.ru

Технический форум по робототехнике.

Как определить скорость UART аппаратно

Как определить скорость UART аппаратно

ishvedov » 27 дек 2007, 18:27

Т.е. есть одно устройство (будет) - логгер. Будет тырить протоколы обмена. Нужно как-то организовать на АВР и соответвующей обвеске определение скорости УАПП. Может у кого-нибудь была такая головная боль?

Re: Как определить скорость UART аппаратно

Strijar » 27 дек 2007, 18:46

Видимо только по длине старт-бита...

Добавлено спустя 2 минуты 33 секунды:
Опс.. у него длины то и нет, за ним сразу данные

Re: Как определить скорость UART аппаратно

ishvedov » 27 дек 2007, 19:08

Я не помню где-то очень давно читал что можно определить скорость УАПП толи через компаратор толи еще как, нигде эту статью не могу найти...

Re: Как определить скорость UART аппаратно

Strijar » 28 дек 2007, 10:55

Если знать что передается - то легко. Было у меня одно устройство - при подключении терминалки надо было нажать несколько раз пробел, оно по нему и выставляло скорость

Re: Как определить скорость UART аппаратно

ishvedov » 29 дек 2007, 00:10

Дело в том что байты могут быть абсолютно любыми...

Re: Как определить скорость UART аппаратно

-= Александр =- » 09 янв 2008, 22:53

Сделать переключатель и подбирать вручную - стандартных скоростей не так уж и много.
А если хочется автоматики - сделать программную "эмуляцию" - тоесть ловить фронты и метки времени, а потом уже разгребать. Думаю на небольших скоростях все это в реальном времени можно прокрутить.
Еще у аппаратного USARTа есть такая хрень как байт статуса - он может сказать что ошибка - значит скорость не та. Но байт будет уже потерян. Да и не всегда ошибка будет - некоторые байты на одной скорости принимаются как другие на другой...

Про компаратор - глупости. Электрические параметры сигнала никак от скорости не зависят. Если ты передаешь FF на одной скорости, это будет примерно такой-же импульс как 0F или F0 на вдвое большей скорости. Если конечно всякие старт и стоп-биты не смотреть. А так наверно можно как-то измерить... Но пока будешь мерить - байт потеряешь, аппаратный UART настроиться и включиться мгновенно не сможет.

Я когда че-то ловлю - просто тупо пробую разные скорости по-очереди. Включаю, смотрю - если билибирда всякая - меняю. Обычно это сразу видно, когда вразумительный обмен идет. В 90% случаев оказывается что скорость 9600...


Rambler\'s Top100 Mail.ru counter