|
Смысл в том, что при полудуплексе есть время, когда передатчики находятся в третьем состоянии. При этом линия принимает помехи снаружи, А приемники это дело активно обрабатывают.
Когда передатчик включен, то своим очень низким выходным сопротивлением он шунтирует линию и напряжение помех получается гораздо ниже, чем при третьем состоянии. Пока передатчик включен, никакие помехе на симметричной согласованной линии не страшны, и особенно это важно в радиоканалах.
Поэтому в промышленных протоколах применяются длинные пакеты с преамбулой.
То есть, сначала передатчик просто-напросто включается на некоторое время и потом только начинает посылать слова синхронизации, адреса и т.п.. Время включения выбирается таким, чтобы приемник успел сообразить, что весь тот мусор, который он заглотил, не дешифруется должным образом и чтобы он встал в исходное состояние.
у меня вся посылка содержит 5 байт: старт, команда, данные, КС, стоп.
В самом невероятном случае помех приемник может не только "опознать" старт-байт но даже дойти до контрольной суммы, я проверял.
Поэтому я настроил передатчик мастера , чтобы он выдавал 9 байт.
Первые 4 -FF, остальные -собственно пакет.
В моей системе если приемное прерывание кладет в буфер FF, это означает, что данных в буфере нет.
Слэйвы выдают немного больше информации, и FF"ов у них немного больше, так как приемник заглатывает сразу длинную порцию байтов и только потом смотрит, можно это есть или надо выплюнуть.
Я взял FF, так как мне лень было думать, сколько нужно времени продувать канал, как это время отсчитать и т.п.
ЗЫ. Скорость 38400, UTP, метров 300, могучий концертный зал, одного света киловатт на 200, да все с диммерами.
E-mail: info@telesys.ru