ГЛАВА 15 Математическая электроника, или игра в квадратики
Устройство логических микросхем и двоичные операции
Трактирщик отворил дверь большой комнаты, где совсем недавно вместо прежней дрянной печурки поставили прекрасный большой камин.
А. Дюма. Три мушкетера
Типов элементарных логических (или цифровых — будем считать, что это синонимы) микросхем не так уж и много, и подавляющее большинство из них относится к одной из двух технологических разновидностей: ТТЛ (TTL, Транзисторно-Транзисторная Логика) и КМОП (CMOS, Комплементарные [транзисторы] Металл-Окисел-Полупроводник). Различие между ними чисто технологическое, функционально одноименные элементы из этих серий делают одно и то же, и на схемах обозначаются одинаково. Мало того, «чистая» ТТЛ на практике уже почти и не применяется, потому что современные модификации КМОП догнали и перегнали эту технологию по скоростным параметрам, а в остальном КМОП гораздо удобнее, как мы увидим. Существуют еще некоторые специальные технологии, например, быстродействующая ЭСЛ-логика, но она вам на практике никогда не встретится, а как конкретно устроены большие интегральные схемы внутри — неважно, коли их выходы совместимы с КМОП.
На практике в наших устройствах мы станем пользоваться только КМОП-микросхемами, причем, как традиционными, так и современных быстродействующих разновидностей. Тем не менее, про ТТЛ мы будем тоже много говорить, потому что некоторые общепринятые параметры микросхем унаследованы именно от нее. Транзисторно-транзисторная логика, введенная в практику фирмой Texas Instruments в 1965 году, возникла раньше КМОП (первая КМОП-микросхема была выпущена в 1968 году фирмой National Semiconductor) и стала наследницей диодно-транзисторной логики (ДТЛ), примеры которой мы приводили в главе 14 (см. рис. 14.4).
Сравнение основных характеристик ТТЛ и КМОП
Основной родовой признак ТТЛ — использование биполярных транзисторов, причем структуры только n-р-n. КМОП же, как следует из ее названия, основана на полевых транзисторах с изолированным затвором структуры МОП, причем комплементарных, т. е. обеих полярностей: и с n-, и с p-каналом. Схемотехника базовых логических элементов ТТЛ и КМОП приведена на рис. 15.1. На Западе их еще называют вентилями — чем можно оправдать такое название, мы увидим в конце главы.
Рис. 15.1. Схемы базовых элементов ТТЛ и КМОП
ТТЛ
Входной многоэмиттерный транзистор ТТЛ мы уже рисовали в главе 11 (см. рис. 11.3) — он может иметь сколько угодно (на практике — до восьми) эмиттеров, и у элемента тогда будет соответствующее число входов. Если любой из эмиттеров транзистора VT1 замкнуть на «землю», то транзистор откроется, а фазорасщепляющий транзистор VT2 (с его работой мы знакомы по рис. 6.8) — закроется. Соответственно, выходной транзистор VT3 откроется, a VT4 — закроется, на выходе будет высокий логический уровень (уровень логической единицы). Если же все эмиттеры присоединены к высокому потенциалу (или просто «висят» в воздухе), то ситуация будет обратная — VT2 откроется током через переход база-коллектор VT1 (такое включение транзистора называется инверсным), и на выходе установится ноль за счет открытого транзистора VT4. Такой ТТЛ-элемент будет осуществлять функцию «И-НЕ» (логический ноль на выходе только при единицах на всех входах).
Выходной каскад ТТЛ-элемента представляет собой некое подобие комплементарного (пушпульного) каскада класса В, знакомого нам по аналоговым усилителям (см. рис. 8.2). Однако воспроизведение p-n-р-транзисторов оказалось для ТТЛ-технологии слишком сложным, потому такой каскад носит еще название псевдокомплементарного: верхний транзистор VT3 работает в режиме эмиттерного повторителя, а нижний — в схеме с общим эмиттером.
Кстати, заметим, что из-за упомянутой недоступности p-n-р-транзисторов воспроизведение схемы «ИЛИ» для ТТЛ-технологии оказалось крепким орешком, и ее схемотехника довольно существенно отличается от показанной на рис. 15.1 базовой схемы элемента «И-НЕ».
* * *
Заметки на полях
На заре транзисторной техники псевдокомплементарные каскады, подобные выходному каскаду ТТЛ, использовались — о ужас! — для усиления звука. Их структура дала основания для многочисленных попыток приспособить логические элементы, которые, в сущности, представляют собой усилители с довольно большим (несколько десятков) коэффициентом усиления, для усиления аналоговых сигналов. Излишне говорить, что результаты оказываются довольно плачевными, даже с КМОП-элементом, который построен куда более симметрично.
* * *
Как видно из схемы, ТТЛ-элемент существенно несимметричен и по входам, и по выходам. По входу напряжение логического нуля должно быть достаточно близко к «земле», при напряжении на эмиттере около 1,5 В (при стандартном для ТТЛ питании 5 В) входной транзистор уже запирается. Причем при подаче нуля нужно обеспечить отвод довольно значительного тока база-эмиттер — около 1,6 мА для стандартного элемента, отчего для элементов ТТЛ всегда оговаривается максимальное количество одновременно подсоединенных к выходу других таких элементов (стандартно — не более десятка). В то же время логическую единицу на входы можно не подавать вовсе. Практически, однако, подавать ее следует — по правилам незадействованные входы ТТЛ должны быть присоединены к питанию через резисторы 1 кОм.
Еще хуже дела обстоят на выходе: напряжение логического нуля обеспечивается открытым транзистором и действительно довольно близко к нулю — даже при нагрузке в виде десятка входов других таких же элементов оно не превышает 0,5 В, а в нормах на сигнал ТТЛ оговорена величина не более 0,8 В. А вот напряжение логической единицы довольно далеко отстоит от питания и составляет при питании 5 В в лучшем случае (без нагрузки) от 3,5 до 4 В, практически же в нормах оговаривается величина 2,4 В.
Такое балансирование десятыми вольта (напряжение нуля 0,8 В, напряжение порога переключения от 1,2 до 2 В, напряжение единицы 2,4 В) приводит к тому, что все ТТЛ-микросхемы могут работать в довольно узком диапазоне напряжений питания: практически от 4,5 до 5,5 В, многие даже от 4,75 до 5,25 В, т. е. 5 В ±5 %.
Максимально допустимое напряжение питания составляет для разных ТТЛ-серий от 6 до 7 В, и при его превышении они обычно горят ясным пламенем. Низкий и несимметричный относительно питания порог срабатывания элемента приводит и к плохой помехоустойчивости.
Самым крупным (и даже более серьезным, чем остальные) недостатком ТТЛ является высокое потребление — до 2,5 мА на один такой элемент, и это без учета вытекающих токов по входу и потребления нагрузки по выходу. Так что приходится только удивляться, почему микросхемы ТТЛ, содержащие много базовых элементов, вроде счетчиков или регистров, не требуют охлаждающего радиатора. Все перечисленное в совокупности давно бы заставило отказаться от технологии ТТЛ вообще, однако у них до некоторого времени было одно неоспоримое преимущество — высокое быстродействие, которое для базового элемента в виде, показанном на рис. 15.1, может достигать десятков мегагерц.
В дальнейшем развитие ТТЛ шло по линии уменьшения потребления и улучшения электрических характеристик, в основном за счет использования так называемых переходов Шоттки на которых падение напряжения может составлять 0,2–0,3 В вместо обычных 0,6–0,7 В (технология ТТЛШ, обозначается буквой S в наименовании серии, отечественные аналоги: серии 531 и 530). Базовая технология, которая составляла основу широко распространенной в 1960-70-х годах серии 74 без дополнительных букв в обозначении (аналоги — знаменитые отечественные серии 155 и 133), сейчас практически не используется. ТТЛ-микросхемы в настоящее время можно выбирать из вариантов, представленных малопотребляющими сериями типа 74LSxx (серии 555 и 533) или быстродействующими типа 74Fxx (серия 1531). Причем потребление последних практически равно потреблению старых базовых серий при более высоком (до 125 МГц) быстродействии, а для первых все наоборот — быстродействие сохранено на уровне базового, зато потребление питания снижено раза в три-четыре.
КМОП
КМОП-элементы намного ближе к представлению о том, каким должен быть идеальный логический элемент. Для начала, как можно видеть из рис. 15.1, они практически симметричны, как по входу, так и по выходу. Открытый полевой транзистор на выходе (либо р-типа для логической единицы, либо n-типа для логического нуля) фактически представляет собой, как мы знаем, просто сопротивление, которое для обычных КМОП-элементов может составлять от 100 до 300 Ом (под «обычными» или «классическими» КМОП мы подразумеваем здесь серию 4000А или 4000В, см. далее). Для дополнительной симметрии на выходе обычно ставят последовательно два инвертора, подобных показанному на рис. 15.1 справа (жалко, что ли, транзисторов, если потребление не растет?). Поэтому на выходе не сказывается то, что в нижнем плече для схемы «И-НЕ» стоят два таких транзистора последовательно.
Для схемы «ИЛИ» такие транзисторы будут стоять в верхнем плече — она полностью симметрична схеме «И», что тоже плюс технологии КМОП по сравнению с ТТЛ. Обратите также внимание, что выходной каскад инвертора построен не по схеме «пушпульного» каскада, т. е. это не истоковые повторители напряжения, а транзисторы в схеме с общим истоком, соединенные стоками, что позволяет получить дополнительный коэффициент усиления по напряжению.
На практике особенности построения элемента приводят к тому, что в КМОП-микросхемах:
□ на ненагруженном выходе напряжение логической единицы практически равно напряжению питания, а напряжение логического нуля практически равно потенциалу «земли»;
□ порог переключения близок к половине напряжения питания;
□ входы практически не потребляют тока, т. к. представляют собой изолированные затворы МОП-транзисторов;
□ в статическом режиме весь элемент также не потребляет тока от источника питания.
Из последнего положения вытекает, что схема любой степени сложности, построенная с помощью КМОП-элементов, в «застывшем» состоянии или при малых рабочих частотах, не превышающих десятка-другого килогерц, практически не потребляет энергии! Отсюда ясно, как стали возможными такие фокусы, как наручные часы, которые способны идти от малюсенькой батарейки годами, или sleep-режим микроконтроллеров, в котором они потребляют от 1 до 50 мкА на все десятки тысяч составляющих их логических элементов.
Другое следствие перечисленных особенностей — исключительная помехоустойчивость, достигающая половины напряжения питания. Но это еще не все преимущества. КМОП-микросхемы «классических» серий могут работать в диапазоне напряжений питания от 2 до 18 В, а современные быстродействующие — от 2 до 7 В. Единственное, что при этом происходит: при снижении питания довольно резко — в разы — падает быстродействие и ухудшаются некоторые другие характеристики. Но именно по причине широкого диапазона напряжения питания КМОП-микросхемы классических серий имеет смысл применять и сегодня.
Кроме того, выходные транзисторы КМОП, как и любые другие полевые транзисторы, при перегрузке (например, в режиме короткого замыкания) работают как источники тока — при напряжении питания 15 В этот ток составит около 30 мА, при 5 В — около 5 мА. Причем это может быть долгосрочный режим работы таких элементов. Единственное, что при этом надо проверить, — не превышается ли значение суммарного допустимого тока через вывод питания, которое обычно составляет около 50 мА. То есть, возможно, придется ограничить число выходов, одновременно подключенных к низкоомной нагрузке. Естественно, о логических уровнях в таком режиме уже речи не идет, только о втекающем или вытекающем токе.
И тут мы подходим к основному недостатку «классической» КМОП-технологии — низкому в сравнении ТТЛ быстродействию. Обусловлено оно тем, что изолированный затвор МОП-транзистора представляет собой конденсатор довольно большой емкости — в базовом элементе до 10–15 пФ. В совокупности с выходным сопротивлением предыдущей схемы такой конденсатор образует фильтр низких частот.
Обычно рассматривают не просто частотные свойства, а время задержки распространения сигнала на один логический элемент. Задержка возникает из-за того, что фронт сигнала не строго вертикальный, а наклонный, и напряжение на выходе еще только начнет нарастать (или снижаться), когда напряжение на входе достигнет уже значительной величины (в идеале — половины напряжения питания). Время задержки могло достигать у ранних серий КМОП величины 200–250 не (сравните — у базовой серии ТТЛ всего 7,5 не). На практике при напряжении питания 5 В максимальная рабочая частота «классического» КМОП не превышает 1–3 МГц.
Попробуйте соорудить на логических элементах генератор прямоугольных сигналов по любой из схем, которые будут рассмотрены в главе 16, и вы увидите, что уже при частоте 1 МГц форма сигнала будет скорее напоминать синусоиду, чем прямоугольник.
Другим следствием наличия высокой входной емкости является то, что при переключении возникает импульс тока перезарядки этой емкости, — т. е., чем выше рабочая частота, тем больше потребляет микросхема, и считается, что при максимальных рабочих частотах ее потребление может сравниться с потреблением ТТЛ (по крайней мере, ТТЛ серии 74LS). Дело еще усугубляется тем, что из-за затянутых фронтов импульсов элемент достаточно длительное время находится в активном состоянии, когда оба выходных транзистора приоткрыты (т. е. возникает так называемый эффект сквозного тока). Это же затягивание фронтов в сочетании с высокоомным входом приводит к снижению помехоустойчивости при переключении — если на фронте сигнала «сидит» высокочастотная помеха, то это может приводить к многократным переключениям выхода, как это было у компаратора (см. главу 13).
Незадействованные входы элемента КМОП нужно обязательно подключать куда-нибудь: либо к земле, либо к питанию (резисторов при этом не требуется, т. к. вход тока не потребляет), либо объединять с соседним входом — иначе наводки на столь высокоомном входе полностью нарушат работу схемы. Причем в целях снижения потребления следует делать это и по отношению к незадействованным элементам в том же корпусе (но не ко всем незадействованным выводам, конечно). «Голый» вход КМОП из-за своей высокоомности может стать также причиной повышенной «смертности» чипов при воздействии статического электричества (хотя на практике входы всегда шунтируют диодами, как показано на рис. 11.4). Допустимый ток через эти диоды также оговаривается в спецификациях.
В современных КМОП, в отличие от «классических», большинство недостатков, связанных с низким быстродействием, удалось преодолеть (правда, за счет снижения допустимого диапазона питания).
Характеристики различных серий КМОП
Развитие КМОП было, естественно, направлено в сторону устранения или хотя бы сглаживания имеющихся недостатков. Оригинальная серия КМОП 4000 была не очень удачна — именно к ней относится значение задержек в 200 не и более, напряжение питания для нее составляло от 5 до 15 В, нагрузочная способность выхода — не более 0,6 мА. Причем советские аналоги (серии К176 и 164) были еще хуже, т. к. требовали питания около 9 В (мне так и не удалось нигде узнать, с какими допусками). Для стыковки с ТТЛ таких микросхем пришлось придумывать специальные «преобразователи уровня», которые тянули большой вытекающий ток по входу ТТЛ-элементов и умели подгонять уровни при различном напряжении питания.
А вот серия 4000А (отечественные К561 в корпусе DIP и «военная» 564 в планарном корпусе SOIC или похожем на него SOP) и, особенно, 4000В (частично К561 и вся К1561[20]) применяются и по сей день — в основном из-за неприхотливости и беспрецедентно широкого диапазона питающих напряжений — от 3 до 18 В, что позволяет без излишних проблем совмещать цифровые и аналоговые узлы в одной схеме. Задержки для этих серий составляют порядка 90-100 не, предельная рабочая частота — до 10–15 МГц, а выходные токи без ущерба для логического уровня — до 1,6–9 мА (большее значение при большем напряжении питания). Отметим, что эти характеристики достигаются при достаточно высоком напряжении питания, при обычных для современной электроники напряжениях 3–5 В быстродействие существенно снижается: при 5 В рабочая частота уже не превышает 3–5 МГц.
В настоящее время доступны быстродействующие серии КМОП с крайне неудачным общим названием 74, совпадающим с ТТЛ (серия 54 — то же самое, но для военно-космических применений). Чтобы не запутаться, имейте в виду, что если в наименовании серии присутствует буква С, то это КМОП, а все остальные (менее многочисленные) представители семейства 74 есть ТТЛ-микросхемы. Самые популярные разновидности — серия 74НСхх (отечественный аналог — 1564 или КР1564) и 74АСхх (1554). Номер серии, обозначения и разводка выводов элементов, совпадающие с номером для ТТЛ, были, вероятно, первоначально выбраны из маркетинговых соображений, чтобы подчеркнуть быстродействие и совместимость с ТТЛ, однако по другим параметрам это совсем не ТТЛ. Серии 74НС и 74АС совмещают в себе многие удобства КМОП (симметричность уровней, отсутствие потребления в статическом режиме) и быстродействие ТТЛ, достигающее десятков мегагерц (у 74АС даже до сотни). Пожертвовать, как мы говорили, пришлось расширенным диапазоном питания: номинальное напряжение питания для всех КМОП из 74-й серии — 5 В, максимально допустимое — 7 В, поэтому серию 4000В они заменяют не полностью. Правда, нижний предел питания для почти всех микросхем 74АС и всех 74НС даже ниже, чем для 4000-й серии — 2 В.
В этой книге мы будем ориентироваться на наиболее популярные у нас и по сей день микросхемы 561-й серии, но учтите, что при напряжениях питания 5–6 В и менее их мокно почти без ограничений заменять микросхемами серии 74НС или отечественными 1564. В некоторых случаях применение новых серий даже предпочтительнее, т. к. они формируют более крутые фронты сигналов.
«Почти» по отношению к взаимозаменяемости относится к потреблению — в покое все КМОП-элементы не потребляют тока, но с ростом частоты потребление быстродействующих растет быстрее. На рис. 15.2 показаны эмпирические графики потребления двух разновидностей КМОП-микросхем в расчете на один логический элемент в зависимости от частоты. Видно, что для «классической» 561-й серии потребление растет строго линейно с крутизной примерно 25 мкА на каждые 300 кГц увеличения частоты. Для элемента 74НС оно сначала быстро растет, затем темпы прироста снижаются, но в любом случае ток потребления остается как минимум вдвое больше, чем у «классического» элемента.
Рис. 15.2. Потребление КМОП-микросхем в расчете на один логический элемент в зависимости от частоты (напряжение питания 5 В)
* * *
Заметки на полях
Как видите, в абсолютном выражении потребление всех КМОП-элементов достаточно мало, и на частотах в десятки килогерц составляет единицы микроампер. Однако это потребление резко возрастает при увеличении напряжения питания — так, потребление схемы лабораторного генератора по рис. 16.14 составляет не более 150–200 мкА при 5 В, но при 15 В оно уже будет составлять порядка 1,5 мА. Отсюда общее правило для «МОП-микросхем: для уменьшения потребления снижение напряжения питания даст больший эффект, чем снижение рабочей частоты.
* * *
Серия 74АС еще мощнее, чем 74НС, и более быстродействующая (задержки порядка 5–7 не против 10–20 не у 74НС) — соответственно, при той же частоте она потребляет еще больше. Выходные максимально допустимые токи серии 74НС могут достигать 25 мА, а серии 74АС — аж 50 мА. Но в долгосрочном режиме такие токи гонять через выводы не рекомендуется: нормальный ток для выхода 74АС без нарушения логических уровней составляет 24 мА, а для 74НС — 4–8 мА, причем, напомним, что через вывод питания суммарный ток не должен превышать величины порядка 50 мА.
У разных производителей могут быть разные приставки (префиксы) к основному названию серии, как 4000В, так и серий 74, — так, у Fairchild Semiconductor микросхема будет называться CD4001B, у Texas Instruments — SN4001B, у Motorola — MCI4001B (более подробно об этом рассказано в приложении 4). Самое же противное в применении этих микросхем — разнобой в разводке выводов для одних и тех же элементов из разных серий (в этом их отличие от ОУ, которые в большинстве своем имеют одинаковую разводку, хотя тоже не всегда). Правда, для выводов питания разработчики старались по мере возможности придерживаться единого принципа (это же касается и многих аналоговых микросхем): «земля» присоединяется к последнему выводу в первом ряду, а питание — к последнему во втором, т. е. к выводу с наибольшим номером для данного корпуса (скажем, для корпуса с 14-ю выводами это будут, соответственно, 7 и 14, для корпуса с 16-ю выводами — 8 и 16 и т. д.). Это правило действует далеко не всегда, но для многих стандартных микросхем малой степени интеграции (включая и некоторые аналоговые) питание разведено именно так.
Как мы уже говорили, наименования одинаковых по функциональности элементов для КМОП разных серий и ТТЛ различаются. Причем функциональные наименования у серий 1564 и 1554 соответствуют ТТЛ (если аналоги в «классических» сериях существуют), а не КМОП. Микросхема, содержащая в одном корпусе четыре элемента «И-НЕ», подобных показанным на рис. 15.1, в отечественном варианте КМОП носит имя 561ЛА7, ТТЛ носит название 155ЛАЗ, в западном варианте это 4011 в «классической» серии и 74хх00 в быстродействующих версиях как КМОП, так и ТТЛ. Подробнее функциональные наименования описаны в приложении 4.
На рис. 15.3 показаны условные обозначения основных логических элементов на электрических схемах, причем нельзя не согласиться, что отечественные обозначения намного логичнее, легче запоминаются и проще выполняются графически, чем импортные, поэтому их обозначения логических элементов у нас так и не прижились (как, кстати, и многие другие, — например, обозначения резисторов и электролитических конденсаторов). Крайний справа элемент под наименованием «Исключающее ИЛИ» нам еще неизвестен, но скоро мы его будем изучать.
Рис. 15.3. Обозначения основных логических элементов на схемах: вверху — отечественные; внизу — импортные
В табл. 15.1 приведена разводка выводов микросхем, содержащих наиболее употребляемые одно- и двухвходовые логические элементы (для импортных указана маркировка фирмы Fairchild, но напомним, что у других изготовителей она отличается только префиксом). Как вы можете убедиться, в «классической» серии для всех двухвходовых логических микросхем она одинакова (в том числе и для элементов «Исключающее ИЛИ» CD4030/4070, которые мы еще не проходили), а вот другие серии с универсализацией подкачали. Для ТТЛ всех разновидностей (в том числе и отечественных) разводка совпадает с 74АС/НС, чем подчеркивается, что они взаимозаменяемы. Естественно, все элементы в одном корпусе абсолютно идентичны и взаимозаменяемы, поэтому для таких микросхем, если даже и номера выводов корпуса на принципиальной схеме указаны, элементы можно заменять друг на друга в процессе изготовления платы. Нередко на схеме не указывают и расположение выводов питания.
Как видно из табл. 15.1, заимствованная у «классической» ТТЛ разводка для микросхем 74НС00 и 74АС00 удобнее других — при каскадном соединении двух элементов достаточно соединить идущие подряд выводы 3 и 4 (или 3, 4 и 5, если входы объединяются) и аналогично поступить с другой половиной микросхемы. Иные типы исторически получили не столь удобную разводку.
Специальные буферные элементы с мощным выходом применяют для того, чтобы усилить выходы КМОП: с инверсией — 561ЛН2 или без нее — 561ПУ4. Они содержат шесть таких инверторов или буферов в одном корпусе. Отметим, что точного импортного аналога микросхемы 561ЛН2 не существует, при копировании наши разработчики улучшили микросхему CD4049, избавившись от лишних контактов корпуса. Правда, они не пошли до конца и не сделали то же самое для микросхемы 561ПУ4, содержащей 6 буферных усилителей без инверсии. В результате у 561ПУ4, у ее аналога CD4050, как и у CD4049, плюс питания присоединяется нестандартно — к выводу 1, а выводы 13 и 16 — не задействованы (и, напомним, не должны никуда присоединяться, что обозначено буковками NC — No Connected).
* * *
Заметки на полях
Объяснение этой кажущейся несуразице с лишними выводами одновходовых элементов простое — в первой серии 4000 (К176) существовали преобразователи уровня для перехода от 9-вольтовой КМОП-логики к 5-вольтовой ТТЛ (откуда и отечественное название ПУ). В этих преобразователях на вывод 16 подавалось еще одно напряжение питания 9 В. В сериях 4000А и 4000В необходимость в дополнительном питании отпала (они и сами чудесно работают при питании 5 В), а разводка выводов осталась.
* * *
Следует отметить, что по внутреннему устройству микросхемы с одновходовыми элементами, вероятно, самые простые из всех микросхем вообще. Элемент с инверсией (ЛН2, 4049) состоит всего из двух транзисторов (см. рис. 15.1 справа), а буферный элемент (ПУ4, 4050) — из двух таких инверторов, включенных последовательно. Однако у них есть один эксплуатационный нюанс, который также унаследован от времен, когда такие микросхемы служили для перехода от КМОП к ТТЛ.
Он заключается в том, что нижний транзистор выходного каскада мощнее верхнего. В результате в состоянии логического нуля по выходу эти микросхемы могут принять большой втекающий ток без ущерба для логических уровней — 3–5 мА при питании 5 В, и до 40 мА при 15 В. А вот в состоянии логической единицы значения выходного тока у них стандартные для «классической» КМОП — 1,6 мА при 5 В и до 12 мА при 15 В питания. При практическом применении ЛН2 и ПУ4 эту несимметрию нужно учитывать.
В отличие от «классических», быстродействующие аналоги 74НС4049 и 74НС4050 (в АС-версии их не существует, там есть аналоги только с открытым истоком, см. приложение 5) полностью симметричны, допускают долговременный как втекающий, так и вытекающий выходной ток через каждый вывод до 25 мА (но не более 50 мА в сумме по всем выводам) и предпочтительны для использования при напряжениях питания 3–5 В.
Выходы обычных логических элементов можно объединять с целью умощнения — например, выход одного инвертора в составе микросхемы ЛН2 формально «тянет» ток до 3,2 мА при 5 В питания (на самом деле гораздо больше, если выйти за пределы ограничений, накладываемых условием ненарушения логических уровней), а если соединить выходы всех шести входящих в состав микросхемы элементов, то можно подключать нагрузку до 20 мА, — главное, не превысить допустимый ток через вывод питания. Естественно, при этом необходимо также объединить и входы, превратив всю микросхему как бы в один мощный инвертор.
Есть, разумеется, и логические элементы с большим количеством входов. Я не буду приводить здесь разводку выводов других типов логических микросхем, чтобы не загромождать текст, т. к. наличие отдельного справочника по ним в любом случае обязательно. В качестве справочника, в котором приведены не только основные сведения и разводка выводов, но и подробно объясняется работа микросхем базовых серий с многочисленными примерами, я бы рекомендовал разыскать у букинистов или скачать из Сети книгу [18]. Это суперпопулярное пособие вышло в свое время несколькими изданиями и почти не устарело (правда, некоторых современных типов микросхем в нем нет). В Сети, разумеется, можно найти и другие подобные справочники.
Следующей широко употребляемой разновидностью логических микросхем являются элементы, имеющие выход с открытым истоком (с открытым коллектором для ТТЛ). Такой выход, как мы помним, имеет компаратор 521САЗ (см. главу 12). Есть такие элементы и с чисто логическими функциями: в КМОП-серии это CD40107 (561ЛА10, содержит два двухвходовых элемента «И-НЕ»), в быстродействующих КМОП это 74НС05 (шесть инверторов, аналог ЛА10 под названием 74НС22 снят с производства). Причем CD40107 может коммутировать значительный втекающий ток — аж до 136 мА при 25 °C и 10 В питания, и 70 мА при 5 В. 74НС05 скромнее, и коммутирует стандартные для этой серии 20 мА.
Эти элементы используют не только для коммутации мощной нагрузки, но и для объединения на общей шине в так называемое проводное или монтажное «ИЛИ» (рис. 15.4). Название это, на мой взгляд, несколько неудачное, ибо соответствует отрицательной логике — на общей шине логическая единица будет только тогда, когда выходы всех элементов установятся в 1, а если хотя бы один выход находится в нуле, то и на шине будет ноль, что в положительной логике соответствует операции «И».
Рис. 15.4. Объединение элементов с открытым коллектором по схеме «проводное ИЛИ»
Для объединения выходов могут служить и так называемые элементы с третьим состоянием. Это соответствует не логическому понятию состояния, а электрическому, — третье состояние в данном случае обозначает просто обрыв, отключение выхода элемента от вывода микросхемы. Такие элементы имеются и в составе серий, но наиболее часто применяются в составе более сложных микросхем. Например, выводы многих микроконтроллеров или микропроцессоров имеют возможность переключения в третье состояние.
* * *
Заметки на полях
Мы часто будем усиливать выходы КМОП-микросхем с помощью отдельного ключевого транзистора, и схема его включения может представлять в данном случае исключение из того правила, что в ключевом режиме обязательно «привязывать» базу к «земле», как это было оговорено в главе 6 (см. рис. 6.4 и относящийся к нему текст). Дело в том, что подключенная к выходу логического элемента база транзистора всегда будет привязана через токоограничивающий резистор к какому-нибудь потенциалу, и в воздухе никогда не «повиснет», поэтому и запирающий резистор можно не ставить.
Однако это не относится к случаю, когда база управляется от выхода ТТЛ-микросхемы через диод, включенный в прямом направлении, как это часто делают, чтобы обеспечить надежное запирание транзистора (см., например, [3]). На мой взгляд, ставить такой диод совершенно не требуется, но если уж автор построил схему именно так, то нужно ставить и запирающий резистор, потому что при нулевом потенциале на выходе микросхемы диод запирается, и база тогда «повисает» в воздухе.
Двоичный сумматор на логических микросхемах
Заметим сразу, что схема этого устройства в том виде, в котором мы ее сейчас будем конструировать, сама по себе довольно бесполезна — если вы, конечно, не хотите повторить подвиг советского конструктора Михаила Александровича Карцева. Он создал в 1970-х годах на микросхемах малой степени интеграции (т. е. фактически на отдельных логических элементах) очень удачную ЭВМ под названием М-10, замечательную тем, что отдельные ее экземпляры в нашем оборонном комплексе продержались аж до начала нового тысячелетия. При желании повторить такой подвиг, учтите, что основная проблема, которую вам придется решать, состоит вовсе не в том, чтобы такую машину сконструировать схемотехнически — это не самая трудная часть работы. Самое трудное для подобных суперконструкций — решить проблему отвода тепла, выделяемого сотнями тысяч быстродействующих логических микросхем. Суперкомпьютеры Cray на отдельных логических элементах, выпускаемые в 1980-х годах, даже имели водяное охлаждение.
Наконец, если очень хочется, то готовый двоичный сумматор есть в интегральном исполнении (561ИМ1; есть сумматоры и помощнее). Зачем же мы тогда будем его конструировать? А затем, что его устройство очень хорошо иллюстрирует две вещи: во-первых, само применение логических микросхем, во-вторых — разве не любопытно знать, как устроен самый главный узел компьютера, арифметико-логическое устройство, АЛУ? Знание этого вам очень пригодится для лучшего понимания работы микроконтроллеров и принципов их программирования. Кроме того, мы на этом примере познакомимся еще с одним важным типом логических элементов.
Итак, вспомним, что нам, собственно, нужно делать — а именно: воспроизвести таблицу сложения двоичных чисел, которая была показана для одноразрядных чисел в главе 14. Так как при сложении единиц получается двухразрядное двоичное число, то перепишем эту таблицу в двухразрядном представлении:
Теперь разобьем таблицу на две: одну для разряда собственно суммы, другую для значения переноса в следующий разряд:
Сравним вторую таблицу с таблицей состояний для базовых логических функций (я их повторю, чтобы не пришлось листать книгу):
Для переноса имеем полное совпадение с функцией «И». То есть, для того чтобы обеспечить перенос, нам нужен всего лишь один логический элемент «И», который получается комбинированием стандартного «И-НЕ» с инвертором[21]. Хуже с разрядом суммы: первые три значения обеспечивает элемент «ИЛИ», однако при сложении единиц возникает несоответствие (логическое и арифметическое сложения, как мы говорили, не адекватны друг другу). Нужен специальный элемент, который мог бы получить название элемент несовпадения: в самом деде, у него логическая единица на выходе тогда, когда входы имеют разное состояние, а если они одинаковы — на выходе ноль. Для того чтобы его сконструировать, взглянем на таблицу истинности элемента «И-НЕ» (для наглядности я повторю и ее):
Сравним таблицы «ИЛИ», «И-НЕ» и необходимой нам суммы: в первом случае мы получаем то, что надо, в верхних трех строках, во втором — в нижних. Как бы их объединить? Да очень просто — через функцию «И»:
Логический элемент с такой функцией «несовпадения» носит специальное название — «Исключающее ИЛИ». Существует и обратный элемент «совпадения», который представляет собой инверсию выхода «Исключающего ИЛИ» и носит название «Включающего ИЛИ».
Обозначение элемента «Исключающее ИЛИ» уже было показано на рис. 15.3. А как можно его составить из элементов «И-НЕ» и «ИЛИ-НЕ», показано на рис. 15.5.
Рис. 15.5. Варианты реализации элемента «Исключающее ИЛИ» и его таблица истинности
Верхний вариант полностью соответствует нашим рассуждениям и потребует двух корпусов микросхем, а нижний вариант — пример того, как можно построить «Исключающее ИЛИ» с использованием только одного типа элементов, в данном случае — «И-НЕ». Он более экономичен, т. к. потребует всего одного корпуса типа 561ЛА7. Попробуйте построить таблицу истинности для второго варианта, и вы убедитесь, что он работает «как заказывали» (есть и много других способов). Отметьте, что в первом варианте специальных элементов-инверторов мы не используем, а с целью экономии корпусов микросхем образуем их из элементов «И-НЕ» или «ИЛИ-НЕ» путем объединения входов — обычно так и поступают.
В любой логической серии есть, разумеется, и специальные микросхемы «Исключающее ИЛИ» (561ЛП2). Элемент «Исключающее ИЛИ», помимо способности выдавать сумму одноразрядных чисел, обладает многими интересными свойствами, к которым мы обратимся далее, а пока вернемся к сумматору.
На самом деле одноразрядный сумматор мы уже построили. Его схема приведена на рис. 15.6 вверху. Внизу на рис. 15.6 мы обозначили все устройство одним квадратиком.
Рис. 15.6. Схема одноразрядного полусумматора
Однако почему там написано «полусумматор»? Такой одноразрядный сумматор носит название полусумматора, потому что он не «умеет» одной важной вещи, а именно: разряд переноса-то он выдает, а вот учесть перенос от предыдущего разряда не может. Поэтому, чтобы складывать многоразрядные числа по-настоящему, нужно в каждом разряде поставить по два таких полусумматора, причем объединить их выходы переносов через «ИЛИ» (рис. 15.7).
Рис. 15.7. Схема многоразрядного сумматора
Так мы получили одноразрядный полный сумматор. Объединением таких сумматоров несложно соорудить устройство для сложения чисел любой разрядности. Если вы попробуете нарисовать схему сумматора для, скажем, восьми разрядов полностью с использованием принципиальных схем логических элементов по рис. 15.1, то ужаснетесь — это же сколько транзисторов надо, чтобы построить такое устройство? Много — в восьмибитном КМОП-сумматоре их получается 480 штук (а современные микросхемы, бывает, содержат и больше транзисторов). И это без учета того, что в систему должны входить еще, как минимум, два регистра для хранения исходных чисел и результата (в целях экономии результат помещают в регистр одного из слагаемых, тем самым слагаемое это уничтожая), а также другие логические схемы (для сдвига, для инверсии битов при манипуляции с отрицательными числами). То есть общее количество транзисторов составляет порядка тысячи.
Теперь понятно, почему микросхемы высокой степени интеграции содержат миллионы транзисторов и почему проблема отвода тепла стоит так остро! Один логический элемент КМОП из четырех транзисторов выделяет, согласно рис. 15.2, при частоте в единицы мегагерц всего-навсего полмилливатта тепла, но что будет, если таких элементов приходится ставить в количестве миллион штук? И еще при этом как можно больше повышать рабочую частоту?
Сумматоры, построенные по описанной схеме, выпускают, естественно, в интегральном исполнении (в «классической» КМОП это микросхема четырехразрядного сумматора 561ИМ1, есть и схема более универсального АЛУ — 561ИПЗ). В связи с многоразрядным сумматором возникает только один вопрос — а что делать с входом переноса самого первого, младшего разряда? Если мы просто складываем двоичные числа разрядности, соответствующей возможностям нашего сумматора (например, восьмиразрядные, т. е. длиной в один байт), то вход переноса младшего разряда присоединяется к логическому нулю. Соответственно, выход переноса старшего разряда остается «висеть в воздухе». Легко сообразить, что при этом, если складываются числа, в сумме составляющие более величины диапазона, старший разряд суммы «потеряется». Это явление при всей своей очевидности стоит того, чтобы рассмотреть его подробнее.
Предположим, у нас есть такой байтовый сумматор, и под числами мы имеем в виду обычные беззнаковые положительные числа, диапазон которых составит 0-255. Если мы сложим 128 (1000 0000) и 128 (1000 0000), то получим число 256 (1 0000 0000), которое имеет единицу в 9-м, отсутствующем у нас, разряде (заодно отметим этот результат как хорошую иллюстрацию к положению, гласящему, что умножение на 2 есть просто сдвиг всех разрядов влево на одну позицию). Таким образом, в разрядах сумматора мы получаем одни нули, что, конечно, есть результат некорректный. Для корректного сложения, к примеру, восьмибитовых чисел цам надо иметь 9 разрядов результата.
А как наращивать разряды, если, например, в микроконтроллере все регистры восьмиразрядные? Да очень просто — надо взять два таких регистра и соединить выход переноса одного со входом переноса другого. Тогда мы получим двухбайтовое число (или слово, как его чаще называют). В микропроцессорах, в том числе и в микроконтроллерах, мы, конечно, физически такое объединение сделать не можем — схема уже создана заранее, но в них зато есть специальный отдельный бит переноса (carry bit), в который автоматически помещается перенос в результате операций сложения, умножения и, кстати, вычитания и деления тоже.
Обработка двоичных сигналов с помощью логических элементов
В начале главы мы упоминали, что логические элементы носят еще название вентилей. На самом деле вентиль — это устройство для регулирования потока жидкости или газа. Каким же образом оправдано это название в приложении к нашим схемам? Оказывается, если на один из входов логического элемента подавать последовательность прямоугольных импульсов (некую аналогию потока), а на другой — логические уровни, то в этом случае элемент будет себя вести совершенно аналогично вентилю настоящему.
Соответствующие диаграммы показаны на рис. 15.8, а. Из них вытекают следующие правила:
□ для элемента «И-НЕ» логический уровень 1 является «разрешающим», т. е. в этом случае последовательность на другом входе пропускается на выход без изменения (за исключением того, что она инвертируется, поскольку элемент у нас «И-НЕ», а не просто «И»). При логическом уровне 0 вентиль запирается, на выходе будет логическая 1;
□ для элемента «ИЛИ-НЕ» ситуация полностью противоположна: «разрешающим» является логический уровень 0, т. е. в этом случае последовательность на другом входе пропускается на выход (также с инверсией). При логическом уровне 1 вентиль запирается, на выходе будет логический 0;
□ для «Исключающего ИЛИ» все еще интересней — в зависимости от того, 0 на входе или 1, относительно другого входа элемент ведет себя, соответственно, как повторитель или как инвертор, что дает довольно широкие возможности для управления двоичными последовательностями.
Рис. 15.8. Обработка цифровых сигналов при помощи логических элементов,
а — диаграммы прохождения сигналов через основные типы логических элементов;
б — «антидребезг» на основе элемента «Исключающее ИЛИ»;
в и г — использование элемента «Исключающее ИЛИ» для выявления разности фаз (в) и частот (г) сигналов;
д — логический элемент «Исключающее ИЛИ» на двух переключателях
На рис. 15.8, б показана интересная схема на основе элемента «Исключающее ИЛИ». Эта схема устраняет неизбежный дребезг механических контактов, который может вызвать (более того, вызывает обязательно) многократное срабатывание некоторых электронных схем — например, триггеров или счетчиков. При наличии свободного элемента «Исключающее ИЛИ» устранить дребезг, как видите, очень просто. Чтобы понять, как это работает, надо учесть, что подвижные контакты кнопки, тумблера или реле никогда не пролетают несколько раз расстояние от одного неподвижного контакта до другого — подвижный контакт только несколько (иногда до нескольких десятков) раз за короткое время оказывается «висящим в воздухе» (представьте себе, что он как бы подпрыгивает на неподвижном контакте, причем как при размыкании, так и при замыкании). При этом подачи напряжения, соответствующего противоположному логическому уровню, не происходит.
При этих условиях на схеме рис. 15.8, б происходит следующее: при наличии 0 на одном из входов элемент «Исключающее ИЛИ» работает как повторитель. Если контакт был замкнут (надежно) с потенциалом питания (логической единицей), то на выходе будет также единица. Когда контакт в процессе дребезга разомкнётся и «повиснет в воздухе», то потенциал на выходе все равно останется равным единице, т. к. поддерживается обратной связью, замыкающей выход со входом. Сколько бы контакт ни дребезжал таким образом, потенциал останется равным единице до первого касания контактом «земли», когда элемент перебросится в другое состояние и будет в нем пребывать опять-таки независимо от того, дребезжит контакт или нет. Разумеется, можно и инвертировать сигнал, если присоединить второй вход к питанию, а не к «земле». Заметьте, что в схеме по рис. 15.8, б обязательно требуется именно перекидной контакт — для простой кнопки с двумя выводами нужно использовать иные способы антидребезга, и мы их еще будем рассматривать.
Однако самое интересное будет, если на входы «Исключающего ИЛИ» подать две последовательности импульсов с разными частотами и/или фазами. На рис. 15.8, в показано, что произойдет, если обе последовательности имеют одинаковую частоту, но фазы при этом сдвинуты на полпериода. На выходе при этом возникнет колебание с удвоенной частотой! Попробуйте изменить фазу — вы увидите, что скважность результирующего колебания будет меняться, пока фазы не совпадут, и тогда сигнал на выходе исчезнет, — одинаковые состояния выходов дают на выходе «Исключающего ИЛИ» всегда логический ноль. Это позволяет использовать такой элемент в качестве «фазового компаратора», что широко используется в фазовых модуляторах и демодуляторах сигнала.
Не менее интересный случай показан на рис. 15.8, г — здесь на входы подаются последовательности с различающейся частотой. Мы видим, что на выходе возникнет сигнал с изменяющейся скважностью, причем легко показать, что период изменения этой скважности от минимума к максимуму и обратно будет в точности равен периоду сигнала с частотой, равной разности исходных частот. Если при этом поставить на выходе элемента фильтр низкой частоты (если разность частот невелика в сравнении с исходными частотами, то достаточно простой RC-цепочки), то мы получим синусоидальное колебание с частотой, равной этой разности! Это колебание можно как-то использовать или, например, можно его подать в качестве сигнала обратной связи на генератор, управляемый напряжением (ГУН), который тогда изменит частоту одного из сигналов так, чтобы она в точности совпадала со второй (опорной). Таким образом, например, делают схемы умножителей частоты, получая целый набор точных частот с использованием одного-единственного опорного кварцевого генератора.
Наконец, на рис. 15.8, д показана очень простая, но полезная схема, которая реализует функцию «Исключающее ИЛИ» на двух выключателях с перекидными контактами. Если выключатели в этой схеме находятся в одном положении, то лампочка горит, если в противоположных — выключена. Если лампочка находится в прихожей, то один из выключателей располагается при входе с улицы, а другой — при выходе во внутренние помещения. Заходя в прихожую, вы включаете свет одним выключателем, покинув ее — выключаете либо вторым, либо тем же самым (смотря в какую сторону уходите), причем независимо от того, в какой последовательности это происходит. К сожалению, бытовые выключатели почти всегда имеют одну пару контактов, но некоторые клавишные конструкции несложно доработать так, чтобы они стали перекидными.
Другие, не менее интересные применения логических функций мы рассмотрим в следующих главах, а пока остановимся еще на одной важной разновидности логических элементов.
Мультиплексоры/демультиплексоры и ключи
Мультиплексоры/демультиплексоры — важный класс логических схем малой степени интеграции. Их довольно часто применяют и в современных схемах совместно с микроконтроллерами — для сокращения числа необходимых соединений.
Мультиплексором называют схему, которая соединяет единственный входной вывод напрямую с одним из нескольких выходных (как правило, четырех или восьми), в зависимости от поданного на нее двоичного кода (схема «1 —> 8»). Соответственно, демультиплексор осуществляет обратную операцию — пропускает сигнал с одного из нескольких выводов на единственный выходной (схема «8 —> 1»). Фишка состоит в том, что в КМОП-версии они прекрасно коммутируют не только цифровые, но и аналоговые сигналы, причем в обе стороны!
Такие мультиплексоры/демультиплексоры делают на ключах — специальным образом включенных полевых транзисторах по технологии КМОП. Простейший такой ключ изображен на рис. 15.9, а. Выпускаются также и микросхемы, содержащие просто наборы отдельных ключей, — например, 590КН2 и аналогичные, мы еще с ними столкнемся. Такие ключи широко используются в составе микросхем средней и большой степени интеграции — в аналого-цифровых и цифроаналоговых преобразователях, например. Также они практически заменили механические переключатели в коммутаторах телевизионных каналов, используются в цифровых переменных резисторах, электронных реле и т. д.
На рис. 15.9, б приведена для примера схема разводки выводов микросхемы 561КП2, которая представляет собой восьмиканальный мультиплексор/демультиплексор (561КП1 делает то же самое, но содержит два четырехканальных мультиплексора).
Эта микросхема коммутирует один из выводов, обозначенных как 0–7, к выводу Q, в зависимости от поданного на управляющие входы А-С двоичного кода. Очень важную функцию осуществляет вход Е (с инверсией, т. е. активный уровень на нем — низкий) — это вход разрешения, и если на нем присутствует высокий уровень, то все каналы размыкаются.
Рис. 15.9. Использование КМОП-ключей:
а — простейший униполярный ключ,
б — разводка выводов мультиплексора/демультиплексора 561КП2
Специально для коммутации переменных аналоговых сигналов у 561КП2 предусмотрено подключение отрицательного питания (вывод 7), в случае цифровых же сигналов этот вывод коммутируется просто на «землю». Размах питания между выводами 7 и 16 не может превышать предельно допустимого для однополярного питания 561-й серии значения 15–18 В, т. е. двухполярное питание возможно примерно до ±8 В. Однако уровень сигнала управления (как по входам А-С, так и по Е) при этом отсчитывается от «цифровой земли», которая установлена потенциалом вывода 8. При этом аналоговый сигнал по амплитуде может достигать почти значений питания, только для получения минимума искажений коммутируемые токи также должны быть малы.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОК