Монтажное И

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

Что такое соединение в монтажное И.
Представь себе линию, подтянутую резистором к плюсу питания. Так как сопротивление между линией и землей бесконечность, а между питанием и линией равно резистору, то напряжение на линии равно напряжению питания. То есть высокий уровень aka (обычно) логическая единица.


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

Как это можно использовать? Да по разному. Простеший пример — сигнал готовности. Есть куча блоков единого устройства. Каждый из которых работает по своему алгоритму и, например, требует начальную инициализацию. Чтобы главный понял, что все остальные блоки закончили инициализацию и подготовились он «слушает» линию связи. В качестве сигнала готовности — блок отпускает линию. Когда каждый блок пройдет инициализацию, то линия примет высокий уровень и это будет сигналом полной готовности устройства.

На этом же принципе работает и шина 1-Wire и I2C — там если приемник не успевает прожевать байт, то он просто придавливает тактовую линию, не давая передатчику генерировать импульсы. А передатчик, видя что его обламывают, делает паузу.

Как с этим работать
Очевидно, что при работе на шину с монтажным И нельзя в эту шину подавать сильный высокий уровень. Иначе если какой либо из блоков выдаст свой сильный низкий то один из них выгорит в результате КЗ. Соответственно, если говорить про AVR, то ноль задаем сочетанием DDR=1 PORT=0, а единицу (когда линия отпущена) DDR=0 PORT=0. Вот такая вот инверсная логика.

27 thoughts on “Монтажное И”

  1. Вот по такому же принципу устроена линия сигнала RESET на материнских платах. Но на последних как правило установлена куча вот таких вот условных блоков, что приводит к трудностям нахождения неисправного блок, просаживающего уровень; приходится поочередно поднимать ноги RST на всех блоках;)

    1. Для страховки между выходами микросхем и общей точкой можно поставить диоды. Тогда пофигу, ОК или двухтактный выход. Правда, тогда «Монтажное И» превратится в диодную логику… Если критично падение напряжения на диодах, можно использовать германиевые или ВЧ Шоттки.

  2. А разве это не «ИЛИ»?
    «И», насколько я помню, означает, что на выходу блока логическая 1 если на всех! входах так же логическая единица. А тут как бы один любой замкнул и усе. Так что это вроде как «ИЛИ» а не «И». Или нет?

      1. Гыгыгы. И про старуху бывает порнуха :)

        Никогда не видел PLC на диодной логике? Адская вещь! Там внутри плат 1 это +10В, снаружи плат 1 это 0В. Все программирование идет напайкой диодов на шины. И таких шин несколько сотен. Но блин как оно фурычит… ЫЫЫ! Я когда впервые с этим монстром столкнулся то прифигел.

  3. Не совсем понял, а как получается, что мы задаем единицу DDR=0,Port=0? этим мы определяем порт как вход, причем без подтягивающего резистора. Так же? Получается мы этим придавливаем линию..

  4. Нет ,ты не понял.
    Тут единица возникает сама, Т.е. мы ее не устанавливаем. Мы просто включаем порт на вход. А ноль устанавливаем вручную.

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

  5. Вообще-то когда я работал в охране все датчики соединялись в шлейф последовательно т.е и ЕРОХ и уважаемый DI HALT ошибаетесь. Тут все просто один датчик оторвался никто и не заметит а при последовательном соединении вылезет обрыв. Ну и чтобы не коротили в конце шлейфа обычно ставится или диод (в самых первых приборах) или резистор или конденсатор (в самых навороченных — там еще сравнение фаз идет)

    Но я другой вопрос хотел задать. Появилась идея вместо одного мощного БП для компьютера использовать три. Один питает материнку, второй винчестеры а третий после переделки отдает только +12В по максимуму (переделки описаны достаточно подробно) Только вот не хотелось бы чтобы выход из строя одного из БП прошел незамеченным. Хотел объединить сигналы PowerGood по схеме И. Ну а так как ничего из мелкой логики 3И у себя не нашел полез искать монтажное И. Все вроде бы хорошо но вот вроде как не нравиться мне что все уже подтянуто к +5В.
    По другому сделать никак нельзя?

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

      А что смущает в подтяге до 5 вольт?

      1. Шлейф скорее тогда монтажное ИЛИ
        «А что смущает в подтяге до 5 вольт?»

        Просто +5В в данном случае нормальный сигнал и значит материнка начнет запускаться что не есть хорошо.
        Уже есть есть идея твое монтажное И подтянуть через ключ и линию задержки Не слишком наворочено? То есть сначала соберем все +5В а потом через ключ подадим на материнку?

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