8.2. Семейства логики: ТТЛ и КМОП
Что означают буквы HC, LS, AC в маркировке и какие вентили есть в любом семействе; как устроены вентиль ТТЛ и вентиль КМОП изнутри; питание, пороги, входные токи, скорость и мощность двух семейств; выходы с третьим состоянием и с открытым коллектором, общая шина и монтажное ИЛИ.
Возьмите любую плату с цифровой логикой — контроллер стиральной машины, старый модем, плату расширения для Arduino — и почти наверняка найдёте на корпусах микросхем маркировку вида 74HC…, 74LS… или CD40…. Это представители двух главных семейств логики: ТТЛТранзисторно-транзисторная логика: биполярное семейство, питание +5 В, порог ≈1,3 В, заметный ток покоя. Серии LS, ALS, AS, F. (транзисторно-транзисторная логика, построенная на биполярных транзисторах) и КМОПКМОП — комплементарные МОП-транзисторы: n- и p-канальные приборы на одном кристалле. Основа почти всей цифровой логики и аналоговых ключей. (комплементарные МОП-структуры — пары p- и n-канальных полевых транзисторовПолевой транзистор (ПТ) — затвор управляет током канала сток — исток напряжением; ток затвора — лишь утечка (пикоамперы).). Их выпускают десятки производителей, номенклатура огромна, и для подавляющего большинства задач цифрового проектирования этих двух семейств хватает.
За пределами их владений остаются две области. Большие интегральные схемы (БИС) — память, процессоры — делают почти исключительно на МОП-структурах; а там, где нужна предельная скорость, работают эмиттерно-связанная логика (ЭСЛЭмиттерно-связанная логика: самое быстрое биполярное семейство (до ~500 МГц), питание −5,2 В, уровни около −0,9 и −1,75 В.) и приборы на арсениде галлия. В этом разделе речь пойдёт о ТТЛ и КМОП.
8.2.1Один номер — много семейств
- Функции и номера вентилей одинаковы примерно в десятке подсемейств ТТЛ и КМОП — различаются электрические свойства.
- Выбор по умолчанию — КМОП HC; если вход должен понимать уровни биполярной ТТЛ — HCT (или LS).
- Запись с апострофом не зависит от семейства: '00 — корпус с четырьмя двухвходовыми И-НЕВентиль И-НЕ: на выходе низкий уровень, только когда все входы высокие. В КМОП — n-канальные ключи последовательно, p-канальные параллельно..
Удобная особенность цифровой логики: один и тот же вентиль выпускается сразу в нескольких исполнениях. Всего наберётся около десяти «подсемейств» — групп микросхем с одинаковой технологией:
Номер функции во всех них один и тот же, и между собой они в основном совместимы. Отличаются подсемейства скоростью, потреблением, допустимым выходным током и логическими уровнями — к уровням мы ещё вернёмся в разделе 8.1 и подробно — в разделе 9.1.
Чтобы не загромождать текст, будем отбрасывать префикс 74 и буквы семейства и писать только номер с апострофом: '00 — это четыре двухвходовых И-НЕ в одном корпусе, неважно, HC они или LS. Исходная ТТЛ без букв (7400) уже давно ушла со сцены; как сменяли друг друга семейства, рассказано в разделе 9.1.
Таблица ниже — короткий справочник самых ходовых вентилей. Последний столбец напоминает, что по теореме де Моргана у каждой функции есть «двойник»: тот же вентиль можно нарисовать как другую функцию с проинвертированными входами и выходом — так его изображают в логике заданных уровнейСпособ рисовать вентили по выполняемой функции: например, И-НЕ над сигналами с активным НИЗКИМ уровнем рисуют как ИЛИ с кружками на входах. из раздела 8.1.
Что здесь что (3)
- Префикс 74. общая нумерация «семидесятичетвёртой» серии; у КМОП 4000B нумерация своя (тот же И-НЕ — 4011)
- Буквы семейства. КМОП: HC, HCT, AC, ACT; ТТЛ: LS, ALS, AS, F. От букв зависят уровни, скорость и потребление
- Номер функции. не зависит от семейства: '00 — И-НЕ, '02 — ИЛИ-НЕВентиль ИЛИ-НЕ: на выходе низкий уровень, если высокий хотя бы один вход. В КМОП — n-канальные ключи параллельно, p-канальные последовательно., '04 — инверторы, '08 — И, '32 — ИЛИ, '86 — Исключающее ИЛИ
| Функция | ТТЛ / HC, AC | КМОП 4000B | В корпусе | Двойник (отрицательная логика) |
|---|---|---|---|---|
| И-НЕ | '00, '10, '20, '30, '133 | 4011, 4023, 4012, 4068 | 4×2, 3×3, 2×4, 1×8, 1×13 вх. | ИЛИ с инверсными входами |
| ИЛИ-НЕ | '02, '27, '260 | 4001, 4025, 4002, 4078 | 4×2, 3×3, 2×4(5), 1×8 | И с инверсными входами |
| И | '08, '11, '21 | 4081, 4073, 4082 | 4×2, 3×3, 2×4 | ИЛИ-НЕ с инверсными входами |
| ИЛИ | '32 | 4071, 4075, 4072 | 4×2, 3×3, 2×4 | И-НЕ с инверсными входами |
| НЕ (инвертор) | '04, '14 (Шмитт) | 4069, 4049 (буферБуфер — повторитель с : огромное входное и малое выходное сопротивление, развязывает источник и нагрузку.) | 6 | повторитель с инверсным входом |
| Повторитель | '34, '244 (3 сост.) | 4050 | 6, 8 | инвертор с инверсным входом и выходом |
| Исключающее ИЛИ | '86 | 4070 | 4×2 | — |
| Эквивалентность (Искл. ИЛИ-НЕ) | '266 (откр. колл.) | 4077 | 4×2 | — |
| И-ИЛИ-НЕ | '51 | 4085 | 2 | — |
В блоке управления гаражными воротами понадобилось ещё одно двухвходовое И: «кнопка нажата» и «концевик не сработал». На плате остались свободными один элемент корпуса '00 и два элемента корпуса '86 (Исключающее ИЛИ). Как получить И, не добавляя микросхем?
Решение
И — это И-НЕ с инвертором на выходе. Элемент '00 даёт . Исключающее ИЛИ с единицей на одном входе инвертирует другой вход: , поэтому элемент '86 со вторым входом на превращает в . Объединять входы '86 нельзя: при любом — выход застынет в НИЗКОМ состоянии. Сам по себе '00 даёт И-НЕ, а из одних '86 функцию И не собрать вовсе: Исключающее ИЛИ линейно и умножения не даёт.
8.2.2Что внутри вентиля
- КМОП-вентиль собран из МОП-ключей двух полярностей: n-ключи образуют путь к земле, p-ключи — путь к питанию, и эти цепи дуальны.
- В установившемся состоянии один из двух путей обязательно разомкнут, поэтому КМОП в покое тока не потребляет.
- Вентиль ТТЛ (LS) — диодно-резисторная логика на входе и двухтактный транзисторный каскад на выходе.
- Выход обоих семейств активный: ВЫСОКИЙ уровень обеспечивает открытый транзистор, а не резистор.
Логически '00 из серии HC и '00 из серии LS неразличимы, а электрически это совсем разные приборы: другие уровни, другая скорость, другие входные токи. Поэтому соединять их «как попало» в общем случае нельзя. Откуда берутся различия, проще всего понять, заглянув внутрь.
КМОП: только ключи
Представьте узел X, который можно соединить либо с питанием, либо с землёй через «краны». Роль кранов в КМОП играют МОП-транзисторыМОП-транзистор (металл — окисел — полупроводник) — полевой транзистор, затвор которого отделён от канала тонким слоем стекла ; ток затвора практически нулевой (входное сопротивление больше Ом)., работающие в режиме обогащения: открытый транзистор — небольшое сопротивление, закрытый — разрыв. Важно, что транзисторы здесь работают ключами, а не истоковыми повторителями. n-канальный ключ открывается ВЫСОКИМ уровнем на затворе, p-канальный — НИЗКИМ.
Возьмём И-НЕ на транзисторах Т1–Т4. К земле узел X ведёт цепочка из двух последовательных n-ключей Т3 и Т4, а к — два параллельных p-ключа Т1 и Т2. Последовательная цепочка проводит, только когда открыты оба звена, то есть оба входа ВЫСОКИЕ; в этом же случае оба p-ключа заперты, и X опускается к нулю.
Если хотя бы один вход НИЗКИЙ, его n-ключ рвёт цепочку к земле, а его p-ключ соединяет X с питанием — X ВЫСОКИЙ. Получился И-НЕ; если добавить инвертор Т5, Т6, выйдет И.
Что здесь что (7)
- Т1, p-канал. стоит параллельно с Т2 между и узлом X: НИЗКИЙ уровень на его входе открывает ключ и поднимает X
- Т2, p-канал. второй ключ «к питанию», управляется входом B
- Т3, n-канал. включён последовательно с Т4: путь к земле замкнут, лишь когда открыты оба
- Т4, n-канал. нижнее звено цепочки к земле, управляется входом A
- Узел X. здесь получается И-НЕ:
- Инвертор Т5, Т6. добавочная пара переворачивает И-НЕ в И:
- Выход Q. почти ноль или почти : к выходу подключён открытый МОП-ключ на землю или на питание
| A | B | Т1 (p) | Т2 (p) | Т3 (n) | Т4 (n) | X | Q |
|---|---|---|---|---|---|---|---|
| Н | Н | откр. | откр. | закр. | закр. | В | Н |
| Н | В | откр. | закр. | откр. | закр. | В | Н |
| В | Н | закр. | откр. | закр. | откр. | В | Н |
| В | В | закр. | закр. | откр. | откр. | Н | В |
Для контроллера аквариума нужен трёхвходовый вентиль ИЛИ («включить насос, если сработал любой из трёх датчиков»), и его решили сделать на КМОП-ключах. Нарисуйте схему, посчитайте транзисторы и скажите, какой переход выхода — из ВЫСОКОГО в НИЗКИЙ или обратно — окажется медленнее при одинаковых сопротивлениях открытых ключей. Почему разработчики микросхем предпочитают многовходовые И-НЕ многовходовым ИЛИ-НЕ?
Решение
Сначала ИЛИ-НЕ: узел X должен опускаться, если ВЫСОКИЙ любой вход, — значит, три n-ключа стоят параллельно между X и землёй. Дуальная цепь к питанию — три p-ключа последовательно между и X: она проводит, только когда все входы НИЗКИЕ. Затворы каждой пары (p и n) соединены и подключены к своему входу. Получаем ; инвертор из двух транзисторов даёт . Всего транзисторов.
Медленное место — заряд X через три последовательных p-ключа (), тогда как разряд в худшем случае идёт через один n-ключ (). Нарастание на X втрое медленнее спада, а так как Q — инверсия X, медленнее оказывается переход Q из ВЫСОКОГО состояния в НИЗКОЕ.
На деле картина ещё хуже: при одинаковой площади p-транзистор проводит заметно хуже n-транзистора (подвижность дырок ниже), и последовательная цепочка p-ключей — самое медленное, что можно придумать. Чтобы выровнять задержки, транзисторы в последовательной цепочке делают шире. У И-НЕ в цепочке стоят быстрые n-ключи, поэтому многовходовые И-НЕ предпочтительнее многовходовых ИЛИ-НЕ.
Двухвходовый КМОП-вентиль ИЛИ-НЕ работает на дорожку и входы с общей ёмкостью 30 пФ. Сопротивление открытого n-ключа 150 Ом, p-ключа 300 Ом. Оцените время нарастанияВремя нарастания — время достижения 90 % конечного значения (иногда считают от 10 до 90 %). (10 → 90%), когда оба входа становятся НИЗКИМИ, и наихудшее время спада (90 → 10%), когда ВЫСОКИМ становится только один вход.
Решение
Ёмкость перезаряжается через сопротивление по экспоненте, и путь от 10 до 90% занимает .
Нарастание: заряд идёт через два последовательных p-ключа, Ом, нс.
Спад в худшем случае: открыт только один n-ключ, Ом, нс. Если ВЫСОКИМИ станут оба входа, n-ключи окажутся параллельно ( Ом), и спад ускорится вдвое. Разница фронтов в четыре раза — наглядная иллюстрация того, почему ИЛИ-НЕ с длинной p-цепочкой проектировщики не любят. В реальных HC внутренний вентиль нагружен лишь на мощный выходной буфер, поэтому фронты у них короче и симметричнее.
ТТЛ: диоды на входе, двухтактный каскад на выходе
Вентиль И-НЕ серии LS (маломощная логика с диодами ШотткиДиод Шоттки — переход металл — полупроводник: прямое падение 0,3–0,5 В вместо 0,7–0,9 В и почти нет времени восстановления; обратное напряжение обычно до 40–100 В.) устроен иначе. Если мысленно отделить выходную часть, на входе останется знакомая диодно-резисторная логика — такие дискретные вентили на диодах мы разбирали в разделе 8.1. Она управляет транзисторным инвертором, выход которого сделан двухтактным. Удобно разобрать работу по случаям:
Оба входных диода заперты, ток резистора 20 кОм течёт в базу Т1 и открывает его. Эмиттерный ток Т1 насыщает нижний выходной транзистор Т4. Коллектор Т1 при этом опускается почти до земли и запирает верхнюю пару ДарлингтонаСхема Дарлингтона — два транзистора, эмиттер первого питает базу второго: коэффициент усиления по току перемножается (). Т2–Т3. Итог: на выходе НИЗКИЙ уровень.
Открывшийся диод забирает ток резистора 20 кОм, базе Т1 тока не достаётся — Т1 заперт, вместе с ним заперт и Т4. Пара Т2–Т3, база которой подтянута к питанию резистором 8 кОм, работает повторителем: на выходе ВЫСОКИЙ уровень, примерно за вычетом двух падений на переходах.
Резистор 120 Ом в коллекторе Т3 ограничивает ток в момент переключения (когда на мгновение открыты оба выходных транзистора) и при замыкании выхода. Диоды и транзисторы Шоттки не дают транзисторам уходить в глубокое насыщениеНасыщение — внешняя цепь не может пропустить ток ; коллектор опускается почти до эмиттера ( = 0,05–0,2 В), и ток задаёт нагрузка, а не база., из которого они долго выходят, — отсюда выигрыш в скорости.
Что здесь что (8)
- Диоды на входах. стоит одному входу стать НИЗКИМ — его диод открывается и забирает ток резистора 20 кОм; этот ток должен принять источник сигнала
- Резистор 20 кОм. когда оба входа ВЫСОКИЕ и диоды заперты, его ток идёт в базу Т1 и открывает транзистор
- Т1 — фазорасщепитель. в открытом состоянии эмиттером насыщает Т4, а коллектором гасит Т2–Т3; в закрытом — всё наоборот
- Резистор 8 кОм. тянет базу Т2 к питанию, и при запертом Т1 пара Т2–Т3 работает как повторитель
- Т2–Т3 (Дарлингтон). верхняя половина двухтактного выхода; ВЫСОКИЙ уровень ниже на два падения на переходах
- Резистор 120 Ом. не даёт току через Т3 стать чрезмерным в момент переключения и при замыкании выхода
- Т4. нижняя половина выхода: в насыщении, когда оба входа ВЫСОКИЕ, — на выходе НИЗКИЙ
- Выход Q. активный двухтактный: и НИЗКИЙ, и ВЫСОКИЙ уровень держит открытый транзистор
Общая черта двух схем — активный выход: ВЫСОКИЙ уровень создаёт открытый транзистор, подключённый к питанию, а не пассивный резистор. Простые дискретные вентили на диодах и одиночных транзисторах так не умели — их выход «вверх» тянул резистор, и фронт получался медленным.
8.2.3Электрические свойства: сравниваем
- ТТЛ: питание +5 В ± 5%, порог около 1,3 В, вход в НИЗКОМ состоянии отдаёт ток (у LS — до 0,4 мА).
- КМОП: питание 2–6 В (HC) или 3–15 В (4000B), порог около половины питания, входной ток пренебрежимо мал.
- Потребление КМОП пропорционально частоте: ; у предельной частоты оно сравнивается с ТТЛ.
- Свободные входы КМОП подключают всегда: висящий вход вызывает сквозной токСквозной ток (ток класса А) КМОП — импульс тока от питания на землю, пока вход проходит середину диапазона и открыты оба транзистора..
| ТТЛ (LS, ALS, AS, F) | КМОП (4000B, 74C, HC, AC; HCT, ACT) | |
|---|---|---|
| Питание | +5 В ± 5% | 2–6 В (HC, AC); 3–15 В (4000B, 74C); HCT, ACT — +5 В |
| Входной ток | НИЗКИЙ: 0,25–0,4 мА вытекает; ВЫСОКИЙ: мкА | доли микроампера |
| Порог | ≈1,3 В | ≈ ½ питания (⅓…⅔); HCT, ACT — как у ТТЛ |
| Выход В / Н | ≈3,4 В / близко к 0 | почти / почти 0 |
| Мощность | есть ток покоя, тем больше, чем быстрее серия | в покое ≈0, растёт ∝ |
| Частота | 25 МГц (LS) … 100 МГц (AS, F) | 2 МГц (4000B) … 100 МГц (AC) |
Питание
ТТЛ капризна к питанию: ей нужно +5 В с допуском ± 5%. КМОП гораздо терпимее. Серии HC и AC работают при любом напряжении от +2 до +6 В, а 4000B и 74C — от +3 до +15 В (некоторые выдерживают и 18 В), поэтому их можно питать прямо от батарейки или от бортовой сети через простой стабилизатор. Исключение — HCT и ACT: они задуманы как замена биполярной ТТЛ и рассчитаны на +5 В.
Входной ток
Здесь отличие принципиальное. Вход ТТЛ в НИЗКОМ состоянии сам служит источником токаИсточник тока — устройство, ток которого почти не зависит от напряжения на нагрузке (бесконечное дифференциальное сопротивление); идеал — .: через входной резистор и диод вытекает типично около 0,25 мА у LS (по паспорту — до 0,4 мА), и тот, кто держит вход НИЗКИМ, должен принять этот ток и увести его на землю. В ВЫСОКОМ состоянии вход ТТЛ почти не потребляет — единицы, максимум десятки микроампер.
Внутри ТТЛ-схемы это никого не беспокоит: выходы рассчитаны на такие токи с запасом. Неприятности начинаются, когда вход ТТЛ подключают к чему-то другому — к датчику, к выходу операционного усилителя, к КМОП-выходу слабой серии. Вход КМОП — изолированный затвор, и его утечка составляет доли микроампера; нагрузкой по постоянному току он практически не является.
Что здесь что (3)
- Нижний ключ источника. открыт и принимает входной ток; выход LS рассчитан на 8 мА — хватит на 20 таких входов
- Диод входа. при НИЗКОМ уровне открыт, и ток резистора течёт через него в источник сигнала
- Резистор 20 кОм. откуда берётся входной ток; при ВЫСОКОМ входе этот ток уходит в базу Т1, а вход почти ничего не потребляет
Порог переключения
У ТТЛ порог задают два p-n-перехода, отсчитанные от земли: около 1,3 В, и почти не зависит от экземпляра. У КМОП порог — примерно середина питания, но разброс велик: обычно где-то между 1/3 и 2/3 напряжения питания. В HCT и ACT порог намеренно опущен до ТТЛ-значения — это и обеспечивает совместимость с биполярными выходами.
И ещё одно свойство КМОП-входов: тонкий окисел затвора боится статического электричества. Неосторожное прикосновение или незаземлённый паяльник способны вывести микросхему из строя.
Выходные уровни
Нижний транзистор выхода ТТЛ в НИЗКОМ состоянии насыщен, и напряжение близко к земле. В ВЫСОКОМ состоянии работает эмиттерный повторительЭмиттерный повторитель (каскад с общим коллектором) — выход с эмиттера: В; усиления по напряжению нет, зато входной импеданс в раз больше нагрузки., и выход не дотягивает до питания на два диодных падения — получается около 3,4 В. У всех КМОП-серий, включая HCT и ACT, выход — открытый МОП-ключ на землю или на питание, так что уровни практически совпадают с 0 и .
Как правило, быстрые серии (F, AS, AC, ACT) и нагрузку держат лучше, чем медленные (LS, 4000B, 74C, HC, HCT).
Скорость и потребление
Биполярная ТТЛ потребляет ощутимый ток даже в покое, и чем быстрее серия, тем этот ток больше: от LS (примерно до 25 МГц) до AS и F (около 100 МГц). КМОП в покое почти ничего не потребляет, зато каждый переход 0 → 1 → 0 означает перезаряд ёмкости нагрузкиЁмкость нагрузки кварца — внешняя ёмкость, при которой он даёт номинальную частоту; её изменение подтягивает частоту. и внутренних ёмкостей микросхемы; последние в паспорте сводят к одному параметру . Энергия на один перезаряд постоянна, и средняя мощность растёт вместе с частотой:
Отсюда вывод, который часто удивляет новичков: на частотах, близких к предельным, КМОП греется не меньше эквивалентной ТТЛ — это хорошо видно на графике ниже. По скорости КМОП-серии охватывают диапазон от ~2 МГц (4000B и 74C при 5 В) до ~100 МГц (AC и ACT).
Что ставить в новую схему
Ничтожное потребление в покое и хороший запас помехоустойчивостиНаибольшая помеха, которая при самом неблагоприятном сочетании условий ещё не превращает НИЗКИЙ уровень в ВЫСОКИЙ или наоборот; считают по паспортным уровням: и . сделали КМОП логикой по умолчанию. Практические ориентиры такие:
- обычная новая разработка — HC;
- нужна предельная скорость — AC;
- питание «плавает» в широких пределах, а скорость не важна — 4000B или 74C;
- нужно принимать сигналы от биполярных ТТЛ-выходов — HCT (на худой конец LS), а если требуется ещё и скорость — ACT (или AS, F).
В плотных схемах вроде памяти и микропроцессоров у КМОП конкурентов нет — именно из-за малой мощности: миллионы вентилей ТТЛ на одном кристалле просто сгорели бы. На частотах выше 100 МГц выручают ЭСЛ (примерно до 500 МГц) и арсенид галлия (до нескольких гигагерц).
Хорошая новость: в пределах одного семейства выход с входом стыкуются без расчётов, и о порогах и токах можно не думать. Один выход ТТЛ или КМОП гарантированно обслуживает не меньше 10 входов той же серии. Это число называют коэффициентом разветвления по выходуЧисло входов того же семейства, которые один выход может питать с гарантированными уровнями (для ТТЛ — 10, LS→LS — 20).: для ТТЛ он равен 10, для пары LS→LS — 20. Как он считается, показывает формула ниже; как стыковать разные семейства и логику с внешним миром — тема раздела 9.1.
Старый счётчик посетителей на ТТЛ LS переделывают на HC. Один вентиль LS потребляет в среднем 2 мВт при любой частоте. У вентиля HC пФ, нагрузка — 30 пФ, питание 5 В. Начиная с какой частоты переключений вентиль HC будет потреблять больше, чем LS?
Решение
Мощность HC: Вт. Приравняем к Вт: Гц МГц.
Значит, на частотах в несколько мегагерц преимущество КМОП в потреблении пропадает: природа динамической мощности у обоих семейств одна — перезаряд ёмкостей. Но в счётчике посетителей вентили переключаются раз в секунды, а не миллионы раз в секунду; при Гц вентиль HC потребляет Вт — в сто тысяч раз меньше, чем LS. В реальных схемах почти все вентили переключаются намного реже тактовой частоты, и КМОП выигрывает.
Плата метеостанции на батарейках: 150 вентилей HC, каждый переключается в среднем с частотой 1 МГц, пФ, нагрузка на вентиль 20 пФ, питание 3,3 В. Найдите потребляемую мощность и ток от батареи.
Решение
Вт мВт; мА. Ток покоя (микроамперы на корпус) на этом фоне не виден.
При питании 5 В та же плата потребляла бы в раза больше — около 150 мВт. Квадратичная зависимость от напряжения — главная причина, по которой цифровая техника переходит на всё более низкие напряжения питания.
Тактовый сигнал платы раздаётся на входы нескольких корпусов. Паспортные данные: вход LS — мА (вытекает), мкА; вход ALS — мА, мкА; выход LS — мА, мА; выход HC — 4 мА в обоих состояниях при гарантированных уровнях. Сколько входов можно подключить: а) к выходу LS, если все входы — ALS; б) к выходу HC, если все входы — LS?
Решение
Число входов ограничивает то состояние, в котором запас по току меньше.
а) НИЗКОЕ: ; ВЫСОКОЕ: . Ответ — 20: здесь ограничивает уже ВЫСОКОЕ состояние, хотя входы ALS в НИЗКОМ состоянии вчетверо «легче» входов LS.
б) НИЗКОЕ: ; ВЫСОКОЕ: . Ответ — 10: мешает ток, который вытекает из входов LS в НИЗКОМ состоянии. На КМОП-входы выход HC мог бы работать почти без ограничений по постоянному току; предел там ставит ёмкость — каждый вход добавляет 5–10 пФ и затягивает фронты.
Ученик собрал на макетной плате мигалку на 74HC14 и оставил один неиспользуемый вход в воздухе. Плата иногда потребляет на несколько миллиампер больше обычного, а на свободном выходе осциллограф показывает пачки импульсов. Что происходит?
Решение
У ТТЛ свободный вход действительно ведёт себя примерно как ВЫСОКИЙ (оставлять его так всё равно не советуют — это антенна для помех). У КМОП вход — изолированный затвор с ничтожной утечкой, и его потенциал задают наводки и утечки; нередко он оказывается около половины питания. Тогда во входном каскаде одновременно приоткрыты p- и n-транзисторы — течёт сквозной ток в миллиамперы, а выход может генерировать. Лечение: подключить свободный вход к питанию, к земле или к задействованному входу того же вентиля.
8.2.4Как отключить выход: три состояния и открытый коллектор
- Двухтактный выход нельзя сажать на общую шину: от линии его не отключить.
- Выход с тремя состояниямиТретье (высокоимпедансное) состояние — выход отключён от линии: оба выходных транзистора закрыты. Позволяет нескольким выходам по очереди работать на общую шину. по сигналу переходит в «обрыв» — на этом держатся шины данных.
- Открытый коллекторОткрытый коллектор — выход, где наружу выведен только коллектор транзистора с заземлённым эмиттером: он умеет лишь тянуть к земле, а «вверх» выход тянет внешний резистор. — только ключ на землю и внешний резистор подтяжки: для мощных нагрузок, монтажного ИЛИ и внешних шин.
- Если два активных выхода спорят на одной линии, течёт ток в десятки миллиампер, а уровень не определён.
У всех рассмотренных до сих пор вентилей выход двухтактный: к выходу всегда подключён открытый транзистор — верхний, тянущий к питанию, или нижний, тянущий к земле. Такую схему называют активной нагрузкойАктивная нагрузка — источник тока (или токовое зеркало) в коллекторе вместо резистора: огромное сопротивление для сигнала при малом падении постоянного напряжения, усиление — тысячи. (для ТТЛ в ходу ещё жаргонное «тотемный столб»), и её недаром применяют почти везде:
- выходное сопротивление мало в обоих состояниях;
- фронты короткие, а помехоустойчивость выше, чем у одиночного транзистора с коллекторным резистором;
- у КМОП в покое нет тока.
Когда активный выход мешает: общая шина
Возьмём систему, где процессор, память и несколько периферийных блоков обмениваются 16-разрядными словами. Провести от каждого блока к каждому отдельный 16-проводный жгут — затея безнадёжная: при пяти блоках жгутов понадобилось бы десять. Поэтому все блоки сидят на одной шине (магистрали) данных — общем наборе из 16 линий.
Это напоминает рацию на одном канале: нажать тангенту и говорить может только один, остальные слушают, иначе в эфире каша. Отсюда нужны правила очерёдности, а вместе с ними — слова «арбитр шины», «ведущий шины», «управление шиной».
Вентиль с активным выходом на такую шину не посадишь: он всегда что-то выдаёт — ВЫСОКИЙ или НИЗКИЙ уровень, — и замолчать не умеет. Нужен выход, который можно «отстегнуть» от линии. Решений два: выход с открытым коллектором и выход с третьим состоянием.
Третье состояние
Логику с тремя состояниями (торговое название TRI-STATE принадлежит фирме National Semiconductor, которая её и предложила) не нужно путать с троичной логикой: напряжений по-прежнему два. Просто у выхода появляется третий режим — «обрыв», или высокий импедансИмпеданс (полное сопротивление) — комплексное сопротивление: , , ; закон Ома ., когда выход ничего не тянет и линию не нагружает.
Режим выбирает отдельный вход разрешения, обычно (output enable) с активным НИЗКИМ уровнем: разрешён выход — он работает как обычно, запрещён — отключён, что бы ни было на остальных входах.
В КМОП это реализуется просто: верхним p-ключом управляет вентиль И-НЕ, нижним n-ключом — вентиль ИЛИ-НЕ. При запрете И-НЕ выдаёт ВЫСОКИЙ уровень и запирает p-ключ, ИЛИ-НЕ — НИЗКИЙ и запирает n-ключ; выход «повисает». Выходы с тремя состояниями встречаются в самых разных микросхемах — у счётчиков, защёлок, регистров, а также у обычных вентилей и инверторов.
Что здесь что (6)
- Инвертор разрешения. превращает в прямой сигнал OE для И-НЕ
- И-НЕ управляет p-ключом. при запрете на его выходе ВЫСОКИЙ — p-ключ заперт; при разрешении он передаёт
- ИЛИ-НЕ управляет n-ключом. при запрете ( = В) на его выходе НИЗКИЙ — n-ключ заперт
- Ключ к питанию. поднимает выход к , если выход разрешён и D = В
- Ключ к земле. опускает выход к нулю, если выход разрешён и D = Н
- Выход Q. ВЫСОКИЙ, НИЗКИЙ или «висит в воздухе», когда оба ключа заперты
| D | p-ключ | n-ключ | Q | |
|---|---|---|---|---|
| Н | В | открыт | закрыт | В |
| Н | Н | закрыт | открыт | Н |
| В | X | закрыт | закрыт | отключён (Z) |
Шина данных на буферах с тремя состояниями
На буферах с тремя состояниями построены шины данных компьютеров. Каждый блок, который должен выдавать данные, — память, порт ввода, АЦП — подключён к линиям шины через такие буферы (или через регистры с тем же типом выхода). Система устроена так, что в любой момент разрешены буферы только одного блока, а у всех остальных выходы в третьем состоянии.
Как блок понимает, что пришла его очередь? Процессор выставляет на адресные линии номер блока и даёт управляющий импульс. На схеме ниже порт с номером 5 следит за адресом: когда и приходит импульс , порт выставляет свои разряды на линии –, а потом снова отключается. По такому принципу работают многие простые системы, и похожим образом устроен обмен в большинстве микроконтроллерных плат с внешними микросхемами.
Что здесь что (6)
- Линии данных D₀–D₃. общие для всех блоков; в каждый момент выдаёт данные один блок, у прочих выходы отключены
- Адресные линии A₀–A₂. сюда процессор выставляет номер блока, к которому обращается
- Инвертор на A₁. адрес порта : средний бит должен быть нулём, поэтому его инвертируют
- Трёхвходовый И. выдаёт ВЫСОКИЙ уровень только при — «обращаются ко мне»
- И-НЕ с инверсным входом. формирует : адрес свой И идёт импульс
- Буферы с тремя состояниями. в разрешённом состоянии выдают разряды порта на линии, в остальное время отключены
На плате с питанием 3,3 В два КМОП-буфера из-за ошибки в прошивке одновременно выдали на одну линию шины противоположные уровни. Сопротивление открытого выходного ключа каждого буфера 25 Ом. Найдите ток через выходы и мощность, которая выделяется в каждом выходном транзисторе. Что будет, если так конфликтуют все 8 линий шины?
Решение
Ток идёт от +3,3 В через открытый p-ключ одного буфера (25 Ом) и открытый n-ключ другого (25 Ом) на землю: А мА. Линия при этом сидит около 1,65 В — ровно между уровнями, и приёмники читают что угодно.
Мощность в каждом ключе: Вт. Для крошечного выходного транзистора это много. При конфликте на 8 линиях в двух корпусах выделится Вт, ток по шинам питания вырастет на полампера и наведёт помехи во всей схеме. Поэтому одновременную работу двух выходов на шину исключают логикой арбитража, а не надеются на удачу.
Открытый коллектор
Старший брат третьего состояния — открытый коллектор (в КМОП-варианте — открытый сток). Идея ещё проще: у выходного каскада просто нет верхнего транзистора, остаётся только ключ на землю, и его коллектор выведен на вывод микросхемы «как есть» — отсюда и название. Тянуть линию вниз такой выход умеет, а вверх — нет.
Поэтому к выходу подключают внешний подтягивающий резистор к источнику питания. Его номинал выбирают компромиссом: меньший резистор быстрее перезаряжает ёмкость линии и лучше держит ВЫСОКИЙ уровень против помех, но увеличивает потребление и ток, который должен принимать открытый ключ. Для ТТЛ обычны значения от нескольких сотен ом до нескольких килоом.
| Подтягивающий резистор | меньше | больше |
|---|---|---|
| Быстродействие (фронт нарастания) | выше | ниже — линии больше |
| Помехоустойчивость в ВЫСОКОМ состоянии | лучше | хуже |
| Мощность и ток через открытый ключ | больше | меньше |
Шину вроде показанной выше можно собрать и на открытых коллекторах. Буферы с тремя состояниями заменяют двухвходовыми И-НЕ с открытым коллектором, на второй вход подают сигнал разрешения (данные на шине при этом окажутся проинвертированными), а каждую линию подтягивают резистором к +5 В.
Минусы такого решения — меньшая скорость (фронт вверх формирует резистор, заряжающий ёмкость линии) и более слабая защита от помех. Поэтому внутренние шины компьютеров давно перешли на третье состояние. Но остаются задачи, где открытый коллектор незаменим:
Нагрузка на чужое напряжение
Самое частое применение открытого коллектора — управлять тем, что питается от напряжения выше питания микросхемы. Выход нужно лишь выдержать это напряжение в закрытом состоянии: можно зажечь лампочку на 12 В, щёлкнуть реле или получить логический перепад 15 В, подтянув выход резистором к +15 В (схема выше). Для таких задач выпускаются специальные микросхемы:
- '06 — шесть инверторов, выход которых выдерживает до +30 В;
- КМОП 40107 — два буфера И-НЕ с открытым стоком, ток выхода до 120 мА;
- серия 75450 («сдвоенные периферийные драйверы») — до 300 мА при +30 В;
- транзисторные матрицы UHP/UDN фирмы Sprague — до 1 А и 80 В.
О сопряжении логики с мощными нагрузками подробнее — в разделе 9.1.
Монтажное ИЛИ
Если соединить выходы нескольких вентилей с открытым коллектором на одну линию с общей подтяжкой (схема ниже), получится как будто один большой вентиль: линия НИЗКАЯ, если её тянет вниз хотя бы один выход. В примере использованы ИЛИ-НЕ: любой ИЛИ-НЕ замыкает свой выход, как только ВЫСОКИЙ хотя бы один его вход, поэтому .
Объединять можно вентили любых типов. Встречается и второе название — «монтажное ИМонтажная логика — соединение нескольких выходов с открытым коллектором на общий резистор подвески: линия в «0», если в «0» хоть один выход.»: ВЫСОКИЙ уровень на линии бывает, только если разомкнут (ВЫСОКИЙ) выход у каждого вентиля. Противоречия нет: в положительной логике это И, в отрицательной — ИЛИ, ровно как говорит теорема де Моргана, : И можно заменить на ИЛИ (и наоборот), проинвертировав все входы и выход. (раздел 8.3).
Что здесь что (4)
- Подтяжка 1 кОм. одна на всю линию: держит её ВЫСОКОЙ, пока все выходы разомкнуты
- ИЛИ-НЕ с открытым коллектором. ромб с чертой — знак открытого коллектора; ВЫСОКИЙ уровень на любом входе замыкает выход на землю
- Выходы соединены напрямую. спорить некому: вниз тянуть может кто угодно, вверх — только резистор
- Линия Q. — как один шестивходовый ИЛИ-НЕ
Когда-то монтажное ИЛИ было в моде, сегодня его применяют редко — за двумя заметными исключениями:
- в ЭСЛ выходы сделаны «открытыми эмиттерами», и объединять их таким способом можно без всяких опасений;
- в компьютерных шинах есть несколько особых линий, главная из которых — линия запроса прерывания. По ней передают не данные, а один факт: «кому-то из устройств нужно внимание». Монтажное ИЛИ даёт ровно это и не требует никакой логики, разбирающей, кто имеет право говорить.
Медленные внешние шины
Там, где скорость не важна, открытый коллектор применяют и для шин между компьютером и внешними устройствами — например, в шинах дисководов и в приборной шине IEEE-488 (её называют также HPIB или GPIB).
| Активный (двухтактный) | Три состояния | Открытый коллектор | |
|---|---|---|---|
| Верхний ключ | есть | есть, отключаемый | нет — внешний резистор |
| Можно на общую линию | нет | да, разрешён один | да, хоть все сразу |
| Фронт нарастания | быстрый | быстрый | медленный () |
| Типичное применение | обычная логика | шины данных ЭВМ | нагрузки, прерывания, IEEE-488 |
Линия «авария» в станке собрана монтажным ИЛИ: к ней подключены выходы четырёх вентилей LS с открытым коллектором (утечка закрытого выхода до 0,05 мА) и три входа LS ( мкА, мА). Открытый выход гарантирует В при втекающем токе до 8 мА. Подтяжка — к +5 В. Найдите: а) наибольшее сопротивление подтяжки, при котором ВЫСОКИЙ уровень не ниже 2,7 В; б) наименьшее сопротивление, при котором один открытый выход ещё удержит НИЗКИЙ уровень; в) время нарастания напряжения на линии от 0 до 2,0 В при кОм и ёмкости линии 100 пФ.
Решение
а) В ВЫСОКОМ состоянии через подтяжку текут утечки закрытых выходов и токи входов: мА. На резисторе можно потерять не больше В: кОм.
б) Худший случай — линию держит один выход, и через него течёт ток резистора плюс токи трёх входов: мА, откуда кОм.
в) Напряжение растёт по экспоненте , мкс; мкс. Спад через открытый транзистор идёт в десятки раз быстрее — вот откуда несимметричные фронты на линиях с открытым коллектором.
Выходы двух вентилей ИЛИ-НЕ с открытым коллектором (у одного входы , у другого ) соединены и подтянуты резистором к +5 В. Какую функцию выдаёт линия?
Решение
Линия ВЫСОКАЯ, только если оба выхода разомкнуты (ВЫСОКИЕ), — это монтажное И выходов: по теореме де Моргана. Два двухвходовых ИЛИ-НЕ «бесплатно» превратились в четырёхвходовый — именно так и собирают линию прерывания из нескольких источников. Платить приходится медленным фронтом нарастания.
Порт на схеме общей шины откликается на адрес 5. Его хотят перенести на адрес 3. Как изменить дешифратор?
Решение
: нужно , , . На вентиль И должны прийти , и — инвертор переезжает на линию , а теперь подаётся напрямую. Общее правило: дешифратор адреса — это И над адресными битами, в котором проинвертированы те биты, что в нужном адресе равны нулю.