Полная версия этой страницы:
Прием данных по RS485
Kovrov
Feb 22 2008, 05:27
Господа, давно мучает такой вопрос...
на 485 сидит протокол IEC 60870-5-103
да собствеено это наверное и не особо имеет значения
Вопрос в следующем:
По Rx в уарте принимаю фрейм (кадр)
какой выбрать тайм аут между байтами кадра (случай сбоя передатчика или шины) для возвращения алгоритма разбора кадра в исходное состояние... ?
или вообще по какому критерию выбирать время тайм аута между байтами в кадре?
blackbit
Feb 22 2008, 07:31
Везде по-разному на этом 485-м. Есть протоколы, где разделение пакетов само по себе завязано на время, причем это время еще может быть и привязано стандартом к текущей скорости передачи. Например, Мodbus RTU: "интервал тишины" == 3.5 символа (на данной скорости). И если время между фреймами превышает этот интервал, то считается, что это конец/начало пакета. В тех протоколах, где нет разделения пакетов по временному интервалу, всё равно оговаривается максимальное время между фреймами в пакете. Например, в кровном брате вышеприведенного протокола, в Modbus ASCII, где пакеты разделяются маркерами, оно всё равно оговаривается и лежит в пределах 1с.
Один из основных критериев, естественна, скорость. В случае слишком больших выбранных таймаутов канальный уровень будет неоправданно долго реинициализироваться.
Kovrov
Feb 22 2008, 09:17
Дело ясное что дело темное..
Придется далее штудировать гост по этому протоколу...
пока прочитал только 870-5-1
хотя я имел ввиду не межфреймовое время, а время (внутри приема фрема) после которого мне нужно принять решение, что при приеме фрейму настал кирдык.
rezident
Feb 22 2008, 11:31
Цитата(Kovrov @ Feb 22 2008, 14:17)

хотя я имел ввиду не межфреймовое время, а время (внутри приема фрема) после которого мне нужно принять решение, что при приеме фрейму настал кирдык.
В том же ModBus RTU пауза больше, чем длительность 1,5 символа считается ошибкой фрейма. Почитайте стандарт
ModBus over serial line для примера.
Andrew2000
Feb 22 2008, 11:43
Сименсовский Profibus чип ASPC2 считал ошибкой паузу 1 бит между символами в телеграмме.
так что, думаю, нужно смотреть конкретный протокол/изделие, у каждого свой глобус
Kovrov
Feb 22 2008, 14:01
Спасибо друзья!! я понял
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.