Привет, Хабр! Сегодня мы познакомимся с интересной и полезной микросхемой приоритетного шифратора 8:3 CD4532, способной, в частности, расширить порт микроконтроллера, когда количество его выводов оказывается недостаточным для решения поставленной задачи.

А можно решать задачи и без микроконтроллеров, средствами микросхем стандартной логики. Они недефицитны, не боятся программных взломов, и в них не повредится прошивка ввиду её отсутствия.

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

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

Принципиальная схема извещающего устройства многоканальной охранной сигнализации представлена на рисунке.



Каждый из восьми датчиков имитируется выключателем с фиксацией, замыкающим на землю один из входов D0..D7 микросхемы U2. Подтяжка этих входов к плюсу питания осуществляется резисторами R1..R8 сопротивлением по 10 килоом.

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

▍ Кодируем номера кнопок


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



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



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


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

Пока не нажата ни одна из кнопок, двоично-десятичный дешифратор для семисегментного индикатора CD4511 находится в режиме асинхронного ввода, а его входы ABCD — в состоянии 0000.


Соответственно, индикатор DS1 показывает цифру 0. Но как только будет нажата кнопка, дешифратор отобразит её номер на индикаторе и перейдёт в защёлкнутое состояние, так как, если светится сегмент G, или светится B, но при этом не светится D, то на входе LATCH ENABLE появится логическая единица. Дешифратор перестанет реагировать на информацию с кнопок.

Суть этой логики состоит в следующем. Сегмент G светится при отображении всех цифр десятичной системы, кроме нуля и единицы. При отображении цифры 1 светится B, но не светится D. А при отображении нуля светятся и B, и D.


Как только экзаменуемый нажмёт кнопку выбранного ответа, прибор запомнит её номер и будет его отображать, пока не произойдёт перезагрузка кнопкой RST или отключением питания. Звуковой сигнал при нажатии любой из кнопок оповещает преподавателя о том, что ответ выбран. Нужно подойти и прочитать его номер.

▍ Счёт от нуля и от единицы


Шифратор, преобразующий номер нажатой кнопки в двоичный код, здесь выполнен на дискретных элементах — резисторах и диодах. Отметим, что формула этого шифратора не 8:3, а неполный 16:4. Ведь нумерация кнопок идёт не от 0 = 000b до 7 = 111b, а от 1 = 0001b до 8 = 1000b. А ноль — это исходное состояние до нажатия кнопки.

Если одновременно нажать 8 и 1, то устройство отобразит и запомнит 9. А если скомбинировать 8 с любой другой цифрой больше единицы, то индикатор погаснет и вернётся в ноль после отпускания кнопок. Если же скомбинировать, например, 4 = 100b и 2 = 010b, то запишется и отобразится 6 = 110b.

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

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

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

Конечно же, в реальном пульте сигнализации должны быть и отдельные светодиоды для каждого входа, показывающие взведённое, сработавшее или деактивированное состояние. Также не помешает регистрация времени срабатываний и переключений на пульте.

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

▍ Приоритетный шифратор


В отличие от примитивного диодного шифратора, микросхема CD4532 лишена описанного недостатка. Наш индикатор будет показывать наибольший из номеров сработавших каналов, вне зависимости от того, сколько всего их сработало.



Кроме собственно мультиплексора 8:3, микросхема содержит селектор приоритетного входа и логику управления.



При логическом нуле на разрешающем входе EI (ENABLE INPUT) на всех пяти выходах микросхемы, включая выходы данных Q0..Q2, разрешающий выход EO (ENABLE OUTPUT) и линию выбора группы GS (GROUP SELECT LINE) будет присутствовать логический ноль.

Нетрудно догадаться, что разрешающие вход и выход предназначены для расширения шифратора. Например, вот схема приоритетного мультиплексора 16:4.


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

Номер приоритетного сработавшего выхода поступает на хорошо знакомый нам дешифратор СD4511 для семисегментного индикатора DS1 с общим катодом.



Управляющие входы дешифратора U1 подключены к плюсу питания и земле так, чтобы микросхема находилась в режиме асинхронного ввода данных, а индикатор моментально отображал двоичное число от 0 до 7, поступающее с приоритетного шифратора CD4532.

Вход старшего четвёртого разряда D микросхемы U1 перманентно подключён к земле, так как наши двоичные числа трёхразрядные. Также соединён с общим проводом вход защёлкивания LE.

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

Чтобы номер от 0 до 7 светился только при срабатывании сигнализации, для включения индикатора в нужный момент необходимо подавать логическую единицу на инвертирующий вход гашения ¬BI.

Этот сигнал можно было бы непосредственно взять с выхода выбора группы GS микросхемы шифратора CD4532, но авторы пособия задействовали его для другой цели. Поэтому логическая единица для зажигания семисегментного индикатора поступает с выхода разрешения EO через элемент НЕ U4C микросхемы СD4069.

▍ Звуковой сигнал с задержкой срабатывания


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

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

При срабатывании любого из каналов сигнализации микросхема СD4532 подаёт на свой выход выбора группы GS логическую единицу, которая через резистор R16 сопротивлением 1 килоом открывает транзистор Q1.

Этот транзистор включён по схеме с общим коллектором, которой свойственно высокое входное сопротивление, поэтому без резистора R16 можно было бы обойтись.

Через транзистор Q1 подаётся питание на прецизионный интегральный таймер MC1455P1, и мультивибратор начинает свою работу.

Пока плата извещателя находилась в ждущем режиме, времязадающий электролитический конденсатор С1 заряжался через последовательно соединённые резисторы R17 и R19, и наверняка успел зарядиться до более, чем двух третей напряжения питания.

