Перейти к содержанию

Монтажное И (wired-AND)

Если соединить несколько выходов с открытым стоком на одну линию с подтяжкой, она будет в единице, только когда все выходы отпущены, а любой из них прижимает её к нулю. Это логическое И, которое получается просто соединением проводников. На нём построены арбитраж I²C, растяжение такта и доминантные биты CAN.

Обновлено Редакция GAW

Монтажное И (wired-AND) — логическая функция, которая получается, если соединить на одной линии несколько выходов с открытым стоком (или открытым коллектором) и резистор подтяжки к питанию. Линия в единице, только когда все выходы отпущены; любой выход, открывший свой транзистор, прижимает её к нулю. Ноль побеждает.

Где применяется

I²C. UM10204 прямо говорит (разд. 3.1.1), что выходы устройств I²C — открытый сток именно для функции монтажного И. На ней держатся два механизма:

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

CAN. Спецификация CAN 2.0 описывает доминантный и рецессивный уровни: при одновременной передаче побеждает доминантный. При реализации по схеме монтажного И доминантный уровень — логический ноль. На этом построен неразрушающий арбитраж по идентификатору: чем меньше идентификатор, тем раньше в нём ноль и тем выше приоритет.

Линии прерываний и сброса. Несколько источников на общей линии запроса с открытым стоком: активен низкий уровень, и любой источник может его выставить.

Ограничения

  • Только выходы с открытым стоком. Двухтактные выходы на общей линии дают короткое замыкание при разных уровнях.
  • Фронт в единицу формирует подтяжка вместе с ёмкостью линии, поэтому он медленный, а скорость шины ограничена. Режим UFm шины I²C отказывается от монтажного И ради скорости — и теряет многомастерность.

Подробнее о шине — в статье I²C.

Частые вопросы

Почему соединение выходов с открытым стоком называют монтажным И?

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

Можно ли так соединить двухтактные выходы?

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

Чем монтажное И отличается от монтажного ИЛИ?

Это одна схема, описанная с разных сторон. Если считать активным низкий уровень (например, линия запроса прерывания, которую прижимает любой источник), та же линия работает как ИЛИ над активными сигналами: она активна, если активен хотя бы один. Поэтому в документации встречаются оба названия.

Источники

  1. NXP. UM10204 I2C-bus specification and user manual, Rev. 7.0 (1 October 2021) — разд. 3.1.1: выходы устройств — открытый сток или открытый коллектор, чтобы выполнять функцию монтажного И; разд. 3.1.7: синхронизация тактов выполняется через монтажное И на линии SCL — переход в низкий уровень любого ведущего держит SCL в нуле, пока все не закончат низкий полупериод; разд. 3.1.8: арбитраж основан на монтажном И — проигрывает ведущий, который выставил единицу, когда другой выставил ноль; разд. 3.2: UFm с двухтактными выходами не имеет многомастерности монтажного И, свойственной Sm, Fm и Fm+
  2. Robert Bosch GmbH. CAN Specification Version 2.0 (1991) — Bus values: у шины два дополняющих значения — доминантное и рецессивное; при одновременной передаче доминантного и рецессивного битов на шине доминантное; например, при реализации шины по схеме монтажного И доминантный уровень — логический 0, рецессивный — логическая 1
  3. STMicroelectronics. RM0090 Reference manual: STM32F405/415, STM32F407/417, STM32F427/437 and STM32F429/439, Rev 21 (June 2024) — разд. 27.3.8, SMBus alert mode: SMBA — сигнал по схеме монтажного И, как SCL и SDA

Нашли ошибку?