RS232 Полный дуплекс по 1(одному) проводу
Недавно придумал. В железе правда еще не воплощал, но на модели (MULTISIM) принцип работает.
Может кому идея пригодится, ну и если будет толковая критика - тоже готов выслушать.
Пояснения:
TX - передаваемые данные (от UART),
RX - принятые данные (к UART),
LINE - однопроводная двунаправленная полнодуплексная линия связи. С другого конца которой - предполагается аналогичная схема.
Принцип действия основан на анализе потребляемого вторым абонентом тока, если ток есть- значит выдаваемый им уровень не совпадает с "местным" TX, и срабатывает инвертор на одном из транзисторов.
D1- ADM3202, MAX232, и т.п. стандартный приемопередатчик RS232
транзисторы - практически любые сигнальные биполярники, например BC847/857, теоретически можно и полевики всобачить, но сдается мне что емкость затвора - тут будет злом в плане быстродействия.
Инвертор - любой логический инвертор. Условно показан 1554ТЛ2 ака 74АС14. Но можно все что угодно.
UPD: По замечаниям в комментах, просимулировал емкостную нагрузку линии. Чуть добавил рассыпухи для устранения влияния емкостных нагрузок.
Подправленный вариант схемы работает до полумегабита при емкости на линии 5000пф и до 300Кбит при 10 000пф на линии.
Изначальный вариант схемы - оставлю, т.к. он удобнее для понимания принципа работы. Но если делать - то, естественно, надо брать второй.