|
Суть проблемы:
Разрабатывается функцийональный блок, осуществляющий преобразование сигналов RxD и TxD UART микроконтроллера в RS485. Микроконтроллер является внешним по отношению к модулю, причем доступны ТОЛЬКО линии RxD и TxD, которые и приходят на входной разъем разрабатываемого модуля. Выбран драйвер 485-го интерфейса - MAX1483. Проблема в том, что драйвер работает в полудуплексном режиме и требует наличия сигнала управления направлением передачи информации (прием или передача). Простенький микроконтроллер в схему включать более чем нежелательно, да, чувствую, что и без него обойтись вполне возможно.
Специфика функционального блока такова, что его нормальное состояние - прием информаци ("слушает" линию). Следовательно, нужно своевременно детектировать момент начала передачи и переключить драйвер на передачу, избежав при потери полезной информации (т.е. в самом начале СТАРТ-бита первого байта передаваемого пакета).
Сейчас рассматривается вариант решения, построенный по такой схеме:
Tx->Одновибратор->Вход управления направлением передачи драйвера
Одновибратор "запускается" по перепаду "1" - "0", соответствующему началу СТАРТ-бита и вырабатывает импульс нужной полярности (переводящий драйвер в режим передачи) в течение времени, достаточной для посылки пакета максимального объема.
Что скажете? Может есть какие-то другие решения?
К тому же мне очень не нравится привязка к максимальному объему передаваемого пакета - если пакет имеет меньшую длительность, то возникаю необоснованные потери времени.
Что посоветуете?
E-mail: info@telesys.ru