То есть, достигнут порог срабатывания компаратора COMP1. Триггер FLIP-FLOP микросхемы сбросится в логическую единицу на инвертирующем выходе.


Откроется разрядный транзистор, коллектор которого соединён с выходом DISC, и времязадающий конденсатор начнёт разряжаться через резистор R18.

Когда С1 разрядится до одной трети напряжения питания, сработает компаратор COMP2, и мультивибратор перейдёт в фазу заряда конденсатора. Пока напряжение на нём не достигнет двух третей напряжения питания схемы, нижний ключ двухтактного выхода OUT микросхемы MC1455P1 будет оставаться закрытым. То есть, ничто не будет мешать работе мультивибратора на двух инверторах U4A и U4B.

А при отключённом питании микросхемы MC1455P1 её двухтактный выход оказывается соединённым с землёй схемы через диод и четыре резистора, как показано на рисунке.



Этого достаточно, чтобы удерживать мультивибратор U4A U4B в моностабильном режиме. Работу такого мультивибратора на логических инверторов мы рассматривали в статье про резистивный ЦАП.



Получается следующая цепочка состояний:
  • U4A — ноль на входе и единица на выходе;
  • U4В — единица на входе и ноль на выходе;
  • U4E — ноль на входе и единица на выходе;
  • U4F — единица на входе и ноль на выходе;
  • NPN-транзистор Q2 — закрыт;
  • ток через катушку громкоговорителя LS1 не идёт.

Пока продолжается процесс заряда времязадающего конденсатора, на двухтактном выходе таймера присутствует логическая единица. Приступают к работе медленный мультивибратор U4A U4В и быстрый мультивибратор U4E U4F, и громкоговоритель издаёт прерывистый тревожный сигнал.

▍ Недоработка авторов схемы


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

Разработчики схемы не учли, что при отсутствии питания интегрального таймера его разрядный транзистор закрыт, но времязадающий конденсатор разряжается через эмиттерные переходы входных транзисторов порогового компаратора и 10-килоомный резистор до напряжения порядка 1 вольта. Это значительно ниже, чем две трети от пяти вольт.



Можно сделать, чтобы звуковой сигнал звучал не на фазе заряда конденсатора С1, а на фазе его разряда. Для этого следовало бы просто перевернуть диоды D1 и D2.

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

Поэтому пришлось бы перевернуть и УМЗЧ (усилитель мощности звуковой частоты), заменив Q2 на транзистор структуры P-N-P.

Но самое главное, что при отсутствии питания таймера звуковой сигнал был бы активным. Иными словами, это не вариант.

Если запитать MC1455P1 вместе со всеми остальными тремя микросхемами, а сигнал GS подать на вход сброса таймера, то при отсутствии сработавших кнопок U3 будет находиться в состоянии сброса. Но выходить из него, а, стало быть, включать звуковой сигнал, будет также моментально.

Чтобы реализовать задержку срабатывания звукового сигнала, необходимо устранить утечку заряда времязадающего конденсатора. Для этого можно воспользоваться эмиттерным повторителем на транзисторе структуры N-P-N.

▍ Что у меня получилось


Работа схемы до и после модификации, а также процесс монтажа компонентов на плату, представлены на видео. Для эмиттерного повторителя использован транзистор 9014, нагруженный на резистор сопротивлением 160 килоом. (Потому что этого номинала у меня много, и я его редко использую. Сгодится любой от 100 до 220 кОм.)

При исходном номинале времязадающего резистора R19 1 МОм период колебаний мультивибратора на интегральном таймере составляет одну минуту. Чтобы не ускорять видео, параллельно R19 до модификации был подключён резистор сопротивлением 47 кОм, а в процессе модификации R19 заменён на 100-килоомный. В случае реальной, а не демонстрационной сигнализации номинал 1 МОм представляется оптимальным.

Напишите в комментариях, какие модификации вы бы внесли в данную схему.

Telegram-канал со скидками, розыгрышами призов и новостями IT ?

Комментарии (2)


  1. Moog_Prodigy
    26.04.2024 15:06
    +1

    А можно решать задачи и без микроконтроллеров, средствами микросхем стандартной логики. Они недефицитны, не боятся программных взломов, и в них не повредится прошивка ввиду её отсутствия.

    Не соглашусь. С точки зрения взлома подобные системы подобны открытой двери. Собственно опытному электронщику достаточно только взгляда на схему, чтобы понять, что она делает. Вы думаете, что если это логический элемент, то он только 0 и 1 может выдать? И зря. К155ЛА3 - обычный 2 или-не, но сколько же ему придумали нестандартных применений именно в области работы как аналоговый прибор, начиная от генераторов, и заканчивая многоканальными передатчиками, в том числе постановка помех. Если дело заходит настолько далеко, то схема устройства на столе электронщика появится. А уже глядя на схему, можно придумать различные атаки. Скажем, про эту плату. Вот самый простой способ взлома: питать ее пониженным напряжением. Как себя поведет цифровая дискретка? А аналоговая? Подобрать напряжение питания с точностью до милливольта, чтобы работало не "как надо" а по другому. Это самая простая атака. Атака еще проще - посмотрел на схему и все понял. Но именно схема - и есть прошивка, как ее не усложняй, это считай открытые исходники. А с открытыми исходниками дело пойдет намного веселее. Еще взломщик знает про гонки, и на дискретных компонентах они очень даже себе дают о себе знать. Даже достаточно знать про дребезг контактов, чтобы взломать таким образом электронный замок, который на входе принимает код в азбуке Морзе.


  1. Ra3wum
    26.04.2024 15:06
    +1

    Есть расширители портов GPIO -I2C. Например PCF8575. Да, такие чуть дороже представленного решения. Но и функционала больше. Увеличенный ток выхода, встроенный ШИМ и прерывание по изменению состояния входа