ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
4 декабря
1390357 Топик полностью
reZident (06.01.2024 23:25, просмотров: 133) ответил Nikolay_Po на Просто я насмотрелся на китайские погремушки - адаптеры и прочие устройства с 485м. Делаешь скорость, скажем, 230400. И всё. связи нет. Драйвер включается слишком поздно. Стартовый бит не проходит. Поэтому включение драйвера заранее, до передачи - маст хэв. Насколько заранее? А почему бы и не 1.5 символьных интервала? Как раз, чтобы сброс не верного фрейма RTU успел пройти, если до занятия, в линию попала помеха (если строго следовать стандарту).
Поздравляю! Вы преамбулу STX "изобрели", но не совсем правильно ее размер выбрали :-) 

Потому, что переходный процесс в линии, возникающий при включении трансивера RS485 для передачи и идентифицируемый как стартовый бит первого символа фрейма, должен вызвать у приемника (мастера) прием символа 0xFF. Но поскольку это первый символ (хоть и неправильный), то при паузе в 1,5 символьных интервалов весь последующий фрейм должен быть детектирован как "нецелостный" (NOK) даже, если CRC сошлась. Это конечно в случае, если строго придерживаться стандарта Modbus. Если же преамбула будет не 1,5 символа, а 3,5 символьных интервала (то самое STX), то в полном соответствии со стандартом "первый байт" будет отброшен и принят уже целостный фрейм (OK).