Монтажное И (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.
Частые вопросы
Почему соединение выходов с открытым стоком называют монтажным И?
Линия с подтяжкой в единице, только если все выходы отпущены, то есть все хотят единицу. Достаточно одного выхода в нуле, чтобы на линии был ноль. Это таблица истинности И над желаемыми уровнями выходов, а получается она без логического элемента, одним монтажным соединением проводников.
Можно ли так соединить двухтактные выходы?
Нет. Если один двухтактный выход тянет линию к питанию, а другой к земле, через оба течёт ток короткого замыкания, ограниченный только сопротивлением транзисторов, и они могут выйти из строя. Монтажное И требует выходов с открытым стоком или открытым коллектором и внешней подтяжки.
Чем монтажное И отличается от монтажного ИЛИ?
Это одна схема, описанная с разных сторон. Если считать активным низкий уровень (например, линия запроса прерывания, которую прижимает любой источник), та же линия работает как ИЛИ над активными сигналами: она активна, если активен хотя бы один. Поэтому в документации встречаются оба названия.
Источники
- 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+
- Robert Bosch GmbH. CAN Specification Version 2.0 (1991) — Bus values: у шины два дополняющих значения — доминантное и рецессивное; при одновременной передаче доминантного и рецессивного битов на шине доминантное; например, при реализации шины по схеме монтажного И доминантный уровень — логический 0, рецессивный — логическая 1
- 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
Нашли ошибку?
Смотрите также
- Открытый стокВыход только с транзистором к земле, единицу даёт подтяжка
- Подтягивающий резисторPull-up и pull-down: определённый уровень на свободной линии
- Арбитраж шиныДоминантный бит побеждает: CAN и I2C
- Растягивание такта I²CВедомое держит SCL в нуле: зачем, ограничения SMBus, совместимость
- Доминантный и рецессивный уровниДва состояния шины CAN: кто побеждает, уровни, связь с арбитражем
- I²CSDA и SCL, START/STOP, ACK, адреса, скорости, расчёт подтяжек