|
|
  |
UART без кварцевой стабилизации, Работает или нет. До каких скоростей? |
|
|
|
Jul 20 2006, 13:34
|
Участник

Группа: Новичок
Сообщений: 44
Регистрация: 2-05-06
Пользователь №: 16 710

|
Цитата(ArtemKAD @ Jul 20 2006, 17:07)   Гарантированный за время одного символа только ОДИН переход. Расстояния между символами - не гарантированы... Как раз время то между старт/споп и есть искомая (измеряемая) величина. А наличие самих переходов гарантировано. В некоторых PICах есть AUTO BAUD RATE DETECT. Передатчик отправляет байт 0x55, а приемник автоматом вычисляет baud rate регистр. Здесь почти то же самое, за исключением, что baud rate регистр это константа, а подбираем значение регистра калибровки int RC.
Сообщение отредактировал µµC - Jul 20 2006, 13:49
|
|
|
|
|
Jul 20 2006, 14:00
|
Профессионал
    
Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364

|
Цитата(Stanislav @ Jul 20 2006, 16:17)  Цитата(ArtemKAD @ Jul 20 2006, 17:07)  Гарантированный за время одного символа только ОДИН переход. Как это ОДИН?  Где и в какую сторону? Стартовый в начале старт-бита. Переход 1->0. Стоповый бит - это только минимальное гарантированное расстояние между двумя соседними байтами...
|
|
|
|
|
Jul 20 2006, 14:20
|
Профессионал
    
Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364

|
Цитата(Stanislav @ Jul 20 2006, 17:07)  Цитата(ArtemKAD @ Jul 20 2006, 18:00)  Стартовый в начале старт-бита. Переход 1->0. Стоповый бит - это только минимальное гарантированное расстояние между двумя соседними байтами... Интересная трактовка. Если стартовый переход 1->0 гарантирован, то и переход 0->1 в течение одного символа, по-моему, также гарантирован. Иначе никак... Эти два события и можно использовать в качестве опорных. Не зная в какой момент должно прити второе?  Еще раз - речь не о LIN и ей подобных проторолов в которых есть символы синхронизации...
|
|
|
|
|
Jul 20 2006, 14:21
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(Stanislav @ Jul 20 2006, 20:07)  Цитата(ArtemKAD @ Jul 20 2006, 18:00)  Стартовый в начале старт-бита. Переход 1->0. Стоповый бит - это только минимальное гарантированное расстояние между двумя соседними байтами... Интересная трактовка. Если стартовый переход 1->0 гарантирован, то и переход 0->1 в течение одного символа, по-моему, также гарантирован. Иначе никак... Эти два события и можно использовать в качестве опорных. Стоповый переход конечно гарантирован, но не гарантировано, что внутри интервала старт-стоп будет именно 9 битовых периодов. Потому что может еще и бит четности передаваться или вообще 5-6-7 битовая посылка. Для Auto baud detect часто используют 0xFF. Это гарантированный битовый интервал при передаче старт-бита.
|
|
|
|
|
Jul 20 2006, 14:28
|
Участник

Группа: Новичок
Сообщений: 44
Регистрация: 2-05-06
Пользователь №: 16 710

|
Цитата(rezident @ Jul 20 2006, 18:21)  Для Auto baud detect часто используют 0xFF. Это гарантированный битовый интервал при передаче старт-бита. Проще калибровать по 0x00. В 9 раз точнее, при прочих равных условиях.
|
|
|
|
|
Jul 20 2006, 14:32
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(rezident @ Jul 20 2006, 18:21)  Стоповый переход конечно гарантирован, но не гарантировано, что внутри интервала старт-стоп будет именно 9 битовых периодов. Потому что может еще и бит четности передаваться или вообще 5-6-7 битовая посылка. Для Auto baud detect часто используют 0xFF. Это гарантированный битовый интервал при передаче старт-бита. Стоп-стоп. В теме не ставится задача AutoBaud Detection, хотя, если её делать, нужно поступать именно таким образом, как я и предложил (другой способ придумать трудно  ). Здесь же речь идёт о подстройке RC-генератора для обеспечения наилучших временнЫх характеристик работы УАРТа при известных параметрах канала связи.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Jul 20 2006, 14:51
|
Участник

Группа: Новичок
Сообщений: 44
Регистрация: 2-05-06
Пользователь №: 16 710

|
Цитата(rezident @ Jul 20 2006, 18:33)  Цитата(µµC @ Jul 20 2006, 20:28)  Цитата(rezident @ Jul 20 2006, 18:21)  Для Auto baud detect часто используют 0xFF. Это гарантированный битовый интервал при передаче старт-бита.
Проще калибровать по 0x00. В 9 раз точнее, при прочих равных условиях.  Нет, не проще. Опять же не гарантируется наличие/отсутствие/вид бита четности. Всегда лучше по стартовому биту калибровать. Соответственно калибровочный символ с лог. 1 должен начинаться. Какой такой бит четности, откуда ему взяться если передатчик его не отсылает? Напомню основное условие автокалибровки - передатчик отсылает заранее определенный символ в заранее определенном формате, приемник вычисляет интервал бита исходя из этого. Поэтому тезис, что при посылке 0x00 интервал будет проще и точнее измерен, чем при посылке 0xFF, имеет под собой все основания. Тут, если честно, и спорить то не о чем.
|
|
|
|
|
Jul 20 2006, 15:44
|
Профессионал
    
Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364

|
Цитата(Stanislav @ Jul 20 2006, 17:37)  Цитата(ArtemKAD @ Jul 20 2006, 18:20)  Не зная в какой момент должно прити второе?  Еще раз - речь не о LIN и ей подобных проторолов в которых есть символы синхронизации... Я отвечал на Ваш пост #30.  Там было на что отвечать? Может на #23? Цитата И почему это не зная? Параметры канала связи известны, и я знаю, в каком интервале времени мне нужно ожидать переход. Параметры известны, не известен приходящий символ...
|
|
|
|
|
Jul 20 2006, 15:51
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(ArtemKAD @ Jul 20 2006, 19:44)  Там было на что отвечать? Может на #23? Ну да, и на него тоже. Цитата(ArtemKAD @ Jul 20 2006, 19:44)  Цитата И почему это не зная? Параметры канала связи известны, и я знаю, в каком интервале времени мне нужно ожидать переход. Параметры известны, не известен приходящий символ... А вот и подумайте, как с этим можно бороться. Способ есть, и не один. Если интересно, изложу позже.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Jul 22 2006, 04:02
|
Участник

Группа: Новичок
Сообщений: 44
Регистрация: 2-05-06
Пользователь №: 16 710

|
Цитата(defunct @ Jul 22 2006, 02:14)  Господа, как вы думаете почему Philips использует символ '?' (0x21) для вычисления бод-рейта? Ответ прост, достаточно посмотреть на диаграмму сигнала на линии TX для этого символа:
1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1
Последний выделенный бит - стоп-бит. который впринципе не участвует в процедуре определения бод-рейта. При 0x21 (b'00100001') на ТХ будет 1 1 1 1 1 0 1 0 0 0 0 1 0 0 1 1 1 1 1 1 выделены старт и стоп
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|