Технический форум по робототехнике.
ishvedov » 27 дек 2007, 18:27
Т.е. есть одно устройство (будет) - логгер. Будет тырить протоколы обмена. Нужно как-то организовать на АВР и соответвующей обвеске определение скорости УАПП. Может у кого-нибудь была такая головная боль?
Strijar » 27 дек 2007, 18:46
Видимо только по длине старт-бита...
Добавлено спустя 2 минуты 33 секунды:
Опс.. у него длины то и нет, за ним сразу данные
ishvedov » 27 дек 2007, 19:08
Я не помню где-то очень давно читал что можно определить скорость УАПП толи через компаратор толи еще как, нигде эту статью не могу найти...
Strijar » 28 дек 2007, 10:55
Если знать что передается - то легко. Было у меня одно устройство - при подключении терминалки надо было нажать несколько раз пробел, оно по нему и выставляло скорость
ishvedov » 29 дек 2007, 00:10
Дело в том что байты могут быть абсолютно любыми...
-= Александр =- » 09 янв 2008, 22:53
Сделать переключатель и подбирать вручную - стандартных скоростей не так уж и много.
А если хочется автоматики - сделать программную "эмуляцию" - тоесть ловить фронты и метки времени, а потом уже разгребать. Думаю на небольших скоростях все это в реальном времени можно прокрутить.
Еще у аппаратного USARTа есть такая хрень как байт статуса - он может сказать что ошибка - значит скорость не та. Но байт будет уже потерян. Да и не всегда ошибка будет - некоторые байты на одной скорости принимаются как другие на другой...
Про компаратор - глупости. Электрические параметры сигнала никак от скорости не зависят. Если ты передаешь FF на одной скорости, это будет примерно такой-же импульс как 0F или F0 на вдвое большей скорости. Если конечно всякие старт и стоп-биты не смотреть. А так наверно можно как-то измерить... Но пока будешь мерить - байт потеряешь, аппаратный UART настроиться и включиться мгновенно не сможет.
Я когда че-то ловлю - просто тупо пробую разные скорости по-очереди. Включаю, смотрю - если билибирда всякая - меняю. Обычно это сразу видно, когда вразумительный обмен идет. В 90% случаев оказывается что скорость 9600...