IR remote control, а без микроконтроллеров можно? Да не вопрос

image
Сколько логических микросхем понадобится для того, чтобы получить полноценный ИК пульт дистанционного управления? Наверняка вам даже в голову не приходил этот вопрос! А в моем воспаленном сознании однажды такой вопрос возник.

Если вам приходилось сталкиваться с моими предыдущими статьями на Хабре, то вы уже имеете представление о моем специфическом увлечении схемотехникой. Но далеко не все мои идеи находят воплощение в железе, многое так и остается в виде черновиков на виртуальных моделях. Так случилось и с этой схемой, но она кажется мне достаточно интересной, чтобы поделиться ей с вами.

Если вы тоже считаете, что немного схемотехники после новогодних праздников вам не повредит, тогда добро пожаловать под кат.

Одному моему товарищу из Ярославля необходимо было разработать задание для конкурса по электронике. Формат конкурса удивительным образом совпал с форматом моего увлечения. Поэтому товарищ и обратился ко мне.

Конкурс проводился для студентов колледжа, и мне хотелось предложить что-то «умное», а не очередную «свистелку-мигалку» на жесткой логике. И тут в моем архиве попалась схема ИК пульта дистанционного управления в формате RC-5. Почему бы и нет? Тут и модуляция есть, и кодирование и схемотехника занятная. Решено! Я предварительно согласовал идею с товарищем и приступил к проработке.

Формат RC-5


Сам по себе протокол RC-5 стар как этот мир и является хорошим примером функционального минимализма в схемотехнике. Разрабатывался он в те времена, когда инженерам приходилось экономить вычислительные ресурсы в своих схемах. Это сегодня можно взять какую-нибудь Arduino и сделать на ней любой протокол управления без особых хлопот. Наверное, поэтому в современных статья по протоколу RC-5 опускаются некоторые важные моменты.

Протокол RC-5 использует бифазное модулирование, которое в зарубежной литературе именуется кодом «Манчестер». Его основным преимуществом является самосинхронизация. То есть двоичный код можно передавать по одному каналу связи без дополнительного канала синхронизации.

image


Все биты передаются за одинаковое время 1.778 мс. Для передачи логического ноля первую половину периода передается высокий уровень, а вторую — низкий. Для передачи единицы — наоборот.

Такой код получается очень просто путем кодирования данных тактовым сигналом с заполнением 50% с помощью функции «исключающего или». Тактовый сигнал должен иметь высокий уровень первую половину периода, и низкий уровень — во второй. Если вспомнить, как работает логическая функция XOR, то все сразу станет понятно.

image

К слову, время передачи одного бита данных 1.778 мс выбрано не случайно. Для исключения влияния фонового ИК излучения, например от ламп дневного освещения, сигнал пульта модулируется на частоте 36кГц. Таким образом за один период передачи данных помещается ровно 64 заполняющих импульса. Опорная частота обычно имеет скважность 3 или 4, так сигнал потом проще фильтровать.

Сама посылка в формате RC-5 включает в себя 14 бит. Чуть позже мы увидим, что это тоже очень удобно с точки зрения схемотехники. Общее время передачи одной посылки составляет 24,9 мс.

image

В начале посылки всегда передается два стартовых бита, имеющих значение логической »1». При Манчестерском кодировании нам необходимо знать значение первого бита, иначе все последующие могут быть интерпретированы неверно. Также это позволяет синхронизироваться приемникам.

Третий бит триггер (бит управления) меняет своё состояние при каждом следующем нажатии кнопки. Если кнопка удерживается, то посылка должна повторяться каждые 114 мс, а бит — триггер при этом не меняется. Таким образом определяется различие между нажатием одной кнопки несколько раз и ее удерживанием.

Пять битов адреса системы S4 — S0 управления позволяют выбрать одно из 32-х стандартных устройств (телевизор, видеопроигрыватель, CD-плеер и так далее), для которого адресуется команда C5 — C0. Команды были тоже стандартизированы разработчиком протокола — компанией Филипс.

Когда-то это позволяло различать пульты управления для разных устройств. Но потом Китайцы, как всегда, все поломали, в их сверх массовых устройствах частенько коды использовались так, как это было удобно китайским инженерам. Вот сейчас и случается так, что на пульте от люстры появляется секретная кнопка, которая добавляет громкости телевизору и одновременно включает кухонную вытяжку на первой скорости.

Структурная схема пульта


У меня получилась следующая структурная схема пульта управления. Вспоминая, что это задание для конкурса, количество элементов схемы и площадь печатной платы имеют ограничение, функциональность пульта пришлось ограничить десятью кнопками. Функция повторной отправки команды при удержании кнопки тоже не реализована. Но все это достаточно просто можно добавить при необходимости.

image

На схеме я добавил наименования микросхем, которые используются в каждом конкретном блоке.

Клавиатура и приоритетный шифратор


image
Обработка командных кнопок реализована с помощью приоритетного шифратора CD4532. Для добавления еще двух кнопок я использовал три вентиля ИЛИ 74НС32. Можно было бы использовать два шифратора включенных последовательно, но один вентиль ИЛИ понадобился в другом блоке схемы, так получилось сократить количество корпусов.

