ИК удлинитель UART

Потребовалось мне недавно организовать беспроводной двусторонний обмен данными между двумя устройствами в зоне прямой видимости. Конечно для этой цели можно заюзать дешевенькие радиомодули, например TR24A о которых писалось ранее. Но это как палить из пушки по воробьям, ведь в данном случае вполне годится ИК канал. Одна из немаловажных особенностей разработанного удлинителя, заключается в прозрачности работы. Это означает что устройства находящиеся по разные стороны удлинителя будут общаться между собой точно так же как если бы они были соединены двумя обычными проводами.  Но одно ограничение по части прозрачности  все же есть и заключается оно в том, что передача данных может происходить только в полудуплексном режиме. Итак, что же представляет собой этот удлинитель:



Конструктивно удлинитель состоит из двух идентичных приёмопередатчиков с четырьмя контактами: Питание, земля, TxD, RxD. Не сложно догадаться что к выводам TxD и RxD мы подключаем контроллер. Что касается питания, то оно должно быть стабильным 5 вольт, в противном случае изменится частота генератора на таймере 555. Как оно работает? Все очень просто. Транзистор T1 инвертирует сигнал с ноги RxD. Таким образом когда по UART ничего не передают наш генератор из-за низкого уровня на ноге RESET затыкается. При этом светодиод не мигает с частотой 36 Кгц, он включается и мигает лишь в те моменты, когда на вход модуля поступает логический ноль (в UARTе инверсия уровней). Передача происходит через обычный ИК светодиод выдранный из старого пульта управления от телевизора.  Очень важно обратить внимание на то, что любое изменение номиналов деталей в обвязке таймера приведет к уходу частоты. Из-за этого серьёзно сократится радиус   действия, так как TSOP воспринимает только сигнал с определённой частотой (в данном случае 36 кГц).   Так работает передающая часть модуля. Приём сигнала осуществляется интегральным ИК приёмником TSOP 31236. Его выход непосредственно подключается к выводу TxD. При передаче данных приёмник должен отключатся (в противном случае будем ловить то что сами передали). Для временного  отключения приёмника используется транзистор T2. Транзисторы в данной схеме могут быть любыми маломощными n-p-n.

Платка модуля у меня получилась небольшой и вполне пригодной для повторения. Но если захочется развести свою то рекомендую вместо резисторов R3 и R2 поставить один многооборотный подстроечный резистор и при помощи него точно выставить частоту генерации 36 кГц. Во время макетирования (собирал навесным монтажом) такие номиналы давали точно 36 кГц, когда собрал два модуля то у одного стало 35 кГц у другого 34.7 кГц. Есть подозрения на флюс СКФ который остался под резисторами. Но даже с такими отклонениями по частоте успешно ловится сигнал отраженный от стен.

А вот и оба модуля подключены к отладочной плате:

Подведем небольшие итоги

Достоинства:

  • Не дорого. Самая дорогая деталь это TSOP (стоит ~1 бакс)
  • Проста конструкции. Всё начинает работать сразу без настройки
  • Доступность. Не содержит ни каких диковинных и труднодоступных деталей.

Недостатки:

  • Низкая скорость передачи данных ( не более 1200 бод)
  • Полудуплекс

У данного устройства имеются некоторые перспективы дальнейшего совершенствования. Сигнал очень хорошо отражается от стен и поэтому нет необходимости направлять устройства точно друг на друга. Это даёт возможность организовать сеть между несколькими устройствами, нужно только придумать хитрый протокол, но это уже тема для отдельной статьи :-)

Предложения и критика приветствуются в комментариях.

Скачать разводку платы

ИК удлинитель UART: 25 комментариев

  1. Прикольно!
    Делаю похожее устройство и статью собрался назвать точно также. Прям обмен мыслями :).
    Если получиться впихнуть невпихуемое в Тини13 (удлинитель будет на нем) то в свойе статье в качестве более адекватной альтернативы сделаю ссылку на эту статью.

    Считаю, что Medved абсолютно прав выбрав именно такую конструкцию — максимальная функциональность за минимальные затраты (денег, времени).

    1. А софтовый UART нормально работает на тини13 если тактировать её от внутреннего генератора? Частота же зависит от напряжения и температуры. На каких скоростях устойчиво работает?

      1. Нормально работает в большенстве случаев. По крайней мере на скорости 9600. Правда бывают чипы с довольно значительным уходом частоты внутреннего задающего генератора — тогда приходиться подстраивать при помощи OSCCAL-регистра.
        В самом удлиннителе скорость будет 600-1200 — проблем думаю не будет.

  2. Молодец. Только недавно увидел статью, до этого всё не досуг было заскакивать. Идея очень понравилась, надо будет повторить ради интереса. Надеюсь, что засветки от уличного ультрафиолета не будет.

    1. Выход тсопа подтянут к питанию внутри него. Если разрывать питание то подтяжка исчезнет и на выходе может появится всё что угодно. А это не есть хорошо. На вход UARTа может придти какая-нибудь гадость.

  3. Когда я дела такой канал, было достаточно на передачу одного транзистора, ИК-диода и обвязки из резисторов. Несущая частота генерировалась ШИМом. Зачем было городить на таймере? :)

Добавить комментарий