Кнопки обязательно следует подтянуть на землю резисторами, чтобы входы шифратора не болтались в воздухе. В зависимости от качества кнопок, параллельно каждой можно поставить по конденсатору на 0,1 мкФ.

Вывод 14 GS микросхемы U6 позволяет определить момент нажатия кнопки, дифференциальная цепочка С7-R9 выступает в роли детектора фронта и формирует короткий импульс запуска схемы write. На выходах d0-d3 формируется двоичный код нажатой кнопки.

image

Формирователь сообщения


image
Код нажатой кнопки передается на схему формирования сообщения. Эта схема построена на основе двух сдвиговых регистров 74НС165. Я думаю, что тут все должно быть понятно, RC-5 это же последовательный протокол, вот и регистры использованы параллельно-последовательные.

Один вентиль XOR используется в качестве инвертора, это тоже сделано с целью сокращения количества корпусов логических микросхем, чтобы еще дополнительный корпус не ставить с вентилями НЕ.

Через инвертор сигнал write защелкивает входы сдвигового регистра, чтобы последовательно были переданы данные, установившиеся на входе регистра на момент нажатия кнопки.

Входы D0-D4 сдвигового регистра U1 посажены на землю и формируют нулевой адрес устройства, при необходимости эти линии можно переключить между землей и плюсом питания так, как вам будет удобно. По классификации от Филипс 0h это адрес для телевизоров, кнопками можно будет клацать TV-программы.

image

Бит-переключатель


image
Бит управления trig формируется триггером U3: B, включенным по схеме ждущего мультивибратора с увеличенной крутизной фронта. Короткий импульс write со схемы обработки клавиатуры переключает выход триггера на противоположенное значение. Благодаря этому в посылке можно различать отдельные нажатия на кнопки пульта.

image

Отправка сообщений и тактирование


image

Также сигнал write переключает выходы второго вентиля триггера U3: A, что активирует работу схемы формирования сообщения на основе счетчика 74HC393.

Задача этой схемы заключается в том, чтобы подать на сдвиговые регистры 14 тактовых импульсов и выдать все 14 бит данных.

Триггер U3: A удерживает счетчик U2: A в состоянии сброса, пока не придёт сигнал write. Благодаря схеме монтажного ИЛИ на диодах D3-D6, счетчик будет вести счет до тех пор, пока хотя бы на одном из его выходов Q0-Q3 будет присутствовать низкий уровень.

По фронту 15-ого тактового импульса все выходы счетчика установятся в высокий уровень, через вентиль ИЛИ U4: A на вход триггера поступит импульс переключения, и работа схемы завершится. То есть пятнадцатый импульс от тактового генератора на сдвиговый регистр не поступит, схема пропустит ровно 14 тактовых импульсов с выхода генератора U8 на NE555, во время которых выходной сигнал схемы формирования сообщения transfer будет в активном уровне.

image

Бифазный модулятор


image
Думаю, что объяснять работу модулятора в манчестерский код подробно не нужно. Это должно быть понятно из предыдущего текста.

Заполнение сформированного сообщения частотой 36кГц выполняет генератор U9 на таймере NE555. Современные ИК-приемники часто строятся на модулях типа TSOP, которые на выходе сразу дают низкочастотный сигнал, и поэтому они не так критичны к количеству импульсов заполнения.

Светодиод D7 должен быть инфракрасным с длинной волны 940нм, это самый распространенный диапазон для ИК управления. Если длинна волны светодиода будет отличаться, дальность приема может сильно сократиться.

Немного о питании схемы


Питание схемы можно осуществлять от трех, а лучше четырех последовательно включенных батареек типа ААА. Либо использовать две батарейки с повышающим стабилизатором на 5В. Наличие стабилизатора предпочтительнее, это позволит выжать из батареек максимальную емкость.

Итоги проектирования


Предварительная компоновка схемы на печатную плату показала ее жизнеспособность. Для реализации схемы ИК-пульта в формате RC-5 мне понадобилось всего девять корпусов типа SOIC, два из которых имеют по 8 выводов. Все эти компоненты вполне помещаются в формате классического пульта управления для телевизора.

image

Вопрос остается только к энергопотреблению схемы. Жрать батарейки конечно же она будет прилично, не сравнить со специализированными микросхемами, которые переходят в сон между нажатиями кнопок.

До воплощения этой схемы в железо так и не дошло, хотя было бы интересно ее спаять. По итогу проектирования схемы, мы с товарищем пришли к другой концепции задания для конкурса. Но из этой схемы получилась хорошая головоломка для дополнительной тренировки студентов на понимание цифровой схемотехники.

А почему, эту схему мы так и не собрали, как-нибудь напишу в одной из следующих своих статей.

Если вам понравилась эта статья, то вы можете посмотреть другие мои проекты:


b5pjofdoxth14ro-rjsrn7sbmiy.png

© Habrahabr.ru