Text
                    'W
Ю. В. Новиков
ОСНОВЫ м
ЦИФРОВОЙ
СХЕМОТЕХНИКИ
БАЗОВЫЕ ЭЛЕМЕНТЫ И СХЕМЫ
МЕТОДЫ ПРОЕКТИРОВАНИЯ
Издательство «МИР»

Ю. В. Новиков ОСНОВЫ ЦИФРОВОЙ СХЕМОТЕХНИКИ БАЗОВЫЕ ЭЛЕМЕНТЫ И СХЕМЫ МЕТОДЫ ПРОЕКТИРОВАНИЯ Для студентов, преподавателей, профессионалов. ISBN 5-03-003449-8
СОВРЕМЕННАЯ СХЕМОТЕХНИКА Ю. В. Новиков основы ЦИФРОВОЙ СХЕМОТЕХНИКИ БАЗОВЫЕ ЭЛЕМЕНТЫ И СХЕМЫ МЕТОДЫ ПРОЕКТИРОВАНИЯ Москва «МИР» 2001
УДК 621.374.1 ББК 32.85 Н73 Новиков Ю. В. Н73 Основы цифровой схемотехники. Базовые элементы и схемы. Методы проектирования. — М.: Мир, 2001. — 379 с., ил. — (Современная схемотехника) ISBN 5-03-003449-8 Книга представляет собой учебник по основам цифровой схемотех- ники. Рассматриваются основы схемотехники цифровых устройств, которыми должен свободно владеть и активно пользоваться каждый профессиональный разработчик цифровой аппаратуры. Обсуждается функционирование и взаимодействие всех основных типов цифровых микросхем — от самых простых до самых сложных. Описываются модели и уровни представления цифровых микросхем, используемых при проектировании цифровых электронных систем, способы опти- мального построения высокоэффективных цифровых систем самой различной степени сложности. Книга позволяет освоить азбуку цифро- вой схемотехники даже читателям с начальным уровнем знаний по электронике. Усвоению материала помогает большое количество кон- кретных примеров построения самых различных цифровых устройств. Для студентов, преподавателей и профессиональных разработчиков цифровых электронных систем. ББК 32.85 Редакция литературы по информатике и новой технике ISBN 5-03-003449-8 © «Мир», 2001
ОГЛАВЛЕНИЕ Предисловие ................................................... 7 Введение ...................................................... 8 Глава 1. Философия цифровой электроники.................... 13 1.1. Аналог или цифра?............................ 13 1.2. Модели и уровни представления цифровых устройств 17 1.3. Входы и выходы цифровых микросхем............ 24 1.4. Основные обозначения на схемах ................. 32 1.5. Серии цифровых микросхем........................ 37 1.6. Корпуса цифровых микросхем...................... 43 1.7. Двоичное кодирование ........................... 44 1.8. Функции цифровых устройств...................... 50 Глава 2. Применение логических элементов...................... 53 2.1. Инверторы....................................... 54 2.2. Повторители и буферы............................ 58 2.3. Логические элементы И, И-НЕ, ИЛИ, ИЛИ-НЕ .... 65 2.4. Логические элементы Исключающее ИЛИ......... 74 2.5. Сложные логические элементы .................... 78 2.6. Триггеры Шмитта................................. 80 Глава 3. Применение комбинационных микросхем.................. 87 3.1. Дешифраторы и шифраторы......................... 88 3.2. Мультиплексоры.................................. 97 3.3. Компараторы кодов ............................. 101 3.4. Сумматоры ..................................... 105 3.5. Преобразователи кодов.......................... 109 3.6. Одновибраторы и генераторы..................... 114 Глава 4. Применение триггеров и регистров.................... 123 4.1. Триггеры....................................... 124 4.1.1. Принцип работы и разновидности триггеров. 124 4.1.2. Основные схемы включения триггеров.......... 131 4.2. Регистры....................................... 142 4.2.1. Регистры, срабатывающие по фронту........... 144 4.2.2. Регистры, срабатывающие по уровню........... 153 4.2.3. Сдвиговые регистры.......................... 157 Глава 5. Применение счетчиков ............................... 170 5.1. Асинхронные счетчики .......................... 172 5.2. Синхронные счетчики с асинхронным переносом ... 181 5.3. Синхронные счетчики............................ 209
6 Оглавление Глава 6. Применение микросхем памяти...................... 222 6.1. Постоянная память........................... 225 6.1.1. ПЗУ как универсальная комбинационная микро- схема .......................................... 231 6.1.2. ПЗУ в генераторах импульсных последовательно- стей ........................................... 240 6.1.3. Микропрограммные автоматы на ПЗУ........ 245 6.2. Оперативная память.......................... 258 6.2.1. ОЗУ для временного хранения информации . 264 6.2.2. ОЗУ как информационный буфер............ 272 6.2.3. Улучшение параметров ОЗУ................ 280 Глава 7. Применение микросхем ЦАП и АЦП.................. 284 7.1. Применение ЦАП.............................. 285 7.2. Применение АЦП.............................. 295 Глава 8. Примеры разработки цифровых устройств........... 307 8.1. Разработка клавиатуры ...................... 308 8.2. Разработка вычислителя контрольной суммы... 316 8.3. Разработка логического анализатора ......... 321 8.4. Разработка генератора аналоговых сигналов... 336 Приложение. Микросхемы, параметры, сигналы................ 351 Список литературы......................................... 365 Словарь терминов и сокращений............................. 368
ПРЕДИСЛОВИЕ Цель этой книги — помочь в изучении основ цифровой схемо- техники любому желающему — от студента до профессионала. Причем речь в данном случае идет не о физических основах элек- троники, не о технологии производства электронных компонен- тов, не об электронике или схемотехнике вообще, а именно о цифровой схемотехнике с ее специфическими особенностями. В книге рассмотрены многие важные вопросы цифровой схемотехники, которым в литературе обычно уделяется недоста- точно внимания. Видимо, авторы книг считают их чем-то само собой разумеющимся или полагают, что читатели сами должны сформулировать эти вопросы и сами же найти на них ответы. В результате нередки случаи, когда даже выпускники институтов по специальностям, связанным с электроникой, не могут само- стоятельно разработать более или менее сложное нестандартное цифровое устройство. После изучения данной книги читатель будет обладать необходимыми навыками для проектирования как простейших узлов, так и довольно сложных устройств. Книга написана сжато, последовательно и доступно и тре- бует минимального обращения к другим источникам. Часть ма- териала, представленного в ней, написана на основе лекций, чи- таемых автором в МИФИ. Конечно, в такой небольшой книге невозможно рассмотреть все компоненты цифровой электроники и все приемы проектиро- вания цифровой схемотехники. Предполагается, что она станет первой в серии книг по цифровой схемотехнике. В последующих книгах серии будут рассмотрены, в частности, следующие темы: • схемотехника устройств на основе программируемой логики; • схемотехника микропроцессорных устройств; • схемотехника устройств на основе микроконтроллеров; • схемотехника персональных компьютеров; • схемотехника компьютерных систем измерения, контроля и управления; • аппаратно-программные средства отладки и контроля цифровых устройств; • программные средства проектирования цифровых устройств. Ю. В. Новиков 6 июня 2001 г.
ВВЕДЕНИЕ Цифровая электроника в настоящее время все более и более вы- тесняет традиционную аналоговую. Ведущие фирмы, произво- дящие самую разную электронную аппаратуру, все чаще заяв- ляют о полном переходе на цифровую технологию. Причем это относится как к бытовой технике (аудио-, видеоаппаратура, средства связи), так и к профессиональной технике (измеритель- ная, управляющая аппаратура). Ставшие уже привычными пер- сональные компьютеры также полностью реализованы на осно- ве цифровой технологии. Видимо, в ближайшем будущем пол- ностью аналоговые устройства будут применяться только в тех редких случаях, когда требуется получить рекордные значения некоторых параметров электронных устройств (например, быст- родействия). Между тем литературы, позволяющей самостоятельно изу- чить основы и главные методы цифровой схемотехники, осво- ить основные практические приемы проектирования цифровых устройств, явно недостаточно. Книги, которые претендуют на освещение основ цифровой схемотехники, можно разделить на три большие группы. К первой группе относятся книги, которые стремятся охва- тить всю электронику в целом (как цифровую, так и аналого- вую). Такой глобальный подход неизбежно приводит к тому, что цифровая схемотехника рассматривается чересчур кратко, поверхностно. Даже самые лучшие из книг этой группы уделя- ют цифровой электронике не более четверти своего объема. Между тем цифровая электроника существенно отличается от аналоговой не только видом используемых сигналов, но, что самое главное, приемами проектирования, требуемым стилем мышления разработчика, принципами построения сложных сис- тем. Данные книги хороши в основном для повышения общего уровня образования читателя, для создания общего базиса, на котором только и может вырасти настоящий специалист, разра- ботчик электронной аппаратуры. Ко второй группе относятся книги, посвященные цифро- вым микросхемам и их применению. Эти книги стремятся описать как можно более подробно все имеющиеся микро- схемы, поэтому обязательно содержат большой справочный
Введение 9 материал. Однако в любом случае приводимые в них спра- вочные данные далеко не полны и к тому же неизбежно со- держат большое количество ошибок. Справочников по мик- росхемам должно быть как можно меньше, и они должны быть очень подробными, иначе они просто не имеют смысла. В идеале справочники должны выпускаться только фирмами- изготовителями микросхем. А попытка ввести в книгу даже краткие справочные данные по всем существующим микро- схемам не оставляет достаточно места для описания самого главного — разнообразных применений этих микросхем, ме- тодам проектирования цифровых узлов и устройств на их ос- нове. Поэтому книги этой группы годятся обычно только для первичного знакомства с темой. Наконец, третья группа книг описывает готовые цифровые устройства различного назначения. В основном такие книги рассчитаны на «радиолюбителей», хотя обычно не совсем по- нятно, что подразумевается под этим понятием. Среди тех, кто называют себя радиолюбителями, немало прекрасных разра- ботчиков, а среди дипломированных профессионалов встре- чаются те, кто не может разработать даже простейшей схемы. Книги этой третьей группы, как правило, не говорят о том, как разрабатывались те или иные устройства, какие приемы про- ектирования применялись и почему. Поэтому они могут сфор- мировать у неподготовленного читателя привычку к бездум- ному повторению готовых решений, использованию шабло- нов. Настоящую пользу данные книги могут принести только тому, у кого уже есть хороший базовый запас знаний и умений по проектированию цифровых устройств. Впрочем, для таких людей чужие схемы не слишком интересны, они могут проек- тировать свои. К недостаткам многих существующих книг можно отнести также чрезмерное увлечение описание тонкостей физических процессов, лежащих в основе цифровой электроники, и подроб- ное рассмотрение особенностей технологии микросхем. Конеч- но, все это тоже нужно, полезно, интересно, но с самой схемо- техникой связано не жестко, не прямо и не слишком сильно. Разработчик цифровой аппаратуры в подавляющем большинст- ве случаев работает с микросхемами как с «черным ящиком», ему не слишком важно, что происходит внутри, как реализуется та или иная функция микросхемы. Видимо, целесообразно фи-
10 Введение зику полупроводников и технологию изучать отдельно от схе- мотехники, параллельно с ней, до нее или после нее, чтобы не смешивать две различные области знаний. Наконец, еще одним недостатком книг о цифровой схемо- технике можно назвать стремление охватить в одной книге все области цифровой электроники: от логических элементов до компьютеров и других сложных электронных систем. В резуль- тате все вопросы рассматриваются недостаточно глубоко, и до практики разработки дело не доходит. К тому же проектирова- ние интеллектуальных устройств довольно сильно отличается от проектирования устройств на жесткой логике. Эти направления цифровой схемотехники требуют применения совершенно раз- ных подходов, и поэтому их целесообразно рассматривать в различных книгах. Данная книга посвящена самым основам цифровой схемо- техники, ее азбуке, ее основным методам, подходам и приемам. Отличие ее состоит в том, что она может дать представление о цифровой схемотехнике даже тем читателям, которые имеют слабое представление об электронике вообще. Впрочем, это во- все не означает, что книга посвящена только самым общим, не- конкретным, отвлеченным вопросам. Наоборот, она призвана сформировать действительно хорошего проектировщика, спо- собного строить высокоэффективные цифровые системы самой различной сложности и четко представляющего себе взаимо- связь всех процессов в этих системах сверху донизу. Конечно, чтобы стать таким классным специалистом, нужны определен- ные способности, даже талант, но строить простейшие цифро- вые устройства, пусть и не оптимальные, не уникальные, но по- лезные и вполне работоспособные, способен практически каж- дый человек. Хотелось бы надеяться, что данная книга окажет в этом деле действенную помощь. Книга ни в коем случае не претендует на то, чтобы заменить собой справочники по микросхемам, хотя в ней и разъясняют- ся функции многих микросхем. Главное, чему уделено внима- ние — это применение микросхем для различных задач (причем как стандартное применение, так и не стандартное), а также приемы объединения, комбинирования микросхем, позволяю- щие создавать разнообразные узлы, устройства и системы. Материал данной книги представляет собой тот необходи- мый минимум знаний, который должен иметь и которым дол-
Введение 11 жен свободно и активно пользоваться каждый профессиональ- ный разработчик цифровой аппаратуры. Любые другие, допол- нительные знания, конечно же, не повредят, но заменить собой то, что изложено здесь, они не смогут. Возможно, подход, предлагаемый в данной книге, несколько отличается от общепринятого. Возможно также, что используе- мый набор терминов не полностью совпадает со стандартным (отечественные стандарты слишком часто меняются). Но глав- ное — это научить проектировать цифровые устройства и сис- темы, а какие для этого используются подходы и термины, на- верное, не слишком принципиально. Книга написана на основе многолетнего личного опыта ав- тора по разработке цифровых устройств, а также на базе мате- риала учебных курсов, читаемых автором, доцентом кафедры электроники Московского инженерно-физического института (МИФИ). Несколько слов о структуре книги. Первая глава рассматривает основополагающие принципы цифровой электроники, знакомит с терминологией и основными правилами оформления схем. Главы со второй по шестую посвящены основным базовым элементам цифровых устройств, типовым и нестандартным схе- мам их включения. Практически все приведенные схемы прове- рялись автором на практике. Микросхемы описаны начиная с самых простейших логических элементов в порядке усложнения через комбинационные микросхемы, триггеры, регистры, счет- чики до микросхем памяти. Каждая глава включает в себя мно- жество примеров включений микросхем, как рассматриваемых в данной главе, так и рассмотренных в предыдущих главах. Седьмая глава содержит краткие сведения о цифро-аналого- вых и аналого-цифровых преобразователях и основных методах их включения в аналого-цифровых устройствах. Без этих сведе- ний книга была бы неполна. В восьмой главе приводятся примеры нескольких сравни- тельно сложных цифровых устройств с подробным описанием всех этапов проектирования и принципов работы и взаимодей- ствия всех узлов и микросхем. Цель этого не в том, чтобы чита- тель повторил данные устройства, а в том, чтобы на практике показать приемы проектирования, которые затем позволят стро- ить любые другие цифровые устройства.
12 Введение В приложении приведены таблицы параметров микросхем, таблицы основных обозначений микросхем и сигналов, таблицы соответствия отечественных и зарубежных микросхем. В конце книги имеется подробный словарь терминов и сокращений циф- ровой схемотехники. В книгу не вошли материалы по основам микропроцессор- ной техники, по принципам устройства и применения микро- контроллеров и персональных компьютеров, по основам работы с программируемыми микросхемами (ПЛИС), по методам кон- троля и отладки цифровых устройств, а также по программным средствам, предназначенным для проектирования цифровых устройств и систем. Все эти вопросы планируется рассмотреть в других книгах данной серии.
Глава 1 ФИЛОСОФИЯ ЦИФРОВОЙ ЭЛЕКТРОНИКИ Пусть не пугает читателя слово «философия» в названии главы. В данном случае имеются в виду всего лишь главные принципы цифровой электроники и обоснование ее преимуществ. 1.1. Аналог или цифра? Для начала дадим несколько базовых определений. Сигнал — это любая физическая величина (например, тем- пература, давление воздуха, интенсивность света, сила тока и т. д.), изменяющаяся со временем. Именно благодаря этому изменению во времени сигнал может нести в себе какую-то ин- формацию. Электрический сигнал — это электрическая величина (на- пример, напряжение, ток, мощность), изменяющаяся со време- нем. Вся электроника в основном работает с электрическими сигналами, хотя в последнее время все больше используются световые сигналы, которые представляют собой изменяющуюся во времени интенсивность света. Аналоговый сигнал — это сигнал, который может прини- мать любые значения в определенных пределах (например, на- пряжение может плавно изменяться в пределах от нуля до деся- ти вольт). Устройства, работающие только с аналоговыми сиг- налами, называются аналоговыми устройствами. Цифровой сигнал — это сигнал, который может принимать только два значения (иногда — три значения). Причем разреше- ны некоторые отклонения от этих значений (рис. 1.1). Напри- мер, напряжение может принимать два значения: от 0 до 0,5 В (уровень нуля) или от 2,5 до 5 В (уровень единицы). Устройства, работающие исключительно с цифровыми сигналами, называ- ются цифровыми устройствами.
14 Глава 1 В природе практически все сигналы аналоговые, то есть они изменяются непрерывно в некоторых пределах. Именно поэто- му первые электронные устройства были аналоговыми. Они преобразовывали физические величины в пропорциональные им напряжение или ток, выполняли над ними какие-то операции и затем выполняли обратные преобразования в физические вели- чины. Например, голос человека (колебания воздуха) с помощью микрофона преобразуется в электрические колебания, затем эти электрические сигналы усиливаются электронным усилителем и с помощью акустической системы снова преобразуются в коле- бания воздуха, в более сильный звук. Рис. 1.1. Электрические сигналы: аналоговый (слева) и цифровой (справа). Однако аналоговые сигналы и работающая с ними аналого- вая электроника имеют большие недостатки, связанные именно с природой аналоговых сигналов. Дело в том, что аналоговые сигналы чувствительны к действию всевозможных паразитных сигналов — шумов, наводок, помех. Шум — это внутренние хаотические слабые сигналы любого электронного устройства (микрофона, транзистора, резистора и т. д.). Наводки и поме- хи — это сигналы, приходящие на электронную систему извне и искажающие полезный сигнал (например, электромагнитные излучения от радиопередатчиков или трансформаторов). Все операции, производимые электронными устройства- ми над сигналами, можно условно разделить на три большие группы: • обработка (или преобразование); • передача; • хранение.
Философия цифровой электроники 15 Во всех этих случаях полезные сигналы искажаются пара- зитными сигналами — шумами, помехами, наводками. Кроме того, при обработке сигналов (например, при усилении, фильт- рации) еще искажается и их форма из-за несовершенст- ва, неидеальности электронных устройств. А при передаче на большие расстояния и при хранении сигналы к тому же ослаб- ляются. Сигнал Наводка *1... Искаженный сигнал Рис. 1.2. Искажение шумами и наводками аналогового сигнала (слева) и циф- рового сигнала (справа). В случае аналоговых сигналов все это существенно ухуд- шает полезный сигнал, так как все его значения разрешены (рис. 1.2). Поэтому каждое преобразование, каждое промежу- точное хранение, каждая передача по кабелю или эфиру ухуд- шает аналоговый сигнал, иногда вплоть до его полного унич- тожения. Надо еще учесть, что все шумы, помехи и наводки принципиально не поддаются точному расчету, поэтому точно описать поведение любых аналоговых устройств абсолютно не- возможно. К тому же со временем параметры всех аналоговых устройств изменяются из-за старения элементов, поэтому харак- теристики этих устройств не остаются постоянными. В отличие от аналоговых, цифровые сигналы, имеющие все- го два разрешенных значения, защищены от действия шумов, наводок и помех гораздо лучше. Небольшие отклонения от раз-
16 Глава 1 решенных значений никак не искажают цифровой сигнал, так как всегда существуют зоны допустимых отклонений (рис. 1.2). Именно поэтому цифровые сигналы допускают гораздо более сложную и многоступенчатую обработку, гораздо более дли- тельное хранение без потерь и гораздо более качественную передачу, чем аналоговые. К тому же поведение цифровых устройств всегда можно абсолютно точно рассчитать и пред- сказать. Цифровые устройства гораздо меньше подвержены старению, так как небольшое изменение их параметров никак не отражается на их функционировании. Кроме того, цифро- вые устройства проще проектировать и отлаживать. Понятно, что все эти преимущества обеспечивают бурное развитие циф- ровой электроники. Однако у цифровых сигналов есть и крупный недостаток. Дело в том, что на каждом из своих разрешенных уровней циф- ровой сигнал должен оставаться хотя бы в течение какого-то минимального временного интервала, иначе его невозможно будет распознать. А аналоговый сигнал может принимать любое свое значение бесконечно малое время. Можно сказать и иначе: аналоговый сигнал определен в непрерывном времени (то есть в любой момент времени), а цифровой — в дискретном времени (то есть только в выделенные моменты времени). Поэтому мак- симально достижимое быстродействие аналоговых устройств всегда принципиально больше, чем цифровых устройств. Ана- логовые устройства могут работать с более быстро меняющи- мися сигналами, чем цифровые. Скорость обработки и передачи информации аналоговым устройством всегда может быть сде- лана выше, чем скорость ее обработки и передачи цифровым устройством. Кроме того, цифровой сигнал передает информацию только двумя уровнями и изменением одного своего уровня на другой, а аналоговый передает информацию еще и каждым текущим значением своего уровня, то есть он более емкий с точки зрения передачи информации. Поэтому для передачи того объема по- лезной информации, который содержится в одном аналоговом сигнале, чаще всего приходится использовать несколько цифро- вых сигналов (обычно от 4 до 16). К тому же, как уже отмечалось, в природе все сигналы ана- логовые, то есть для преобразования их в цифровые сигналы и для обратного преобразования требуется применение специаль-
Философия цифровой электроники 17 ной аппаратуры (аналого-цифровых и цифро-аналоговых преоб- разователей). Так что ничто не дается даром, и плата за пре- имущества цифровых устройств может порой оказаться непри- емлемо большой. 1.2. Модели и уровни представления цифровых устройств Все цифровые устройства строятся из логических микросхем, каждая из которых (рис. 1.3) обязательно имеет следующие вы- воды (или, как их еще называют в просторечии, ножки): • выводы питания: общий (или «земля») и напряжения пита- ния (в большинстве случаев +5 В или +3,3 В), которые на схемах обычно не показываются; • выводы для входных сигналов (или «входы»), на которые поступают внешние цифровые сигналы; • выводы для выходных сигналов (или «выходы»), на кото- рые выдаются цифровые сигналы из самой микросхемы. А+5 В Входы — — Выходы J-Общий Рис. 1.3. Цифровая микросхема. Каждая микросхема преобразует тем или иным способом последовательность входных сигналов в последовательность выходных сигналов. Способ преобразования чаще всего описы- вается или в виде таблицы (так называемой таблицы истинно- сти) или в виде временных диаграмм, то есть графиков зависи- мости от времени всех сигналов. Все цифровые микросхемы работают с логическими сигна- лами, имеющими два разрешенных уровня напряжения. Один из этих уровней называется уровнем логической единицы (или
18 Глава 1 единичным уровнем), а другой — уровнем логического нуля (или нулевым уровнем). Чаще всего логическому нулю соответ- ствует низкий уровень напряжения, а логической единице — высокий уровень напряжения. В этом случае говорят, что при- нята «положительная логика». Однако при передаче сигналов на большие расстояния и в системных шинах микропроцессорных систем порой используют и обратное представление, когда ло- гическому нулю соответствует низкий уровень напряжения, а логической единице — высокий уровень. В этом случае говорят об «отрицательной логике». Иногда логический нуль кодируется положительным уровнем напряжения (тока), а логическая еди- ница — отрицательным уровнем напряжения (тока) или наобо- рот. Есть и более сложные методы кодирования логических ну- лей и единиц. Но мы в основном будем говорить о положитель- ной логике. Для описания работы цифровых устройств используют са- мые различные модели, отличающиеся друг от друга сложно- стью, точностью, большим или меньшим учетом тонких физи- ческих эффектов. В основном эти модели используются при компьютерных расчетах цифровых схем. В настоящее время существуют компьютерные программы, которые не только рас- считывают готовые схемы, но способны и проектировать новые схемы по формализованным описаниям функций, которые дан- ное устройство должно выполнять. Это довольно удобно, но ни одна программа никогда не может сравниться с человеком. По- настоящему эффективные, оптимизированные по числу исполь- зуемых аппаратурных модулей, наконец, красивые схемы может разрабатывать только человек, который всегда подходит к про- ектированию творчески и использует оригинальные идеи. Разработчик цифровой аппаратуры тоже использует своеоб- разные модели или, как еще можно сказать, различные уровни представления цифровых схем. Но в отличие от компьютера че- ловек может гибко выбирать нужную модель, ему надо только взглянуть на схему, чтобы понять, где достаточно простейшей модели, а где требуется более сложная. То есть человек никогда не будет делать лишней, избыточной работы и, следовательно, не будет вносить дополнительных ошибок, свойственных лю- бой, даже самой сложной, модели. Правда, простота цифровых устройств по сравнению с аналоговыми устройствами обычно не дает возможности сделать чересчур серьезные ошибки.
Философия цифровой электроники 19 В подавляющем большинстве случаев разработчики цифро- вых схем используют три модели, три уровня представления о работе цифровых устройств. 1. Логическая модель. 2. Модель с временными задержками. 3. Модель с учетом электрических эффектов (или электри- ческая модель). Опыт показывает, что первая, простейшая модель оказыва- ется достаточной примерно в 20% всех случаев. Она применима для всех цифровых схем, работающих с низкой скоростью, в ко- торых быстродействие не принципиально. Привлечение второй модели, учитывающей задержки срабатывания логических эле- ментов, позволяет охватить около 80% всех возможных схем. Ее применение необходимо для всех быстродействующих устройств и в случае одновременного изменения нескольких входных сигналов. Наконец, добавление третьей модели, учитывающей входные и выходные токи, входные и выходные сопротивления и емкости элементов, позволяет проектировать практически 100% цифровых схем. В первую очередь эту третью модель на- до применять при объединении нескольких входов и выходов, при передаче сигналов на большие расстояния и при нетрадици- онном включении логических элементов (с переводом их в ана- логовый, в линейный режим). Таблица 1.1. Таблица истинности инвертора Вход Выход 0 1 1 0 Для иллюстрации работы перечисленных моделей рассмот- рим работу самого простейшего логического элемента — ин- вертора. Инвертор изменяет (инвертирует) логический уровень входного сигнала на противоположный уровень выходного сиг- нала или, как еще говорят, изменяет полярность логического сигнала. Таблица истинности инвертора (табл. 1.1) элементарно проста, так как возможны только две ситуации: нуль на входе или единица на входе. На рис. 1.4 показано, как будет выглядеть выходной сигнал инвертора при использовании трех его моде-
20 Глава 1 лей (трех уровней его представления). Такие графики логиче- ских сигналов называются временными диаграммами, они по- зволяют лучше понять работу цифровых схем. Инвертор 3 Рис. 1.4. Три уровня представления цифровых устройств. 1 Из рисунка видно, что в первой, логической, модели счита- ется, что элемент срабатывает мгновенно, любое изменение уровня входного сигнала сразу же, без всякой задержки приво- дит к изменению уровня выходного сигнала. Во второй модели выходной сигнал изменяется с некоторой задержкой относи- тельно входного. Наконец, в третьей модели выходной сигнал не только задерживается по сравнению с входным, но и его из- менение происходит не мгновенно, процесс смены уровней сиг- нала (или, как говорят, фронт сигнала) имеет конечную дли- тельность. Кроме того, третья модель учитывает изменение уровней логических сигналов. На практике разработчик, как правило, в начале проектиро- вания пользуется исключительно первой моделью, а затем для некоторых узлов применяет вторую модель или (реже) еще и третью модель. При этом первая модель не требует вообще ни- каких цифровых расчетов, для нее достаточно только знание таблиц истинности или алгоритмов функционирования микро- схем. Вторая модель предполагает расчет (по сути, суммирова- ние) временных задержек элементов на пути прохождения сиг- налов (рис. 1.5). В результате этого расчета может выясниться, что в схему нужно внести изменения. Расчеты по третьей модели могут быть различными, в том числе и довольно сложными, но в большинстве случаев они все- таки сводятся всего лишь к суммированию входных и выход- ных токов логических элементов (рис. 1.6). В результате этих
Философия цифровой электроники 21 расчетов может выясниться, что требуется применение микро- схем с более мощными выходами или включение дополни- тельных элементов. t-зад 1зад 2^-^'Зад з^-^зад 4 Рис. 1.5. Суммирование задержек элементов. Рис. 1.6. Суммирование входных токов элементов. Таким образом, проектирование цифровых устройств прин- ципиально отличается от проектирования аналоговых уст- ройств, при котором сложные расчеты абсолютно неизбежны. Разработчик цифровых устройств имеет дело только с логикой, с логическими сигналами и с алгоритмами работы цифровых микросхем. А что происходит внутри этих микросхем, для него практически не имеет значения. Справочные данные на цифровые микросхемы обычно со- держат большой набор параметров, каждый из которых можно отнести к одному из трех перечисленных уровней представле- ния, к одной из трех моделей. Например, таблица истинности микросхемы (для простых микросхем) или описание алгоритма ее работы (для более сложных микросхем) относится к первому, логическому уров- ню. Поэтому знать их наизусть каждому разработчику необхо- димо в любом случае.
22 Глава 1 Величины задержек логических сигналов между входами и выходами относятся ко второму уровню представления. Типич- ные величины задержек составляют от единиц наносекунд (1 нс = 10“9 с) до десятков наносекунд. Величины задержек для разных микросхем могут быть различными, поэтому в справоч- никах всегда указывается максимальное значение задержки. Не- обходимо также помнить, что задержка при переходе выходного сигнала из единицы в нуль (1рнь), как правило, отличается от за- держки при переходе выходного сигнала из нуля в единицу (fpm). Например, для одной и той же микросхемы tPLH < 11 нс, atpHL < 8 нс. Здесь английская буква Р означает Propagation (распространение), L означает Low (низкий уровень сигнала, нуль), а Н — High (высокий уровень сигнала, единица). Количе- ство величин задержек, определяемых справочником для мик- росхемы, может изменяться от двух до нескольких десятков. Уровни входных и выходных токов, а также уровни входных и выходных напряжений относятся к третьему уровню пред- ставления. Входной ток микросхемы при приходе на вход логического нуля (III), как правило, отличается от входного тока при приходе на вход логической единицы (1ш). Например, Ijl = —0,1 мА, а 1[н = 20 мкА (считается, что положительный ток втекает во вход микросхемы, а отрицательный — вытекает из него). Точно так же выходной ток микросхемы при выдаче логического нуля (Iol) может отличаться (и обычно отличается) от выходного то- ка при выдаче логической единицы (Iqh)- Например, для одной и той же микросхемы Iqh < —0,4 мА, a Iql < 8 мА (считается, что положительный ток втекает в выход микросхемы, а отрицатель- ный — вытекает из него). Надо также учитывать, что разные входы и выходы одной и той же микросхемы могут иметь раз- личные входные и выходные токи. Для выходных напряжений логического нуля (Uol) и едини- цы (Uoh) в справочниках обычно задаются предельно допусти- мые значения при заданной величине выходного тока. При этом чем больше выходной ток, тем меньше напряжение логической единицы и тем больше напряжение логического нуля. Напри- мер, Uoh > 2,5 В (при Iqh < —0,4 мА), a Uol < 0,5 В (при Iql < 8 мА). Задаются в справочниках также и допустимые уровни вход- ных напряжений, которые микросхема еще воспринимает как
Философия цифровой электроники 23 правильные логические уровни нуля и единицы. Например, ига > 2,0 В, Uil < 0,8 В. Как правило, входные напряжения логи- ческих сигналов не должны выходить за пределы напряжения питания. В обозначениях напряжений и токов буква I означает Input (вход), буква О означает Output (выход), L — Low (нуль), а Н — High (единица). К третьему уровню представления относятся также величи- ны внутренней емкости входов микросхемы (обычно от единиц до десятков пикофарад) и допустимая величина емкости, к ко- торой может подключаться выход микросхемы, то есть емкость нагрузки Cl (порядка 100 пФ). Отметим, что 1 пФ = 10”12 Ф. На этом же уровне представления задаются максимально допус- тимые величины длительности положительного фронта (tm) и отрицательного фронта (tHL) входного сигнала, например Ihl < 1,0 мкс, tm < 1,0 мкс. То есть при большей длительности перехода входного сигнала из единицы в нуль и из нуля в еди- ницу микросхема может работать неустойчиво, неправильно, нестандартно. К третьему уровню представления можно отнести также та- кие параметры, как допустимое напряжение питания микросхе- мы (Ucc) и максимальный ток, потребляемый микросхемой (1сс). Например, может быть задано: 4,5 В < Ucc < 5,5 В; Ice < 100 мА. При этом потребляемый ток Ice зависит от уровней выход- ных токов микросхемы Iqh и Iql- Эти параметры надо учитывать при выборе источника питания для проектируемого устройства, а также в процессе изготовления печатных плат при выборе ши- рины токоведущих дорожек. Наконец, к третьему уровню относится ряд параметров, ко- торые часто упоминаются в литературе, но не всегда приводятся в справочных таблицах: • Порог срабатывания — уровень входного напряжения, выше которого сигнал воспринимается как единица, а ни- же — как нуль. Для наиболее распространенных ТТЛ мик- росхем он примерно равен 1,3... 1,4 В.
24 Глава 1 • Помехозащищенность — параметр, характеризующий ве- личину входного сигнала помехи, накладывающегося на входной сигнал, который еще не может изменить состоя- ние выходных сигналов. Помехозащищенность определя- ется разницей между напряжением Um и порогом срабаты- вания (это помехозащищенность единичного уровня), а также разницей между порогом срабатывания и Un. (это помехозащищенность нулевого уровня). • Коэффициент разветвления — число входов, которое мо- жет быть подключено к данному выходу без нарушения работы. Этот параметр определяется отношением выход- ного тока к входному. Стандартная величина коэффициен- та разветвления при использовании микросхем одного ти- па (одной серии) равна 10. • Нагрузочная способность — параметр выхода, характери- зующий величину выходного тока, которую может выдать в нагрузку данный выход без нарушения работы. Чаще всего нагрузочная способность прямо связана с коэффици- ентом разветвления. Таким образом, большинство справочных параметров мик- росхемы относятся к третьему уровню представления (к модели с учетом электрических эффектов), поэтому в большинстве слу- чаев (до 80%) знать их точные значения наизусть не обязатель- но. Достаточно знать примерные типовые значения параметров для данной серии микросхем. 1.3. Входы и выходы цифровых микросхем Характеристики и параметры входов и выходов цифровых мик- росхем определяются прежде всего технологией и схемотехни- кой внутреннего строения микросхем. Но для разработчика цифровых устройств любая микросхема представляет собой всего лишь «черный ящик», внутренности которого знать не обязательно. Ему важно только четко представлять себе, как по- ведет себя та или иная микросхема в данном конкретном вклю- чении, будет ли она правильно выполнять требуемую от нее функцию.
Философия цифровой электроники 25 Наибольшее распространение получили две технологии циф- ровых микросхем: • ТТЛ (TTL) и ТТЛШ (TTLS) — биполярная транзисторно- транзисторная логика и ТТЛ с диодами Шоттки; • КМОП (CMOS) — комплементарные транзисторы со структурой «металл-окисел-полупроводник». Рис. 1.7. Входной и выходной каскады микросхем ТТЛШ. Рис. 1.8. Входной и выходной каскады микросхем КМОП. Различаются они типами используемых транзисторов и схе- мотехническими решениями внутренних каскадов микросхем. Отметим также, что микросхемы КМОП потребляют значитель- но меньший ток от источника питания, чем такие же микросхе- мы ТТЛ (или ТТЛШ), правда, только в статическом режиме или на небольших рабочих частотах. На рис. 1.7 и 1.8 показаны
26 Глава 1 примеры схем входных и выходных каскадов микросхем, вы- полненных по этим технологиям. Понятно, что точный учет всех эффектов в этих схемах, включающих в себя множество транзисторов, диодов и резисторов, крайне сложен, но обычно он просто не нужен разработчику цифровых схем. Рассмотрим сначала входы микросхем. На первом уровне представления (логическая модель) и на втором уровне представления (модель с временными задержка- ми) о входах микросхем вообще ничего знать не надо. Вход рас- сматривается как бесконечно большое сопротивление, никак не влияющее на подключенные к нему выходы. Правда, количест- во входов, подключаемых к одному выходу, влияет на задержку распространения сигнала, но, как правило, незначительно, по- этому это влияние учитывается редко. Даже на третьем уровне представления (электрическая мо- дель) в большинстве случаев не надо знать о внутреннем строе- нии микросхемы, о схемотехнике входов. Достаточно считать, что при подаче на вход сигнала логического нуля из этого входа вытекает ток, не превышающий Iil, а при подаче сигнала логи- ческой единицы в этот вход втекает ток, не превышающий 1щ. А для правильной логики работы микросхемы достаточно, что- бы уровень напряжения входного сигнала логического нуля был меньше Uil, а уровень напряжения входного сигнала логической единицы был больше Um- Особым случаем является ситуация, когда какой-нибудь вход не подключен ни к одному из выходов, ни к общему про- воду, ни к шине питания (так называемый висящий вход). Ино- гда возможности микросхемы используются не полностью, и на некоторые входы не подаются сигналы. Однако при этом мик- росхема может не работать или работать нестабильно, так как ее правильное включение подразумевает наличие на всех входах логических уровней, пусть даже и неизменных. Поэтому реко- мендуется подавать на неиспользуемые входы напряжение пи- тания микросхемы Ucc или подключать их к общему проводу (земле) в зависимости от того, какой логический уровень не- обходим на этом входе. Но для некоторых серий микросхем, выполненных по технологии ТТЛ (например, К155 или КР531), неиспользуемые входы надо подключать к шине питания не прямо, а только через резистор величиной около 1 кОм (доста- точно одного резистора на 20 входов).
Философия цифровой электроники 27 На неподключенных входах микросхем ТТЛ формируется напряжение около 1,5—1,6 В, которое иногда называют висячим потенциалом. Обычно этот уровень воспринимается микросхе- мой как сигнал логической единицы, но надеяться на это не стоит. Потенциал, образующийся на неподключенных входах микросхем КМОП, может восприниматься микросхемой и как логический нуль, и как логическая единица. В любом случае все входы надо куда-то подключать. Неподключенными допускает- ся оставлять только те входы (ТТЛ, а не КМОП), состояние ко- торых в данном включении микросхемы не имеет значения. Выходы микросхем принципиально отличаются от входов тем, что учет их особенностей необходим даже на первом и вто- ром уровнях представления. Существуют три разновидности выходных каскадов, суще- ственно различающихся как по своим характеристикам, так и по областям применения: • стандартный выход или выход с двумя состояниями (обо- значается 2С, 2S или, реже, ТТЛ, TTL); • выход с открытым коллектором (обозначается ОК, ОС); • выход с тремя состояниями или (что то же самое) с воз- можностью отключения (обозначается ЗС, 3S). Стандартный выход 2С имеет всего два состояния: логиче- ский нуль и логическую единицу, причем оба этих состояния активны, то есть выходные токи в обоих этих состояниях (Iql и 1он) могут достигать заметных величин. На первом и втором уровнях представления такой выход можно считать состоящим из двух выключателей, которые замыкаются по очереди (рис. 1.9), причем замкнутому верхнему выключателю соответ- ствует логическая единица на выходе, а замкнутому нижнему — логический нуль. Выход с открытым коллектором ОК тоже имеет два воз- можных состояния, но только одно из них (состояние логиче- ского нуля) активно, то есть обеспечивает большой втекающий ток Iql. Второе состояние сводится, по сути, к тому, что выход полностью отключается от присоединенных к нему входов. Это состояние может использоваться в качестве логической едини- цы, но для этого между выходом ОК и напряжением питания необходимо подключить нагрузочный резистор R (так называв-
28 Глава 1 мый pull-up) величиной порядка сотен Ом. На первом и втором уровнях представления такой выход можно считать состоящим из одного выключателя (рис. 1.9), замкнутому состоянию кото- рого соответствует сигнал логического нуля, а разомкнутому — отключенное, пассивное состояние. Правда, от величины рези- стора R зависит время переключения выхода из нуля в единицу, что влияет на задержку tm, но при обычно используемых номи- налах резисторов это не слишком важно. Рис. 1.9. Три типа выходов цифровых микросхем. Наконец, выход с тремя состояниями ЗС очень похож на стандартный выход, но к двум состояниям добавляется еще и третье — пассивное, в котором выход можно считать отклю- ченным от последующей схемы. На первом и втором уровнях представления такой выход можно считать состоящим из двух переключателей (рис. 1.9), которые могут замыкаться по очере- ди, давая логический нуль и логическую единицу, но могут и размыкаться одновременно. Это третье состояние называется также высокоимпедансным или Z-состоянием. Для перевода выхода в третье Z-состояние используется специальный управ- ляющий вход, обозначаемый ОЕ (Output Enable — разрешение выхода) или EZ (Enable Z-state — разрешение Z-состояния, или третьего состояния). Почему же помимо стандартного выхода (2С) были предло- жены еще два типа выходов (ОК и ЗС)? Дело в том, что выходы, имеющие помимо активных состояний еще и пассивное состоя- ние, очень удобны для объединения их между собой. Например, если на один и тот же вход надо по очереди подавать сигналы с двух выходов (рис. 1.10), то выходы 2С для этого не подходят, а вот выходы ОК и ЗС подходят.
Философия цифровой электроники 29 Рис. 1.10. Объединение выходов цифровых микросхем. При объединении двух или более выходов 2С вполне воз- можна ситуация, при которой один выход стремится выдать сигнал логической единицы, а другой — сигнал логического нуля. Легко заметить, что в этом случае через верхний замкну- тый ключ выхода, выдающего единицу, и через нижний замкну- тый ключ выхода, выдающего нуль, пойдет недопустимо боль- шой ток короткого замыкания 1Ю. Это аварийная ситуация, при которой уровень получаемого выходного логического сигнала точно не определен, он может восприниматься последующим входом и как нуль, и как единица. Конфликтующие выходы мо- гут даже выйти из строя, нарушив работу микросхем и схемы в целом. Зато в случае объединения двух выходов ОК такого кон- фликта в принципе произойти не может. Даже если ключ одного выхода замкнут, а другого разомкнут, аварийной ситуации не произойдет, так как недопустимо большого тока не будет, а на объединенном выходе будет сигнал логического нуля. А при объединении двух выходов ЗС аварийная ситуация хотя и воз- можна (если оба выхода одновременно находятся в активном состоянии), но ее легко можно предотвратить, если организо- вать схему так, что в активном состоянии всегда будет нахо- диться только один из объединенных выходов ЗС.
30 Глава 1 Объединение выходов цифровых микросхем совершенно необходимо также при шинной (или, как еще говорят, магист- ральной) организации связей между цифровыми устройствами. Шинная организация связей применяется, например, в компью- терах, других микропроцессорных системах. Суть ее сводится к следующему. Устройство 1 V Устройство 2 Устройство 3 » Устройство 4 Рис. 1.11. Классическая организация связей. При классической организации связей (рис. 1.11) все сигна- лы между устройствами передаются по своим отдельным лини- ям (проводам). Каждое устройство передает свои сигналы всем другим устройствам независимо от других устройств. В этом случае обычно получается очень много линий связи, к тому же правила обмена сигналами по этим линия (или протоколы обме- на) чрезвычайно разнообразны. При шинной организации связей (рис. 1.12) все сигналы ме- жду устройствами передаются по одним и тем же линиям (про- водам), но в разные моменты времени (это называется времен- ным мультиплексированием). В результате количество линий
Философия цифровой электроники 31 связи резко сокращается, а правила обмена сигналами сущест- венно упрощаются. Группа линий (сигналов), используемая не- сколькими устройствами, как раз и называется шиной. Понятно, что объединение выходов в этом случае совершенно необходи- мо, ведь каждое устройство должно иметь возможность выда- вать свой сигнал на общую линию. К недостаткам шинной орга- низации относится прежде всего невысокая (по сравнению с классической структурой связей) скорость обмена сигналами. При простых структурах связи шинная организация может быть избыточна. Но вернемся к типам выходов цифровых микросхем. На третьем уровне представления (электрическая модель) необходимо уже учитывать, что выходные ключи (рис. 1.9) представляют собой не простые тумблеры (как на первых двух уровнях представления), а транзисторные ключи со своими спе- цифическими параметрами. Однако в большинстве случаев дос- таточно знать, какой ток может выдать данный выход в состоя- ниях логического нуля (Iol) и логической единицы (1он). Вели- чины этих токов не должны превышать суммы токов всех вхо- дов, подключенных к данному выходу (соответственно 1ц, и 1щ). Количество входов, которое можно подключить к одному выхо- ду, определяет коэффициент разветвления или нагрузочную способность микросхемы. Существуют микросхемы с обычной нагрузочной способностью и с повышенной нагрузочной спо- собностью (больше обычной в два раза и более). Выходы ЗС, как правило, имеют повышенную нагрузочную способность (то есть обеспечивают большие выходные токи). Выходы 2С и ОК могут быть как с обычной, так и с повышенной нагрузочной способностью. На третьем уровне представления (электрическая модель) необходимо также учитывать выдаваемые выходом микросхемы величины выходных напряжений Uol и Uoh- Выходы ОК могут быть рассчитаны как на обычное выходное напряжение логиче- ской единицы (Uoh = Ucc = 5 В), так и на повышенное напряже- ние логической единицы (до 30 В). В последнем случае внеш- ний резистор этого выхода (см. рис. 1.9) подключается к источ- нику повышенного напряжения. Только в сложных случаях, например при переводе логиче- ского элемента в линейный режим за счет обратных связей, ну- жен учет других параметров входных и выходных каскадов. Но
32 Г лава 1 в этих редких случаях гораздо проще и надежнее не считать ни- чего самому, а воспользоваться стандартными схемами включе- ния микросхем или подобрать режимы работы и номиналы внешних элементов (резисторов, конденсаторов) непосредст- венно на макете проектируемого устройства. В отличие от рас- четов такой подход даст полную гарантию работоспособности выбранного решения. 1.4. Основные обозначения на схемах Для изображения электронных устройств и их узлов применяет- ся три основных типа схем: • принципиальная схема; • структурная схема; • функциональная схема. Различаются эти три вида схем своим назначением и, самое главное, степенью детализации изображения устройств. Принципиальная схема — это наиболее подробная схема. Она обязательно показывает все использованные в устройстве элементы и все связи между ними. Если схема строится на ос- нове микросхем, то должны быть показаны номера выводов всех входов и выходов этих микросхем. Принципиальная схема должна позволять полностью воспроизвести устройство. Обо- значения принципиальной схемы наиболее жестко стандартизо- ваны, отклонения от стандартов не рекомендуются. Структурная схема — это наименее подробная схема. Она предназначена для отображения общей структуры устройства, то есть его основных блоков, узлов, частей и главных связей между ними. Из структурной схемы должно быть понятно, за- чем нужно данное устройство, и что оно делает в основных ре- жимах работы, как взаимодействуют его части. Обозначения структурной схемы могут быть довольно произвольными, хотя некоторые общепринятые правила все-таки лучше выполнять. Функциональная схема представляет собой гибрид струк- турной и принципиальной схем. Некоторые наиболее простые блоки, узлы, части устройства отображаются на ней, как на структурной схеме, а остальные — как на принципиальной схе- ме. Функциональная схема позволяет понять всю логику работы устройства, все его отличия от других подобных устройств, но
Философия цифровой электроники 33 не позволяет без дополнительной самостоятельной работы вос- произвести это устройство. Что касается обозначений, исполь- зуемых на функциональных схемах, то в части, показанной как структура, они не стандартизованы, а в части, показанной, как принципиальная схема, они стандартизованы. В технической документации обязательно приводится струк- турная или функциональная схема, а также обязательно прин- ципиальная схема. В научных статьях и книгах чаще всего огра- ничиваются структурной или функциональной схемой, приводя принципиальные схемы только некоторых узлов. А теперь рассмотрим основные обозначения, используемые на схемах. Все узлы, блоки, части, элементы, микросхемы показывают- ся в виде прямоугольников с соответствующими надписями. Все связи между ними, все передаваемые сигналы показываются в виде линий, соединяющих эти прямоугольники. Входы и вхо- ды/выходы должны быть расположены на левой стороне прямо- угольника, выходы — на правой стороне, хотя это правило часто нарушают, когда необходимо упростить рисунок схемы. Выводы и связи питания, как правило, не показывают, если, конечно, не используются нестандартные включения элементов схемы. Это самые общие правила, касающиеся любых схем. Прежде чем перейти к более частным правилам, надо дать несколько определений. Положительный сигнал (сигнал положительной полярнос- ти)— это сигнал, активный уровень которого — логическая единица, то есть: нуль — это отсутствие сигнала, единица — сигнал пришел (рис. 1.13). Положительный сигнал пассивный /активный \ (нулевой) /(единичный)\ уровень / уровень \ передний задний (положительный) (отрицательный) фронт фронт Отрицательный сигнал (отрицательный) (положительный) фронт фронт Рис. 1.13. Элементы цифрового сигнала. 2 - 4589
34 Глава 1 Отрицательный сигнал (сигнал отрицательной полярнос- ти)— это сигнал, активный уровень которого — логический нуль, то есть: единица — это отсутствие сигнала, нуль — сигнал пришел (рис. 1.13). Активный уровень сигнала — это уровень, соответствую- щий приходу сигнала, то есть выполнению этим сигналом соот- ветствующей ему функции. Пассивный уровень сигнала — это уровень, в котором сиг- нал не выполняет никакой функции. Инвертирование или инверсия сигнала — это изменение его полярности. Инверсный выход — это выход, выдающий сигнал инверс- ной полярности по сравнению с входным сигналом. Прямой выход — это выход, выдающий сигнал такой же полярности, какую имеет входной сигнал. Положительный фронт сигнала — это переход сигнала из нуля в единицу. Отрицательный фронт сигнала (спад) — это переход сиг- нала из единицы в нуль. Передний фронт сигнала — это переход сигнала из пас- сивного уровня в активный уровень. Задний фронт сигнала — это переход сигнала из активного уровня в пассивный уровень. Тактовый сигнал (или строб) — управляющий сигнал, ко- торый определяет момент выполнения элементом или узлом его функции. Шина — группа сигналов (и соответствующих физических линий передачи этих сигналов), объединенных по какому-то принципу. Например, шиной называют сигналы, соответствую- щие всем разрядам какого-то двоичного кода. Для обозначения полярности сигнала на схемах использует- ся простое правило: если сигнал отрицательный, то перед его названием ставится знак минус, например, —WR или —ОЕ, или же (реже) над названием сигнала ставится черта. Если таких знаков нет, то сигнал считается положительным. Для названий сигналов обычно используются латинские буквы, представляю- щие собой сокращения английских слов. Например, WR — сиг- нал записи (от Write — писать).
Философия цифровой электроники 35 Инверсия сигнала обозначается кружочком на месте входа или выхода. Существуют инверсные входы и инверсные выходы (рис. 1.14). Если какая-то микросхема выполняет функцию по фронту входного сигнала, то на месте входа ставится косая черта (под углом 45°), причем наклон вправо или влево определяется тем, какой фронт — положительный или отрицательный — исполь- зуется в данном случае (рис. 1.14). Вход, работающий по отрицательному фронту Рис. 1.14. Обозначение входов и выходов. Тип выхода микросхемы помечается специальным значком: выход ЗС — перечеркнутым ромбом, а выход ОК — подчеркну- тым ромбом (рис. 1.14). Стандартный выход (2С) никак не по- мечается. Наконец, если у микросхемы необходимо показать неин- формационные выводы, то есть выводы, не являющиеся ни ло- гическими входами, ни логическими выходами, то такой вывод помечается косым крестом (две перпендикулярные линии под углом 45°). Это могут быть, например, выводы для подключе- ния внешних элементов (резисторов, конденсаторов) или выво- ды питания (рис. 1.15). В схемах также предусматриваются специальные обозначе- ния для шин (рис. 1.16). На структурных и функциональных схемах шины обозначаются толстыми линиями или двойными стрелками, причем количество сигналов, входящих в шину, ука- зывается рядом с косой чертой, пересекающей шину. На прин- 2*
36 Глава 1 ципиальных схемах шина тоже обозначается толстой линией, а входящие в шину и выходящие из шины сигналы показываются в виде перпендикулярных к шине тонких линий с указанием их номера или названия (рис. 1.16). При передаче по шине двоич- ного кода нумерация начинается с младшего разряда кода. Ucc 0V При изображении микросхем используются сокращенные названия входных и выходных сигналов, отражающие их функ- цию. Эти названия располагаются на рисунке рядом с соответ- ствующим выводом. Также на изображении микросхем указы- вается выполняемая ими функция (обычно в центре вверху). Изображение микросхемы иногда делят на три вертикальных поля. Левое поле относится к входным сигналам, правое — к выходным сигналам. В центральном поле помещаются название микросхемы и символы ее особенностей. Неинформационные выводы могут указываться как на левом, так и на правом поле, иногда их показывают на верхней или нижней стороне прямо- угольника, изображающего микросхему. В табл. 1.2 приведены некоторые наиболее часто встречаю- щиеся обозначения сигналов и функций микросхем. Микросхе- ма в целом обозначается на схемах буквами DD (от английского Digital — цифровой) с соответствующим номером, например DD1, DD20.1, DD38.2 (после точки указывается номер элемента или узла внутри микросхемы).
Философия цифровой электроники 37 Таблица 1.2. Некоторые обозначения сигналов и микросхем Обозначение Название Назначение & And Элемент И =1 Exclusive Or Элемент Исключающее ИЛИ 1 Or Элемент ИЛИ А Address Адресные разряды BF Buffer Буфер С Clock Тактовый сигнал (строб) СЕ Clock Enable Разрешение тактового сигнала ст Counter Счетчик CS Chip Select Выбор микросхемы D Data Разряды данных, данные DC Decoder Дешифратор EZ Enable Z-state Разрешение третьего состояния G Generator Генератор I Input Вход I/O Input/Output Вход/Выход ОЕ Output Enable Разрешение выхода MS Multiplexer Мультиплексор Q Quit Выход R Reset Сброс (установка в нуль) RG Register Регистр S Set Установка в единицу SUM Summator Сумматор Т Trigger Триггер ТС Terminal Count Окончание счета Z Z-state Третье состояние выхода Более полная таблица обозначений сигналов и микросхем, ис- пользуемых в принципиальных схемах, приведена в Приложении. 1.5. Серии цифровых микросхем В настоящее время выпускается огромное количество разнооб- разных цифровых микросхем от простейших логических элемен- тов до сложнейших процессоров, микроконтроллеров и специа- лизированных БИС (больших интегральных микросхем). Выпус- ком цифровых микросхем занимается множество фирм как у нас
38 Глава 1 в стране, так и за рубежом. Поэтому даже классификация этих микросхем представляет собой довольно трудную задачу. Однако в качестве базиса в цифровой схемотехнике принято рассматривать классический набор микросхем малой и средней степени интеграции, в основе которого лежат ТТЛ серии семейства 74, выпускаемые уже несколько десятилетий рядом фирм, напри- мер американской фирмой Texas Instruments (ТП). Эти серии вклю- чают в себя функционально полный комплект микросхем, исполь- зуя который можно создавать самые разные цифровые устройства. Даже при компьютерном проектировании современных сложных микросхем с программируемой логикой (ПЛИС) применяются мо- дели простейших микросхем этих серий семейства 74. При этом разработчик рисует на экране компьютера схему в привычном для него элементном базисе, а затем программа создает прошивку ПЛИС, выполняющую требуемую функцию. Каждая микросхема серий семейства 74 имеет свое обозна- чение, и система обозначений отечественных серий существен- но отличается от принятой за рубежом. S^N '4 LS Идентификатор фирмы XX XXX NT Код типа корпуса Температурный диапазон (семейство) Код серии Тип микросхемы Идентификатор специального типа Рис. 1.17. Система обозначений фирмы Texas Instruments. В качестве примера рассмотрим систему обозначений фир- мы Texas Instruments (рис. 1.17). Полное обозначение состоит из шести элементов: 1. Идентификатор фирмы SN (для серий АС и ACT отсутствует). 2. Температурный диапазон (тип семейства): • 74 — коммерческие микросхемы (температура окружаю- щей среды для биполярных микросхем — О...7О°С, для КМОП микросхем--------40...+85°C), • 54 — микросхемы военного назначения (температура ок- ружающей среды--------55...+125°С).
Философия цифровой электроники 39 3. Код серии (до трех символов): • Отсутствует — стандартная ТТЛ серия. • LS (Low Power Schottky) — маломощная серия ТТЛШ. • S (Schottky) — серия ТТЛШ. • ALS (Advanced Schottky) — улучшенная серия ТТЛШ. • F (FAST) — быстрая серия. • НС (High Speed CMOS) — высокоскоростная КМОП серия. • НСТ (High Speed CMOS with TTL inputs) — серия НС, сов- местимая по входу с ТТЛ. • AC (Advanced CMOS) — улучшенная серия КМОП. • ACT (Advanced CMOS with TTL inputs) — серия AC, сов- местимая по входу с ТТЛ. • В CT (BiCMOS Technology) — серия с БиКМОП техноло- гией. • ABT (Advanced BiCMOS Technology) — улучшенная серия с БиКМОП технологией. • LVT (Low Voltage Technology) — серия с низким напря- жением питания. 4. Идентификатор специального типа (2 символа) — может от- сутствовать. 5. Тип микросхемы (от двух до шести цифр). Перечень некото- рых типов микросхем приведен в Приложении. 6. Код типа корпуса (от одного до двух символов) — может от- сутствовать. Например, N — пластмассовый корпус DIL (DIP), J — керамический корпус DIL (DIC), Т — плоский металлический корпус. Примеры обозначений: SN74ALS373, SN74ACT7801, SN7400. Отечественная система обозначений микросхем отличается от рассмотренной довольно существенно (рис. 1.18). Основные элементы обозначения следующие: 1. Буква К обозначает микросхемы широкого применения, для микросхем военного назначения буква отсутствует. 2. Тип корпуса микросхемы (один символ) — может отсутство- вать. Например, Р — пластмассовый корпус, М — керамиче- ский корпус, Б — бескорпусная микросхема. 3. Номер серии микросхем (от трех до четырех цифр). 4. Функция микросхемы (две буквы).
40 Глава 1 X хххх Область применения Тип корпуса Номер серии 5. Номер микросхемы (от одной до трех цифр). Таблица функ- ций и номеров микросхем, а также таблица их соответствия зарубежным аналогам приведены в Приложении. XX Х^Х Номер микросхемы Функция микросхемы Рис. 1.18. Обозначения отечественных микросхем. Примеры обозначений: KP1533JIA3, КМ531ИЕ17, КР1554ИР47. Главное достоинство отечественной системы обозначений состоит в том, что по обозначению микросхемы можно легко понять ее функцию. Зато в системе обозначений Texas Instru- ments виден тип серии с его особенностями. Чем отличается одна серия от другой? На первом уровне представления (логическая модель) серии не различаются ничем. То есть одинаковые микросхемы разных серий работают по одним и тем же таблицам истинности, по од- ним и тем же алгоритмам. Правда, надо учитывать, что некото- рые микросхемы имеются только в одной из серий, а некоторых нет в нескольких сериях. На втором уровне представления (модель с учетом задер- жек) серии отличаются величиной задержки распространения сигнала. Это различие может быть довольно существенным. По- этому в тех схемах, где величина задержки принципиальна, надо использовать микросхемы более быстрых серий (табл. 1.3). На третьем уровне представления (электрическая модель) серии различаются величинами входных и выходных токов и напряже- ний, а также, что не менее важно, токами потребления (табл. 1.3). Поэтому в тех устройствах, где эти параметры принципиальны, надо применять микросхемы, обеспечивающие, например, низкие входные токи, высокие выходные токи и малое потребление. Серия К155 (SN74) — это наиболее старая серия, которая постепенно снимется с производства. Она отличается не слиш- ком хорошими параметрами по сравнению с другими сериями. С этой классической серией принято сравнивать все остальные.
Философия цифровой электроники 41 Таблица 1.3. Сравнение параметров одинаковых микросхем в разных стан- дартных сериях К155ЛАЗ (SN7400N) К555ЛАЗ (SN74LSOON) КР1533ЛАЗ (SN74ALSOON) КР1554ЛАЗ (SN74ACOON) TpLH, НС не более 22 15 11 8,5 Трнь нс не более 15 15 8 7,0 Iil, мА не более -1,6 -0,4 -0,1 -0,001 1щ, мА не более 0,04 0,02 0,02 0,001 lot, мА не менее 16 8 15 86 1он, мА не менее -0,4 -0,4 -0,4 -75 Uol, В не более 0,4 0,5 0,5 0,3 Uoh, В не менее 2,4 2,7 2,5 4,4 Ice, мА не более 12 4,4 3 0,04 Серия К555 (SN74LS) отличается от серии К155 малыми входными токами и меньшей потребляемой мощностью (ток по- требления почти втрое меньше, чем у К155). По быстродейст- вию (по временам задержек) она близка к серии К155. Серия КР531 (SN74S) отличается высоким быстродействием (задержки примерно в 3—4 раза меньше, чем у серии К155), но большими входными токами (на 25% больше, чем у К155) и большой потребляемой мощностью (ток потребления больше в полтора раза по сравнению с серией К155). Серия КР1533 (SN74ALS) отличается повышенным пример- но вдвое по сравнению с К155 быстродействием и малой по- требляемой мощностью (в четыре раза меньше, чем у К155). Входные токи еще меньше, чем у серии К555. Серия КР1531 (SN74F) отличается высоким быстродействи- ем (на уровне КР531), но малой потребляемой мощностью. Входные токи и ток потребления примерно вдвое меньше, чем у серии К155.
42 Глава 1 Серия КР1554 (SN74AC) отличается от всех предыдущих тем, что она выполнена по КМОП-технологии. Поэтому она ха- рактеризуется сверхмалыми входными токами и сверхмалым потреблением при малых рабочих частотах. Задержки примерно вдвое меньше, чем у серии К155. Наибольшим разнообразием имеющихся микросхем отли- чаются серии К155 и КР1533, наименьшим — серии КР1531 и КР1554. Следует отметить, что приведенные здесь соотношения по быстродействию стандартных серий довольно приблизительны и выполняются не для всех разновидностей микросхем, имею- щихся в разных сериях. Точные значения задержек необходимо находить в справочниках, причем желательно использовать фирменные справочные материалы. Микросхемы разных серий обычно легко сопрягаются меж- ду собой, то есть сигналы с выходов микросхем одной серии можно смело подавать на входы микросхем другой серии. Одно из исключений — соединение выходов ТТЛ. микросхем со вхо- дами КМОП микросхем серии КР1554 (74АС). При таком со- единении необходимо применение резистора номиналом 560 Ом между линиями сигнала и напряжения питания (рис. 1.19). Рис. 1.19. Сопряжение микросхем ТТЛ и КР1554 (КМОП). При выборе той или иной серии микросхем следует также учитывать, что микросхемы мощной и быстрой серии КР531 создают высокий уровень помех по шинам питания, а микро- схемы маломощной серии К555 очень чувствительны к таким помехам. Поэтому серию КР531 рекомендуется использовать только в крайних случаях, когда необходимо получить очень высокое быстродействие. Не рекомендуется также применять в одном и том же устройстве мощные быстродействующие и маломощные микросхемы.
Философия цифровой электроники 43 1.6. Корпуса цифровых микросхем Большинство микросхем имеют корпус, то есть прямоугольный контейнер (пластмассовый, керамический, металлокерамиче- ский) с металлическими выводами (ножками). Предложено множество различных типов корпусов, но наибольшее распро- странение получили два основных типа: • Корпус с двухрядным вертикальным расположением выводов, например: DIP (Dual In Line Package, Plastic) — пластмассо- вый корпус, DIC (Dual In Line Package, Ceramic) — керамиче- ский корпус. Общее название для таких корпусов — DIL (рис. 1.20). Расстояние между выводами составляет 0,1 дюйма (2,54 мм). Расстояние между рядами выводов зависит от коли- чества выводов. • Корпус с двухрядным плоскостным расположением выводов, например: FP (Flat-Package, Plastic) — пластмассовый плоский корпус, FPC (Flat-Package, Ceramic) — керамический плоский корпус. Общее название для таких корпусов — Flat (рис. 1.20). Расстояние между выводами составляет 0,05 дюйма (1,27 мм) или 0,025 дюйма (0,0628 мм). Рис. 1.20. Примеры корпусов DIL и Flat. Flat Номера выводов всех корпусов считаются начиная с вывода, помеченного ключом, по направлению против часовой стрелки (если смотреть на микросхему сверху). Ключом может служить вырез на одной из сторон корпуса микросхемы, точка около пер- вого вывода или утолщение первого вывода (рис. 1.20). Первый вывод может находиться в левом нижнем углу или в правом верхнем углу (в зависимости от того, как повернут корпус). Мик- росхемы обычно имеют стандартное число выводов из ряда: 4, 8, 14, 16, 20, 24, 28,... Для микросхем стандартных цифровых серий используются корпуса с количеством выводов начиная с 14.
44 Глава! Назначение каждого из выводов микросхемы приводится в справочниках по микросхемам, которых сейчас имеется множе- ство. Правда, лучше ориентироваться на справочники, издавае- мые непосредственно фирмами-изготовителями. В данной книге назначение выводов микросхем не приводится. Отечественные микросхемы выпускаются в корпусах, очень похожих на DIL и Flat, но расстояния между их вывода- ми вычисляются по метрической шкале и поэтому чуть-чуть отличаются от принятых за рубежом. Например, 2,5 мм вместо 2,54 мм, 1,25 мм вместо 1,27 мм и т. д. Для корпусов с малым числом выводов (до 20) это не слишком существенно, но для больших корпусов расхождение в расстоянии может стать су- щественным. В результате на плату, рассчитанную на зару- бежные микросхемы, нельзя поставить отечественные микро- схемы и наоборот. 1.7. Двоичное кодирование Одиночный цифровой сигнал не слишком информативен, ведь он может принимать только два значения: нуль и единица. По- этому в тех случаях, когда необходимо передавать, обрабаты- вать или хранить большие объемы информации, обычно приме- няют несколько параллельных цифровых сигналов. При этом все эти сигналы должны рассматриваться только одновременно, каждый из них по отдельности не имеет смысла. В таких случа- ях говорят о двоичных кодах, то есть о кодах, образованных цифровыми (логическими, двоичными) сигналами. Каждый из логических сигналов, входящих в код, называется разрядом. Чем больше разрядов входит в код, тем больше значений может принимать данный код. Десятичное число Двоичное число х 10° (единицы) х10 (десятки) х102 (сотни) ХЮ3 (тысячи) 1 ‘----х2° (разряд 0) ------Х21 (разряд 1) ------х22 (разряд 2) ------х23 (разряд 3) Рис. 1.21. Десятичное и двоичное кодирование.
Философия цифровой электроники 45 В отличие от привычного для нас десятичного кодирования чи- сел, то есть кода с основанием десять, при двоичном кодировании в основании кода лежит число два (рис. 1.21). То есть каждая цифра кода (каждый разряд) двоичного кода может принимать не десять значений (как в десятичном коде: 0, 1,2, 3, 4, 5, 6, 7, 8, 9), а всего лишь два значения — 0 и 1. А система позиционной записи остает- ся такой же, то есть справа пишется самый младший разряд, а сле- ва— самый старший. Но если в десятичной системе вес каждого следующего разряда в десять раз больше веса предыдущего разря- да, то в двоичной системе (при двоичном кодировании) — в два раза. Каждый разряд двоичного кода называется битом (от англий- ского Binary Digit — двоичное число). Таблица 1.4. Соответствие чисел в десятичной и двоичной системах Десятичная система Двоичная система Десятичная система Двоичная система 0 0 10 1010 1 1 11 1011 2 10 12 1100 3 11 13 1101 4 100 14 1110 5 101 15 1111 6 110 16 10000 7 111 17 10001 8 1000 18 10010 9 1001 19 10011 В табл. 1.4 показано соответствие первых двадцати чисел в десятичной и двоичной системах. Из таблицы видно, что количество разрядов двоичного кода, требуемое для представления каждого числа (кроме 0 и 1), значи- тельно больше, чем требуемое количество разрядов десятичного кода. Наибольшее число, которое можно представить 3-разрядным кодом, в десятичной системе составляет 999, а в двоичной систе- ме — всего лишь 7(111 в двоичном коде). В общем случае п-раз- рядное двоичное число может принимать 2“ различных значений, а n-разрядное десятичное число — 10° значений. Поэтому запись больших двоичных чисел (с количеством разрядов больше десяти) становится не слишком удобной.
46 Глава 1 Для того чтобы упростить запись двоичных чисел, была предложена так называемая шестнадцатеричная система (16- ричное кодирование). В этом случае все двоичные разряды раз- биваются на группы по четыре разряда (начиная с младшего), а затем уже каждая группа кодируется одним символом. Каждая такая группа называется полубайтом (или нибблом, тетрадой), а две группы (8 разрядов) — байтом. Из табл. 1.4 видно, что 4-разрядное двоичное число может принимать 16 разных зна- чений (от 0 до 15). Поэтому требуемое число символов для шестнадцатеричного кода тоже равно 16, откуда и происходит название кода. В качестве первых 10 символов берутся цифры от 0 до 9, а затем используются 6 начальных заглавных букв латинского алфавита: А, В, С, D, Е, F. Таблица 1.5. 16-ричная система кодирования Десятичная система 16-ричная система Десятичная система 16-ричная система 0 0(0) 10 А(1010) 1 1(1) и В (1011) 2 2(10) 12 С (1100) 3 3(11) 13 D (1101) 4 4(100) 14 В(1110) 5 5(101) 15 F(1111) 6 6(110) 16 10 (1 0000) 7 7(111) 17 11 (1 0001) 8 8(1000) 18 12(1 0010) 9 9(1001) 19 13(10011) Двоичное число: ISSL? 5S2.1 В * * 11 16-ричное число: Старший байт Младший байт Рис. 1.22. Двоичная и шестнадцатеричная запись числа. В табл. 1.5 приведены примеры 16-ричного кодирования первых 20 чисел (в скобках приведены двоичные числа), а на рис. 1.22 показан пример записи двоичного числа в 16-ричном виде. Для обозначения 16-ричного кодирования иногда приме-
Философия цифровой электроники 47 няют букву «Ь» или «Н» (от английского Hexadecimal) в конце числа. Например, запись A17F h обозначает 16-ричное число A17F. Здесь А1 представляет собой старший байт числа, a 7F — младший байт числа. Все число (в нашем случае — двухбайто- вое) называется словом. Для перевода 16-ричного числа в десятичное необходимо умножить значение младшего (нулевого) разряда на единицу, значение следующего (первого) разряда на 16, второго разряда на 256 (162) и т. д., а затем сложить все произведения. Например, возьмем число A17F: A17F = F • 16° + 7 • 161 + 1 • 162 + А • 163 = = 15 • 1 + 7 • 16 + 1 • 256 + 10 • 4096 = 41343. Но каждому специалисту по цифровой аппаратуре (разра- ботчику, оператору, ремонтнику, программисту и т. д.) необхо- димо научиться так же свободно обращаться с 16-ричной и дво- ичной системами, как и с обычной десятичной, чтобы никаких переводов из системы в систему не требовалось. Таблица 1.6. 8-ричная система кодирования Десятичная система 8-ричная система Десятичная система 8-ричная система 0 0(0) 10 12(1 010) 1 1(1) 11 13(1 011) 2 2(10) 12 14(1 100) 3 3(H) 13 15(1 101) 4 4(100) 14 16(1 ПО) 5 5 (101) 15 17(1 111) 6 6(110) 16 20(10 000) 7 7(111) 17 21 (10 001) 8 10(1 000) 18 22(10 010) 9 11 (1 001) 19 23 (10 011) Значительно реже, чем 16-ричное, используется восьмерич- ное кодирование, которое строится по такому же принципу, что и 16-ричное кодирование, но двоичные разряды разбиваются на группы по три разряда. Каждая группа (разряд кода) затем обо- значается одним символом. Каждый разряд 8-ричного кода мо- жет принимать восемь значений: 0, 1,2, 3, 4, 5, 6, 7 (табл. 1.6).
48 Глава 1 Помимо рассмотренных кодов существует также и так назы- ваемое двоично-десятичное представление чисел. Как и в 16- ричном коде, в двоично-десятичном коде каждому разряду кода соответствует четыре двоичных разряда, однако каждая группа из четырех двоичных разрядов может принимать не шестна- дцать, а только десять значений, кодируемых символами 0, 1,2, 3, 4, 5, 6, 7, 8, 9. То есть одному десятичному разряду соответст- вует четыре двоичных разряда. В результате получается, что на- писание чисел в двоично-десятичном коде ничем не отличается от написания в обычном десятичном коде (табл. 1.7), но в ре- альности это всего лишь специальный двоичный код, каждый разряд которого может принимать только два значения: 0 и 1. Двоично-десятичный код иногда очень удобен для организации десятичных цифровых индикаторов и табло. Таблица 1.7. Двоично-десятичная система кодирования Десятичная система Двоично-десятичная система Десятичная система Двоично-десятичная система 0 0(0) 10 10(1 0000) 1 1(1) 11 11 (1 0001) 2 2(10) 12 12(1 0010) 3 3(11) 13 13(1 ООН) 4 4 (100) 14 14(1 0100) 5 5(101) 15 15 (1 0101) 6 6(110) 16 16(1 ОНО) 7 7(111) 17 17(1 0111) 8 8(1000) 18 18(1 1000) 9 9(1001) 19 19(1 1001) В двоичном коде над числами можно проделывать любые арифметические операции: сложение, вычитание, умножение, деление. Рассмотрим, например, сложение двух 4-разрядных двоич- ных чисел. Пусть надо сложить число 0111 (десятичное 7) и 1011 (десятичное 11). Сложение этих чисел не сложнее, чем в десятичном представлении: 0111 +1011 10010
Философия цифровой электроники 49 При сложении 0 и 0 получаем 0, при сложении 1 и 0 получа- ем 1, при сложении 1 и 1 получаем 0 и перенос в следующий разряд 1. Результат — 10010 (десятичное 18). При сложении лю- бых двух n-разрядных двоичных чисел может получиться п-раз- рядное или (п+1)-разрядное число. Точно так же производится вычитание. Пусть из числа 10010 (18) надо вычесть число 0111 (7). Записываем числа с выравни- ванием по младшему разряду и вычитаем точно так же, как в случае десятичной системы: 10010 - 0111 1011 При вычитании 0 из 0 получаем 0, при вычитании 0 из 1 по- лучаем 1, при вычитании 1 из 1 получаем 0, при вычитании 1 из 0 получаем 1 и заем 1 в следующем разряде. Результат — 1011 (десятичное 11). При вычитании возможно получение отрицательных чисел, поэтому необходимо использовать двоичное представление от- рицательных чисел. Для одновременного представления как двоичных положи- тельных, так и двоичных отрицательных чисел чаще всего ис- пользуется так называемый дополнительный код. Отрицатель- ные числа в этом коде выражаются таким числом, которое, бу- дучи сложено с положительным числом такой же величины, даст в результате нуль. Для того чтобы получить отрицательное число, нужно дополнить до 1 каждый разряд такого же положи- тельного числа, то есть заменить в его двоичном коде все нули на единицы и единицы на нули, и затем прибавить к результа- ту 1. Например, запишем двоичное представление числа -5 с использованием дополнительного кода. Двоичный код числа 5 есть 0101. Заменяем во всех разрядах 1 на 0 и 0 на 1: 1010. При- бавляем единицу: 1011. Суммируем результат с исходным чис- лом: 1011 + 0101 = 0000 (перенос в пятый разряд игнорируем). Отрицательные числа в дополнительном коде отличаются от положительных значением старшего разряда: единица в старшем разряде определяет отрицательное число, а нуль — положительное. Помимо стандартных арифметических операций в двоичной системе счисления используются и некоторые специфические
50 Глава 1 операции, например сложение по модулю 2. Это операция (обо- значается Ф) является побитовой, то есть никаких переносов из разряда в разряд и заемов в старших разрядах здесь не сущест- вует. Правила сложения по модулю 2 следующие: 0 Ф 0 = 0, 0 Ф 1 = 1,1Ф0=1,1Ф1=0. Эта же операция называется функци- ей Исключающее ИЛИ. Например, просуммируем по модулю 2 два двоичных числа 0111 и 1011: 0111 ФЮН 1100 Среди других побитовых операций над двоичными числами можно отметить функцию И и функцию ИЛИ. Функция И дает в результате единицу только тогда, когда соответствующие биты двух исходных чисел оба имеют единичное значение, в противном случае результат — 0. Функция ИЛИ дает в результате единицу тогда, когда значение хотя бы одного из соответствующих битов исходных чисел равно 1, в противном случае результат — 0. 1.8. Функции цифровых устройств Любое цифровое устройство от самого простейшего до самого сложного всегда действует по одному и тому же принципу (рис. 1.23). Оно принимает входные сигналы, выполняет их обра- ботку, передачу, хранение и выдает выходные сигналы. При этом совсем не обязательно любое изменение входных сигналов при- водит к немедленному и однозначному изменению выходных сигналов. Реакция устройства может быть очень сложной, отло- женной по времени, неочевидной, но суть от этого не меняется. Цифровое устройство (обработка, хранение, передача) Входные S S Выходные цифровые -- сигналы — — jX* цифровые —сигналы Входной аналоговый —► сигнал АЦП ЦАП Выходной —►аналоговый сигнал Рис. 1.23. Включение цифрового устройства.
Философия цифровой электроники 51 В качестве входных сигналов нашего устройства могут вы- ступать сигналы с выходов других цифровых устройств, с тумб- леров и клавиш или с датчиков физических величин. Причем в последнем случае, как правило, необходимо осуществлять пре- образование выходных аналоговых сигналов датчиков в пото- ки цифровых кодов (рис. 1.24) с помощью аналого-цифровых преобразователей (АЦП). Например, в случае персонального компьютера входными сигналами являются сигналы с клавиа- туры, с датчиков перемещения мыши, с микрофона (давление воздуха, то есть звук, преобразуется в аналоговый электриче- ский сигнал, а затем — в цифровые коды), из кабеля локальной сети и т. д. Рис. 1.24. Аналого-цифровое и цифро-аналоговое преобразование. Выходные сигналы цифрового устройства могут предназна- чаться для подачи на другие цифровые устройства, для индика- ции (на экране монитора, на цифровом индикаторе и т. д.), а также для формирования физических величин. Причем в по- следнем случае необходимо преобразовывать потоки кодов с цифрового устройства в непрерывные (аналоговые) сигналы (рис. 1.24) с помощью цифро-аналоговых преобразователей (ЦАП) и в физические величины. Например, в случае персо- нального компьютера выходными сигналами будут сигналы, подаваемые компьютером на принтер, сигналы, идущие на ви- деомонитор (аналоговые или цифровые), звук, воспроизводи- мый динамиками компьютера (потоки кодов с компьютера пре- образуются в аналоговый электрический сигнал, который затем преобразуется в давление воздуха — звук). Одно цифровое устройство может состоять из нескольких более простых цифровых устройств. Часто эти составные эле- менты называют блоками, модулями, узлами, частями. Если
52 Г лава 1 объединяется несколько сложных цифровых устройств, то гово- рят уже о цифровых системах, комплексах, установках. Мы в основном будем использовать термин «устройство» как зани- мающий промежуточное положение. Связь между входными и выходными сигналами может быть жесткой, неизменной или гибко изменяемой (то есть програм- мируемой). То есть цифровое устройство может работать по же- сткому, раз и навсегда установленному алгоритму или по про- граммируемому алгоритму. Как правило, при этом выполняется один очень простой принцип: чем больше возможностей для изменения связи входных и выходных сигналов, чем больше возможностей изменения алгоритма работы, тем медленнее бу- дет цифровое устройство. Речь в данном случае, конечно же, идет о предельно достижимом быстродействии. Иначе говоря, простые устройства с жесткой логикой рабо- ты всегда могут быть сделаны быстрее программируемых, гиб- ких устройств со сложным алгоритмом работы. Жесткая логика также обеспечивает малый объем аппаратуры (малые аппара- турные затраты) для реализации простых функций. Зато про- граммируемые, интеллектуальные устройства обеспечивают бо- лее высокую гибкость и меньшую стоимость при необходимо- сти сложной обработки информации. А для реализации простых функций они часто оказываются избыточно сложными. Так что выбор между двумя этими типами цифровых устройств зависит от конкретной решаемой задачи. Значительное число задач может быть решено как чисто ап- паратным путем (с помощью устройств на жесткой логике), так и программно-аппаратным путем (с помощью программируемых устройств). В таких случаях надо смотреть, какие характерис- тики устройства являются самыми важными: скорость работы, стоимость, гибкость, простота проектирования и т. д., и в зави- симости от этого выбирать то или иное решение, так или иначе перераспределять функции между программным обеспечением и аппаратурой. В данной книге основное внимание будет уделено устройст- вам и узлам с жесткой логикой работы. Однако уяснение прин- ципов их работы и их проектирования может оказать большую помощь и при создании программируемых, интеллектуальных устройств.
Глава 2 ПРИМЕНЕНИЕ ЛОГИЧЕСКИХ ЭЛЕМЕНТОВ Изучение базовых элементов цифровой электроники мы начнем с наиболее простых элементов, а затем будем рассматривать все более сложные. Примеры применения каждого следующего элемента будут опираться на все элементы, рассмотренные ра- нее. Таким образом будут постепенно даны главные принципы построения довольно сложных цифровых устройств. Логические элементы (или, как их еще называют, вентили, gates) — это наиболее простые цифровые микросхемы. Именно в этой простоте и состоит их отличие от других микросхем. Как правило, в одном корпусе микросхемы может располагаться от одного до шести одинаковых логических элементов. Иногда в одном корпусе могут располагаться и разные логические эле- менты. Обычно каждый логический элемент имеет несколько вхо- дов (от одного до двенадцати) и один выход. При этом связь между выходным сигналом и входными сигналами (таблица истинности) предельно проста. Каждой комбинации входных сигналов элемента соответствует уровень нуля или единицы на его выходе. Никакой внутренней памяти у логических элемен- тов нет, поэтому они относятся к группе так называемых ком- бинационных микросхем. Но в отличие от более сложных комбинационных микросхем, рассматриваемых в следующей главе, логические элементы имеют входы, которые не могут быть разделены на группы, различающиеся по выполняемым ими функциям. Главные достоинства логических элементов по сравнению с другими цифровыми микросхемами — это их высокое быстро- действие (малые времена задержек), а также малая потребляе- мая мощность (малый ток потребления). Поэтому в тех случаях, когда требуемую функцию можно реализовать исключительно на логических элементах, всегда имеет смысл проанализировать этот вариант. Недостаток логических элементов состоит в том, что на их основе довольно трудно реализовать сколько-нибудь сложные функции. Поэтому чаще всего логические элементы
54 Глава 2 используются только в качестве дополнения к более сложным, к более «умным» микросхемам. И любой разработчик обычно стремится использовать их как можно меньше и как можно ре- же. Существует даже мнение, что мастерство разработчика об- ратно пропорционально количеству используемых им логиче- ских элементов. Однако это мнение верно далеко не всегда. 2.1. Инверторы Самый простой логический элемент — это инвертор (логиче- ский элемент НЕ, inverter), уже упоминавшийся в первой главе. Инвертор выполняет простейшую логическую функцию — ин- вертирование, то есть изменение уровня входного сигнала на противоположный. Инвертор имеет всего один вход и один вы- ход. Выход инвертора может быть типа 2С или типа ОК. На рис. 2.1. показаны условные обозначения инвертора, принятые у нас и за рубежом, а в табл. 2.1 представлена таблица истинности инвертора. Таблица 2.1. Таблица истинности инвертора Вход Выход 0 1 1 0 2С ОК Рис. 2.1. Условные обозначения инверторов: зарубежные (слева) и отечествен- ные (справа). В одном корпусе микросхемы обычно бывает шесть инвер- торов. Отечественное обозначение микросхем инверторов — «ЛН». Примеры: КР1533ЛН1 (SN74ALS04) — шесть инверто- ров с выходом 2С, КР1533ЛН2 (SN74ALS05) — шесть инверто- ров с выходом ОК. Существуют также инверторы с выходом ОК и с повышенным выходным током (ЛН4) и с повышенным вы- ходным напряжением (ЛНЗ, ЛН5). Для инверторов с выходом ОК необходимо включение выходного нагрузочного резистора
Применение логических элементов 55 pull-up. Его минимальную величину можно рассчитать очень просто: R = U/Iol, где U — напряжение источника питания, к которому подключается резистор. Обычно величина резистора выбирается порядка сотен Ом — единиц кОм. Две основные области применения инверторов — это изме- нение полярности сигнала и изменение полярности фронта сиг- нала (рис. 2.2). То есть из положительного входного сигнала ин- вертор делает отрицательный выходной сигнал и наоборот, а из положительного фронта входного сигнала — отрицательный фронт выходного сигнала и наоборот. Еще одно важное приме- нение инвертора — буферизация сигнала (с инверсией), то есть увеличение нагрузочной способности сигнала. Это бывает нуж- но в том случае, когда какой-то сигнал надо подать на много входов, а выходной ток источника сигнала недостаточен. Рис. 2.2. Инверсия полярности сигнала и инверсия полярности фронта сиг- нала. Именно инвертор как наиболее простой элемент чаще других элементов используется в нестандартных включениях. Например, инверторы обычно применяются в схемах генераторов прямо- угольных импульсов (рис. 2.3), выходной сигнал которых периоди- чески изменяется с нулевого уровня на единичный и обратно. Все приведенные схемы, кроме схемы д, выполнены на элементах К155ЛН1, но могут быть реализованы и на инверторах других серий при соответствующем изменении номиналов резисторов. Например, для серии К555 номиналы резисторов увеличиваются примерно втрое. Схема д выполнена на элементах КР531ЛН1, так как она требует высокого быстродействия инверторов. Схемы а, бив представляют собой обычные RC-генераторы, характеристики которых (выходную частоту, длительность им- пульса) можно рассчитать только приблизительно. Для схем а и б при указанных номиналах резистора и конденсатора частота генерации составит порядка 100 кГц, для схемы в — около 1 МГц. Эти схемы рекомендуется использовать только в тех случаях, когда частота не слишком важна, а важен сам факт ге-
56 Глава 2 нерации. Если же точное значение частоты принципиально, то рекомендуется использовать схемы г и д, в которых частота вы- ходного сигнала определяется только характеристиками кварце- вого резонатора. Схема г используется для кварцевого резона- тора, работающего на первой (основной) гармонике. Величину емкости можно оценить по формуле: С > 1/(2RF), где F — частота генерации. Схема д применяется для гармони- ковых кварцевых резонаторов, работающих на частоте, большей основной в 3, 5, 7 раз (это бывает нужно для частот генерации выше 20 МГц). R1 зоо R1 470 R2 470 R1 330 R2 330 DD1.1 DD1.1 1Н0 DD1.2 DD1.3 ZQ1 .3 С1Ч DD1.2 50 МГц —1[]|— iH0 сгзоТ Тез 30 ZQ1 10 МГц Рис. 2.3. Схемы генераторов импульсов на инверторах. Инверторы также применяются в тех случаях, когда необхо- димо получить задержку сигнала, правда, незначительную (от 5 до 100 нс). Для получения такой задержки последовательно включается нужное количество инверторов (рис. 2.4, верхняя схема). Суммарное время задержки, например, для четырех ин- верторов можно оценить по формуле: 1з = 2tpHL + 2tpLH-
Применение логических элементов 57 Рис. 2.4. Использование инверторов для задержки сигнала. Правда, нужно учитывать, что обычно реальные задержки эле- ментов оказываются существенно меньше (иногда даже вдвое), чем табличные значения параметров tpHL и tPLH. То есть о точном значении получаемой задержки говорить не приходится, ее можно оценить только примерно. Для задержки сигнала используются также конденсаторы (рис. 2.4, две нижние схемы). При этом задержка возникает из-за медленного заряда и разряда конденсатора (напряжение на кон- денсаторе — Uc). Схема без резистора (внизу слева на рисунке) дает задержку около 100 нс. В схеме с резистором (внизу справа на рисунке) номинал резистора должен быть порядка сотен Ом. Но при выборе таких схем с конденсаторами надо учитывать, что некоторые серии микросхем (например, КР1533) плохо работают с затянутыми фронтами входных сигналов. Кроме того, надо учи- тывать, что количество времязадающих конденсаторов в схеме об- ратно пропорционально уровню мастерства разработчика схемы. Рис. 2.5. Объединение выходов инверторов с ОК для реализации функции ИЛИ-НЕ. Наконец, еще одно применение инверторов, но только с выхо- дом ОК, состоит в построении на их основе так называемых эле- ментов «Проводного ИЛИ». Для этого выходы нескольких инвер-
58 Глава 2 торов с выходами ОК объединяются и через резистор присоединя- ются к источнику питания (рис. 2.5). Выходом схемы является объ- единенный выход всех элементов. Такая конструкция выполняет логическую функцию ИЛИ-HE, то есть на выходе будет сигнал ло- гической единицы только при нулях на всех входах. Но о логиче- ских функциях подробнее будет рассказано в разделе 2.3. В заключение раздела надо отметить, что инверсия сигнала применяется и внутри более сложных логических элементов, а также внутри цифровых микросхем, выполняющих сложные функции. 2.2. Повторители и буферы Повторители и буферы отличаются от инверторов прежде всего тем, что они не инвертируют сигнал (правда, существуют и ин- вертирующие буферы). Зачем же тогда они нужны? Во-первых, они выполняют функцию увеличения нагрузочной способности сигнала, то есть позволяют подавать один сигнал на много вхо- дов. Для этого имеются буферы с повышенным выходным то- ком и выходом 2С, например ЛП16 (шесть буферных повтори- телей). Во-вторых, большинство буферов имеют выход ОК или ЗС, что позволяет использовать их для получения двунаправ- ленных линий или для мультиплексирования сигналов. Поясним подробнее эти термины. Рис. 2.6. Двунаправленная линия. Под двунаправленными линиями понимаются такие линии (провода), сигналы по которым могут распространяться в двух противоположных направлениях. В отличие от однонаправлен- ных линий, которые идут от одного выхода к одному или не- скольким входам, к двунаправленной линии могут одновремен- но подключаться несколько выходов и несколько входов (рис. 2.6). Понятно, что двунаправленные линии могут органи-
Применение логических элементов 59 зовываться только на основе выходов ОК или ЗС. Поэтому поч- ти все буферы имеют именно такие выходы. Мультиплексированием называется передача разных сигна- лов по одним и тем же линиям в разные моменты времени. Ос- новная цель мультиплексирования состоит в сокращении обще- го количества соединительных линий. Двунаправленная линия обязательно является мультиплексированной, а мультиплекси- рованная линия может быть как однонаправленной, так и дву- направленной. Но в любом случае к ней присоединяется не- сколько выходов, только один из которых в каждый момент времени находится в активном состоянии. Остальные выходы в это время отключаются (переводятся в пассивное состояние). В отличие от двунаправленной линии к мультиплексированной линии, построенной на основе буферов, может быть подключен всего лишь один вход, но обязательно несколько выходов с ОК или ЗС (рис. 2.7). Мультиплексированные линии могут строить- ся не только на буферах, но и на микросхемах мультиплексоров, которые будут рассмотрены в главе 3. Рис. 2.7. Однонаправленная мультиплексированная линия на основе буферов. Примером буферов с выходом ОК является микросхема ЛП17 (шесть буферов о ОК). Точно так же, как и в случае ин- верторов с ОК (см. рис. 2.5), выходы нескольких буферов с ОК могут объединяться для получения функции «Монтажное И», то есть на выходе будет сигнал логической единицы только при единицах на всех входах (рис. 2.8). То есть реализуется много- входовой элемент И (см. раздел 2.3). Буферы с выходом ЗС представлены гораздо большим коли- чеством микросхем, например: ЛП8, ЛП11, АП5, АП6, АП14. Эти буферы обязательно имеют управляющий вход EZ (или ОЕ), переводящий выходы в третье, пассивное состояние. Как правило, третьему состоянию соответствует единица на этом входе, а активному состоянию выходов — нуль, то есть сигнал EZ имеет отрицательную полярность.
60 Глава 2 Рис. 2.8. Объединение выходов буферов с ОК. Буферы бывают однонаправленные или двунаправленные, с инверсией сигналов или без инверсии сигналов, с управлением всеми выходами одновременно или с управлением группами выходов. Все это и определяет большое разнообразие микро- схем буферов. Таблица 2.2. Таблица истинности буфера без инверсии Вход -EZ Выход 0 0 0 1 0 1 0 1 ЗС 1 1 ЗС Простейшим однонаправленным буфером без инверсии яв- ляется микросхема ЛП8 (четыре буфера с выходами типа ЗС и раздельным управлением). Каждый из четырех буферов имеет свой вход разрешения EZ. Таблица истинности буфера очень проста (табл. 2.2.): при нулевом сигнале на входе управления выход повторяет вход, а при единичном — выход отключен. Эту микросхему удобно применять для обработки одиночных сигналов, то есть для повторения входного сигнала с возможно- стью отключения выхода. Вх. Рис. 2.9. Применение буфера с выходом ЗС в качестве буфера с ОК. Эти же буферы иногда удобно использовать для замещения буферов с выходом ОК (рис. 2.9). В этом случае вход управле- ния служит информационным входом. При нуле на входе мы
Применение логических элементов 61 получаем нуль на выходе, а при единице на входе — третье со- стояние на выходе. Очень часто надо обрабатывать не одиночные сигналы, а группы сигналов, например сигналы, передающие многоразряд- ные коды. В этом случае удобно применять буферы с группо- вым управлением, то есть имеющие один вход разрешения EZ для нескольких выходов. Примерами могут служить микросхе- мы ЛП11 (шесть буферов, разделенные на две группы: четыре и два буфера, для каждой из которых имеется свой вход управле- ния) и АП5 (восемь буферов, разделенные на две группы по че- тыре буфера, каждая из которых имеет свой вход управления). Рис. 2.10. Мультиплексирование двух входных кодов с помощью буферов с выходом ЗС. На рис. 2.10 показан пример мультиплексирования двух восьмиразрядных кодов с помощью двух микросхем АП5. Од- ноименные выходы обеих микросхем объединены между собой. Пропускание на выход каждого из двух входных кодов разре- шается своим управляющим сигналом (Упр.1 и Упр.2), причем должен быть исключен одновременный приход этих двух сиг- налов, чтобы не было конфликтов на выходах. Двунаправленные буферы в отличие от однонаправленных позволяют передавать сигналы в обоих направлениях. В зависи- мости от специального управляющего сигнала Т (другое обозна- чение — BD) входы могут становиться выходами и наоборот — выходы входами. Обязательно имеется и вход управления треть- им состоянием EZ, который может отключить как входы, так и выходы.
62 Г лава 2 DD1 Шина А 01 Нг 1 А1 А2 АЗ А4 А5 А6 А7 А8 •EZ Т «Ф о В1 В2 ВЗ В4 В5 В6 В7 В8 1 Шина В 2 2 3 3 4 4 5 5 6 6 7 7 8 8 жл. 1 игр. Рис. 2.11. Включение двунаправленного буфера. На рис. 2.11 для примера показан двунаправленный буфер АП6, который может передавать данные между двумя двунаправ- ленными шинами А и В в обоих направлениях. При единичном уровне на управляющем входе Т (сигнал Напр.) данные переда- ются из шины А в шину В, а при нулевом уровне — из шины В в шину А (табл. 2.3). Единичный уровень на управляющем входе -EZ (сигнал Откл.) отключает микросхему от обеих шин. Таблица 2.3. Таблица истинности двунаправленного буфера ВходТ Вход -EZ Операция 0 0 В—>А 1 0 А—>В 0 1 ЗС 1 1 ЗС Двунаправленную передачу можно организовать и на основе однонаправленных буферов. На рис. 2.12 показано, как это можно сделать на двух микросхемах АП5. Здесь при нулевом сигнале Упр.1 информация будет передаваться с шины А на шину В, а при нулевом сигнале на входе Упр.2 — с шины В на шину А. Если оба входа Упр.1 и Упр.2 находятся в единичном состоянии, то шины А и В отключены друг от друга, а подача нулей на оба входа Упр.1 и Упр.2 должна быть исключена, ина- че состояние обеих шин А и В будет не определено. Микросхемы буферов в отечественной системе обозначений имеют разнообразные обозначения: ЛН, ЛП, АП, ИП (например ЛН6, ЛП8, ЛП11, АП5, АП6, ИП5, ИП6), что порой затрудняет
Применение логических элементов 63 их выбор. Буферы с буквами ЛН имеют инверсию, буферы АП и ИП могут быть с инверсией, а могут быть и без инверсии. Все параметры у буферов довольно близки, отличие — в инверсии, в количестве разрядов и в управляющих сигналах. Рис. 2.12. Организация двунаправленной передачи с помощью однонаправ- ленных буферов. Временные параметры буферов включают помимо задержки сигнала от информационного входа до информационного выхода также задержки перехода выхода в третье состояние и из третьего состояния в активное состояние (tpHz, tPLz и tpzn, tpzt). Величины этих задержек обычно примерно вдвое больше, чем величины за- держек между информационным входом и выходом. Отключаемый выход буферов (как ОК, так и ЗС) требует применения нагрузочных резисторов. В противном случае вход, подключенный к отключенному выходу, оказывается подве- шенным, в результате чего схема может работать неустойчиво, давать сбои. Подключение резистора в случае выхода OK (pull up) производится стандартным способом (см. рис. 2.8). Точно так же может быть включен резистор между выходом ЗС и ши- ной питания (рис. 2.13), тогда при отключенном выходе на вход будет поступать уровень логической единицы. Однако можно включить и резистор между выходом и землей, тогда при от- ключенном выходе на вход будет поступать сигнал логического нуля. Применяется также и включение двух резисторов (рези- стивного делителя), при этом номинал (сопротивление) верхне-
64 Глава 2 го резистора (присоединенного к шине питания) обычно выби- рается в 2-3 раза меньше, чем нижнего резистора (присоеди- ненного к «земле»), а величина сопротивления двух параллель- но соединенных резисторов выбирается равной примерно 100 Ом. Например, резисторы могут иметь номиналы 240 Ом и 120 Ом, 360 Ом и 130 Ом. В данном случае отключенный выход воспринимается присоединенным к нему входом как единица. Иногда к выходам ЗС резисторы не присоединяют вообще, но в этом случае надо обеспечить, чтобы последующий вход воспринимал сигнал с выхода ЗС (то есть реагировал на него) только тогда, когда выход находится в активном состоянии. Иначе возможны сбои и отказы в работе устройства. Рис. 2.14. Применение буферов для индикации. Еще одно типичное применение буферов, связанное с их большими выходными токами — это светодиодная индикация. Светодиоды могут подключаться к выходу буферов двумя ос- новными способами (рис. 2.14). При первом из них (слева на ри- сунке) светодиод горит, когда на выходе ЗС или 2С сигнал ло- гической единицы, а при втором (справа на рисунке) — когда на выходе ОК сигнал логического нуля. Сопротивление резистора выбирается исходя из характеристик светодиода, но обычно со- ставляет порядка 1 кОм.
Применение логических элементов 65 2.3. Логические элементы И, И-НЕ, ИЛИ, ИЛИ-НЕ Следующая группа микросхем на пути усложнения компонен- тов цифровой электроники — это элементы, выполняющие про- стейшие логические функции. Объединяет все эти элементы то, что у них есть несколько равноправных входов (от 2 до 12) и один выход, сигнал на котором определяется комбинацией входных сигналов. Самые распространенные логические функции, выполняемые такими элементами, — это И (в отечественной системе обозначе- ний микросхем — ЛИ), И-НЕ (обозначается ЛА), ИЛИ (обознача- ется ЛЛ) и ИЛИ-HE (обозначается ЛЛ). Присутствие слова НЕ в на- звании элемента обозначает только одно — встроенную инверсию сигнала. В международной системе обозначений используются следующие сокращения: AND — функция И, NAND — функция И-НЕ, OR — функция ИЛИ, NOR — функция ИЛИ-НЕ. Название самих функций И и ИЛИ говорит о том, при каком условии на входах появляется сигнал на выходе. При этом важно помнить, что речь в данном случае идет о положительной логике, о положительных, единичных сигналах на входах и на выходе. Таблица 2.4. Таблица истинности двухвходовых элементов И, И-НЕ, ИЛИ, ИЛИ-НЕ Вход 1 Вход 2 Выход И Выход И-НЕ Выход ИЛИ Выход ИЛИ-НЕ 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 Элемент И формирует на выходе единицу тогда и только то- гда, когда на всех его входах (и на первом, и на втором, и на третьем и т. д.) присутствуют единицы. Если речь идет об эле- менте И-НЕ, то на выходе формируется нуль, когда на всех вхо- дах единицы (табл. 2.4). Цифра перед названием функции гово- рит о количестве входов элемента. Например, 8И-НЕ — это восьмивходовой элемент И с инверсией на выходе. Элемент ИЛИ формирует на выходе нуль тогда и только то- гда, когда хотя бы на одном из входов присутствует единица 3 - 4589
66 Глава 2 (или на первом, или на втором, или на третьем и т. д.). Элемент ИЛИ-HE дает на выходе нуль при наличии хотя бы на одном из входов единицы (табл. 2.4). Пример обозначения: 4ИЛИ-НЕ — четырехвходовой элемент ИЛИ с инверсией на выходе. или ИЛИ-НЕ Рис. 2.15. Обозначения элементов И, И-НЕ, ИЛИ, ИЛИ-HE: зарубежные (сле- ва) и отечественные (справа). Отечественные и зарубежные обозначения на схемах двухвхо- довых элементов И, И-НЕ, ИЛИ, ИЛИ-HE показаны на рис. 2.15. Все эти элементы бывают с выходами типа 2С, ОК и ЗС. В послед- нем случае обязательно имеется вход разрешения -EZ. Нетрудно заметить (см. табл. 2.4), что в случае отрицатель- ной логики, при нулевых входных и выходных сигналах, эле- мент И выполняет функцию ИЛИ, то есть на выходе будет нуль в случае, когда хотя бы на одном из входов нуль. А элемент ИЛИ при отрицательной логике выполняет функцию И, то есть на выходе будет нуль только тогда, когда на всех входах при- сутствуют нули. А так как в реальных электронных устройствах сигналы могут быть любой полярности (как положительные, так и отрицательные), то надо всегда очень аккуратно выбирать требуемый в каждом конкретном случае элемент. Особенно важно помнить об этом тогда, когда последовательно соединя- ются несколько разноименных логических элементов с инвер- сией и без нее для получения сложной функции. Поэтому разработчику далеко не всегда удобно рассматри- вать элементы И, И-НЕ, ИЛИ, ИЛИ-HE именно как выполняю- щие указанные в их названии логические функции. Иногда их удобнее рассматривать как элементы разрешения/запрещения или смешивания/совпадения. Но сначала мы рассмотрим случаи реализации на этих элементах именно логических функций. На рис. 2.16 приведены примеры формирования элементами выходных сигналов на основании требуемых временных диа- грамм входных и выходных сигналов. В случае а выходной сиг- нал должен быть равен единице при двух единичных входных
Применение логических элементов 67 сигналах, следовательно, нужен элемент 2И. В случае б выход- ной сигнал должен быть равен нулю, когда хотя бы один из входных сигналов равен единице, следовательно, требуется элемент 2ИЛИ-НЕ. Наконец, в случае в выходной сигнал дол- жен быть равен нулю при одновременном приходе единичного сигнала Вх. 1, нулевого сигнала Вх.2 и единичного сигнала Вх.З. Следовательно, требуется элемент ЗИ-НЕ, причем сигнал Вх.2 надо предварительно проинвертировать. ВхЛ] [ в*-2 Г~Г Вых. | [ ВхД. Вх.2 4- & — ..2 Вых. Bx.l r~j~1 Вх.2 Г Вых. Рис. 2.16. Примеры применения элементов И и ИЛИ. Любой из логических элементов рассматриваемой группы можно рассматривать как управляемый пропускатель входного сигнала (с инверсией или без нее). Например, в случае элемента 2И-НЕ один из входов можно считать информационным, а другой — управляющим. В этом случае при единице на управляющем входе выходной сигнал будет равен проинвертированному входному сигналу, а при ну- ле на управляющем входе выходной сигнал будет постоянно ра- вен единице, то есть прохождение входного сигнала будет за- прещено. Элементы 2И-НЕ с выходом ОК часто используют именно в качестве управляемых буферов для работы на мульти- плексированную или двунаправленную линию. Точно так же в качестве элемента разрешения/запрещения могут применяться элементы И, ИЛИ, ИЛИ-HE (рис. 2.17). Раз- ница между элементами состоит только в полярности управ- ляющего сигнала, в инверсии (или ее отсутствии) входного сиг- нала, а также в уровне выходного сигнала (нуль или единица) при запрещении прохождения входного сигнала. з*
68 Глава 2 Вх. Разр. Вых. вьЛЛ_п_ги Разр. |; ; | II [_nJ втъгцтП-П Разр- |]1 I II Вых. П П Рис. 2.17. Разрешение/запрещение прохождения сигналов на элементах И, И-НЕ, ИЛИ, ИЛИ-НЕ. вТ1ппПГ Разр. Вых. Рис. 2.18. Появление лишнего фронта при запрещении входного сигнала. Вх. гт~ Разр? — При использовании элементов разрешения/запрещения мо- гут возникнуть дополнительные проблемы в случае, когда сиг- нал с выхода элемента идет на вход, реагирующий на фронт сигнала. В момент перехода из состояния разрешения в состоя- ние запрещения и из состояния запрещения в состояние разре- шения в выходном сигнале может появиться дополнительный фронт, никак не связанный с входным сигналом (рис. 2.18). Чтобы этого не произошло, надо придерживаться следующего простого правила: если вход реагирует на положительный фронт, то в состоянии запрещения на выходе элемента должен быть нуль и наоборот. Иногда необходимо реализовать функцию смешивания двух сигналов той или иной полярности. То есть выходной сигнал должен вырабатываться как при приходе одного входного сиг- нала, так и приходе другого входного сигнала. Если оба вход- ных сигнала положительные и выходной сигнал положитель- ный, то мы имеем в чистом виде функцию ИЛИ, и требуется элемент 2ИЛИ. Однако при отрицательных входных сигналах и отрицательном выходном сигнале для такого же смешивания
Применение логических элементов 69 понадобится уже элемент 2И. А если полярность входных сиг- налов не совпадает с нужной полярностью выходного сигнала, то нужны уже элементы с инверсией (И-НЕ при положительных выходных сигналах и ИЛИ-HE при отрицательных выходных сигналах). На рис. 2.19 показаны варианты смешивания на раз- ных элементах. Рис. 2.19. Реализация смешивания двух сигналов. Наконец, элементы И, И-НЕ, ИЛИ, ИЛИ-HE иногда бывает удобно рассматривать в качестве схем совпадения различных сигналов. То есть выходной сигнал должен вырабатываться тогда, когда сигналы на входах совпадают (приходят одновре- менно). Если же совпадения нет, то выходной сигнал должен отсутствовать. На рис. 2.20 показаны варианты таких схем совпадения на четырех разных элементах. Различаются они полярностями входных сигналов, а также наличием или отсут- ствием инверсии выходного сигнала. Рис. 2.20. Схемы совпадения двух сигналов.
70 Глава 2 Рассмотрим два примера совместного использования эле- ментов И, И-НЕ, ИЛИ, ИЛИ-HE (рис. 2.21). Вх.2 — & Разр.2— Вх.1 — & Разр.1— Вых. б Рис. 2.21. Примеры совместного использования элементов. Пусть необходимо смешать два сигнала, каждый из которых может быть разрешен или запрещен. Пусть полярность входных сигналов и сигналов разрешения положительная, а выходной сигнал должен быть отрицательным. В этом случае надо взять два двухвходовых элемента И и смешать их выходные сигналы с помощью двухвходового элемента ИЛИ-HE (а). Пусть необходимо смешать два отрицательных сигнала и один положительный сигнал, причем результирующий сигнал может быть разрешен или запрещен. Полярность сигнала раз- решения — отрицательная, полярность выходного сигнала — отрицательная. Для этого нужно взять трехвходовой элемент И, инвертор для отрицательного входного сигнала и двухвходовой элемент ИЛИ (б). Элементы И, И-НЕ, ИЛИ, ИЛИ-HE могут использоваться также в качестве инверторов или повторителей (рис. 2.22), для чего необходимо объединить их входы или на неиспользуемые входы подать сигнал нужного уровня. Второе предпочтитель- нее, так как объединение входов не только увеличивает входной ток, но и несколько снижает быстродействие элементов. Рис. 2.22. Инверторы и повторители.
Применение логических элементов 71 —< & —< CS — —"EZ Рис. 2.23. Объединение по И входов микросхем. По функции И часто объединяются входы более сложных микросхем. То есть какая-то функция выполняется только тогда, когда на все объединенные по И входы поступают сигналы нужной полярности. Чаще всего по И объединяются входы вы- бора микросхемы CS и входы управления третьим состоянием выхода микросхемы EZ. На рис. 2.23 показано три примера та- кого объединения по И. При этом надо учитывать, что на ин- версные входы для выполнения функции должны поступать ну- левые сигналы, а на прямые входы — единичные сигналы. Примерами могут служить микросхемы КР556РТ4, КР556РТ5, КР1533АШ4, КР1533АШ5. До сих пор, рассматривая элементы И, И-НЕ, ИЛИ, ИЛИ- НЕ, мы не выходили за рамки первого уровня представления (логической модели). Это вполне допустимо в том случае, когда входные сигналы элементов не меняются одновременно или почти одновременно, когда их фронты разнесены во времени существенно (больше, чем на время задержки элемента). При одновременном изменении входных сигналов все будет гораздо сложнее, необходимо привлекать второй, а иногда и третий уро- вень представления. В момент изменения входных сигналов вы- ходной сигнал становится неопределенным, нестабильным, не- предсказуемым. В результате этого при неправильном проекти- ровании может не работать вся сложная схема, целый прибор или даже большая система. Например, возьмем логический элемент 2И-НЕ. Пусть на его входы приходят сигналы, изменяющиеся одновременно, причем в противофазе, то есть один переключается из нуля в единицу, а другой — из единицы в нуль. Пусть по тем или иным причинам (вследствие передачи по проводам, вследствие разных задержек элементов и т. д.) один из сигналов чуть-чуть сдвинулся во вре- мени относительно другого (рис. 2.24). При этом на двух входах в течение кратковременного периода будет присутствовать два единичных сигнала. В результате выход начнет переключаться из единицы в нуль. Он может успеть переключиться, и тогда
72 Глава 2 сформируется короткий импульс. Он может не успеть переклю- читься, и тогда импульса не будет. Он может иногда успевать переключиться, а иногда не успевать, и тогда выходной импульс то будет появляться, то не будет. Здесь все зависит от быстро- действия элемента и величины задержки. Последняя ситуация наиболее неприятна, так как может вызвать нестабильную неис- правность, выявить которую крайне сложно. ---- Вых. Вх.2 — Вх,1 | Вх.2 ||Г Вых. У Рис. 2.24. Короткий импульс на выходе элемента 2И-НЕ. На этапе проектирования схемы бороться с такими паразит- ными импульсами довольно просто: достаточно выбрать такое схемотехническое решение, при котором вся дальнейшая схема просто не реагировала бы на эти импульсы, например отключа- лась на некоторое время после изменения входных сигналов элементов. То есть необходимо временное согласование, син- хронизация различных элементов схемы. В качестве примера рассмотрим одно из самых распростра- ненных применений рассматриваемых элементов И, И-НЕ, ИЛИ, ИЛИ-НЕ — селектирование кодов. Суть селектирования сводится к следующему. Пусть имеется некоторая шина, по ко- торой передаются коды. Необходимо выявить появление на этой шине какого-то определенного кода, то есть сформировать вы- ходной сигнал, соответствующий требуемому входному коду. Схема, выполняющая такую функцию, довольно проста (рис. 2.25). В ее основе — многовходовые элементы И-НЕ. При этом сигналы, соответствующие разрядам кода, в которых должны быть единицы, подаются на входы элементов И-НЕ не- посредственно. А сигналы, соответствующие разрядам кода, в которых должны быть нули, подаются на входы элементов И- НЕ через инверторы. Выходные сигналы элементов И-НЕ объе- диняются с помощью элемента ИЛИ-HE. В результате на выхо- де элемента ИЛИ-HE формируется сигнал Вых.1 в тот момент, когда на входе присутствует нужный код.
Применение логических элементов 73 Рис. 2.25. Селектирование кодов со стробированием. Однако в момент установления нужного кода и в момент его снятия возникает период неопределенности, когда в выходном сигнале могут быть короткие паразитные импульсы. Это связа- но как с неодновременным приходом различных разрядов, так и с внутренними задержками нашей схемы. Более того, короткие паразитные импульсы могут возникать на выходе и в том слу- чае, когда любой входной код меняется на любой другой входной код, даже если оба этих кода не селектируются нашей схемой. То есть любое изменение кода всегда сопровождается периодом не- определенности в сигнале Вых.1. Как же добиться, чтобы выходной сигнал не имел паразит- ных импульсов, не имел периодов неопределенности? Для этого обычно используется стробирование или тактирование переда- ваемого кода. То есть помимо кода параллельно с ним передает- ся стробирующий или тактирующий сигнал STR, задержанный во времени относительно кода. Активным этот сигнал становит- ся тогда, когда все предыдущие переходные процессы уже за- вершены, все разряды кода установились в нужные уровни и схема, обрабатывающая код, тоже закончила свою работу. А пассивным этот сигнал становится до начала новых переход- ных процессов. Это называется вложенным циклом (то есть в нашем случае сигнал STR вложен в сигналы кода). В результа- те, если мы будем разрешать выходной сигнал нашей схемы Вых.1 таким сигналом STR с помощью элемента 2И-НЕ, то мы получим сигнал Вых.2, свободный от паразитных импульсов и периодов неопределенности. Подробнее о синхронизации будет рассказано в следующих главах книги.
74 Глава 2 а Рис. 2.26. Формирователи коротких импульсов по фронту входного сигнала. Однако бывают случаи, когда указанная особенность эле- ментов И, И-НЕ, ИЛИ, ИЛИ-HE формировать короткие им- пульсы при изменении входных сигналов оказывается очень полезной. Например, нам необходимо сформировать короткий импульс по положительному или отрицательному фронту имеющегося сигнала. Тогда этот сигнал инвертируют, специ- ально задерживают с помощью цепочки элементов или емко- сти и подают исходный сигнал и задержанный сигнал на входы элемента (рис. 2.26). Импульс по положительному фронту входного сигнала фор- мируется на элементе 2И или 2И-НЕ (а), а импульс по отрица- тельному фронту входного сигнала — на элементе 2ИЛИ или 2ИЛИ-НЕ (б). Если элемент с инверсией, то выходной импульс будет отрицательным, если без инверсии, то положительным. При указанной на схемах величине емкости длительность им- пульса получается около 50 нс. Для увеличения длительности импульса надо увеличивать величину емкости или же количест- во инверторов в цепи задержки (при этом количество инверто- ров обязательно должно быть нечетным). 2.4. Логические элементы Исключающее ИЛИ Элементы Исключающее ИЛИ (по-английски — Exclusive-OR) также можно было бы отнести к простейшим элементам, но функция, выполняемая ими несколько сложнее, чем в случае элемента И или элемента ИЛИ. Все входы элементов Исклю- чающее ИЛИ равноправны, однако ни один из входов не может заблокировать другие входы, установив выходной сигнал к уровню единицы или нуля. Под функцией Исключающим ИЛИ понимается следующее: единица на выходе появляется тогда, когда только на одном
Применение логических элементов 75 входе присутствует единица. Если единиц на входах две или больше, или если на всех входах нули, то на выходе будет нуль. Таблица истинности двухвходового элемента Исключающее ИЛИ приведена ниже (табл. 2.5). Обозначения, принятые в оте- чественных и зарубежных схемах, показаны на рис. 2.27. Над- пись на отечественном обозначении элемента Исключающее ИЛИ «=1» как раз и обозначает, что выделяется ситуация, когда на входах одна и только одна единица. Таблица 2.5. Таблица истинности элемента Исключающее ИЛИ Вход 1 Вход 2 Выход 0 0 0 0 1 1 1 0 1 1 1 0 Элементов Исключающее ИЛИ в стандартных сериях не- много. Отечественные серии предлагают микросхемы ЛП5 (че- тыре двухвходовых элемента с выходом 2С), ЛЛЗ и ЛИ 12, отли- чающиеся от ЛП5 выходом ОК. Слишком уж специфическая функция реализуется этими элементами. Исключающее ИЛИ Исключающее ИЛИ-НЕ Рис. 2.27. Обозначения элементов Исключающее ИЛИ: зарубежные (слева) и отечественные (справа). С точки зрения математики, элемент Исключающее ИЛИ вы- полняет операцию так называемого суммирования по модулю 2. Поэтому эти элементы также называются сумматорами по модулю два. Как уже отмечалось в предыдущей главе, обозначается сумми- рование по модулю 2 знаком плюса, заключенного в кружок. Основное применение элементов Исключающее ИЛИ, прямо следующее из таблицы истинности, состоит в сравнении двух входных сигналов. В случае когда на входы приходят две еди- ницы или два нуля (сигналы совпадают), на выходе формирует-
76 Глава 2 ся нуль (см. табл. 2.5). Обычно при таком применении на один вход элемента подается постоянный уровень, с которым сравни- вается изменяющийся во времени сигнал, приходящий на дру- гой вход. Но значительно чаще для сравнения сигналов и кодов применяются специальные микросхемы компараторов кодов, которые будут рассмотрены в следующей главе. В качестве сумматора по модулю 2 элемент Исключающее ИЛИ используется также в параллельных и последовательных делителях по модулю 2, предназначенных для вычисления цик- лических контрольных сумм. Но подробно эти схемы будут рас- смотрены в гл. 8. Вх. Упр. =1---- Вых. Рис. 2.28. Элемент Исключающее ИЛИ как управляемый инвертор. Важное применение элементов Исключающее ИЛИ — уп- равляемый инвертор (рис. 2.28). В этом случае один из входов элемента используется в качестве управляющего, а на другой вход элемента поступает информационный сигнал. Если на управляющем входе единица, то входной сигнал инвертируется, если же нуль — не инвертируется. Чаще всего управляющий сигнал задается постоянным уровнем, определяя режим работы элемента, а информационный сигнал является импульсным. То есть элемент Исключающее ИЛИ может изменять полярность входного сигнала или фронта, а может и не изменять в зависи- мости от управляющего сигнала. В случае когда имеется два сигнала одинаковой полярности (положительные или отрицательные), и при этом их одновре- менный приход исключается, элемент Исключающее ИЛИ может быть использован для смешивания этих сигналов (рис. 2.29). При любой полярности входных сигналов выходные сигналы элемента будут положительными. При положительных входных сигналах элемент Исключающее ИЛИ будет работать как элемент 2ИЛИ, а при отрицательных входных сигналах он будет заменять элемент 2И-НЕ. Такие замены могут быть по-
Применение логических элементов 77 лезны в тех случаях, когда в схеме остаются неиспользованны- ми некоторые элементы Исключающее ИЛИ. Правда, при этом надо учитывать, что задержка распространения сигнала в эле- менте Исключающее ИЛИ обычно несколько больше (примерно в 1,5 раза), чем задержка распространения в простейших эле- ментах И, И-НЕ, ИЛИ, ИЛИ-НЕ. Вх.1 Вх.2 Вых. 1----- Вых. Рис. 2.29. Применение элемента Исключающее ИЛИ для смешивания двух не- одновременных сигналов. Еще одно важнейшее применение элемента Исключающее ИЛИ — формирование коротких импульсов по любому фронту входного сигнала (рис. 2.30). В данном случае не важно, поло- жительный фронт входного сигнала или отрицательный, на вы- ходе все равно формируется положительный импульс. Входной сигнал задерживается с помощью конденсатора или цепочки элементов, а затем исходный сигнал и его задержанная копия поступают на входы элемента Исключающее ИЛИ. В обеих схемах в качестве элементов задержки используются также двухвходовые элементы Исключающее ИЛИ в неинвертирую- щем включении (на неиспользуемый вход подается нуль). В ре- зультате такого преобразования можно говорить об удвоении частоты входного сигнала, так как выходные импульсы следуют вдвое чаще, чем входные. Вх. | | Вх- зад ; | п Вых. П П Рис. 2.30. Выделение фронтов входного сигнала с помощью элемента Исклю- чающее ИЛИ.
78 Глава 2 Данную особенность элементов Исключающее ИЛИ надо учитывать в том случае, когда на оба входа элемента поступают одновременно изменяющиеся сигналы. При этом на выходе элемента возможно появление коротких паразитных импульсов по любому из фронтов входных сигналов. Исключить их влия- ние на дальнейшую схему можно, например, с помощью син- хронизации, подобной рассмотренной в предыдущем разделе. 2,5. Сложные логические элементы Помимо простейших логических элементов, рассмотренных в предыдущих разделах, в состав стандартных серий входит и не- сколько более сложных логических элементов. Они представ- ляют собой несложную комбинацию из простейших логических элементов. От более сложных комбинационных микросхем, ко- торым будет посвящена следующая глава, эти элементы отли- чаются именно очевидной сводимостью к простейшим элемен- там. Поэтому в справочниках обычно даже не приводятся таб- лицы истинности этих элементов. Вх.1 — & — 1 Вх.2 — г Вых. Вх.З — & Вх.4 — Рис. 2.31. Логический элемент ЛР1 и его эквивалентная схема. Типичный пример сложного логического элемента — ЛР1. В корпусе микросхемы содержится два элемента, каждый из кото- рых представляет собой комбинацию из двух элементов 2И и одно-
Применение логических элементов 79 го элемента 2ИЛИ-НЕ (рис. 2.31). По такому же принципу строятся и другие микросхемы ЛР. Разница между ними только в количестве элементов И и в количестве входов этих элементов (рис. 2.32). Не- которые из микросхем ЛР (ЛР1, ЛРЗ) допускают подключение к специальным входам микросхем расширителей ЛД хотя такое расширение применяется на практике довольно редко. Микросхема Рис. 2.33. Примеры использования элементов ЛР1. На рис. 2.33 приведено несколько примеров наиболее типичных применений микросхемы ЛР1. Самое распространенное ее исполь- зование (а) состоит в организации двухканального мультиплекси- рования, то есть в переключении сигналов с двух входов на один выход. При этом один из входов каждого из элементов 2И исполь- зуется в качестве информационного, а другой вход — в качестве разрешающего. Вариант этого включения (б) — использование од- ного управляющего входа переключения каналов и дополнитель- ного инвертора. При единице на управляющем входе работает верхний канал, при нуле — нижний. Еще один вариант использо- вания элемента ЛР1 (в) — смешивание двух отрицательных вход- ных сигналов с возможностью разрешения/запрета выходного сиг- нала. Наконец, последний показанный на рисунке вариант (г) — смешивание двух положительных сигналов, один из которых мо- жет быть разрешен или запрещен. То есть такое объединение в од- ном элементе функций И и ИЛИ довольно удобно. На других элементах ЛР можно строить более сложные схемы. Например, элемент ЛР9 позволяет построить четырехканальный мультиплексор, так как в его структуру входят четыре элемента И и элемент 4ИЛИ-НЕ. Однако в большинстве случаев примене- ние элементов ЛР для мультиплексирования оказывается не слиш- ком удобным, так как в стандартных сериях имеются специальные микросхемы мультиплексоров с более удобным управлением.
80 Глава 2 При необходимости элементы ЛР1 могут использоваться в качестве более простых элементов 2И-НЕ и 2ИЛИ-НЕ (рис. 2.34). Элемент 2ИЛИ-НЕ получается при попарном объединении входов. Элемент 2И-НЕ получается при отключении половины схемы путем подачи нулей на два входа. При желании можно, конечно, свести элемент ЛР даже к простому инвертору, но это, наверное, уже недопустимая роскошь. Рис. 2.34. Использование элементов ЛР в качестве элементов 2И-НЕ и 2ИЛИ-НЕ. К сложным логическим элементам помимо ЛР можно отне- сти также и элементы И-НЕ с выходом ЗС (например, ЛА 17 — 4И-НЕ, ЛА 19 — 12И-НЕ). Их можно рассматривать как комби- нацию обычного элемента И-НЕ и выходного буфера с выходом ЗС. Наличие дополнительного управляющего входа -EZ и выход ЗС создают принципиально новые возможности применения этих элементов. Например, их можно использовать для работы на мультиплексированную или двунаправленную линию, при этом они еще и выполняют функцию И-НЕ над входными сиг- налами. Но на практике значительно чаще элемент ЛА 19 ис- пользуют как самый обычный элемент 12И-НЕ с выходом 2С, для чего на управляющий вход -EZ постоянно подается сигнал логического нуля. Среди элементов И, ИЛИ, ИЛИ-HE элементы с выходом ЗС отсутствуют. 2.6. Триггеры Шмитта Триггеры Шмитта представляют собой специфические логиче- ские элементы, специально рассчитанные на работу с входными аналоговыми сигналами. Они предназначены для преобразова- ния входных аналоговых сигналов в выходные цифровые сигна-
Применение логических элементов 81 лы. Появление таких микросхем связано в первую очередь с не- обходимостью восстановления формы цифровых сигналов, ис- каженных в результате прохождения по линиям связи. Фронты таких сигналов оказываются пологими, в результате чего форма сигналов вместо прямоугольной может стать близкой к треуголь- ной или синусоидальной. К тому же сигналы, передаваемые на большие расстояния, сильно искажаются шумами и помехами. Для восстановления их формы в исходном виде и устранения влияния помех и шумов как раз и предназначены триггеры Шмитта. На первом и втором уровнях представления (логическая мо- дель и модель с временными задержками) триггеры Шмитта представляют собой обычные логические элементы, которые с определенной задержкой распространения выполняют логиче- скую функцию над входными цифровыми сигналами. Но на третьем уровне представления их отличие от обычных логиче- ских элементов очень существенно. ^вых UBbIX Uoh------- Uqh------—*— Uol Uol Unop ^cc UBX Unop2 UnOpi Ucc UBX Рис. 2.35. Передаточные характеристики обычного инвертора и триггера Шмитта с инверсией. Если построить график зависимости выходного напряжения элемента от входного (передаточную характеристику), то для триггера Шмитта он будет гораздо сложнее, чем для обычного элемента (рис. 2.35). В случае обычного элемента с инверсией (а) при входных напряжениях ниже определенного порога срабатывания Unop выходной сигнал имеет высокий уровень, а при входных напря- жениях выше этого порога Unop — низкий уровень. При этом не имеет значения, возрастает входное напряжение или убывает. А в случае триггера Шмитта с инверсией (б) принципиально как раз направление изменения сигнала. При возрастании вход-
82 Глава 2 ного сигнала от нуля до напряжения питания порог срабатыва- ния будет одним (Unopi), а при уменьшении сигнала от напряже- ния питания до нуля порог срабатывания будет другим (Unop2), причем Unopi > UnOp2. В результате на графике образуется свое- образная петля. Выходной сигнал как бы запаздывает переклю- чаться при возврате входного сигнала к исходному уровню. Это называется эффектом гистерезиса (запаздывания). Наличие гистерезиса приводит к тому, что любой шум, лю- бые помехи с амплитудой, меньшей величины (Unopi - Unop2), от- секаются. А любые фронты входного сигнала, даже самые поло- гие, преобразуются в крутые фронты выходного сигнала. Глав- ное — чтобы амплитуда входного сигнала была большей, чем (Unopi - Unop2). На рис. 2.36 показано, как будет реагировать на сигнал с пологими фронтами и с шумами обычный инвертор и триггер Шмитта с инверсией. Рис. 2.36. Реакция на искаженный входной сигнал инвертора (слева) и тригге- ра Шмитта с инверсией (справа). В стандартные серии цифровых микросхем входят триггеры Шмитта, представляющие собой инверторы (ТЛ2 — 6 инверто- ров), элементы 2И-НЕ (ТЛЗ — 4 элемента) и элементы 4И-НЕ (ТЛ1 — 2 элемента). Пороговые напряжения составляют для всех этих микросхем около 1,7 В (Unopi) и около 0,9 В (UnoP2)- Графическое обозначение триггера Шмитта представляет собой
Применение логических элементов 83 упрощенное изображение его передаточной характеристики с гистерезисом (рис. 2.37). Наиболее распространенное применение триггеров Шмит- та — это формирователь сигнала начального сброса по включе- нию питания схемы. Необходимость такого сигнала сброса вы- звана тем, что при включении питания выходные сигналы сложных микросхем, имеющих внутреннюю память (например, регистров, счетчиков) могут принимать произвольные значения, что не всегда удобно. Для приведения их в необходимое состоя- ние (чаще всего — для установки их в нуль) как раз и призван сигнал начального сброса. Рис. 2.37. Триггеры Шмитта. R1 2 кОм Вых. 100 мкФ Рис. 2.38. Формирователь импульса начальной установки по включению пита- ния. Для формирования сигнала начального сброса используется простая RC-цепочка, причем конденсатор берется с большой емкостью. Напряжение на конденсаторе при включении пита- ния нарастает медленно, в результате чего на выходе триггера Шмитта формируется положительный импульс (рис. 2.38). Ис- пользовать для этого обычный инвертор не рекомендуется. Точно так же триггеры Шмитта рекомендуется применять во всех случаях, когда с помощью емкости формируется сигнал с пологими, затянутыми фронтами. В отличие от обычных логи-
84 Глава 2 ческих элементов триггеры Шмитта всегда обеспечивают на- дежную и стабильную работу. Правда, надо учитывать, что триггеры Шмитта имеют несколько большую задержку, чем обычные логические элементы. Еще одно применение триггера Шмитта — построение гене- раторов импульсов. В отличие от генераторов на обычных инвер- торах (см. раздел 2.1) в данном случае схема получается гораздо проще: нужен всего лишь один инвертирующий триггер Шмитта, один резистор (с номиналом порядка сотен Ом) и один конденса- тор (рис. 2.39). При этом очень удобно, что конденсатор одним выводом присоединен к общему проводу, к «земле». Это позволя- ет применять электролитические конденсаторы большой емкости, а также переменные конденсаторы. Использование двухвходовых триггеров Шмитта дает возможность легко разрешать или запре- щать генерацию с помощью управляющего сигнала Разр. При уровне логической единицы на входе Разр. генерация идет, при уровне логического нуля генерации нет. Разр. Рис. 2.39. Управляемый генератор на триггере Шмитта. Разр. Вых. Нестандартные триггеры Шмитта можно строить также на основе самых обычных логических элементов с обратной свя- зью через резисторы. При этом путем подбора номиналов этих резисторов можно выбирать значения пороговых напряжений триггера Шмитта. Для примера на рис. 2.40 показана схема триггера Шмитта на инверторах, работающая с входными сигналами, симметрич- ными относительно нулевого уровня. Такие сигналы могут быть, например, в передающем кабеле с трансформаторной раз- вязкой. В данном случае триггер Шмитта не только позволяет восстановить искаженную форму сигнала, но еще и усиливает сигнал, а также сдвигает его уровни до значений стандартных нуля и единицы.
Применение логических элементов 85 Но чаще всего вполне хватает возможностей стандартных триггеров Шмитта, которые не требуют включения внешних элементов и имеют гарантированные характеристики. R291K DD1 К555ЛН1 Рис. 2.40. Триггер Шмитта, построенный на обычных логических элементах. Наконец, последнее применение триггеров Шмитта, которое мы здесь рассмотрим, состоит в подавлении так называемого дребезга контактов. Дело в том, что любой механический кон- такт (в кнопках, тумблерах, переключателях и т. д.) не замыка- ется и не размыкается сразу, мгновенно. Любое замыкание и размыкание сопровождается несколькими быстрыми замыка- ниями и размыканиями, приводящими к появлению паразитных коротких импульсов, которые могут нарушить работу дальней- шей цифровой схемы. Триггер Шмитта с RC-цепочкой на входе позволяет устранить этот эффект (рис. 2.41). Рис. 2.41. Дребезг контактов (вверху) и его подавление с помощью триггера Шмитта (внизу).
86 Глава 2 Конденсатор заряжается и разряжается довольно медленно, в результате чего короткие импульсы подавляются и не прохо- дят на выход триггера Шмитта. Номинал верхнего по схеме резистора должен в данном случае быть в 6-7 раз больше но- минала нижнего, чтобы резистивный делитель при замкнутом тумблере давал на входе триггера Шмитта уровень логического нуля. Сопротивления резисторов должны быть порядка сотен ом — единиц килоом. Емкость конденсатора может выбираться в широком диапазоне и зависит от того, какова продолжитель- ность дребезга контактов конкретного тумблера.
Глава 3 ПРИМЕНЕНИЕ КОМБИНАЦИОННЫХ МИКРОСХЕМ Комбинационные микросхемы выполняют более сложные функции, чем простые логические элементы. Их входы объеди- нены в функциональные группы и не являются полностью взаи- мозаменяемыми. Например, любые два входа логического эле- мента И-НЕ совершенно спокойно можно поменять местами, от этого выходной сигнал никак не изменится, а для комбинацион- ных микросхем это невозможно, так как у каждого входа своя особая функция. Объединяет комбинационные микросхемы с логическими элементами то, что и те и другие не имеют внутренней памяти. То есть уровни их выходных сигналов всегда однозначно опре- деляются текущими уровнями входных сигналов и никак не свя- заны с предыдущими значениями входных сигналов. Любое из- менение входных сигналов обязательно изменяет состояние вы- ходных сигналов. Именно поэтому логические элементы иногда также называют комбинационными микросхемами в отличие от последовательных (или последовательностных) микросхем, ко- торые имеют внутреннюю память и управляются не уровнями входных сигналов, а их последовательностями. Строго говоря, все комбинационные микросхемы построены внутри из простейших логических элементов, и эта их внутрен- няя структура часто приводится в справочниках. Но для разра- ботчика цифровой аппаратуры эта информация обычно лишняя, ему достаточно знать только таблицу истинности, только прин- цип преобразования входных сигналов в выходные, а также ве- личины задержек между входами и выходами и уровни входных и выходных токов и напряжений. Внутренняя же структура важна для разработчиков микросхем, а также в тех редчайших случаях, когда надо построить новую комбинационную микро- схему из микросхем простых логических элементов. Состав набора комбинационных микросхем, входящих в стандартные серии, был определен исходя из наиболее часто
88 Глава 3 встречающихся задач. Требуемые для этого функции реализо- ваны в комбинационных микросхемах наиболее оптимально, с минимальными задержками и минимальным потреблением мощности. Поэтому пытаться повторить эту уже проделанную однажды работу не стоит. Надо просто уметь грамотно приме- нять то, что имеется. 3.1. Дешифраторы и шифраторы Функции дешифраторов и шифраторов понятны из их названий. Дешифратор преобразует входной двоичный код в номер вы- ходного сигнала (дешифрирует код), а шифратор преобразует номер входного сигнала в выходной двоичный код (шифрует номер входного сигнала). Количество выходных сигналов (и со- ответствующих им выходов) дешифратора и входных сигналов (и соответствующих им входов) шифратора равно количеству возможных состояний двоичного кода (входного кода у дешиф- ратора и выходного кода у шифратора), то есть 2П, где п — раз- рядность двоичного кода (рис. 3.1). Микросхемы дешифраторов обозначаются на схемах буквами DC (от английского Decoder), а микросхемы шифраторов — CD (от английского Coder). Рис. 3.1. Функции дешифратора (слева) и шифратора (справа). Активным всегда является только один выход дешифратора, причем номер этого выхода (и соответствующего ему сигнала) однозначно определяется входным кодом. Выходной код шиф- ратора однозначно определяется номером входного сигнала. Рассмотрим подробнее функцию дешифратора. В стандартные серии входят дешифраторы на 4 выхода (2 разряда входного кода), на 8 выходов (3 разряда входного ко- да) и на 16 выходов (4 разряда входного кода). Они обозначают- ся соответственно как 2-4, 3-8, 4-16. Различаются микросхемы дешифраторов входами управления (разрешения/запрета вы-
Применение комбинационных микросхем 89 ходных сигналов), а также типом выхода: 2С или ОК. Выходные сигналы всех дешифраторов имеют отрицательную полярность. Входы, на которые поступает входной код, называют часто ад- ресными входами. Обозначают эти входы 1, 2, 4, 8, где число соответствует весу двоичного кода (1 — младший разряд, 2 — следующий разряд и т. д.) или АО, Al, А2, АЗ. В отечественных сериях микросхемы дешифраторов обозначаются буквами ИД. На рис. 3.2 показаны три наиболее типичные микросхемы де- шифраторов. 1 DC О' 2 1' 2' 3 1 DC О' 2' С 3 ИД14 идз Рис. 3.2. Примеры микросхем дешифраторов. Код на входах 1, 2, 4, 8 определяет номер активного выхода (вход 1 соответствует младшему разряду кода, вход 8 — стар- шему разряду кода). Входы разрешения Cl, С2, СЗ объединены по функции И и имеют указанную на рисунке полярность. В ка- честве примера ниже приведена таблица истинности дешифра- тора ИД7 (3-8) (табл. 3.1). Существуют и дешифраторы 4-10 (например, ИД6), которые обрабатывают не все возможные 16 состояний входного кода, а только первые 10 из них. Первые три строки таблицы истинности соответствуют за- прету выходных сигналов. Разрешением выхода будет единица на входе С1 и нули на входах С2 и СЗ. Символ «X» обозначает безразличное состояние данного входа (неважно, нуль или еди- ница). Нижние восемь строк соответствуют разрешению выход- ных сигналов. Номер активного выхода (на котором формиру- ется нулевой сигнал) определяется кодом на входах 1,2,4, при- чем вход 1 соответствует младшему разряду кода, а вход 4 — старшему разряду кода.
90 Г лава 3 Таблица 3.1. Таблица истинности дешифратора 3—8 (ИД7) С1 -С2 Входы 2 1 0 1 Выходы 6 7 -СЗ 4 2 3 4 5 0 X X X X X 1 1 1 1 1 1 1 1 X 1 X X X X 1 1 1 1 1 1 1 1 X X 1 X X X 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 0 1 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 Наиболее типичное применение дешифраторов состоит именно в дешифрировании входных кодов, при этом входы С используются как стробирующие, управляющие сигналы. Но- мер активного (то есть нулевого) выходного сигнала показыва- ет, какой входной код поступил. Если нужно дешифровать код с большим числом разрядов, то можно объединить несколько микросхем дешифраторов (пример показан на рис. 3.3). Рис. 3.3. Увеличение разрядов дешифратора. При этом старшие разряды кода подаются на основной дешифратор, выходы которого разрешают работу нескольких дополнительных дешифраторов. На объединенные входы этих дополнительных дешифраторов подаются младшие разряды входного кода. Используя пять микросхем дешифраторов 2-4,
Применение комбинационных микросхем 91 можно получить дешифратор 4-16, как показано на рисунке (хотя лучше, конечно, взять готовую микросхему). Точно так же на де- вяти микросхемах 3-8 можно реализовать дешифратор 6—64, а на семнадцати микросхемах 4-16 — дешифратор 8-256. Еще одно распространенное применение дешифраторов — селекция (выбор) заданных входных кодов. Появление отрица- тельного сигнала на выбранном выходе дешифратора будет оз- начать поступление на вход интересующего нас кода. В данном случае увеличивать число разрядов входного селектируемого кода гораздо проще, чем в предыдущем (см. рис. 3.3). Напри- мер, две микросхемы 4-16 позволяют селектировать 8-разряд- ный код (рис. 3.4). В примере на рисунке селектируется 16-рич- ный код 2А (двоичный код 0010 1010). При этом один дешифра- тор работает с четырьмя младшими разрядами кода, а другой — с четырьмя старшими разрядами. Объединяются дешифраторы так, что один из них разрешает работу другого по входам -С 1 и -С2. Применяя механические переключатели выходов дешиф- раторов (тумблеры, перемычки), можно легко изменять код, селектируемый данной схемой. Рис. 3.4. Селектирование кода на дешифраторах. Еще одно важное применение дешифраторов состоит в пере- коммутации одного входного сигнала на несколько выходов. Или, как еще можно сказать, дешифратор в данном случае выступает в качестве демультиплексора входных сигналов, который позволя- ет разделить входные сигналы, приходящие в разные моменты
92 Глава 3 времени, на одну входную линию (мультиплексированные сигна- лы). При этом входы 1, 2, 4, 8 дешифратора используются в каче- стве управляющих, адресных, определяющих, на какой выход пе- реслать пришедший в данный момент входной сигнал (рис. 3.5). А сам сигнал подается на один из входов С и пересылается на за- данный выход. Если у микросхемы имеется несколько строби- рующих входов С, то оставшиеся входы С можно использовать в качестве разрешающих работу дешифратора. Код Код номера V J Рис. 3.5. Включение дешифратора как демультиплексора. Как и для любых других цифровых микросхем, для дешиф- раторов наиболее критична ситуация одновременного или почти одновременного изменения входных сигналов. Например, если стробы С постоянно разрешают работу дешифратора, то в мо- мент изменения входного кода на любом выходе дешифратора могут появиться паразитные отрицательные короткие импуль- сы. Это может быть связано как с неодновременным выставле- нием разрядов кода (из-за несовершенства микросхем источни- ков кода или из-за разных задержек распространения по линиям связи), так и с внутренними задержками самих микросхем де- шифраторов. Рис. 3.6. Стробирование выходных сигналов дешифратора. Входной код
Применение комбинационных микросхем 93 Для исключения таких паразитных импульсов можно при- менить синхронизацию с помощью стробирующих сигналов. Используемый для этого сигнал С должен начинаться после те- кущего изменения кода, а заканчиваться до следующего изме- нения кода. То есть должен быть реализован вложенный цикл. На рис. 3.6 показано, как будет выглядеть выходной сигнал де- шифратора без стробирования и со стробированием. На втором уровне представления (модель с временными за- держками) нужно также учитывать то, что задержки дешифратора больше задержек простых логических элементов: примерно вдвое для входного кода и примерно в полтора раза для стробирующих входов. Если попытаться заменить дешифратор схемой на логиче- ских элементах, то такой дешифратор получится медленнее. Точ- ные величины задержек можно найти в справочниках. Дешифраторы, имеющие выходы типа ОК (ИД5, ИД10), удобно применять в схемах позиционной индикации на свето- диодах. На рис. 3.7 приведен пример реализации позиционного индикатора на микросхеме ИД5, которая представляет собой два дешифратора 2—4 с объединенными входами для подачи ко- да и стробами, позволяющими легко строить дешифратор 3-8. При этом старший разряд кода выбирает один из дешифраторов 2-4 (нуль соответствует верхнему по схеме дешифратору, а единица — нижнему). То есть в данном случае номер горящего светодиода равен входному коду дешифратора. Такая индика- ция называется позиционной. Выходы микросхем дешифраторов с ОК можно объединять между собой для реализации проводного ИЛИ (рис. 3.8.). Нуль на
94 Глава 3 объединенном выходе будет тогда, когда хотя бы на одном из вы- ходов вырабатывается нуль. При равномерном пошаговом нара- щивании входного кода (например, с помощью счетчика) такое решение позволяет формировать довольно сложные последова- тельности выходных сигналов. Правда, каждый выход дешифра- тора может использоваться для получения только одного выход- ного сигнала. Это ограничивает возможности таких схем. Рис. 3.8. Объединение выходов дешифраторов с ОК. Шифраторы применяются гораздо реже, чем дешифраторы. Это связано с более специфической областью их применения. Значительно меньше и выбор микросхем шифраторов в стан- дартных сериях. В отечественных сериях шифраторы имеют в названии буквы ИВ. Рис. 3.9. Микросхемы шифраторов. На рис. 3.9 показаны для примера две микросхемы шифра- торов: ИВ1 и ИВЗ. Первая имеет 8 входов и 3 выхода (шифра- тор 8-3), а вторая — 9 входов и 4 выхода (шифратор 9-4). Все входы шифраторов инверсные (активные входные сигналы — нулевые). Все выходы шифраторов тоже инверсные, то есть
Применение комбинационных микросхем 95 формируется инверсный код. Микросхема ИВ1 помимо 8 ин- формационных входов и 3 разрядов выходного кода (1, 2, 4) имеет инверсный вход разрешения -EI, выход признака прихода любого входного сигнала -GS, а также выход переноса -ЕО, по- зволяющий объединять несколько шифраторов для увеличения разрядности. Таблица истинности шифратора ИВ1 приведена ниже (табл. 3.2). Таблица 3.2. Таблица истинности шифратора ИВ1 Входы -GS Выходы -ЕО -EI 0 1 2 3 4 5 6 7 4 2 1 1 X X X X X X X X 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 X X X X X X X 0 0 0 0 0 1 0 X X X X X X 0 1 0 0 0 1 1 0 X X X X X 0 1 I 0 0 1 0 1 0 X X X X 0 1 1 1 0 0 1 1 I 0 X X X 0 1 1 1 1 0 1 0 0 1 0 X X 0 1 1 1 1 1 0 1 0 1 I 0 X 0 1 I 1 I 1 1 0 I 1 0 I 0 0 1 I 1 1 1 1 1 0 1 1 I 1 Из таблицы видно, что на выходах кода 1, 2, 4 формируется инверсный двоичный код номера входной линии, на который приходит отрицательный входной сигнал. При одновременном поступлении нескольких входных сигналов формируется вы- ходной код, соответствующий входу с наибольшим номером. То есть старшие входы имеют приоритет перед младшими. Поэто- му такой шифратор называется приоритетным. При отсутствии входных сигналов (вторая строчка таблицы) формируется вы- ходной код 111. Единичный сигнал -EI (первая строчка) запре- щает работу шифратора (все выходные сигналы устанавливают- ся в единицу). На выходе -GS вырабатывается нуль при приходе любого входного сигнала, что позволяет, в частности, отличить ситуацию прихода нулевого входного сигнала от ситуации от- сутствия любых входных сигналов. Выход -ЕО становится ак- тивным (нулевым) при отсутствии входных сигналов, но при разрешении работы шифратора сигналом -EI.
96 Глава 3 Стандартное применение шифраторов состоит в сокращении количества сигналов. Например, в случае шифратора ИВ1 ин- формация о восьми входных сигналах сворачивается в три вы- ходных сигнала. Это очень удобно, например, при передаче сигналов на большие расстояния. Правда, входные сигналы не должны приходить одновременно. На рис. 3.10 показаны стан- дартная схема включения шифратора и временные диаграммы его работы. Рис. 3.10. Стандартное включение шифратора. Инверсия выходного кода приводит к тому, что при приходе нулевого входного сигнала на выходе формируется не нулевой код, а код 111, то есть 7. Точно так же при приходе, например, третьего входного сигнала на выходе формируется код 100, то есть 4, а при приходе пятого выходного сигнала—код 010, то есть 2. Наличие у шифраторов входов -EI и -ЕО позволяет увеличи- вать количество входов и разрядов шифратора, правда, с помо- щью дополнительных элементов на выходе. На рис. 3.11 пока- зан пример построения шифратора 16—4 на двух микросхемах шифраторов ИВ1 и трех элементах 2И-НЕ (ЛАЗ). Рис. 3.11. Шифратор 16—4 на двух шифраторах 8—3.
Применение комбинационных микросхем 97 Одновременное или почти одновременное изменение сигна- лов на входе шифратора приводит к появлению периодов неоп- ределенности на выходах. Выходной код может на короткое время принимать значение, не соответствующее ни одному из входных сигналов. Поэтому в тех случаях, когда входные сиг- налы могут приходить одновременно, необходима синхрониза- ция выходного кода, например, с помощью разрешающего сиг- нала -EI, который должен приходить только тогда, когда со- стояние неопределенности уже закончилось. Задержка шифратора от входа до выхода кода примерно в полтора раза превышает задержку логического элемента, а за- держка до выхода -GS — примерно в два раза больше. Точные величины задержек микросхем можно найти в справочниках. 3.2. Мультиплексоры Мультиплексоры (английское Multiplexer) предназначены для поочередной передачи на один выход одного из нескольких входных сигналов, то есть для их мультиплексирования. Коли- чество мультиплексируемых входов называется количеством каналов мультиплексора, а количество выходов называется чис- лом разрядов мультиплексора. Например, 2-канальный 4-разряд- ный мультиплексор имеет 4 выхода, на каждый из которых мо- жет передаваться один из двух входных сигналов. А 4-каналь- ный 2-разрядный мультиплексор имеет 2 выхода, на каждый из которых может передаваться один из четырех входных сигна- лов. Число каналов мультиплексоров, входящих в стандартные серии, составляет от 2 до 16, а число разрядов — от 1 до 4, при- чем чем больше каналов имеет мультиплексор, тем меньше у него разрядов. Управление работой мультиплексора (выбор номера канала) осуществляется с помощью входного кода адреса. Например, для 4-канального мультиплексора необходим 2-разрядный уп- равляющий (адресный) код, а для 16-канального — 4-разрядный код. Разряды кода обозначаются 1, 2, 4, 8 или АО, Al, А2, АЗ. Мультиплексоры бывают с выходом 2С и с выходом ЗС. Выхо- ды мультиплексоров бывают прямыми и инверсными. Выход ЗС позволяет объединять выходы мультиплексоров с выходами других микросхем, а также получать двунаправленные и муль- типлексированные линии. Некоторые микросхемы мультиплек- 4 - 4589
98 Глава 3 соров имеют вход разрешения/запрета С (другое обозначение — S), который при запрете устанавливает на прямом выходе нуле- вой уровень. На рис. 3.12 показаны для примера несколько микросхем мультиплексоров из состава стандартных серий. В отечественных сериях мультиплексоры имеют код типа микросхемы КП. На схемах микросхемы мультиплексоров обозначаются буквами MS. Рис. 3.12. Примеры микросхем мультиплексоров. Ниже в качестве примера приведена таблица истинности одноразрядного 8-канального мультиплексора с выходами ЗС (КП15) (табл. 3.3). Таблица 3.3. Таблица истинности 8-канального мультиплексора Входы Выходы 4 2 1 -EZ Q -Q X X X 1 Z Z 0 0 0 0 DO -DO 0 0 1 0 D1 -DI 0 1 0 0 D2 -D2 0 1 1 0 D3 -D3 I 0 0 0 D4 -D4 I 0 I 0 D5 -D5 1 1 0 0 D6 -D6 1 I 1 0 D7 -D7
Применение комбинационных микросхем 99 В таблице сигналы на входах 0...7 обозначены D0...D7, Q — прямой выход, -Q — инверсный выход, Z — третье состояние выхода. При единице на входе -EZ оба выхода находятся в третьем состоянии. При нуле на входе -EZ выходной сигнал на прямом выходе повторяет состояние входного сигнала, номер которого задается входным кодом на входах 1, 2, 4. Сигнал на инверсном выходе противоположен по полярности сигналу на прямом выходе. На рис. 3.13 приведена временная диаграмма работы 4-ка- нального мультиплексора. В зависимости от входного кода на выход передается один из четырех входных сигналов. При за- прещении работы на выходе устанавливается нулевой сигнал вне зависимости от входных сигналов. Рис. 3.13. Временная диаграмма работы 4-канального мультиплексора с раз- решением. Микросхемы мультиплексоров можно объединять для уве- личения количества каналов. Например, два 8-канальных муль- типлексора легко объединяются в 16-канальный с помощью ин- вертора на входах разрешения и элемента 2И-НЕ для смешива- ния выходных сигналов (рис. 3.14). Старший разряд кода будет при этом выбирать один из двух мультиплексоров. Точно так же из двух 16-канальных мультиплексоров можно сделать 32- канальный. Если нужно большее число каналов, то необходимо вместо инвертора включать дешифратор, на который подаются старшие разряды кода. Выходные сигналы дешифратора будут выбирать один из мультиплексоров. 4*
100 Глава 3 Рис. 3.14. Объединение мультиплексоров для увеличения количества каналов. Состояния неопределенности, сопровождающиеся коротки- ми паразитными импульсами, могут возникать на выходе муль- типлексоров при почти одновременном изменении входных сигналов. Здесь возможны две ситуации. Во-первых, управляю- щий код может переключиться сразу после изменения переда- ваемого в данный момент на выход входного сигнала или сразу перед изменением входного сигнала, который будет передавать на выход следующий код. Во-вторых, сигналы (разряды) управ- ляющего кода могут переключаться не одновременно, что при- ведет к кратковременной передаче на выход входного сигнала, не соответствующего ни одному из значений кода. В любом случае в момент переключения каналов сигнал на выходе муль- типлексора не определен (рис. 3.15). Улр. км )( ft * Рис. 3.15. Неопределенные состояния на выходе мультиплексора. Чтобы избежать состояния неопределенности, лучше всего задавать состояние управляющего кода еще до начала работы схемы (до прихода входных сигналов) и в дальнейшем его не менять. Если же это невозможно, то необходима синхронизация, стробирование выходного сигнала, то есть его разрешение толь- ко тогда, когда все переходные процессы, связанные с измене- нием кода, уже закончились. Правда, обычно применять стро-
Применение комбинационных микросхем 101 бирование довольно непросто, так как мультиплексор, как пра- вило, должен без изменений передавать любой входной сигнал. Задержки выходного сигнала мультиплексора по входам управляющего (адресного) кода примерно в два раза превыша- ют задержки логических элементов, а по информационным вхо- дам — примерно в полтора раза. Точные величины задержек можно найти в справочниках. 3.3. Компараторы кодов Микросхемы компараторов кодов (английское Comparator) применяются для сравнения двух входных кодов и выдачи на выходы сигналов о результатах этого сравнения (о равенстве или неравенстве кодов). На схемах компараторы кодов обозна- чаются двумя символами равенства: «= =». Код типа микросхе- мы компаратора кода в отечественных сериях — СП. Примером микросхемы компаратора кодов может служить СП1 — четырехразрядный компаратор кодов, сравнивающий величины кодов и выдающий информацию о том, какой код больше, или о равенстве кодов (рис. 3.16). АО А1 А2 АЗ А>В А=В А<В ВО В1 В2 ВЗ А>В А=В А<В Рис. 3.16. Четырехразрядный компаратор кодов СП1 (два варианта обозначе- ния). Помимо восьми входов для сравниваемых кодов (двух четы- рехразрядных кодов, обозначаемых A0...A3 и ВО...ВЗ) компаратор СП1 имеет три управляющих входа для наращивания разрядности (А>В, А<В, А=В) и три выхода результирующих сигналов (А>В, А<В, А=В). Для удобства на схемах управляющие входы и выходы иногда обозначают просто «>», «<» и «=». Нулевые разряды кодов (АО и ВО) — младшие, третьи разряды (АЗ и ВЗ) — старшие.
102 Глава 3 Таблица 3.4. Таблица истинности компаратора СП1 Входы сравниваемых кодов АЗ,ВЗ А2,В2 А1,В1 АО,ВО Входы наращивания А>В А<В А=В Выходы А>В А<В А=В АЗ>ВЗ X X X X X X 1 0 0 АЗ<ВЗ X X X X X X 0 1 0 АЗ=ВЗ А2>В2 X X X X X 1 0 0 АЗ=ВЗ А2<В2 X X X X X 0 1 0 АЗ=ВЗ А2=В2 А1>В1 X X X X 1 0 0 АЗ=ВЗ А2=В2 А1<В1 X X X X 0 1 0 АЗ=ВЗ А2=В2 А1=В1 А0>В0 X X X 1 0 0 АЗ=ВЗ А2=В2 А1=В1 А0<В0 X X X 0 1 0 АЗ=ВЗ А2=В2 А1=В1 А0=В0 1 0 0 1 0 0 АЗ=ВЗ А2=В2 А1=В1 А0=В0 0 1 0 0 1 0 АЗ=ВЗ А2=В2 А1=В1 А0=В0 X X 1 0 0 1 АЗ=ВЗ А2=В2 А1=В1 А0=В0 1 1 0 0 0 0 АЗ=ВЗ А2=В2 А1=В1 А0=В0 0 0 0 1 1 0 Таблица истинности компаратора кодов (табл. 3.4) кажется на первый взгляд довольно сложной, но на самом деле все просто. Если используется одиночная микросхема, то для ее правиль- ной работы достаточно подать единицу на вход А=В, а состояния входов А<В и А>В не важны: на них можно подать как нуль, так и единицу. Назначение выходов понятно из их названия, а поляр- ность выходных сигналов положительная (активный уровень — единица). Если микросхемы компараторов кодов каскадируются (объединяются) для увеличения числа разрядов сравниваемых ко- дов, то выходные сигналы микросхемы, обрабатывающей младшие разряды кода, нужно подать на одноименные входы микросхемы, обрабатывающей старшие разряды кода (рис. 3.17). АО А1 А2 АЗ А>В А=В А<В ВО В1 В2 ВЗ А>В А=В А<В АО А1 А2 АЗ А>В А=В А<В ВО В1 В2 ВЗ А>В А=В А<В АО А1 А2 АЗ А>В А=В А<В ВО В1 В2 ВЗ А>В А=В А<В Рис. 3.17. Каскадирование компараторов кодов.
Применение комбинационных микросхем 103 В зарубежные стандартные серии входят также и 8-разряд- ные компараторы, сравнивающие два кода по величине (то есть имеющие выходы «=», <о» и «<»). Примером может служить микросхема SN74AS885. Одно из основных применений компараторов кодов состоит в селектировании входных кодов. В этом случае достаточно иметь информацию только о совпадении кодов на входах ком- паратора, а не о соотношении их величин. Интересующий нас код (эталонный) подается на один вход компаратора, а изме- няющийся код (входной) — на другой вход. Используется толь- ко выход равенства кодов А=В. Для подобных применений вы- пускаются и специальные компараторы, определяющие только совпадение кодов. Примерами могут служить 8-разрядные мик- росхемы SN74ALS520, SN74ALS521, DC102A фирмы Dionics (отечественный аналог — КР559СК1), а также 6-разрядная мик- росхема DM8136 фирмы National Semiconductors (отечествен- ный аналог — КР559СК2). Рис. 3.18. Селектирование 16-разрядных кодов. На рис. 3.18 показано применение компараторов SN74ALS521 для селектирования 16-разрядных кодов. Инверсный сигнал с вы- хода первой микросхемы подается на инверсный вход разреше- ния второй микросхемы, выходной сигнал которой (отрицатель- ный) говорит о совпадении входного и эталонного кодов.
104 Глава 3 Неопределенные состояния на выходах компараторов кодов могут возникать при любом изменении любого из двух входных кодов. Это связано с неодновременным изменением разрядов кодов (рис. 3.19). На всех выходах компаратора СП1 могут по- являться короткие паразитные импульсы. Чтобы устранить их влияние на дальнейшую часть схемы, применяется синхрониза- ция и стробирование. Но для этого надо точно знать момент из- менения входных кодов, что далеко не всегда возможно. Рис. 3.19. Неопределенные состояния на выходах компаратора при изменении входных кодов. При применении компараторов надо также учитывать, что при каскадировании задержки микросхем суммируются, и объе- диненный компаратор, состоящий из п микросхем, будет в п раз медленнее одиночного. Задержки компараторов кодов по вхо- дам разрядов кодов примерно вчетверо больше задержек логи- ческих элементов, а по входам расширения — примерно втрое. Так что эти микросхемы довольно медленные по сравнению с другими комбинационными микросхемами. Точные значения задержек можно найти в справочниках. Рис. 3.20. Уменьшение задержки при каскадировании компараторов. Если нам важен только факт равенства или неравенства входных кодов, то увеличить быстродействие при объединении компараторов можно, если подавать их выходные сигналы на элемент И (рис. 3.20). В этом случае суммарная задержка схемы
Применение комбинационных микросхем 105 превысит задержку одного компаратора всего лишь на задержку элемента И. При применении компараторов с инверсным выхо- дом (например, SN74ALS521) нужно использовать элемент ИЛИ с нужным числом входов. При необходимости сравнения кодов не только на совпаде- ние, но еще и по величине, такого простого решения не сущест- вует. Но эта задача встречается гораздо реже. 3.4. Сумматоры Микросхемы сумматоров (английское Adder), как следует из их названия, предназначены для суммирования двух входных дво- ичных кодов. То есть выходной код равен арифметической сумме двух входных кодов. Например, если один входной код 0111 (число 7), а второй 0101 (число 5), то суммарный код на выходе будет 1100 (12=7+5). Сумма двух двоичных чисел с чис- лом разрядов N может иметь число разрядов (N+1). Например, при суммировании чисел 13(1101)иб(0110) получается число 19 (10011). Поэтому количество выходов сумматора на единицу больше количества разрядов входных кодов. Этот дополнитель- ный (старший) разряд называется выходом переноса. На схемах сумматоры обозначаются буквами SM. В отечест- венных сериях код, обозначающий микросхему сумматора, — ИМ. Сумматоры бывают одноразрядные (для суммирования двух одноразрядных чисел), двухразрядные (суммируют двухразряд- ные числа) и четырехразрядные (суммируют четырехразрядные числа). Чаще всего применяют именно 4-разрядные сумматоры. На рис. 3.21 показаны для примера 2-разрядный и 4-разрядный сумматоры. Микросхема ИМ6 отличается от ИМЗ только по- вышенным быстродействием и номерами используемых выво- дов микросхемы, функция же выполняется та же самая. Помимо выходных разрядов суммы и выхода переноса сум- маторы имеют вход расширения (другое название —вход пере- носа) С для объединения нескольких сумматоров с целью уве- личения разрядности. Если на этот вход приходит единица, то выходная сумма увеличивается на единицу, если же приходит нуль, то выходная сумма не увеличивается. Если используется одна микросхема сумматора, то на ее вход расширения С необ- ходимо подать нуль.
106 Глава 3 ИМЗ.ИМ6 Рис. 3.21. Примеры микросхем сумматоров. В качестве примера ниже приведена полная таблица истин- ности 2-разрядного сумматора ИМ2 (табл. 3.5). Как видно из таблицы, выходной 3-разрядный код (Р, SI, S0) равен сумме входных 2-разрядных кодов (А1, АО) и (В1, ВО), а также сигна- ла С. Нулевые разряды — младшие, первые разряды — стар- шие. Полная таблица истинности 4-разрядного сумматора будет чрезмерно большой, поэтому она не приводится. Но суть работы остается точно такой же, как и в случае 2-разрядного сумматора. Таблица 3.5. Таблица истинности микросхемы 2-разрядного сумматора ИМ2 Входы Выходы А1 АО В1 во р с=о S1 so р С=1 S1 so 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 1 0 0 1 1 0 I 1 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1
Применение комбинационных микросхем 107 Сумматоры могут использоваться также для суммирования чисел в отрицательной логике (когда логической единице соот- ветствует электрический нуль, и наоборот логическому нулю со- ответствует электрическая единица). Но в этом случае входной сигнал переноса С также становится инверсным, поэтому при ис- пользовании одной микросхемы сумматора на вход С надо подать электрическую единицу (высокий уровень напряжения). Инверс- ным становится и выходной сигнал переноса Р, низкий уровень напряжения на нем (электрический нуль) соответствует наличию переноса. То есть получается, что сумматор абсолютно одинаково работает как с положительной, так и с отрицательной логикой. Рассмотрим пример. Пусть нам надо сложить два числа 5 и 7 в отрицательной логике. Числу 5 в положительной логике соот- ветствует двоичный код 0101, а в отрицательной логике — код 1010. Числу 7 в положительной логике соответствует двоичный код 0111, а в отрицательной — код 1000. При подаче на вход сумматора кодов 1010 (десятичное число 10 в положительной логике) и 1000 (десятичное число 8 в положительной логике) получаем сумму 10+8=18, то есть код 10010 в положительной логике. С учетом входного сигнала переноса С=1 (то есть отсут- ствие входного переноса в отрицательной логике) выходной код сумматора получится на единицу больше: 18+1=19, то есть 10011. При отрицательной логике это будет соответствовать числу 01100, то есть 12 при отсутствии выходного переноса. В результате получили: 5+7=12. Сумматор может вычислять не только сумму, но и разность входных кодов, то есть работать вычитателем. Для этого вычи- таемое число надо просто поразрядно проинвертировать, а на вход переноса С подать единичный сигнал (рис. 3.22). Рис. 3.22. Четырехразрядный вычитатель на сумматоре ИМ6 и инверторах ЛН1.
108 Глава 3 Например, пусть нам надо вычислить разность между чис- лом 11 (1011) и числом 5 (0101). Инвертируем поразрядно число 5 и получаем 1010, то есть десятичное 10. Сумматор при сумми- ровании 11 и 10 даст 21, то есть двоичное число 10101. Если сигнал С равен 1, то результат будет 10110. Отбрасываем стар- ший разряд (выходной сигнал Р) и получаем разность ОНО, то есть 6. Еще пример. Пусть надо вычислить разность между числом 12 (1100) и числом 9 (1001). Инвертируем поразрядно 9, получа- ем ОНО, то есть десятичное 6. Находим сумму 12 и 6, получаем 18, а с учетом С = 1 получаем 19, то есть двоичное 10011. В че- тырех младших разрядах имеем 0011, то есть десятичное 3. Каскадировать сумматоры для увеличения разрядности очень просто. Сигнал с выхода переноса сумматора, обрабаты- вающего младшие разряды, нужно подать на вход переноса сумматора, обрабатывающего старшие разряды (рис. 3.23). При объединении трех 4-разрядных сумматоров получается 12-раз- рядный сумматор, имеющий дополнительный 13 разряд (выход переноса Р). КодА Код суммы Рис. 3.23. Каскадирование сумматоров ИМ6 для увеличения разрядности. Неопределенные состояния на выходах сумматора могут возникать при любом изменении любого из входных кодов (рис. 3.24). Выходной код суммы может принимать в течение ко- роткого времени значения, никак не связанные с входными кода- ми, а на выходе переноса могут появляться короткие паразитные импульсы. Это связано прежде всего с неодновременным измене- нием разрядов входных кодов. Чтобы избежать влияния этих не-
Применение комбинационных микросхем 109 определенных состояний на дальнейшую схему, необходимо пре- дусматривать синхронизацию или стробирование выходных сиг- налов. Но для этого надо иметь информацию о моментах измене- ния входных кодов, которая имеется далеко не всегда. Х Х м ! I « Г - Рис. 3.24. Неопределенные состояния на выходах сумматора при изменении входных кодов. Задержки сумматора ИМ6 от входов до выходов суммы при- мерно вдвое превышают задержку логического элемента, а от входов до выхода переноса — примерно в полтора раза. Задержки сумматора ИМЗ больше задержек ИМ6 почти вдвое. Поэтому в схемах, где важно быстродействие, лучше использовать ИМ6. Особенно это важно при каскадировании для увеличения разряд- ности, так как там задержки отдельных микросхем суммируются. Точные величины задержек можно найти в справочниках. 3.5. Преобразователи кодов Микросхемы преобразователей кодов (английское Converter) служат для преобразования входных двоичных кодов в выходные двоично-десятичные и наоборот — входных двоично-десятичных кодов в выходные двоичные. Они используются довольно редко, так как применение двоично-десятичных кодов ограничено узкой областью, например, они применяются в схемах многоразрядной десятичной индикации. К тому же при правильной организации схемы часто можно обойтись без преобразования в двоично- десятичный код, например, выбирая счетчики, работающие в двоично-десятичном коде. Преобразование двоично-десятичного кода в двоичный встречается еще реже. На схемах микросхемы преобразователей обозначаются бук- вами X/Y. В отечественных сериях преобразователи имеют обо- значения ПР.
ПО Глава 3 Кроме того, надо учесть, что любые преобразования парал- лельных кодов, даже самые экзотические, могут быть легко реа- лизованы на микросхемах постоянной памяти нужного объема. Обычно это намного удобнее, чем брать стандартные микро- схемы преобразователей кодов. В стандартные серии входят две микросхемы преобразова- телей кодов: ПР6 для преобразования двоично-десятичного кода в двоичный и ПР7 для преобразования двоичного кода в двоич- но-десятичный (рис. 3.25). Обе микросхемы имеют выходы ОК, поэтому к ним надо присоединять нагрузочные резисторы вели- чиной около 1 кОм, но для удобства в дальнейших схемах эти резисторы не показаны. Обе микросхемы имеют также вход разрешения выхода -ЕО, при нулевом уровне на котором все выходы активны, а при единичном — переходят в состояние единицы. Преобразователь ПР6 имеет дополнительные выходы А, В, С, не участвующие в основном преобразовании. ПР6 ПР7 Рис. 3.25. Микросхемы преобразователей кодов. Таблицы истинности преобразователей просты (табл. 3.6 и 3.7). Например, двоично-десятичный код без младшего разряда на входе ПР6 преобразуется в двоичный код без младшего раз- ряда на выходе ПР6. Младший разряд не участвует в преобразо- вании, он непосредственно передается со входа на выход. Одна микросхема ПР6 обрабатывает входные коды в диапазоне от О (двоично-десятичный код 00 000) до 39 (код 11 1001). Точно так же двоичный код без младшего разряда на входе ПР7 преобразуется в двоично-десятичный код без младшего разряда на выходе ПР7. Одна микросхема ПР7 может обрабаты- вать входные коды в диапазоне от 0 (двоичный код 000000) до 63 (код 111111). Младшие разряды входных кодов передаются на выход без обработки в обход микросхемы, так как они оди-
Применение комбинационных микросхем 111 наковые как в двоичном, так и в двоично-десятичном кодах. Простейшие схемы включения одиночных микросхем ПР6 и ПР7 приведены на рис. 3.26. Рис. 3.26. Простейшее включение одиночных преобразователей кода ПР6 и ПР7. Таблица 3.6. Таблица истинности преобразователя ПР6 Входы -ЕО 20 10 8 4 2 Выходы 32 16 8 4 2 1 X X X X X 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 1 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 0 0 1 1
112 Глава 3 Таблица 3.7. Таблица истинности преобразователя ПР7 -ЕО 32 Входы 2 40 Выходы 2 16 8 4 20 10 8 4 1 X X X X X 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 1 0 1 0 0 1 1 0 1 1 1 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 1 1 0 I 0 0 0 1 0 0 1 0 1 1 1 1 0 0 0 1 1 0 1 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 1 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 Каскадировать преобразователи ПР6 и ПР7 для увеличения разрядности также несложно. Для преобразования двоично- десятичных кодов от 0 до 99 достаточно двух микросхем ПР6 (рис. 3.27), а для преобразования двоичных кодов от 0 до 255
Применение комбинационных микросхем 113 требуется три микросхемы ПР7 (рис. 3.28). Если надо преобра- зовывать двоично-десятичные коды до 999, то понадобится 6 микросхем ПР6, а для преобразования двоичных кодов до 511 потребуется 4 микросхемы ПР7. На всех выходах микросхем необходимо включать нагрузочные резисторы. Рис. 3.27. Преобразователь двоично-десятичного кода от 0 до 99 в двоичный код. Рис. 3.28. Преобразователь двоичного кода от 0 до 255 в двоично-десятичный код. Наличие дополнительных выходов А, В, С у микросхемы ПР6 позволяет преобразовывать двоично-десятичный код от 0 до 9 в код дополнения до 9 или до 10 (рис. 3.29). То есть сумма входного и выходного кода в этом случае равна соответственно 9 или 10. На- пример, при входном коде 6 на выходе схемы а будет код 3, а на выходе схемы б — код 4. В схеме б при входном коде 0 на выходе также формируется код 0. Как и все остальные выходы микросхе- мы ПР6, выходы А, В, С имеют тип ОК, поэтому к ним необходимо
114 Глава 3 присоединять нагрузочные резисторы, для удобства не показанные на схеме. Такие схемы «дополнителей» применяются редко, поэто- му о них упоминают не во всех справочниках и учебниках, но ино- гда подобные функции бывают довольно удобны. ПР6 Рис. 3.29. Преобразователи входного кода в дополнение до 9 (а) и в дополне- ние до 10 (б). Задержки преобразователей кодов примерно вдвое превос- ходят задержки логических элементов. Точные величины за- держек можно найти в справочниках. 3.6. Одновибраторы и генераторы Одновибраторы и генераторы вообще-то нельзя отнести к комбинационным микросхемам. Они занимают промежуточ- ное положение между комбинационными микросхемами и микросхемами с внутренней памятью. Их выходные сигналы не определяются однозначно входными сигналами, как у комбинационных микросхем. Но в то же время они и не хранят информацию длительное время. Одновибраторы (ждущие мультивибраторы, английское на- звание Monostable Multivibrator) представляют собой микросхе- мы, которые в ответ на входной сигнал (логический уровень или фронт) формируют выходной импульс заданной длительности. Длительность этого импульса определяется внешними время- задающими резисторами и конденсаторами. То есть можно считать, что у одновибраторов есть внутренняя память, но эта память хранит информацию о входном сигнале строго заданное время, а потом информация исчезает. На схемах одновибраторы обозначаются буквами G1.
Применение комбинационных микросхем 115 В стандартные серии микросхем входят одновибраторы двух основных типов (отечественное обозначение функции микро- схемы — АГ): • Одновибраторы без перезапуска (АП — одиночный одновиб- ратор, АГ4 — два одновибратора в одном корпусе); • Одновибраторы с перезапуском (АГЗ — два одновибратора в одном корпусе). Разница между этими двумя типами одновибраторов иллю- стрируется рис. 3.30. Одновибратор без перезапуска не реагиру- ет на входной сигнал до окончания своего выходного импульса. Одновибратор с перезапуском начинает отсчет нового времени выдержки Т с каждым новым входным сигналом независимо от того, закончилось ли предыдущее время выдержки. В случае когда период следования входных сигналов меньше времени выдержки Т, выходной импульс одновибратора с перезапуском не прерывается. Если период следования входных запускающих импульсов больше времени выдержки одновибратора Т, то оба типа одновибраторов работают одинаково. въ_Л_____И____Ц 1 L. Вых. Т Т Без перезапуска ]__ Вых. ВМ|Ц_Ц С перезапуском Рис. 3.30. Принцип работы одновибраторов без перезапуска и с перезапуском. На рис. 3.31 приведены обозначения микросхем одновибра- торов стандартных серий. Микросхемы АГЗ и АГ4 отличаются друг от друга только тем, что АГЗ работает с перезапуском, а АГ4 — без перезапуска. M&G1 J— ATI АГЗ, АГ4 Рис. 3.31. Микросхемы одновибраторов.
116 Глава 3 Микросхемы имеют входы запуска, объединенные по И и ИЛИ, прямые и инверсные выходы, а также выводы для под- ключения внешних времязадающих цепей (резисторов и кон- денсаторов). Запускаются все одновибраторы по фронту резуль- тирующего входного сигнала. Использованная логика объеди- нения входов микросхем позволяет осуществить их запуск как по положительному, так и по отрицательному фронту входного сигнала (рис. 3.32 и 3.33). Рис. 3.32. Варианты запуска одновибратора АГ1. Вх,— G1 Лог.1----- G1 & & Рис. 3.33. Варианты запуска одновибраторов АГЗ и АГ4. На неиспользуемые входы при этом надо подавать сигналы логического нуля или логической единицы. Можно также ис- пользовать остающиеся входы для разрешения или запрещения входного запускающего сигнала. Одновибраторы АГЗ и АГ4 имеют также дополнительный вход сброса -R, логический нуль на котором не только запре- щает выработку выходного сигнала, но и прекращает его дей- ствие. Вход -R можно также использовать для запуска одно- вибратора. Таблицы истинности одновибраторов приведены ниже (табл. 3.8 и 3.9). В этих таблицах инверсные входные сигналы обо- значены -А, -А1, -А2, прямые входные сигналы обозначены В, а прямой и инверсный выходные сигналы — соответственно Q и -Q. Стандартное включение одновибраторов предполагает под- ключение внешнего резистора и внешнего конденсатора (рис. 3.34).
Применение комбинационных микросхем 117 Таблица 3.8. Таблица истинности одновибратора АГ 1 -А1 ВУ В Q Выходы 0 X 1 0 1 X 0 1 0 1 X X 0 0 1 1 1 X 0 1 1 ~1_ 1 J L 1 г ~1_ 1 1 J L “1 г “L ~1_ 1 J L “1 г 0 X _г J L “1 г X 0 _г J L “1 г Таблица 3.9. Таблица истинности одновибраторов АГЗ и АГ4 Рис. 3.34. Стандартные схемы включения одновибраторов. Для одновибратора ATI длительность выходного импульса можно оценить по формуле: Т = 0,7RC. Эта формула работает при величине сопротивления резистора в пределах от 1,5 кОм до 43 кОм. Емкость конденсатора может быть любой. Внутри микро- схемы имеется внутренний резистор сопротивлением около 2 кОм, подключенный к выводу R, поэтому можно включать одновибра- тор без внешнего резистора, подключая вывод R к шине питания. Повторный запуск одновибратора невозможен сразу после оконча-
118 Глава 3 ния выходного импульса, до повторного запуска обязательно дол- жен пройти интервал t = С (если емкость измеряется в нанофара- дах, то временной интервал получается в микросекундах). Для одновибраторов АГЗ и АГ4 длительность импульса можно оценить по формуле: Т = 0,32C(R + 0,7), где сопротивле- ние резистора измеряется в килоомах. Сопротивление резистора может находиться в пределах от 5,1 кОм до 51 кОм, емкость конденсатора — любая. Перезапуск одновибратора возможен только в том случае, когда интервал между входными запус- кающими импульсами больше 0,224С (если емкость измеряется в нанофарадах, то временной интервал — в микросекундах). Наиболее распространенные применения одновибраторов следующие (рис. 3.35): а) увеличение длительности входного импульса; б) уменьшение длительности входного импульса; в) деление частоты входного сигнала в заданное число раз; г) формирование сигнала огибающей последовательности входных импульсов. Для увеличения или уменьшения длительности входного сиг- нала (а и б) надо всего лишь подобрать сопротивление резистора и емкость конденсатора, исходя из требуемой длительности вы- ходного сигнала. В этом случае можно использовать одновибра- тор любого типа: как с перезапуском, так и без перезапуска. Вх. П_____________________ Вых. | | а в*. _IULJUUUUL Вых. | [J [J в в*. _п п п п__________________ I Вых. I ] г Рис. 3.35. Стандартные применения одновибраторов. Для деления частоты входных импульсов в заданное число раз (в) используется только одновибратор без перезапуска. При этом надо выбрать такую длительность выходного сигнала, что-
Применение комбинационных микросхем 119 бы одновибратор пропускал нужное количество входных им- пульсов. Например, если требуется разделить на 3 частоту вход- ных импульсов f, то длительность выходного сигнала одновиб- ратора надо выбрать в пределах от 2/f до З/f. При этом одновиб- ратор будет пропускать два входных импульса из каждых трех. Для формирования огибающей входного сигнала (г) исполь- зуется только одновибратор с перезапуском. При этом длитель- ность его выходного импульса должна быть выбрана такой, чтобы каждый следующий входной сигнал перезапускал одно- вибратор. Если частота входного сигнала равна f, то длитель- ность выходного сигнала одновибратора должна быть не мень- ше, чем 1/f. Еще одно важное применение одновибратора состоит в по- давлении дребезга контактов кнопки. Одновибратор с большим временем выдержки (порядка нескольких десятых долей секун- ды) надежно подавляет паразитные импульсы, возникающие из- за дребезга контактов, и формирует идеальные импульсы на любое нажатие кнопки (рис. 3.36). Рис. 3.36. Использование одновибратора для подавления дребезга контактов кнопки. Для этого можно использовать как одновибратор с перезапус- ком, так и одновибратор без перезапуска (на рисунке). Можно также подобрать время выдержки так, что одновибратор будет давать один импульс по нажатию кнопки, а другой импульс — по отпусканию кнопки. Иногда это бывает удобнее. Одновибраторы можно также использовать для построения генераторов (мультивибраторов) прямоугольных импульсов с различными значениями длительности импульсов и паузы меж- ду ними. При этом два одновибратора замыкаются в кольцо так, что каждый из них запускает другой после окончания своего вы- ходного импульса (рис. 3.37). Один одновибратор формирует дли-
120 Глава 3 тельность импульса, а другой определяет паузу между импульса- ми, Изменяя номиналы резисторов и конденсаторов, можно полу- чить нужные соотношения длительностей импульса и паузы. Рис. 3.37. Генератор импульсов на двух одновибраторах. Таким образом, одновибраторы довольно легко позволяют решать самые разные задачи. Однако, применяя одновибраторы, надо всегда помнить, что длительность их выходных импульсов нельзя задать очень точно, ведь одновибратор имеет аналоговые цепи. На длительность выходного импульса одновибратора влияют разбросы номиналов резисторов и конденсаторов, тем- пература окружающей среды, старение элементов, помехи по цепям питания, другие факторы. Поэтому применение одновиб- раторов надо по возможности ограничивать только теми слу- чаями, когда время выдержки надо задавать с не слишком высо- кой точностью (погрешность не менее 20-30%). Любую функцию одновибратора может выполнить синхрон- ное тактируемое устройство (на основе кварцевого генератора, триггеров, регистров, счетчиков), причем выполнить гораздо точнее и надежнее. И ему не нужно никаких дополнительных времязадающих элементов (резисторов и конденсаторов). Коли- чество одновибраторов, использованных в схеме, как правило, обратно пропорционально уровню мастерства разработчика этой схемы. Задержки запуска одновибраторов примерно в два-три раза превосходят задержку логического элемента. Точные величины задержек можно найти в справочниках. Помимо одновибраторов в стандартные серии включены также специализированные генераторы (мультивибраторы, анг- лийское Multivibrator). Обозначаются они на схемах буквой G. В отечественных сериях этот тип микросхемы кодируется бук- вами ГГ. Например, микросхема ГГ1 представляет собой два ге- нератора в одном корпусе.
Применение комбинационных микросхем 121 Микросхемы генераторов используют довольно редко, чаще применяют генераторы на инверторах или на триггерах Шмит- та, описанные во второй главе. Однако в некоторых случаях ге- нераторы ГГ1 не могут быть заменены ничем. Дело в том, что они допускают изменение частоты выходных импульсов с по- мощью уровней двух входных управляющих напряжений. По- этому они называются также «генераторы, управляемые напря- жением» или ГУН. Эффект изменения частоты можно исполь- зовать, например, в системах автоподстройки частоты (АПЧ) или в устройствах с частотной модуляцией (ЧМ). Стандартная схема включения генератора ГГ1 приведена на рис. 3.38. Генератор имеет выводы для подключения внешнего конденсатора С1 и С2, к которым можно также подключать кварцевый резонатор, но при этом уже нельзя управлять часто- той. Имеется два входа управления частотой U1 и U2, а также вход разрешения -Е, при подаче на который логической едини- цы генерация прекращается и на выходе F устанавливается еди- ница. Рис. 3.38. Схема включения генератора ГП. Один из входов управления (U1) обычно называется диапа- зонным или ид, а другой (U2) — входом управления частоты или U4. При увеличении напряжения U4 частота увеличивается, при увеличении напряжения на входе ид частота уменьшается. Рекомендуемый диапазон изменения напряжения 11д составляет от 2 до 4,5 В, а диапазон изменения U4— от 0 до 5 В. В зависи- мости от напряжения 1ТД меняется диапазон изменения частоты из-за изменения напряжения U4. Например, при ид = 2 В и изме- нении U4 от 1 до 5 В частота изменяется примерно на 15%, а при ид = 4 В — приблизительно в 4 раза. Частота выходного сигнала ГП определяется также внеш- ним конденсатором, например, при Us = U, = 2 В и при С = 1 мкФ частота будет около 100 Гц, а при С = 100 пФ — порядка
122 Глава 3 10 МГц. Максимально возможное значение частоты генератора составляет около 80 МГц. В справочниках приводятся графики зависимости частоты выходного сигнала ГГ1 от уровней управ- ляющих напряжений и номинала внешнего конденсатора. Однако точно определить значение частоты по этим графикам невозмож- но, в любом случае требуется подстройка. К тому же наличие в схеме аналоговых узлов делает генератор ГГ1 чувствительным к разбросу номиналов конденсаторов, изменению температуры ок- ружающей среды, старению элементов, помехам по цепям пита- ния и к другим факторам. Именно поэтому использование этих генераторов крайне ограничено. И последнее. В микросхеме ГГ1 существует взаимное влия- ние двух генераторов друг на друга, хотя в ней и приняты меры по снижению этого влияния. Поэтому не рекомендуется исполь- зовать одновременно два генератора одной микросхемы в ре- жиме генерации частоты, управляемой напряжением.
Глава 4 ПРИМЕНЕНИЕ ТРИГГЕРОВ И РЕГИСТРОВ Триггеры и регистры являются простейшими представителя- ми цифровых микросхем, имеющих внутреннюю память. Ес- ли выходные сигналы логических элементов и комбинацион- ных микросхем однозначно определяются их текущими входными сигналами, то выходные сигналы микросхем с внутренней памятью зависят также еще и от того, какие входные сигналы и в какой последовательности поступали на них в прошлом. То есть они помнят предысторию поведения схемы. Именно поэтому их применение позволяет строить гораздо более сложные и интеллектуальные цифровые уст- ройства, чем в случае простейших микросхем без памяти. Микросхемы с внутренней памятью называются еще после- довательными или последовательностными в отличие от комбинационных микросхем. Триггеры и регистры сохраняют свою память только до тех пор, пока на них подается напряжение питания. То есть их па- мять относится к типу оперативной памяти (в отличие от по- стоянной памяти и перепрограммируемой постоянной памяти, которым отключение питания не мешает сохранять информа- цию). После выключения питания и его последующего включе- ния триггеры и регистры переходят в случайное состояние, то есть их выходные сигналы могут устанавливаться как к уровню логической единицы, так и к уровню логического нуля. Это не- обходимо учитывать при проектировании схем. Большим преимуществом триггеров и регистров перед дру- гими типами микросхем с памятью является их максимально высокое быстродействие (то есть минимальные времена задер- жек срабатывания и максимально высокая допустимая рабочая частота). Именно поэтому триггеры и регистры иногда называ- ют также сверхоперативной памятью. Однако недостатком триггеров и регистров является то, что объем их внутренней па- мяти очень мал, они могут хранить только отдельные сигналы, биты (триггеры) или отдельные коды, байты, слова (регистры).
124 Глава 4 Триггер можно рассматривать как одноразрядную ячейку памяти, а регистр — как многоразрядную ячейку памяти, со- стоящую из несколько триггеров, соединенных параллельно (обычный, параллельный регистр) или последовательно (сдви- говый регистр или, что то же самое, регистр сдвига). 4.1. Триггеры 4.1.1. Принцип работы и разновидности триггеров В основе любого триггера (английское — Trigger или Flip-Flop) лежит схема из двух логических элементов, которые охвачены положительными обратными связями (то есть сигналы с выхо- дов подаются на входы). В результате подобного включения схема может находиться в одном из двух устойчивых состояний, причем находиться сколь угодно долго, пока на нее подано на- пряжение питания. Рис. 4.1. Схема триггерной ячейки. Пример такой схемы (так называемой триггерной ячейки) на двух двухвходовых элементах И-НЕ представлен на рис. 4.1. У схемы есть два инверсных входа: -R — сброс (от английского Reset), и -S — установка (от английского Set), а также два выхо- да: прямой выход Q и инверсный выход -Q. Для правильной работы схемы отрицательные импульсы должны поступать на ее входы не одновременно. Приход им- пульса на вход -R переводит выход -Q в состояние единицы, а так как сигнал -S при этом единичный, выход Q становится ну- левым. Этот же сигнал Q поступает по цепи обратной связи на вход нижнего элемента. Поэтому даже после окончания им- пульса на входе -R состояние схемы не изменяется (на Q остает- ся нуль, на -Q остается единица). Точно так же при приходе им-
Применение триггеров и регистров 125 пульса на вход -S выход переходит Q в единицу, а выход -Q — в нуль. Оба этих устойчивых состояния триггерной ячейки мо- гут сохраняться сколь угодно долго, пока не придет очередной входной импульс, то есть схема обладает памятью. Если оба входных импульса придут строго одновременно, то в момент действия этих импульсов на обоих выходах будут еди- ничные сигналы, а после окончания входных импульсов выходы случайным образом попадут в одно из двух устойчивых состоя- ний. Точно так же случайным образом будет выбрано одно из двух устойчивых состояний триггерной ячейки при включении питания. Временная диаграмма работы триггерной ячейки пока- зана на рисунке. Таблица истинности схемы приведена ниже (табл. 4.1). Таблица 4.1. Таблица истинности триггерной ячейки Входы Выходы -R -S Q -Q 0 1 0 1 1 0 1 0 1 1 Без изменения 0 0 Не определено В стандартные серии цифровых микросхем входит несколь- ко типов микросхем триггеров, различающихся методами управ- ления, а также входными и выходными сигналами. На схемах триггеры обозначаются буквой Т. В отечественных сериях мик- росхем триггеры имеют наименование ТВ, ТМ и ТР в зависимо- сти от типа триггера. Наиболее распространены три типа триг- геров (рис. 4.2): • RS-триггер (обозначается ТР) — самый простой, но редко ис- пользуемый триггер (а); • JK-триггер (обозначается ТВ) имеет самое сложное управле- ние, также используется довольно редко (б); • D-триггер (обозначается ТМ) — наиболее распространенный тип триггера (в).
126 Глава 4 а б в 1/2 ТР2 Рис. 4.2. Триггеры трех основных типов. Примером RS-триггера является микросхема ТР2, в одном корпусе которой находятся четыре RS-триггера. Два триггера имеют по одному входу -R и -S, а два других триггера — по од- ному входу -R и по два входа -S1 и -S2, объединенных по функ- ции И. Все триггеры имеют только по одному прямому выходу. RS-триггер практически ничем не отличается по своим функци- ям от триггерной ячейки, рассмотренной ранее (см. рис. 4.1). Отрицательный импульс на входе -R перебрасывает выход в нуль, а отрицательный импульс на входе -S (или на любом из входов -S1 и -S2) перебрасывает выход в единицу. Одновремен- ные сигналы на входах -R и -S переводят выход в единицу, а по- сле окончания импульсов триггер попадает случайным образом в одно из своих устойчивых состояний. Таблица истинности триггера ТР2 с двумя входами установки -S1 и -S2 представлена ниже (табл. 4.2). Таблица 4.2. Таблица истинности RS-триггера ТР2 Входы Выход -S1 -S2 -R Q 1 1 1 Без изменения X 0 1 1 0 X 1 1 1 1 0 0 X 0 0 Не определен 0 X 0 Не определен
Применение триггеров и регистров 127 JK-триггер значительно сложнее по своей структуре, чем RS-триггер. Он относится к так называемым тактируемым триг- герам, то есть он срабатывает по фронту тактового сигнала. Примером может служить показанная на рис. 4.2 микросхема ТВ9, имеющая в одном корпусе два JK-триггера со входами сброса и установки -R и -S. Входы -R и -S работают точно так же, как и в RS-триггере, то есть отрицательный импульс на вхо- де -R устанавливает прямой выход в нуль, а инверсный — в единицу, а отрицательный импульс на входе -S устанавливает прямой выход в единицу, а инверсный — в нуль. Однако состояние триггера может быть изменено не только этими сигналами, но и сигналами на двух информационных входах J и К и синхросигналом С. Переключение триггера в этом случае происходит по отрицательному фронту сигнала С (по переходу из единицы в нуль) в зависимости от состояний сигналов J и К. При единице на входе J и нуле на входе К по фронту сигнала С прямой выход устанавливается в единицу (обратный — в нуль). При нуле на входе J и единице на входе К по фронту сигнала С прямой выход устанавливается в нуль (об- ратный — в единицу). При единичных уровнях на обоих входах J и К по фронту сигнала С триггер меняет состояние своих вы- ходов на противоположные (это называется счетным режимом). Таблица 4.3. Таблица истинности JK-триггера ТВ9 Входы Выходы -S -R С J к Q -Q 0 1 X X X 1 0 1 0 X X X 0 1 0 0 X X X Не определено 1 1 1—>0 1 0 1 0 1 1 1—>0 0 1 0 1 1 1 1—>0 0 0 Не изменяется 1 1 1—>0 1 1 Меняется на противоположное 1 1 1 X X Не изменяется 1 1 0 X X Не изменяется 1 1 0—>1 X X Не изменяется
128 Глава 4 Все это видно из таблицы истинности триггера ТВ9 (табл. 4.3) и временной диаграммы его работы (рис. 4.3). Рис. 4.3. Временная диаграмма работы JK-тригтера ТВ9. Наконец, самый распространенный D-триггер занимает, можно сказать, промежуточное положение между RS-триггером и JK-триггером. Помимо общих для всех триггеров входов ус- тановки и сброса -S и -R он имеет один информационный вход D (вход данных) и один тактовый вход С. Примером может служить показанная на рис. 4.2 микросхема ТМ2, содержащая в одном корпусе два D-триггера с прямыми и инверсными выхо- дами. Таблица 4.4. Таблица истинности D-триггера ТМ2 Входы Выходы -S -R С D Q -Q 0 1 X X 1 0 1 0 X X 0 1 0 0 X X Не определено 1 1 0—>1 1 1 0 1 1 0—>1 0 0 1 1 1 0 X Не меняется 1 1 1 X Не меняется 1 1 1—>0 X Не меняется
Применение триггеров и регистров 129 Рис. 4.4. Временная диаграмма работы D-триггера ТМ2. Тактируется триггер (то есть изменяет свое состояние) по положительному фронту сигнала С (по его переходу из нуля в единицу) в зависимости от состояния входа данных D. Если на входе D единичный сигнал, то по фронту сигнала С прямой вы- ход триггера устанавливается в единицу (инверсный — в нуль). Если же на входе D нулевой сигнал, то по фронту сигнала С прямой выход триггера устанавливается в нуль (инверсный — в единицу). Таблица истинности триггера ТМ2 представлена выше (табл. 4.4), а временная диаграмма работы показана на рис. 4.4. Остановимся на работе D-триггера чуть подробнее, так как он наиболее часто используется. При этом многие замечания, высказываемые здесь относительно D-триггера, будут верны и для других типов триггеров. Прежде всего отметим, что все приведенные временные диа- граммы относятся к первому уровню представления, к уровню логической модели. Конечно же, в реальности все триггеры имеют временные задержки установки выходных сигналов, а также предъявляют определенные временные требования к входным сигналам, при нарушении которых любой триггер бу- дет работать неустойчиво или же не будет работать вообще. Это учитывается на втором уровне представления (в модели с вре- менными задержками). Например, как уже отмечалось, входные сигналы -R и -S не должны приходить одновременно, иначе состояние триг- гера будет неопределенным. Длительность сигналов -R и -S также не должна быть слишком малой, иначе триггер может на них не среагировать. Сигнал -R должен начинаться с оп- 5 - 4589
130 Глава 4 ределенной задержкой после окончания сигнала -S и наобо- рот. В первом приближении можно считать, что минимально допустимые временные интервалы между входными сигна- лами должны равняться 1—2 задержкам логического элемен- та соответствующей серии. Точно так же не должна быть слишком малой длительность тактового сигнала С (как положительного импульса, так и отри- цательного импульса), иначе триггер может переключаться не- устойчиво. Это требование универсально для всех микросхем, срабатывающих по фронту входного сигнала. Принципиально важна и величина временного сдвига (задержки) между уста- новлением сигнала D и рабочим (положительным) фронтом сигнала С. Этот сдвиг также не должен быть слишком малым. Не должен быть чрезмерно малым и сдвиг между окончанием сигналов -R и -S и рабочим фронтом сигнала С. Повышенные требования предъявляются также к длительности фронта такто- вого сигнала С, которая не должна быть слишком большой. Это требование также универсально для всех микросхем, срабаты- вающих по фронту входного сигнала. Одним словом, чем сложнее микросхема, тем важнее для нее становятся ограничения второго уровня представления, тем вы- ше требования к разработчику по учету временных задержек и длительностей сигналов. Правда, требования эти не слишком разнообразны и не слишком жестки, поэтому, раз и навсегда ус- воив их, можно проектировать любые схемы без грубых оши- бок. Самое главное, что надо запомнить, состоит в следующем: цифровые схемы не любят слишком коротких входных сигналов и слишком малых задержек между входными сигналами, функ- ционально связанными между собой. Ориентир здесь очень простой — величина задержки логического элемента данной се- рии. Поэтому для более быстрых серий ограничения будут ме- нее жесткими, а для более медленных серий — более жесткими. Несколько слов о величинах задержек микросхем триггеров. Несмотря на свою достаточно сложную внутреннюю струк- туру микросхемы триггеров являются одними из самых быст- рых. Задержка срабатывания триггера обычно не превышает 1,5-2 задержек логического элемента. Причем задержки по вхо- дам -R и -S чуть меньше, чем по тактовому входу С. В некото- рых сериях JK-триггеры несколько быстрее, чем D-триггеры, в других — наоборот. Важный параметр триггера — максималь-
Применение триггеров и регистров 131 ная частота тактового сигнала С. Для ее приблизительной оцен- ки можно придерживаться следующего простого правила: пери- од тактового сигнала С не должен быть меньше величины за- держки переключения триггера по входу С. 4.1.2. Основные схемы включения триггеров Говоря об областях применения триггеров, мы будем рассмат- ривать исключительно D-триггеры, так как в большинстве слу- чаев RS- и JK-триггеры могут быть заменены D-триггерами без ухудшения каких бы то ни было параметров схемы. Примеры такой замены показаны на рис. 4.5. RS-триггер получается из D-триггера, если в D-триггере не использовать входы С и D, например, соединить их с общим проводом (а). Рис. 4.5. Включение D-триггера для замены RS-триггера (а) и JK-триггера в счетном режиме (б). Сложнее обстоит дело с заменой JK-триггера, в котором предусмотрено больше возможностей, чем в D-триггере. Однако обычно два информационных входа JK-триггера не так уж и нужны. А что касается счетного режима, в котором, пожалуй, наиболее часто работают JK-триггеры, то он легко реализуется на D-триггере в результате объединения информационного вхо- да D с инверсным выходом (б). При этом по каждому положи- тельному фронту сигнала С триггер будет менять свое состоя- ние на противоположное: нуль на прямом выходе будет сме- няться единицей и наоборот. То есть частота входного сигнала триггера будет меньше частоты входного тактового сигнала С в два раза. Отметим также, что для реализации счетного режима чаще всего используются не триггеры, а счетчики, которые будут рас- смотрены в следующей главе. 5*
132 Глава 4 Особенности триггеров обуславливают наиболее широкий диапазон схем их включения для решения самых разных задач. Например, с помощью триггера (любого типа) очень просто и эффективно решается задача устранения влияния дребезга контактов механических переключателей (рис. 4.6). Правда в данном случае необходим тумблер (или кнопка) с тремя выво- дами, один из которых попеременно подключается к двум дру- гим. При этом первый же отрицательный импульс на входе -R перебрасывает триггер в состояние нуля, а первый же отрица- тельный импульс на входе -S — в состояние единицы. После- дующие же импульсы на обоих этих входах, вызванные дребез- гом контактов, уже никак не влияют на триггер. Нижнее (по ри- сунку) положение выключателя соответствует нулю на выходе триггера, а верхнее — единице. Рис. 4.6. Подавление дребезга контактов выключателя с помощью триггера. Основное применение триггеры находят в тех случаях, когда надо сформировать сигнал, длительность которого соответству- ет длительности какой-то выполняемой операции, какого-то продолжительного процесса в схеме. Выходной сигнал триггера при этом может разрешать этот самый процесс, а может инфор- мировать остальные узлы устройства о том, что процесс идет (или, как говорят, служить флагом процесса). Например, в схе- ме на рис. 4.7 в начале процесса (операции) по сигналу Старт триггер перебрасывается в единицу, а в конце процесса (опера- ции) по сигналу Стоп триггер перебрасывается обратно в нуль. Лог.1 s R Старт д- Стоп ~1г - D -.С Вых. Старт ф _______। Стоп Г I ___г Рис. 4.7. Использование триггера в качестве флага процесса.
Применение триггеров и регистров 133 Для сигналов Старт и Стоп можно, конечно, использовать входы триггера -R и -S. Однако более правильным и универ- сальным решением будет выбор пары входов С и -R или С и -S, что предотвратит неоднозначность поведения триггера при од- новременном приходе сигналов Старт и Стоп. Если использу- ются входы С и -R, то на вход D надо подать единицу, а если применяются входы С и -S, то на вход D надо подать нуль. Та- кое решение удобно еще и тем, что в качестве одного из сигна- лов Старт и Стоп может выступать не уровень, а фронт. Именно этот фронт (в нужной полярности) и надо подать в этом случае на тактовый вход триггера С. Вторая важнейшая область применения триггеров — это синхронизация сигналов. Например, триггер позволяет наиболее просто избавиться от паразитных коротких импульсов на выходах комбинаци- онных схем, возникающих при почти одновременном изме- нении нескольких входных сигналов (рис. 4.8). Для синхро- низации в данном случае необходимо иметь синхросигнал (синхропереход), сопровождающий входные информацион- ные сигналы (входной код) и задержанный относительно мо- мента изменения этих сигналов на время t3, большее задерж- ки комбинационной схемы. При подаче этого синхроимпуль- са на вход С триггера, а выходного сигнала комбинационной микросхемы (Вых.1) на вход D триггера на выходе триггера получаем сигнал (Вых.2), полностью свободный от паразит- ных импульсов. Вых.2 ВкйадЗС ! Синхросигнал ; Вых.1 ! Г Рис. 4.8. Синхронизация с помощью триггера. Более того, в случае, когда входной код комбинационной схемы изменяется регулярно, периодически, фронт синхросиг- нала может даже совпадать с моментом изменения входного ко- да (рис. 4.9).
134 Глава 4 Синхросигнал -1" Рис. 4.9. Синхронизация с помощью триггера при периодическом изменении входного кода. Вых.2 ! При этом за счет конечной величины задержки комбинаци- онной схемы сигнал на вход С триггера будет поступать рань- ше, чем начнет изменяться сигнал на его входе D. Поэтому па- разитные импульсы в триггер не запишутся. Правда, в данном случае сигнал на выходе триггера (Вых.2) будет задержан на период следования входных кодов Т (или, что то же самое, на период синхросигнала) относительно выходного сигнала ком- бинационной схемы (Вых.1). При проектировании цифровых схем, работающих по тактам единого тактового генератора, часто возникает необходимость син- хронизовать с работой схемы какой-то внешний сигнал. То есть требуется обеспечить, чтобы этот сигнал (асинхронный по отноше- нию ко всей остальной схеме) изменялся по тактам тактового гене- ратора, как и все остальные сигналы схемы (стал бы синхронным всей остальной схеме). В этом тоже может помочь триггер. Рассмотрим самый простой пример. Пусть необходимо с помощью внешнего сигнала разрешать и запрещать прохожде- ние сигнала непрерывно работающего тактового генератора. В случае обычного RC-генератора эта задача иногда может быть решена довольно просто путем запуска и остановки генератора (см. рис. 2.39). Однако далеко не всегда допускается останавли- вать работу тактового генератора, от которого работает вся схе- ма. В случае же кварцевого генератора его остановка и запуск вообще никогда не используются, так как такой генератор на- чинает работать после разрешения с задержкой, равной не- скольким периодам тактовой частоты, причем количество этих периодов не постоянно. Поэтому будем считать, что тактовый генератор работает постоянно, а по внешнему управляющему сигналу мы будем разрешать или запрещать прохождение его выходных импульсов (рис. 4.10).
Применение триггеров и регистров 135 Разр. Рис. 4.10. Синхронизация сигнала разрешения. В простейшем случае (а) для пропускания и запрещения им- пульсов тактового генератора Г используется логический эле- мент 2И. При этом вполне возможна ситуация прохождения на выход схемы импульсов неполной длительности или даже пре- дельно коротких, нестабильно появляющихся импульсов, кото- рые могут вносить неопределенность в работу остальной схемы. Применение синхронизирующего триггера (б) обеспечивает прохождение на выход пропускающего элемента 2И только им- пульсов полной длительности. Разрешающий сигнал, проходя через триггер, который тактируется разрешаемым сигналом, становится синхронным с тактовым сигналом и гарантирует прохождение на выход обязательно целого количества тактовых импульсов, целого количества периодов тактового генератора. Триггеры позволяют также строить линии задержки цифро- вых сигналов, для чего несколько триггеров соединяется в по- следовательную цепочку, причем все они тактируются единым тактовым сигналом С. Такое включение позволяет, например, одновременно обрабатывать комбинационными схемами не- сколько последовательных во времени состояний какого-то од- ного сигнала. В качестве примера на рис. 4.11 приведена схема, которая выделяет во входном сигнале трехтактовую последовательность 010. Цепочка из трех триггеров Tl, Т2 и ТЗ, тактируемых еди- ным синхросигналом, запоминает три последовательных со-
136 Глава 4 стояния входного сигнала. Например, если на выходе триггера Т2 будет зафиксировано состояние входного сигнала в N-м так- те, то на выходе триггера Т1 будет состояние входного сигнала в такте (N+1), а на выходе триггера ТЗ — в такте (N-1). Из-за конечной величины задержки переключения триггеров в каж- дый следующий триггер входной сигнал будет переписываться еще до того, как он изменит свое значение вследствие переклю- чения предыдущего триггера. Рис. 4.11. Выделение 3-тактовой последовательности тактов во входном сиг- нале. Подавая выходные сигналы триггеров (прямые или инверс- ные в зависимости от нужных уровней) на элемент И с нужным числом входов, можно зафиксировать любую трехтактовую по- следовательность во входном сигнале. Для предотвращения по- явления паразитных импульсов в выходном сигнале (они воз- можны, так как входные сигналы элемента И изменяются почти одновременно) применяется выходной триггер Т, тактируемый тем же самым общим синхросигналом. На выходе триггера Т получаем единичный сигнал, соответствующий последователь-
Применение триггеров и регистров 137 ности 010 во входном сигнале. Правда, этот выходной сигнал будет задержан относительно конца выделяемой последова- тельности 010 на два такта. Конечно, применение триггеров не ограничивается рассмот- ренными примерами, все области их применения трудно даже перечислить. Мы же рассмотрим здесь еще несколько примеров использования триггеров. Вх. Вых. ]_ Рис. 4.12. Формирователь короткого импульса по фронту входного сигнала. D-триггер позволяет довольно просто формировать выход- ной короткий импульс по фронту входного сигнала. Для этого даже не нужно никаких времязадающих RC-цепочек. Длитель- ность выходного импульса определяется задержкой срабатыва- ния триггера. Формирователь короткого импульса по положи- тельному фронту входного сигнала (рис. 4.12) образуется путем подачи выходного сигнала триггера на вход сброса. По положительному фронту на входе С триггер перебрасы- вается в единицу, но выходной сигнал триггера по цепи обрат- ной связи тут же сбрасывает его обратно в нуль. Преимущест- вом данной схемы является то, что триггер имеет как прямой, так и инверсный выходы, поэтому мы получаем как положи- тельный короткий импульс, так и отрицательный. В некоторых случаях в цепь этой обратной связи надо включать дополни- тельный инвертор для устойчивой работы схемы. Например, триггеры серии К155 не требуют инвертора, а триггеры серии КР1533 —требуют. Применение триггеров совместно с другими микросхемами часто позволяет избежать появления паразитных коротких им- пульсов, обеспечить надежную и уверенную работу схемы. На- пример, на рис. 4.13 представлена схема, различающая короткие и длинные импульсы, приходящие на ее вход. Такая схема по- зволяет применять одну линию связи для передачи двух сигна- лов разного назначения, что бывает очень удобно при связи уст- ройств, находящихся на большом расстоянии.
138 Глава 4 На вход схемы поступают короткие импульсы (длительно- стью tK) и длинные импульсы (длительностью t,). Конечно, на передающем конце надо обеспечить, чтобы эти импульсы фор- мировались по очереди и с не слишком малой задержкой друг относительно друга. На выходе схемы формируются два сигна- ла, один из которых соответствует приходу короткого входного импульса, а другой — приходу длинного входного импульса. Для различения входных импульсов используется одновиб- ратор ATI с временем выдержки tB, большим tK, но меньшим 1д. Применение одновибратора в данном случае оправдано, так как требуемая точность времени выдержки невысока (считаем, что длительности импульсов различаются существенно). Выходные сигналы схемы формируются с помощью двух триггеров, а не простых двухвходовых логических элементов, что полностью исключает появление паразитных импульсов на фронтах. Принцип работы схемы ясен из приведенной временной диаграммы. Одновибратор запускается по переднему фронту входного сигнала. Выходной сигнал Вых.1, соответствующий приходу длинного импульса, начинается по заднему фронту им- пульса одновибратора, а заканчивается по окончанию длинного входного импульса. Выходной сигнал Вых.2, соответствующий приходу входного короткого импульса, начинается по заднему фронту входного импульса, а заканчивается с окончанием им- пульса одновибратора. Триггеры можно также использовать для обработки перио- дических последовательностей входных сигналов. При этом триггер, тактируемый кварцевым генератором, может очень точно различать частоты следования входных импульсов, то
Применение триггеров и регистров 139 есть выполнять функцию простейшего цифрового фильтра. Та- кие схемы выгодно отличаются от схем с одновибраторами и времязадающими RC-цепочками возможностью полностью ин- тегрального исполнения и отсутствием какой бы то ни было на- стройки. Простейший пример подобной обработки состоит в форми- ровании огибающей входного сигнала. То есть при приходе входного сигнала заданной частоты выходной сигнал должен быть равен единице, а при отсутствии входного сигнала — ну- лю. Эта задача, как уже отмечалось (см. рис. 3.35,г), может быть решена с помощью одновибратора с перезапуском (типа АГЗ). Однако применение триггеров значительно увеличивает точ- ность срабатывания и позволяет работать с частотами, близкими к предельным для данного типа триггеров. Схема формирования огибающей состоит всего лишь из двух триггеров, тактируемых внешним синхросигналом (рис. 4.14). В данном случае предпо- лагается, что частоты входного сигнала и тактового сигнала равны между собой. Рис. 4.14. Формирователь сигнала огибающей входного сигнала на триггерах. Триггеры включены как двухтактная линия задержки с об- щим тактовым сигналом С и со сбросом входными сигналами. Самый первый входной импульс последовательности иницииру- ет начало действия выходного сигнала, то есть переключение выхода в состояние логической 1, а заканчивается действие вы- ходного сигнала, то есть возврат выхода в состояние логическо- го 0, через 1-2 периода тактового сигнала после окончания входной последовательности (в зависимости от временного сдвига входного сигнала относительно тактового сигнала). Схе- ма работает с входным сигналом любой частоты, большей по- ловины частоты тактового сигнала (например, при тактовой частоте 10 МГц входной сигнал должен иметь частоту, боль-
140 Глава 4 шую 5 МГц). То есть за половину периода входной частоты не должно приходить больше одного положительного фронта так- тового сигнала. Этот же формирователь огибающей можно использовать в более сложных схемах. Примером может служить фильтр, кото- рый позволяет разделить две частоты входного сигнала, пропус- тить более высокочастотный сигнал и отсечь более низкочас- тотный (рис. 4.15). Фильтр состоит из трех триггеров и элемента 2И, работаю- щего в режиме пропускания положительных входных импуль- сов. Два триггера (левые на схеме) образуют формирователь огибающей. Третий (правый на схеме) триггер выдает сигнал пропускания в случае, когда сигнал огибающей непрерывен, то есть когда частота входного сигнала составляет больше полови- ны тактовой частоты. Если в момент прихода положительного фронта входного сигнала сигнал огибающей на выходе второго триггера нулевой, то пропускающий сигнал на выходе третьего триггера также нулевой, и импульсы не проходят на выход. При этом первый входной импульс пропускаемого сигнала на выход не проходит. Цепочка из двух инверторов компенсирует за- держку срабатывания третьего триггера, она задерживает вход- ной сигнал перед подачей его на вход выходного пропускающе- го элемента 2И.
Применение триггеров и регистров 141 Таким образом, фильтр надежно пропускает входные сигна- лы с частотой, большей половины тактовой частоты, и надежно задерживает сигналы с частотой, меньшей четверти тактовой частоты. Например, при тактовой частоте 10 МГц фильтр будет пропускать сигналы с частотой выше 5 МГц, и задерживать сигналы с частотой ниже 2,5 МГц. С частотами входного сигна- ла от 2,5 до 5 МГц работа фильтра не будет стабильной, она бу- дет зависеть от временного сдвига между входным сигналом и тактовым сигналом. Наконец, последняя схема на триггерах, которую мы рас- смотрим, предназначена для кодирования входного сигнала в манчестерский код (или код Манчестер-П). Этот код широко используется при передаче сигналов на большие расстояния, в частности в локальных сетях. Вход Манчестер-П Рис. 4.16. Манчестерское кодирование. Рис. 4.17. Кодировщик манчестерского кода на триггерах. Суть манчестерского кодирования иллюстрируется рис. 4.16. Входной сигнал представляет собой последовательность битов равной длительности. В каждом такте передается один бит ин-
142 Глава 4 формации. Манчестерский код заменяет единичный информа- ционный бит на отрицательный переход в центре битового ин- тервала, а нулевой информационный бит — на положительный переход в центре битового интервала. Таким образом, в центре каждого битового интервала сигнала в манчестерском коде обя- зательно имеется фронт (положительный или отрицательный), который может быть использован приемником этого сигнала для синхронизации приема каждого информационного бита. Поэтому манчестерский код называется самосинхронизирую- щимся кодом. Кодировщик (он же шифратор) манчестерского кода (рис. 4.17) включает в себя элемент Исключающее ИЛИ, который, собст- венно, и производит кодирование, а также три триггера для син- хронизации. Один триггер (левый на схеме) работает в счетном режиме, деля частоту тактового сигнала в два раза. Один триг- гер (центральный) синхронизирует входной информационный сигнал с тактовым сигналом половинной частоты. Наконец, по- следний, третий триггер (правый) синхронизирует выходной сигнал для устранения в нем паразитных коротких импульсов в моменты изменения входного сигнала. Он фиксирует выходной сигнал элемента Исключающее ИЛИ (уже готовый манчестер- ский код) через четверть периода после изменения входного сиг- нала Вход 1 (по отрицательному фронту исходного тактового сигнала). 4.2. Регистры Регистры (английское Register) представляют собой, по сути, несколько D-триггеров (обычно от 4 до 16), соединенных между собой тем или иным способом. Поэтому принципиальной раз- ницы между ними и отдельными D-триггерами не существует. Правда, триггеры, входящие в состав регистров, не имеют тако- го количества разнообразных управляющих входов, как оди- ночные триггеры. На схемах регистры обозначаются буквами RG. В отечест- венных сериях микросхем регистрам соответствуют буквы ИР. Все регистры делятся на две большие группы (рис. 4.18): • параллельные регистры; • регистры сдвига (или сдвиговые регистры).
Применение триггеров и регистров 143 б Рис. 4.18. Структура параллельного регистра (а) и сдвигового регистра (б). Существуют и регистры других типов, но они применяются гораздо реже, чем параллельные и сдвиговые, так как имеют уз- коспециальное назначение. В параллельных регистрах (а) каждый из триггеров имеет свой независимый информационный вход (D) и свой независи- мый информационный выход. Тактовые входы (С) всех триггеров соединены между собой. В результате параллельный регистр представляет собой многоразрядный, многовходовый триггер. В сдвиговых регистрах (б) все триггеры соединены в последо- вательную цепочку (выход каждого предыдущего триггера соеди- нен со входом D следующего триггера). Тактовые входы всех триг- геров (С) объединены между собой. В результате такой триггер может рассматриваться как линия задержки, входной сигнал кото- рой последовательно перезаписывается из триггера в триггер по фронту тактового сигнала С. Информационные входы и выходы триггеров могут быть выведены наружу, а могут и не выводиться в зависимости от функции, выполняемой регистром. Параллельные регистры в свою очередь делятся на две группы: • регистры, срабатывающие по фронту управляющего сигнала С (или тактируемые регистры); • регистры, срабатывающие по уровню управляющего сигна- ла С (или стробируемые регистры). Чаще всего в цифровых схемах используются регистры, управляемые фронтом (то есть тактируемые), однако и строби- руемые регистры имеют свой круг задач, в которых их ничто не может заменить.
144 Глава 4 4.2.1. Регистры, срабатывающие по фронту Принцип действия регистров, срабатывающих по фронту такто- вого сигнала, ничем не отличается от принципа действия D-триг- гера. По положительному фронту тактового сигнала С каждый из выходов регистра устанавливается в тот уровень, который был в этот момент на соответствующем данному выходу входе D, и сохраняется таковым до прихода следующего положительного фронта сигнала С. То есть если триггер запоминает один сигнал (один двоичный разряд, один бит), то регистр запоминает сразу несколько (4, 6, 8, 16) сигналов (несколько разрядов, битов). Память регистра сохраняется до момента выключения питания схемы. В стандартные серии входит несколько типов параллельных регистров, срабатывающих по фронту (рис. 4.19). Различаются они количеством разрядов, наличием или отсутствием инверс- ных выходов, наличием или отсутствием входа сброса (-R) или разрешения записи (-WE), а также типом выходных каскадов (2С или ЗС) и соответственно наличием или отсутствием входа разрешения -EZ. Иногда на схемах тактовый вход С обозначает- ся WR — сигнал записи в регистр. ИР27 ИР35 ИР37 Рис. 4.19. Параллельные регистры стандартных серий, срабатывающие по фронту. Большинство регистров имеют восемь разрядов, то есть за- поминают один байт информации. Регистр ТМ8 в справочниках обычно называется счетверенным D-триггером (он и в наимено- вании несет буквы ТМ), хотя он вполне может рассматриваться и как регистр, так как тактовый вход С и вход сброса -R у всех четырех триггеров объединены между собой.
Применение триггеров и регистров 145 Таблицы истинности регистров очень просты и не отлича- ются принципиально от таблицы истинности D-триггеров. От- личие от триггеров появляется только в случае наличия у реги- стра дополнительных управляющих входов разрешения записи -WE и разрешения выхода -EZ. В качестве примеров ниже при- ведены таблицы истинности регистра ИР27 и регистра ИР37 (табл. 4.5. и 4.6 соответственно). По переходу тактового сигнала С из 0 в 1 (положительный фронт) оба регистра записывают в себя входную информацию. Таблица 4.5. Таблица истинности регистра ИР27 Входы Выходы -WE с D Q 0 0—>1 0 0 0 .0—>1 I 1 0 0 X Не меняется 0 I X Не меняется I X X Не меняется Таблица 4.6. Таблица истинности регистра ИР37 Входы Выходы -EZ С D Q 0 0—>1 0 0 0 0—>1 1 1 0 0 X Не меняется 0 1 X Не меняется 1 X X Z Все регистры, имеющие выход с тремя состояниями, обес- печивают повышенную нагрузочную способность. Задержка пе- реключения регистров примерно соответствует задержке пере- ключения триггеров. Все временные ограничения, накладывае- мые на входные сигналы в случае триггеров (см. разд. 4.1.1), справедливы и для входных сигналов регистров. Например, не должна быть слишком малой длительность сигнала С, а также не должна быть слишком малой задержка между установлением
146 Глава 4 сигнала D и приходом положительного фронта сигнала С. Ина- че работа регистра может быть нестабильной или даже непра- вильной. Одно из основных применений регистров состоит в хране- нии требуемого кода в течение нужного времени. Если для ра- боты остальной части схемы необходимо иметь входной код, который можно легко изменять, то для этого как раз подходит регистр. На рис. 4.20 показана типичная схема включения регистра для хранения кода и временная диаграмма его работы. Код на входе регистра может изменяться произвольным образом, но в тот момент, когда этот код принимает необходимое значение, на вход С триггера подается синхросигнал (строб), который запи- сывает код в регистр. Этот код будет храниться в регистре до прихода следующего строба. Причем важно и то, что все разряды выходного кода регистра будут переключаться одновременно да- же в том случае, когда разряды входного кода переключаются не одновременно. Главное, чтобы к приходу положительного фронта строба (сигнала С) все разряды входного кода приняли нужное, устойчивое значение. 1 Код 1 О'Код 2 ]( -Л------Л— j Код 1 I Код 2 Рис. 4.20. Хранение кода в параллельном регистре. Еще одно важнейшее применение регистров связано с запо- минанием нескольких последовательных значений изменяю- щегося входного кода. Это позволяет, например, сравнивать предыдущее значение кода с последующим значением этого же кода или производить арифметические операции над не- сколькими последовательными значениями одного и того же кода. То есть регистр в данном случае выступает как элемент линии задержки, хранящей в себе историю поведения входно- го кода.
Применение триггеров и регистров 147 Для примера на рис. 4.21 показана схема вычисления разно- сти двух последовательных значений входного кода. Такая за- дача возникает в частности при цифровой обработке аналоговых сигналов. Последовательные значения входного 4-разрядного кода сопровождаются тактовым сигналом, по положительному фронту которого производится запись в два последовательно включенных регистра. Когда на выходе регистра RG1 присутст- вует N-e значение входного кода, на выходе регистра RG2 будет (N-l)-e значение этого же кода. таиДП_^Т_|“ЦП-4П-Д_Ц“1 Входной КОДТ] ypHYnriPWi Г „ У-X— Код разности RG2~~X К тактов N и (N-1) RG3-S—i—i—Ъ-^гЧг-г- Рис. 4.21. Схема вычисления разности значений кодов в двух последователь- ных тактах. Подавая эти два кода с выходов регистров на 4-разрядный сумматор, включенный в режиме вычитания (см. рис. 3.22), мы получаем на выходе сумматора код разности между N-м значе- нием и (N-l)-M значением. В данном случае очень удобен ре- гистр ТМ8, имеющий инверсные выходы. Для обеспечения строго одновременного изменения выходных сигналов сумма- тора можно включить дополнительный выходной регистр RG3, тактируемый тем же самым общим тактовым сигналом. Правда, код разности при этом будет задержан на один такт. Регистры также широко используются для организации кон- вейерной обработки, позволяющей существенно повысить так- товую частоту работы схемы. Ускорение при этом достигается
148 Глава 4 за счет распараллеливания работы нескольких последовательно включенных узлов схемы. Пусть, например, последовательность входных кодов, сле- дующих с периодом Т, поступает на вход цепочки из двух уз- лов, производящих обработку или преобразование этих кодов (рис. 4.22). Узлы эти могут представлять собой комбинацион- ные микросхемы (например сумматоры) или более сложные устройства, включающие в себя микросхемы счетчиков или микросхемы памяти. Главное состоит в том, что выходные сиг- налы этих узлов выставляются не мгновенно, а в течение како- го-то конечного времени, величина которого определяется внутренним строением узла. Пусть задержка установления вы- ходного кода первого узла равняется ti, а задержка установле- ния выходного кода второго узла составляет t2. Очевидно, что период следования входных кодов Т не должен быть меньше, чем сумма этих двух задержек: Т > t[+t2- Иначе код на выходе цепочки может никогда не принять устой- чивого значения, так как переходный процесс предыдущего так- та будет сменяться переходным процессом следующего такта. То есть быстродействие узлов накладывает жесткое ограниче- ние на тактовую частоту. Рис. 4.22. Работа последовательной цепочки двух узлов. Ф Выходной код Однако можно обойти это ограничение, если воспользовать- ся принципом конвейера, заставить узлы работать не последова- тельно, а параллельно. Это достигается включением между уз- лами регистра, тактируемого входным тактовым сигналом. Еще один регистр целесообразно включить на входе второго узла, что обеспечит длительность устойчивого кода на выходе всего устройства, равную длительности периода тактового сигнала Т
Применение триггеров и регистров 149 (рис. 4.23). В результате ограничение на период тактового сиг- нала становится более мягким: Т не должно быть меньше мак- симальной из двух величин ti и t2 с добавлением времени за- держки регистра: Т > max {ti,t2} + Irg* То есть к следующему фронту тактового сигнала должен закон- чить свою работу самый медленный из узлов, и тогда его вы- ходной код будет записан в регистр правильно. т ч Такт ' | I | I | I | L— ^додной =><-------* Ф - ;Ж------. ТЯГ---ПК ;Ж ’ фг~з~х~т-=±~г" (3)" — пк~ {ж ~ Ж ~ ~"'Ж — Выходной X у _ X х---------~ Рис. 4.23. Конвейерная обработка с помощью регистров. Точно так же можно построить конвейер на любое количе- ство последовательно включенных узлов. Конечно, в результате введения конвейера происходит задержка выполнения полной функции устройства на число тактов, равное числу введенных регистров. Однако в том случае, когда необходимо обрабаты- вать большие последовательности входных кодов, эта задержка наблюдается только один раз — в самом начале последователь- ности, а затем уже она не имеет значения. Регистры могут также применяться в составе вычислителей, выполняя функцию накопителя результата вычислений. В дан- ном случае мы уже имеем дело с более сложной обработкой информации, чем в случае чисто комбинационных схем. С каж- дым тактом в регистре обновляется содержимое, являющееся результатом математической обработки входного кода и резуль- тата предыдущего вычисления.
150 Глава 4 Рассмотрим два примера схем таких вычислителей. Первая схема известна как накапливающий сумматор, применяющийся, например, в цифровых генераторах аналого- вых сигналов. В самом названии схемы отражена ее функция: она суммирует и накапливает результат. Накапливающий сум- матор (рис. 4.24) состоит из сумматора и выходного регистра, охваченных обратной связью. Выходной код Рис. 4.24. Структура накапливающего сумматора. Таким образом, на один вход сумматора подается код с вы- ходов регистра, а на другой вход — входной код. В результате с каждым следующим фронтом тактового сигнала в регистр запи- сывается код суммы входного кода с предыдущим содержимым регистра, с предыдущей суммой. Например, если входной код равен 3, а в регистре записан код 6, то в следующем такте в ре- гистр будет записан код 9 (то есть 6+3), в следующем такте — код 12 (то есть 9+3) и т. д. Получается, что на выходе накапли- вающего сумматора формируется равномерно увеличивающий- ся двоичный код, и шаг этого увеличения можно менять. В дан- ном случае удобно применять регистр со сбросом, например ИР35. Отметим три особенности накапливающего сумматора. Во-первых, когда выходной код достигает максимальной величины (становится больше 2П, где п — количество разрядов регистра), происходит переполнение схемы и возобновление ее работы с минимальных значений кода. Однако совсем не обяза- тельно в следующем цикле работы будут повторены те же зна- чения кода, что и в предыдущем. Например, пусть п равняется 4, то есть максимальное число на выходе регистра равно 1111 в двоичном коде или 15 в десятичном коде. Пусть входной код равен 3. Тогда после начального сброса регистра выходной код будет нарастать так: 0, 3, 6, 9, 12, 15, 2, 5, 8, 11, 14, 1, 4, ... Это
Применение триггеров и регистров 151 происходит потому, что суммирование чисел 15 и 3 даст 18 или в двоичном коде 10010, а так как мы работаем только с млад- шими четырьмя разрядами, у нас получится 0010 или 2. Во-вторых, особенность накапливающего сумматора состоит в том, что при больших значениях входного кода (больших по- ловины максимально возможной величины) он может рассмат- риваться как накапливающий вычитатель. Пусть, например, входной код 4-разрядного сумматора равен 15(1111 в двоичном коде), а в регистре записано число 13 (1011 в двоичном коде). В следующем такте в регистр запишется сумма 1101 + 1111 = 11100, а без старшего разряда — 1100, то есть 12. То есть вы- ходной код уменьшился на единицу. Наконец, в третьих, совсем не обязательно, чтобы шаг на- растания выходного кода накапливающего сумматора был це- лым числом (то есть 0, 1, 2, 3, ...). Если в качестве выходного кода берутся не все, а только старшие разряды регистра, то шаг нарастания вполне может быть дробным, например, 0,5, 1,25 или 3,75. Не вошедшие в выходной код разряды будут иметь вес 2-1 (то есть 0,5), 2-2 (то есть 0,25) и т. д. Правда результат сум- мирования в выходном коде будет представлен с точностью до целых чисел. При этом возможна ситуация, когда в течение не- скольких тактов код на выходе не меняется, например, при входном коде 0,5 выходной код будет меняться один раз на два такта, а при входном коде 0,25 — один раз на четыре такта. На рис. 4.25 показана схема 8-разрядного накапливающего сумматора на двух микросхемах сумматоров ИМ6 и одном ре- гистре ИР35. В качестве выходного кода используется только 6 старших разрядов с выхода регистра, поэтому задание шага приращения возможно с точностью до 0,25. Максимально воз- можная частота тактового сигнала может быть определена по формуле: Т > tsM + Irg» где Т — период тактового сигнала, tsM — задержка 8-разрядного сумматора, a tRG — задержка регистра. Последний пример применения регистров, который мы рас- смотрим, — это вычислитель максимального значения входного кода. Такой вычислитель, например, может применяться в схе- мах цифровых осциллографов для измерения амплитуды вход- ного аналогового сигнала.
152 Глава 4 Рис. 4.25. Накапливающий сумматор. Пусть мы имеем последовательность входных кодов, и нам необходимо выявить экстремальный (то есть максимальный или минимальный) код из всей этой последовательности. Эта задача решается довольно просто путем применения компаратора ко- дов и регистра, охваченных обратной связью (рис. 4.26). Рис. 4.26. Вычислитель экстремального значения входного кода.
Применение триггеров и регистров 153 В данном случае удобно использовать регистр со входом разрешения записи (ИР27). В регистре сохраняется код экстре- мума (максимума или минимума), 8-разрядный компаратор, со- ставленный из двух микросхем СП1, сравнивает содержимое регистра и текущее значение входного кода. Элемент Исклю- чающее ИЛИ выполняет функцию управляемого инвертора, вы- бирая режим вычисления максимума (единица на управляющем входе) или минимума (нуль на управляющем входе). Допустим, мы вычисляем максимум. При этом запись в ре- гистр текущего значения входного кода будет производиться только в том случае, когда это текущее значение больше числа, содержащегося в регистре. На выходе «>» компаратора кодов будет тогда сигнал логической единицы, а на входе разрешения записи регистра -WE — сигнал логического нуля. Если же те- кущее значение входного кода меньше кода, содержащегося в регистре, запись не производится. После окончания входной по- следовательности кодов (или после окончания одного ее перио- да при периодической последовательности) в регистре останет- ся максимальное значение входного кода. Аналогично вычисляется и минимум, только в данном слу- чае в регистр будет записываться не только код, меньший числа в регистре, но и код, равный этому числу. Понятно, что на ко- нечный результат вычисления это никак не повлияет. 4.2.2. Регистры, срабатывающие по уровню Параллельные регистры, срабатывающие по уровню строби- рующего сигнала (или, как их еще называют, регистры-за- щелки, английское Latch), можно рассматривать как некий гибрид между буфером и регистром. Когда сигнал на строби- рующем входе единичный, такой регистр пропускает через себя входные информационные сигналы, а когда строби- рующий сигнал становится равен нулю, регистр переходит в режим хранения последнего из пропущенных значений вход- ных сигналов. Применение таких регистров сильно ограничено, хотя ино- гда они довольно удобны. В некоторых схемах они могут ус- пешно заменять регистры, срабатывающие по фронту, а в дру- гих схемах их применение вместо регистров, срабатывающих по фронту, недопустимо.
154 Глава 4 В стандартных сериях микросхем регистры, срабатывающие по уровню, представлены гораздо меньше, чем регистры, срабаты- вающие по фронту. На рис. 4.27 в качестве примеров показаны две микросхемы этого типа: 4-разрядного регистра ТМ7 и 8-раз- рядного регистра ИР22. Стробирующие входы С нередко на схемах обозначают Е (от английского Enable — разрешение) для того, чтобы не путать их с тактовыми входами D-триггеров. ---DO ---D1 ---C1 ---D2 — D3 ---С2 RG ТМ7 О 1 2 3 4 5 6 7 С 'EZ RG О — 1 — 2 — 3 — 4 — 5 — 6 — 7 — ИР22 Рис. 4.27. Регистры, срабатывающие по уровню. Микросхему ТМ7 (и близкую к ней ТМ5) часто называют на- бором триггеров, но ее можно рассматривать и как регистр. Мик- росхема состоит из четырех триггеров, стробирующие входы кото- рых С соединены попарно, то есть можно говорить о двух двухраз- рядных регистрах-защелках. Входы С1 и С2 микросхемы управля- ют каждый двумя разрядами данных. Все триггеры имеют как пря- мые, так и инверсные выходы, что иногда очень удобно. Таблица истинности микросхемы ТМ7 приведена ниже (табл. 4.7). Таблица 4.7. Таблица истинности регистра ТМ7 Входы Выходы D С Q -Q 0 1 0 1 1 1 1 0 0 0 Не меняется 1 0 Не меняется При единице на входе С выходные сигналы повторяют входные, то есть регистр работает как обычный буфер с прямы- ми и инверсными выходами. При нуле на входе С на выходе ре-
Применение триггеров и регистров 155 гистра постоянно хранится та входная информация, которая бы- ла в момент прихода отрицательного фронта сигнала С. Однако говорить, что регистр ТМ7 срабатывает по отрицательному фронту сигнала С, неверно, так как информация на выходе ме- няется не только по этому фронту, но и в момент изменения входных сигналов при С = 1. Регистр ИР22 отличается от ТМ7 тем, что имеет выходы с тремя состояниями (и соответственно вход разрешения всех вы- ходов -EZ) и тем, что всеми восемью разрядами управляет один стробирующий сигнал С. Суть работы от этого не изменяется. При единице на входе С регистр работает как буфер- повторитель, а при нуле на входе С — хранит ту информацию, которая была на входе в момент отрицательного фронта сигнала С. Выходы у регистра ИР22 только прямые. Как и все регистры с тремя состояниями выхода, регистр ИР22 имеет повышенную нагрузочную способность. Таблица истинности регистра ИР22 приведена ниже (табл. 4.8). Таблица 4.8. Таблица истинности регистра ИР22 Входы Выход -EZ С D Q 0 1 1 1 0 1 0 0 0 0 X Не меняется 1 X X Z Величины задержек триггеров, срабатывающих по уровню, в 1,5—2 раза превышают задержки D-триггеров. Для правильной работы микросхем положительный импульс на входе С не дол- жен быть слишком коротким, а задержка между изменением информации на входе D и отрицательным фронтом сигнала С не должна быть слишком малой. Информация на входе D не долж- на слишком быстро сниматься после отрицательного фронта сигнала С. Основное применение регистра, срабатывающего по уровню стробирующего сигнала, состоит в запоминании на какое-то за- данное время входного кода, причем в остальное время выход- ной код регистра должен повторять входной (рис. 4.28). Стро-
156 Глава 4 бирующий сигнал С в этом случае должен быть отрицательным на все время запоминания, и запоминаться будет входной код регистра в момент отрицательного (переднего) фронта сигна- ла С. Подобная функция бывает, например, необходима при по- строении устройств сопряжения для компьютеров. Регистр, по сути, продлевает во времени необходимое значение входного кода, в остальное время работая как повторитель. Входной код Строб- О - 1 — 2 — 3 - 4 — 5 — 6 — _7 — С о — 1 - 2 - 3 - 4 - 5 - 6 - 7 — Выходной •код Входной код Строб Выходной код ГКод! Г~ГКод2Г 1 Г1 । • II. ’ 7 ' Код 1 ^ОД2Г Рис. 4.28. Продление длительности входного кода с помощью регистра-за- щелки. Выходной •код Входной код Строб I ГТ"~ j | П | | Код 1 Гкод2 Выходной код Рис. 4.29. Использование регистра-защелки для замены регистра, срабаты- вающего по фронту. В ряде случаев регистры данного типа могут успешно заме- нять регистры, срабатывающие по фронту. Например, такая за- мена возможна в случае необходимости запоминания входного кода по сигналу С до момента прихода следующего сигнала С (рис. 4.29). Сигнал С в данном случае должен быть коротким положи- тельным импульсом, причем он обязательно должен быть «вло- жен» в запоминаемый входной код, то есть начинаться после начала (момента установления) кода, а заканчиваться до конца (момента снятия) кода (это так называемый вложенный цикл).
Применение триггеров и регистров 157 По переднему фронту сигнала С регистр перейдет в режим про- пускания входного кода, а по заднему — в режим его хранения. Поэтому записываемый код на выходе регистра появится по по- ложительному фронту сигнала С, то есть точно так же, как и в случае регистра, срабатывающего по фронту. Однако подобная замена регистра, срабатывающего по фрон- ту, на регистр, срабатывающий по уровню, возможна далеко не всегда. Некоторые схемы в принципе не могут работать с регист- ром-защелкой даже при очень коротком сигнале на входе С. Примером может служить уже упоминавшаяся схема накапли- вающего сумматора, которая работает исключительно с регист- ром, срабатывающим по фронту. Ведь при единичном сигнале на входе С регистр-защелка тут же перейдет в состояние пропуска- ния входного кода, и в результате замкнется лавинообразная об- ратная связь: код с выхода регистра будет складываться со вход- ным кодом .бесконечное число раз (рис. 4.30). Конечно, при ко- ротком импульсе на входе С этот неуправляемый процесс быстро прекратится, но что за информация в результате останется в реги- стре после окончания сигнала С, предсказать невозможно. Рис. 4.30. Лавинообразная обратная связь в накапливающем сумматоре с реги- стром-защелкой. И таких схем, принципиально не допускающих применения регистра-защелки, довольно много. Именно поэтому примене- ние их сильно ограничено, а выбор микросхем в стандартных сериях невелик. 4.2.3. Сдвиговые регистры Регистры сдвига или сдвиговые регистры (английское Shift Register) представляют собой, как уже отмечалось, последо- вательно соединенную цепочку триггеров. Основной режим
158 Глава 4 их работы — это сдвиг разрядов кода, записанного в эти триггеры, то есть по тактовому сигналу содержимое каждого предыдущего триггера переписывается в следующий по по- рядку в цепочке триггер. Код, хранящийся в регистре, с каж- дым тактом сдвигается на один разряд в сторону старших разрядов или в сторону младших разрядов, что и дало назва- ние регистрам данного типа. С названиями направлений сдвига в сдвиговых регистрах часто возникает путаница. Сдвиг бывает двух видов: вправо (основной режим, который есть у всех сдвиговых регистров) и влево (этот режим есть только у некоторых, реверсивных сдви- говых регистров). Названия эти отражают внутреннюю структу- ру регистров сдвига (рис. 4.31) и перезапись сигналов последо- вательно по цепочке триггеров. При этом триггеры, вполне ес- тественно, нумеруются слева направо, например, от 0 до 7 (или от 1 до 8) для 8-разрядных регистров. В результате сдвиг ин- формации регистром вправо представляет собой сдвиг в сторону разрядов, имеющих большие номера, а сдвиг информации реги- стром влево — это сдвиг в сторону разрядов, имеющих меньшие номера. Сдвиг вправо Рис. 4.31. Направление сдвига в сдвиговых регистрах. Однако, как известно, в любом двоичном числе слева распо- ложены старшие разряды, а справа — старшие разряды. Поэто- му сдвиг двоичного числа вправо будет сдвигом в сторону младших разрядов, а сдвиг влево — сдвигом в сторону старших разрядов. Это противоречие не чей-то злой умысел, просто так сложилось исторически, и об этом надо помнить разработчику цифровой аппаратуры. В стандартные серии цифровых микросхем входит несколь- ко типов сдвиговых регистров, отличающихся возможными ре- жимами работы, режимами записи, чтения и сдвига, а также ти-
Применение триггеров и регистров 159 пом выходных каскадов (2С или ЗС). Большинство регистров сдвига имеет восемь разрядов. На рис. 4.32 представлены для примера четыре типа микросхем регистров сдвига. Рис. 4.32. Сдвиговые регистры. Регистр ИР8 — наиболее простой из регистров сдвига. Он представляет собой 8-разрядную линию задержки, то есть имеет только один информационный вход, на который подается по- следовательная сдвигаемая информация (точнее, два входа, объ- единенных по функции 2И), и восемь параллельных выходов. Сдвиг в сторону выходов со старшими номерами осуществляет- ся по переднему фронту тактового сигнала С. Имеется также вход сброса -R, по нулевому сигналу на котором все выходы ре- гистра сбрасываются в нуль. Таблица истинности регистра ИР8 приведена ниже (табл. 4.9). Таблица 4.9. Таблица истинности регистра сдвига ИР8 Входы Выходы -R С D1 D2 Q0 Q1 Q7 0 X X X 0 0 0 1 0 X X Не меняются 1 1 X X Не меняются 1 0—>1 1 1 1 Q0 Q6 1 0—>1 0 X 0 Q0 Q6 1 0—>1 X 0 0 Q0 Q6
160 Глава 4 Регистр ИР9 выполняет функцию, обратную регистру ИР8. Если ИР8 преобразует входную последовательную информацию в выходную параллельную, то регистр ИР9 преобразует вход- ную параллельную информацию в выходную последователь- ную. Однако суть сдвига не меняется, просто в регистре ИР9 все внутренние триггеры имеют выведенные параллельные входы, и только один, последний триггер имеет выход (причем как пря- мой, так и инверсный). Запись входного кода в регистр произ- водится по нулевому сигналу на входе -WR. Сдвиг осуществля- ется по положительному фронту на одном из двух тактовых входов С1 и С2, объединенных по функции 2ИЛИ. Имеется также вход расширения DR, сигнал с которого в режиме сдвига перезаписывается в младший разряд сдвигового регистра. Таб- лица истинности регистра ИР9 приведена ниже (табл. 4.10). Таблица 4.10. Таблица истинности регистра сдвига ИР9 Входы Функция -WR С1 С2 0 X X Параллельная запись 1 1 X Хранение 1 X 1 Хранение 1 0 0—>1 Сдвиг 1 0—>1 0 Сдвиг Как и все остальные сдвиговые регистры, регистры ИР8 и ИР9 допускают каскадирование, то есть совместное включение для увеличения разрядности. На рис. 4.33 показано объединение трех регистров ИР8, а на рис 4.34 — совместное включение трех регистров ИР9. В обоих случаях в результате объединения по- лучается 24-разрядный сдвиговый регистр. При этом увеличе- ние разрядности не приводит к увеличению задержки сдвига, так как тактовые входы всех используемых регистров объеди- няются параллельно. В случае регистров ИР8 входной последо- вательный код преобразуется в 24-разрядный выходной парал- лельный код. В случае регистров ИР9 входной 24-разрядный параллельный код преобразуется в выходной последователь- ный код.
Применение триггеров и регистров 161 Регистр ИР 13 соединяет в себе возможности регистров ИР8 и ИР9. Он имеет как восемь входов для параллельной записи, так и соответствующие им восемь выходов параллельной информации. Сдвиг осуществляется по положительному фронту тактового сиг- нала С, причем сдвиг возможен как в сторону старших разрядов (вправо), так и в сторону младших разрядов (влево). Для наращива- ния разрядности у регистра ИР 13 имеются последовательные ин- формационные входы DR и DL, сигналы с которых вводятся соот- ветственно в младший и в старший разряды. Предусмотрен сброс всех выходов регистра в нуль по нулевому сигналу на входе -R. Рис. 4.33. Соединение регистров ИР8 для увеличения разрядности. DR RG DR RG -WR- С1- С2- — О — 1 — 2 — 3 — 4 — 5 — 6 — 7 - WR 1 С1 С2 — О — 1 — 2 — 3 — 4 — 5 — 6 — 7 - WR 1 С1 С2 Рис. 4.34. Соединение регистров ИР9 для увеличения разрядности. Режим работы регистра ИР 13 определяется двумя управ- ляющими входами SR и SL. При единице на входе SR и нуле на входе SL по фронту сигнала С происходит сдвиг в сторону старших разрядов. При нуле на входе SR и единице на входе SL по фронту сигнала С происходит сдвиг в сторону младших раз- рядов. При обоих единичных сигналах на входах SR и SL по 6 - 4589
162 Глава 4 фронту сигнала С происходит параллельная загрузка информа- ции в регистр. Все это видно из таблицы истинности регистра ИР 13 (в табл. 4.11). Отметим, что регистр ИР 13 применяется заметно реже, чем более простые регистры ИР8 и ИР9, так как задач, в которых были бы нужны все возможности регистра ИР 13 не так уж мно- го, а управление работой регистра ИР 13 довольно сложное. Таблица 4.11. Таблица истинности регистра ИР13 Входы Функция С -R SR SL X 0 X X Сброс 0—>1 1 1 0 Сдвиг вправо 0—>1 1 0 1 Сдвиг влево 0—>1 1 0 0 Хранение 0—>1 1 1 1 Параллельная запись Наконец, последний сдвиговый регистр, который мы рас- смотрим подробнее, это регистр ИР24. По своим возможностям он близок к ИР 13, однако его главной особенностью является двунаправленная параллельная шина данных. То есть одни и те же выводы микросхемы используются как для параллельной за- писи информации в регистр, так и для параллельного чтения информации из регистра. При этом двунаправленные выводы данных имеют повышенную нагрузочную способность. Это по- зволяет легко сопрягать регистр ИР24 с многоразрядными мик- росхемами памяти и с двунаправленными буферами. Поэтому применяется данный регистр чаще, чем ИР 13. Регистр ИР24 обеспечивает сдвиг информации в обоих на- правлениях. Имеются входы расширения DR и DL, а также вы- ходы расширения Q0 и Q7, что позволяет легко наращивать раз- рядность. Отличие выходов Q0 и Q7 от нулевого и седьмого разрядов данных состоит в том, что Q0 и Q7 — однонаправлен- ные, то есть в любом режиме работы выдают информацию с выходов внутренних триггеров младшего и старшего разрядов. Тактируется регистр положительным фронтом сигнала С. Пре- дусмотрен сброс регистра нулевым сигналом на входе -R.
Применение триггеров и регистров 163 Режим работы микросхемы определяется сигналами на управляющих входах SR и SL. При единичном сигнале на SR и нулевом сигнале на SL по положительному фронту сигнала С происходит сдвиг информа- ции вправо (в сторону разрядов с большими номерами). Запись в разряд 0 производится при этом со входа расширения DR. При единичном сигнале на SL и нулевом сигнале на SR по положительному фронту сигнала С происходит сдвиг инфор- мации влево (в сторону разрядов с меньшими номерами). Запись в разряд 7 производится при этом со входа расширения DL. При обоих нулях на входах SR и SL регистр переходит в ре- жим хранения. Во всех этих случаях разряды данных работают как вход или как выход в зависимости от сигналов -EZ. При обеих единицах на входах SR и SL по положительному фронту С в регистр записывается параллельный код, причем разряды данных переходят в состояние приема независимо от сигналов -EZ. Таблица истинности регистра ИР24 приведена ниже (табл. 4.12). Таблица 4.12. Таблица истинности регистра ИР24 Входы Функция -R С SR SL 0 X X X Сброс 1 0—>1 1 0 Сдвиг вправо 1 0—>1 0 1 Сдвиг влево 1 0—>1 1 1 Параллельная запись 1 X 0 0 Хранение Объединяя два регистра ИР24, легко получить 16-разрядный сдвиговый регистр с сохранением всех возможностей одной микросхемы (рис. 4.35). Точно так же можно объединять и большее количество микросхем. Главное применение всех регистров сдвига состоит в преобра- зовании параллельного кода в последовательный и наоборот. Такое преобразование используется, например, при передаче информации на большие расстояния (в информационных сетях), при записи ин- формации на магнитные носители, при работе с телевизионными мониторами и с видеокамерами, а также во многих других случаях. 6*
164 Глава 4 Рис. 4.35. Объединение регистров ИР24 для увеличения разрядности. В качестве примера на рис. 4.36 показана простейшая схема передачи цифровой информации в последовательном коде по двум линиям: информационной и синхронизующей. Такая пере- дача позволяет сократить количество соединительных проводов, а также упростить защиту передаваемых данных от действия внешних электромагнитных помех, правда, ценой снижения скорости передачи. Рис. 4.36. Последовательная передача информации с помощью регистров сдвига. На передающем конце (слева на рисунке) с помощью сдви- гового регистра ИР9 входной параллельный 8-разрядный код преобразуется в последовательность разрядов данных, следую- щих с частотой тактового сигнала. На приемном конце (справа
Применение триггеров и регистров 165 на рисунке) с помощью сдвигового регистра ИР8 эта последова- тельность разрядов данных снова преобразуется в параллельный код. Оба регистра тактируются одним и тем же тактовым сигна- лом, который передается по линии связи параллельно с после- довательностью данных. Для увеличения надежности передачи информационный сигнал дополнительно задерживается относи- тельно фронта тактового сигнала с помощью цепочки из двух инверторов. Первый бит последовательного входа (со входа 7 регистра ИР9) начинает передаваться с началом сигнала записи -Зап. Следующие разряды передаются с каждым следующим положи- тельным фронтом тактового сигнала С. Последним передается сигнал со входа 0. В регистр ИР8 разряды последовательного кода записываются в том же самом порядке, в каком они были в регистре ИР9. По окончании передачи первый переданный сиг- нал данных, окажется в разряде 7 шины данных регистра ИР 8, а последний переданный сигнал данных — в разряде 0. Следующее применение сдвиговых регистров состоит в организации всевозможных линий задержек, особенно име- ющих значительное количество каскадов. С помощью сдви- говых регистров можно обеспечить задержку любого входно- го сигнала на целое число тактов. Правда, надо учитывать, что длительность входного сигнала (и любого его элемента) будет также передаваться по линии задержки с точностью до одного такта. Такие линии задержки могут применяться для сравнения нескольких последующих тактов входного сигна- ла, для выполнения арифметических операций с несколькими тактами входного сигнала, для других подобных целей. Рабо- та линии задержки на регистре сдвига иллюстрируется рис. 4.37. ИР8 Рис. 4.37. Линия задержки входного сигнала на регистре сдвига.
166 Глава 4 Сдвиговые регистры могут также применяться для форми- рования импульсов заданной длительности, причем длитель- ность импульса может задаваться управляющим кодом, то есть быть программно управляемой. На рис. 4.38 приведена возмож- ная схема такого формирователя. Рис. 4.38. Формирователь импульсов с длительностью, задаваемой управляю- щим кодом. В исходном состоянии (до прихода положительного фронта входного сигнала) триггер сброшен в нуль, на всех выходах ре- гистра сдвига нули, на инверсном выходе мультиплексора еди- ница. На мультиплексор подан управляющий код, определяю- щий длительность выходного сигнала. При поступлении поло- жительного фронта входного сигнала триггер перебрасывается в единицу (начало действия выходного импульса), и этот единич- ный сигнал начинает последовательно сдвигаться регистром сдвига по каждому фронту тактового сигнала. Пусть управляющий код равен 5. Тогда в тот момент, когда на выходе 5 сдвигового регистра появится единица, она будет передана на выход мультиплексора КП7 с инверсией. При этом нулевой сигнал на входе -R триггера сбросит триггер в нуль, что соответствует окончанию действия выходного импульса. Таким образом, длительность выходного сигнала будет оп- ределяться управляющим кодом. Погрешность установки этой длительности равна одному периоду тактового сигнала и зави- сит от временного сдвига между фронтом входного сигнала и фронтом ближайшего к нему тактового импульса. Чем больше длительность выходного сигнала, тем меньше относительная погрешность установки его точности. Например, при управ-
Применение триггеров и регистров 167 ляющем коде 0 длительность выходного сигнала может быть от О до Т, где Т — период тактового сигнала. А при управляющем коде 7 длительность выходного сигнала будет от 7Т до 8Т. При этом мы не учитываем задержек триггера, сдвигового регистра и мультиплексора. Сдвиговые регистры могут также использоваться для умно- жения и деления двоичных чисел на 2”, где п — целое число, большее нуля. Сдвиг двоичного числа вправо (в сторону млад- ших разрядов) на один разряд равносилен делению на 2. Сдвиг двоичного числа влево (в сторону старших разрядов) на один разряд равносилен умножению на 2. Для того чтобы сдвиговый регистр умножал и делил двоичный код, надо всего лишь запи- сать этот код в регистр и сдвинуть его нужное количество раз вправо или влево. Наиболее удобен для этого регистр ИР13. При этом необходимо, чтобы в освободившиеся разряды вводились нули, то есть на входы расширения DR и DL регистра нужно подать нулевые сигналы. Наконец, последнее применение сдвигового регистра, кото- рое мы рассмотрим, — это генератор случайной последователь- ности сигналов или случайной последовательности кодов. Стро- го говоря, последовательности будут не полностью случайные, а квазислучайные, то есть будут периодически повторяться, но период этот довольно большой. Случайные последовательности сигналов и кодов широко применяются в тестирующей аппара- туре, в генераторах шума, в логических игровых устройствах. Задача состоит в том, чтобы выходной сигнал или код менял свое состояние случайно (или почти случайно). Сигнал должен случайно переключаться из 0 в 1 и из 1 в 0, а код должен слу- чайно принимать значения из диапазона от 0 до (2N-1), где N — число разрядов кода (например, от 0 до 255 при 8-разрядном коде). Псевдослучайные последовательности имеют то преиму- щество перед истинно случайными, что они предсказуемые и периодические, но в этом же и их недостаток. Структура генератора квазислучайной последовательности на сдвиговом регистре очень проста (рис. 4.39). Она представля- ет собой регистр сдвига с параллельными выходами (например, ИР8), несколько (минимум два) выходных сигналов которого, объединены с помощью элемента Исключающее ИЛИ, с выхода которого сигнал подается на вход регистра, замыкая схему в кольцо. Схема тактируется сигналом с частотой fT.
168 Глава 4 Рис. 4.39. Структура генератора псевдослучайной последовательности. Выбор номеров разрядов для подключения обратной связи представляет собой непростую задачу, но существуют справоч- ные таблицы, в которых они приведены. В любом случае одна из точек подключения — выход старшего разряда. В табл. 4.13 приведены точки подключения обратной связи для регистров сдвига с разным количеством разрядов N (номера разрядов счи- таются от нуля). Таблица 4.13. Точки подключения обратной связи N 7 8 15 16 24 31 Выходы 6,5 7, 6, 4, 2 14, 13 15, 13, 12, 10 23, 22, 21, 16 30, 17 Из таблицы видно, что выгоднее брать число разрядов не кратное 8, например, 7, 15 или ЗЕВ этом случае для обратной связи используются всего лишь два выхода, то есть достаточно одного двухвходового элемента Исключающее ИЛИ. Период выходной последовательности генератора составля- ет (2n -1) тактов, где N — количество разрядов регистра сдвига. За это время каждое из возможных значений выходного кода (кроме одного) встречается один раз. Количество единиц в вы- ходном сигнале больше количества нулей на единицу. Выходной код ООО...О представляет собой запрещенное со- стояние, так как он блокирует работу генератора, воспроизводя сам себя снова и снова. Но в то же время получиться такой ну- левой код может только сам из себя, поэтому достаточно обес- печить, чтобы его не было при включении питания схемы. Частоты в спектре выходного сигнала будут следовать с ин- тервалом ff /(2N-1), а огибающая спектра будет практически по- стоянной до частоты 0,25fr, то есть шум до этой частоты можно считать белым (спад в 3 дБ происходит на частоте 0,45 fr).
Применение триггеров и регистров 169 Рис. 4.40. 31-разрядный генератор псевдослучайной последовательности на регистрах сдвига. На рис. 4.40 показана практическая схема генератора псев- дослучайной последовательности на 31-разрядном сдвиговом регистре. Обратная связь осуществляется с выходов 30 и 17 ре- гистра через двухвходовой элемент Исключающее ИЛИ с ин- вертором. Из-за применения инвертора запрещенным состояни- ем генератора является код 1111...1 (а не код 000...0), который в данном случае исключается очень просто — начальным сбро- сом регистров в нуль при включении питания по сигналу -Сброс. Генератор выдает квазислучайную последовательность 31-разрядных кодов со всех выходов регистра, а также квази- случайную последовательность нулей и единиц на любом из выходов регистра. Такой генератор использовала известная фирма Hewlett-Packard в своем генераторе шума.
Глава 5 ПРИМЕНЕНИЕ СЧЕТЧИКОВ Счетчики представляют более высокий, чем регистры, уровень сложности цифровых микросхем, имеющих внутреннюю память. Хотя в основе любого счетчика лежат те же самые триггеры, ко- торые образуют и регистры, но в счетчиках триггеры соединены более сложными связями, в результате чего их функции сложнее, и на их основе можно строить более сложные устройства, чем на регистрах. Точно так же, как и в случае регистров, внутренняя память счетчиков — оперативная, то есть ее содержимое сохра- няется только до тех пор, пока включено питание схемы. С вы- ключением питания память стирается, а при новом включении питания схемы содержимое памяти будет произвольным, случай- ным, зависящим только от конкретной микросхемы, то есть вы- ходные сигналы счетчиков будут произвольными. Счетчик Вх., Вых.1 Вых.2 Вых.З Вых.4 Вых.4 1 1 । । । । । I Вых.код 0 ! 1 1 2 ! 3 4 J 5 ! 6 ! 7 ! 8 Рис. 5.1. Работа 4-разрядного двоичного счетчика. Как следует из самого названия, счетчики предназначены для счета входных импульсов. То есть с приходом каждого но- вого входного импульса двоичный код на выходе счетчика уве- личивается (или уменьшается) на единицу (рис. 5.1). Срабаты- вать счетчик может по отрицательному фронту входного (такто- вого) сигнала (как на рисунке) или по положительному фронту входного сигнала. Режим счета обеспечивается использованием внутренних триггеров, работающих в счетном режиме. Выходы счетчика представляют собой как раз выходы этих триггеров. Каждый выход счетчика представляет собой разряд двоичного кода, причем разряд, переключающийся чаще других (по каж- дому входному импульсу), будет младшим, а разряд, переклю- чающийся реже других — старшим.
Применение счетчиков 171 Счетчик может работать на увеличение выходного кода по каждому входному импульсу, это основной режим, имеющий- ся во всех счетчиках, он называется режимом прямого счета. Счетчик может также работать на уменьшение выходного кода по каждому входному импульсу, это режим обратного или ин- версного счета, предусмотренный в счетчиках, йазываемых реверсивными. Инверсный счет бывает довольно удобен в схемах, где необходимо отсчитывать заданное количество входных импульсов. Большинство счетчиков работают в обычном двоичном ко- де, то есть считают от 0 до (2N— 1), где N — число разрядов вы- ходного кода счетчика. Например, 4-разрядный счетчик в режи- ме прямого счета будет считать от 0 (код 0000) до 15 (код 1111), а 8-разрядный — от 0 (код 0000 0000) до 255 (код 1111 1111). После максимального значения кода счетчик по следующему входному цмпульсу переключается опять в 0, то есть работает по кругу. Если же счет инверсный, то счетчик считает до нуля, а дальше переходит к максимальному коду 111... 1. Имеются также двоично-десятичные счетчики, предельный код на выходе которых не превышает максимального двоично- десятичного числа, возможного при данном количестве разря- дов. Например, 4-разрядный двоично-десятичный счетчик в режиме прямого счета будет считать от 0 (код 0000) до 9 (код 1001), а затем снова от 0 до 9. А 8-разрядный двоично- десятичный счетчик будет считать от 0 (код 0000 0000) до 99 (код 1001 1001). При инверсном счете двоично-десятичные счетчики считают до нуля, а со следующим входным импуль- сом переходят к максимально возможному двоично-десятич- ному числу (то есть 9 для 4-разрядного счетчика, 99 для 8-раз- рядного счетчика). Двоично-десятичные счетчики удобны, на- пример, при организации десятичной индикации их выходного кода. Применяются они гораздо реже обычных двоичных счет- чиков. По быстродействию все счетчики делятся на три большие группы: • асинхронные (или последовательные) счетчики; • синхронные счетчики с асинхронным переносом (или парал- лельные счетчики с последовательным переносом); • синхронные (или параллельные) счетчики.
172 Глава 5 Принципиальные различия между этими группами проявля- ются только на втором уровне представления, на уровне модели с временными задержками. Причем больше всего различия эти проявляются при каскадировании счетчиков. Наибольшим бы- стродействием обладают синхронные счетчики, наименьшим — асинхронные счетчики, наиболее просто управляемые среди других. Каждая группа счетчиков имеет свои области примене- ния, на которых мы и остановимся. 5.1. Асинхронные счетчики Асинхронные счетчики строятся из простой цепочки JK- триггеров, каждый из которых работает в счетном режиме. Вы- ходной сигнал каждого триггера служит входным сигналом для следующего триггера. Поэтому все разряды (выходы) асин- хронного счетчика переключаются последовательно (отсюда на- звание — последовательные счетчики), один за другим, начиная с младшего и кончая старшим. Каждый следующий разряд пе- реключается с задержкой относительно предыдущего (рис. 5.2), то есть, вообще говоря, асинхронно, не одновременно с вход- ным сигналом и с другими разрядами. Вх. Вых.1 Вых.2 Вых.З Вых.4 Вых.код Рис. 5.2. Временная диаграмма работы 4-разрядного асинхронного счетчика. Чем больше разрядов имеет счетчик, тем большее время ему требуется на полное переключение всех разрядов. Задержка пе- реключения каждого разряда примерно равна задержке тригге- ра, а полная задержка установления кода на выходе счетчика равна задержке одного разряда, умноженной на число разрядов счетчика. Легко заметить, что при периоде входного сигнала, меньшем полной задержки установления кода счетчика, пра- вильный код на выходе счетчика просто не успеет установиться, поэтому такая ситуация не имеет смысла. Это накладывает же-
Применение счетчиков 173 сткие ограничения на период (частоту) входного сигнала, при- чем увеличение, к примеру, вдвое количества разрядов счетчика автоматически уменьшает вдвое предельно допустимую частоту входного сигнала. Таким образом, если нам нужен выходной код асинхронного счетчика, то есть все его выходные сигналы (разряды) одновре- менно, то должно выполняться следующее неравенство: T>Nt„ где Т — период входного сигнала, N — число разрядов счетчи- ка, t3 — время задержки одного разряда. Надо еще учесть, что за период входного сигнала должно успеть сработать устройство (узел), на которое поступает вы- ходной код счетчика, иначе счетчик просто не нужен, поэтому ограничение на частоту входного сигнала обычно бывает еще жестче. В составе стандартных серий цифровых микросхем асин- хронных счетчиков немного. В качестве примера на рис. 5.3. приведены три из них: четырехразрядный двоично-десятичный счетчик ИЕ2, четырехразрядный двоичный счетчик ИЕ5 и вось- миразрядный двоичный счетчик ИЕ19 (он же сдвоенный четы- рехразрядный счетчик). Рис. 5.3. Асинхронные счетчики стандартных серий. У всех этих счетчиков управление работой очень простое: имеются лишь входы сброса в нуль или входы установки в 9 (только у ИЕ2). Все асинхронные счетчики работают по отрица- тельному фронту входного сигнала С (или, что то же самое, по заднему фронту положительного входного сигнала). У всех трех счетчиков выделены две независимые части, что увеличивает возможности их применения. При объединении этих двух час-
174 Глава 5 тей получается счетчик максимальной разрядности. Выходы счетчиков обозначают на схемах 0, 1, 2, 3, ... (как номера разря- дов выходного двоичного кода) или 1, 2, 4, 8, ... (как веса каж- дого разряда двоичного кода). Счетчик ИЕ2 имеет две части: один триггер (вход С1, вы- ход 1) и три триггера (вход С2 и выходы 2, 4, 8). Таким образом, он состоит из одноразрядного счетчика и трехразрядного счетчи- ка. Одиночный триггер работает в обычном счетном режиме, из- меняя свое состояние по каждому отрицательному фронту сигна- ла С1, то есть делит частоту входного сигнала на 2. Три остав- шихся триггера включены таким образом, чтобы считать до 5, то есть делить входную частоту сигнала С2 на 5. После достижения кода 4 (то есть 100) на выходах 2, 4 и 8 этот трехразрядный счет- чик по следующему отрицательному фронту сигнала С2 сбрасы- вается в нуль. В результате при объединении выхода 1 микросхе- мы со входом С2 мы получаем 4-разрядный двоично-десятичный счетчик, делящий частоту входного сигнала С1 на 10, сбрасы- вающийся в нуль после достижения на выходах 1, 2, 4, 8 кода 9 (то есть 1001) по отрицательному фронту сигнала С1. Счетчик ИЕ2 имеет два входа асинхронного сброса в нуль R1 и R2, объединенных по функции И, а также два входа уста- новки в 9 — S1 и S2, также объединенных по функции И, при- чем установка в 9 блокирует установку в нуль. Наличие этих входов сброса и установки позволяет строить на базе счетчика ИЕ2 делители частоты с разными коэффициентами деления. Правда, этот счетчик используется довольно редко, значительно реже, чем другие асинхронные счетчики ИЕ5 и ИЕ19. Таблица истинности асинхронного счетчика ИЕ2 при соеди- ненном выходе 1 и входе С2 (при 4-разрядном выходном коде) приведена ниже (табл. 5.1), а состояния выходов при счете входных импульсов по тактам представлены в табл. 5.2. Счетчик ИЕ5 точно так же, как и ИЕ2, имеет две части: один триггер (одноразрядный счетчик) со входом С1 и выходом 1 и три триггера (трехразрядный счетчик) со входом С2 и выходами 2, 4, 8. Оба счетчика двоичные, то есть первый считает до двух, а второй — до 8. При объединении входа С2 с выходом 1 полу- чается 4-разрядный двоичный счетчик, считающий до 16. Счет производится по отрицательному фронту входных сигналов С1 и С2. Предусмотрена возможность сброса счетчика в нуль по сигналам R1 и R2, объединенным по функции И.
Применение счетчиков 175 Таблица истинности счетчика ИЕ5 при соединении входа С2 и входа 1 (при 4-разрядном выходном коде) приведена ниже (табл. 5.3). Таблица 5.1. Таблица истинности счетчика ИЕ2 Входы Выходы С1 R1 R2 S1 S2 8 4 2 1 X 1 1 0 X 0 0 0 0 X 1 1 X 0 0 0 0 0 X X X 1 1 1 0 0 1 1—>0 X 0 X 0 Счет 1—>0 0 X 0 X Счет 1—>0 0 X X 0 Счет 1—>0 X 0 0 X Счет Таблица 5.2. Состояния выходов счетчика ИЕ2 при счете входных импульсов Такт Вых. 8 Вых.4 Вых.2 Вых. 1 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 1 0 0 1 10 0 0 0 0 Таблица 5.3. Таблица истинности счетчика ИЕ5 Входы Выходы С1 R1 R2 8 4 2 1 X 1 1 0 0 0 0 1—>0 0 X Счет 1—>0 X 0 Счет
176 Глава 5 Рис. 5.4. Объединение трех счетчиков ИЕ5 для увеличения разрядности. Объединять счетчики ИЕ5 для увеличения разрядности (кас- кадировать) очень просто: выход 8 предыдущего счетчика (вы- дающего более младшие разряды) нужно соединить со входом С1 следующего счетчика (выдающего более старшие разряды). На рис. 5.4 показано соединение трех счетчиков ИЕ5 для полу- чения 12-разрядного асинхронного счетчика со сбросом в нуль. Точно так же можно объединять и счетчики ИЕ2, добавляя при этом входы общей установки счетчика в код 99...9. Однако при объединении надо помнить, что добавление каждого нового разряда увеличивает общую задержку переключения получен- ного счетчика. Многоразрядный асинхронный счетчик может получиться неприемлемо медленным. Счетчик ИЕ19 можно считать сдвоенным вариантом счетчи- ка ИЕ5. Он включает в себя два идентичных независимых друг от друга 4-разрядных асинхронных счетчика, каждый из кото- рых имеет свой счетный вход С и свой вход сброса R. Считают оба счетчика, входящие в микросхему, по отрицательному фронту на своих входах С1 и С2. Сбрасываются они единичны- ми сигналами на своих входах сброса R1 и R2. Счетчики, входящие в микросхему ИЕ19, можно использо- вать самостоятельно, но можно и объединить их для получе- ния 8-разрядного асинхронного счетчика с выходами 1, 2, 4, 8, 16, 32, 64, 128. Для такого объединения достаточно соединить выход 8 первого счетчика со счетным входом С2 второго счет- чика. Если соединить два счетчика ИЕ19 (рис. 5.5), то полу- чится уже 16-разрядный асинхронный двоичный счетчик. При этом выход 8 второго счетчика соединяется со счетным вхо- дом С1 первого счетчика. Однако и в данном случае каждый следующий разряд переключается с задержкой после пере- ключения предыдущего.
Применение счетчиков 177 Рис. 5.5. Объединение двух счетчиков ИЕ19 для увеличения разрядности. Основное применение асинхронных счетчиков состоит в по- строении всевозможных делителей частоты, то есть устройств, вы- дающих выходной сигнал с частотой, в несколько раз меньшей, чем частота входного сигнала. В данном случае нас интересует не выходной код счетчика, то есть не все его разряды одновременно, а только один разряд, поэтому взаимные задержки отдельных разря- дов не играют роли, полная задержка переключения счетчика не имеет значения. Простейший пример делителя частоты на два — это триггер в счетном режиме или счетчик, выходным сигналом которого является выход первого, младшего разряда. При построении делителей частоты иногда важна не только частота выходного сигнала, но и его форма, его скважность, то есть отношение периода следования импульсов к длительности этих импульсов. В таких случаях чаще всего требуется меандр, то есть цифровой сигнал со скважностью, равной двум (дли- тельность импульсов равна длительности паузы между ними). Получить меандр из любого сигнала довольно просто: надо ис- пользовать дополнительный делитель частоты на 2, правда при этом частота выходного сигнала уменьшится еще вдвое. Простейший пример такого делителя частоты на десять при- веден на рис. 5.6. В делителе использован счетчик ИЕ2, у кото- рого одноразрядный внутренний счетчик включен после трех- разрядного внутреннего счетчика. Трехразрядный счетчик делит частоту входного сигнала на 5, но выходные импульсы имеют скважность, не равную двум (она равна 5). Одноразрядный счетчик делит частоту еще вдвое и одновременно формирует меандр. Задержки переключения разрядов счетчика относитель- но друг друга на рисунке не показаны (применяем первый уро- вень представления, логическую модель).
178 Глава 5 Рис. 5.6. Делитель частоты на 10, выдающий меандр. Иногда возникает задача деления частоты входного сигнала в произвольное число раз (не в 10 и не в 2П, что легко обеспечи- вается самой структурой стандартных счетчиков). В этом случае можно организовать сброс счетчика при достижении им тре- буемого кода путем введения обратных связей. Рис. 5.7. Делитель частоты на 9 с обратными связями. мп Например, на рис. 5.7 показан простейший делитель частоты на 9 на основе счетчика ИЕ5. При достижении его выходным кодом значения 9 (то есть 1001) счетчик автоматически сбрасы- вается в нуль по входам R1 и R2, и счет начинается снова. В ре- зультате частота выходного сигнала в 9 раз меньше частоты входного сигнала. При этом скважность выходного сигнала не равна двум. Временная диаграмма показана на рисунке для пер- вого уровня представления (без учета временных задержек). Если в числе, на которое надо делить частоту больше двух единиц (например, 15, то есть 1111, или 13, то есть 1101), то для формирования сигнала сброса надо использовать элементы 2И, ЗИ или 4И для объединения всех выходов, равных единице. В результате можно построить делитель входной частоты в лю- бое число раз от 2 до 2N, где N — число разрядов используемого счетчика. Правда, при организации обратных связей надо учи-
Применение счетчиков 179 тывать ограничение на быстродействие счетчика. Все разряды, используемые для обратной связи, должны успеть переклю- читься за один период входного сигнала. Скважность выходного сигнала может принимать в данном случае самые разные значе- ния, например, выходной сигнал может представлять собой очень короткие импульсы. На асинхронных счетчиках можно строить также управляемые делители частоты, то есть такие делители, выходная частота кото- рых определяется управляющим кодом. На рис. 5.8 показан дели- тель на 2П, где п — целое. Восьмиразрядный счетчик НЕ 19 работает по входному сигналу с тактовой частотой fT, а выходной 8-вхо- довой мультиплексор КП7 передает на выход схемы один из 7 раз- рядов счетчика или же входной сигнал. Выбор номера канала про- изводится входным управляющим 3-разрядным кодом. Например, при тактовой частоте fT = 10 МГц, то есть при периоде входного сигнала 100. нс период выходного сигнала может составлять 100 нс, 200 нс, 400 нс, 800 нс, 1,6 мкс, 3,2 мкс, 6,4 мкс, 12,8 мкс. Рис. 5.8. Управляемый делитель частоты на асинхронном счетчике. В момент переключения управляющего кода на выходе схе- мы могут появиться нежелательные короткие импульсы, так как никакой синхронизации управляющего кода не предусмотрено. Поэтому схема должна работать так: сначала задается входной управляющий код, а уже потом разрешается работа той схемы, на которую поступает сформированный нашей схемой выход- ной сигнал. В этом случае никаких проблем не будет. Не играют роли в данном случае и задержки переключения разрядов счет- чика, так как всегда используется только один его разряд. Глав- ное, чтобы с частотой fT переключался первый разряд счетчика.
180 Глава 5 Конечно, применение асинхронных счетчиков не ограничи- вается только делителями частоты. В случаях, когда высокого быстродействия не требуется, когда переходные процессы на выходах счетчика не имеют значения (при правильной синхро- низации), асинхронные счетчики вполне могут заменить более быстрые синхронные счетчики. Доля таких задач составляет около 20% от общего числа. Если же включить на выходе асинхронного счетчика выход- ной параллельный регистр (рис. 5.9), то можно обеспечить од- новременное переключение всех выходных разрядов счетчика. Рис. 5.9. Включение выходного регистра для одновременного переключения разрядов выходного кода. Данная схема будет работать правильно, если период следо- вания входных тактовых импульсов будет больше, чем время установления всех разрядов счетчика (в нашем случае — 8-раз- рядного счетчика ИЕ19). Инвертор необходим, так как счетчик срабатывает по отрицательному фронту входного сигнала, а регистр — по положительному фронту. Хотя данное решение устраняет главный недостаток асинхронного счетчика — неод- новременность установления его выходных разрядов, однако второй недостаток — большая задержка установления выходно- го кода — сохраняется. Его устранить невозможно, можно толь- ко перейти на другие, более быстрые счетчики. В заключение данного раздела надо отметить, что асинхрон- ные счетчики, как и другие цифровые схемы, предъявляют тре- бования к длительности входных сигналов. Например, не долж- ны быть слишком короткими сигналы на тактовых входах и на входах сброса и установки. Не должны быть слишком затяну-
Применение счетчиков 181 тыми фронты входных сигналов. Тактовые сигналы и сигналы сброса не должны приходить со слишком малыми задержками друг относительно друга. 5.2. Синхронные счетчики с асинхронным переносом Синхронные (или параллельные) счетчики характеризуются тем, что все их разряды в пределах одной микросхемы пере- ключаются одновременно, параллельно. Это достигается суще- ственным усложнением внутренней структуры микросхемы по сравнению с простыми асинхронными счетчиками. В результате полная задержка переключения синхронного счетчика примерно равна задержке одного триггера, то есть синхронные счетчики гораздо быстрее асинхронных, причем их быстродействие не падает с ростом количества разрядов выходного кода (конечно, до определенных пределов). Управление работой синхронного счетчика гораздо сложнее, чем в случае асинхронного счетчика, а количество разрядов синхронных счетчиков обычно не превышает четырех. Поэтому синхронные счетчики не всегда могут успешно конкурировать с асинхронными счетчиками, особенно при невысоких требова- ниях к быстродействию. Зато и возможностей у синхронных счетчиков, как правило, гораздо больше, чем у асинхронных, например, они обеспечивают параллельную запись информации в счетчик и инверсный режим счета. Для объединения нескольких синхронных счетчиков с це- лью увеличения числа их разрядов (для каскадирования) ис- пользуется специальный выходной сигнал переноса. В зависи- мости от принципов формирования этого сигнала переноса и от принципов его использования синхронные (параллельные) счет- чики делятся на счетчики с асинхронным (последовательным) переносом и счетчики с синхронным (параллельным) переносом (или полностью синхронные счетчики). Синхронные счетчики с асинхронным переносом занимают промежуточное положение по быстродействию между асинхрон- ными счетчиками и полностью синхронными счетчиками. Управ- ление их работой проще, чем у синхронных счетчиков, но слож- нее, чем у асинхронных. Работают данные счетчики по положи-
182 Глава 5 тельному фронту входного сигнала (или, что то же самое, по зад- нему фронту отрицательного сигнала). Основная суть их работы сводится к следующему: все разряды одного счетчика переклю- чаются одновременно, но при каскадировании счетчиков каждый следующий счетчик (дающий более старшие разряды) переклю- чается с задержкой относительно предыдущего счетчика (дающе- го более младшие разряды). То есть задержка переключения мно- горазрядного счетчика увеличивается в данном случае не с каж- дым новым разрядом (как у асинхронных счетчиков), а с каждой новой (например, 4-разрядной) микросхемой. Сигнал переноса у этих счетчиков при прямом счете выраба- тывается тогда, когда все разряды равны единице (достигнут максимальный код) и когда приходит входной сигнал. Поэтому сигнал переноса, повторяющий входной сигнал, будет задержан относительно входного сигнала. И именно этот сигнал переноса используется в качестве входного для следующего счетчика при каскадировании. То есть входной сигнал второго счетчика за- держан относительно входного сигнала первого счетчика, вход- ной сигнал третьего счетчика задержан относительно входного сигнала второго счетчика и т. д. Временная диаграмма 4-разрядного синхронного счетчика с асинхронным переносом показана на рис. 5.10. Из рисунка видно, что разряды переключаются одновременно по положительному фронту входного сигнала (с некоторой задержкой), а отрицатель- ный сигнал переноса также задержан относительно входного от- рицательного импульса. Понятно, что переключение разрядов счетчика, работающего с этим сигналом переноса в качестве входного, будет происходить с дополнительной задержкой отно- сительно переключения разрядов данного счетчика. Вых.1 ч—п ч—п ч—п ч—п ч—ч ч—п ч—п |гг~п т I* I‘--г I1—Т |‘ " "Г I I I—г г—г г—г I I—г Л. Вых.2 । —г Вых.3| Вых.4 । । Перенос^ Тает 0 ! 1 ! 2 ! 3 ! 4 ! 5 ! 6 ! 7 ! 8 ! 9 ! 10 ! 11 ! 12 ! 13 ! 14 ! 15 ! о ! 1 Рис. 5.10. Временная диаграмма работы синхронного счетчика с асинхронным переносом.
Применение счетчиков 183 Примерами синхронных счетчиков с асинхронным перено- сом могут служить двоично-десятичный счетчик ИЕ6 и двоич- ный счетчик ИЕ7 (рис. 5.11). Они полностью идентичны по сво- им возможностям и назначениям входов и выходов, но только счетчик ИЕ6 считает от 0 до 9, а счетчик ИЕ7 — от 0 до 15. Оба счетчика реверсивные, обеспечивают как прямой счет (по по- ложительному фронту на входе +1), так и обратный счет (по по- ложительному фронту на входе -1). При прямом счете отрица- тельный сигнал переноса вырабатывается на выходе >15 (ИЕ7) или >9 (ИЕ6). При обратном (инверсном) счете отрицательный сигнал переноса вырабатывается на выходе <0 после достиже- ния выходным кодом значения 0000. Имеется возможность сброса счетчика в нуль положительным сигналом на входе R, а также возможность параллельной записи в счетчик кода со вхо- дов DI, D2, D4, D8 по отрицательному сигналу на входе -WR. При параллельной записи информации счетчики ведут себя как регистры-защелки, то есть выходной код счетчика повторяет входной код, пока на входе -WR присутствует сигнал нулевого уровня. Рис. 5.11. Синхронные счетчики с асинхронным переносом. Вход параллельной записи обозначается иногда на схемах также -L, -С, а выходы переноса обозначаются также -CR и -BR. Режимы работы счетчиков ИЕ6 и ИЕ7 представлены в табл. 5.4. После сброса счетчик начинает счет по положительным фронтам на счетных входах от нулевого кода. После параллель- ной записи счет начинается от числа, записанного в счетчик. По- сле переполнения счетчика ИЕ7 (достижения кода 1111) при пря- мом счете вырабатывается отрицательный сигнал переноса >15, повторяющий входной отрицательный импульс на входе +1 с за- держкой. После достижения кода 0000 при обратном счете выра-
184 Глава 5 батывается отрицательный сигнал переноса <0, повторяющий входной отрицательный импульс на входе -1 с задержкой. Точно так же работает и счетчик ИЕ6, но у него переполнение будет возникать в режиме прямого счета при достижении кода 1001. Таблица 5.4. Таблица режимов работы счетчиков ИЕ6 и ИЕ7 Входы Режим работы R -WR +1 -1 1 X X X Сброс в нуль 0 0 X X Параллельная запись 0 1 1 1 Хранение 0 1 0 0 Хранение 0 1 0—>1 1 Прямой счет 0 1 1 0—>1 Обратный счет Входные сигналы счета, записи и сброса не должны быть слишком короткими. Не должен быть слишком малым времен' ной сдвиг между сигналами на входах D1 — D8 и сигналом за- писи как в начале импульса записи, так и в его конце (сигнал записи -WR должен начинаться после установления входного кода, а заканчиваться — до снятия входного кода). Объединение счетчиков ИЕ7 и ИЕ6 для увеличения разрядно- сти (каскадирование) осуществляется очень просто: нужно выхо- ды переноса младших счетчиков (дающих младшие разряды вы- ходного кода) соединить со счетными входами старших счетчи- ков (дающих старшие разряды выходного кода). На рис. 5.12 по- казана организация 12-разрядного счетчика на трех микросхемах ИЕ7. Этот счетчик может считать как на увеличение (прямой счет), так и на уменьшение (обратный счет). Возможны также сброс и параллельная запись в счетчики входного кода. Разряды каждого следующего счетчика будут переключаться одновремен- но, но с задержкой относительно переключения разрядов преды- дущего счетчика. Точно так же объединяются и счетчики ИЕ6. Если необходимо использовать все выходные разряды мно- горазрядного счетчика одновременно (как единый код), то не- обходимо выполнение следующего условия: Т > (N-l)t3n + t3c,
Применение счетчиков 185 где Т — период входного сигнала, N — число объединенных микросхем счетчиков, t3n — время задержки переноса одного счетчика, t3c — время задержки счета (переключения выходного кода) одного счетчика. Рис. 5.12. Объединение счетчиков ИЕ7 для увеличения разрядности. Применение синхронных счетчиков с асинхронным перено- сом очень многообразно. Например, они могут делить частоту входного сигнала, считать входные импульсы, формировать пачки импульсов, измерять длительность временного интервала, формировать сигналы заданной длительности, измерять частоту входных импульсов, последовательно переключать входные и выходные каналы, формировать сложные последовательности сигналов, перебирать адреса памяти и многое другое. Мы рас- смотрим лишь несколько наиболее типичных примеров. В качестве делителя частоты входного сигнала синхронные счетчики с асинхронным переносом очень удобны, так как в них сочетается сравнительно высокая скорость работы с довольно простым управлением. Удобно также и то, что у них имеется режим обратного счета. На этих счетчиках можно строить дели- тели частоты с произвольно изменяемым с помощью входного кода коэффициентом деления. Такие делители находят, напри- мер, широкое применение в аналого-цифровых системах, рабо- тающих с аналоговыми сигналами разной частоты. Простейший пример 8-разрядного делителя частоты на счет- чиках ИЕ7 показан на рис. 5.13. На вход счетчиков подается 12-разрядный управляющий код, определяющий коэффициент деления входной частоты. Этот код записывается в счетчики по сигналу переноса <0
186 Глава 5 старшего счетчика. С этого кода начинается затем счет на уменьшение. Когда счетчики отсчитают количество входных импульсов, равное входному коду, снова выработается сигнал переноса старшего счетчика и снова запишет входной код в счетчики. Коэффициент деления будет равен (N+1) при входном коде N. Отрицательный выходной сигнал будет по форме по- вторять входной, но с полной задержкой переноса, а его частота будет меньше частоты входного сигнала в (N+1) раз. При 12- разрядном входном коде максимальный коэффициент деления составит 4096, а минимальный — 1. Входной код Рис. 5.13. Делитель частоты с коэффициентом деления, задаваемым входным кодом. Чтобы сформулировать условия правильной работы данного делителя частоты, надо прежде всего отметить, что запись вход- ного кода в счетчики производится отрицательным уровнем сиг- нала -WR, то есть передним фронтом входного отрицательного импульса, а счет производится положительным фронтом сигнала -1, то есть задним фронтом входного отрицательного импульса. Отсюда следует, что входной импульс должен быть достаточно коротким. Если он записывает код в счетчики своим передним фронтом, он уже не должен своим задним фронтом переключать счетчики по входу -1. Поэтому длительность входного отрица- тельного импульса не должна превышать полного времени пере- ключения счетчиков и записи в них входного кода. В нашем слу- чае это три задержки переноса и задержка записи в счетчик. Если частота входного сигнала большая (например, больше 10 МГц), то нормальная длительность входного сигнала получается сама собой. Но частота входного сигнала не может быть и слишком большой. Иначе в процессе записи счетчик пропустит один из входных импульсов или даже несколько. То есть от переднего
Применение счетчиков 187 фронта входного отрицательного сигнала до заднего фронта сле- дующего входного отрицательного сигнала должны успеть срабо- тать все счетчики и должна произойти запись в счетчики (суммар- ное время задержки опять же включит в себя сумму задержек пере- носа всех счетчиков и задержку записи). То есть ограничения на входную частоту будет тем жестче, чем больше счетчиков мы объ- единяем для увеличения количества разрядов. В данном случае важно именно количество примененных микросхем, а не количест- во используемых разрядов, как у асинхронных счетчиков. Для решения часто встречающейся на практике задачи под- счета количества пришедших входных импульсов необходимо всего лишь объединить несколько микросхем счетчиков с целью получения требуемого числа разрядов. Например, если количе- ство входных импульсов не превышает 255, то достаточно двух 4-разрядных счетчиков, если оно не больше 65535, то надо объ- единить уже четыре 4-разрядных счетчика. Так как в этом слу- чае нас интересуют все выходные разряды одновременно, необ- ходимо обеспечить, чтобы за период входных импульсов пере- ключались все микросхемы счетчиков. Обеспечить одновременность переключения всех выходных разрядов счетчика при счете входных импульсов можно, как и в случае асинхронных счетчиков, за счет включения выходного параллельного регистра, срабатывающего по фронту (рис. 5.14). Данное решение довольно универсально, оно может использо- ваться в самых разных ситуациях, когда необходим весь выход- ной код счетчика целиком. Код на выходе регистра будет удер- живаться в течение всего периода входных импульсов. Правда, быстродействие счетчика от этого не повышается. Рис. 5.14. Включение выходного регистра для одновременного переключения разрядов выходного кода.
188 Глава 5 Рис. 5.15. Формирователь пачки из восьми импульсов. Формирование пачки (группы) входных импульсов с задан- ным количеством импульсов — довольно распространенная за- дача. Например, такое формирование необходимо при органи- зации обмена информацией в последовательном коде. Если в качестве преобразователя параллельного кода в последователь- ный используется 8-разрядный регистр сдвига, то ему в качестве синхросигнала необходима пачка из восьми импульсов. Схема формирователя такой пачки импульсов показана на рис. 5.15, а временная диаграмма ее работы — на рис. 5.16. Рис. 5.16. Временная диаграмма работы формирователя пачки импульсов. По сигналу Старт (положительный фронт) переключается первый триггер, использующийся для синхронизации. По пер- вому положительному фронту тактового сигнала с генератора переключается второй триггер, разрешающий прохождение им- пульсов с генератора на выход через элемент 2И-НЕ, а также разрешающий работу счетчика ИЕ7. После того как на Выход 1 схемы пройдут восемь отрица- тельных импульсов, на выходе 8 счетчика выработается едини-
Применение счетчиков 189 ца, что приведет к сбросу в исходное нулевое состояние обоих триггеров (коротким отрицательным импульсом на выходе нижнего по рисунку элемента 2И-НЕ) и к запрету прохождения импульсов на выход. Работа формирователя возобновится после следующего сигнала Старт. На основе счетчиков довольно просто строить формирователи временных интервалов с длительностью, задаваемой внешним ко- дом. Такие формирователи находят широкое применение, напри- мер, в различных измерительных устройствах. Так как формирова- тель временных интервалов обычно работает с кварцевым такто- вым генератором, возможны два подхода к его построению. При первом подходе входной стартовый импульс синхронизи- руется с тактовым сигналом, в результате чего выходной импульс заданной длительности может начаться не сразу после стартового импульса, а через какое-то время, меньшее периода тактового сиг- нала. Длительность формируемого временного интервала будет в этом случае абсолютно точно известна и будет равна целому числу периодов тактового генератора. Именно так было сделано в преды- дущей рассмотренной нами схеме (сигнал Выход 2 на рис. 5.15 как раз и будет формируемым сигналом с заданной длительностью). При втором подходе выходной импульс заданной длитель- ности начинается сразу после входного сигнала, но длитель- ность его может отличаться от заданной на какое-то время, меньшее периода тактового сигнала. Иногда это более прием- лемое решение, особенно при больших длительностях выходно- го сигнала, значительно больших, чем период тактового сигна- ла. Схема формирователя временного интервала, построенного в соответствии с этим вторым подходом, показана на рис. 5.17. Рис. 5.17. Формирователь временного интервала.
190 Глава 5 Работа схемы начинается с подачи короткого отрицательно- го импульса -Старт. Он перебрасывает триггер, который разре- шает работу счетчиков снятием сигнала параллельной записи -WR. По отрицательному фронту входного сигнала начинается положительный выходной сигнал заданной длительности. Счет- чики начинают считать на уменьшение кода по положительным фронтам тактового сигнала с генератора. Когда они досчитают до нуля, вырабатывается сигнал переноса, перебрасывающий триггер в исходное состояние. Работа схемы возобновится после следующего сигнала -Старт. Если входной код равен 1, то длительность выходного сиг- нала составит от Т до 2Т, где Т — период тактового сигнала. Если входной код равен N (до 255), то длительность выходного сигнала составит от NT до (N+1)T в зависимости от момента прихода входного сигнала по отношению к тактовому сигналу. Абсолютная погрешность выдержки длительности выходного сигнала в любом случае не превышает периода тактового сиг- нала Т. Эту же самую схему вполне можно использовать в тех слу- чаях, когда необходимо получить убывающий код от заданного числа до нуля. При этом сигнал с выхода триггера будет только внутренним сигналом схемы, а выходными сигналами схемы будут выходные разряды счетчиков. Иногда бывает необходимо сформировать импульс требуе- мой длительности, но одновременно иметь не убывающий, а возрастающий код (от нуля до заданного значения). В таком случае схема получится несколько сложнее. Пример возможно- го решения формирователя импульса заданной длительности показан на рис. 5.18. По сигналу Старт (положительный фронт) перебрасыва- ется левый по рисунку триггер, который начинает формиро- вать выходной сигнал и разрешает работу счетчика (снимая сигнал сброса R). Счетчик считает на увеличение по положи- тельным фронтам тактового сигнала от нуля. Когда выход- ной код счетчика достигает величины входного кода, сраба- тывает правый по рисунку триггер, завершающий процесс формирования выходного сигнала. Счетчик сбрасывается в нуль, правый триггер по следующему фронту попадает в ис- ходное состояние. Новый цикл начнется с приходом сле- дующего сигнала Старт.
Применение счетчиков 191 Рис. 5.18. Формирователь импульса заданной длительности (вариант с нарас- тающим кодом). Если входной код равен 1, то длительность выходного сигна- ла составит от Т до 2Т, где Т — период тактового сигнала генера- тора. Если входной код равен N, то длительность выходного сиг- нала будет равна от NT до (N+1)T в зависимости от временного сдвига между сигналом Старт и тактовым сигналом. В любом случае абсолютная погрешность времени выдержки выходного сигнала не превысит периода тактового сигнала Т. Счетчики также широко применяются в различных измери- телях длительности входных сигналов. Для этого они отсчиты- вают импульсы тактового кварцевого генератора в течение дли- тельности входного сигнала. После окончания входного сигнала в счетчике остается код, пропорциональный длительности этого сигнала. Пример практической схемы такого измерителя пока- зан на рис. 5.19. Рис. 5.19. Измеритель длительности входного сигнала.
192 Глава 5 +1 Вых. код Рис. 5.20. Временная диаграмма работы измерителя длительности входного сигнала. Работа схемы начинается по короткому управляющему им- пульсу Старт, который сбрасывает счетчик в нуль и переводит всю схему в режим счета, разрешая прохождение сигнала с так- тового генератора на вход +1 счетчика при положительном входном сигнале. С началом входного сигнала импульсы с гене- ратора поступают на вход счетчика, и счетчик их считает. После окончания входного сигнала поступление импульсов на вход счетчика прекращается, триггер перебрасывается в исходное со- стояние и сообщает отрицательным фронтом на своем инверс- ном выходе о готовности выходного кода (сигнал Готовность). Работа схемы возобновится по следующему импульсу Старт. Временная диаграмма работы измерителя длительности входно- го сигнала приведена на рис. 5.20. Выходной код N измерителя связан с длительностью вход- ного сигнала t простым соотношением: t = NT, где Т — период тактового сигнала. Абсолютная погрешность измерения не превышает величины ±Т. Поэтому для уменьше- ния относительной погрешности измерения необходимо увели- чивать частоту тактового генератора и увеличивать разрядность счетчика. Счетчики также применяются и для измерения частоты входного цифрового сигнала. Частоту входного сигнала можно измерить двумя путями: косвенным, то есть измерением периода входного сигнала (по принципу, рассмотренному только что) и вычислением затем частоты (по формуле: fBX = 1/Твх) или же прямым измерением частоты. Первый метод требует вычислений с помощью компь- ютера или микроконтроллера, второй не требует никаких до-
Применение счетчиков 193 полнительных вычислений. Поэтому мы рассмотрим здесь реа- лизацию метода прямого измерения частоты. В соответствии с этим методом необходимо сформировать временное окно с заданной длительностью to, в течение которо- го надо сосчитать количество N периодов входного сигнала Т (рис. 5.21). В этом случае будет выполняться соотношение: t0 = NT или f=N/to, где f — это частота входного сигнала, равная 1/Т. То есть час- тота входного сигнала пропорциональна коду N, а коэффициент пропорциональности равен 1/to. Если, например, выбрать U = 1 с, то код N будет равен частоте входного сигнала в герцах, а при to = 1 мс код N будет равен частоте входного сигнала в килогерцах. Вх.сигнал Г~1 Ijl [~~1 |~~1 |~1 |~~1 J~1 |~~1 |~~1 [~~1,1~1 Г~1 Врем, окно | ।-1-1-1-1-1-1-1—] ---- । । । । । । । । 1------ Вых. код N 0'1'2'3'4'5'6'7'8 Рис. 5.21. Измерение частоты входного сигнала прямым методом. Если длительность временного окна — строго постоянная величина, то погрешность измерения частоты будет опреде- ляться только погрешностью подсчета кода N. Абсолютная погрешность подсчета кода N не превысит единицы, а отно- сительная погрешность не будет более 1/N. Понятно, что для увеличения точности измерения частоты надо увеличивать N, то есть необходимо увеличивать длительность временного окна t0. Однако при этом автоматически увеличивается время измерения. Схема измерителя частоты (рис. 5.22) практически не отли- чается от схемы измерителя длительности входного сигнала (рис. 5.19). Только в данном случае в качестве измеряемого сиг- нала будет использоваться сигнал временного окна, а в качестве тактового сигнала — входной сигнал. Для формирования сигна- ла временного окна можно применить схему рис. 5.15 (сигнал Выход 2), которая обеспечивает постоянную длительность вы- ходного сигнала. 7 - 4589
194 Глава 5 Рис. 5.22. Измеритель частоты входного сигнала прямым методом. Еще одно широко распространенное применение счетчи- ков — последовательное переключение (сканирование) не- скольких устройств, узлов, индикаторов, каналов передачи и т. д. Имеется, например, группа устройств, которые должны по тем или иным причинам работать не одновременно, а по очереди, так, что в каждый момент активным является только одно устройство, причем очередь эта замкнута в кольцо, и после последнего устройства начинает работать первое. Или же имеется несколько каналов связи (входных или выходных линий), которые надо так же по очереди подключать к одно- му выходу (при выходных каналах) или к одному входу (при входных каналах). Во всех подобных случаях опрос, переключение, сканирова- ние может производить счетчик с нужным числом разрядов. Счетчик с числом разрядов п может обслуживать 2П устройств (или каналов). Канал О Канал 1 Канал 2 Канал 3 Канал 4 Канал 5 Канал 6 Канал 7 Рис. 5.23. Схема последовательного переключения выходных каналов.
Применение счетчиков 195 В качестве первого примера рассмотрим схему переключе- ния выходных каналов (рис. 5.23). Она последовательно, по оче- реди, циклически коммутирует один входной сигнал на восемь выходов, для чего используются счетчик, тактируемый сигналом задающего генератора, и дешифратор, работающий в качестве демультиплексора. Каждый из выходных каналов активен (то есть подключен) в течение одного периода тактового сигнала, а затем пассивен (то есть отключен) в течение семи периодов так- тового сигнала. Предусмотрена возможность начального сброса схемы с помощью сигнала Сброс. Используя данную схему, надо учитывать, что в момент пе- реключения каналов может искажаться (обрезаться) выходной сигнал. Поэтому лучше всего обеспечить, чтобы входной сигнал приходил только тогда, когда переключения каналов не произ- водится. Или на время передачи вообще останавливать процесс перебора каналов путем запрета прохождения импульсов с ге- нератора на вход счетчика, а после окончания передачи снова разрешать последовательный перебор каналов. Генератор Сброс ИЕ7 Канал 0----- Канал 1----- Канал 2----- Канал 3----- Канал 4----- Канал 5" Канал 6----- Канал 7----- О 1 2 3 4 5 6 7 MS Выход S КП7 1 1 Г У 1 2 4 Рис. 5.24. Схема последовательного переключения входных каналов. Второй пример, который мы рассмотрим, это схема, ре- шающая обратную задачу — переключение входных каналов (рис. 5.24). Данная схема последовательно, циклически передает один из восьми входных сигналов на выход. Как и в предыду- щем случае, перебор каналов осуществляется счетчиком, такти- руемым сигналом с генератора. Непосредственно коммутация сигналов производится мультиплексором, на адресные входы которого подаются три разряда счетчика. Предусмотрена воз- можность начального сброса схемы с помощью сигнала Сброс. 7*
196 Глава 5 В момент переключения каналов здесь также возможно ис- кажение (обрезание) коммутируемых сигналов. Поэтому жела- тельно обеспечить передачу сигналов в момент, когда переклю- чения каналов нет. Или же надо останавливать процесс перебо- ра каналов на время приема сигнала из выбранного канала пу- тем запрета прохождения тактовых импульсов на вход счетчика, а затем снова запускать перебор каналов. Еще одно применение счетчиков из этой же области состоит в организации так называемой динамической индикации. Суть динамической индикации состоит в следующем. Если используется табло из нескольких индикаторов (одиночных светодиодов, светодиодных семисегментных индикаторов, све- тодиодных матричных индикаторов и т. д.), то совсем не обя- зательно, чтобы все эти индикаторы горели постоянно, одно- временно. Можно зажигать их по очереди, что существенно сократит потребляемый всей схемой ток питания. Например, если в каждый момент времени горит только один индикатор из имеющихся восьми, то ток потребления индикаторов сокра- тится в восемь раз. Учитывая, что каждый светящийся свето- диод требует тока порядка 1—5 мА, такой подход может дать большой выигрыш, особенно в случае матричных индикато- ров, содержащих несколько десятков светодиодов. А инерци- онность человеческого глаза приводит к тому, что вспышки света с частотой больше 20 Гц воспринимаются как непре- рывное свечение. Так что при достаточной частоте перебора индикаторов глазу не будет заметно последовательное их вклю- чение. На рис. 5.25 приведен пример схемы динамической инди- кации на восьми индикаторах. Для последовательного пере- бора индикаторов применяется счетчик, соединенный с де- шифратором. Выходные сигналы дешифратора используются в качестве сигналов разрешения свечения для индикаторов. Частота сигнала тактового генератора, с которым работает счетчик, должна составлять не менее 160 Гц, чтобы каждый индикатор загорался не реже, чем с частотой 20 Гц. При этом нельзя также выбирать слишком большую частоту тактового генератора, так как в моменты переключения ток потребле- ния микросхем сильно возрастает из-за паразитных емкостей, и при большой частоте весь эффект снижения потребления может сойти на нет.
Применение счетчиков 197 Рис. 5.25. Схема динамической индикации на восьми индикаторах. Счетчики часто используют также для организации всевоз- можных таймеров, часов, то есть схем счета времени, выходной код которых необходимо время от времени читать. Для этого на вход счетчика подается сигнал образцовой частоты с кварцевого генератора. При этом возникает следующая проблема. Если чте- ние происходит в тот момент, когда счетчики переключаются, то с выходов счетчиков может быть считан случайный код, ко- торый не соответствует ни предыдущему установившемуся зна- чению, ни последующему установившемуся значению. Можно, конечно, на время чтения кода остановить счет, но тогда ход ча- сов собьется. Рис. 5.26. Схема таймера с чтением выходного кода. Пример решения данной проблемы приведен на рис. 5.26. Здесь выходной код счетчика на каждом такте записывается в выходной регистр с разрешением записи ИР27. А в момент чтения кода (при положительном сигнале Чтение) запись в регистр запрещается. В результате в течение всей длительности сигнала Чтение выход- ной код схемы будет неизменным, хотя счетчик будет продолжать считать без всяких помех, и ход часов не собьется.
198 Глава 5 Интересная особенность счетчиков ИЕ6 и ИЕ7 состоит в том, что они могут работать не только в режиме счета, но и в режиме повторителя входных сигналов данных. В режиме па- раллельной записи в счетчик при нулевом сигнале на входе -WR выходные сигналы счетчика будут повторять любые изменения входных сигналов данных, то есть счетчик работает по сути как регистр, срабатывающий по уровню стробирующего сигнала. В ряде случаев такая особенность очень удобна, так как она по- зволяет существенно упростить аппаратуру. б Рис. 5.27. Варианты мультиплексирования выходного кода счетчика с приме- нением мультиплексора (а) и без него (б). Пусть, например, необходимо выдавать на вход схемы один из двух входных кодов: код со счетчика, или код с регистра (то есть требуется мультиплексирование двух кодов). Эту задачу можно решить, применяя двухканальный мультиплексор (рис. 5.27,а), а можно решить проще — подавая код с регистра на входы данных счетчика и переводя в нужный момент счетчик в режим параллель- ной записи (рис. 5.27,6). В обоих случаях переключение кодов, по- даваемых на выход схемы, производится сигналом Упр. Правда, во втором случае счетчик возобновляет свой счет (после снятия сиг- нала записи -WR) с кода, записанного в регистр. Если это неприем- лемо, то можно воспользоваться входом сброса счетчика в нуль R. И в заключение данного раздела мы рассмотрим две более сложные схемы на основе счетчиков. Это генератор прямоуголь- ных импульсов с изменяемой частотой и длительностью импуль-
Применение счетчиков 199 са и быстродействующий высокоточный измеритель частоты входного сигнала с большим диапазоном измеряемых частот. Генерация прямоугольных импульсов — это довольно часто встречающаяся задача, в частности при разработке, отладке, тестировании электронной аппаратуры. От генератора прямо- угольных импульсов требуется выдача импульсов заданной длительности при заданной паузе между импульсами (или, что то же самое, формирование импульсов заданной длительности и частоты следования). Желательно, чтобы диапазон изменения длительности импульсов и пауз между ними был как можно шире. Желательно также, чтобы был предусмотрен режим разо- вого запуска (то есть остановка генерации после окончания од- ного выходного импульса) и автоматического запуска (то есть генерация периодической последовательности импульсов до прихода внешней команды остановки). Предлагаемая здесь схема генератора не претендует, конеч- но, на рекордные характеристики, но она вполне может стать реальным удобным инструментом для разработчика цифровой аппаратуры, особенно если управление генератором поручить компьютеру с установленной на нем развитой сервисной управ- ляющей программой. Благодаря своей простоте и наглядности схема эта может служить образцом для разработки более слож- ных генераторов импульсов, например, имеющих более высокое быстродействие, больший диапазон изменения длительности импульсов и их частоты, обеспечивающих генерацию импуль- сов с разной амплитудой и полярностью. В основе генератора (рис. 5.28) — два 16-разрядных счетчи- ка, выполненных на основе микросхем ИЕ7. Один из этих счет- чиков (нижний на схеме) отсчитывает длительность выходного импульса, другой (верхний на схеме) — отсчитывает длитель- ность паузы. Коды длительности импульса и паузы подаются соответственно на входы данных верхнего и нижнего счетчиков (эти коды могут храниться, например, в регистрах, не показан- ных на схеме). Счетчики импульса и паузы работают по очере- ди, что определяется управляющими сигналами на их входах параллельной записи -WR, которые также запрещают прохож- дение на входы -1 тактовых импульсов с помощью элементов 2И-НЕ. Эти управляющие сигналы поступают с прямого и ин- версного выходов триггера ТМ2, на входы -R и -S которого по- даются сигналы переноса с выходов <0 обоих счетчиков.
200 Глава 5 Код паузы D8 WR ста ИЕ7 ста ИЕ7 D1 D2 D4 D8 - WR СТ2 ста ИЕ7 ИЕ7 ста ИЕ7 ИЕ7 D1 D2 D4 D8 WR D2 D4 D8 WR D1 D2 D4 D8 WR R >15 Код импульса >15 <0 - ста F>15f СТ2 D1 ft— D2 га- 04 D8 г—WR г R. ИЕ7 ста й- D1 D2 D4 D8 WR R ИЕ7 Разр. Выход л. Рис. 5.28. Счетчики длительности импульса и паузы для генератора прямо- угольных импульсов. В результате, когда один счетчик считает, другой находится в режиме параллельной записи и не считает. После того как считаю- щий счетчик досчитает до нуля, он перебросит выходной триггер, который переведет этот счетчик в состояние параллельной запи- си, запретит поступление на его вход тактовых импульсов и раз- решит считать другому счетчику. Описанная последовательность действий повторится уже для другого счетчика. И этот процесс будет повторяться до тех пор, пока разрешена генерация. В данном случае смело можно одновременно использовать как вход -R, так и вход -S триггера, так как сигналы, приходя- щие на них, гарантированно разнесены во времени. Сигнал с прямого выхода триггера служит выходным сигналом всего ге- нератора в целом. Разрешается генерация положительным сиг- налом Разр. Когда генерация запрещена (нулевой сигнал Разр.) триггер сброшен в нуль по входу -R, и оба счетчика находятся в состоянии параллельной записи. Поэтому генератор всегда начинает работу с отработки паузы заданной длительности, а потом отрабатывает выходной импульс заданной длительности. Сформулируем условия правильной работы данной схемы. Во-первых, как и в случае управляемого делителя частоты (см. рис. 5.13), перевод счетчиков из режима счета в режим па-
Применение счетчиков 201 раллельной записи осуществляется передним (отрицательным) фронтом тактового отрицательного импульса, а счет произво- дится задним (положительным) фронтом отрицательного так- тового импульса. Поэтому отрицательный тактовый импульс должен быть достаточно коротким. Один и тот же тактовый импульс не должен своим передним фронтом менять режим счетчиков, а задним фронтом переключать счетчики по входу -1. Длительность тактового отрицательного импульса не долж- на превышать полного времени переключения режимов счетчи- ков, включающего в себя четыре задержки переноса счетчиков, задержку переключения выходного триггера и задержку эле- ментов 2И и 2И-НЕ. Во-вторых, частота тактового сигнала не должна быть слишком большой, чтобы за время переключения режимов на вход -1 не пришел еще один положительный фронт тактового сигнала. Иначе этот фронт будет потерян. То есть от момента отрицательного фронта тактового импульса до момента поло- жительного фронта следующего тактового импульса схема должна успеть полностью закончить переключение режимов счетчиков. Пусть, например, мы хотим выбрать максимальную такто- вую частоту 10 МГц (период Тт = 100 нс). Посмотрим, можно ли использовать микросхемы счетчиков серии КР1533. Для счетчи- ков КР1533ИЕ7 задержка сигнала переноса составляет не более 18 нс. Для четырех микросхем задержка переноса составит 72 нс. Тогда на сумму задержек триггера, элемента 2И и эле- мента 2И-НЕ остается не более 28 нс. Следовательно, если мы возьмем эти элементы из более быстрых серий (например, КР531 или КР1531), мы легко удовлетворим это требование. При величине кода импульса N длительность импульса Ти составит (N+1) • Тт. При величине кода паузы М длительность паузы Тп составит (М+1) • Тт. Период выходных импульсов Твых будет равен (M+N+2) • Тт. Коды М и N могут принимать значения от 0 до 65535. То есть минимальная длительность им- пульса и паузы равна Тт, максимальная длительность импульса и паузы равна 65536 Тт, минимальная длительность периода выходного сигнала равна 2Тт, а максимальная — 131072 Тт. Например, при тактовой частоте 10 МГц максимальный период выходного сигнала будет равен 13,1072 мс, а минимальный — 200 нс.
202 Глава 5 Для расширения диапазона изменения периода выходного сиг- нала можно применить управляемый делитель тактовой частоты. Другой возможный путь — наращивание разрядности счетчиков — приводит к снижению максимально допустимой тактовой частоты, так как обязательно вызывает увеличение задержек переключения счетчиков. К тому же, как правило, нет необходимости задавать длительность периода выходного сигнала, скажем, в 1 секунду с абсолютной погрешностью 100 нс (относительная погрешность — 10"7). Гораздо важнее обеспечить стабильность частоты и периода выходного сигнала. Поэтому применение управляемого делителя частоты тактового сигнала не ухудшает характеристик генератора. Схема управления генератором прямоугольных импульсов с дели- телем частоты показана на рис. 5.29. Рис. 5.29. Схема управления и делитель частоты для генератора прямоуголь- ных импульсов. Делитель частоты работает с кварцевым генератором с часто- той 10 МГц и включает в себя три делителя на 16 на счетчиках ИЕ7. На выход мультиплексора (сигнал Такт) проходит один из сигналов с периодом 100 нс, 1,6 мкс, 25,6 мкс, 409,6 мкс. Дли- тельность сигнала Такт не превышает половины периода сигнала с частотой 10 МГц, то есть 50 нс, что обеспечивает правильную работу счетчиков импульса и паузы (см. рис. 5.28). Выбор такто- вой частоты осуществляется 2-разрядным кодом частоты. При за-
Применение счетчиков 203 прете генерации все счетчики сбрасываются в нуль, это увеличи- вает точность привязки момента начала генерации к моменту по- дачи команды на начало генерации. Схема управления генератором прямоугольных импульсов, также показанная на рис. 5.29, включает в себя два триггера ТМ2 и логический элемент 2И (ЛИ1). Левый по рисунку триггер вырабатывает сигнал разрешения генерации Разр. В этот триггер необходимо записать единицу для разрешения генерации или нуль для остановки генерации. Запись в триггер входного сигнала Ген./Стоп производится пе- редним фронтом сигнала Строб. Правый по рисунку триггер служит для организации разово- го запуска генератора. Переключение режима разового или ав- томатического запуска производится управляющим сигналом Раз./-Авт. При автоматическом запуске (нуль на входе Раз.ААвт.) данный триггер не работает, он всегда находится в нулевом состоянии и дает уровень логической единицы на сво- ем инверсном выходе. При разовом запуске (единица на входе Раз./-Авт.) правый триггер переходит в рабочий режим сразу после начала генерации (положительный сигнал Разр.). После окончания генерации первого выходного импульса на инверс- ном выходе генератора (инверсный выход триггера на рис. 5.28) появляется положительный перепад, который перебрасывает правый триггер на рис. 5.29. В результате он своим выходным сигналом сбрасывает левый триггер, что приводит к остановке генерации (так как сигнал Разр. становится нулевым). После этого схема снова готова к разовому запуску генерации. Вре- менные диаграммы работы схемы в режимах автоматического и разового запуска показаны на рис. 5.30. а Рис. 5.30. Режимы работы генератора импульсов: автоматический (а) и разо- вый (б). Асинхронность (независимость) момента прихода команды на начало передачи и сигнала задающего кварцевого генератора приводит к тому, что длительность первой паузы может ока-
204 Г лава 5 заться на 100 нс меньше, чем она задана кодом паузы. Но это не слишком существенно, так как гораздо важнее длительность выходного импульса. Все последующие импульсы и паузы вы- держиваются точно. Абсолютная погрешность установки длительностей импуль- са Ти и паузы и Тп составляет половину периода тактового сиг- нала Тт. Относительная погрешность установки этих величин составляет соответственно 0,5/N и 0,5/М. Понятно, что при ма- лых величинах N и М погрешность будет большой (в пределе — даже 50%). Но при больших величинах длительностей импульса и паузы относительная погрешность не превышает 0,5/4096, то есть 0,012%. Таким образом, рассмотренный генератор может формиро- вать импульсы длительностью от 100 нс с паузой между им- пульсами от 100 нс. Максимально возможная длительность импульса составляет 216 • 212 • 100 нс = 26,84 с. Такой же мо- жет быть и пауза. Правда отношение длительности импульса к длительности паузы (или длительности паузы к длительности импульса) не может превышать 65536. Величина периода вы- ходного сигнала генератора может достигать 53,69 с. Теперь рассмотрим вторую схему. Задача измерения частоты следования входных прямоуголь- ных импульсов также часто встречается как в чисто цифровых системах, так и в аналого-цифровых системах. Как уже упоми- налось, существует два традиционных метода измерения часто- ты (рис. 5.31): один метод предполагает измерение периода Твх путем подсчета тактовых импульсов с периодом Тт в течение Твх и дальнейшее вычисление частоты по формуле: fex = 1/Твх (а), а другой метод прямо измеряет частоту fex путем подсчета входных импульсов в течение временного окна to (б). Относительная погрешность и того и другого метода не превышает величины 1/N, где N — полученный в результате подсчета код. Понятно, что первый метод дает хорошую точ- ность только для низких частот fex (то есть для больших Твх и соответственно больших N). Второй метод дает хорошую точ- ность только для больших частот fex или в случае большого временного окна to (то есть для больших N). В первом случае для увеличения точности необходимо увеличивать тактовую частоту, во втором случае — увеличивать длительность вре- менного окна.
Применение счетчиков 205 Ти. Рис. 5.31. Методы измерения частоты: через период (а), прямой (б) и комби- нированный (в). Время измерения частоты по первому методу составляет Твх- Для второго метода оно постоянно и равно длительности временного окна to- Поэтому желательно было бы соединить достоинства обоих методов, чтобы частота fex измерялась бы достаточно быстро и с заданной точностью (с погрешностью, не меньшей заданной). Это возможно при использовании комбинированного метода (рис. 5.31,в). При данном методе импульсы тактовой частоты с периодом Тт подсчитываются в течение М полных периодов входного сигнала. При этом количество сосчитанных импульсов N определяет точность измерения (относительная погрешность не превышает 1/N). Значит, необходимо обеспечить, чтобы N было достаточно большим, например, при N>100 относительная погрешность не превысит 1%, а при N>1000 она будет меньше 0,1%. Обеспечить достаточную величину N можно простым вы- бором числа М. Недостаток данного комбинированного метода состоит в том, что измеренное значение частоты необходимо вычислять. Так как при этом методе выполняется равенство: МТвх = NTT, следовательно, fex = M/(NTt). Однако при использовании компьютера или микроконтроллера такое вычисление не представляет особого труда. Зато данный комбинированный метод позволяет измерять частоту входного сигнала в широ- ком диапазоне быстро и с заданной точностью. Поэтому мы подробно рассмотрим практическую реализацию именно это- го метода.
206 Глава 5 Лог.1 D1 D2 D4 D8 WR R СТ2 Код м ИЕ7 Лог.1 Рис. 5.32. Счетчики измерителя частоты входного сигнала. СТ2 ИЕ7 СТ2 D1 D2 D4 D8 WR 12 LTT Пер.2 -Ы Стоп В основе схемы измерителя частоты по комбинированному методу (рис. 5.32) — два 16-разрядных счетчика на основе мик- росхем ИЕ7, одновременно работающих в режиме прямого сче- та. На тактовый вход одного счетчика (верхнего на схеме) пода- ется измеряемый сигнал Изм., на тактовый вход второго (ниж- него на схеме) счетчика — тактовый сигнал образцовой частоты Такт. Выходные коды обоих счетчиков (соответственно М и N) используются после окончания измерения для вычисления зна- чения частоты входного сигнала. Работа счетчиков разрешается отрицательным сигналом -Разр. по фронту (например, положительному) входного сигнала. После окончания измерения по такому же фронту входного сигнала по- ступление сигналов Изм. и Такт запрещается. То есть счет произ- водится в течение целого числа периодов входного сигнала. Выход Стоп (положительный фронт) говорит о том, что код N достиг достаточной величины (в нашем случае —8192), и, следовательно, можно останавливать измерение (но только по ближайшему фронту входного сигнала). То есть код N в конце измерения будет не менее 8192, и поэтому погрешность измере- ния частоты входного сигнала не превысит 1/8192 или 0,012%. Для правильной работы схемы частота входного сигнала должна быть не более тактовой частоты Гт = 1/Тт и не менее fr/65536. Если она будет слишком малой, то наступит перепол- нение нижнего счетчика (выработается сигнал переноса -Пер.2).
Применение счетчиков 207 Если же она будет слишком большой, то наступит переполнение верхнего счетчика (выработается сигнал переноса -Пер.1). Напри- мер, при тактовой частоте 10 МГц измеряемая частота входного сигнала может находиться в пределах от 152,6 Гц до 10 МГц. Полное время измерения будет изменяться в пределах от 8192Тт до (8192Тт + 2Твх). Один период ТВх может прибавляться к времени измерения из-за того, что после разрешения измерения счет начинается не сразу, а только с приходом фронта входного сигнала. Второй период ТВх может прибавляться за счет того, что счет заканчивается не сразу после достижения кодом N величины 8192, а только с приходом нужного (положительного) фронта входного сигнала. Максимальное время измерения в любом случае не превышает 65536Тт для всех измеряемых частот. Рис. 5.33. Делитель частоты и схема управления для измерителя частоты вход- ного сигнала. Для увеличения диапазона измеряемых частот можно приме- нить предварительный управляемый делитель частоты (рис. 5.33). Он обеспечивает выбор период тактового сигнала из ряда: 100 нс, 400 нс, 1,6 мкс, 6,4 мкс и 25,6 мкс с помощью кода такта. В ре- зультате применения этого делителя при минимальной тактовой частоте возможно измерение частоты входного сигнала до 0,6 Гц. Естественно, переход на каждый следующий диапазон измеряв-
208 Глава 5 мых частот может увеличить время измерения в 4 раза, но точ- ность измерения в любом случае останется прежней. Схема управления измерителем частоты, также показанная на рис. 5.33, включает в себя цепочку из четырех последова- тельно срабатывающих триггеров (ТМ2). Перед началом изме- рения все эти триггеры сбрасываются в нуль сигналом -Сброс. Первый триггер перебрасывается в единицу по сигналу на- чала измерения Старт (положительный фронт). При этом раз- решается прохождение подсчитываемых импульсов Изм. и Такт на вход счетчиков рис. 5.32. Одновременно разрешается работа второго триггера. Второй триггер перебрасывается в единицу по положительно- му фронту входного сигнала. Тем самым он с помощью сигнала со своего инверсного выхода разрешает работу счетчиков (сигнал -Разр.). Одновременно разрешается работа третьего триггера. Третий триггер перебрасывается в единицу по сигналу Стоп (то есть при достижении кодом N числа 8192). Он разрешает ра- боту четвертого триггера. Наконец, четвертый триггер перебрасывается по положи- тельному фронту входного сигнала и сигналом со своего ин- версного выхода сбрасывает первый триггер. Поступление сиг- налов Изм. и Такт прекращается. Выходной сигнал четвертого триггера служит флагом готовности выходных кодов N и М, которые необходимо прочитать для дальнейшего вычисления частоты. Перед новым измерением надо подать сигнал Сброс. Кроме четырех управляющих триггеров в схему управления введены еще два триггера (справа на рисунке), выходные сигна- лы которых служат флагами переполнения и показывают после окончания измерения, правильно ли сработал измеритель часто- ты. Перед началом измерения оба эти триггера сбрасываются по сигналу Сброс. Если частота входного сигнала в нужных преде- лах, то оба триггера останутся в нуле. Если частота входного сигнала очень большая, то сработает верхний по рисунку триг- гер по входному сигналу переноса Пер.1 (см. рис. 5.32) и выдаст сигнал Увел., говорящий о том, что надо поднять частоту такто- вого сигнала (если это возможно). Если же частота входного сигнала слишком мала, то сработает нижний по рисунку триггер по входному сигналу переноса Пер.2 (см. рис. 5.32) и выдаст сигнал Умен., говорящий о том, что надо уменьшить частоту тактового сигнала (если возможно).
Применение счетчиков 209 5.3. Синхронные счетчики Синхронные (или параллельные) счетчики представляют собой наиболее быстродействующую разновидность счетчиков. На- ращивание их разрядности при соблюдении определенных ус- ловий не приводит к увеличению полной задержки срабатыва- ния. То есть можно считать, что именно синхронные счетчики работают как идеальные счетчики, все разряды которых сраба- тывают одновременно, параллельно. Задержка срабатывания счетчика в этом случае примерно равна задержке срабатывания одного триггера. Достигается такое быстродействие существен- ным усложнением внутренней структуры микросхемы. Вместе с тем недостатком синхронных счетчиков является более сложное управление их работой по сравнению с асин- хронными счетчиками и с синхронными счетчиками с асин- хронным переносом. Поэтому синхронные счетчики целесооб- разно применять только в тех случаях, когда действительно тре- буется очень высокое быстродействие, очень высокая скорость переключения разрядов. Иначе усложнение схемы управления может быть не оправдано. Рис. 5.34. Временная диаграмма работы синхронных двоичных счетчиков. Временная диаграмма работы синхронного счетчика (рис. 5.34) отличается от временной диаграммы синхронного счетчика с асинхронным переносом способом формирования сигнала пере- носа, используемого при каскадировании счетчиков для увели- чения разрядности. Сигнал переноса CR (от английского Carry) вырабатывается в данном случае тогда, когда все выходы счет- чика устанавливаются в единицу (при прямом счете) или в нуль (при обратном, инверсном счете). Входной тактовый сигнал в образовании сигнала переноса при этом не участвует.
210 Глава 5 При каскадировании (совместном включении для увеличе- ния разрядности), например, двух счетчиков тактовые входы С обоих счетчиков объединяются, а сигнал переноса первого счетчика подается на вход разрешения счета (ЕСТ) второго счетчика. В результате второй счетчик будет считать каждый шестнадцатый входной тактовый импульс (так как он будет срабатывать только при переносе от первого счетчика). Выход- ные сигналы второго счетчика будут переключаться по фронту общего тактового сигнала одновременно с выходными сигнала- ми первого счетчика. Условием правильной работы будет в дан- ном случае следующее: за период тактового сигнала должен ус- петь выработаться сигнал переноса первого счетчика. Рис. 5.35. Синхронные счетчики стандартных серий. В стандартные серии микросхем входят несколько разно- видностей синхронных (параллельных) счетчиков (рис. 5.35). Различаются они способом счета (двоичные или двоично- десятичные, реверсивные или не реверсивные), управляющими сигналами (наличием или отсутствием сигнала сброса). Все счетчики считают по положительному фронту тактового сигна- ла, все имеют выход переноса CR и входы расширения для кас- кадирования. Все счетчики имеют возможность параллельной записи информации. Счетчики ИЕ9 и ИЕ10 отличаются друг от друга только тем, что ИЕ9 — двоично-десятичный, а НЕЮ — двоичный. Микро- схемы имеют вход асинхронного сброса -R, по нулевому уров- ню на котором все выходы счетчика сбрасываются в нуль. Счет (только прямой) производится по положительному фронту на тактовом входе С. Параллельная запись осуществляется син- хронно, по положительному фронту на тактовом входе С при установленном в нуль сигнале разрешения записи -EWR. Сигна-
Применение счетчиков 211 лы ECR (Enable Carry — разрешение переноса) и ЕСТ (Enable Count — разрешение счета) используются при каскадировании микросхем. Разница между этими сигналами в том, что сигнал ECR не только запрещает счет, как сигнал ЕСТ, но еще и за- прещает выработку сигнала переноса CR. Счет идет при еди- ничных сигналах на обоих входах ЕСТ и ЕСТ и при единичном сигнале на входе -EWR. Положительный сигнал переноса CR вырабатывается при максимально возможном коде на выходах счетчика (15 для ИЕК) и 9 для ИЕ9) и при положительном сиг- нале на входе ECR. Режимы работы счетчиков ИЕ9 и ИЕК) представлены в табл. 5.5. Таблица 5.5. Режимы работы счетчиков ИЕ9 и ИЕК) Входы Режим -R -EWR ECR ЕСТ С 0 X X X X Сброс 1 0 X X 0—>1 Параллельная запись 1 1 0 X X Хранение 1 1 X 0 X Хранение 1 1 1 1 0—>1 Прямой счет Счетчики ИЕ12 (двоично-десятичный) и ИЕ13 (двоичный) отличаются от ИЕ9 и ИЕК) тем, что они реверсивные, то есть допускают как прямой, так и обратный счет. Кроме того, у них несколько другое управление. Считают они также по положи- тельному фронту тактового сигнала С при нулевом уровне на входе разрешения счета ЕСТ. Прямой счет осуществляется при нулевом уровне на входе управления U/D, обратный — при еди- ничном уровне на входе U/D. Переключение уровней на входах U/D и ЕСТ допускается только при положительном сигнале на тактовом входе С. Сброс счетчиков ИЕ12 и ИЕ13 в нуль не пре- дусмотрен, зато имеется возможность асинхронной параллель- ной записи информации по нулевому уровню сигнала парал- лельной записи -WR. Положительный сигнал на выходе параллельного переноса CR появляется при достижении максимального кода (15 для ИЕ13 и 9 для ИЕ12) при прямом счете или при достижении ну- левого кода при обратном (инверсном) счете. Имеется также
212 Глава 5 выход последовательного переноса Р, отрицательный импульс на котором вырабатывается при положительном сигнале CR и повторяет отрицательный импульс на тактовом входе С (анало- гично рассмотренным ранее счетчикам ИЕ6 и ИЕ7). Режимы работы счетчиков ИЕ12 и ИЕ13 представлены в табл. 5.6. Таблица 5.6. Режимы работы счетчиков ИЕ12 и ИЕ13 Входы Режим -WR U/D -ECR С 0 X X X Параллельная запись 1 X 1 X Хранение 1 0 0 0—>1 Прямой счет 1 1 0 0—>1 Обратный счет Микросхемы ИЕ16 (двоично-десятичный счетчик) и ИЕ17 (двоичный счетчик) отличаются от рассмотренных синхронной параллельной записью по фронту тактового сигнала С, возмож- ностью прямого и обратного счета и отсутствием сигнала сбро- са в нуль. Срабатывают счетчики ИЕ16 и ИЕ17 по положительному фронту тактового сигнала С. При нулевом уровне на входе разрешения записи -EWR по фронту сигнала С в счетчик запи- сывается информация со входов данных DI, D2, D4, D8. При единичном уровне на входе -EWR по положительному фронту сигнала С происходит счет. Направление счета определяется входом U/D: при единице на этом входе счет прямой, при ну- ле — обратный. Имеются два входа расширения: вход разре- шения счета -ЕСТ и вход разрешения переноса -ECR. Различа- ются эти два входа тем, что сигнал -ECR не только запрещает счет, как сигнал -ЕСТ, но еще и запрещает выработку сигнала переноса. Переключение уровней на входах U/D, -ЕСТ и -ECR надо производить только при единичном уровне на тактовом входе С. Отрицательный сигнал переноса -CR (синхронный) выраба- тывается при достижении на выходах счетчика максимального кода (15 для ИЕ7 или 9 для ИЕ16) при прямом счете или нуле- вого кода при обратном счете.
Применение счетчиков 213 Режимы работы счетчиков ИЕ16 и ИЕ17 приведены в табл. 5.7. Таблица 5.7. Режимы работы счетчиков ИЕ16 и ИЕ17 Входы Режим -EWR U/D -ЕСТ -ECR С 0 X X X 0—>1 Параллельная запись 1 1 0 0 0—>1 Прямой счет 1 0 0 0 0—>1 Обратный счет 1 X 1 X X Хранение 1 X X 1 X Хранение Возможности применения синхронных (параллельных) счетчиков очень широки. Достаточно сказать, что они без всяких проблем могут заменить во всех схемах как асин- хронные (последовательные) счетчики, так и синхронные счетчики с асинхронным (последовательным) переносом. При необходимости достижения максимального быстродей- ствия они имеют большие преимущества по сравнению со всеми другими счетчиками. Их выходной код устанавливает- ся одновременно при любом количестве разрядов без приме- нения дополнительных выходных регистров (которые требо- вались в случае асинхронных счетчиков и синхронных счет- чиков с асинхронным переносом). Мы рассмотрим здесь всего несколько схем, иллюстрирую- щих характерные особенности именно синхронных счетчиков. Сначала остановимся на методах каскадирования счетчиков. В отличие от других типов счетчиков синхронные счетчики можно соединять различными способами, причем способ со- единения различен для разного количества микросхем. В каче- стве примера возьмем микросхемы ИЕ17. При объединении двух счетчиков (рис. 5.36) никаких про- блем не возникает: выход переноса -CR младшего счетчика со- единяется со входом разрешения счета старшего счетчика -ЕСТ. На входы -ECR обоих счетчиков подается нулевой уровень. Ус- ловие правильной работы будет простым и легко выполнимым: период тактового сигнала С не должен быть меньше, чем за- держка выработки сигнала переноса CR.
214 Глава 5 Рис. 5.36. Объединение двух счетчиков ИЕ17. При объединении трех счетчиков ситуация несколько усложня- ется (рис. 5.37). Сигнал с выход переноса первого счетчика подает- ся на входы -ЕСТ второго и третьего счетчиков. Сигнал с выход переноса второго счетчика подается на вход -ECR третьего счетчи- ка. В результате третий счетчик будет считать только тогда, когда имеется перенос как у первого счетчика, так и у второго счетчика. На рисунке для простоты не показано подключение входных и вы- ходных сигналов, не участвующих в каскадировании. Рис. 5.37. Объединение трех счетчиков ИЕ17. Условие правильной работы схемы остается тем же, что и в случае двух счетчиков: период тактового сигнала С не должен быть меньше задержки выработки сигнала переноса CR. При объединении четырех (и более) счетчиков уже возника- ет проблема, так как у старших счетчиков не остается свобод- ных управляющих входов для собирания всех сигналов перено- са более младших счетчиков. Поэтому в данном случае исполь- зуется способность входного сигнал -ECR запрещать выходной
Применение счетчиков 215 сигнал переноса -CR (рис. 5.38). На четвертый и последующие счетчики подаются уже не сигналы переноса со всех предыду- щих счетчиков, а только с первого и с предыдущего. На рисунке для простоты не показано подключение входов и выходов, не участвующих непосредственно в каскадировании. С DI D2 D4 D8 ECR ECT СТ2 1 - 2 - 4 - 8 - D1 D2 D4 D8 СТ2 1 - 2 - 4 - 8 - ЕСТ DI D2 D4 D8 ECR •ECT СТ2 1 - 2 - 4 - 8 - D1 D2 D4 D8 ГСТ2 1 - 2 - 4 - 8 - 4 ECR •’ЕСТ 1 EWR U/D CR ИЕ17 1EWR U/D >] |crH ИЕ17 <EWR U/D CR ' EWR U/D CR ИЕ17 ИЕ17 Рис. 5.38. Объединение четырех счетчиков ИЕ17. При таком включении происходит уже накапливание задер- жек сигналов переноса. Максимальной задержка будет для сиг- нала переноса второго счетчика. Условие правильной работы всех счетчиков будет следующее: период тактового сигнала С не должен быть меньше, чем максимальная суммарная задержка сигналов переноса до входа последнего счетчика. При объеди- нении четырех счетчиков в эту максимальную задержку входят задержка сигнала переноса -CR микросхемы относительно фронта сигнала С и задержка сигнала переноса -CR относитель- но сигнала -ECR. При объединении пяти счетчиков добавится еще одна задержка сигнала переноса -CR относительно сигнала -ECR и т. д. Поэтому с увеличением количества объединяемых счетчиков будет снижаться допустимая тактовая частота. При необходимости объединения большого количества счетчиков (большего четырех) можно избежать накопления суммарной задержки переноса, включив на входах старших счетчиков -ЕСТ логические элементы ИЛИ с нужным числом входов. Эти элементы должны собирать все сигналы переноса с более младших счетчиков, то есть на их выходах должен быть нуль тогда, когда сигналы -CR всех предыдущих счетчиков ну- левые. При этом, правда, в суммарную задержку переноса, ко- торая не должна превышать периода тактового сигнала С, вой- дут задержки этих самых элементов ИЛИ.
216 Глава 5 В любом случае при выполнении условия правильной рабо- ты счетчиков схема будет работать как идеальный счетчик, то есть все разряды многокаскадного счетчика будут переключать- ся одновременно. А теперь рассмотрим некоторые схемы на основе синхрон- ных счетчиков. Управляемый делитель частоты с коэффициентом пересчета, задаваемым входным кодом, реализуется на синхронных счет- чиках довольно просто (рис. 5.39). Сигнал переноса -CR стар- шего счетчика подается на вход разрешения записи -EWR. Счетчики работают в режиме обратного счета (на вход U/D по- дан сигнал логического нуля). Рис. 5.39. Управляемый делитель частоты. При достижении всеми счетчиками нулевого кода выраба- тывается сигнал переноса -CR, переводящий счетчики в режим параллельной записи входного управляющего кода. Следующим положительным фронтом тактового сигнала С входной код за- писывается в счетчики. Это приводит к новому циклу счета от входного кода до нуля. Коэффициент пересчета делителя частоты равен (N+1), где N — входной код, который может принимать значения от 1 до (2П — 1), где п — количество разрядов кода. Условие правильной работы делителя частоты следующее: период тактового сигнала не должен быть меньше полной задержки переноса. Длитель- ность выходного сигнала делителя частоты равна периоду так- товой частоты. Следующая схема — формирователь временного интервала заданной длительности (рис. 5.40) демонстрирует, как надо ис-
Применение счетчиков 217 пользовать выходной сигнал переноса синхронных счетчиков при необходимости организации разового (не периодического) цикла работы. Рис. 5.40. Формирователь интервала заданной длительности. Работа формирователя начинается по короткому отрицатель- ному импульсу -Старт, перебрасывающему управляющий триггер в единицу и начинающему выходной сигнал. Положительный сигнал с выхода триггера переводит 8-разрядный синхронный счетчик из режима параллельной записи входного кода в режим счета (по входу -EWR). Счет на уменьшение идет по положитель- ным фронтам тактового сигнала с генератора. Когда счетчик дос- читает до нуля, следующим положительным фронтом тактового сигнала нулевой сигнал переноса -CR будет записан в триггер. Тем самым будет завершен выходной сигнал, а счетчик будет пе- реведен в режим параллельной записи. Следующий цикл работы формирователя начнется по сигналу -Старт. В данном случае триггер, обрабатывающий сигнал переноса работает синхронно со счетчиками, так как тактируется тем же (положительным) фронтом единого тактового сигнала. Дли- тельность выходного сигнала будет находиться в интервале от NT до (N+1)T, где Т — период тактового сигнала с генератора, а N — входной код от 0 до 255. Посмотрим, как на синхронных счетчиках можно построить генератор прямоугольных импульсов с регулируемыми дли- тельностью импульса и длительностью паузы, который был рас- смотрен в предыдущем разделе (см. рис. 5.28 и 5.29). Будем ориентироваться на достижение максимального быстродейст- вия, то есть на максимально возможную тактовую частоту.
218 Глава 5 Схема управления будет мало отличаться от схемы рис. 5.29, поэтому мы остановимся только на схеме счетчиков импульса и паузы. Выберем разрядность обоих этих счетчиков равной 16. Тогда схема счетчиков импульса и паузы (рис. 5.41) будет включать в себя восемь микросхем счетчиков ИЕ17 и выходной триггер, а также логические элементы 4ИЛИ-НЕ для уменьше- ния задержек переноса. В данном случае очень удобно брать JK- триггер, так как он имеет два информационных входа и такто- вый вход. Рис. 5.41. Синхронные счетчики импульса и паузы для генератора прямо- угольных импульсов. Триггер тактируется отрицательным фронтом сигнала С, а счетчики — положительным фронтом, поэтому для обеспечения синхронной работы всей схемы по одному фронту тактового сигнала сигнал на вход С триггера подается через инвертор. Суть работы схемы остается прежней: 16-разрядные счетчи- ки импульса и паузы работают по очереди, что определяется управляющими сигналами с выходов триггера (прямого и ин-
Применение счетчиков 219 версного). Счетчики считают на уменьшение (в режиме инверс- ного счета) от кода, параллельно записанного в них, до нуля. До начала работы (сигнал Разр. нулевой) оба счетчика нахо- дятся в состоянии параллельной записи и записывают в себя код импульса и паузы. После прихода положительного сигнала раз- решения генерации Разр. начинает счет верхний на схеме счет- чик (счетчик паузы). Когда счетчик паузы досчитывает до нуля, его сигнал пе- реноса записывается в триггер по входу J и перебрасывает вы- ход триггера в единицу, что переводит счетчик паузы из со- стояния счета в состояние параллельной записи и запрещает поступления сигнала на вход J. Одновременно переходит в со- стояние счета нижний на схеме счетчик (счетчик импульса), который, в свою очередь досчитав до нуля, перебрасывает триггер в нуль по входу К. Этот процесс периодически повто- ряется, покд разрешена генерация (то есть сигнал Разр. поло- жительный). Сформулируем условия правильной работы схемы. Во-первых, за период тактового сигнала должен успеть пол- ностью сработать 16-разрядный счетчик, выполненный на четы- рех микросхемах синхронных счетчиков. То есть сигнал на вхо- ды -ECR и -ЕСТ последнего счетчика должны успеть придти до следующего фронта тактового сигнала. Во-вторых, за период тактового сигнала должна успеть сра- ботать цепочка из инвертора (ЛН1), триггера (ТВ11) и элемента 2И (ЛИ1). Это более мягкое требование, чем предыдущее, если, конечно, взять перечисленные элементы из быстродействующих серий КР531 ил и КР1531. Рассмотренный переход на синхронные счетчики позволяет повысить максимальную частоту тактового сигнала генератора прямоугольных импульсов по меньшей мере вдвое (до 20 МГц) по сравнению со схемой на синхронных счетчиках с асинхрон- ным переносом. Наконец, последнее применение синхронных счетчиков, которое мы рассмотрим, связано с их возможностью парал- лельной записи по фронту тактового сигнала. То есть в режи- ме параллельной записи счетчик представляет собой регистр, срабатывающий по фронту тактового сигнала. Благодаря этой особенности, при объединении нескольких счетчиков их вы- ходные коды можно последовательно считывать с выходов по-
220 Глава 5 следнего в цепочке, старшего счетчика (рис. 5.42). Счетчики в данном случае образуют своеобразный многоразрядный сдви- говый регистр. Режим работы схемы определяется управляющим сигналом Счет/Сдвиг. При высоком уровне этого сигнала счетчики нахо- дятся в режиме прямого счета по фронту сигнала Такт. При низ- ком уровне сигнала счетчики переходят в режим последова- тельного счета 12-разрядного счетчика через четыре разряда правого на схеме счетчика. Первым читается состояние старше- го счетчика, последним — младшего. Сдвиг выходного кода происходит по положительному фронту тактового сигнала. По- сле трех импульсов тактового сигнала во все три счетчика ока- зывается записанным нулевой код, то есть схема готова к режи- му прямого счета. Счет/сдвиг Рис. 5.42. Последовательное чтение выходного кода многокаскадного счет- чика. Входной — код — Такт D1 D2 D4 D8 ECR ЕСТ С СТ2 1 2 4 8 D1 D2 D4 -D8 ECR -ЕСТ ’ С СТ2 1 2 4 8 D1 D2 D4 D8 СТ2 1 2 4 8 I—1 EWR г U/D >] |CRy- ИЕ17 г-1 EWR CR1-1 -ECR ЕСТ 1С EWR CR Лог.1 Счет/запись Рис. 5.43. Последовательная запись в счетчики исходного состояния.
Применение счетчиков 221 И точно такая же последовательная перезапись информации из счетчика в счетчик позволяет с помощью 4-разрядных вход- ных кодов записать исходное состояние нескольких последова- тельно соединенных счетчиков (рис. 5.43). Перед началом работы схема переводится в состояние па- раллельной записи нулевым уровнем сигнала Счет/запись. При этом 4-разрядные коды, которые надо записать во все счетчики, по очереди подаются на вход первого (младшего) счетчика и сдвигаются по направлению к старшему счетчику по положи- тельному фронту тактового сигнала С. Для записи всех трех счетчиков необходимо подать три тактовых импульса подряд. Причем первым надо записывать код, предназначенный для старшего (правого на схеме) счетчика, а последним — код, предназначенный для младшего (левого на схеме) счетчика.
Глава 6 ПРИМЕНЕНИЕ МИКРОСХЕМ ПАМЯТИ Микросхемы памяти (или просто память, или запоминающие устройства — ЗУ, английское — Memory) представляют собой группу еще более сложных цифровых микросхем по сравнению с микросхемами, рассмотренными ранее. Память — это всегда очень сложная структура, включающая в себя множество эле- ментов. Правда, внутренняя структура памяти регулярная, большинство элементов одинаковые, связи между элементами сравнительно простые, поэтому функции, выполняемые микро- схемами памяти, не слишком сложные. Память, как и следует из ее названия, предназначена для за- поминания, хранения каких-то массивов информации, проще говоря, наборов, таблиц, групп цифровых кодов. Каждый код хранится в отдельном элементе памяти, называемом ячейкой памяти. Основная функция любой памяти как раз и состоит в выдаче этих кодов на выходы микросхемы по внешнему запро- су. А основной параметр памяти — это ее объем, то есть коли- чество кодов, которые могут в ней храниться, и разрядность этих кодов. Для обозначения количества ячеек памяти используются следующие специальные единицы измерения: • 1К — это 1024, то есть 210 (читается «кило-» или «ка-»), при- мерно равно одной тысяче; • 1М — это 1048576, то есть 220 (читается «мега-»), примерно равно одному миллиону; • 1Г — это 1073741824, то есть 230 (читается «гига-»), примерно равно одному миллиарду. Принцип организации памяти записывается следующим об- разом: сначала пишется количество ячеек, а затем через знак умножения (косой крест) пишется разрядность кода, храняще- гося в одной ячейке. Например, организация памяти 64К X 8 оз- начает, что память имеет 64К (то есть 65536) ячеек и каждая
Применение микросхем памяти 223 ячейка — восьмиразрядная. А организация памяти 4М X 1 озна- чает, что память имеет 4М (то есть 4194304) ячеек, причем ка- ждая ячейка имеет всего один разряд. Общий объем памяти из- меряется в байтах (килобайтах — Кбайт, мегабайтах — Мбайт, гигабайтах — Гбайт) или в битах (килобитах — Кбит, мегаби- тах — Мбит, гигабитах — Гбит). В зависимости от способа занесения (записи) информации и от способа хранения информации микросхемы памяти разделя- ются на следующие основные типы: • Постоянная память (ПЗУ — постоянное запоминающее уст- ройство, ROM — Read Only Memory — память только для чтения), в которую информация заносится один раз на этапе изготовления микросхемы. Такая память называется еще ма- сочным ПЗУ. Информация в памяти не пропадает при выклю- чении ее питания, поэтому ее еще называют энергонезависи- мой памятью. • Программируемая постоянная память (ППЗУ — программи- руемое ПЗУ, PROM — Programmable ROM), в которую ин- формация может заноситься пользователем с помощью специ- альных методов (ограниченное число раз). Информация в ППЗУ тоже не пропадает при выключении ее питания, то есть она также энергонезависимая. • Оперативная память (ОЗУ — оперативное запоминающее уст- ройство, RAM — Random Access Memory — память с произ- вольным доступом), запись информацию в которую наиболее проста и может производиться пользователем сколько угодно раз на протяжении всего срока службы микросхемы. Инфор- мация в памяти пропадает при выключении ее питания. Существует множество промежуточных типов памяти, а так- же множество подтипов, но указанные типы самые главные, принципиально отличающиеся друг от друга. Хотя разница меж- ду ПЗУ и ППЗУ с точки зрения разработчика цифровых уст- ройств, как правило, не так уж велика, но в отдельных случаях, например, при использовании так называемой флэш-памяти (flash-memory), представляющей собой ППЗУ с многократным электрическим стиранием и перезаписью информации, эта разни- ца действительно чрезвычайно важна. Можно считать, что флэш- память занимает промежуточное положение между ОЗУ и ПЗУ.
224 Глава 6 Рис. 6.1. Микросхемы памяти: ПЗУ (а), ОЗУ с двунаправленной шиной дан- ных (б), ОЗУ с раздельными шинами входных и выходных данных (в). В общем случае любая микросхема памяти имеет следую- щие информационные выводы (рис. 6.1): • Адресные выводы (входные), образующие шину адреса памя- ти. Код на адресных линиях представляет собой двоичный номер ячейки памяти, к которой происходит обращение в дан- ный момент. Количество адресных разрядов определяет коли- чество ячеек памяти: при количестве адресных разрядов п ко- личество ячеек памяти равно 2П. • Выводы данных (выходные), образующие шину данных памя- ти. Код на линиях данных представляет собой содержимое той ячейки памяти, к которой производится обращение в данный момент. Количество разрядов данных определяет количество разрядов всех ячеек памяти (обычно оно бывает равным 1, 4, 8, 16). Как правило, выходы данных имеют тип выходного каскада ОК или ЗС. • В случае оперативной памяти помимо выходной шины данных может быть еще и отдельная входная шина данных, на кото- рую подается код, записываемый в выбранную ячейку памяти. Другой возможный вариант — совмещение входной и выход- ной шин данных, то есть двунаправленная шина данных, на- правление передачи информации по которой определяется
Применение микросхем памяти 225 управляющими сигналами. Двунаправленная шина применя- ется обычно при использовании 4-разрядной шины данных или шин данных еще большей разрядности. • Управляющие выводы (входные), которые определяют режим работы микросхемы. В большинстве случаев у памяти имеется вход выбора микросхемы CS (их может быть несколько, объе- диненных по функции И). У оперативной памяти также обяза- тельно есть вход записи WR, активный уровень сигнала на ко- тором переводит микросхему в режим записи. Мы в данной главе не будем, конечно, изучать все возмож- ные разновидности микросхем памяти, для этого не хватит целой книги. К тому же эта информация содержится в многочисленных справочниках. Микросхемы памяти выпускаются десятками фирм во всем мире, поэтому даже перечислить все их не слишком про- сто, не говоря уже о том, чтобы подробно рассматривать их осо- бенности и параметры. Мы всего лишь рассмотрим различные схемы включения типичных микросхем памяти для решения наиболее распространенных задач, а также методы проектиро- вания некоторых узлов и устройств на основе микросхем памя- ти. Именно это имеет непосредственное отношение к цифровой схемотехнике. И именно способы включения микросхем мало зависят от характерных особенностей той или иной микросхемы той или иной фирмы. 6.1. Постоянная память В данном разделе мы не будем говорить о флэш-памяти, так как область ее применения пока не слишком широка. Мы ограничим- ся только микросхемами ПЗУ и ППЗУ, информация в которые за- носится раз и навсегда (на этапе изготовления или же самим пользователем). Мы также не будем рассматривать здесь особен- ности оборудования для программирования ППЗУ (так называе- мых программаторов), принципы их построения и использования, это отдельная большая тема. Мы будем считать, что нужная нам информация может быть записана в ПЗУ или ППЗУ, а когда, как, каким способом она будет записана, нам не слишком важно. Все эти допущения позволят нам сосредоточиться именно на схемо- технике узлов и устройств на основе ПЗУ и ППЗУ (для простоты будем называть их в дальнейшем просто ПЗУ). 8 - 4589
226 Глава 6 Упомянем здесь только, что ППЗУ делятся на репрограмми- руемые или перепрограммируемые ПЗУ (РПЗУ, EPROM — Erasable Programmable ROM), то есть допускающие стирание и перезапись информации, и однократно программируемые ПЗУ. В свою очередь РПЗУ делятся на ПЗУ, информация в которых стирается электрическими сигналами (EEPROM — Electrically Erasable Programmable ROM), и на ПЗУ, информация в которых стирается ультрафиолетовым излучением через специальное про- зрачное окошко в корпусе микросхемы (собственно EPROM — Erasable Programmable ROM). Запись информации в любые ППЗУ производится с помощью подачи определенных последо- вательностей электрических сигналов (как правило, повышен- ного напряжения) на выводы микросхемы. Фирмами-производителями цифровых микросхем выпуска- ется немало самых разнообразных ПЗУ и ППЗУ. Различаются микросхемы постоянной памяти разным объемом (от 32 байт до 8 Мбайт и более), разной организацией (обычно количество разрядов данных бывает 4, 8 или 16), способами управления (назначением управляющих сигналов), типами выходных каска- дов (обычно ОК или ЗС), разным быстродействием (обычно за- держка составляет от единиц до сотен наносекунд). Но суть всех микросхем ПЗУ остается одной и той же: имеется шина адреса, на которую надо подавать код адреса нужной ячейки памяти, имеется шина данных, на которую выдается код, записанный в адресуемой ячейке, и имеются входы управления, которые раз- решают или запрещают выдачу информации цз адресуемой ячейки на шину данных. На рис. 6.2 представлены для примера несколько простей- ших и типичных микросхем постоянной памяти. Микросхема К155РЕЗ (аналог — N8223N) представляет со- бой однократно программируемое ППЗУ с организацией 32 X 8. Исходное состояние (до программирования) — все биты всех ячеек нулевые. Для программирования (записи информации) используется специальный программатор, подающий на разря- ды данных импульсы высокого напряжения. Тип выходных кас- кадов — открытый коллектор, то есть обязательно надо вклю- чать на выходах резисторы, подсоединенные к шине питания. Имеется один управляющий вход -CS, при положительном уровне сигнала на котором на всех выходах устанавливаются единицы.
Применение микросхем памяти 227 -АО PROM Ъ D1— D2- D3- D4 — D5- D6- D7- АО Al А2 АЗ А4 А5 А6 А7 PROM DO — DI — D2- D3- К155РЕЗ —'CS1 — CS2 KP556PT4 - AO - Al - A2 - A3 - A4 - A5 - A6 - A7 - A8 - A9 -A10 PROMl Dl — D2- D3- D4- D5- D7- -'CS1 - CS2 - CS3 KP556PT18 -AO 1 -Al - A2 -A3 - A4 - A5 - A6 - A7 - A8 - A9 -A1O -All -A12 -A13 -A14 PROM DI — D2- D3- D4- D5- D6- D7- - CS - CE — UPR К573РФ8 Рис. 6.2. Примеры микросхем ППЗУ отечественного производства. Микросхема КР556РТ4 (аналог — 13601) — это также одно- кратно программируемая постоянная память с организацией 256 X 4. Исходное состояние (до программирования) — все биты всех ячеек нулевые. Тип выходных каскадов — ОК. Два управляющих входа -CS1 и -CS2 объединены по принципу И, то есть для разрешения работы микросхемы (для перевода вы- ходов в активное состояние) оба эти сигнала должны быть ну- левыми. Для записи информации в микросхему используется программатор. Микросхема КР556РТ18 (аналог — НМ76161) также являет- ся однократно программируемым ППЗУ и имеет организацию 2К X 8. Тип выходов микросхемы — ЗС. Имеются три управ- ляющих входа: один инверсный -CS1, два других — прямые CS2 и CS3, объединенных по функции И. Выходы данных пере- ходят в активное состояние при нулевом уровне на -CS1 и при единичных уровнях на CS2 и CS3. Если входы управления ис- пользуются для подачи управляющих сигналов (то есть выходы могут переходить в третье состояние), то на выходах надо включать нагрузочные резисторы, подключенные к шине пита- ния. Исходное состояние микросхемы (до программирова- ния) — все биты всех ячеек единичные. Наконец, микросхема К573РФ8 (аналог — 127256) — это пример памяти РПЗУ с ультрафиолетовым стиранием ин- формации. Чтобы перепрограммировать память, необходимо ее стереть, для чего в течение некоторого времени (обычно 8*
228 Глава 6 несколько минут) надо облучать микросхему через окошко в корпусе ультрафиолетовым излучением (можно использовать медицинский кварцевый облучатель). Стертая микросхема имеет все биты установленные в единицу. Затем проводится процедура записи с помощью программатора, несколько от- личающегося от программаторов однократно программируе- мых микросхем. Управляющие входы -CS и -СЕ должны быть установлены в нуль для перевода выходов микросхемы в активное состояние. Имеется специальный вход UPR для подачи программирующего высокого напряжения, на кото- рый при чтении информации из микросхемы надо подавать напряжение питания. Тип выходных каскадов — ЗС. Микро- схемы этого типа самые медленные, их задержки самые большие. Основные временные характеристики микросхем ПЗУ — это две величины задержки. Задержка выборки адреса памяти — это время от установки входного кода адреса до установки вы- ходного кода данных. Задержка выборки микросхемы — это время от установки активного разрешающего управляющего сигнала CS до установки выходного кода данных памяти. За- держка выборки микросхемы обычно в несколько раз меньше задержки выборки адреса. Содержимое ПЗУ обычно изображается в виде специальной таблицы, называемой картой прошивки памяти. В таблице пока- зывается содержимое всех ячеек памяти, причем в каждой стро- ке записывается содержимое 16 (или 32) последовательно иду- щих (при нарастании кода адреса) ячеек памяти. При этом, как правило, используется 16-ричное кодирование. Пример карты прошивки ПЗУ с организацией 256 X 8 пока- зан в табл. 6.1 (все биты всех ячеек считаются установленными в единицу). Пользоваться таблицей очень просто. Например, для того, чтобы посмотреть содержимое ячейки памяти с 16-ричным адресом 8А, надо взять строку таблицы с номером 80 и столбец таблицы с номером А (данная ячейка в таблице выделена жир- ным шрифтом). Любые микросхемы ПЗУ легко можно включать так, чтобы уменьшать или увеличивать количество адресных разрядов, то есть уменьшать или увеличивать количество используемых яче- ек памяти. И то и другое часто требуется при построении схем цифровых устройств.
Применение микросхем памяти 229 Таблица 6.1. Пример карты прошивки ПЗУ Ад- рес 0 1 2 3 4 5 6 7 8 9 А в С D Е F 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF АО FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ВО FF FF’ FF FF FF FF FF FF FF FF FF FF FF FF FF FF СО FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF DO FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF Е0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF Рис. 6.3. Уменьшение количества адресных разрядов ПЗУ. Для уменьшения количества адресных разрядов необходимо на нужное число старших адресных входов подать нулевые сиг- налы. Каждый отключенный таким образом адресный разряд уменьшает количество ячеек ПЗУ вдвое. Например, на рис. 6.3 показано, как из микросхемы с организацией 2К X 8 сделать
230 Глава 6 микросхему 512x8. Два старших разряда адреса памяти отклю- чены (на них поданы нулевые сигналы). Использоваться будут только младшие (верхние в таблице прошивки) 512 ячеек памя- ти, и только их надо будет программировать. Конечно, гораздо лучше подобрать микросхему именно с тем количеством ячеек, которое действительно необходимо в данной схеме, но это, к сожалению, возможно не всегда. Рис. 6.4. Увеличение количества адресных разрядов ПЗУ с помощью дешиф- ратора. Задача увеличения количества адресных разрядов ПЗУ встречается значительно чаще задачи уменьшения количества адресных разрядов. В результате такого увеличения возрастает объем ПЗУ, объемы отдельных микросхем суммируются. Для увеличения адресных разрядов обычно применяются микросхе- мы дешифраторов (рис. 6.4). Младшие разряды шины адреса при этом подаются на объединенные адресные входы всех мик- росхем, а старшие — на управляющие (адресные) входы де- шифратора. Выходные сигналы дешифратора разрешают работу всегда только одной микросхемы памяти. В результате на об- щую шину данных всех ПЗУ выдает свою информацию только одна микросхема. На рисунке для простоты не показаны выход- ные резисторы с разрядов данных на шину питания, подключе-
Применение микросхем памяти 231 ние которых чаще всего необходимо, так как тип выходов дан- ных микросхем ПЗУ — это ОК или ЗС. В результате подобного объединения микросхем ПЗУ мо- жет увеличиться время выборки адреса полученного единого ПЗУ. В данном случае (см. рис. 6.4) оно будет равно макси- мальной из двух величин: времени выборки адреса одной мик- росхемы и суммы двух задержек: задержки дешифратора и за- держки выборки микросхемы ПЗУ. Если надо объединить две микросхемы (то есть добавить всего один разряд адресной шины), то можно обойтись без де- шифратора, подавая на вход -CS одной микросхемы прямой до- полнительный сигнал адреса, а на вход -CS другой микросхе- мы— этот же сигнал с инверсией. Применение дешифратора 3—8 позволяет объединить 8 микросхем ПЗУ (добавить три ад- ресных разряда), а применение дешифратора 4—16 добавляет четыре адресных разряда, объединяя 16 микросхем ПЗУ. Часто возникает также задача увеличения количества разря- дов данных. Для этого необходимо всего лишь объединить од- ноименные адресные входы нужного количества микросхем ПЗУ, а выходы данных ПЗУ не объединяются, а образуют код с большим числом разрядов. Например, при объединении таким образом двух микросхем с организацией 8К X 8 можно получить ПЗУ с организацией 8К X 16. 6.1.1. ПЗУ как универсальная комбинационная микросхема Одно из самых распространенных применений микросхем ПЗУ — замена ими сложных комбинационных схем. Такое ре- шение позволяет существенно упростить проектируемое уст- ройство и снизить количество используемых комбинационных микросхем, а также иногда уменьшить потребляемый ток и уве- личить быстродействие схемы. Суть предлагаемого подхода сводится к следующему. Если рассматривать адресные входы микросхемы ПЗУ как входы комбинационной схемы, а разряды данных — как выходы этой комбинационной схемы, то можно сформировать любую тре- буемую таблицу истинности данной комбинационной схемы. Для этого всего лишь надо составить таблицу прошивки ПЗУ, соответствующую нужной таблице истинности. В этом случае не надо ни подбирать логические элементы, ни оптимизировать
232 Глава 6 их соединения, ни думать о том, можно ли вообще построить требуемую комбинационную схему из стандартных микросхем. Важно только, чтобы количество требуемых входов не превы- шало количества адресных разрядов ПЗУ, а количество требуе- мых выходов не превышало разрядности шины данных ПЗУ. Рис. 6.5. Пример комбинационной схемы, заменяемой на ПЗУ. В качестве примера рассмотрим довольно сложную комби- национную схему (рис. 6.5), имеющую восемь входов и четыре выхода. Функция схемы сводится к следующему. Прежде всего она распознает два различных 5-разрядных входных кода (11001 и 10011) в случае, когда на входе разрешения -Разр. присутству- ет нулевой сигнал. А при приходе сигналов -Строб 1 и -Строб 2 схема выдает на выход отрицательные импульсы. Причем пер- вый выходной сигнал вырабатывается в случае, когда входной код равен 11001 и пришел сигнал -Строб 1, второй выходной сигнал — при том же коде, но по входному сигналу -Строб 2. Третий и четвертый выходные сигналы вырабатываются при входном коде 10011 и при приходе соответственно управляю- щих сигналов -Строб 1 и -Строб 2. То есть логика работы до- вольно сложная, и разнообразных логических элементов требу- ется немало. Но всю эту схему можно заменить всего лишь одной микро- схемой ПЗУ, например типа РТ4, имеющей 8 адресных входов и 4 выхода данных (рис. 6.6). При этом пять разрядов входного кода подаются на младшие разряды адреса ПЗУ (А0...А4), вход- ной сигнал -Разр. — на адресный вход А5, сигнал -Строб 1 — на вход А6, сигнал -Строб 2 — на вход А7. Младший разряд дан- ных памяти DO используется для первого выходного сигнала, D1 — для второго выходного сигнала, D2 — для третьего вы-
Применение микросхем памяти 233 ходного сигнала, D3 — для четвертого выходного сигнала. Микросхема ПЗУ всегда выбрана (управляющие сигналы -CS1 и -CS2 — нулевые). На выходах данных памяти включены рези- сторы, так как тип выходов микросхемы РТ4 — ОК. Входной код -Разр. -Строб 1 -Строб 2 Выход 1 Выход 2 Выход 3 Выход 4 Рис. 6.6. Включение ПЗУ для замены комбинационной схемы, показанной на рис. 6.5. Составим карту прошивки ПЗУ. Активные выходные сигна- лы — нулевые, а пассивные — единичные. Значит, в большин- стве ячеек ПЗУ будут записаны коды F (то есть все выходные сигналы пассивны). Активному (нулевому) первому выходному сигналу при пассивных остальных будет соответствовать дво- ичный код данных 1110 (16-ричный код — Е), активному вто- рому выходному сигналу будет соответствовать двоичный код 1101 (16-ричный — D), активному третьему выходному сигна- лу — двоичный код 1011 (или В), активному четвертому выход- ному сигналу — двоичный код 0111 (или 7). То есть только со- держимое четырех ячеек памяти будет отличаться от F. Например, код Е будет записан в ячейку с таким адресом, значения пяти младших разрядов которого (А0...А4) равны се- лектируемому входному коду 11001, разряда А5 — нулю (сиг- нал -Разр. активен), разряда А6 — нулю (сигнал -Строб 1 акти- вен) и разряда А7 — единице (сигнал -Строб 2 пассивен). То есть получаем двоичный код адреса 10011001 (или в 16-ричном коде 99). Точно так же код D будет записан в ячейку с адресом 01011001 (то есть 16-ричное 59), код В — в ячейку с адресом 10010011 (то есть 93), а код 7 — в ячейку с адресом 01010011 (то есть 53). Получившаяся карта прошивки ПЗУ приведена в табл. 6.2. Она полностью совпадает с таблицей истинности за- меняемой комбинационной схемы.
234 Глава 6 Таблица 6.2. Карта прошивки ПЗУ для замены комбинационной схемы Ад- рес 0 1 2 3 4 5 6 7 8 9 А В С D Е F 00 F F F F F F F F F F F F F F F F 10 F F F F F F F F F F F F F F F F 20 F F F F F F F F F F F F F F F F 30 F F F F F F F F F F F F F F F F 40 F F F F F F F F F F F F F F F F 50 F F F 7 F F F F F D F F F F F F 60 F F F F F F F F F F F F F F F F 70 F F F F F F F F F F F F F F F F 80 F F F F F F F F F F F F F F F F 90 F F F В F F F F F Е F F F F F F АО F F F F F F F F F F F F F F F F ВО F F F F F F F F F F F F F F F F СО F F F F F F F F F F F F F F F F D0 F F F F F F F F F F F F F F F F Е0 F F F F F F F F F F F F F F F F F0 F F F F F F F F F F F F F F F F Может показаться, что такое использование микросхемы ПЗУ чересчур расточительно, избыточно, но это не так. Гораздо важнее, что схема сильно упрощается. Если же взять комбина- ционную схему с более сложной таблицей истинности, то воз- можности ПЗУ будут использованы полнее. К тому же большое достоинство такого решения состоит в том, что при необходи- мости изменения логики работы комбинационной схемы потре- буется всего лишь перепрошивка ПЗУ, а не проектирование но- вой схемы из логических элементов. Задержка ПЗУ при замене комбинационной схемы любой сложности остается одной и той же, она равна задержке выборки адреса микросхемы ПЗУ. При сложной заменяемой комбинационной схеме ПЗУ может ока- заться даже быстрее. Однако использование ПЗУ для замены комбинационных схем имеет и свои довольно серьезные недостатки. Дело в том, что микросхемы ПЗУ еще больше, чем комбинационные микро-
Применение микросхем памяти 235 схемы, чувствительны к моменту изменения входных сигналов (адресных разрядов). На выходах данных микросхем ПЗУ при любом изменении входного кода адреса могут появляться ко- роткие паразитные импульсы. Поэтому лучше всего использо- вать ПЗУ для замены комбинационных схем, которые работают в статическом режиме, и в которых короткие импульсы не име- ют значения. Можно также применять методы синхронизации выходных сигналов ПЗУ (рис. 6.7) с помощью управляющих сигналов выбора микросхемы CS (а) или же с помощью выходных триг- геров и регистров (б). Суть синхронизации состоит в том, что выходные сигналы ПЗУ надо разрешать или фиксировать с помощью синхросигнала только тогда, когда все переходные процессы внутри микросхемы, вызванные сменой кода адреса, уже закончились, и паразитные импульсы на выходах гаранти- рованно отсутствуют. Рис. 6.7. Методы синхронизации выходных сигналов ПЗУ с помощью сигнала CS (а) и выходного регистра (б). Микросхемы ПЗУ могут заменять собой любые комбинаци- онные микросхемы: дешифраторы, шифраторы, компараторы кодов, сумматоры, мультиплексоры, преобразователи кодов и т. д. Однако при подобной замене всегда стоит подумать, не лучше ли использовать уже готовые микросхемы, чем изготав- ливать новые (программировать ПЗУ). Микросхемы ПЗУ могут оказаться медленнее стандартных комбинационных микросхем
236 Глава 6 и потреблять больший ток питания. К тому же они могут потре- бовать использования выходных резисторов, если микросхемы имеют выходы ОК или при использовании входов CS у микро- схем с выходами ЗС. Другое дело, когда ПЗУ выполняет функ- цию, отличающуюся от функции стандартной комбинационной микросхемы. Простейший пример — дешифратор с положи- тельными, а не с отрицательными (как в стандартных сериях) активными выходными сигналами. В общем случае ПЗУ можно рассматривать как преобразова- тель входного кода (кода адреса) в выходной код (код данных) по произвольному закону, задаваемому разработчиком. Это по- зволяет не только преобразовывать друг в друга различные стандартные коды, но и выполнять множество других функций, например использовать ПЗУ как простейший табличный вычис- литель. Для этого надо на адресные разряды ПЗУ подать код входного числа (аргумента), а на выходах разрядов данных по- лучить код выходного числа (функции). Такой табличный вы- числитель имеет очень высокое быстродействие по сравнению с другими типами вычислителей (время вычисления функции равно задержке выборки адреса ПЗУ). В качестве простейшего примера рассмотрим вычислитель для возведения в квадрат 4-разрядного двоичного числа (рис. 6.8). Вычислитель выполнен на микросхеме ПЗУ типа РЕЗ, у которого использованы четыре разряда адреса и восемь разря- дов данных. Он позволяет получать двоичные коды квадратов любых чисел в диапазоне от 0 (или в двоичном коде 0000, в 16- ричном коде 0) до 15 (или в двоичном коде 1111, в 16-ричном коде F), которые принимают значения от 0 (или в двоичном ко- де 00000000, в 16-ричном — 00) до 225 (или в двоичном коде 11100001, в 16-ричном — Е1). Рис. 6.8. Вычислитель квадратов входных чисел.
Применение микросхем памяти 237 Карта прошивки ПЗУ вычислителя квадратов (табл. 6.3) бу- дет очень проста: код данных в каждой ячейке равен квадрату кода адреса этой ячейки. Используется всего 16 ячеек памяти, содержимое остальных 16 ячеек не имеет значения (что обозна- чено в таблице XX). Таблица 6.3. Карта прошивки ПЗУ-вычислителя квадратов Адрес 0 1 2 3 4 5 6 7 8 9 А В С D Е F 00 00 01 04 09 10 19 24 31 40 51 64 79 90 А9 С4 Е1 10 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX На такой же точно схеме (рис. 6.8) можно сделать и вычис- литель квадратов в двоично-десятичном коде. В этом случае бу- дет использовано всего лишь десять ячеек памяти с адресами от О до 9, а в ячейках будут записаны их квадраты от 0 до 81. Недостаток любого табличного вычислителя на ПЗУ — это необходимость увеличения вдвое требуемого объема памяти при увеличении разрядности входного числа на единицу. На- пример, при 8-разрядных входных числах требуется ПЗУ с ко- личеством ячеек 256, при 16-разрядных входных числах — ПЗУ с количеством ячеек 64К, а при 32-разрядных входных чис- лах— ПЗУ с количеством ячеек 4Г. Такие большие объемы очень трудно реализовать на серийно выпускаемых микросхе- мах. Поэтому табличные вычислители на ПЗУ обычно строятся только для разрядности входных чисел не более 16. Одно из наиболее распространенных применений ПЗУ как преобразователя кодов — это построение на их основе всевоз- можных индикаторов, отображающих на экране буквы и цифры. ПЗУ в данном случае переводит код (номер) буквы или цифры в ее изображение. Конечно, в данном случае заменить ПЗУ ком- бинационной схемой совершенно невозможно, так как букв и цифр очень много, а их изображения очень разнообразны. Простейший пример данного применения ПЗУ — это управ- ление знаковым семисегментным индикатором, знакомым всем по калькуляторам, кассовым аппаратам, электронным часам, ве- сам и т. д. В семисегментных индикаторах изображение всех цифр от 0 до 9 строится всего из семи сегментов (отрезков ли- ний) (рис. 6.9).
238 Глава 6 ваааннБпваннвввв Рис. 6.9. Дешифратор знакового семисегментного индикатора на ПЗУ. Чтобы отобразить в виде цифры 4-разрядный двоичный код, надо этот код преобразовать в 7-разрядный код, каждому разря- ду которого будет соответствовать один сегмент индикатора. То есть коду 0000 должно соответствовать изображение нуля (6 сегментов, расположенных по периметру), а коду ООО 1 — изображение единицы (два правых вертикальных сегмента). Для повышения универсальности индикатора удобно дополнить де- сять цифр еще и шестью буквами, использующимися в 16-рич- ном коде (А, В, С, D, Е, F). Семь сегментов индикатора позво- ляют сделать и это, правда, изображения букв при этом получа- ются не слишком качественными. ПЗУ типа РЕЗ, используемое в качестве дешифратора инди- катора, имеет 4 входа и 7 выходов (старший разряд адреса и старший разряд данных не используются). Карта прошивки ПЗУ приведена в табл. 6.4. Нулевой сигнал на каждом из выходов данных ПЗУ зажигает соответствующий ему сегмент. Таблица 6.4. Карта прошивки ПЗУ для дешифратора знакового индикатора Адрес 0 1 2 3 4 5 6 7 8 9 А В с D Е F 06 40 79 24 30 19 12 02 78 00 10 08 03 46 21 06 0Е 10 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX ПЗУ позволяют также формировать и более сложные изо- бражения букв и цифр — матричные. Такие изображения ис- пользуются, например, в табло типа «бегущая строка», на экра- нах мониторов, в больших рекламных табло. Каждая буква,
Применение микросхем памяти 239 цифра, другой знак располагается в данном случае на прямо- угольной матрице, называемой знакоместом и состоящей из не- скольких строк и нескольких столбцов точечных элементов изображения, которые могут зажигаться независимо друг от друга. Чем больше строк и столбцов в знакоместе, тем более ка- чественное изображение букв и цифр можно получить. Мини- мально возможный размер знакоместа — 5 столбцов на 7 строк, то есть всего 35 элементов изображения. ПЗУ в данном случае содержит в себе информацию об изо- бражениях всех возможных букв и цифр (обычно этот набор включает в себя 256 символов). Но выходной код ПЗУ имеет мало разрядов, поэтому каждый такой код, соответствующий одному адресу, представляет себой информацию об изображе- нии не целого символа, а только одной его строки (или столб- ца). Информация о целом символе занимает в ПЗУ столько яче- ек, сколько в изображении символа имеется столбцов (или строк). Пример матричного знакогенератора на ПЗУ приведен на рис. 6.10. Номер строки Код символа Рис. 6.10. Матричный знакогенератор на ПЗУ. KP556PT18 □ Строка 0 Г Строка 1 Г Строка 2 Г Строка 3 Г Строка 4 Г Строка 5 □ Строка 6 □ Строка? В данном случае используется знакоместная матрица из 8 строк и 8 столбцов. В каждую ячейку ПЗУ записывается код изображения одной из 8 строк одного из 256 символов. Изобра- жение одного символа занимает 8 последовательно располо- женных ячеек в ПЗУ. Для букв и цифр правый столбец знакоме- ста не используется, он служит для отделения знаков друг от друга. Он может и использоваться в случае специальных (на- пример, графических) символов. В случае матричного светоди- одного индикатора перебор строк может осуществляться 3-раз-
240 Глава 6 рядным счетчиком с дешифратором 3—8 на его выходе. В слу- чае телевизионного монитора перебор строк осуществляется с помощью генератора вертикальной развертки изображения. Составление карты прошивки такого ПЗУ непросто, оно обычно производится с помощью специальных программ на компьютере. Но принцип составления прост. Например, если активному (зажженному) элементу изображения соответствует единичный сигнал, то для нулевой строки символа «М», пока- занного на рисунке, в ПЗУ надо записать 10000010, для первой строки — код 11000110, для второй — код 10101010, для треть- ей — 10010010 и т. д. 6.1.2. ПЗУ в генераторах импульсных последовательностей Следующее важнейшее применение ПЗУ — это построение ге- нераторов сложных последовательностей цифровых импульсов. Такие генераторы широко используются в самых разных изме- рительных системах, в устройствах автоматики, в телевизион- ных системах, в схемах управления линейными или матричны- ми индикаторами и т. д. Задача в данном случае ставится следующим образом. Необ- ходимо сформировать последовательность из нескольких сигна- лов различной длительности, сдвинутых относительно друг друга на различные временные интервалы. Причем последовательность эта может быть как разовой (однократно начинающейся по внеш- нему сигналу), так и периодической, непрерывно повторяющейся. Рис. 6.11. Пример структуры генератора последовательностей сигналов на ПЗУ. Наиболее распространенная структура генератора последо- вательностей выходных сигналов на ПЗУ включает в себя так- товый генератор нужной частоты, счетчик с требуемым числом разрядов, ПЗУ и выходной регистр (рис. 6.11). Счетчик переби-
Применение микросхем памяти 241 рает адреса ПЗУ, ПЗУ последовательно выдает на выходы дан- ных все записанные в него коды. Выходной регистр, тактируе- мый тем же тактовым сигналом, что и счетчик, служит для пре- дотвращения появления в выходных сигналах паразитных им- пульсов и для обеспечения одновременного переключения всех выходных сигналов (что особенно важно в случае, когда ис- пользуются несколько параллельно включенных микросхем ПЗУ для увеличения разрядности шины данных). Выход °! ! I ; ; ; 1 ; г- Выход!! 1 ! ! I 1 ; ! Г~ Выход2; ; ; ; 1 ; Выход 3! | ; Выход 4i ! i ! I । i ' ! Выход ; j ] ; | | | । таи ; о; 1; 2; з; 4; 5 ] 6; 7; 8 Рис. 6.12. Временная диаграмма формируемых выходных сигналов. Рассмотрим пример. Пусть необходимо непрерывно форми- ровать периодическую последовательность из шести выходных сигналов в соответствии с временной диаграммой рис. 6.12. По- лучить такую последовательность можно, конечно, с помощью комбинационных схем, включенных на выходе счетчика или с помощью множества одновибраторов, запускающих друг друга, но и то и другое решение чересчур громоздко и сложно как в проектировании, так и в настройке. Применение же ПЗУ значи- тельно упрощает задачу. Достаточно провести несложные рас- четы и составить карту прошивки ПЗУ. Расчеты сводятся к следующему. Прежде всего определяем минимально возможную тактовую частоту (с целью минимизации требуемого объема ПЗУ). Для этого надо выделить максимальный временной интервал (дис- крет времени), который укладывается целое число раз во все временные сдвиги, задержки, длительности требуемой диа- граммы. В нашем случае этот дискрет равен одному делению по оси времени. Например, если длительность этого деления равна 250 нс, то и период тактового сигнала надо выбирать 250 нс, то есть тактовая частота будет равна 4 МГц. Можно, конечно, вы-
242 Глава 6 брать ее и кратной 4 МГц, например 8 МГц, 12 МГц, но тогда потребуется вдвое или втрое больший объем ПЗУ. Если бы нам надо было формировать только три верхних сигнала (Выход О, Выход 1, Выход 2), то период тактовой частоты можно было бы брать вдвое больше (в нашем примере — 500 нс), так как для этих сигналов все длительности кратны двум делениям. Второй расчет сводится к определению количества ячеек и разрядности ПЗУ. Шесть выходных сигналов схемы требуют шести разрядов данных ПЗУ. Длительность последовательности равна 20 тактам (или 14 в 16-ричном коде), то есть не равна 2П, поэтому счетчик придется сбрасывать в нуль через каждые 20 тактов, для чего потребуется еще один разряд данных ПЗУ. Итого потребуется 7 разрядов. А для перебора 20 тактов после- довательности потребуется 5-разрядный счетчик, так как 24 = 16 (недостаточно), а 25 = 32 (достаточно). Значит, разрядность ши- ны адреса ПЗУ также должна быть не менее пяти, то есть мини- мальные требования к организации ПЗУ — это 32 X 8, значит, подойдет микросхема ПЗУ типа РЕЗ. Наконец, третий расчет касается условий правильной рабо- ты схемы. Генератор последовательности будет работать пра- вильно, если за период тактового сигнала успеют сработать счетчик и ПЗУ. То есть сумма задержки полного переключения счетчика и задержки выборки адреса ПЗУ не должна превышать периода тактового сигнала. СТ2 Генератор 1 2 4 8 Cl R1 1 2 4 8 АО Al A2 A3 A4 CS PROM DO- DI D2- D3- D4- D5- D6- D7 K1S5PE3 ИЕ19 п~1 О 1 2 3 4 5 6 7 С RG 0-----Выход 0 1 2 3 4 ----Выход I ----Выход 2 ----Выход 3 , ---Выход 4 5---Выход 5 ИР27 6 7 Рис. 6.13. Первый вариант схемы генератора последовательности сигналов на ПЗУ. Таким образом, один из возможных вариантов схемы гене- ратора последовательности импульсов (рис. 6.13) будет вклю- чать в себя тактовый генератор, пятиразрядный счетчик на ос-
Применение микросхем памяти 243 нове ИЕ19, ПЗУ типа К155РЕЗ и 8-разрядный выходной регистр ИР27. Так как счетчик срабатывает по отрицательному фронту тактового сигнала, а регистр — по положительному фронту так- тового сигнала, необходимо включить инвертор. На схеме для простоты не показаны резисторы на выходах данных типа ОК микросхемы ПЗУ. Из схемы видно, что существует еще одно дополнительное условие правильной работы, связанное с использованием сигна- ла сброса. За период тактового сигнала должен успеть сработать регистр (записать в себя сигнал сброса с выхода ПЗУ), должен сброситься счетчик и должно выдать код ПЗУ. То есть сумма задержек регистра, сброса счетчика и выборки адреса ПЗУ не должна превышать периода тактового сигнала. Теперь составим карту прошивки ПЗУ. Для этого сформируем таблицу значений всех семи выходных сигналов во всех двадцати рабочих тактах генератора последовательностей (табл. 6.5). Зна- чения шести выходных сигналов (Выход 0 ... Выход 5) мы непо- средственно берем из требуемой временной диаграммы (см. рис. 6.12). Хотя эти сигналы будут приходить на выход схемы с задержкой на один такт из-за наличия выходного регистра, но при периодической работе генератора последовательности это не имеет никакого значения. Седьмой сигнал (Выход 6) используется в качестве сброса счетчика, он равен нулю от нулевого такта до 18 (в 16-ричном коде — 12) такта и равен единице в последнем девятнадцатом такте (в 16-ричном коде — 13). Этим единичным сигналом счетчик будет сбрасываться в нуль, то есть работа схемы после 19 такта будет возобновляться с нулевого такта. Пусть нам требуется более высокое быстродействие схемы. Например, период тактового генератора должен быть равен 100 нс и даже меньше. В этом случае асинхронный счетчик типа НЕ 19 уже не подойдет из-за своего низкого быстродействия. Надо использовать 5-разрядный синхронный счетчик. Можно, конечно, включить две микросхемы 4-разрядных счетчиков типа ИЕ17, но можно обойтись и одним 4-разрядным счетчиком, если задействовать оставшийся свободным выход данных ПЗУ и ос- тавшийся свободным разряд регистра (рис. 6.14). При этом без всякого ущерба для быстродействия можно использовать син- хронный счетчик с асинхронным переносом ИЕ7, так как нужна всего одна микросхема счетчика.
244 Г лава 6 Таблица 6.5. Карта прошивки ПЗУ генератора последовательности сигналов Такт (адрес) Вых.6 Вых. 5 Вых.4 Вых.З Вых.2 Вых. 1 Вых.О Код (данные) 0 0 0 1 1 1 1 1 1F 1 0 0 1 0 1 1 1 17 2 0 0 1 0 1 1 0 16 3 0 0 1 0 1 1 0 16 4 0 0 0 0 1 0 0 04 5 0 1 0 0 1 0 0 24 6 0 0 0 0 0 0 1 01 7 0 1 0 0 0 0 1 21 8 0 1 0 0 0 1 1 23 9 0 1 0 0 0 1 1 23 А 0 1 0 0 1 1 0 26 В 0 1 0 0 1 1 0 26 С 0 1 0 0 1 0 0 24 D 0 0 0 0 1 0 0 04 Е 0 1 0 0 0 0 1 21 F 0 0 0 0 0 0 1 01 10 0 0 1 0 0 1 1 13 И 0 0 1 0 0 1 1 13 12 0 0 1 0 1 1 1 17 13 1 0 1 1 1 1 1 5F А... Генератор СТ2 Лог.1 D1 D2 D4 D8 WR R 1 2 4 8 АО А1 А2 АЗ А4 PROM DO- D1- D2- D3- D4- О 1 2 3 4 RG К155РЕЗ ---> С WE Выход О Выход 1 Выход 2 Выход 3 Выход 4 Выход 5 ИЕ7 ИР27 Рис. 6.14. Второй вариант схемы генератора последовательности с 4-разряд- ным синхронным счетчиком ИЕ7.
Применение микросхем памяти 245 Карта прошивки ПЗУ генератора последовательностей оста- ется той же самой, что и в предыдущем случае, но добавляется один (седьмой) разряд шины данных ПЗУ. Значение этого раз- ряда должно быть равно нулю в пятнадцати тактах с нулевого до 14 (Е в 16-ричном коде), в четырех тактах с 15 (F в 16-рич- ном коде) по 18 (12 в 16-ричном коде) его значение должно быть равным единице (код данных увеличится на 80), а в по- следнем 19 такте (13 в 16-ричном коде) — снова нулю. В ре- зультате адреса ПЗУ будут перебираться от 0 до 15 (старший разряд адреса — нулевой), затем от 16 до 19 (в старшем разряде адреса единица, а счетчик после переполнения считает с нуля), а затем снова от нулевого адреса (счетчик сбросится сигналом Выход 6, а старший разряд адреса памяти станет нулевым). По- лучающаяся в результате карта прошивки ПЗУ приведена в табл. 6.6. Таблица 6.6. Карта прошивки ПЗУ для варианта схемы генератора последова- тельности импульсов Адрес 0 1 2 3 4 5 6 7 8 9 А В С D Е F 00 1F 17 16 16 04 24 01 21 23 23 26 26 24 04 21 81 10 93 93 97 5F XX XX XX XX XX XX XX XX XX XX XX XX Конечно, рассмотренный пример довольно прост, при ис- пользовании ПЗУ большего объема генерируемые последова- тельности сигналов могут быть гораздо сложнее рассмотренной, и выходных сигналов может быть больше, но суть остается прежней: ПЗУ выдает любые последовательности выходных сигналов минимальными средствами. Причем генерируемые по- следовательности можно довольно просто изменять, заменяя ПЗУ на микросхемы с другой картой прошивки. 6.1.3. Микропрограммные автоматы на ПЗУ Использование микропрограммных автоматов — это следую- щий шаг по пути усложнения «интеллекта» цифровых схем. На основе микропрограммных автоматов можно строить устрой- ства, которые работают по довольно сложным алгоритмам, выполняют различные функции, определяемые входными сиг- налами, выдают сложные последовательности выходных сигна-
246 Глава 6 лов. При этом алгоритм работы микропрограммного автомата может быть легко изменен заменой прошивки ПЗУ. В отличие от рассматривавшихся ранее устройств на «жесткой» логике, принцип работы которых однозначно определяется исполь- зуемыми элементами и способом их соединения, микропрограмм- ные автоматы с помощью одной и той же схемы могут выполнять самые разные функции. То есть они гораздо более гибкие, чем схе- мы на «жесткой» логике. К тому же проектировать микропро- граммные автоматы с точки зрения схемотехники довольно просто. Недостатком любого микропрограммного автомата по сравнению со схемами на «жесткой» логике является меньшее предельное бы- стродействие и необходимость составления карты прошивки ПЗУ с микропрограммами, часто довольно сложными. Наиболее распространенная структура микропрограммного автомата (рис. 6.15) включает в себя всего лишь три элемента: ПЗУ, регистр, срабатывающий по фронту, и тактовый генератор. Рис. 6.15. Структура микропрограммного автомата. ПЗУ имеет (L+M) адресных разрядов и N разрядов данных. Регистр используется с количеством разрядов (N+L). Разряды данных ПЗУ записываются в регистр по положительному фрон- ту тактового сигнала генератора. Часть этих разрядов (М) ис- пользуется для образования адреса ПЗУ, другая часть (N-M) служит для формирования выходных сигналов. Входные сигна- лы (L) поступают на входы регистра и используются совместно с частью выходных разрядов ПЗУ для получения адреса ПЗУ. Схема работает следующим образом. В каждом такте ПЗУ выдает код данных, тем самым определяя не только состояние выходных сигналов схемы, но и адрес ПЗУ, который установит-
Применение микросхем памяти 247 ся в следующем такте (после следующего положительного фронта тактового сигнала). На этот следующий адрес влияют также и входные сигналы. То есть в отличие от формирователя последовательности сигналов, рассмотренного в предыдущем разделе, в данном случае адреса могут перебираться не только последовательно (с помощью счетчика), но и в произвольном порядке, определяемом прошивкой ПЗУ, называемой микропро- граммой. Условием правильной работы схемы будет следующее. За один период тактового сигнала должны успеть сработать ре- гистр и ПЗУ. То есть сумма задержки регистра и задержки вы- борки адреса ПЗУ не должна превышать периода тактового сиг- нала. Отметим также, что входные сигналы микропрограммного автомата нельзя подавать непосредственно на адресные входы ПЗУ (без регистра), так как их асинхронное (по отношению к тактовому .сигналу) изменение может вызвать переходный про- цесс на выходах данных ПЗУ именно в тот момент, когда вы- ходные сигналы ПЗУ записываются в регистр. В результате в регистр может записаться неверная информация, что нарушит работу всей схемы. Регистр же синхронизирует изменения входных сигналов с тактовым сигналом, в результате чего все разряды кода адреса ПЗУ меняется одновременно — по поло- жительному фронту тактового сигнала. Регистр должен обяза- тельно срабатывать по фронту, использование регистра-защелки не допускается, так как он может вызвать лавинообразный пе- реходный процесс. Возможности такой простой схемы оказываются очень большими. Например, микропрограммный автомат может выда- вать последовательности выходных сигналов в ответ на опреде- ленное изменение входных сигналов. Он может также временно остановить выдачу выходных сигналов до прихода входных сигналов. Он может анализировать длительность входного сиг- нала и в зависимости от нее выдавать те или иные выходные сигналы. Он может также и многое другое. Сформулируем несколько элементарных функций, из кото- рых могут складываться алгоритмы работы микропрограммного автомата (рис. 6.16). 1. Последовательный перебор адресов ПЗУ (например, для вы- дачи последовательности выходных сигналов).
248 Глава 6 2. Периодическое повторение последовательности адресов ПЗУ (например, для повторения последовательности выходных сигналов). 3. Остановка в каком-то адресе ПЗУ (например, для ожидания изменения входного сигнала). 4. Временное отключение реакции на входные сигналы (напри- мер, для того, чтобы закончить отработку реакции на преды- дущее изменение входных сигналов). Эта функция на рисун- ке не показана. Адреса ПЗУ Адреса ПЗУ а Адреса ПЗУ Рис. 6.16. Элементарные функции микропрограммного автомата: последова- тельный перебор (й), циклическое повторение (б) и остановка (в). Рис. 6.17. Пример практической схемы микропрограммного автомата на ПЗУ. В качестве примера рассмотрим выполнение некоторых элементарных функций микропрограммным автоматом, пока- занным на рис. 6.17. ПЗУ имеет организацию 64 X 8 (это могут быть, например, две микросхемы РЕЗ или одна микросхема РТ18), количество разрядов регистра равно десяти (например, это может быть две микросхемы ИР27). Схема имеет два входных сигнала и четыре
Применение микросхем памяти 249 выходных сигнала. Такая организация микропрограммного ав- томата хороша тем, что его микропрограмма (то есть карта прошивки ПЗУ) очень наглядна, легко составляется и читается. Выходные разряды данных ПЗУ делятся на две группы по 4 сигнала: младшие идут на образование следующего адреса ПЗУ, старшие образуют четыре выходных сигнала. Входные сигналы поступают (через регистр) на два старших разряда адреса ПЗУ. Если мы изобразим карту прошивки ПЗУ в привычном для нас виде таблицы из четырех строк и 16 столбцов (табл. 6.7), то в этой таблице будут наглядно видны как состояние каждого из внут- ренних сигналов, так и реакция схемы на любой входной сигнал, а также состояния всех выходных сигналов в каждом такте. Таблица 6.7. Карта прошивки ПЗУ 64 х 8 для микропрограммного автомата Адрес 0 1 2 3 4 5 6 7 8 9 А В С D Е F 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF Прежде всего, легко заметить, что выбор той или иной стро- ки таблицы производится старшими разрядами кода адреса ПЗУ, то есть входными сигналами микропрограммного автома- та. Таким образом, любое изменение входных сигналов приво- дит к переходу в карте прошивки на другую строку. Например, строка 00 будет соответствовать нулевым входным сигналам микропрограммного автомата, а строка 30 — единичным вход- ным сигналам. Теперь посмотрим на структуру 8-разрядного кода данных ПЗУ. Младшие четыре разряда этого кода (правый, младший знак 16-ричного кода в таблице) соответствуют четырем млад- шим разрядам кода адреса ПЗУ. Старшие четыре разряда кода данных ПЗУ (левый, старший знак 16-ричного кода в таблице) соответствуют четырем выходным сигналам микропрограммно- го автомата. То есть непосредственно по 16-ричному коду дан- ных из таблицы можно сказать, во-первых, каким будет сле- дующий адрес ПЗУ, и во-вторых, какими будут выходные сиг- налы автомата в следующем такте.
250 Г лава 6 Рассмотрим пример микропрограммы (табл. 6.8), реализую- щей некоторые элементарные функции. Таблица 6.8. Пример микропрограммы для схемы на рис. 6.17 Адрес 0 1 2 3 4 5 6 7 8 9 А В с D Е F 00 11 22 33 44 55 66 77 88 99 АА ВВ сс DD ЕЕ FF 00 10 11 22 33 44 55 66 77 88 99 55 вв сс DD ЕЕ FF 00 20 10 21 32 43 54 65 76 87 98 А9 ВА св DC ED FE 0F 30 10 20 30 40 50 60 70 80 90 АО ВО со DO Е0 F0 00 Верхняя (нулевая) строка таблицы демонстрирует последо- вательный перебор адресов памяти при нулевых входных сиг- налах. Пусть, например, автомат находится в адресе 00. В ячей- ке с адресом 00 указан следующий адрес 1 (младший знак 16- ричного кода 11), то есть в следующем такте автомат перейдет в адрес 01 (считаем, что входные сигналы остаются нулевыми). Из адреса 01 автомат перейдет в адрес 02, так как в ячейке с ад- ресом 01 указан следующий адрес 2. Точно так же из адреса 02 автомат перейдет в адрес 03 и так далее до адреса 0F, в котором указан следующий адрес 0, то есть в следующем такте автомат снова вернется в адрес 00. Затем цикл последовательного про- хождения адресов первой строки повторится (если, конечно, входные сигналы останутся нулевыми). Четыре выходных сиг- нала автомата в данном случае повторяют код следующего ад- реса, то есть подобно 4-разрядному двоичному счетчику выдают постепенно нарастающий код. Вторая сверху (первая) строка таблицы демонстрирует цик- лическое повторение группы тактов. Если, например, работа на- чинается с адреса 10, то микропрограммный автомат последова- тельно будет перебирать адреса 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, а затем вернется в адрес 15 и будет постоянно повторять группу адресов 15, 16, 17, 18, 19. В данном случае мы считаем, что входной сигнал Вх.1 постоянно равен единице, а входной сигнал Вх.2 постоянно равен нулю, что и соответствует второй сверху строке таблицы. Посмотрим теперь, что будет делать автомат, если входной сигнал Вх.2 постоянно равен нулю, а входной сигнал Вх. 1 меня- ет свое состояние с нуля на единицу и обратно. Такое переклю-
Применение микросхем памяти 251 чение входных сигналов приводит к переходу между нулевой и первой строками таблицы с микропрограммой. Допустим, авто- мат начинает работу с адреса 00 (сигнал Вх. 1 равен нулю). Идет последовательный перебор адресов нулевой строки. Даже если в течение первых девяти тактов сигнал Вх.1 будет меняться, на выходных сигналах автомата это никак не отразится, так как ко- ды первых девяти адресов в нулевой и первой строках полно- стью совпадают. Поэтому можно сказать, что в этих первых де- вяти тактах мы отключили реакцию нашего автомата на вход- ной сигнал Вх. 1 за счет дублирования кодов. Допустим теперь, что изначально нулевой входной сигнал Вх.1 стал равен единице в адресе 0А и далее не меняется. Это приведет к тому, что вместо адреса 0В автомат перейдет в адрес 1В. Затем он пройдет адреса 1C...1F, перейдет в адрес 10, дойдет до адреса 19 и начнет повторять цикл 15...19. Если же, напри- мер, в адресе 18 сигнал Вх.1 снова станет равен нулю, то вместо адреса 19 автомат попадет в адрес 09 и далее будет выполнять микропрограмму нулевой строки. Третья сверху (вторая) строка таблицы, которая соответст- вует входным сигналам Вх.1 = 0, Вх.2 = 1, показывает пример остановки автомата в каждом адресе и ожидание прихода вход- ного сигнала. Например, автомат находится в адресе 23. Сле- дующим адресом в коде данной ячейки указан 3. Значит, если входные сигналы остаются неизменными, то автомат перейдет опять же в адрес 23 и будет оставаться в нем постоянно. Но если входной сигнал Вх.2 станет равным нулю, автомат перейдет в адрес 03 и начнет выполнять микропрограмму нулевой строки. То есть переключение входного сигнала Вх.2 из нуля в единицу при нулевом уровне Вх.1 останавливает выполнение микропро- граммы нулевой строки до обратного перехода входного сигна- ла Вх.2 в нуль. Наконец нижняя (третья) строка таблицы демонстрирует пе- реход из любого адреса строки в нулевой адрес этой же строки. Пусть, например, выполняется микропрограмма нулевой строки (Вх. 1 и Вх.2 — нулевые) и в адресе 06 оба входных сигнала пе- реходят в единицу. Автомат попадает в адрес 37, а из него — в адрес 30, где и остается постоянно до изменения входных сиг- налов. Если затем оба входных сигнала снова станут нулевыми, то автомат перейдет в адрес 00 и начнет снова выполнять мик- ропрограмму нулевой строки таблицы.
252 Глава 6 Иногда бывает необходимо перевести автомат в какой-то определенный адрес. Ведь при включении питания в регистре может оказаться произвольный код. Для такой инициализации автомата можно, например, использовать регистр, имеющий вход сброса -R, на который подается внешний сигнал, и тогда по этому сигналу автомат попадет в нулевой адрес. Но можно пой- ти и другим путем: составить микропрограмму таким образом, что автомат при включении питания сам перейдет за несколько тактов в нужный адрес независимо от того, в какой адрес он по- пал при включении питания. Рассмотрим теперь пример проектирования простейшего микропрограммного автомата. Пусть нам необходимо формировать с помощью микропро- граммного автомата последовательность из трех выходных сиг- налов в ответ на положительный фронт одного входного сигна- ла (рис. 6.18). Вход_ Выход 1 Выход 2 Выход 3 Рис. 6.18. Диаграмма работы проектируемого микропрограммного автомата. Второй выходной сигнал «вложен» в первый, а третий вы- ходной сигнал «вложен» во второй. Причем до тех пор, пока данная последовательность не закончится, входной сигнал мо- жет произвольно менять свое состояние, на работе схемы это никак не должно сказываться. А после окончания данной после- довательности микропрограммный автомат снова должен ждать положительного фронта входного сигнала и начинать по нему выработку новой последовательности. Все временные сдвиги в выходной последовательности (t) примем для простоты одинаковыми и равными 1 мкс. Это зна- чительно облегчает выбор тактовой частоты микропрограммно- го автомата, она должна быть равной 1 МГц (период 1 мкс). В этом случае полная длина генерируемой последовательности составит всего 6 тактов (один такт соответствует переходу всех выходных сигналов в единицу).
Применение микросхем памяти 253 Для формирования 6-тактовой последовательности необхо- димо не менее 3 адресных разрядов ПЗУ (так как 22 = 4, а 23 = 8). Еще один разряд адреса ПЗУ потребуется для входного сигнала схемы. Итого необходимо 4 адресных разряда ПЗУ. Для формирования трех выходных сигналов требуется три разряда данных ПЗУ. Еще три разряда данных ПЗУ нужно для задания следующего адреса при отработке выходной последова- тельности. Итого необходимо шесть разрядов данных ПЗУ. Посчитаем требуемую разрядность выходного регистра. ПЗУ выдает шесть разрядов данных. Имеется один входной сигнал. Итого регистр должен фиксировать 7 сигналов, значит, он должен быть 7-разрядным. Выход 3 Выход 2 Выход 1 Рис. 6.19. Спроектированный микропрограммный автомат. Итак, все расчеты закончены. Полученная схема микропро- граммного автомата приведена на рис. 6.19. Она включает в се- бя тактовый генератор с частотой 1 МГц, микросхему ПЗУ типа РЕЗ, у которой не используется один разряд адреса и два разря- да данных, а также 8-разрядный регистр ИР27, у которого не используется один разряд. Для простоты на рисунке не показа- ны резисторы на выходах данных типа ОК микросхемы ПЗУ. Теперь необходимо составить микропрограмму для спроек- тированной схемы. Она должна включать в себя ожидание по- ложительного фронта входного сигнала, отработку последова- тельности выходных сигналов с временным отключением вход- ного сигнала, ожидание нулевого уровня входного сигнала и переход на новое ожидание положительного фронта входного сигнала. Полученная микропрограмма с необходимыми ком- ментариями представлена в табл. 6.9.
254 Глава 6 Таблица 6.9. Микропрограмма для спроектированного автомата Адрес ПЗУ Данные ПЗУ Комментарий Код Вход Данные Вых.1 Вых.2 Вых.З Сл. адрес Код 0 0 0 0 0 1 1 1 0 0 0 38 Ожидание полож. фронта Вх. 8 1 0 0 0 0 1 1 0 0 1 19 Пришел положительный фронт входного сигнала. Отработка последователь- ности. Входной сигнал равен единице 9 1 0 0 1 0 0 1 0 1 0 ОА А 1 0 1 0 0 0 0 0 1 1 03 В 1 0 1 1 0 0 1 1 0 0 ОС С 1 1 0 0 0 1 1 1 0 1 1D D 1 1 0 1 1 1 1 1 0 1 3D Ожидание Вх.= 0 1 0 0 0 1 0 0 1 0 1 0 ОА Вх. стал равен нулю до окон- чания последовательности 2 0 0 1 0 0 0 0 0 1 1 03 3 0 0 1 1 0 0 1 1 0 0 ОС 4 0 1 0 0 0 1 1 0 0 0 18 Переход на ожидание фронта 5 0 1 0 1 1 I 1 0 0 0 38 Переход на ожидание фронта 6 0 1 1 0 1 1 1 0 0 0 38 Не используемые ячейки 7 0 1 1 1 1 1 1 0 0 0 38 Е 1 1 1 0 1 1 1 0 0 0 38 F 1 1 1 1 1 1 1 0 0 0 38 Отключение реакции на входной сигнал достигается в мик- ропрограмме за счет дублирования участка отработки выходной последовательности при входном сигнале, равном нулю, и при входном сигнале, равном единице. Если в конце выходной по- следовательности входной сигнал равен единице, то схема ожи- дает сначала перехода входного сигнала в нуль (отрицательный фронт), а затем уже ждет положительного фронта входного сиг- нала. Если в конце последовательности входной сигнал равен нулю, то схема сразу же переходит на ожидание положительно- го фронта входного сигнала. Все неиспользуемые микропрограммным автоматом ячей- ки заполнены командами перехода в начальное состояние схе- мы с пассивными (единичными) выходными сигналами. Такое решение обеспечивает правильное начало работы микропро- граммного автомата при любом начальном адресе (при любом начальном коде в регистре). Начальный сброс автомата не ис- пользуется.
Применение микросхем памяти 255 Последний микропрограммный автомат, который мы рас- смотрим в данном разделе, предназначен для дешифрации (де- кодирования) последовательного кода Манчестер-П, приме- няющегося для последовательной передачи данных на большие расстояния, в частности в локальных сетях. Этот код уже упо- минался в главе 4 (см. рис. 4.16 и 4.17). Там был рассмотрен кодировщик кода Манчестер-П. Дешифрация (декодирование) этого кода гораздо сложнее кодирования (рис. 6.20). Она требует выделения «правиль- ных», информационных фронтов в середине битовых интер- валов (помечены на рисунке кружками) и отсечение «непра- вильных» фронтов между битовыми интервалами (помечены на рисунке крестиками). Для этого надо после первого (ин- формационного) фронта в течение временного интервала 0,75Т не реагировать на приходящие фронты входного сигнала, а за- тем снова обрабатывать любой приходящий фронт, снова вы- держивать интервал 0,75Т и т. д. При приходе «правильных», информационных фронтов (в середине битовых интервалов) необходимо формировать выходные синхросигналы, по кото- рым фиксируется (в регистре) информация из сигнала в коде Манчестер-П. Мы видим, что алгоритм декодирования довольно сложен. Его можно, конечно, выполнить с помощью одновибраторов и триггеров. Но можно воспользоваться и микропрограммным ав- томатом, который в отличие от одновибратора не требует на- стройки, не чувствителен к помехам и тактируется сигналом кварцевого генератора. Схема такого микропрограммного автомата (рис. 6.21) очень проста, она включает в себя ПЗУ типа РЕЗ, регистр ИР27 и
256 Глава 6 тактовый генератор с частотой, в 8 раз превышающей частоту прихода битов в коде Манчестер-П. Например, при длительно- сти битового интервала 1 мкс (скорость передачи информации 1 Мбит/с) частота генератора должна быть равной 8 МГц. Схема практически не отличается от схемы, рассмотренной в предыдущем примере, хотя выполняемая ей функция гораздо сложнее. Рис. 6.21. Микропрограммный автомат для декодирования кода Манчестер-П. Помимо синхросигнала (его обычно обозначают RxC или С) микропрограммный автомат выдает также сигнал огибающей информационного пакета (Р), то есть сигнал, активный при на- личии передачи информации в коде Манчестер-П и пассивный при отсутствии передачи информации (см. рис. 6.20). Сигнал С (RxC) стробирует запись сигнала данных RxD, представляюще- го собой просто входной сигнал в коде Манчестер-П, пропу- щенный через регистр. Мы не будем подробно рассматривать составление микро- программы для декодирования кода Манчестер-П, так как это заняло бы слишком много места. Достаточно только вниматель- но изучить табл. 6.10, содержащую микропрограмму с коммен- тариями, чтобы понять, что в ней присутствуют и отключение реакции на входной сигнал, и выдержка временных интервалов (задержка), и переходы в заданные адреса, и остановки для ожидания положительного и отрицательного фронтов входного сигнала.
Применение микросхем памяти 257 Таблица 6.10. Микропрограмма декодирования кода Манчестер-П (сигнал RxC обозначен в таблице С). Адрес ППЗУ Данные ППЗУ Комментарий Вх Адрес С р След, адрес 0 0 0 0 0 0 1 0 0 0 1 Задержка и ожидание положитель- ного фронта входного сигнала 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0 1 Снятие Р и ожидание входного сигнала 1 0 0 0 0 1 1 0 1 0 1 Выставление RxC и переход на об- работку положительного фронта входного сигнала 1 0 0 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 1 0 1 1 0 Снятие RxC и задержка с отключе- нием входа 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 1 0 0 0 0 Переход на ожидание положительного фронта 1 0 1 0 1 1 1 0 1 1 0 Снятие RxC и задержка с отключе- нием входа 1 0 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 1 0 Переход на ожидание отрицательного фронта 1 1 0 1 0 0 1 1 0 1 1 Задержка и ожидание отрицатель- ного фронта входного сигнала 1 1 0 1 1 0 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 0 Снятие Р и ожидание входного сигнала 0 1 0 1 0 1 1 0 1 0 1 Выставление RxC и переход на об- работку отрицательного фронта входного сигнала 0 1 0 1 1 1 1 0 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 0 1 0 0 Переход на ожидание положительного фронта 9 - 4589
258 Глава 6 6.2. Оперативная память Основное отличие оперативной памяти (RAM) от постоянной (ROM) состоит в возможности оперативного изменения содер- жимого всех ячеек памяти с помощью дополнительного управ- ляющего сигнала записи WR. Каждая ячейка оперативной (статической) памяти представляет собой, по сути, регистр из триггерных ячеек, в который может быть записана информация и из которого можно информацию читать. Выбор того или ино- го регистра (той или иной ячейки памяти) производится с по- мощью кода адреса памяти. Поэтому при выключении питания вся информация из оперативной памяти пропадает (стирается), а при включении питания информация в оперативной памяти мо- жет быть произвольной. Отметим, что существует также еще одна разновидность оперативной памяти, так называемая динамическая (в отличие от статической), в которой информация хранится не в регистрах (не в триггерных ячейках), а в виде заряда на конденсаторах. Эта память отличается более низкой стоимостью, меньшим бы- стродействием и необходимостью регулярной регенерации (Re- fresh — освежение) информации в ней (так как конденсаторы со временем разряжаются). Область применения динамической памяти гораздо уже, чем статической, в основном она применя- ется в качестве системной оперативной памяти компьютеров, где соображения стоимости выходят на первый план. Поэтому здесь мы о ней говорить не будем. Хотя многие особенности использования статической памяти относятся и к динамической памяти. Во всех рассмотренных в предыдущем разделе схемах посто- янная память в принципе может быть заменена оперативной, только карту прошивки в данном случае придется записывать в память каждый раз заново после включения питания. Точно так же многое из сказанного в данном разделе про оперативную па- мять справедливо и для постоянной памяти, но только информа- цию в постоянной памяти менять невозможно. Однако существу- ют также и специфические области применения оперативной па- мяти, которым и будет уделено здесь особое внимание. Как уже отмечалось, оперативная память бывает двух ос- новных видов: с раздельными шинами входных и выходных данных (в основном, это одноразрядная память) и с двунаправ-
Применение микросхем памяти 259 ленной (совмещенной) шиной входных и выходных данных (это многоразрядная память). Некоторые простейшие примеры мик- росхем памяти обоих этих видов приведены на рис. 6.22. Выхо- ды данных микросхем памяти имеют тип ОК (довольно редко) или ЗС. Управляющие сигналы — это сигнал выбора микросхе- мы CS (иногда их несколько), сигнал записи WR (обычно отри- цательный) и иногда сигнал разрешения выхода ОЕ. Рис. 6.22. Примеры микросхем статических ОЗУ. Микросхема оперативной памяти К155РУ7 (аналог — F9342APC) имеет организацию IK X 1 и раздельные входной и выходной сигналы данных. Выход микросхемы — типа ЗС. Управление работой микросхемы производится двумя управ- ляющими сигналами -CS и -WR. Режимы работы микросхемы приведены в табл. 6.11. Таблица 6.11. Режимы работы оперативной памяти К155РУ7 Входы и выходы -CS -WR А0...А9 DI DO Режим работы 1 X X X ЗС Хранение 0 0 Адрес 0 ЗС Запись 0 0 0 Адрес 1 ЗС Запись 1 0 1 Адрес X Данные Чтение 9*
260 Глава 6 Микросхема КМ132РУ10 отличается от К155РУ7 в основ- ном большим объемом (организация 64К X 1) и несколько меньшим быстродействием. Назначение управляющих сигналов и таблица режимов работы у этих микросхем совпадают. Таблица 6.12. Режимы работы оперативной памяти КР541РУ2 Входы и выходы Режим работы -CS -WR А0...А9 DIO0...DIO3 1 X X ЗС Хранение 0 0 Адрес 0 Запись 0 0 0 Адрес 1 Запись 1 0 1 Адрес Читаемые данные Чтение Микросхема КР541РУ2 (аналог — IM7147L-3) относится к другой разновидности микросхем памяти. У нее четыре двуна- правленных вывода данных типа ЗС. Управляющие сигналы те же самые: -CS и -WR. Таблица режимов работы (табл. 6.12) также похожа на таблицу для одноразрядных микросхем. Глав- ное отличие состоит в том, что в режиме записи на вхо- дах/выходах данных присутствует записываемая информация. Микросхема НМ62256 фирмы Hitachi отличается от КР541РУ2 прежде всего организацией (32К X 8) и управляющи- ми сигналами (добавлен сигнал разрешения выхода -ОЕ). Когда этот сигнал пассивен (равен единице), входы/выходы данных микросхемы находятся в состоянии ЗС независимо от режима работы. Введение дополнительного сигнала позволяет более гибко управлять работой микросхемы. К тому же обычно в по- добных микросхемах при пассивном сигнале -CS (равном еди- нице) значительно уменьшается потребляемая мощность. В настоящее время имеется огромный выбор микросхем памяти с разным объемом (от нескольких байт до нескольких мегабайт), с разным количеством разрядов (обычно 1, 4, 8, 16 разрядов), с разными методами управления, с разным потреб- лением и быстродействием. В каждом конкретном случае надо подбирать оптимальную память, в наибольшей степени удов- летворяющую требованиям решаемой задачи. Таблицы режимов работы (таблицы истинности) микросхем памяти не дают достаточно информации для их практического
Применение микросхем памяти 261 использования. Для микросхем памяти очень важны временные параметры (задержки сигналов относительно друг друга) и порядок выставления и снятия сигналов адреса, данных и управления. Всю эту информацию дают временные диаграм- мы циклов записи в память и чтения (считывания) из памяти, приводимые в справочниках. Самые главные временные па- раметры оперативной памяти следующие: • время выборки адреса (задержка между изменением адреса и выдачей данных); • время выборки микросхемы (задержка выдачи данных по вы- ставлению сигнала -CS); • минимальная длительность сигнала записи -WR; • минимальная длительность сигнала -CS. Всего же количество временных параметров может дости- гать двух-трех десятков, но мы не будем подробно останавли- ваться на этом, так как вся подобная информация имеется в многочисленных справочниках. Характерные величины всех временных параметров памяти составляет от единиц и даже до- лей наносекунд до десятков наносекунд. Типичные временные диаграммы циклов записи и чтения приведены на рис. 6.23. Конкретные временные диаграммы для каждого типа памяти можно найти в справочниках. -CS ~\Г DI------( Данные-)------- А~~Х f~ -WR/ -cs \ Г DO ( Данные )---------- б Рис. 6.23. Типичные временные диаграммы записи в память (а) и чтения из памяти (б). Для записи информации в память надо выставить код адреса на адресных входах, выставить код записываемых в этот адрес данных на входах данных, подать сигнал записи -WR и подать сигнал выбора микросхемы -CS. Порядок выставления сигналов может быть различным, он может быть существенным или не-
262 Глава 6 существенным (например, можно выставлять или снимать -CS раньше или позже выставления или снятия -WR). Собственно запись обычно производится сигналом -WR или -CS, причем данные должны удерживаться в течение всего сигнала -WR (или -CS) и заданное время после его окончания. Сигнал -CS у некоторых микросхем памяти допускается поддерживать активным (нулевым) для всех записываемых ад- ресов и при этом подавать импульсы -WR для каждого адреса. Точно так же у некоторых микросхем допускается поддержи- вать активным (нулевым) сигнал записи -WR, но при этом пода- вать импульсы -CS. В случае микросхем памяти с двунаправленной шиной дан- ных необходимо использовать источник записываемых данных с выходом ЗС или ОК, чтобы избежать конфликта данных, запи- сываемых в память с данными, выдаваемыми из памяти в режи- ме чтения. Для чтения информации из памяти надо выставить код адре- са читаемой ячейки и подать сигналы -CS и -ОЕ (если он имеет- ся). Сигнал -WR в процессе чтения должен оставаться пассив- ным (равным единице). В некоторых микросхемах памяти (на- зываемых нетактируемыми, например К155РУ7, КР541РУ2, НМ62256) можно держать активным (нулевым) сигнал -CS для всех читаемых адресов. В других микросхемах (называемых тактируемыми, например, КМ132РУ10, К537РУ8) необходимо подавать свой импульс -CS для каждого читаемого адреса. По- нятно, что нетактируемые микросхемы гораздо удобнее в при- менении, чем тактируемые. Микросхемы оперативной памяти довольно часто объеди- няются для увеличения разрядности данных или разрядности адреса. На рис. 6.24 показано объединение четырех микросхем К155РУ7 для получения памяти с организацией IK х 4. Точно так же могут быть объединены и микросхемы с двунаправленной шиной данных. Например, из четырех микросхем памяти с орга- низацией IK х 4 можно получить память с организацией IK х 16. Для увеличения количества адресных разрядов используют- ся те же методы, что и в случае ПЗУ (см. рис. 6.4). Если объеди- няются всего две микросхемы памяти, то можно обойтись без применения дешифраторов, выбирающих одну из объединяе- мых микросхем.
Применение микросхем памяти 263 Входные данные Рис. 6.24. Объединение микросхем памяти для увеличения разрядности шины данных. Рис. 6.25. Объединение микросхем памяти для увеличения разрядности шины адреса. На рис. 6.25 показан вариант схемы объединения двух мик- росхем НМ62256 для получения памяти с организацией 64К х 8. Дополнительный старший адресный разряд управляет прохож- дением сигнала -CS на одну из микросхем (при нулевом уровне на дополнительном адресном разряде сигнал -CS проходит на левую по рисунку микросхему, при единичном уровне — на правую микросхему).
264 Глава 6 Интересной особенностью микросхем оперативной памяти является возможность произвольного изменения порядка сигна- лов адресных разрядов без всяких последствий для функциони- рования памяти. Например, сигнал, поступающий на разряд АО можно с тем же успехом подавать на А7, сигнал, приходящий на А7 подавать на АЗ, сигнал, приходящий на АЗ подавать на А10 и т. д. Дело в том, что информация в оперативную память запи- сывается по тем же самым адресам, по которым потом и читает- ся. И перестановка адресных разрядов изменяет только номер ячейки, в которую записывается информация и из которой затем читается эта же информация. Такая взаимозаменяемость адрес- ных входов оперативной памяти бывает полезной при проекти- ровании разводки печатных плат. В случае ПЗУ это правило не работает, так как там информация в ПЗУ записана раз и навсе- гда, и читать ее надо по тем же адресам, по которым ее ранее записали. 6.2.1. ОЗУ для временного хранения информации Главное применение микросхем оперативной памяти, непосред- ственно следующее из ее названия, — это временное хранение цифровой информации, всевозможных массивов кодов, таблиц данных, одиночных чисел и т. д. Цель такого хранения инфор- мации состоит в том, чтобы в любой момент иметь возможность быстро ее прочитать для дальнейшей обработки, записи в энер- гонезависимую память (в ПЗУ, на магнитные носители) или для другого использования. Записанная в оперативную память и не- прочитанная затем информация не имеет смысла, так как при выключении питания она безвозвратно пропадет. То есть временное хранение предполагает, что к памяти имеется возможность доступа от какого-то устройства или от какой-то другой части схемы как с операцией записи, так и с операцией чтения (считывания). В зависимости от того, в каком порядке может записываться или читаться информация, сущест- вуют две разновидности ОЗУ: • ОЗУ с параллельным или произвольным доступом (это наибо- лее универсальная схема); • ОЗУ с последовательным доступом (это более специфическая схема).
Применение микросхем памяти 265 Параллельный или произвольный доступ наиболее прост и обычно не требует никаких дополнительных элементов, так как именно на этот режим непосредственно рассчитаны микросхемы памяти. В этом режиме можно записывать информацию в любой адрес ОЗУ и читать информацию из любого адреса ОЗУ в произ- вольном порядке. Однако параллельный доступ требует форми- рования довольно сложных последовательностей всех входных сигналов памяти. То есть для записи информации необходимо сформировать код адреса записываемой ячейки и только потом подать данные, сопровождаемые управляющими сигналами -CS и -WR (см. рис. 6.23). Точно так же необходимо подавать полный код адреса читаемой ячейки при операции чтения. Этот режим доступа чаще всего применяется в компьютерах и контроллерах, где самыми главными факторами являются универсальность и гибкость использования памяти для самых разных целей. Последовательный доступ к памяти предполагает более про- стой порядок общения с памятью. В этом случае не надо задавать код адреса записываемой или читаемой ячейки, так как адрес па- мяти формируется схемой автоматически. Для записи информа- ции надо всего лишь подать код записываемых данных и сопро- водить его стробом записи. Для чтения информации надо подать строб чтения и получить читаемые данные. Автоматическое зада- ние адреса при этом осуществляется внутренними счетчиками, меняющими свое состояние по каждому обращению к памяти. Например, десять последовательных циклов записи запишут ин- формацию в десять последовательно расположенных ячеек памя- ти. Недостаток такого подхода очевиден: мы не имеем возможно- сти записывать или читать ячейки с произвольными адресами в любом порядке. Зато существенно упрощается и ускоряется про- цедура обмена с памятью (запись и чтение). Мы будем в данном разделе рассматривать именно этот тип памяти, этот тип доступа. Можно выделить три основных типа оперативной памяти с последовательным доступом: • память типа «первый вошел — первый вышел» (FIFO, First In — First Out); • память магазинного, стекового типа, работающая по принципу «последний вошел — первый вышел» (LIFO, Last In — First Out); • память для хранения массивов данных.
266 Глава 6 Два первых типа памяти подразумевают возможность че- редования операций записи и чтения в памяти. При этом па- мять FIFO выдает читаемые данные в том же порядке, в ко- тором они были записаны, а память LIFO — выдает читае- мые данные в порядке, обратном тому, в котором они были записаны в память. Память FIFO можно сравнить со сдвиго- вым регистром, на выходе которого данные появляются в том же порядке, в котором они были в него записаны. А па- мять LIFO обычно сравнивают с магазином для подачи па- тронов в автомате или пистолете, в котором первым выдается патрон, вставленный в магазин последним. Память с принци- пом LIFO используется в частности в компьютерах (стек), где она хранит информацию о параметрах программ и под- программ. Для памяти FIFO требуется хранение двух кодов адреса (ад- рес для записи и адрес для чтения), для памяти LIFO достаточно одного кода адреса. Хранение массивов в памяти предполагает, что сначала в память записывается целиком большой массив данных, а потом этот же массив целиком читается из памяти. Эта память также может быть устроена по двум принципам (FIFO и LIFO). В пер- вом случае (FIFO) записанный массив читается в том же поряд- ке, что и был записан, во втором случае (LIFO) — в противопо- ложном порядке (начиная с конца). В обоих этих случаях для общения с памятью требуется хранить только один код адреса памяти. Рассмотрим несколько примеров схем, реализующих пере- численные типы памяти с последовательным доступом. На рис. 6.26 представлена функциональная схема памяти ти- па FIFO на микросхемах с раздельными шинами входных и вы- ходных данных. Адреса памяти задаются двумя счетчиками — счетчиком записи и счетчиком чтения, выходные коды которых мультиплексируются с помощью 2-канального мультиплексора. Запись данных осуществляется по стробу записи -Зап., чтение данных — по стробу чтения -Чт. Своим задним фронтом сигнал -Зап. переключает счетчик записи, а задний фронт сигнала -Чт. переключает счетчик чтения. В результате каждая следующая запись осуществляется в следующий по порядку адрес памяти. Точно так же каждое следующее чтение производится из сле- дующего по порядку адреса памяти.
Применение микросхем памяти 267 Рис. 6.26. Функциональная схема памяти типа FIFO Перед началом работы необходимо сбросить счетчики в нуль сигналом Сброс. При отсутствии операций записи и чтения память находится в состоянии чтения (сигнал -WR равен едини- це), а на адресные входы памяти подается код адреса записи со счетчика записи. При подаче строба записи -Зап. производится запись входных данных по адресу из счетчика записи. Входные (записываемые) данные должны выставляться раньше начала сигнала -Зап., а заканчиваться после сигнала -Зап. При подаче строба чтения -Чт. мультиплексор переключается на передачу адреса чтения, и на выходе памяти появляется информация, считываемая из адреса чтения, задаваемого счетчиком чтения. Действительными выходные (читаемые) данные будут по зад- нему (положительному) фронту сигнала -Чт. Запись начинается с нулевого адреса памяти и производится по последовательно нарастающим адресам. Точно так же чтение начинается с нулевого адреса памяти и производится по после- довательно нарастающим адресам. Операции записи и чтения могут чередоваться. Временные диаграммы циклов записи и чтения показаны на рис. 6.27. В качестве счетчиков можно использовать нужное количест- во микросхем ИЕ7, в качестве мультиплексора — микросхемы КПП, в качестве памяти — К155РУ7 или любые другие нетак- тируемые микросхемы памяти с раздельными шинами входных и выходных данных.
268 Г лава 6 Вх. дан. X Данные X -Зап- \___________£ Адрес Адр.зап=5 ])(Адр.зап.==6 а 'Чт у—>, Вых. дан. ГХ Данные~Х Адрес Адр.зап.Х Адр.чт. ХАдр.зап. б Рис. 6.27. Временные диаграммы циклов записи (д) и чтения (б) для памяти типа FIFO. Условия правильной работы схемы следующие. Длитель- ность сигнала -Зап. не должна быть меньше минимально допус- тимой длительности сигнала -WR памяти. Длительность сигнала -Чт. не должна быть меньше суммы задержки переключения мультиплексора и задержки выборки адреса памяти. Период следования сигнала -Зап. не должен быть меньше суммы за- держки переключения счетчика записи и длительности сигнала -Зап. Период следования сигнала -Чт. не должен быть меньше суммы задержки переключения счетчика чтения и длительности сигнала -Чт. Функциональная схема памяти типа LIFO (рис. 6.28) проще по структуре, чем схема памяти FIFO, так как она содержит только один счетчик и не требует мультиплексирования. В дан- ном случае считаем, что используется память с двунаправлен- ной шиной входных/выходных данных. Рис. 6.28. Функциональная схема памяти типа LIFO.
Применение микросхем памяти 269 Счетчик адреса необходим реверсивный, с раздельными так- товыми входами прямого и обратного счета (например, ИЕ7). После проведения цикла записи по заднему фронту сигнала -Зап. счетчик увеличивает свой выходной код (адрес памяти) на единицу. Перед проведением цикла чтения по переднему фрон- ту сигнала -Чт. счетчик уменьшает свой выходной код на еди- ницу. Такая организация перебора адресов позволяет организо- вать чтение из памяти в порядке, обратном порядку записи в память. Например, пусть исходное состояние счетчика 2. Пусть мы производим три цикла записи: первый — в адрес 2, второй — в адрес 3, третий — в адрес 4. После третьего цикла записи счет- чик будет выдавать код 5. Затем проведем три цикла чтения: первый — из адреса 4 (перед чтением адрес уменьшился на единицу), второй — из адреса 3, третий — из адреса 2. После третьего ццкла чтения счетчик будет выдавать код 2. Мы верну- лись в исходное состояние, прочитав записанную информацию в обратном порядке. Исходное состояние счетчика в данной схеме вообще-то не слишком важно, так как не важен текущий адрес памяти, в ко- торый производится запись и из которого потом производится чтение. Однако в случае, когда используется начальный сброс счетчика в нулевое состояние (по сигналу Сброс), можно до- вольно просто организовать контроль за переполнением памяти LDFO из-за слишком большого количества записанной в нее ин- формации. Для контроля переполнения можно использовать выходной сигнал переноса старшего счетчика (>15). Временные диаграммы циклов записи и чтения приведены на рис. 6.29. -Чт- С—г Вых. дан.---}—( Данные")----- Адрес Адр=б'Х~ Адр~5' Вх. дан. X Данные X -Эап: \^ Адрес Адр=5 ~1Х Адр,^6~ а б Рис. 6.29. Временные диаграммы циклов записи (а) и чтения (б) для памяти типа LIFO.
270 Глава 6 В цикле записи по сигналу -Зап. открывается входной бу- фер АП5 и входные (записываемые) данные поступают на входы/выходы памяти. Одновременно по этому же сигналу -Зап. память переходит в режим записи. В результате в теку- щий адрес памяти записываются входные данные, после чего адрес увеличивается на единицу. Входные данные должны на- чинаться до начала сигнала -Зап. и заканчиваться после его окончания. В цикле чтения по сигналу -Чт. адрес уменьшается на еди- ницу, после чего открывается выходной буфер АП5, выдающий на выход схемы читаемую из памяти информацию. Применение выходного буфера не обязательно, однако он предотвращает прохождение на шину выходных данных информации, записы- ваемой в память в цикле записи. Выходные данные действи- тельны по заднему фронту сигнала -Чт. Условия правильной работы схемы следующие. Длитель- ность сигнала записи должна быть не меньше минимально до- пустимой длительности сигнала -WR памяти. Период следова- ния сигналов -Зап. не должен быть меньше суммы времени сра- батывания счетчиков и длительности сигнала -Зап. Длитель- ность сигнала чтения должна быть не менее суммы времени срабатывания счетчика, времени выборки адреса памяти и за- держки выходного буфера данных. Период следования сигналов -Чт. также не должен быть меньше этой же суммы. Память должна быть нетактируемой, например КР541РУ2. Наконец, третий тип памяти для временного хранения дан- ных — память для хранения массивов данных. Рассмотрим ва- риант схемы такой памяти типа FIFO (рис. 6.30). Рис. 6.30. Функциональная схема памяти для хранения массивов данных.
Применение микросхем памяти 271 Адреса памяти в данном случае задаются одним единствен- ным счетчиком, который работает в режиме только прямого счета. Перед началом работы необходимо сбросить счетчик (сигнал Сброс). Затем производится запись массива данных. При этом после каждого цикла записи по заднему фронту сиг- нала -Зап. выходной код счетчика увеличивается на единицу. После окончания записи всего массива снова надо сбросить счетчик в нуль (сигнал Сброс), а затем производить чтение мас- сива, начиная с нулевого адреса. При этом после каждого цикла чтения по заднему фронту сигнала -Чт. выходной код счетчика по-прежнему увеличивается на единицу. В результате массив данных читается в том же порядке, в каком и был записан. Контроль за длиной записываемого и читаемого массивов воз- лагается на внешнее по отношению к приведенной схеме уст- ройство. Для данной схемы должна использоваться нетактируемая память (например, КР541РУ2) с двунаправленной шиной вход- ных/выходных данных. Считаем, что данные подаются на схему и читаются из схемы также по двунаправленной шине данных. Между памятью и этой шиной включается двунаправленный буфер (типа АП6), который может понадобиться, например, для обеспечения большого выходного тока и малого входного тока со стороны внешней двунаправленной шины данных (это ти- пичная ситуация при построении микропроцессорных и компь- ютерных систем). Буфер этот открывается на передачу данных в память по сигналу -Зап. (сигнал -EZ становится равным нулю, сигнал Т также нулевой) и открывается для чтения данных из памяти по сигналу -Чт. (сигнал -EZ становится равным нулю, сигнал Т равен единице). Условия правильной работы схемы следующие. Длитель- ность сигнала записи -Зап. должна быть не менее минимальной длительности сигнала -WR памяти. Входные (записываемые) данные должны начинаться до начала сигнала -Зап., а заканчи- ваться после окончания сигнала -Зап. Длительность сигнала чтения -Чт. не должна быть меньше суммы задержки буфера и времени выборки адреса памяти. Действительными читаемые данные будут по заднему фронту сигнала -Чт. За период следо- вания сигналов -Зап. и -Чт. схема должна успевать выполнить операцию записи и чтения соответственно, кроме того должен успеть полностью переключиться счетчик адреса памяти.
272 Глава 6 6.2.2. ОЗУ как информационный буфер Второе важнейшее применение микросхем оперативной памяти состоит в организации разнообразных информационных буфе- ров, то есть буферной памяти для промежуточного хранения данных, передаваемых между двумя устройствами или систе- мами. Суть информационного буфера состоит в следующем: пе- редающее устройство записывает передаваемые данные в бу- фер, а принимающее устройство читает принимаемые данные из буфера (рис. 6.31). Рис. 6.31. Включение буферной памяти. Такое промежуточное хранение позволяет лучше согласо- вать работу устройств, участвующих в обмене данными, повы- сить их независимость друг от друга, согласовать скорости пе- редачи и приема данных. Пусть, например, в качестве первого устройства выступает компьютер, а в качестве второго — кабель локальной сети. Компьютеру значительно удобнее выдавать данные со скоро- стью, определяемой его собственным быстродействием, но в локальную сеть надо передавать данные со строго определенной скоростью, задаваемой стандартом на сеть (например, 100 Мбит/с). Кроме того, компьютер по возможности не должен отвлекаться на контроль за текущим состоянием сети, за ее занятостью и освобождением. Поэтому буферная память в данном случае необходима. И точно так же она нужна при приеме данных из локальной сети в компьютер. Главное отличие буферной памяти от памяти для времен- ного хранения информации, рассмотренной в предыдущем разделе, состоит в том, что к информационному буферу всегда имеют доступ не одно внешнее устройство, а два (или даже более). Из-за этого иногда существенно усложняется как схема задания адреса микросхемы памяти, так и схема разделения потоков данных (записываемых в память и читаемых из па- мяти).
Применение микросхем памяти 273 Рис. 6.32. Двунаправленный информационный буфер. Информационные буферы бывают однонаправленными (входными или выходными) и двунаправленными (то есть вход- ными и выходными одновременно — рис. 6.32). Например, бу- ферная память сетевого адаптера двунаправленная, так как она буферирует как информацию, передаваемую в сеть из компью- тера, так и информацию, принимаемую из сети в компьютер. Двунаправленные буферы всегда сложнее проектировать из-за большего количества потоков данных. Информационные буферы могут обеспечивать периодиче- ский обмен между устройствами или непрерывный обмен меж- ду ними. Примером буфера с непрерывным режимом обмена может служить контроллер видеомонитора, информация из ко- торого постоянно выдается на видеомонитор, но может изме- няться по инициативе компьютера. Информационные буферы с периодическим режимом обме- на могут быть организованы по типу FIFO или по типу LIFO. В случае FIFO массив данных читается из памяти одним уст- ройством в том же порядке, в каком он был записан в память дру- гим устройством. Выпускаются даже специальные микросхемы быстродействующей буферной памяти типа FIFO, которые не имеют адресной шины и представляют собой, по сути, многораз- рядный сдвиговый регистр. В отличие от обычной микросхемы сдвигового регистра, где читать вдвигаемую информацию можно только тогда, когда она продвинется по всем ячейкам регистра, ин- формацию с выходов буфера FIFO можно начинать читать с выхо- дов сразу же после того, как она начала записываться в его входы. Но мы будем рассматривать здесь только буферы на обычных, тра- диционных микросхемах памяти как более универсальные. В случае информационного буфера LIFO массив данных чи- тается из памяти в порядке, противоположном тому, в котором он был записан в память. Такое решение иногда позволяет про- ще организовать схему перебора адресов памяти. То есть разнообразие информационных буферов огромно. Мы же рассмотрим здесь всего три примера схем буферной памяти.
274 Глава 6 Первая схема — это простейший однонаправленный буфер с периодическим режимом обмена по принципу FIFO (рис. 6.33). Одно устройство записывает информацию в буфер, на другое устройство выдается информацию из буфера. Память всегда за- писывается полностью, по всем адресам, и читается также пол- ностью. Строб записи -Зап. поступает в режиме записи с часто- той, необходимой для записи, строб чтения -Чт. поступает при чтении с частотой, необходимой для чтения. Шины данных для записи и чтения в память в случае, показанном на рисунке, от- дельные. Рис. 6.33. Однонаправленный буфер типа FIFO. При таких условиях необходим всего лишь один счетчик для перебора адресов памяти, причем счетчик, работающий только в режиме прямого счета и имеющий вход начального сброса в нуль. Перед началом работы устройство, производящее запись в память, сбрасывает счетчик в нуль сигналом -Сброс и устанав- ливает режим записи в память, перебрасывая в нуль управляю- щий триггер (единица на инверсном выходе). Затем начинается процесс записи: записываемые данные поступают с однона- правленного входного буфера (АП5) и записываются в память сигналом -Зап., который своим задним фронтом переключает адреса памяти. Полная процедура записи включает в себя столько циклов записи, сколько имеется ячеек у используемой памяти.
Применение микросхем памяти 275 После окончания процедуры записи устройство, производив- шее запись, разрешает чтение из памяти, устанавливая в единицу триггер положительным фронтом сигнала Пуск (нуль на инверс- ном выходе). При этом разрешается прохождение сигнала -Чт. Адреса памяти переключаются по заднему фронту сигнала -Чт., и по этому же фронту данные, читаемые из памяти, фиксируются в выходном регистре, срабатывающем по фронту (например ИР27). Выходной регистр выполняет две функции: он не пропускает на выход данные, записываемые в память (по сигналу -WE запреща- ется запись в триггер), а также обеспечивает одновременность изменения всех разрядов читаемых данных. Выходная информа- ция из-за этого регистра задерживается на один период сигнала -Чт., что необходимо учитывать. Если взять регистр со входом сброса в нуль, то можно сделать, чтобы при процедуре записи в память на выходе схемы был нулевой код. После окончания чтения всего объема памяти вырабатыва- ется сигнал переноса счетчика -Р, который снова переводит всю схему в режим записи, сбрасывая триггер в нуль (единица на инверсном выходе). После этого записывающее внешнее уст- ройство снова может начинать процедуру записи в память. Условия правильной работы схемы следующие. Длитель- ность сигнала -Зап. не должна быть менее минимальной дли- тельности сигнала -WR памяти. Период следования сигналов -Зап. не должен быть меньше суммы длительности сигнала -Зап. и задержки переключения счетчика. Период следования сигна- лов -Чт. не должен быть меньше суммы времени выборки адре- са памяти и задержки переключения счетчика. Память должна быть нетактируемой (например, КР541РУ2). Более сложную структуру имеет двунаправленный буфер с периодическим режимом обмена типа LIFO. Он позволяет вы- давать и принимать массивы данных произвольной длины (а не фиксированной длины, как в предыдущем случае) с заданной скоростью. Такая задача возникает в частности при проектиро- вании адаптеров локальных сетей. Несмотря на то, что данные читаются из буфера в порядке, обратном тому, в котором они были записаны в буфер, при обмене информацией между двумя буферами это никак не сказывается. Пусть, например, устройство 1 передает информацию в уст- ройство 2, а в качестве промежуточного устройства (устройст- во 3) выступает кабель сети (рис. 6.34).
276 Глава 6 Рис. 6.34. Обмен между двумя устройствами через два буфера типа LIFO. Устройство 1 записывает в буфер 1 массив в прямом поряд- ке, буфер 1 выдает этот массив в устройство 3 (сеть) в обратном порядке, буфер 2 принимает массив из сети в обратном порядке, а устройство 2 читает принятую информацию опять же в пря- мом порядке. То есть читается информация в том же порядке, в каком она и записывалась. То же самое происходит и при пере- даче информации из устройства 2 в устройство 1. Рис. 6.35. Двунаправленный буфер типа LIFO. Схема буфера LIFO (рис. 6.35) включает в себя помимо па- мяти и двунаправленного буфера реверсивный счетчик (типа ИЕ7) и реверсивный регистр сдвига (типа ИР24), служащий для
Применение микросхем памяти 277 преобразования параллельного кода в последовательный при передаче в сеть и последовательного кода в параллельный при приеме из сети. Режимы работы буфера задаются двумя тригге- рами, один из которых разрешает режим передачи в сеть, а дру- гой — режим приема из сети. Перед началом работы оба триггера сброшены в нуль, счет- чик также сброшен в нуль сигналом Сброс. Сначала в память записывается передаваемый в сеть массив данных. Запись про- изводится сигналом -Зап., задний фронт которого увеличивает выходной код счетчика (адрес памяти) на единицу. После окон- чания записи массива сигналом Разр.пер. разрешается передача массива в сеть. В режиме передачи по сигналу строба передачи (ТхС) перебираются адреса памяти в обратном порядке (счетчик работает в режиме обратного счета). Данные, читаемые из памя- ти, записываются в сдвиговый регистр и выдаются в сеть в последовательном коде (TxD). После того как счетчик до- считает до нуля, вырабатывается сигнал переноса <0, который сбрасывает в нуль триггер передачи. То есть в сеть выдается весь массив, записанный в память, независимо от его длины, причем массив выдается в обратном порядке. В режиме приема информации из сети записывается еди- ница в триггер разрешения приема по сигналу Разр.пр. Прини- маемые из сети данные в последовательном коде RxD записы- ваются в сдвиговый регистр, а из него уже в параллельном коде — в память. Запись производится по сигналу строба приема RxC, задним фронтом которого переключается счетчик, работающий в режиме инверсного счета. После окончания приема по сигналу «Конец приема» сбрасывается триггер раз- решения приема. После этого производится чтение информа- ции из памяти по сигналу -Чт. Задним фронтом этого сигнала переключается счетчик, работающий в режиме прямого счета. То есть массив читается в порядке, обратном тому, в котором он пришел из сети. Условия правильной работы данной схемы аналогичны тем, что были сформулированы для предыдущих рассмотренных схем буферов. Сигналы стробов записи и чтения должны иметь такую длительность, чтобы осуществлять соответственно запись в память и чтение из памяти. Период следования этих сигналов должен быть таким, чтобы успевали производиться операции записи и чтения, а также успевал переключаться счетчик.
278 Глава 6 Наконец, последняя схема, которую мы рассмотрим, это бу- фер с непрерывным режимом работы. То есть с одним из уст- ройств такой буфер общается непрерывно, а с другим — только в момент обращения со стороны этого устройства. В данном случае уже необходимо иметь два счетчика адреса памяти, вы- ходные коды которых надо мультиплексировать с помощью мультиплексора. Примем для простоты, что буфер однонаправленный и пере- дающий, то есть одно устройство только записывает в память информацию (в нужные моменты), а на другое устройство по- стоянно выдается читаемая из всех подряд адресов памяти ин- формация (рис. 6.36). Рис. 6.36. Передающий буфер с непрерывным режимом работы. Счетчик чтения непрерывно перебирает адреса памяти с час- тотой такового генератора. Читаемая из памяти информация за- писывается в выходной регистр и выдается на выход. В момент записи по сигналу -Зап. мультиплексор подает на адресные входы памяти выходной код счетчика записи. На память подается сиг- нал -WR, вложенный в сигнал -Зап. (он начинается после начала сигнала -Зап. и заканчивается раньше сигнала -Зап.). Это достига- ется применением цепочки из двух инверторов и элемента 2И-НЕ. Такая последовательность сигналов позволяет записать в память входные данные по адресу записи со счетчика записи и не изме- нять содержимое ячеек памяти с другими адресами.
Применение микросхем памяти 279 Перед началом записи в память счетчик записи сбрасывается в нуль по сигналу Сброс. После каждой операции записи по заднему фронту сигнала -Зап. код на выходе счетчика записи увеличивается на единицу. То есть для записи информации во все ячейки памяти необходимо сбросить счетчик и произвести столько циклов записи, сколько ячеек имеется в памяти. Условия правильной работы схемы следующие. Счетчики должны быть синхронными для быстрого переключения. Па- мять должна быть нетактируемая и с раздельными входами и выходами данных. Емкость конденсатора должна быть такой, чтобы формируемый импульс -WR имел достаточную длитель- ность для записи информации в память. За время действия сиг- нала -Зап. должен успеть сработать мультиплексор и должна за- писаться информация в память. Выходной регистр должен сра- батывать по фронту. Длительность периода тактового сигнала должна быть не меньше суммы задержки выборки адреса памя- ти и задержки переключения счетчика чтения. За время дейст- вия сигнала -Зап. должна успеть записаться информация в па- мять, и должен переключиться счетчик записи. Недостаток приведенной организации буфера состоит в том, что при проведении цикла записи в память на выходе схемы бу- дет не та информация, которая должна читаться из памяти в данный момент. Преодолеть этот недостаток можно двумя пу- тями. Первый путь состоит в осуществлении записи в память только в те моменты, когда выходная информация буфера не важна. Например, если речь идет о буфере контроллера видео- монитора, то запись в память можно производить только во время кадрового гасящего импульса, когда на экране ничего не отображается. Второй путь более сложен. Он состоит в том, чтобы разде- лить во времени запись в память и чтение из памяти. Например, в первой половине такта (то есть периода тактового генератора) производится запись в память (если есть внешний сигнал запи- си), а во второй половине такта всегда производится чтение ин- формации из памяти и запись ее в выходной регистр. Соответ- ственно мультиплексор в первой половине периода подает на адресные входы памяти адрес записи, а во второй половине — адрес чтения. Временную привязку момента записи к ближай- шей первой половине такта можно осуществить с помощью
280 Глава 6 микропрограммного автомата. При таком решении запись в па- мять можно производить в любой момент без искажения читае- мой информации, однако существенно (минимум вдвое) возрас- тают требования к быстродействию всех микросхем. 6.2.3. Улучшение параметров ОЗУ При применении оперативной памяти часто встает задача улуч- шения ее характеристик. О совместном включении нескольких микросхем с целью увеличения разрядности шины адреса и ши- ны данных уже говорилось. Здесь же мы остановимся на задаче повышения быстродействия памяти, то есть увеличения пре- дельной тактовой частоты, с которой можно записывать инфор- мацию в память и читать информацию из памяти. Наверное, самое распространенное и самое простое решение, позволяющее повысить быстродействие памяти, состоит в приме- нении сдвиговых регистров. Сдвиговые регистры всегда имеют существенно большее быстродействие, чем память, так как они имеют гораздо более простую структуру. Частота следования так- товых импульсов этих регистров может достигать десятков и сотен мегагерц, тогда как память с такими параметрами найти трудно. Увеличение быстродействия памяти достигается с помощью сдвиговых регистров очень просто: уменьшение в несколько раз разрядности шины данных памяти позволяет во столько же раз увеличить частоту записи информации в память или чтения ин- формации из памяти. Например, если необходимо в 8 раз увеличить частоту чте- ния информации из памяти, то надо соединить нужное количе- ство микросхем памяти для увеличения разрядности шины дан- ных в 8 раз, а затем применить на выходах данных схему (рис. 6.37) на основе 8-разрядного регистра сдвига. 8-разрядный код, читаемый из памяти, записывается в сдвиговый регистр, а затем сдвигается семь раз с частотой, в 8 раз большей, чем частота опроса памяти. И запись и сдвиг производятся одним тактовым сигналом с генератора. Восемь тактовых импульсов отсчитываются синхронным счетчиком. Для управления рабо- той регистра сдвига применен элемент 3ИЛИ-НЕ, выдающий положительный импульс в течение первой 1/8 периода опроса памяти. Этот же сигнал используется как строб чтения из памя- ти (своим задним фронтом он переключает адреса памяти).
Применение микросхем памяти 281 Рис. 6.37. Увеличение частоты чтения информации. При необходимости увеличения частоты записи в память одного сдвигового регистра недостаточно. Дело в том, что ин- формация в память записывается не по фронту сигнала, а по уровню, то есть записываемая информация должна сохраняться на входе памяти определенное время. Поэтому код с выхода сдвигового регистра необходимо перед записью в память пере- писать в параллельный регистр, где он будет затем храниться в течение всего периода записи в память. Схема, показанная на рис. 6.38, ускоряет частоту записи в память в 4 раза. Рис. 6.38. Увеличение частоты записи информации. В данном случае в качестве регистра сдвига удобно исполь- зовать обычный параллельный регистр, срабатывающий по фронту, у которого выходы трех разрядов соединены со входа-
282 Глава 6 ми следующих разрядов. При этом из одного 8-разрядного ре- гистра мы получаем два 4-разрядных регистра сдвига. Входная 2-разрядная информация записывается в эти два 4-разрядных регистра сдвига, затем переписывается в параллельный ре- гистр и только потом записывается в память. Для отсчета че- тырех импульсов тактового генератора применен 2-разрядный счетчик на двух JK-триггерах, включенных в счетном режиме, что позволяет несколько повысить быстродействие по сравне- нию со стандартными микросхемами счетчиков. Сигнал с вы- хода второго триггера записывает информацию в параллель- ный регистр, а также используется в качестве строба записи в память Зап. Большой недостаток оперативной памяти состоит в том, что информация, записанная в нее, исчезает при выключении источника питания. Поэтому часто используется дополнитель- ный источник питания (гальваническая батарея или аккумуля- тор), который питает при выключении источника питания только микросхемы памяти. В данном случае очень удобны микросхемы ОЗУ, выполненные по КМОП технологии, ток потребления которых в статическом режиме (при неизменных входных и выходных сигналах) очень мал (порядка единиц микроампер). В результате получается так называемая энерго- независимая оперативная память, содержимое которой может легко перезаписываться, но не пропадает при выключении пи- тания, как в ПЗУ. Схема энергонезависимой памяти (рис. 6.39) довольно про- ста, хотя и имеет ряд неочевидных особенностей. Рис. 6.39. Энергонезависимая оперативная память.
Применение микросхем памяти 283 Дело в том, что управляющие сигналы памяти -WR и -CS имеют активный низкий уровень, а при выключении питания все входные сигналы памяти, естественно, станут нулевыми. Это приведет к искажению записанной в память информации. Поэтому необходимо обеспечить, чтобы при выключении пита- ния сигналы на входах -WR и -CS были пассивными, то есть имели уровень логической единицы. Для этого обычно ис- пользуются логические элементы с выходами ОК, нагрузочные резисторы которых присоединяются не к пропадающему на- пряжению питания памяти иип, а к сохраняющемуся напря- жению питания памяти UnaM- Для получения напряжения UnaM используется простая схема на двух диодах (лучше брать диоды Шоттки с меньшим падением напряжения), которая передает на выход UnaM напряжение источника питания иип (если питание включено) или напряжение от гальванической батареи 3—4,5 В (если питание выключено). Для большей гарантии от пропадания информации во время переходных процессов (при постепенном нарастании U„n и при постепенном его уменьшении) необходимо управлять прохож- дением сигналов WR и CS на память с помощью управляющего сигнала Сброс. Этот сигнал равен нулю при напряжения иип ме- нее 4,7—4,8 В и равен единице при нормальном напряжении иип = 5 В (временная диаграмма приведена на рисунке). В ре- зультате такого решения память отключается от остальной схе- мы при недостаточном напряжении питания (сигналы -WR и -CS равны единице) и подключается к остальной схеме при нормальном напряжении питания. В заключение данной главы надо отметить, что в ней созна- тельно не рассмотрена одна из важнейших областей применения микросхем памяти (как постоянной, так и оперативной) — мик- ропроцессорные системы и компьютерные системы. Дело в том, что говорить о применении памяти в этой области невозможно без изложения основ микропроцессорной и компьютерной схе- мотехники, а это отдельная большая тема, требующая специ- альной книги. К тому же изучение методов включения памяти, которые рассмотрены в данной главе, позволяет в дальнейшем довольно легко понять принципы применения памяти в любых возможных областях.
Глава 7 ПРИМЕНЕНИЕ МИКРОСХЕМ ЦАП И АЦП Как уже отмечалось в первой главе, цифро-аналоговые преобра- зователи (ЦАП, DAC — Digital-to-Analog Converter) и аналого- цифровые преобразователи (АЦП, ADC —Analog-to-Digital Converter) главным образом применяются для сопряжения циф- ровых устройств и систем с внешними аналоговыми сигналами, с реальным миром. При этом АЦП преобразует аналоговые сиг- налы во входные цифровые сигналы, поступающие на цифро- вые устройства для дальнейшей обработки или хранения, а ЦАП преобразует выходные цифровые сигналы цифровых устройств в аналоговые сигналы (см. рис. 1.23). ЦАП и АЦП применяются в измерительной технике (цифро- вые осциллографы, вольтметры, генераторы сигналов и т. д.), в бытовой аппаратуре (телевизоры, музыкальные центры, автомо- бильная электроника и т. д.), в компьютерной технике (ввод и вывод звука в компьютерах, видеомониторы, принтеры и т. д.), в медицинской технике, в радиолокационных устройствах, в теле- фонии и во многих других областях. При этом применение ЦАП и АЦП постоянно расширяется по мере перехода от аналоговых устройств к цифровым устройствам. В качестве ЦАП и АЦП обычно применяются специализи- рованные микросхемы, выпускаемые многими отечественными и зарубежными фирмами. Сразу же надо отметить, что для грамотного и профессио- нального использования микросхем ЦАП и АЦП совершенно не достаточно знания цифровой схемотехники. Эти микросхемы относятся к аналого-цифровым, поэтому они требуют также знания аналоговой схемотехники, существенно отличающейся от цифровой. Практическое применение ЦАП и АЦП требует расчета аналоговых цепей, учета многочисленных погрешно- стей преобразования (как статических, так и динамических), знания характеристик и особенностей аналоговых микросхем (в первую очередь операционных усилителей) и многого другого, что далеко выходит за рамки этой книги. Существует обширная
Применение микросхем ЦАП и АЦП 285 литература, специально посвященная именно вопросам примене- ния ЦАП и АЦП. Поэтому в данной главе мы не будем говорить о специфике выбора и принципах включения конкретных микро- схем ЦАП и АЦП, мы будем рассматривать только основные осо- бенности методов соединения ЦАП и АЦП с цифровыми узлами. Нас будет в первую очередь интересовать организация цифровых узлов, предназначенных для соединения с ЦАП и АЦП. 7.1. Применение ЦАП В общем случае микросхему ЦАП можно представить в виде блока (рис. 7.1), имеющего несколько цифровых входов и один аналоговый вход’ а также аналоговый выход. Рис. 7.1. Микросхема ЦАП. На цифровые входы ЦАП подается n-разрядный код N, на аналоговый вход — опорное напряжение Uon (другое распростра- ненное обозначение — Uref). Выходным сигналом является на- пряжение UBbIX (другое обозначение — Uo) или ток 1ВыХ (другое обозначение — 1о). При этом выходной ток или выходное на- пряжение пропорциональны входному коду и опорному напря- жению. Для некоторых микросхем опорное напряжение должно иметь строго заданный уровень, для других допускается менять его значение в широких пределах, в том числе и изменять его по- лярность (положительную на отрицательную и наоборот). ЦАП с большим диапазоном изменения опорного напряжения называет- ся умножающим ЦАП, так как его можно легко использовать для умножения входного кода на любое опорное напряжение. Кроме информационных сигналов микросхемы ЦАП требу- ют также подключения одного или двух источников питания и общего провода. Обычно цифровые входы ЦАП обеспечивают совместимость со стандартными выходами микросхем ТТЛ.
286 Глава? В случае, когда ЦАП имеет токовый выход, его выходной ток обычно преобразуется в выходное напряжение с помощью внешнего операционного усилителя и встроенного в ЦАП рези- стора Roc, один из выводов которого выведен на внешний вы- вод микросхемы (рис. 7.2). Поэтому, если не оговорено иное, мы будем в дальнейшем считать, что выходной сигнал ЦАП — напряжение Uq. Рис. 7.2. Преобразование выходного тока ЦАП в выходное напряжение. Суть преобразования входного цифрового кода в выходной аналоговый сигнал довольно проста. Она состоит в суммирова- нии нескольких токов (по числу разрядов входного кода), каж- дый последующий из которых вдвое больше предыдущего. Для получения этих токов используются или транзисторные источ- ники тока или резистивные матрицы, коммутируемые транзи- сторными ключами. В качестве примера на рис. 7.3 показана схема реализации 4-разрядного (п = 4) цифро-аналогового преобразования на основе резистивной матрицы R-2R и ключей (в реальности используются ключи на основе транзисторов). Правому по- ложению ключа соответствует единица в данном разряде вход- ного кода N (разряды D0...D3). Операционный усилитель может быть как встроенным (в случае ЦАП с выходом по напряже- нию), так и внешним (в случае ЦАП с выходом по току). Первым (самым левым на схеме) ключом коммутируется ток величиной UREf/2R, вторым ключом — ток URef/4R, третьим ключом — ток UREf/8R, четвертым ключом — ток Uref/16R. То есть токи, коммутируемые соседними ключами, различаются вдвое, как и веса разрядов двоичного кода. Токи, коммутируемые всеми ключами, суммируются и преобразуют-
Применение микросхем ЦАП и АЦП 287 ся в выходное напряжение с помощью операционного усили- теля с сопротивлением Roc = R в цепи отрицательной обрат- ной связи. При правом положении каждого ключа (единица в соответ- ствующем разряде входного кода ЦАП) ток, коммутируемый этим ключом, поступает на суммирование. При левом положе- нии ключа (нуль в соответствующем разряде входного кода ЦАП) ток, коммутируемый этим ключом, не поступает на сум- мирование. Суммарный ток 1о от всех ключей создает на выходе опера- ционного усилителя напряжение Uq = IqRoc = IoR. То есть вклад первого ключа (старшего разряда кода) в выходное напряжение составляет UREf/2, второго — Uree/4, третьего — UREf/8, чет- вертого — UREf/16. Таким образом, при входном коде N = 0000 выходное напряжение схемы будет нулевым, а при входном ко- де N = 1111 оно будет равно -15UREf/16. В общем случае выходное напряжение ЦАП при Roc = R бу- дет связано со входным кодом N и опорным напряжением Uref простой формулой: U вых = -N • Uref 2~”, где п — количество разрядов входного кода. Знак минус полу- чается из-за инверсии сигнала операционным усилителем. Эту связь иллюстрирует также табл. 7.1.
288 Глава? Таблица 7.1. Таблица преобразования ЦАП в однополярном режиме Входной код N Выходное напряжение Ubeix 000...000 0 000-001 -2-n Uref 100-000 -2"1 Uref 111-111 - (l-2"n) Uref Некоторые микросхемы ЦАП предусматривают возмож- ность работы в биполярном режиме, при котором выходное на- пряжение изменяется не от нуля до UREf, а от -UREF до +UREf. При этом выходной сигнал ЦАП Ubmx умножается на 2 и сдви- гается на величину Uref. Связь между входным кодом N и вы- ходным напряжением Ивых будет следующей: Пвых = Uref (1 - N • 21 ”). Эту ситуацию иллюстрирует табл. 7.2. Такое биполярное преобразование при возможности смены знака опорного напря- жения называется также четырехквадрантным умножением (то есть и опорное напряжение, и выходное напряжение могут быть в данном случае как положительными, так и отрицательными). Таблица 7.2. Таблица преобразования ЦАП в биполярном режиме Входной код N Выходное напряжение Ubeix 000-000 Uref 011-111 2"” Uref 100-000 0 111-111 - (1-21-”) Uref Микросхемы ЦАП, имеющиеся на рынке, различаются ко- личеством разрядов (от 8 до 24), величиной задержки преобра- зования (от единиц наносекунд до единиц микросекунд), допус-
Применение микросхем ЦАП и АЦП 289 тимой величиной опорного напряжения (обычно — единицы вольт), величинами погрешностей преобразования и другими параметрами. Различаются они также технологией изготовления и особенностями внутренней структуры, что нередко наклады- вает ограничения на их использование. Поэтому выбирать микросхему ЦАП для конкретного применения необходимо с использованием подробной справочной информации, предо- ставляемой фирмами-изготовителями. Мы же будем говорить только об общих принципах включения ЦАП в цифровые схе- мы без учета их частных особенностей. Иногда бывает необходимо уменьшить количество разрядов ЦАП. Для этого надо подать сигналы логического нуля на нуж- ное число младших разрядов ЦАП (но никак не старших разря- дов). На рис. 7.4 показано, как из 10-разрядного ЦАП можно сделать 8-разрядный ЦАП, подав нули на два младших разряда. Увеличение, количества разрядов ЦАП представляет собой го- раздо более сложную задачу, требующую построения сложных аналоговых схем, поэтому оно встречается довольно редко, зна- чительно проще подобрать микросхему с нужным или с боль- шим, чем нужно, количеством разрядов. Основное применение микросхем ЦАП состоит в получении аналогового сигнала из последовательности цифровых кодов (рис. 7.5). Как правило, коды подаются на входы ЦАП через параллельный регистр, что позволяет обеспечить одновремен- ность изменения всех разрядов входного кода ЦАП. При неод- новременном изменении разрядов входного кода на выходе ЦАП появляются большие короткие импульсы напряжения, уровни которых не соответствуют ни одному из кодов. 10 - 4589
290 Глава 7 Рис. 7.5. Преобразование последовательности кодов в выходное напряжение. Однако даже при одновременном изменении всех разрядов входного кода ЦАП уровень напряжения, соответствующий по- данному коду, устанавливается не сразу, а за время установле- ния ЦАП tycT, что связано с неидеальностью внутренних элемен- тов ЦАП. Выходной ток ЦАП, как правило, устанавливается значительно быстрее выходного напряжения, так как он не за- висит от инерционности операционного усилителя. Понятно, что условие правильной работы ЦАП состоит в том, чтобы дли- тельность сохранения входного кода была больше, чем время установления ЦАП tyCT, иначе выходной сигнал не успеет при- нять значение, соответствующее входному коду. Если подавать коды на вход ЦАП редко, то приведенная на рис. 7.5 схема может использоваться, например, в управляемом источнике питания, выходное напряжение которого задается входным кодом. Правда, при этом необходимо еще обеспечить большой выходной ток источника питания, применив внешний усилитель тока. Если же подавать коды на вход ЦАП с высокой частотой, то можно получить генератор (он же синтезатор) аналоговых сиг- налов произвольной формы. В этом случае коды, поступающие на ЦАП, называют кодами выборок (то есть мгновенных значе- ний) генерируемого аналогового сигнала. В простейшем случае в качестве источника входных кодов ЦАП можно использовать обычный двоичный счетчик (рис. 7.6). Выходное напряжение ЦАП будет возрастать при этом на вели- чину 2”“Uref с каждым тактовым импульсом, формируя пилооб- разные выходные сигналы амплитудой Uref. Длительность каж- дой ступеньки равна периоду тактового генератора Т, а период всего выходного сигнала равен 2ПТ. Количество ступенек в пе- риоде выходного сигнала равно 2П. Если в данной схеме исполь-
Применение микросхем ЦАП и АЦП 291 зовать синхронные счетчики с синхронным переносом, то вход- ной регистр ЦАП не нужен, так как все разряды счетчика пере- ключаются одновременно. Если же используются асинхронные счетчики или синхронные счетчики с асинхронным переносом, то входной регистр ЦАП необходим. СТ2 п DAC Генератор , С По Рис. 7.6. Генератор пилообразного аналогового сигнала Если же .надо формировать аналоговые сигналы произволь- ной формы (синусоидальные, колоколообразные, шумовые, тре- угольные, импульсные и т. д.), то в качестве источника кодов, поступающих на ЦАП, необходимо использовать память, рабо- тающую в режиме чтения (рис. 7.7). Рис. 7.7. Генерация сигналов произвольной формы. Если память постоянная, то набор форм генерируемых сиг- налов задается раз и навсегда. Если же память оперативная, то строится однонаправленный информационный буфер с перио- дическим режимом работы, что позволит записывать в память коды для генерации самых разных сигналов. В обоих случаях входной регистр ЦАП необходим, информация в него записыва- ется стробом чтения из памяти. Как и в предыдущем случае, выходной сигнал ЦАП будет состоять из ступенек, высота которых кратна 2_i1Uref. Амплиту- 10*
292 Глава 7 да выходного сигнала не превышает Uref- Если адреса памяти перебираются счетчиком, то период выходного аналогового сигнала равен 2“Т, где Т — период тактового сигнала чтения из памяти -Чт., ат — количество адресных разрядов памяти. Рис. 7.8. Вычисление кодов выборок периодического сигнала. Если надо вычислить коды выборок для генерации какого-то периодического сигнала, то необходимо его период разделить на 2т частей и вычислить соответствующие 2т значений этого сигнала Ц. Затем надо пересчитать значения сигнала в коды по формуле: Ni = 2nUj/A, где А — амплитуда сигнала, и взять бли- жайшее целое значение кода. Нулевое значение сигнала даст при этом нулевой код ООО...000, максимальное значение сигнала (равное амплитуде А) даст максимальный код 111... 111. В ре- зультате подачи этих кодов на ЦАП с периодом Т будет генери- роваться аналоговый сигнал требуемой формы с амплитудой, равной Uref, и с периодом Твых = 2тТ. Пример такого вычисле- ния проиллюстрирован рис. 7.8. Подробнее задача проектирования генератора аналоговых сигналов произвольной формы будет рассмотрена в следующей главе. Преобразование цифровых кодов в аналоговый сигнал — это не единственное применение микросхем ЦАП. Они могут также использоваться для управляемой обработки аналоговых сигналов, например для усиления и ослабления аналоговых сиг- налов в заданное число раз. Для этого лучше всего подходят умножающие ЦАП, которые допускают изменение уровня опорного напряжения в широких пределах, в том числе и с из- менением его знака. Таких микросхем ЦАП выпускается сейчас достаточно много с разным быстродействием и с разным коли- чеством разрядов входного кода.
Применение микросхем ЦАП и АЦП 293 Самая простейшая схема — это цифровой аттенюатор (осла- битель) аналогового сигнала (рис. 7.9), часто применяемый для регулировки амплитуды выходного сигнала генератора на осно- ве ЦАП. Рис. 7.9. Аттенюатор аналогового сигнала на ЦАП. Схема практически ничем не отличается от схемы на рис. 7.5. Но есть два важных отличия: вместо постоянного опорного напряжения подается переменный аналоговый сигнал, а ЦАП должен быть обязательно умножающим. Выходной сиг- нал связан со входным простой формулой: Ubbix = -UBx • N • 2 n, то есть выходной сигнал пропорционален входному (с инверси- ей), а коэффициент пропорциональности определяется входным цифровым кодом N. Коэффициент пропорциональности изменя- ется в данном случае от нуля и почти до единицы с шагом, рав- . Входной регистр ЦАП в данном случае также необходим, так как при неодновременном переключении разрядов входного кода на выходной сигнал ЦАП могут накладываться короткие импульсы значительной амплитуды. Требования к быстродейст- вию ЦАП (к величине его времени установления) в данном включении не слишком высоки, так как амплитуду выходного сигнала обычно требуется менять нечасто. А частота входного аналогового сигнала может быть довольно большой, она никак не связана с временем установления ЦАП. Существует также схема включения ЦАП, которую можно использовать как управляемый усилитель аналогового сигнала с коэффициентом усиления, задаваемым входным кодом N (рис. 7.10).
294 Глава 7 Рис. 7.10. Управляемый усилитель входного сигнала. В этом случае выходной ток ЦАП равен величине Ubx/Roc, а так как в качестве опорного напряжения используется выходное напряжение, то получается, что выходное напряжение связано со входной формулой: UBbIX = -UBX-27N, то есть коэффициент пропорциональности между выходным и входным напряжениями обратно пропорционален коду N. Код N может меняться в этом случае от 1 до (2n- 1), что соответствует коэффициенту усиления от примерно единицы до 2П. Например, при 10-разрядном ЦАП коэффициент усиления схемы может достигать 1024. Как и в предыдущем случае, скорость переключения ЦАП не очень важна, так как коэффициент усиления обычно не тре- буется переключать слишком часто. На схеме для простоты не показан входной регистр ЦАП, который опять же необходим, чтобы обеспечить одновременность переключения всех разря- дов входного кода. Используя последовательное включение схем рис. 7.9 и рис. 7.10, можно обеспечить приведение к стандартному уров- ню входного напряжения, изменяемого в очень широких пре- делах (рис. 7.11). Такая задача часто встречается в аналого- цифровых системах. Коэффициент передачи всей схемы будет равен отношению входных кодов обоих ЦАП N/М и может быть установлен с высокой точностью как в диапазоне от 0 до 1 (аттенюатор), так и в диапазоне от 1 до 2” (усилитель). На схеме не показаны входные регистры обоих ЦАП, но они так- же нужны.
Применение микросхем ЦАП и АЦП 295 Рис. 7.11. Последовательное включение аттенюатора и усилителя. Наконец, последняя схема с применением ЦАП, которую мы рассмотрим, — это схема сдвига аналогового сигнала на вели- чину, задаваемую входным цифровым кодом. Сдвиг представ- ляет собой, по сути, сложение аналогового сигнала с постоян- ным напряжением. Такая задача довольно часто встречается в аналого-цифровых системах. Рис. 7.12. Схема управляемого сдвига аналогового сигнала. Схема сдвига (рис. 7.12) включает в себя преобразователь цифрового кода в выходное напряжение и аналоговый сумматор на операционном усилителе. Величина напряжения сдвига входного сигнала будет равна Uref • 2-п • N. Так как применяют- ся два инвертирующих операционных усилителя, инверсии входного сигнала на выходе в данном случае не будет. Если ну- жен как положительный, так и отрицательный сдвиг, то необхо- димо применять ЦАП с биполярным выходным сигналом. 7.2. Применение АЦП Микросхемы АЦП выполняют функцию, прямо противополож- ную функции ЦАП — преобразуют входной аналоговый сигнал в последовательность цифровых кодов. В общем случае микро-
296 Глава 7 схему АЦП можно представить в виде блока, имеющего один аналоговый вход, один или два входа для подачи опорного (об- разцового) напряжения, а также цифровые выходы для выдачи кода, соответствующего текущему значению аналогового сиг- нала (рис. 7.13). Входное напряжение Опорное напряжение Тактовый сигнал Разрешение работы U, Uref CLK CS D(n-1) RDY Ucc' GND: Цифровой код N ______Готовность_____ (конец преобразования) Рис. 7.13. Микросхема АЦП. Часто микросхема АЦП имеет также входы для подачи так- тового сигнала CLK, сигнала разрешения работы CS и выход для выдачи сигнала RDY, указывающего на готовность выход- ного цифрового кода. На микросхему подается одно или два пи- тающих напряжения. В целом микросхемы АЦП сложнее, чем микросхемы ЦАП, их разнообразие заметно больше, и поэтому сформулировать для них общие принципы применения сложнее. Опорное напряжение АЦП задает диапазон входного напря- жения, в котором производится преобразование. Оно может быть постоянным или же допускать изменение в некоторых пределах. Иногда предусматривается подача на АЦП двух опорных напряжений с разными знаками, тогда АЦП способен работать как с положительными, так и с отрицательными вход- ными напряжениями. Выходной цифровой код N (n-разрядный) однозначно соот- ветствует уровню входного напряжения. Код может принимать 2” значений, то есть АЦП может различать 2” уровней входного напряжения. Количество разрядов выходного кода п представ- ляет собой важнейшую характеристику АЦП. В момент готов- ности выходного кода выдается сигнал окончания преобразова- ния RDY, по которому внешнее устройство может читать код N. Управляется работа АЦП тактовым сигналом CLK, который задает частоту преобразования, то есть частоту выдачи выход-
Применение микросхем ЦАП и АЦП 297 ных кодов. Предельная тактовая частота — второй важнейший параметр АЦП. В некоторых микросхемах имеется встроенный генератор тактовых сигналов, поэтому к их выводам подключа- ется кварцевый генератор или конденсатор, задающий частоту преобразования. Сигнал CS разрешает работу микросхемы. Выпускается множество самых разнообразных микросхем АЦП, различающихся скоростью работы (частота преобразова- ния от сотен килогерц до сотен мегагерц), разрядностью (от 6 до 24), допустимыми диапазонами входного сигнала, величинами погрешностей, уровнями питающих напряжений, методами вы- дачи выходного кода (параллельный или последовательный), другими параметрами. Обычно микросхемы с большим количе- ством разрядов имеют невысокое быстродействие, а наиболее быстродействующие микросхемы имеют небольшое число раз- рядов. Область применения любой микросхемы АЦП во многом определяется использованным в ней принципом преобразова- ния, поэтому необходимо знать особенности этих принципов. Для выбора и использования АЦП необходимо пользоваться подробными справочными данными от фирмы-производителя. Рис. 7.14. Компаратор напряжения. В качестве базового элемента любого АЦП используется компаратор напряжения (рис. 7.14), который сравнивает два входных аналоговых напряжения и в зависимости от результата сравнения выдает выходной цифровой сигнал нуль или едини- цу. Компаратор работает с большим диапазоном входных на- пряжений и имеет высокое быстродействие (задержка порядка единиц наносекунд). Существует два основных принципа построения АЦП: по- следовательный и параллельный. В последовательном АЦП входное напряжение последова- тельно сравнивается одним единственным компаратором с не- сколькими эталонными уровнями напряжения, и в зависимости
298 Глава? от результатов этого сравнения формируется выходной код. Наибольшее распространение получили АЦП на основе так на- зываемого регистра последовательных приближений (рис. 7.15). Рис. 7.15. АЦП последовательного типа. Входное напряжение подается на вход компаратора, на дру- гой вход которого подается ступенчато изменяющееся во вре- мени эталонное напряжение. Выходной сигнал компаратора по- дается на вход регистра последовательных приближений, такти- руемого внешним тактовым сигналом. Выходной код регистра последовательных приближений поступает на ЦАП, которое из опорного напряжения формирует меняющееся эталонное на- пряжение. Регистр последовательных приближений работает так, что в зависимости от результата предыдущего сравнения выбирается следующий уровень эталонного напряжения по следующему алгоритму. • В первом такте входной сигнал сравнивается с половиной опорного напряжения. • Если входной сигнал меньше половины опорного напряжения, то на следующем такте он сравнивается с четвертью опорного напряжения (то есть половина опорного напряжения умень- шается на четверть). Одновременно в регистр последователь- ных приближений записывается старший разряд выходного кода, равный нулю.
Применение микросхем ЦАП и АЦП 299 • Если же входной сигнал больше половины опорного напряже- ния, то на втором такте он сравнивается с 3/4 опорного на- пряжения (то есть половина увеличивается на четверть). Од- новременно в регистр последовательных приближений запи- сывается старший разряд выходного кода, равный единице. • Затем эта последовательность сравнений повторяется нужное число раз с уменьшением на каждом такте вдвое ступени из- менения эталонного напряжения (на третьем такте — 1/8 опорного напряжения, на четвертом — 1/16 и т. д.). В резуль- тате опорное напряжение в каждом такте приближается к входному напряжению. Всего преобразование занимает п так- тов. В последнем такте вычисляется младший разряд Понятно, что этот процесс довольно медленный, требует нескольких тактов, причем в течение каждого такта должны успеть сработать компаратор, регистр последовательных при- ближений и ЦАП с выходом по напряжению. Поэтому последо- вательные АЦП довольно медленные, имеют сравнительно боль- шое время преобразования и малую частоту преобразования. Второй тип АЦП, АЦП параллельного типа, работает по более простому принципу. Все разряды выходного кода вычисляются в них одновременно (параллельно), поэтому они гораздо быстрее, чем последовательные АЦП. Правда, они требуют применения большого количества компараторов (2П - 1), что вызывает чисто технологические трудности при большом количестве разрядов (например, при 12-разрядном АЦП требуется 4095 компараторов). Схема такого АЦП (рис. 7.16) включает в себя резистивный 21) «-< __ одинаковых резисторов, который делит опорное напряжение на (2n- 1) уровней. Входное напряжение сравнивается с помощью компараторов с уровнями, формируемыми делителем напряжения. Выходные сигналы компараторов с помощью шифратора преобразуются в n-разрядный двоичный код. Шифратор выдает на выход номер последнего из сработавших (то есть выдавших сигнал логиче- ской единицы) компараторов. Например, в случае 3-разрядного АЦП (на рисунке) при величине входного напряжения от 0 до 1/8 опорного напряжения выходной код будет ООО, при входном напряжении от 1/8 до 2/8 опорного напряжения сработает пер- вый компаратор, что даст выходной код 001, при входном на- пряжении от 2/8 до 3/8 опорного напряжения сработают компа-
300 Глава 7 раторы 1 и 2, что даст выходной код 010, и т. д. Процесс преоб- разования происходит в параллельном АЦП очень быстро, по- этому частота преобразования может достигать сотен мегагерц. Рис. 7.16. 3-разрядный АЦП параллельного типа. Для повышения быстродействия в параллельном АЦП ино- гда применяется конвейерный принцип: выходной код компара- торов записывается в (2П -1)-разрядный параллельный регистр, показанный на рисунке 7.16. Выходной код шифратора также записывается в n-разрядный параллельный регистр. Оба регист- ра в этом случае тактируются одним и тем же тактовым сигна- лом. Это снижает требования к быстродействию компараторов и шифратора. Правда, выходной код АЦП задерживается из-за та- ких регистров на два периода таковой частоты. Громоздкость структуры параллельного АЦП приводит к тому, что в некоторых АЦП применяется смешанный парал- лельно-последовательный принцип. Это несколько снижает бы- стродействие подобного АЦП по сравнению с обычным парал- лельным АЦП, но зато позволяет получить большое число раз- рядов, не увеличивая количество компараторов до 2n—1. Для того чтобы АЦП любого типа работал с использованием всех своих возможностей, необходимо обеспечить согласование диапазона изменения входного аналогового сигнала с допусти- мым диапазоном (динамическим диапазоном) входного напря- жения АЦП.
Применение микросхем ЦАП и АЦП 301 Рис. 7.17. Соотношение входного сигнала и динамического диапазона АЦП. На рис. 7.17 показано четыре возможных случая соотноше- ния динамического диапазона АЦП (от 0 до Uref или от Urefi до Ureez) и входного сигнала. В случаях а и б входной сигнал меньше динамического диапазона, поэтому АЦП будет работать правильно, но не будет использовать всех своих возможностей. В случае в йходной сигнал слишком большой, поэтому часть его значений не будет преобразована. Только в случае г АЦП дейст- вительно будет работать как n-разрядный и будет преобразовы- вать все значения входного сигнала. Для согласования входного сигнала с динамическим диапазоном АЦП можно применять усилители, аттенюаторы, схемы сдвига. В некоторых случаях согласование может быть достигнуто простым выбором вели- чин опорных напряжений. Иногда бывает необходимо уменьшить количество разрядов АЦП. В этом случае нужное количество младших разрядов вы- ходного кода микросхемы просто не используется. На рис. 7.18 показано использование 10-разрядного АЦП в качестве 8-раз- рядного. Входное напряжение Опорное напряжение Тактовый сигнал Разрешение работы Рис. 7.18. Уменьшение количества разрядов выходного кода АЦП.
302 Глава? Обратная задача — увеличение разрядности АЦП — встре- чается чаще. Существует ряд типичных схемотехнических ре- шений по объединению нескольких микросхем АЦП для увели- чения количества разрядов выходного кода, но большинство этих решений требует сложных расчетов результирующих по- грешностей преобразования и применения аналоговых узлов. Мы не будем их здесь рассматривать. Отметим только, что при возникновении задачи увеличения разрядности надо прежде всего попытаться найти микросхему с нужным количеством разрядов и только потом рассматривать возможности объедине- ния нескольких микросхем АЦП. Рассмотрим несколько типичных схем включения АЦП, ис- пользуемых в аналого-цифровых системах. Рис. 7.19. Фиксатор превышения входным сигналом установленного порога. Первая схема (рис. 7.19) предназначена для фиксации мо- мента превышения входным аналоговым сигналом заданного порогового напряжения. Схема вырабатывает выходной сигнал (положительный фронт) тогда, когда входной аналоговый сиг- нал становится больше установленного уровня, причем уровень этот задается цифровым кодом порога. Код порога сравнивается с выходными кодами АЦП с помощью микросхемы компарато- ра кодов. Выходной сигнал компаратора кодов записывается в триггер по сигналу RDY с АЦП, что позволяет исключить влия- ние коротких импульсов, возникающих на выходе компаратора в момент изменения входных кодов. Применение этого триггера задерживает выходной сигнал на один такт. Может показаться, что применение АЦП в данном случае не оправданно, избыточно. Но надо учитывать, что в аналого- цифровых системах АЦП, преобразующий входной сигнал в по-
Применение микросхем ЦАП и АЦП 303 следовательность кодов, как правило, уже есть, поэтому допол- нительного АЦП не требуется, достаточно только включить компаратор кодов и триггер. АЦП также применяется в схемах вычисления амплитуды входного аналогового сигнала. Для такого вычисления можно использовать уже рассмотренную схему вычислителя экстре- мального значения входного кода (см. рис. 4.26). В качестве ис- точника последовательности входных кодов в данном случае выступает АЦП (рис. 7.20). Рис. 7.20. Вычислитель амплитуды аналогового сигнала. В регистр со входом разрешения записи записывается код с вы- хода АЦП по сигналу RDY в том случае, если текущее значение кода больше значения кода, записанного ранее в регистр. В результате уже после одного периода входного сигнала в регист- ре будет код амплитуды входного сигнала. За период преобразова- ния АЦП должны успеть сработать компаратор кодов и регистр. Если такой вычислитель амплитуды входного сигнала ис- пользуется в составе сложной аналого-цифровой системе, в ко- торой уже присутствует АЦП, непрерывно преобразующий входной сигнал в коды, то дополнительно требуются только цифровые микросхемы: компаратор кодов и регистр. Наиболее часто встречающееся использование АЦП — это преобразование входного сигнала в поток кодов, причем коды эти обычно записываются в буферную память. В данном случае наиболее подходящим является однонаправленный буфер с пе- риодическим режимом работы. То есть сначала в буферную па- мять заносится массив кодов выборок входного сигнала, а затем этот массив читается для дальнейшей обработки. Именно так,
304 Глава? например, строится цифровой осциллограф, предназначенный для наблюдения аналоговых сигналов на экране. Схема включения АЦП в этом случае показана на рис. 7.21. В качестве строба записи в буферную память используется сиг- нал RDY с АЦП. Подробнее организацию буфера мы уже рас- сматривали в предыдущей главе. Рис. 7.21. Включение буферной памяти для запоминания кодов с выходов АЦП. Конечно, в реальных аналого-цифровых устройствах все го- раздо сложнее, в них требуются схемы синхронизации процесса записи со входным сигналом, схемы предварительной обработки аналогового сигнала, но суть остается той же — буферная память, записывающая последовательность кодов с выхода АЦП. Чем больше объем памяти, тем больший фрагмент входного аналого- вого сигнала она может запомнить. Например, если память имеет организацию 64К X 8 и работает с 8-разрядным АЦП, то при час- тоте преобразования АЦП 10 МГц буфер сможет хранить в себе фрагмент аналогового сигнала длительностью 6,5536 мс. Наконец, последняя схема, которую мы рассмотрим (рис. 7.22), позволяет вдвое повысить быстродействие АЦП, точнее, под- нять вдвое частоту записи кодов выборок входного сигнала в буферную память. Идея схемы очень проста: используется два АЦП и два буфера, которые работают по очереди, например, четные выборки входного сигнала обрабатывает один АЦП со своим буфером, а нечетные — другой АЦП со своим буфером. В результате запоминание кодов входного сигнала осуществляется с частотой вдвое больше частоты преобразования каждого из АЦП. Например, если каждый АЦП и каждый буфер работают с частотой 10 МГц, то результирующая частота преобразования составит 20 МГц.
Применение микросхем ЦАП и АЦП 305 Рис. 7.22. Увеличение вдвое частоты преобразования входного сигнала с по- мощью двух АЦП с буферами. Тактовые сигналы АЦП и сигналы RDY на выходах АЦП должны быть сдвинуты один относительно другого на половину периода тактового сигнала. Чтение зарегистрированных кодов из обоих буферов также должно быть организовано по очереди: первый код читается из первого буфера, второй — из второго, третий — опять из первого, четвертый — из второго и т. д. Объ- ем обоих буферов в данном случае складывается. Например, при организации каждого буфера 64К X 8 результирующий бу- фер будет иметь организацию 128К X 8. Пользуясь этим же принципом, можно повысить частоту об- работки входного сигнала с помощью АЦП не только вдвое, но и втрое, в четыре раза и т. д. Необходимо только согласовать во времени работу соответственно трех, четырех и т. д. АЦП, у ка- ждого из которых должна быть своя буферная память. Помимо упомянутых здесь АЦП последовательно и параллель- ного типов существуют еще и АЦП с промежуточным преобразо- ванием. В них входной аналоговый сигнал с помощью аналогового интегратора преобразуется во временной интервал между цифро- выми импульсами или в частоту следования цифровых импульсов. Выходной цифровой код, соответствующий входному аналоговому сигналу формируется в результате измерения длительности вре- менного интервала или частоты следования импульсов (рис. 7.23). Если используется выходная частота, то такой АЦП называется «преобразователем напряжение—частота» (ПНЧ).
306 Глава 7 Рис. 7.23. АЦП с промежуточным преобразованием. Такой подход позволяет с помощью сравнительно простых аппаратных средств получить высокую точность преобразова- ния, не зависящую от многих параметров используемых компо- нентов и от характеристик окружающей среды. Измерение вре- менных интервалов и частоты следования импульсов осуществ- ляется простейшими цифровыми схемами, примеры которых приведены в главе 5. Измерения эти могут осуществляться с вы- сокой точностью вследствие того, что существует очень хоро- ший временной эталон — кварцевый генератор. Отметим, что достоинством ПНЧ является также возможность простой пере- дачи его выходного цифрового сигнала на большие расстояния. В конце главы надо еще раз отметить, что приведенные здесь схемы сильно упрощены, для их практической реализации необходимо знание не только цифровой схемотехники, но и аналоговой и аналого-цифровой схемотехники, а также знание особенностей конкретных микросхем ЦАП и АЦП, что не явля- ется предметом данной книги. Однако рассмотренные здесь ключевые принципы использования ЦАП и АЦП и их совмест- ного включения с цифровыми схемами будут полезны любому разработчику.
Глава 8 ПРИМЕРЫ РАЗРАБОТКИ ЦИФРОВЫХ УСТРОЙСТВ В предыдущих главах были рассмотрены базовые элементы цифровой схемотехники и простейшие приемы проектирования узлов на их основе. Но для разработки сложных устройств и систем всех этих знаний порой оказывается недостаточно. Чтобы создать сложное устройство, необходимо еще вла- деть приемами системотехники, то есть уметь на основании анализа функций, которые должно выполнять устройство в це- лом, спроектировать его структуру, сформулировать принци- пы взаимодействия узлов, четко определить все задачи, кото- рые должен решать каждый из узлов, выработать требования к отдельным узлам. Возможно, в результате всех этих шагов бу- дет изменена сама первоначальная задача, будут переформу- лированы требования к создаваемому устройству, его ^есту в системе, принципам его взаимодействия с другими устройст- вами. И только потом, после всей этой предварительной рабо- ты уже можно переходить к разработке узлов, собственно к схемотехнике. Приемы системотехники сформулировать, формализовать, описать, даже перечислить гораздо сложнее, чем приемы схемо- техники. Да и пользы от такой формализации зачастую немного. Проектирование сложного, надежно работающего цифрового устройства с минимальными аппаратурными затратами сродни искусству и требует определенных способностей, даже таланта разработчика. Научить этому практически невозможно. Более того, попытка научить системотехнике может даже принести вред, так как ограничит творческие способности разработчика несколькими жесткими стандартными алгоритмами. Однако можно показать несколько простейших примеров разработки, продемонстрировать последовательность шагов, ко- торые необходимы при проектировании, которые могут встре- титься в процессе создания устройств некоторых распростра- ненных типов. Исходя из этих примеров разработчик может в дальнейшем попробовать по аналогии создать что-то свое, более или менее совершенное, но обязательно работоспособное.
308 Г лава 8 Поэтому в данной главе как раз и будут подробно рассмотре- ны несколько простых примеров проектирования сравнительно сложных устройств на всех этапах: от анализа решаемой задачи до создания полной принципиальной схемы. Примеры эти, ко- нечно, не отражают и малой доли всех реально встречающихся задач, но относятся к различным классам цифровых устройств. 8.1. Разработка клавиатуры Различные клавиатуры с большим количеством клавиш (кно- пок) широко используются в цифровых системах: в компьюте- рах, контроллерах, измерительных приборах, в бытовой техни- ке. Основная задача любой клавиатуры довольно проста: она должна при любом нажатии на клавишу выдавать код номера этой клавиши и сигнал флага нажатия клавиши (строб этого ко- да). Получив этот сигнал флага, внешнее устройство читает код нажатой клавиши и предпринимает требуемые действия. Главная задача при проектировании клавиатуры состоит в минимизации аппаратурных затрат и в обеспечении надежного срабатывания в любой ситуации. Существует масса схемотехни- ческих решений этой задачи, от примитивных до сложнейших. Клавиатуры могут быть механическими, квазисенсорными или сенсорными, клавиатуры могут иметь жесткую логику работы или быть интеллектуальными, даже допускать перепрограммиро- вание. Мы будем в качестве примера рассматривать самую про- стую механическую клавиатуру с жесткой логикой работы. Количество клавиш полноразмерной клавиатуры компьюте- ра превышает сотню, поэтому мы будем проектировать клавиа- туру на максимальное количество клавиш, равное 128. Естест- венно, клавиатура должна иметь защиту от дребезга механиче- ских контактов и должна корректно обрабатывать ситуацию од- новременного нажатия нескольких клавиш. Примем, например, что при одновременном нажатии нескольких клавиш клавиатура должна выдавать код только одной из них. Примем также, что максимально возможный темп нажатия клавиш на клавиатуре не должен превышать 20 нажатий в секунду (это довольно мно- го). Таким образом, основные требования к проектируемому устройству сформулированы. Начнем разработку. Очень часто удобным и эффективным приемом разработки является начало разработки устройства «с конца». То есть про-
Примеры разработки цифровых устройств 309 вотирование начинается, исходя из требуемого результата, из тех сигналов, которые устройство должно выдавать вовне и принимать извне. И только в конце проектирования разрабаты- вается та часть устройства, которая выполняет требуемую функцию. Такой подход гарантирует, что разработанное уст- ройство не будет чрезмерно избыточным, не будет делать ниче- го лишнего, а также то, что оно корректно будет взаимодейст- вовать с другими устройствами и системами. Этот принцип про- ектирования не универсален, порой выдержать его в течение всего процесса разработки трудно, но попробовать его приме- нить к любому устройству никогда не помешает. В нашем случае необходимо сначала определиться, что должна выдавать вовне клавиатура. Обычно это задается техни- ческим заданием, но мы примем, что наша клавиатура должна выдавать 7-разрядный двоичный номер нажатой клавиши (так как 27 = 128) и сопровождать его положительным сигналом фла- га нажатия. Сигнал флага и код клавиши должны сохраняться до тех пор, пока нажата клавиша. За это время (несколько мил- лисекунд) внешнее устройство должно успеть проанализировать сигнал флага и прочитать выходной код клавиатуры. Обычно данное требование является не слишком жестким. Альтернативное решение — сохранение кода нажатой кла- виши и сигнала флага до момента чтения выходного кода внеш- ним устройством — конечно же, снижает требование к быстро- действию читающего внешнего устройства, однако оно может привести к тому, что некоторые нажатия клавиш останутся без реакции, не будут обработаны. Необходимо также определиться, как клавиатура будет вес- ти себя при одновременном нажатии нескольких клавиш. Наи- более сложные, интеллектуальные клавиатуры выдают последо- вательно коды всех нажатых клавиш, запоминая их в буферной памяти. Но мы примем, что клавиатура должна выдавать только код одной из одновременно нажатых клавиш (первой по уста- новленному порядку). Нажатия всех остальных клавиш одно- временно с данной клавишей просто игнорируются. При проектировании механической клавиатуры важно решить, как будет обрабатываться неизбежно присутствующий дребезг ме- ханических контактов клавиш. Его можно обрабатывать как внутри клавиатуры, так и вне ее (то есть перенести эту функцию на внеш- нее устройство). Оба этих подхода имеют свои преимущества. Но
310 Глава 8 наша клавиатура будет обрабатывать дребезг контактов самостоя- тельно. Принцип обработки выбираем очень простой: первое за- фиксированное замыкание контактов клавиши считается началом нажатия, а конец нажатия определяется тогда, когда контакты бу- дут разомкнуты в течение заданного интервала времени. В результате временная диаграмма работы разрабатываемой клавиатуры может быть упрощенно представлена в виде рис. 8.1. Здесь сигнал флага начинается при фиксации единичного сиг- нала с клавиши (это может быть как во время дребезга, так и после его окончания). После выставления флага фиксируется выходной код клавиши. После отпускания клавиши (нулевой сигнал), через время задержки 1зад снимается сигнал флага. Вре- мя задержки должно быть заведомо больше времени дребезга контактов. Выходной код может сохраняться после отпускания клавиши до следующего нажатия, а может и сниматься. Клавиша Флаг № 1 1 Нажатие 1 Отпускание • 1 1 -М , 1зад Код нажатой клавиши Вых. код Рис. 8.1. Временная диаграмма работы клавиатуры. Дальнейшая разработка невозможна без выбора принципа преобразования сигналов от нажатия клавиш в код номера на- жатой клавиши. Простейшим путем построения подобного преобразователя является использование приоритетных шифраторов (рис. 8.2). Каждая клавиша дает свой логический сигнал, сигналы от всех клавиш преобразуются шифратором в код номера клавиши. Однако такой простейший подход хорош только при небольшом количестве клавиш (до 8 или до 16), так как при большом коли- честве входов приоритетный шифратор получается довольно сложным. При малом количестве клавиш дребезг контактов обычно устраняется отдельно для каждой клавиши с помощью RS-триггера (как это показано на рисунке). Это решение про- стое, но требующее больших аппаратурных затрат.
Примеры разработки цифровых устройств 311 Рис. 8.2. Простейший преобразователь для клавиатуры. Другим путем построения преобразователя является исполь- зование так называемой коммутационной матрицы, состояние которой периодически опрашивается с частотой тактового гене- ратора. Коммутационная матрица представляет собой две груп- пы пересекающихся проводников (строки и столбцы), во всех точках пересечения которых находятся клавиши. В данном слу- чае каждая клавиша не формирует своего отдельного логиче- ского сигнала, а только коммутирует (соединяет) одну из строк матрицы с одним из ее столбцов. Наиболее универсальная схема преобразователя, легко на- ращиваемая и достаточно простая, приведена на рис. 8.3. Рис. 8.3. Преобразователь с опросом всех клавиш.
312 Глава 8 Для опроса коммутационной матрицы используется счетчик, тактируемый генератором. Старшие разряды счетчика исполь- зуются для выбора одной из строк матрицы с помощью дешиф- ратора (на выбранную строку поступает сигнал логического ну- ля, на невыбранную — сигнал логической единицы). Младшие разряды счетчика используются для опроса столбцов матрицы с помощью мультиплексора. Сигнал с опрашиваемого столбца подается на выход мультиплексора. Признаком нажатия клави- ши является нулевой сигнал на выходе мультиплексора. В этот момент на выходах счетчика присутствует код номера нажатой клавиши. Такая схема легко позволяет строить клавиатуры на большое количество клавиш (до 256, как на рисунке, и даже больше), однако она требует довольно большого времени для полного опроса клавиатуры (так как количество тактов опроса равно полному количеству клавиш). Совмещение двух рассмотренных подходов позволяет стро- ить достаточно большие клавиатуры с малыми аппаратурными затратами и малым временем опроса. При таком комбинированном методе (рис. 8.4) также ис- пользуется коммутационная матрица с клавишами на всех пере- сечениях строк и столбцов, но опрашиваются не все клавиши по очереди, а только строки (или столбцы) матрицы. Для опроса, как и в предыдущем случае, применяются генератор, счетчик и дешифратор. Положение же нажатой клавиши в строке (или в столбце) определяется с помощью шифратора. Код нажатой клавиши образуется из выходного кода счетчика (старшие раз- ряды) и кода с выхода шифратора (младшие разряды). В нашем случае клавиатура имеет 128 клавиш, то есть ком- мутационная матрица должна состоять из 16 строк, опрашивае- мых дешифратором 4—16 (ИДЗ), и 8 столбцов, сигналы с кото- рых обрабатываются шифратором 8—3 (ИВ1). Счетчик должен иметь 4 разряда (ИЕ7). Эти 4 разряда и 3 разряда с выхода шиф- ратора дадут 7-разрядный номер нажатой клавиши. Полный цикл опроса клавиатуры будет занимать 16 тактов генератора (по числу строк). Признаком нажатия одной из клавиш будет отрицательный сигнал на выходе -GS шифратора. Если нажато несколько клавиш в разных строках, то обрабатываться будет та клавиша, строка которой будет опрошена первой. Если нажато несколько клавиш в одной строке, то шифратор выдаст код кла- виши, соответствующей большему номеру входа. Надо также
Примеры разработки цифровых устройств 313 учитывать, что шифратор ИВ1 выдает инверсный номер входа, на который пришел нулевой сигнал, эта особенность может по- требовать применения трех выходных инверторов (на рисунке не показаны). Рис. 8.4. Преобразователь с опросом строк клавиш. Оценим, какой должна быть частота тактового генератора. Мы приняли, что максимальная скорость нажатия равна 20 раз в секунду. Значит, за 1/20 секунды надо успеть опросить всю кла- виатуру, то есть все 16 строк. Таким образом, минимально до- пустимая тактовая частота составляет 16 • 20 = 320 Гц. Но надо заложить и запас на обработку дребезга контактов. Поэтому примем тактовую частоту опроса равной 400 Гц. Она может быть и больше, но чрезмерно увеличивать ее (например, выше 1 кГц) не стоит, так как при быстром переключении микросхем увеличивается потребляемый схемой ток. Понятно, что генера- тор должен быть не кварцевым, так как кварцевые резонаторы
314 Глава 8 на низкие частоты не выпускаются, а делитель частоты резко усложнит схему. К тому же точная выдержка частоты генерато- ра в данном случае совершенно не нужна. Выходной сигнал -Нажатие, конечно же, будет иметь корот- кие паразитные импульсы. Во-первых, они будут возникать из- за дребезга контактов нажатой в данный момент клавиши. Во- вторых, они могут возникать из-за переходных процессов при переключении счетчика и дешифратора. Эти паразитные им- пульсы надо исключать. Чтобы исключить действие паразитных импульсов из-за переходных процессов при переключении счетчика и дешиф- ратора, достаточно применить стробирование или тактирова- ние сигнала -Нажатие в середине каждого тактового интервала. Для этого из схемы преобразователя надо вывести сигнал -Такт. Исключение коротких выходных импульсов из-за дребезга контактов клавиш сложнее. Прежде всего, на время нажатия клавиши целесообразно остановить опрос строк с помощью сигнала -Запрет. Затем надо обработать сигнал -Нажатие по принципу, показанному на рис. 8.1. Будем считать, что при дре- безге контактов длительность кратковременного размыкания не превышает периода тактового генератора (2,5 мс при тактовой частоте 400 Гц). Тогда задержка окончания сигнала флага нажа- тия (см. рис. 8.1) должна быть не менее одного периода такто- вого сигнала. Для выработки задержки можно использовать це- почку триггеров, тактируемых сигналом -Такт. Схема выработки выходных сигналов клавиатуры приведена на рис. 8.5. Рис. 8.5. Схема выработки выходных сигналов клавиатуры.
Примеры разработки цифровых устройств 315 Инверсный выход триггера Т1 переключается в состояние логической 1 в середине тактового интервала (по положитель- ному фронту сигнала -Такт), если сигнал -Нажатие — нулевой. Своим выходным сигналом триггер Т1 перебрасывает в единицу триггер Т2, который уже никак не связан с сигналом -Нажатие, не реагирует ни на какой дребезг этого сигнала. Выходной сиг- нал триггера Т2 используется в качестве сигнала флага нажатия клавиатуры. Инверсный сигнал с выхода триггера Т2 использу- ется в качестве сигнала -Запрет, останавливающего опрос строк клавиатуры. Цепочка триггеров ТЗ и Т4, тактируемая сигналом -Такт, служит для задержки снятия сигнала флага после отпускания клавиши (когда сигнал -Нажатие становится равным единице). После установки флага в единицу сигнал флага начинает запи- сываться по фронту сигнала -Такт в триггеры ТЗ и Т4, но только в том случае, когда сигнал -Нажатие установлен в единицу. В результате на инверсном выходе триггера Т4 появится сигнал логического нуля при единичном значении сигнала -Нажатие в моменты двух последовательных положительных фронтов сиг- нала -Такт. Сигнал с выхода Т4 сбрасывает сигнал флага в нуль, после чего вся схема переходит в исходное состояние и ждет следующего нулевого сигнала -Нажатие. Если кратковременное размыкание при дребезге контактов клавиш длится более 2,5 мс, то можно увеличить количество триггеров в последовательной цепочке (ТЗ и Т4), что приведет к увеличению задержки снятия сигнала флага на целое число так- тов генератора. Таким образом, схема полностью разработана. Отметим, что низкая тактовая частота работы схемы позволяет нам не рассчи- тывать задержек микросхем, то есть использовать только пер- вый уровень представления, логическую модель. А эффекты, связанные с переходными процессами при переключении мик- росхем, мы устранили, обеспечив временной сдвиг между так- товыми сигналами схемы преобразователя (рис. 8.4) и схемы выработки выходных сигналов (рис. 8.5) на половину периода генератора. Номиналы всех резисторов, примененных в схеме, должны быть около 1 кОм.
316 Глава 8 8.2. Разработка вычислителя контрольной суммы Различные контрольные суммы широко применяются в цифро- вых устройствах и системах для контроля правильности хране- ния или передачи массивов информации. Суть этого метода контроля проста: к хранимому или передаваемому информаци- онному массиву присоединяется небольшой контрольный код (обычно от 1 разряда до 32 разрядов), в котором в свернутом виде содержится информация обо всем массиве. При чтении или получении этого массива еще раз вычисляется тот же самый контрольный код по тому же самому алгоритму. Если этот вновь вычисленный код равен тому коду, который был присое- динен к массиву, то считается, что массив сохранен или передан без ошибок. Логика здесь следующая: контрольный код (он же контрольная сумма) гораздо меньше контролируемого массива, поэтому вероятность искажения контрольной суммы гораздо меньше, чем вероятность искажения массива. Если же исказятся как массив, так и контрольная сумма, то вероятность того, что эти искажения не будут замечены при повторном подсчете кон- трольной суммы, крайне мала. Существует, правда, вероятность, что массив будет искажен в нескольких местах таким образом, что контрольная сумма от этих искажений никак не изменится, но такая вероятность также обычно мала. Контрольные суммы применяются при хранении данных в памяти (оперативной и постоянной), при хранении данных на магнитных носителях (дисках, лентах), в локальных и глобаль- ных сетях передачи информации. При использовании контроль- ной суммой для защиты хранимой информации можно устано- вить наличие или отсутствие повреждений данного массива (файла, сектора на диске). При использовании контрольной суммы для защиты передаваемой по сети информации приемник может потребовать от передатчика повторной передачи иска- женного массива. Существует множество способов вычисления контрольной суммы, различающихся степенью сложности вычисления и на- дежностью выявления ошибок. Но наибольшее распространение получил в настоящее время так называемый «циклический ме- тод контроля по избыточности» или CRC (Cyclic Redundancy Check), при котором применяется циклическая контрольная сумма.
Примеры разработки цифровых устройств 317 Вычисляется циклическая контрольная сумма таким обра- зом. Весь массив информации рассматривается как одно N-раз- рядное двоичное число, где N — количество бит во всех байтах массива. Для вычисления контрольной суммы это N-разрядное число делится на некоторое постоянное число (полином), вы- бранное специальным образом (но делится не просто, а по мо- дулю 2). Частное от этого деления отбрасывается, а остаток как раз и используется в качестве контрольной суммы. Мы не будем углубляться в математическое обоснование этого метода. Интересующиеся читатели могут обратиться к специальной литературе. Здесь же мы отметим только, что дан- ный метод выявляет одиночные ошибки в массиве с вероятно- стью 100%, а любое другое количество ошибок с вероятностью, примерно равной (1—2~п), где п — количество разрядов кон- трольной суммы (это верно только при условии, что N гораздо больше п, что, впрочем, почти всегда выполняется). Например, при п = 8 данная вероятность составит 0,996, для n = 16 она бу- дет равна 0,999985, а для п = 32 она будет 0,9999999997672. То есть почти все ошибки будут выявляться. А теперь кратко поясним, что такое деление по модулю 2. Пусть массив (последовательность бит) имеет следующий вид: 101111001110 (для простоты берем небольшую разрядность). В качестве делителя (называемого обычно полиномом) возьмем число 10011. Как оно выбирается? Оно должно делиться по моду- лю 2 без остатка только на единицу и само на себя (то есть это должно быть простое число в смысле деления по модулю 2). Раз- рядность полинома берется на единицу большая, чем требуемая разрядность контрольной суммы (остатка от деления). Так, чтобы получить 8-разрядный остаток (8-разрядную контрольную сум- му), надо брать 9-разрядный полином. В нашем случае полином 5-разрядный, следовательно, остаток будет 4-разрядный. Для получения 8-разрядного остатка можно использовать, например, полином 1 0001 1101 или 11D в 16-ричном коде. Деление по модулю 2 производится точно так же, как и при- вычное для нас деление «в столбик» (рис. 8.6), но вместо вычита- ния в данном случае используется поразрядное сложение по мо- дулю 2, то есть каждый результирующий бит представляет собой функцию Исключающее ИЛИ от соответствующих битов слагае- мых. Частное от деления нас не интересует, а остаток, равный в нашем примере 1000, и будет циклической контрольной суммой.
318 Глава 8 Массив данных Полином 101111001110110011^-" ^юоп I.......... д.0010010 ® 10011 д.000010111 10011 Сложение по модулю 2 1 о 0 0^~__ Остаток (контрольная сумма) Рис. 8.6. Вычисление циклической контрольной суммы. Как практически реализовать вычисление этого остатка (контрольной суммы)? Можно сделать это по приведенному здесь принципу деления в столбик (аппаратно или программно). Но в любом случае это довольно громоздко и медленно. Уско- рить процесс вычисления можно, воспользовавшись табличным методом. Для этого составляется таблица чисел размером 2“ х п, где п — разрядность контрольной суммы. Принцип вычисления чисел в таблице очень прост (табл. 8.1). Таблица 8.1. Таблица для табличного метода вычисления циклической кон- трольной суммы Адрес в таблице Данные в таблице (числа) 0 0 1 Остаток от деления числа 1 0000 0000 на полином 2 Остаток от деления числа 10 0000 0000 на полином 3 Остаток от деления числа 11 0000 0000 на полином 4 Остаток от деления числа 100 0000 0000 на полином 5 Остаток от деления числа 101 0000 0000 на полином 255 Остаток от деления числа 1111 1111 0000 0000 на полином Числа представляют собой остаток от деления по модулю 2 числа с п конечными нулями (в нашем примере п = 8) и с п на- чальными разрядами, равными номеру числа (его адресу) в таб- лице. Деление производится на выбранный полином (в нашем случае — 9-разрядный). Таблица вычисляется один раз и хра- нится на диске или в ПЗУ.
Примеры разработки цифровых устройств 319 Алгоритм вычисления контрольной суммы с помощью этой таблицы следующий (рассматриваем случай п = 8). Берем пер- вый байт нашего информационного массива. Рассматриваем его как адрес в таблице (номер числа). Берем из таблицы число с полученным номером — получаем остаток Оь Берем второй байт массива и складываем его по модулю 2 с остатком Оь По- лученное число используем как адрес в таблице. По этому адре- су выбираем из таблицы остаток Ог. Берем третий байт массива, складываем его по модулю 2 с остатком Ог. Используя это чис- ло как адрес в таблице, выбираем из нее остаток Оз и так про- должаем до последнего байта массива. Естественно, это будет гораздо быстрее, чем вычисление «в столбик». Рис. 8.7. Параллельный вычислитель 8-разрядной циклической контрольной суммы на ПЗУ. Для реализации этого алгоритма с помощью цифровых схем требуется только ПЗУ с организацией 2n X п (256 X 8 при 8-раз- рядной контрольной сумме), n-разрядный регистр и п элементов Исключающее ИЛИ (рис. 8.7). В ПЗУ заносится таблица про- межуточных остатков (табл. 8.1), на вход схемы подаются один за другим байты массива, сопровождаемые стробом. Адресом ПЗУ служит сумма по модулю 2 входных данных и содержимо- го выходного регистра, в который по сигналу строба записыва- ется выходной код ПЗУ. Перед началом вычисления состояние регистра обнуляется. После окончания всего массива в регистре образуется циклическая контрольная сумма. Недостаток данной схемы параллельного вычислителя оче- виден: в случае большого числа разрядов контрольной суммы требуется очень большой объем ПЗУ (64К X 16 для 16-разряд-
320 Глава 8 ной суммы и 4Г X 32 для 32-разрядной суммы). Поэтому она применяется сравнительно редко. Зато параллельный вычисли- тель обладает высоким быстродействием (байты могут посту- пать с периодом, равным сумме задержки выходного регистра, времени выборки адреса ПЗУ и задержки элемента Исключаю- щее ИЛИ). Для многоразрядной контрольной суммы чаще применяется другой подход — вычисление в последовательном коде, при ко- тором на вычислитель массив данных поступает последователь- но, бит за битом. Последовательный вычислитель контрольной суммы представляет собой сдвиговый регистр с обратными свя- зями от некоторых разрядов через сумматоры по модулю 2 (то есть элементы Исключающее ИЛИ). Полное количество разря- дов регистра сдвига должно быть равно разрядности вычисляе- мой контрольной суммы (или, что то же самое, быть на единицу меньше разрядности используемого полинома). Место включе- ния обратных связей однозначно определяется выбранным по- линомом. Это очень похоже на генератор квазислучайной по- следовательности (см. раздел 4.2.3). Количество точек включения обратной связи определяет- ся количеством единиц в полиноме (единица в младшем раз- ряде не учитывается), а номера разрядов сдвигового регист- ра, с которых берутся сигналы обратной связи, определяются номерами единичных разрядов в коде полинома. В отличие от генератора квазислучайного сигнала в данном случае не- обходимо смешать по функции Исключающее ИЛИ не только сигналы обратной связи, но и входной сигнал данных в по- следовательном коде. На рис. 8.8 приведен пример последовательного вычислите- ля 16-разрядной циклической контрольной суммы при выбран- ном полиноме 1 0001 0000 0010 0001 или 11021 в 16-ричном коде (рекомендация МККТТ V.41). Так как в коде полинома три единицы (без младшего разряда), необходимо взять три точки включения обратной связи. При этом номера разрядов сдвигово- го регистра, к которым подключаются обратные связи, опреде- ляются положением единичных битов в полиноме. Перед нача- лом работы сдвиговый регистр необходимо сбросить в нуль (сигнал -Сброс). Биты массива должны сопровождаться сигна- лом строба. После окончания массива в регистре будет цикли- ческая контрольная сумма.
Примеры разработки цифровых устройств 321 Сброс “LT Рис. 8.8. Последовательный вычислитель 16-разрядной циклической кон- трольной суммы на регистре сдвига. Может показаться, что такой последовательный вычисли- тель не слишком удобен из-за того, что данные массива должны подаваться ца него в последовательном коде. Однако именно в последовательном коде передаются данные в информационных сетях, и в последовательном коде записываются данные на маг- нитные носители. Поэтому во всех подобных случаях последо- вательные вычислители подходят идеально. Период поступления битов массива на последовательный вычислитель не должен быть меньше суммы задержки регистра сдвига и элементов Исключающее ИЛИ. В итоге предельная скорость вычисления циклической контрольной суммы оказы- вается значительно меньшей, чем в случае параллельного вы- числителя. Это также недостаток данного метода вычисления. 8.3. Разработка логического анализатора Логический анализатор — это контрольно-измерительный при- бор, предназначенный для запоминания (фиксации) и после- дующего анализа (например, просмотра на экране) временных диаграмм большого количества цифровых сигналов. Логические анализаторы используются при динамической отладке различ- ных цифровых устройств и систем, а также при контроле их ра- боты. Совершенно незаменимы логические анализаторы при разработке и отладке различных микропроцессорных систем, контроллеров, компьютеров, где используется большое количе- ство многоразрядных шин цифровых сигналов. Именно логиче- ские анализаторы позволяют разработчику увидеть те времен- 11 - 4589
322 Глава 8 ные диаграммы, которые он рисует на бумаге при проектирова- нии своего устройства, причем увидеть их в реальном масштабе времени, то есть посмотреть, как работает устройство на своей нормальной рабочей скорости. Логический анализатор по своему назначению близок к ос- циллографу, так как он также позволяет наблюдать на экране временные диаграммы сигналов. Но существуют и существен- ные отличия логического анализатора от обычного (не цифро- вого) осциллографа: • Логический анализатор работает только с цифровыми, то есть двухуровневыми (реже трехуровневыми) сигналами, а осцил- лограф — с аналоговыми сигналами, имеющими бесконечно большое число разрешенных уровней; • Логический анализатор имеет большое количество входных линий (обычно от 16 до 64), то есть позволяют одновременно фиксировать множество входных сигналов, а осциллографы обычно позволяют одновременно увидеть не более четырех входных сигналов. • Логический анализатор работает в режиме однократного за- поминания временных диаграмм (как запоминающий осцил- лограф). То есть анализатор запоминает состояния входных сигналов в течение заданного времени (называемого окном регистрации), а затем дает возможность анализировать зафик- сированные последовательности. Осциллограф же работает обычно в режиме непрерывной развертки, то есть он не запо- минает формы входного сигнала и позволяет наблюдать толь- ко повторяющиеся, периодические сигналы. • Логический анализатор предусматривает возможность так на- зываемой предпусковой регистрации. Эта возможность преду- сматривается и в цифровых осциллографах, но ее нет в анало- говых осциллографах. Рассмотрим подробнее, что такое предпусковая регистрация. Процесс регистрации входных сигналов (или отображения их на экране в обычном осциллографе) всегда должен быть при- вязан к какому-то моменту времени, к какому-то внешнему со- бытию, называемому запуском. Иначе разобраться в отобра- жаемых сигналах будет совершенно невозможно. Например, в осциллографах моментом запуска обычно является момент пре-
Примеры разработки цифровых устройств 323 вышения входным исследуемым сигналом установленного по- рога. Сигналом запуска может служить и специальный внешний синхронизирующий сигнал. В логических анализаторах в каче- стве запуска обычно используется момент появления на входах заданного уровня или заданной последовательности одного или нескольких входных сигналов. В обычных осциллографах отображение формы входного сигнала (или входных сигналов) начинается в момент запуска, то есть на экране видно только то, что происходило со входны- ми сигналами после момента запуска. Такая регистрация может быть названа послепусковой. Можно также сказать, что точка запуска всегда находится в начале окна регистрации (рис. 8.9). В логических анализаторах (и в цифровых осциллографах) существует возможность увидеть и зафиксировать не только то, что было после запуска, но еще и то, что происходило в течение определенного времени до момента запуска. Именно эта регист- рация до момента запуска и называется предпусковой регистра- цией. В этом случае точка запуска может находиться и в начале, и в середине, и в конце окна регистрации (рис. 8.10). Понятно, что такая возможность очень удобна, так как, выбирая величину длительности предпусковой регистрации, можно увидеть те со- бытия, временная привязка к началу которых затруднена или попросту невозможна. Длительность (глубина) предпусковой регистрации может быть постоянной (например, равной поло- вине длительности окна регистрации) или переменной (то есть задаваться пользователем в пределах от нуля до полной дли- п*
324 Глава 8 тельности окна регистрации). При переменной глубине пред- пусковой регистрации точка запуска может располагаться в лю- бой точке окна регистрации — от его начала до его конца. Рис. 8.10. Предпусковая регистрация в логических анализаторах и цифровых осциллографах. С точки зрения схемотехники, логический анализатор пред- ставляет собой быстродействующую буферную оперативную память, работающую в периодическом режиме. Буфер этот од- нонаправленный. То есть сначала в буферную память с большой тактовой частотой последовательно записываются состояния нескольких входных сигналов, а затем эта информация последо- вательно читается из буфера. Таким образом, адреса буферной памяти могут перебираться одним и тем же счетчиком как в ре- жиме записи, так и в режиме чтения. Структура таких буферов уже рассматривалась в разделе 6.2.2. Главные особенности логического анализатора по сравне- нию со стандартной структурой информационного буфера на основе оперативной памяти следующие: • большое число разрядов шины данных (то есть входных сиг- налов, каналов регистрации анализатора); • необходимость обеспечения режима предпусковой регистра- ции; • необходимость временной привязки процесса регистрации (записи в память) к состояниям входных сигналов (обеспече- ние запуска).
Примеры разработки цифровых устройств 325 Первая из этих особенностей приводит к тому, что данные при чтении приходится считывать не все сразу, а по очереди (особенно при числе разрядов больше 32). Обычно данные тре- буется читать по 8 или по 16 разрядов. В результате усложняет- ся та часть схемы буферной памяти, которая отвечает за чтение данных. Вторая особенность требует существенного усложнения схемы счетчика, перебирающего адреса буферной памяти. Наконец, третья особенность требует усложнения схемы управления работой информационного буфера. Логические анализаторы делятся на синхронные (или анали- заторы логических состояний) и асинхронные (или анализаторы временных диаграмм). Синхронные анализаторы работают от тактового генератора исследуемой схемы и фиксируют только временные сдвиги, кратные его периоду, а следовательно, выяв- ляют только нарушения в логике работы схемы. Асинхронные анализаторы работают от собственного внутреннего тактового генератора, поэтому они позволяют измерять абсолютные зна- чения временных сдвигов между сигналами и могут выявлять ошибки из-за неправильно рассчитанных задержек, из-за емко- стных эффектов и т. д. Они обычно делаются гораздо более бы- стрыми, чем синхронные анализаторы (рассчитываются на пре- дельно возможную частоту регистрации). В идеале логический анализатор должен обеспечивать оба эти режима работы, то есть работать как от своего внутреннего тактового генератора с разными тактовыми частотами, так и от внешнего тактового сигнала. То есть тактовый генератор анализатора должен быть также достаточно сложным. Сформулируем исходные данные для проектирования логи- ческого анализатора. В данном случае нам важно не получить рекордные характеристики, а всего лишь продемонстрировать принципы разработки подобных схем на основе буферной памя- ти. Пусть количество входных линий анализатора (каналов ре- гистрации) равно 32, количество регистрируемых состояний — 4096, максимальная тактовая частота — 10 МГц, тактовый ге- нератор — внутренний с изменяемой частотой или внешний, за- пуск — по положительному или отрицательному фронту (син- хропереходу) на одной из 8 входных линий, глубина предпуско- вой регистрации — задается программно. Будем также считать, что данные из памяти читаются порциями по 8 разрядов.
326 Глава 8 Таким образом, буферная оперативная память анализатора должна иметь объем 128 Кбит при организации 4К X 32. Поми- мо оперативной памяти анализатор должен включать в себя счетчик для перебора адресов с количеством разрядов не ме- нее 12. В структуре анализатора должен быть также внутренний тактовый генератор с программно изменяемой частотой и воз- можностью подключения внешнего тактового сигнала. Наконец, необходимо наличие схемы запуска анализатора, которая будет выбирать одну из 8 входных линий и полярность синхроперехо- да (положительный или отрицательный фронт). Память целесообразно выполнить на многоразрядных мик- росхемах ОЗУ (для снижения количества микросхем). Требо- вания к быстродействию памяти в данном случае не слишком высоки (при максимальной тактовой частоте 10 МГц в течение 100 нс необходимо успеть переключить счетчик адресов и запи- сать входную информацию в ОЗУ). Микросхем памяти, способ- ных обеспечить такую скорость работы, достаточно много. От счетчика адресов памяти требуется максимальное быст- родействие (можно взять, например, микросхемы синхронных счетчиков КР531ИЕ17, которые достаточно легко каскадируют- ся без потери быстродействия). Кроме простого перебора адре- сов счетчик должен также обеспечивать предпусковую регист- рацию. Остановимся на этом несколько подробнее. Запуск Остановка (4096-bQ адресов 4095 О'------------------ ----— ---------1——> _________________________»........... ч Адреса памяти ' Запись и чтение ( Рис. 8.11. Организация предпусковой регистрации. Для того чтобы реализовать предпусковую регистрацию, не- обходимо обеспечить, непрерывную перезапись по кругу со- держимого буферной памяти до момента прихода запуска (рис. 8.11). То есть после записи последнего 4095 адреса надо записы- вать информацию по нулевому адресу. Если мы выбираем глу- бину предпусковой регистрации N тактов, то надо остановить
Примеры разработки цифровых устройств 327 регистрацию через (4096-N) тактов после момента прихода за- пуска. После остановки регистрации надо считывать содержи- мое памяти, начиная с точки остановки, с перебором адресов в том же самом направлении, что и при регистрации. Проведя 4096 операций чтения содержимого памяти, мы получим ин- формацию о состоянии входных сигналов в течение N тактов до запуска и (4096-N) тактов после запуска, то есть моменту при- хода запуска будет соответствовать содержимое адреса памяти, считанного N-m. Однако все произойдет именно таким образом только в том случае, если от момента начала регистрации до момента прихо- да запуска логический анализатор успеет зафиксировать N так- тов. Иначе, остановив регистрацию через (4096-N), мы не пере- пишем всю память, и в части его адресов будет находиться предыдущая информация. Чтобы избежать этого, надо запретить реакцию на, запуск в течение N тактов после начала регистра- ции (выдержать своеобразное «мертвое» время). А что будет, если запуск придет в течение этого самого «мертвого» време- ни? Если исследуемый процесс периодический (то есть все входные сигналы повторяются через какое-то время), то анали- затор среагирует на следующий запуск после окончания «мерт- вого» времени. Если же исследуемый процесс однократный, не повторяющийся, то надо начать процесс регистрации заведомо раньше (на «мертвое» время или больше), чем начнется изучае- мый процесс (например, если мы исследуем старт компьютера при включении питания). В результате счетчики анализатора должны обеспечивать временную диаграмму, показанную на рис. 8.12. Регистрация (Per.) Разрешение запуска (РЗ) ------------- Запуск Адреса памяти 1 (4096-N) тактов Рис. 8.12. Временная диаграмма работы счетчиков логического анализатора.
328 Глава 8 Адреса памяти начинают перебираться с началом регистра- ции. В течение N тактов после начала регистрации реакция на запуск запрещается, а затем разрешается. Через (4096-N) тактов после прихода запуска регистрация прекращается. Отметим, что точно так же может быть реализована предпуско- вая регистрация в цифровом осциллографе. По сравнению с логи- ческим анализатором в схему надо будет добавить только один или несколько АЦП и некоторые другие цифро-аналоговые узлы. Спроектируем схему счетчиков, реализующую приведен- ную временную диаграмму. Счетчик, перебирающий адреса памяти, должен быть 12-раз- рядным, так как 212 = 4096. Во время регистрации он должен ра- ботать в непрерывном режиме, реализуя постоянную перезапись по кругу всей буферной памяти. На этот же счетчик можно воз- ложить функцию отсчета «мертвого» времени (N тактов). Но этот же счетчик не может отсчитывать еще и (4096-N) тактов после прихода запуска, так как запуск может прийти в любое момент после окончания «мертвого» времени. Для этого пона- добится уже другой счетчик, причем также 12-разрядный. Этот второй счетчик должен начинать работу только после прихода запуска (по сигналу Разрешение запуска) и должен от- считывать всего (4096-N) тактов, после чего завершать регист- рацию. То есть получается, что логический анализатор начинает регистрацию по внешнему управляющему сигналу, а заканчива- ет автоматически через (4096-N) тактов после запуска, о чем должен сообщать вовне сигнал флага окончания регистрации. Таким образом, один 12-разрядный счетчик должен отсчи- тывать N тактов, а другой 12-разрядный счетчик должен отсчи- тывать (4096-N) тактов. Проще всего организовать такой ре- жим, если в оба счетчика записывать до начала работы код N и задать первому счетчику инверсный режим счета, а второму — прямой режим счета. Перебор адресов памяти первым счетчи- ком начнется с адреса N и будет происходить на уменьшение (а не на увеличение, как на рис. 8.11), однако для работы буфер- ной памяти это не имеет никакого значения. Сигнал переноса первого счетчика появится через N тактов после начала регистрации. Этот сигнал должен разрешать ожида- ние запуска (сигнал РЗ на рис. 8.12). Когда же приходит запуск, то разрешается работа второго счетчика, начинающего считать с кода N на увеличение. В результате сигнал переноса второго
Примеры разработки цифровых устройств 329 счетчика появится через (4096-N) тактов после начала его рабо- ты. Этот сигнал должен остановить процесс регистрации. После окончания регистрации должен начаться процесс чте- ния из памяти. При этом первый счетчик должен перебирать ад- реса памяти по стробу чтения в том же направлении, что и при записи (то есть в режиме инверсного счета). 4096 последова- тельно произведенных циклов чтения позволит перебрать все 4096 адресов памяти, причем на N-м цикле чтения будет прочи- тан такт, в котором произошел запуск. Схема счетчиков логического анализатора, реализующая описанный алгоритм, приведена на рис. 8.13. Рис. 8.13. Схема счетчиков логического анализатора.
330 Глава 8 Два 12-разрядных счетчика реализованы на шести микросхе- мах ИЕ17. Первый счетчик (верхний на схеме) работает в режиме инверсного счета, второй (нижний на схеме) — в режиме прямого счета. Перед началом работы в оба счетчика по внешнему сигна- лу -Зап. записывается код N. Причем значения четырех младших разрядов 12-разрядного кода N равны нулю, а записываются только 8 старших разрядов. Это приводит к тому, что глубина предпусковой регистрации может задаваться с точностью до 16 тактов и принимать значения из ряда: 0, 16, 32, 48, 64,..., 4080. При записи на входы счетчиков -EWR и С поступают отрица- тельные сигналы, причем сигнал -EWR задержан относительно сигнала С на двух инверторах и (при необходимости) на конден- саторе. В результате положительный фронт сигнала С приходит то- гда, когда сигнал -EWR равен нулю, что и требуется для записи. На вход С обоих счетчиков могут приходить еще два сигна- ла: строб чтения из памяти -Чт. и тактовый сигнал Такт. Сигнал Такт приходит при регистрации (в режиме записи в память), а сигнал -Чт. поступает при чтении из памяти зарегистрированной информации. После того как в оба счетчика записан код N необходимо начать регистрацию по внешнему сигналу -Старт. Этот сигнал сбрасывает в нуль триггеры 1 и 2 и устанавливает в единицу триггер 3. Выходной сигнал триггера 3 разрешает регистрацию (сигнал Per. на рис. 8.12), то есть разрешает прохождение такто- вых импульсов на входы счетчиков С. Это приводит к тому, что начинает работу первый счетчик, а второму счетчику работа за- прещается по входу -ЕСТ выходным сигналом триггера 2. Первый счетчик, выходной код которого используется как адрес памяти, отсчитывает N тактов в инверсном режиме и вы- рабатывает сигнал переноса -CR. Этот сигнал перебрасывает в единицу триггер 1. Затем первый счетчик продолжает переби- рать адреса памяти по кругу, а запись нулей в триггер 1 запре- щается элементом 2И-НЕ на входе триггера. Выходной сигнал триггера 1 (сигнал РЗ на рис. 8.12) разрешает работу триггера 2 и тем самым разрешает реакцию схемы на сигнал запуска За- пуск (положительный фронт). Сигнал Запуск перебрасывает в единицу триггер 2, разрешая работу второго счетчика. Первый счетчик в это время продол- жает считать. Второй счетчик начинает свой счет с кода N, дос- читывает в режиме прямого счета до 4096 и своим сигналом пе-
Примеры разработки цифровых устройств 331 реноса -CR перебрасывает в нуль триггер 3. Это приводит к за- прету поступления тактовых импульсов на вход С счетчиков и к остановке регистрации. После этого может начаться чтение записанной информации по стробу -Чт. По заднему (положительному) фронту этого сигнала первый счетчик будет перебирать адреса памяти в инверсном ре- жиме. Второй счетчик также будет считать, но это не имеет ника- кого значения. После 4096 циклов чтения вся информация из памя- ти будет прочитана, и схема будет готова к новой регистрации. Перейдем теперь к проектированию других узлов логиче- ского анализатора. Как уже отмечалось, тактовый сигнал анализатора может быть как внутренним (от внутреннего тактового генератора), так и внешним (от исследуемой схемы). Для повышения универ- сальности анализатора целесообразно обеспечить его работу на нескольким тактовых частотах. Большие частоты будут исполь- зоваться для анализа быстрых процессов, а малые частоты — для анализа длительных процессов. Тактовая частота не должна при этом принимать слишком много значений. Вполне доста- точно ряда нескольких частот, различающихся вдвое. Рис. 8.14. Тактовый генератор логического анализатора Пример схемы тактового генератора для логического анали- затора приведен на рис. 8.14. Тактовый генератор анализатора выполнен на кварцевом ге- нераторе, 6-разрядном счетчике (ИЕ19) и 8-канальном мультип- лексоре (КП7). Он может выдавать на выход ряд тактовых час- тот, различающихся в 2 раза (период 100, 200, 400, 800, 1600,
332 Глава 8 3200, 6400 нс) или внешний тактовый сигнал ВТС. То есть он позволяет реализовать как синхронный, так и асинхронный ре- жим работы логического анализатора. Счетчик может быть применен асинхронный (ИЕ19), так как каждый его выход ис- пользуется самостоятельно, независимо от других. Выбор кана- ла мультиплексора (то есть вида тактового сигнала) осуществ- ляется 3-разрядным кодом выбора такта, причем код 111 будет Схема запуска анализатора должна обеспечивать выбор по- ложительного или отрицательного фронта (синхроперехода) на одной из 8 входных линий анализатора. Выходным сигналом запуска является положительный фронт (см. рис. 8.13). Для вы- бора одного из восьми входных сигналов удобно использовать 8-канальный мультиплексор (КП7), а для выбора полярности перехода можно применить элемент Исключающее ИЛИ, вклю- ченный в режиме управляемого инвертора. Схема запуска полу- чается очень простой (рис. 8.15). Выбор входного сигнала, по которому будет производиться запуск, осуществляется 3-разряд- ным управляющим кодом выбора синхролинии. Выбор поляр- ности перехода производится внешним сигналом выбора поляр- ности, причем единица на этом входе соответствует отрица- тельному фронту, а нуль — положительному фронту. Наконец, последний узел логического анализатора — это память с буферами данных. Память должна иметь организацию 4К X 32, для чего придется использовать 4 микросхемы, так как обычно микросхемы оперативной памяти бывают 8-разрядные. Шина данных таких микросхем двунаправленная, поэтому тре-
Примеры разработки цифровых устройств 333 буется применение буферов для данных. Память должна рабо- тать в режиме записи при регистрации и в режиме чтения при чтении информации, зарегистрированной логическим анализа- тором. Для упрощения схемы целесообразно использовать не- тактируемые микросхемы памяти. В режиме записи сигнал -CS памяти должен представлять собой отрицательные импульсы на каждый адрес памяти, а сиг- нал -WR должен быть постоянно активным (нулевым). Хотя не- которые микросхемы памяти (например, КР541РУ2) могут за- писывать информацию и при постоянных нулевых уровнях обо- их сигналов -CS и -WR при изменении только адресов памяти. Использование таких микросхем еще более упрощает схему. В режиме чтения сигнал -CS должен быть постоянно актив- ным (нулевым), а сигнал -WR должен быть постоянно равен единице. Смена читаемой информации будет производиться только сменой адресов памяти. Для чтения информации из памяти порциями по 8 разрядов надо применить четыре 8-разрядных однонаправленных буфера (типа АП5). Каждый из них будет открываться своим стробом чтения и выдавать на общую 8-разрядную шину данных по 8 разрядов читаемой из памяти информации. Таким образом, на чтение 32 разрядов из одного адреса памяти потребуется четыре цикла чтения из логического анализатора. Смена адреса памяти должна происходить после последнего из этих четырех циклов чтения. То есть для чтения всего объема памяти потребуется 16384 циклов чтения по 8 разрядов из логического анализатора. Помимо буфера чтения необходимо применить также вход- ной 32-разрядный буфер, который будет пропускать входные (регистрируемые) сигналы в память в режиме регистрации и бу- дет закрываться после окончания регистрации. Назначение это- го буфера состоит в том, чтобы не выдавать на входные линии логического анализатора читаемую из памяти по двунаправлен- ной шине данных информацию. Этот буфер также можно по- строить на микросхемах однонаправленных буферов типа АП5. В результате схема памяти логического анализатора будет иметь вид, показанный на рис. 8.16. Объединение четырех микросхем памяти производится стандартным образом: объединяются одноименные разряды ад- реса, сигналы -CS и -WR всех микросхем. На входы -CS подает- ся сигнал, равный нулю при отсутствии регистрации (нулевой
334 Глава 8 сигнал Per.) и равный инверсному тактовому сигналу при реги- страции (то есть отрицательному импульсу на каждый адрес памяти). Минимальная длительность импульса -WR равна в ре- жиме записи половине периода тактового сигнала с частотой 10 МГц, то есть 50 нс, поэтому память должна успевать за это время записать информацию. На входы -WR подается сигнал -Per., равный нулю при регистрации и единице при отсутствии регистрации. Если память может записывать информацию при постоянных нулевых сигналах -CS и -WR, то на вход -CS можно постоянно подать нулевой уровень. 1 0 1 2 3 4 5 6 7 EZ1 0 1 2 3 4 5 6 2_ Ш. 1L 12 Ц. И. 15. о 1 2 3 4 5 6 7 BF г EZ1 L EZ2 0 1 2 3 4 5 6 7 BF rEZl Ь F.Z7 ЕТЯ ПИ {0 1 2 3 4 5 6 7 BF Чт.4(Чт.)-и- Г ВЦ Читаемые данные Адрес памяти Такт 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 1 2 5 Л 2 J8 _Ь 2 А Л Л 1 2 д 2 2 А Л 2 2 1 А Л Л 2 Л 32 22 2А 1KB {о 11 12 3 14 5 6 7 -"EZ1 iEZ2 25 26 0 1 2 3 4 5 6 7 -"EZ1 "EZ2 BF BF BF Входные сигналы 1 ГСВ Iffil 1 Рис. 8.16. Схема памяти логического анализатора.
Примеры разработки цифровых устройств 335 Четыре микросхемы АП5 входного буфера (справа по ри- сунку) управляются сигналом -Per., то есть они открываются на все время регистрации и закрываются, когда регистрации нет. Четыре микросхемы АП5 буфера чтения открываются на чтение (выдают 8-разрядные читаемые данные) каждая свои стробом чтения: -Чт.1 ... -Чт.4. При этом сигнал -Чт.4 (его зад- ний фронт) используется для переключения счетчиков адреса памяти при чтении (см. сигнал -Чт. на рис. 8.13). Для чтения информации из одного адреса памяти надо последовательно по- дать сигналы -Чт.1 ... -Чт.4, после чего адрес переключится на следующий. В качестве синхролиний для запуска анализатора (см. рис. 8.15) используются восемь разрядов данных памяти. В ре- жиме регистрации на них приходят 8 входных сигналов логиче- ского анализатора. Таким образом, схема логического анализатора спроектиро- вана полностью. Сформулируем теперь порядок управления этой схемой. Управлять ей может, например, компьютер или контроллер, ко- торый будет отображать, обрабатывать и хранить зарегистриро- ванные последовательности входных сигналов. Перед началом регистрации необходимо записать в счетчи- ки анализатора код N (количество тактов предпусковой регист- рации) по сигналу записи -Зап. (см. рис. 8.13). Необходимо так- же установить 7-разрядный управляющий код, который опреде- лит режим работы анализатора. Три разряда этого кода задают тип тактового сигнала анализатора (см. рис. 8.14). Три разряда выбирают номер входного сигнала (из восьми возможных), фронт на котором будет служить запуском, а последний седь- мой разряд определит полярность этого фронта, синхроперехода (см. рис. 8.15). После этого можно начинать регистрацию по сигналу -Старт (см. рис. 8.13). Анализатор отсчитает «мертвое» время, зафиксирует приход синхроперехода (запуск) и остано- вит регистрацию через нужное количество тактов после запуска. Узнать о том, что регистрация завершилась, можно исходя из анализа сигнала Per. (см. рис. 8.13). Затем можно начинать чте- ние из буферной памяти анализатора по стробам -Чт.1 ... -Чт.4 (см. рис. 8.16). Когда информация из всех 4096 адресов памяти будет прочитана, анализатор снова будет готов к регистрации.
336 Глава 8 8.4. Разработка генератора аналоговых сигналов Цифровые генераторы (или, как их еще называют, синтезаторы) аналоговых сигналов произвольной формы часто используются при отладке различных аналоговых и аналого-цифровых уст- ройств и систем. Они позволяют не только получить сигналы разных стандартных и нестандартных форм, но и обеспечить высокую точность задания амплитуды и частоты сигнала, не достижимые в случае обычных аналоговых генераторов. Циф- ровые генераторы работают обычно под управлением компью- теров или контроллеров, что обуславливает большие удобства пользователя и широкие возможности по заданию разнообраз- ных форм сигналов и по их хранению. Мы будем разрабатывать довольно простой генератор, рас- считанный на звуковой диапазон частот выходного сигнала 20 Гц ... 20 кГц (период от 50 мкс до 50 мс). Генератор должен формировать сигналы произвольной формы с амплитудой, зада- ваемой управляющим кодом. Генератор должен работать в ре- жиме автоматической (периодической) генерации, а также в ре- жиме разовой генерации с остановкой генерации после оконча- ния одного периода выходного сигнала. Управление работой генератора должно быть полностью цифровым. Отметим, что в реальности сигналы сложной формы, как правило, бывают низкочастотными. Они встречаются, напри- мер, при виброиспытаниях, в медицинской технике, в сейсмиче- ской технике и т. д. Высокочастотные сигналы обычно имеют довольно простую форму, например, синусоидальную. Поэтому наш простой генератор, рассчитанный на невысокие частоты, будет, тем не менее, удовлетворять требованиям довольно ши- рокого спектра применений. Разработку генератора мы начнем «с конца», то есть с того выходного сигнала, который он должен формировать. Как уже отмечалось в главе 7 (см. раздел 7.1), выходной сигнал ЦАП Ццап представляет собой ступенчатую функцию, которую можно представить в виде суммы идеального («гладко- го») аналогового сигнала Ubwx и пилообразного сигнала помехи UnoM (рис. 8.17). Сигнал помехи иПом имеет основную частоту, равную час- тоте поступления входных кодов на ЦАП. Для сглаживания ступенек выходного сигнала ЦАП и приближения его к идеаль-
Примеры разработки цифровых устройств 337 ному сигналу Ubwx можно применить простой аналоговый фильтр низкой частоты (ФНЧ), который должен существенно ослаблять сигнал помехи, но не ослаблять полезный выходной сигнал генератора. В примере на рис. 8.17 частота полезного сигнала в 16 раз меньше частоты сигнала помехи, поэтому эта задача фильтрации не слишком сложна. Однако от генератора сигналов произвольной формы может понадобиться синтез вы- ходных сигналов с крутыми фронтами (например, прямоуголь- ных или пилообразных сигналов). В этом случае применение такого выходного фильтра низкой частоты может исказить вы- ходные сигналы, затянув их фронты. Поэтому целесообразно предусмотреть два выхода генератора: один с низкочастотной фильтрацией, а другой без нее. Рис. 8.17. Цифровая генерация аналогового сигнала. Помимо фильтра низкой частоты выходной узел генератора сигналов должен содержать схему задания амплитуды выходно- го сигнала. В случае использования оперативной памяти для хранения кодов выборок выходного сигнала схема задания ам- плитуды может и отсутствовать. При этом в память необходимо заносить коды выборок сигнала с нужной амплитудой. Однако такой подход не слишком удобен, так как он требует пересчета всех кодов выборок для каждой новой амплитуды сигнала вы- бранной формы. Гораздо удобнее сделать так, чтобы в памяти всегда хранились коды выборок сигнала с максимально воз- можной амплитудой, а выходной сигнал с ЦАП ослаблялся управляемым аттенюатором в нужное количество раз.
338 Глава 8 В результате схема выходного узла генератора аналоговых сигналов будет включать в себя еще и управляемый аттенюатор, рассмотренный в разделе 7.1 (рис. 8.18). Рис. 8.18. Схема выходного узла генератора. Аналоговый фильтр низких частот должен иметь коэффици- ент передачи в полосе пропускания, равный единице, и частоту среза, обеспечивающую эффективное подавление сигнал поме- хи. Тип схемы фильтра и его порядок не слишком важны. Для удобства пользователя целесообразно сделать фильтр неинвер- тирующим, чтобы выходные сигналы на обоих выходах генера- тора (Ubmxi и Ubmxi) были одной полярности. Аттенюатор управляется 8-разрядным кодом амплитуды, что обеспечивает коэффициент деления сигнала от 1/256 до 1. Если амплитуда исходного сигнала Пцап равна 10 В, то амплитуда выходного сигнала (Ubuxi и Пвыхз) может быть задана с точностью около 40 мВ. Увеличение разрядности кода амплитуды потребовало бы принятия специальных мер, так как слишком малые анало- говые сигналы сильно искажаются шумами и помехами по це- пям питания. ЦАП необходимо применять умножающий с би- полярным выходом, чтобы обрабатывать как положительные, так и отрицательные выходные сигналы. Теперь переходим к проектированию собственно цифровой части генератора. Как уже отмечалось в разделе 7.1, основной узел генератора должен представлять собой буферную оперативную память с периодическим режимом работы. Причем буфер этот должен быть однонаправленным. Перед началом работы в буфер зано- сится массив кодов выборок синтезируемого сигнала, а во время работы генератора адреса памяти опрашиваются в нужном тем- пе, и выходные коды памяти подаются на ЦАП, формирующий аналоговый сигнал Ицди- Проблема состоит в выборе нужного
Примеры разработки цифровых устройств 339 объема памяти и в способе перебора адресов для обеспечения нужной частоты выходного сигнала. Память может также быть постоянной (ПЗУ), если необходимо формировать одну или не- сколько постоянных форм сигналов. В этом случае операция за- писи в память исключается, но проблема выбора способа пере- бора адресов памяти остается. Существует два основных способа перебора адресов памяти генератора аналоговых сигналов, каждый из которых имеет свои достоинства и недостатки. Первый, простейший способ предусматривает перебор адре- сов памяти генератора с помощью обычного двоичного счетчи- ка. В данном случае опрашиваются все адреса памяти подряд. Изменение частоты аналогового выходного сигнала генератора производится с помощью изменения тактовой частоты этого счетчика, для чего используется тот или иной управляемый де- литель частоты опорного кварцевого генератора (рис. 8.19). Частота выходного сигнала будет определяться при таком ре- шении по формуле: fBbIX = fr/(2nN), где fr — частота задающего кварцевого генератора, N — управляющий код делителя частоты, п — разрядность счетчика (разрядность шины адреса памяти). Код частоты N Рис. 8.19. Опрос памяти с помощью двоичного счетчика. Главное достоинство данного подхода состоит в том, что при изменении частоты выходного сигнала не меняется точ- ность воспроизведения формы выходного сигнала. Ведь точ- ность воспроизведения формы аналогового сигнала зависит в первую очередь от количества выборок, приходящихся на пери- од выходного сигнала, а в данном случае оно постоянно и равно количеству адресов памяти. Например, если память имеет 1К адресов, то выходной сигнал при любой частоте будет зада- ваться с помощью 1024 точек, он всегда будет иметь 1024 сту- пеньки.
340 Глава 8 Однако данное решение имеет и серьезные недостатки. Ос- новной его недостаток состоит в том, что частота сигнала поме- хи в данном случае прямо пропорциональна частоте выходного аналогового сигнала генератора (она больше частоты выходного сигнала во столько раз, сколько адресов имеет память). Напри- мер, при 1К адресов памяти частота сигнала помехи в 1024 раз больше частоты выходного сигнала. И при изменении частоты выходного сигнала в 1 000 раз также в 1 000 раз будет изменяться частота сигнала помехи. Отфильтровать такую помеху перемен- ной частоты чрезвычайно трудно, если не невозможно, так как требуется применение фильтра с частотой среза, изменяемой в очень широких пределах. Другой существенный недостаток данного метода связан с высокими требованиями к быстродействию ЦАП. Например, если максимальная частота выходного аналогового сигнала ге- нератора должна быть 20 кГц, а память имеет 1К адресов, то ЦАП должен успевать работать с частотой более 20 МГц, то есть иметь время установления менее 50 нс. При большей час- тоте выходного сигнала и при большем объеме памяти требова- ния к быстродействию ЦАП будут еще выше. И с такой же ско- ростью должна работать буферная память, то есть требования к быстродействию памяти также велики. Второй возможный способ перебора адресов памяти генера- тора аналоговых сигналов состоит в применении накапливаю- щего сумматора с переменным шагом суммирования (рис. 8.20). Код частоты М Рис. 8.20. Опрос памяти с помощью накапливающего сумматора. В память, как и в предыдущем случае, заносится массив ко- дов выборок периода требуемого сигнала. Но при генерации оп- рашиваются не все адреса памяти подряд, а только адреса с ша- гом, задаваемым входным кодом накапливающего сумматора М (см. раздел 4.2.1). Чем больше этот шаг, тем быстрее будет
Примеры разработки цифровых устройств 341 пройден весь объем памяти и тем больше будет частота выход- ного сигнала генератора. И соответственно, чем меньше шаг, тем больше времени потребуется на опрос всех адресов памяти, тем меньше будет частота выходного сигнала генератора. При изменении шага опроса памяти изменяется и количест- во выборок на период выходного сигнала, что приводит к изме- нению точности воспроизведения формы сигнала. Количество выборок К на период выходного сигнала вычисляется по фор- муле: К = 2П/М, где п — количество разрядов адреса памяти, М — управляющий код накапливающего сумматора. А частота выходного аналогового сигнала определяется формулой: Гвых = fr М /2°, где fr — частота задающего кварцевого генератора. То есть выходная частота прямо пропорциональна управляющему ко- ду М, а не обратно пропорциональна, как в предыдущем случае. Главное достоинство данного подхода состоит в том, что сигнал помехи на выходе всегда имеет одну и ту же частоту, равную частоте задающего кварцевого генератора fr, независи- мо от частоты выходного аналогового сигнала. Поэтому такую помеху легко отфильтровать, никакой перестройки частоты сре- за фильтра не требуется. Другое важное достоинство данного решения состоит в том, что по мере роста частоты выходного сигнала генератор сам пропорционально уменьшает количество выборок на период выходного сигнала, поэтому требования к быстродействию ЦАП, формирующего выходной сигнал, не слишком жесткие. ЦАП может быть в несколько раз более медленным, чем в пре- дыдущем случае, при такой же максимальной выходной часто- те. Или, можно сказать и так, при том же самом ЦАП генератор может выдавать выходные сигналы с гораздо более высокой частотой. Точно так же снижаются и требования к быстродейст- вию памяти. Это приводит к тому, что объем памяти в данном случае может быть гораздо больше, чем в предыдущем. Но ничто не дается даром, поэтому данный метод имеет и су- щественный недостаток. С ростом частоты выходного сигнала его форма будет передаваться все более грубо, ступеньки будут все больше. На рис. 8.21 приведен пример воспроизведения формы синусоидального сигнала, записанного в память объемом 32К X 8 для двух разных шагов наращивания адреса М (количество выбо- рок на период К = 16 и К = 48). Понятно, что точность воспроиз- ведения формы сигнала сильно зависит от кодаМ. Это может
342 Глава 8 привести к тому, что некоторые фрагменты сигналов сложной формы могут быть пропущены. К тому же в случае, когда количе- ство выборок на период выходного сигнала К не равно целому числу, периоды выходного сигнала будут несколько отличаться один от другого. Несколько смягчает этот недостаток уже упоми- навшееся обстоятельство, что в природе сигналы сложной формы обычно низкочастотные, а именно низкочастотные сигналы вос- производятся при данном методе наиболее точно. Рис. 8.21. Опрос памяти с разными шагами (количество выборок на период К = 16иК = 48). Исходя из всех этих соображений, останавливаем свой вы- бор именно на этом, втором методе. Примем для дальнейшего проектирования, что минимальное количество выборок на период выходного сигнала будет равно 32, а максимальное будет равно количеству адресов памяти. Так как от генератора требуется большой диапазон выходных частот (частоты могут различаться в 1000 раз), объем памяти должен быть большим. Если минимальное количество выборок на пе- риод равно 32, то максимальное количество выборок на период потребуется в тысячу раз больше, то есть 32000. Поэтому коли- чество адресов памяти не должно быть меньше 32000. Возьмем память с количеством адресов, равным 32К. Количество разрядов данных памяти, определяющее точ- ность задания величины выборок выходного сигнала, не стоит
Примеры разработки цифровых устройств 343 брать слишком большим. Ведь на формируемый аналоговый сигнал будут накладываться помехи от цифровой части схемы, поэтому чрезмерно точное задание величин выборок выходного сигнала окажется попросту излишним. Поэтому выберем коли- чество разрядов данных памяти равным 8, то есть память будет иметь организацию 32К X 8. Спроектируем накапливающий сумматор для генератора аналоговых сигналов. Как уже отмечалось, частота выходного аналогового сигнала прямо пропорциональна управляющему коду накапливающего сумматора М. Абсолютная погрешность установки частоты со- ставит 0,5/М. Поэтому для малых частот погрешность установки частоты будет максимальной. Например, если коду М = 1 будет соответствовать частота 20 Гц, то следующее разрешенное зна- чение частоты будет равно 40 Гц (при М = 2). Это не слишком удобно, хорошо бы иметь точность установки частоты не ниже хотя бы 10% во всем частотном диапазоне. Возьмем, например, абсолютную погрешность установки частоты 0,5 Гц. Значит, при М = 1 генератор должен выдавать частоту 1 Гц. Такие низ- кие частоты мы можем просто не использовать, зато частота 20 Гц (при М = 20) будет иметь точность установки 2,5%. Раз- решенные значения частот вблизи 20 Гц составят при этом 19 Гц, 20 Гц, 21 Гц. Выберем теперь величину тактовой частоты накапливающе- го сумматора (то есть частоты задающего кварцевого генерато- ра). Максимальная частота выходного сигнала нашего генера- тора должна быть равна 20 кГц, при этом на период выходного сигнала должно приходиться 32 выборки. То есть тактовая частота накапливающего сумматора должна быть не менее 20 кГц *32 = 640 кГц. Выберем с запасом тактовую частоту равной 1 МГц. Максимальная частота выходного аналогового сигнала при 32 выборках на период будет при этом составлять 1 МГц/32 = 31,25 кГц. Количество разрядов накапливающего сумматора должно быть таким, чтобы он обеспечивал весь выбранный частотный диа- пазон. Нетрудно подсчитать, что нам потребуется 20-разрядный накапливающий сумматор (так как 220 = 1048576), то есть при тактовой частоте 1 МГц минимальный период выходного сигна- ла составит 1048576 тактов или чуть более одной секунды, что примерно соответствует частоте выходного сигнала 1 Гц.
344 Глава 8 Если использовать 4-разрядные микросхемы полных сумма- торов (ИМЗ или ИМ6), то для построения 20-разрядного сумма- тора потребуется 5 микросхем сумматоров. Для запоминания выходного кода сумматоров надо будет использовать три мик- росхемы 8-разрядных регистров, причем регистры эти должны быть со входом сброса (например ИР35) для начального сброса накапливающего сумматора. Получившаяся в итоге схема накапливающего сумматора приведена на рис. 8.22. В качестве тактового сигнала в режиме генерации она использует сигнал с кварцевого генератора час- тотой 1 МГц (разрешающий сигнал Ген.), а в режиме записи в память кодов выборок — строб записи в память -Зап. На входы адреса памяти подаются сигналы 15 старших выходных разря- дов накапливающего сумматора, а 5 младших разрядов накап- ливающего сумматора не используются. Код частоты М пода- ется на 15 младших входных разрядов накапливающего сум- матора, а на старшие 5 разрядов поданы нулевые сигналы. В результате при максимальном коде М = 32767 накапливаю- щий сумматор будет переполняться за 32 такта (выходная час- тота 31,25 кГц), а при минимальном коде М = 1 — за 1048576 тактов (выходная частота около 1 Гц). Перед началом записи в память накапливающий сумматор должен быть сброшен в нуль сигналом -Сброс НС. Во время записи в память каждый строб записи -Зап. должен увеличи- вать на единицу адрес памяти, поэтому код частоты М должен быть установлен в данном режиме равным 32 (двоичный код 100000). Условия правильной работы накапливающего сумматора следующие. За период сигнала тактового генератора должны успеть сработать регистр и сумматор. В нашем случае это усло- вие довольно легко выполняется, так как период сигнала так- тового генератора 1 мкс. Но при построении более высокочас- тотных генераторов аналоговых сигналов требуется более вы- сокая тактовая частота, и при этом может уже сказаться нако- пление задержек переноса пяти микросхем сумматоров. При тактовой частоте больше 10 МГц это уже может вызвать большие проблемы. Точно так же за период следования стро- бов записи в памяти -Зап. должны успевать срабатывать ре- гистр и сумматоры. Это условие обычно значительно проще выполнить, чем первое.
Примеры разработки цифровых устройств 345 Рис. 8.22. Накапливающий сумматор генератора аналоговых сигналов. Посмотрим, какой будет частота сигнала помехи, и какой должна быть частота среза выходного аналогового низкочас- тотного фильтра (см. рис. 8.18). При управляющем коде часто- ты М больше или равном 32 каждый тактовый импульс будет вызывать изменение адреса памяти. Поэтому частота помехи будет равна частоте тактового генератора (1 МГц). Это соответ- ствует частоте выходного сигнала, большей 32 Гц. Однако нам надо обеспечить нижнюю частоту выходного аналогового сиг- нала 20 Гц.
346 Глава 8 Если код частоты М будет лежать в пределах от 16 до 31, то адрес памяти будет изменяться не реже одного раза на два такта тактового генератора. Частота помехи будет не менее 500 кГц. То есть при частоте выходного сигнала, большей 16 Гц, частота сигнала помехи будет в пределах от 500 кГц до 1 МГц. Мак- симальная частота выходного аналогового сигнала равна 31,25 кГц. Значит, частота среза фильтра должна быть такой, чтобы сильно ослаблять частоты, большие 500 кГц, но не иска- жать частоты, меньшие 31,25 кГц. Эти частоты различаются в 16 раз, поэтому фильтр построить не слишком сложно. В результате мы получаем, что выбранная схема накапли- вающего сумматора обеспечивает диапазон частот выходного аналогового сигнала от 16 Гц до 31,25 кГц, причем погрешность установки частоты составляет 0,5 Гц во всем частотном диапазо- не. Количество выборок сигнала на период будет изменяться от 32 на верхнем краю частотного диапазона до 32К на нижнем краю частотного диапазона. Это вполне удовлетворяет требова- ниям к генератору, сформулированным в начале данного раздела. Переходим теперь к проектированию схемы управления для генератора аналоговых сигналов. Схема управления генератора должна обеспечивать два ре- жима работы: режим записи в память и режим генерации. При- чем генерация может быть как автоматическая (периодическая), так и разовая. Эти режимы реализуются простой схемой на двух триггерах (рис. 8.23). Ген. Ген. Разр./-3апр. Строб -Сброс ТГ Раз ./-Авт. ТМ2 Ст.Р. -| Рис. 8.23. Схема управления для генератора аналоговых сигналов. Первый (левый на схеме) триггер служит для разрешения или запрещения генерации. По внешнему сигналу Строб (положитель- ный фронт) в него записывается единица для разрешения генера-
Примеры разработки цифровых устройств 347 ции или нуль для запрещения генерации. Выходной сигнал Ген. используется для разрешения тактовых импульсов накапливающе- го сумматора (см. рис. 8.22) и для управления остальной частью схемы. Перед началом работы генератора этот триггер сбрасывает- ся в нуль внешним сигналом начального сброса -Сброс. Второй (правый на схеме) триггер служит для организации режима разового запуска генератора. При запрете генерации этот триггер сброшен в нуль сигналом Ген. (единица на инверсном выходе). При разрешении генерации этот триггер срабатывает по отрицательному фронту на старшем разряде накапливающего сумматора (сигнал Ст.Р. со схемы на рис. 8.22), то есть по пере- полнению накапливающего сумматора, возникающему после окончания одного периода аналогового сигнала. Если внешний управляющий сигнал Раз.ААвт. установлен в нуль (автоматиче- ский запуск), то ничего не происходит, триггер остается сбро- шенным. Если же внешний сигнал Раз./-Авт. установлен в едини- цу (разовый запуск), то после окончания одного периода выход- ного аналогового сигнала генератора второй триггер перебросит- ся в единицу (нуль на инверсном выходе) и сбросит тем самым первый триггер, запретив генерацию. Узнать об этом можно, ана- лизируя флаг генерации — сигнал Ген. Для нового разрешения генерации надо снова записать единицу в первый триггер. Наконец, последний узел генератора аналоговых сигна- лов — это память с ЦАП. Прежде всего надо обеспечить, чтобы ЦАП, формирующий выборки аналогового сигнала по кодам из памяти, выдавал как положительные, так и отрицательные сигналы, то есть был би- полярным. Это существенно повысит универсальность генера- тора. ЦАП должен формировать выходное напряжение (а не вы- ходной ток), что позволит более просто обрабатывать выходной сигнал выходным узлом (см. рис. 8.18). Требования к быстро- действию ЦАП в нашем случае невелики: коды всегда поступа- ют на него с периодом в 1 мкс, значит, за это время ЦАП дол- жен успеть установить свое выходное напряжение. Таких ЦАП существует довольно много. Опорное напряжение ЦАП удобно выбирать равным 10 В, что обеспечит размах выходного сигнала от —10 В до +10 В. При этом шаг изменения выходного сигнала (минимально возмож- ная высота ступеньки) составит 20 В / 256, то есть около 80 мВ. Но это только для сигнала максимальной амплитуды 10 В. Если
348 Глава 8 же требуется генерация сигнала с амплитудой 1 В (ослабление выходным аттенюатором в 10 раз), то шаг изменения выходного сигнала будет около 8 мВ. Входной код ЦАП (то есть выходной код буферной памяти) должен фиксироваться в параллельном регистре, чтобы все разря- ды этого кода подавались на входы ЦАП одновременно. В момент отсутствия генерации на выходе ЦАП должно быть нулевое на- пряжение, поэтому данный регистр должен иметь вход сброса, на который подается сигнал Ген. Однако надо учитывать, что при би- полярном выходе ЦАП нулевому уровню выходного сигнала соот- ветствует не нулевой код 00000000, а код 10000000 (с единицей в старшем разряде). Поэтому регистр должен сбрасываться не в нуль, а именно в состояние 10000000. При этом просто поставить допол- нительный инвертор на старший разряд кода нельзя, так как он внесет задержку, и старший разряд кода будет устанавливаться позже остальных разрядов, что может вызвать недопустимо боль- шие выбросы выходного напряжения. Поэтому этот входной ре- гистр ЦАП должен иметь как прямые, так и инверсные выходы (например, ТМ8), причем все разряды кроме старшего надо брать с прямых выходов регистра, а старший разряд — с инверсного выхо- да. Это обеспечит одновременное изменение всех разрядов кода. Для компенсации инверсии старшего разряда надо дополнительно проинвертировать сигнал старшего разряда на входе регистра. Память выборок сигнала целесообразно использовать мно- горазрядную с совмещенной входной и выходной шинами дан- ных, что позволит упростить схему. Микросхемы с организаци- ей 32К X 8 выпускаются многими фирмами. Память лучше брать нетакгируемую, чтобы в режиме чтения (при генерации) можно было постоянно подавать на вход -CS сигнал логического нуля. Быстродействие памяти не слишком критично, так как перебор адресов происходит довольно медленно. За период тактового сигнала (1 мкс) в режиме чтения должен успеть сработать ре- гистр накапливающего сумматора, и память должна успеть вы- дать читаемый код (с задержкой выборки адреса). Совмещенная шина входных/выходных данных памяти требует применения однонаправленного входного буфера (например, АП5), через который в режиме записи на память будут подаваться запи- сываемые в память коды выборок генерируемого сигнала. Буфер должен открываться тем же сигналом, который подается на вход -WR памяти. Во время генерации буфер должен быть закрыт.
Примеры разработки цифровых устройств 349 В результате схема буферной памяти с ЦАП для генератора аналоговых сигналов будет выглядеть так, как показано на рис. 8.24. Рис. 8.24. Память и ЦАП генератора аналоговых сигналов. Перед началом работы в память должны быть записаны ко- ды выборок (8-разрядная шина Зап.дан.) по стробу -Зап. Данные должны выставляться до начала строба и сниматься после его окончания. Во время строба записи -Зап. память переходит в режим записи (сигнал -WR), а буфер открывается (сигналы -EZ1 и -EZ2). За счет задержки буфера записываемые данные снима- ются со входов данных памяти позже, чем заканчивается сигнал -Зап. Поэтому данные записываются в память. По окончании сигнала -Зап. происходит смена адреса памяти (см. рис. 8.22). Всего должно быть проведено 32К циклов записи для полного заполнения памяти. Когда начинается генерация (сигнал Ген.), адреса памяти перебираются накапливающим сумматором, а читаемая из них
350 Глава 8 информация записывается по сигналу Такт (см. рис. 8.22) в 8-разрядный регистр (две микросхемы ТМ8), а затем поступает на входы ЦАП. В результате выдача выборок выходного сигна- ла (11цап) задерживается на один такт относительно момента чтения из памяти, но эта задержка, как правило, не имеет ника- кого значения. После окончания генерации регистр сбрасывает- ся в состояние 10000000, соответствующее нулю выходного сиг- нала Пцап- Так как по сигналу начального сброса -Сброс (см. рис. 8.23) генерация запрещается, на выходе генератора в этот момент также будет нулевое напряжение. Таким образом, схема генератора аналоговых сигналов пол- ностью спроектирована. Сформулируем теперь последовательность действий, кото- рые надо предпринимать для управления работой генератора. После включения питания надо подать сигнал начального сброса -Сброс (см. рис. 8.23), который запретит генерацию и обеспечит нулевой уровень выходного напряжения генератора. Затем необходимо записать в память массив кодов выборок сигнала требуемой формы. Для этого код частоты надо задать равным 32 и сбросить накапливающий сумматор в нуль сигна- лом -СбросНС. После этого надо производить последователь- ную запись всех 32К кодов по шине записываемых данных Зап.дан., сопровождая их стробами записи -Зап. После окончания записи в память можно запускать генера- цию, но перед началом генерации надо сбросить накапливаю- щий сумматор сигналом -СбросНС, задать режим запуска гене- рации (разовый или автоматический), а также установить код нужной выходной частоты (см. рис. 8.22 и 8.23). Кроме того, надо задать код амплитуды выходного сигнал (см. рис. 8.18). После этого надо подать положительный сигнал Разр./-3апр. и сопроводить его стробом (см. рис. 8.23). Если надо остановить автоматическую генерацию, то надо установить нулевой сигнал Разр./-3апр. и сопроводить его стробом. Если же генерация ра- зовая, то узнать о том, продолжается она или уже закончилась, можно на основании анализа сигнала Ген. (см. рис. 8.23). В заключение отметим, что управление разработанным ге- нератором аналоговых сигналов лучше возложить на компьютер или управляющий интеллектуальный контроллер, что сущест- венно упростит работу с ним.
ПРИЛОЖЕНИЕ МИКРОСХЕМЫ, ПАРАМЕТРЫ, СИГНАЛЫ Таблица Ш. Основные параметры цифровых микросхем Обозначение Другое обозначение Параметр Cl Си Допустимая емкость нагрузки Fm Fmakc Максимальная частота переключения триггера Icc In Ток потребления II Ibx Входной ток Io Ibmx Выходной ток IlL I°bx Входной ток низкого уровня IiH I'bx Входной ток высокого уровня IoL 1°вых Выходной ток низкого уровня Ioh 1'вых Выходной ток высокого уровня tLH Длительность фронта сигнала при переходе из низкого уровня в высокий tHL t10 Длительность фронта сигнала при переходе из высокого уровня в низкий tPLH t013 Время задержки при переходе из низкого уровня в высокий tPHL t,03 Время задержки при переходе из высокого уровня в низкий tpZL A Время задержки при переходе из третьего состояния в низкий уровень tpZL ?'з Время задержки при переходе из третьего состояния в высокий уровень Ucc Un Напряжение питания UlL U°bx Входное напряжение низкого уровня Uih U'bx Входное напряжение высокого уровня Uol U°bmx Выходное напряжение низкого уровня Uoh U'bmx Выходное напряжение высокого уровня
352 Приложение Таблица П2. Функциональное назначение цифровых микросхем стандартных серий Обозна- чение Аналог SN74 Функция ATI 121 Одновибратор без перезапуска АГЗ 123 Два одновибратора с перезапуском АГ4 221 Два одновибратора без перезапуска АПЗ 240 Два 4-разрядных буфера с ЗС и инверсией АП4 241 Два 4-разрядных буфера с ЗС АП5 244 Два 4-разрядных буфера с ЗС АП6 245 8-разрядный двунаправленный буфер с ЗС АП9 640 8-разрядный двунаправленный буфер с ЗС АП10 640 8-разрядный двунаправленный буфер с ЗС и инверсией АП14 465 8-разрядный буфер с ЗС АП15 466 8-разрядный буфер с ЗС и инверсией АП16 643 8-разрядный буфер с ЗС АП20 646 8-разрядный двунаправленный буфер с регистром и с ЗС ВА1 226 Схема сопряжения с магистралью ВЖ1 630 16-разрядная схема контроля по коду Хемминга ГТ1 124 Два генератора, управляемых напряжением ИВ1 148 Приоритетный шифратор 8-3 ИВЗ 147 Приоритетный шифратор 9-4 ИД1 14 Двоично-десятичный дешифратор с высоковольтным выходом идз 154 Дешифратор 4-16 ИД4 155 Сдвоенный дешифратор 2-4 ИД5 156 Два дешифратора 2-4 с ОК ИД6 42 Двоично-десятичный дешифратор 3-8 ИД7 138 Дешифратор 3-8 идю 145 Двоично-десятичный дешифратор 3-8 с большим выходным током ИД14 139 Два дешифратора 2-4 ИД 18 247 Дешифратор двоично-десятичного кода в код семисегментного индикатора ИЕ2 90 4-разрядный двоично-десятичный счетчик ИЕ4 92 Счетчик-делитель на 12 ИЕ5 93 4-разрядный двоичный счетчик ИЕ6 192 4-разрядный реверсивный двоично-десятичный счетчик
Приложение 353 Таблица П2. Продолжение Обозна- чение Аналог SN74 Функция ИЕ7 193 4-разрядный реверсивный двоичный счетчик ИЕ8 97 Делитель частоты с переменным коэффициентом деления ИЕ9 160 4-разрядный синхронный двоично-десятичный счетчик с асинхронным сбросом НЕЮ 161 4-разрядный синхронный двоичный счетчик с асинхрон- ным сбросом ИЕ11 162 4-разрядный двоично-десятичный счетчик с синхронным сбросом ИЕ12 190 4-разрядный синхронный реверсивный десятичный счет- чик ИЕ13 191 4-разрядный синхронный реверсивный двоичный счетчик ИЕ14 196 Счетчик-делитель на 2 и на 5 ИЕ15 197 4-разрядный асинхронный счетчик с предварительной ус- тановкой ИЕ16 168 4-разрядный синхронный двоично-десятичный счетчик с параллельной загрузкой ИЕ17 169 4-разрядный синхронный двоичный счетчик с параллель- ной загрузкой ИЕ18 163 4-разрядный двоичный счетчик с синхронным сбросом ИЕ19 393 Сдвоенный 4-разрядный двоичный счетчик ИЕ20 390 Два двоично-десятичных счетчика со сбросом ИМ1 80 1-разрядный полный сумматор ИМ2 82 2-разрядный полный сумматор ИМЗ 83 4-разрядный полный сумматор ИМ5 183 4-разрядный полный сумматор с ускоренным переносом ИМб 283 4-разрядный полный сумматор с ускоренным переносом ИМ7 385 4-разрядный сумматор-вычитатель ИП2 180 8-разрядная схема контроля четности ИПЗ 181 АЛУ для двух 4-разрядных слов ИП4 182 4-разрядная схема ускоренного переноса ИП5 280 9-разрядная схема контроля четности ИП6 242 Двунаправленный 4-разрядный буфер с инверсией ИП7 243 Двунаправленный 4-разрядный буфер ИП8 261 Параллельный умножитель 2x4 разряда ИП9 384 8-разрядный последовательно-параллельный умножитель ИР1 95 4-разрядный двунаправленный сдвиговый регистр 12 - 4589
354 Приложение Таблица П2. Продолжение Обозна- чение Аналог SN74 Функция ИР8 164 8-разрядный сдвиговый регистр с последовательным вхо- дом и параллельными выходами ИР9 165 8-разрядный сдвиговый регистр с параллельными входами и последовательным выходом ИР10 166 8-разрядный сдвиговый регистр ИР11 194 4-разрядный 2-направленный сдвиговый регистр ИР12 195 4-разрядный 2-направленный сдвиговый регистр ИР13 198 8-разрядный сдвиговый регистр ИР15 173 4-разрядный регистр с ЗС ИР16 295 4-разрядный реверсивный сдвиговый регистр с выходами ЗС ИР22 373 8-разрядный регистр-защелка с ЗС ИР23 374 8-разрядный регистр с ЗС ИР24 299 8-разрядный двунаправленный реверсивный сдвиговый ре- гистр с ЗС ИР25 395 4-разрядный сдвиговый регистр с ЗС ИР26 670 Регистровый файл 4 х 4 с ЗС ИР27 377 8-разрядный регистр с разрешением записи ИР29 323 8-разрядный сдвиговый регистр с ЗС ИРЗО 259 8-разрядный регистр хранения с адресацией ИР32 170 Регистровый файл 4 х 4 с ОК ИРЗЗ 573 8-разрядный буферный регистр ИР34 873 Два 4-разрядных регистра с ЗС ИР35 273 8-разрядный регистр со сбросом ИР37 574 8-разрядный регистр с ЗС ИР38 874 Два 4-разрядных регистра с ЗС ИР40 533 8-разрядный регистр-защелка с ЗС и инверсией ИР41 534 8-разрядный регистр с ЗС и инверсией КП1 150 16-канальный мультиплексор КП2 153 Сдвоенный 4-канальный мультиплексор КП5 152 8-канальный мультиплексор КП7 151 8-канальный мультиплексор со стробированием КПП 257 4-разрядный 2-канальный мультиплексор с ЗС КП12 253 2-разрядный 4-канальный мультиплексор
Приложение 355 Таблица П2. Продолжение Обозна- чение Аналог SN74 Функция КП13 298 4-разрядный 2-канальный мультиплексор со стробирова- нием КП14 258 4-разрядный 2-канальный мультиплексор с ЗС с инверсией КП15 251 8-канальный мультиплексор с ЗС КП16 157 4-разрядный 2-канальный мультиплексор КП17 353 2-разрядный 4-канальный мультиплексор с ЗС и инверсией КП18 158 4-разрядный 2-канальный мультиплексор с инверсией КП19 352 2-разрядный 4-канальный мультиплексор с инверсией ЛА1 20 Два логических элемента 4И-НЕ ЛА2 30 Логический элемент 8И-НЕ ЛАЗ 00 Четыре логических элемента 2И-НЕ ЛА4 10 Три логических элемента ЗИ-НЕ ЛА6 40 Два логических элемента 4И-НЕ с повышенным выходным током ЛА7 22 Два логических элемента 4И-НЕ с ОК и повышенным вы- ходным током ЛА8 01 Четыре логических элемента 2И-НЕ с ОК ЛА9 03 Четыре логических элемента 2И-НЕ с ОК ЛАЮ 12 Три логических элемента ЗИ-НЕ с ОК ЛАП 26 Четыре логических элемента 2И-НЕ с ОК и повышенным выходным напряжением ЛА12 37 Четыре логических элемента 2И-НЕ с повышенным выход- ным током ЛА13 38 Четыре логических элемента 2И-НЕ с ОК и повышенным выходным током ЛАЮ 140 Два логических элемента 4И-НЕ для работы на линию 50 Ом ЛАЮ 134 Логический элемент 12И-НЕ с разрешением ЛА21 1000 Четыре логических элемента 2И-НЕ с повышенным выход- ным током ЛА22 1020 Два логических элемента 4И-НЕ с повышенным выходным током ЛА23 1003 Четыре логических элемента 2И-НЕ с ОК и повышенным выходным током ЛА24 1010 Три логических элемента ЗИ-НЕ с повышенным выходным током 12*
356 Приложение Таблица П2. Продолжение Обозна- чение Аналог SN74 Функция ЛД1 60 Два 4-входовых расширителя по ИЛИ ЛЕ1 02 Четыре логических элемента 2ИЛИ-НЕ ЛЕ2 23 Два логических элемента 4ИЛИ-НЕ со стробированием ЛЕЗ 25 Два логических элемента 4ИЛИ-НЕ со стробированием ЛЕ4 27 Три логических элемента ЗИЛИ-НЕ ЛЕ5 28 Четыре логических элемента 2ИЛИ-НЕ с повышенным вы- ходным током ЛЕ6 128 Четыре логических элемента 2ИЛИ-НЕ с повышенным вы- ходным током ЛЕ7 260 Два логических элемента 5ИЛИ-НЕ ЛИ1 08 Четыре логических элемента 2И ЛИ2 09 Четыре логических элемента 2И с ОК ЛИЗ 11 Три логических элемента ЗИ ЛИ4 15 Три логических элемента ЗИ с ОК ЛИ6 21 Два логических элемента 4И ЛЛ1 32 Четыре логических элемента 2ИЛИ ЛЛЗ 136 Четыре двухвходовых логических элемента Исключающее ИЛИ с ОК ЛН1 04 Шесть инверторов ЛН2 05 Шесть инверторов с ОК лнз 06 Шесть инверторов с ОК н повышенным выходным напря- жением ЛН4 07 Шесть буферных элементов с ОК ЛН5 16 Шесть инверторов с ОК и повышенным выходным напря- жением ЛН6 366 Шесть инверторов с ЗС и с управлением ЛП4 17 Шесть буферных элементов с ОК и повышенным выход- ным напряжением ЛП5 86 Четыре двухвходовых логических элемента Исключающее ИЛИ ЛП8 125 Четыре буферных элемента с ЗС и раздельным управле- нием ЛП9 07 Шесть буферных элементов с ОК и повышенным выход- ным напряжением ЛП10 365 Шесть буферных элементов с ЗС ЛП11 367 Шесть буферных элементов с ЗС ЛП12 136 Четыре двухвходовых логических элемента Исключающее ИЛИ с ОК
Приложение 357 Таблица П2. Продолжение Обозна- чение Аналог SN74 Функция ЛП16 1034 Шесть буферов с повышенным выходным током ЛП17 1035 Шесть буферов с ОК и повышенным выходным током ЛР1 50 Два элемента 2-2И-2ИЛИ-НЕ ЛРЗ 53 Элемент 2-2-2-ЗИ-4ИЛИ-НЕ ЛР4 55 Элемент 4-4И-2ИЛИ-НЕ ЛР9 64 Элемент 2-4-2-ЗИ-ИЛИ-НЕ ЛР10 65 Элемент 2-4-2-ЗИ-ИЛИ-НЕ с ОК ЛР11 51 Элементы 2-2И-2ИЛИ-НЕ н 2-ЗИ-2ИЛИ-НЕ ЛР13 54 Элемент 3-2-2-3 И-4ИЛИ-НЕ ПР6 184 Преобразователь двоично-десятичного кода в двоичный ПР7 185 Преобразователь двоичного кода в двоично-десятичный РП1 170 Регистровое ЗУ 4 х 4 РПЗ ' 172 Регистровое ЗУ 8 х 2 с ОК РУ1 81 ОЗУ с организацией 4x4 РУ2 89 ОЗУ с организацией 16x4 РУЗ 84 ОЗУ 4 х 4 с дополнительными входами записи РУ5 130 ОЗУ с организацией 256 х 1 РУ9 289 ОЗУ с организацией 16x4 РУ10 225 ОЗУ с организацией 16x4 СШ 85 4-разрядный компаратор кодов ТВ1 72 JK-тригтер с элементом ЗИ на входе ТВ6 107 Два JK-триггера ТВ9 112 Два JK-триггера ТВ10 113 Два JK-триггера ТВ11 114 Два JK-триггера ТВ15 109 Два JK-триггера ТЛ1 13 Два триггера Шмитта с инверсией и элементом 4И на входе ТЛ2 14 Шесть триггеров Шмитта с инверсией ТЛЗ 132 Четыре триггера Шмитта с инверсией и элементом 2И на входе ТМ2 74 Два D-триггера с прямыми и инверсными выходами ТМ5 77 Четыре D-триггера типа «защелка» ТМ7 75 Четыре D-триггера типа «защелка» с прямыми н инверс- ными выходами ТМ8 175 Четыре D-триггера с прямыми н инверсными выходами ТМ9 174 Шесть D-триггеров с общим синхровходом ТР2 279 Два DS-триггера
358 Приложение Таблица ПЗ. Типы микросхем семейства SN74 Номер SN74 Обозначе- ние Номер SN74 Обозначе- ние Номер SN74 Обозначе- ние 00 ЛАЗ 51 ЛРП 130 РУ5 01 ЛА8 53 ЛРЗ 132 ТЛЗ 02 ЛЕ1 54 ЛР13 134 ЛАЮ 03 ЛА9 55 ЛР4 136 ЛЛЗ 04 ЛН1 60 ЛД1 136 ЛП12 05 ЛН2 64 ЛР9 138 ИД7 06 ЛНЗ 65 ЛР10 139 ИД14 07 ЛН4 72 ТВ1 140 ЛАЮ 07 ЛП9 74 ТМ2 141 ИД1 08 ЛИ1 75 ТМ7 145 ИД 10 09 ЛИ2 77 ТМ5 147 ивз 10 ЛА4 80 ИМ1 148 ИВ1 11 ЛИЗ 81 РУ1 150 КП1 12 ЛАЮ 82 ИМ2 151 КП7 13 ТЛ1 83 ИМЗ 152 КП5 14 ТЛ4 84 РУЗ 153 КП2 15 ЛИ4 85 СП1 154 идз 16 ЛН5 86 ЛП5 155 ИД4 17 ЛП4 89 РУ2 156 ИД5 20 ЛА1 90 ИЕ2 157 КП16 21 ЛИ6 92 ИЕ4 158 КП18 22 ЛА7 93 ИЕ5 160 ИЕ9 23 ЛЕ2 95 ИР1 161 ИЕ10 25 ЛЕЗ 97 ИЕ8 162 ИЕН 26 ЛАП 107 ТВ6 163 ИЕ18 27 ЛЕ4 109 ТВ15 164 ИР8 28 ЛЕ5 112 ТВ9 165 ИР9 30 ЛА2 113 ТВ10 166 ИР10 32 ЛЛ1 114 ТВ11 168 ИЕ16 37 ЛА12 121 ATI 169 ИЕ17 38 ЛА13 123 АГЗ 170 ИР32 40 ЛА6 124 ГП 170 РП1 42 ИД6 125 ЛП8 172 РПЗ 50 ЛР1 128 ЛЕ6 173 ИР15
Приложение 359 Таблица ПЗ. Продолжение Номер SN74 Обозначе- ние Номер SN74 Обозначе- ние Номер SN74 Обозначе- ние 174 ТМ9 245 АП6 384 ИП9 175 ТМ8 247 ИД 18 385 ИМ7 180 ИП2 251 КП15 390 ИЕ20 181 ИПЗ 253 КП12 393 ИЕ19 182 ИП4 257 КПП 395 ИР25 183 ИМ5 258 КП14 465 АП14 184 ПР6 259 ИРЗО 466 АП15 185 ПР7 260 ЛЕ7 533 ИР40 190 ИЕ12 261 ИП8 534 ИР41 191 ИЕ13 273 ИР35 573 ИРЗЗ 192 ИЕ6 279 ТР2 574 ИР37 193 ИЕ7 280 ИП5 630 ВЖ1 194 ИР11 283 ИМ6 639 АП9 195 ИР12 289 РУ9 640 АЛЮ 196 ИЕ14 295 ИР16 643 АП16 197 ИЕ15 298 КП13 646 АП20 198 ИР13 299 ИР24 670 ИР26 221 АГ4 323 ИР29 873 ИР34 225 РУ10 352 КП19 874 ИР38 226 ВА1 353 КП17 1000 ЛА21 240 АПЗ 365 ЛП10 1003 ЛА23 241 АП4 366 ЛН6 1010 ЛА24 242 ИП6 367 ЛП11 1020 ЛА22 243 ИП7 373 ИР22 1034 ЛП16 244 АП5 374 ИР23 1035 ЛП17 377 ИР27
360 Приложение Таблица П4. Соответствие зарубежных и отечественных серий цифровых микросхем Серии SN74 Отечественные серии 74 ... J КМ155 74... N К155 74АС ... N КР1554 74ALS ... N КР1533 74F ... N КР1531 74Н... N К131 74L... N К134 74LS ... J КМ555 74LS ... N К555 74S ... J КМ531 74S ... N КР531 Таблица П5. Обозначения сигналов и микросхем Обозначе- ние Название Назначение & And Элемент И =1 Exclusive Or Элемент Исключающее ИЛИ +1 — Вход счета на увеличение -1 — Вход счета на уменьшение <—> — Двунаправленная передача <—> — Двунаправленный сдвиг < — Вход расширения сумматора «меньше» <0 — Перенос (заем) счетчика при инверсном счете (на уменьшение) > — Вход расширения сумматора «больше» >9 — Перенос 4-разрядного двоично-десятичного счетчика при прямом счете > 15 — Перенос 4-разрядного двоичного счетчика при прямом счете = — Вход расширения сумматора «равно» 0,1,2,3,... — Номера входных или выходных разрядов кода 0V — Общий вывод
Приложение 361 Таблица П5. Продолжение Обозначе- ние Название Назначение 1 От Элемент ИЛИ 1,2,4,8... — Входы/выходы разрядов кода А Address Адресные разряды АО, А1,„. — Разряды входного/выходного кода А А=В Parity Вход или выход равенства кодов А и В А>В, А<В — Входы или выходы сравнения кодов А и В А, В, С,... — Входы и выходы различного назначения ADC Analog-to-Digital Converter Аналого-цифровой преобразователь, АЦП ALU Arithmetic Logic Unit Арифметическо-логическое устройство В0,В1,... .— Разряды входного/выходного кода В BF Buffer Буфер BR Borro Заем С Clock Тактовый сигнал (строб), сигнал разрешения С Carr Вход переноса С Capacitor Подключение внешнего конденсатора CD Coder Шифратор СЕ Clock Enable Разрешение тактового сигнала СЕ Chip Enable Разрешение работы микросхемы СЕР Count Enable Parallel Вход параллельного наращивания разрядно- сти счетчиков СЕТ Count Enable Trickle Вход наращивания разрядности счетчиков («трюковый») CLK Clock Тактовый вход CLR Clear Очистка, сброс CPU Central Processor Unit Центральный процессор CR Can Перенос CRU Carry lock ahead Unit Схема ускоренного переноса СТ Counter Счетчик СТЮ 2/10 Counter Двоично-десятичный счетчик СТ2 Binary Counter Двоичный счетчик СТ2/10 2/10 Counter Двоично-десятичный счетчик
362 Приложение Таблица П5. Продолжение Обозначе- ние Название Назначение CS Chip Select Выбор микросхемы D Data Разряды данных, данные DAC Digital-to-Analog Converter Цифро-аналоговый преобразователь, ЦАП DC Decoder Дешифратор DI Data Input Входные данные DIO Data Input/Output Входные/выходные данные DL Data Left Вход данных для сдвига влево DO Data Output Выходные данные DP Data Parallel Параллельные данные DR Data Right Вход данных для сдвига вправо DS Data Serial Последовательные данные D/U Down/Up Переключение направления счета счетчиков E Enable Разрешение EC Enable Count Разрешение счета ECR Enable Can Разрешение переноса ECT Enable Count Разрешение счета El Enable Input Разрешение входа EIO Enable Input/Output Разрешение входа и выхода EO Enable Output Разрешение выхода EP Enable P Разрешение переноса EWR Enable Write Разрешение записи EZ Enable Z-state Разрешение третьего состояния G Generator Генератор G1 Generator Одновибратор I Input Вход I/O Input/Output Вход/Выход J — Вход записи нуля в JK-триггере К — Вход записи единицы в JK-триггере L Load Загрузка, запись LOAD Load Загрузка, запись LSB Least Significant Bit Младший значащий разряд
Приложение 363 Таблица П5. Продолжение Обозначе- ние Название Назначение М2 — Схема контроля четности MS Multiplexer Мультиплексор MSB Most Significant Bit Старший значащий разряд MUX Multiplexer Мультиплексор О Output Выход ОЕ Output Enable Разрешение выхода Р — Выход переноса РЕ Parallel Enable Разрешение параллельной загрузки PROM Programmable ROM Программируемая постоянная память P/S Parallel/Serial Переключение параллельный/последователь- ный режим Q Quit Выход R Reset Сброс (установка в нуль) R Resistor Подключение внешнего резистора RAM Random Access Memory Оперативная память, ОЗУ RC Resistor/Capacitor Подключение внешнего резистора и конден- сатора RD Read Чтение RE Read Enable Разрешение чтения RG Register Регистр ROM Read Only Memory Постоянная память, ПЗУ R/W Read/Write Чтение/Запись S Set Установка в единицу S Strobe Стробирующий сигнал SO, SI,... Входы установки режима SO, SI,... Sum Разряды выходного кода суммы SE Set Enable Разрешение установки SEMO Set Mode Установка режима SL Shift Left Сдвиг влево SM Summater Сумматор SR Synchronous Reset Синхронный сброс
364 Приложение Таблица П5. Продолжение Обозначе- ние Название Назначение SR Shift Right Сдвиг вправо SUM Sumntater Сумматор SYN Synchro Синхросигнал Т Trigger Триггер ТС Terminal Count Окончание счета U/D Up/Down Переключение направления счета счетчиков Ucc — Напряжение питания V — Входы управления работой WE Write Enable Разрешение записи WR Write Запись X/Y — Преобразователь кодов Z Z-state Третье состояние выхода
СПИСОК ЛИТЕРАТУРЫ 1. Титце У., Шенк К. Полупроводниковая схемотехника: Справочное руководство. Пер. с нем. — М.: Мир, 1982. — 512 с. 2. Гнатек Ю. Р. Справочник по цифро-аналоговым и аналого-цифро- вым преобразователям: Пер. с англ. / Под ред. Ю. А. Рюжина. — М.: Радио и связь, 1982. — 420 с.: ил. 3. Горошков Б. И. Радиоэлектронные устройства: Справочник. — М.: Радио и связь, 1984. — 400 с.: ил. 4. Применение интегральных микросхем в электронной вычисли- тельной технике: Справочник / Р. В. Данилов, С. А. Ельцова, Ю. П. Иванов и др.; Под ред. Б. Н. Файзулаева, Б. В. Тарабри- на. — М.: Радио и связь, 1986. — 384 с.: ил. 5. Шило В. Л. Популярные цифровые микросхемы: Справочник. — М.: Радио и связь, 1987. — 352 с. 6. Полупроводниковые БИС запоминающих устройств: Справочник / Под ред. А. Ю. Гордонова и Ю. Н. Дьякова. — М.: Радио и связь, 1987. — 360 с.: ил. 7. Бородин С. М., Новиков Ю. В. Модуль логического анализатора для контрольно-измерительных систем на базе микроЭВМ И Мик- ропроцессорные средства и системы. — 1987. — № 1. —с. 67—68. 8. Уильямс Г. Б. Отладка микропроцессорных систем: Пер. с англ. — М.: Энергоатомиздат, 1988 —253 с.: ил. 9. Бородин С. М., Новиков Ю. В., Поддубный А. П., ТомчукА. А. Средства отображения информации для микропроцессорных сис- тем измерения, контроля и управления // Микропроцессорные средства и системы. — 1988. — № 3. — с. 76-79. 10. Интерфейсы систем обработки данных: Справочник / А. А. Мячев, В. Н. Степанов, В. К. Щербо; Под ред. А. А. Мячева. — М.: Радио и связь, 1989 — 416 с.: ил. 11. Овчинников В. В., Рыбкин И. И. Техническая база интерфейсов локальных вычислительных сетей. — М.: Радио и связь, 1989 — 272 с.: ил. 12. Новиков Ю. В. Универсальный параллельный интерфейс для мо- дульных микропроцессорных систем измерения, контроля и уп- равления //Микропроцессорные средства и системы.— 1989.— №6. —с. 71-72.
366 Список литературы 13. Шевкопляс Б. В. Микропроцессорные структуры. Инженерные решения: Справочник. — 2-е изд. перераб. и доп. — М.: Радио и связь, 1990 — 512 с.: ил. 14. Большие интегральные схемы запоминающих устройств: Спра- вочник / Под ред. А. Ю. Гордонова и Ю. Н. Дьякова. — М.: Радио и связь, 1990. — 288 с.: ил. 15. Воробьев Е. П., Сенин К. В. Интегральные микросхемы производ- ства СССР и их зарубежные аналоги: Справочник. — М.: Радио и связь, 1990. — 352 с.: ил. 16. Чернега В. С., Василенко В. А., Бондарев В. Н. Расчет и проекти- рование технических средств обмена и передачи информации. — М.: Высшая школа, 1990. — 224 с.: ил. 17. Федорков Б. Г., Телец В. А. Микросхемы ЦАП и АЦП: функцио- нирование, параметры, применение. — М.: Энергоатомиздат, 1990. — 320 с.: ил. 18. Новиков Ю. В. Функциональные модули контрольно-измеритель- ных систем на базе микроЭВМ И Микропроцессорные средства и системы, 1990. — № 3. — с. 75—77. 19. Сопряжение датчиков и устройств ввода данных с компьютерами IBM PC: Пер. с англ. / Под ред. У. Томпкинса, Дж. Уэбстера. — М.: Мир, 1992 — 592 с.: ил. 20. Юшин А. М. Цифровые микросхемы для электронных устройств: Справочник. — М.: Высшая школа, 1993. — 176 с.: ил. 21. Логические ИС КР1533, КР1554: Справочник / И. И. Петровский, А. В. Прибыльский, А. А. Троян, В. С. Чувелев: В 2-х ч. — М.: БИНОМ, 1996. 22. The TTL Data Book. — Texas Instruments, 1997. 23. Новиков Ю. В., Калашников О. А., Гуляев С. Э. Разработка уст- ройств сопряжения для персональных компьютеров типа IBM PC / Под общ. ред. Ю. В. Новикова. Практ. пособие. — М.: ЭКОМ, 1997—224с.: ил. 24. Хоровиц П., Хилл У. Искусство схемотехники. Пер. с англ. 5-е изд. перераб. — М.: Мир, 1998. — 704 с.: ил. 25. Перельман Б. Л., Шевелев В. И. Отечественные микросхемы и за- рубежные аналоги: Справочник. — М.: НТЦ Микротех, 1998. — 376 с.: ил. 26. Новиков Ю. В., Карпенко Д. Г. Аппаратура локальных сетей: функции, выбор, разработка / Под общ. ред. Ю. В. Новикова. — М.: ЭКОМ, 1998 — 288 с.: ил.
Список литературы 367 27. Мюллер С. Модернизация и ремонт персональных компьютеров / Пер. с англ. — М.: БИНОМ, 1998. — 944 с.: ил. 28. Гук М. Аппаратные средства IBM PC. Энциклопедия. — СПб: Пи- тер Ком, 1999. — 816 с.: ил. 29. Бирюков С. А. Применение цифровых микросхем серий ТТЛ и КМОП. — М.: ДМК, 1999. — 240 с.: ил. 30. Новиков Ю. В., Кондратенко С. В. Локальные сети: архитектура, алгоритмы, проектирование. — М.: ЭКОМ, 2000 — 312 с.: ил.
СЛОВАРЬ ТЕРМИНОВ И СОКРАЩЕНИЙ 2S (2-States Output) — выход с двумя активными состояниями, 2С, стандартный выход ТТЛ. 3S (3-States Output) — выход с тремя состояниями, ЗС. Adder — сумматор. AND — логическая функция И. AC (Alternating Current) — переменный ток. ALU (Arithmetic and Logic Unit) — АЛУ, арифметико-логи- ческое устройство. ADC (Analog-to-Digital Converter) — АЦП, аналого-цифровой преобразователь. ASCII (American Standard Code for Information Interchan- ge) — стандартный американский код обмена символьной информацией. BCD (Binary-Coded Decimal) — двоично-десятичный код. BiCMOS (Bipolar Complementary Metal-Oxide-Semiconduc- tor) — биполярно-полевая технология изготовления мик- росхем, сочетающая на одном кристалле биполярные и КМОП структуры. Buffer — буфер. Bus — шина, магистраль. CAS (Column-Address Select) — сигнал выбора адреса столбца (в микросхемах динамической памяти). Chip — микросхема, чип. Clear — очистка, сброс в нуль. Clock — тактовый, тактирующий сигнал. CMOS (Complementary Metal-Oxide-Semiconductor) — ком- плементарная МОП технология (КМОП). Coder (encoder) — шифратор, кодер. Comparator — компаратор. Converter — преобразователь. CRC (Cyclic Redundancy Check) — циклический избыточный контроль, метод вычисления циклической контрольной суммы и сама эта сумма. Counter — счетчик.
Словарь терминов и сокращений 369 DAC (Digital-to-Analog Converter) — ЦАП, цифро-аналоговый преобразователь. DC (Direct Current) — постоянный ток. Decoder — дешифратор, декодер. Delay — задержка. DIC (Dual In-line Ceramic package) — керамический корпус микросхемы типа DIL. DIL (Dual In-Line package) — корпус микросхемы с двухряд- ным вертикальным расположением выводов. DIMM (Dual In-Line Memory Module) — модуль памяти с дву- сторонним расположением выводов. DIP (Dual In-line Plastic package) — пластмассовый корпус микросхемы типа DIL. DIP Switches — малогабаритные выключатели, смонтирован- ные в корпусе типа DIP. DRAM (Dynamic RAM) — динамическое ОЗУ. Driver — выходной буфер, драйвер. EEPROM (Electrically Erasable Programmable ROM) — ПЗУ с электрическим стиранием и возможностью программиро- вания. EPROM (Erasable Programmable ROM) — ПЗУ co стиранием (ультрафиолетовым излучением) и перезаписью информа- ции (РПЗУ). Female — разъем-розетка, гнездо. FIFO (First In, First Out) — «первым вошел — первым вы- шел», один из способов организации ОЗУ с последователь- ным доступом. Flash memory — разновидность памяти EEPROM, характери- зующаяся высокой емкостью, малым потреблением и большим допустимым количеством циклов перезаписи, флэш-память. Flip-flop —триггер. Gate — логический элемент, вентиль. GND (Ground) — общий провод схемы, «земля». Н (High) — высокий уровень сигнала, единичный уровень при положительной логике. IC (Integrated Circuit) — интегральная микросхема, ИС. Inverter — инвертор. I/O (Input/Output) — ввод/вывод (В/В), вход/выход.
370 Словарь терминов и сокращений Jumper — съемная перемычка, соединяющая штыревые кон- такты на плате, джампер. L (Low) — низкий уровень сигнала, нулевой уровень при поло- жительной логике. Latch — триггер (регистр) типа «защелка». LCD (Liquid Crystal Display) — жидкокристаллический дис- плей, индикатор. Line driver — драйвер линии, буфер. LSB (Least Significant Bit) — младший значащий бит (в байте или слове). LSI (Large Scale Integration) — большая интегральная схема, БИС. LVT (Low-Voltage Technology) — низковольтная технология микросхем (напряжение питания 3,3 В). Male — разъем-вилка, штекер. Master — ведущее, главное устройство, участвующее в обмене информацией, задатчик. Monostable multivibrator — ждущий мультивибратор, одно- вибратор. MSB (Most Significant Bit) — старший значащий бит (в байте или слове). Multiplexer — мультиплексор. Multivibrator — мультивибратор. NAND — логическая функция И-НЕ. Noninverter — повторитель. NOR — логическая функция ИЛИ-НЕ. NVRAM (Non-Volatile RAM) — энергонезависимое ОЗУ, со- храняющее информацию при отключении питания. ОС (Open-Collector Output) — выход микросхемы с открытым коллектором. OR — логическая функция ИЛИ. PAL (Programmable Array Logic) — программируемая логиче- ская матрица, ПЛМ. Parity — четность, паритет. Plug — разъем типа вилка. Preset — предварительная установка. PROM (Programmable ROM) — программируемое ПЗУ, ППЗУ. Pull-up Resistor — нагрузочный резистор, включаемый между выходом микросхемы и шиной питания.
Словарь терминов и сокращений 371 RAM (Random Access Memory) — оперативное запоминающее устройство, ОЗУ. RAS (Row-Address Select) — сигнал выбора адреса строки (в микросхемах динамической памяти). Receiver — приемник, входной буфер. Refresh — регенерация (в динамической памяти). Register — регистр. Reset — сигнал установки микросхемы или устройства в нуле- вое или исходное состояние. ROM (Read-Only Memory) — постоянное запоминающее уст- ройство, ПЗУ. RxC (Received Clock) — принимаемый синхросигнал. RxD (Received Data) — принимаемые данные. Schmitt trigger — триггер Шмитта. SDRAM (Synchronous Dynamic RAM) — синхронное динами- ческое ОЗУ. Set — сигнал установки выхода в единичное состояние. SIMM (Single In-Line Memory Module) — модуль памяти с од- норядным расположением выводов. SIP (Single In-line Package) — корпус микросхемы с одноряд- ным расположением выводов. Slave — ведомое, пассивное устройство, участвующее в обмене информацией, исполнитель. Slot — щелевой разъем для подключения печатных плат с разъ- емом в виде печатных проводников, слот. Socket — контактирующее устройство для установки микро- схем на плату, сокет. SRAM (Static RAM) — статическое ОЗУ. Strobe — стробирующий сигнал, строб. Terminator — оконечное согласующее устройство на линии связи (обычно — резистор). TI, TH (Texas Instruments Inc.) — американская фирма, один из ведущих производителей цифровых микросхем малой и средней степени интеграции. TR (Terminate Resistor) — нагрузочный резистор для линии связи. Transceiver — приемопередатчик, трансивер, двунаправленный буфер. Transmitter — передатчик, выходной буфер. Trigger — триггер.
372 Словарь терминов и сокращений TTL (Transistor-Transistor Logic) — транзисторно-транзистор- ная (биполярная) логика, ТТЛ. TTLS (Transistor-Transistor Logic Schottky) — транзисторно- транзисторная логика Шоттки, ТТЛШ. ТхС (Transmitted Clock) — передаваемый синхросигнал. TxD (Transmitted Data) — передаваемые данные. V — напряжение (Voltage), вольт (Volt). VLSI (Very Large Scale Integration) — сверхбольшая инте- гральная схема (СБИС). Waveform — форма сигнала. Z (Z-state) — третье (высокоимпедансное) состояние выхода микросхемы. ZIF (Zero Insertion Force) — разъем или сокет с нулевым уси- лием вставки. 2С — выход с двумя активными состояниями (нуль и единица), стандартный ТТЛ-совместимый выход. ЗС — выход с тремя состояниями (два активных: нуль и едини- ца, третье — пассивное, отключенное), а также само третье состояние выхода в отличие от двух активных состояний. Адрес — закодированный номер, определяющий, куда переда- ется информация или откуда она принимается. Активный уровень сигнала — уровень, соответствующий приходу, наличию сигнала, то есть выполнению этим сиг- налом соответствующей ему функции. АЛУ — арифметико-логическое устройство (ALU). АПЧ — автоматическая подстройка частоты. Асинхронный сигнал — сигнал, не привязанный по времени к внутренним процессам схемы, не синхронизованный со схемой. Асинхронный (последовательный) счетчик — счетчик, вы- ходные разряды которого переключаются по очереди, на- чиная с младшего. АЦП — аналого-цифровой преобразователь (ADC), преобра- зующий величину входного аналогового сигнала в выход- ной цифровой код. Байт — группа двоичных разрядов, битов (как правило, 8 бит), содержащая какой-то код.
Словарь терминов и сокращений 373 Биполярный сигнал — сигнал, который может быть как поло- жительным, так и отрицательным. Бит (от англ. Binary Digit — двоичное число) — единица дво- ичной информации, разряд двоичного кода, принимающий значения 0 и 1. БИС — большая интегральная схема (LSI). Ввод данных — то же, что чтение, считывание, прием. Вилка (штекер) — часть разъема, контакты которого входят в контакты розетки (гнезда). Вывод данных — то же, что запись, передача. Выводы микросхемы — металлические контакты на корпусе микросхемы для входных и выходных сигналов, подклю- чения внешних элементов и подачи питания. Временная диаграмма — графики зависимости от времени входных и выходных сигналов цифрового устройства в различных режимах работы. Выборка — мгновенное значение аналогового сигнала, кото- рому ставится в соответствие цифровой код. Гига- (Г) — приставка для обозначения миллиарда, 109. Данные — передаваемая в закодированном виде цифровая ин- формация. Двоичная система счисления — система счисления по моду- лю два, в которой разряды числа кодируются 0 или 1 и представляют собой степени числа 2. Двунаправленная линия (шина) — линия (шина), по которой сигналы могут передаваться в обоих направлениях (по оче- реди). Дешифрация — преобразование входного двоичного кода в номер выходного сигнала. Дорожки — проводники на поверхности печатной платы, для передачи сигналов и подачи питания. Единичный сигнал — то же, что положительный сигнал. Задержка — временной сдвиг между входным и выходным сигналами устройства, узла, микросхемы. Задний фронт сигнала (спад) — переход сигнала из активного уровня в пассивный. Защелка — триггер или регистр, стробируемый уровнем сигна- ла и пропускающий входной сигнал на выход при активном управляющем сигнале (стробе). ЗУ — запоминающее устройство, память.
374 Словарь терминов и сокращений Импульс — сравнительно короткий сигнал. Инверсный выход — выход, выдающий сигнал инверсной по- лярности по сравнению со входным сигналом. Инвертирование или инверсия сигнала — изменение поляр- ности сигнала. Интерфейс — соглашение об обмене между электронными уст- ройствами. Включает в себя требования по электрическо- му, логическому и конструктивному сопряжению уст- ройств. ИС — интегральная микросхема, ИМС (IC), чип. Кабель — один или несколько проводов в общей оболочке, ис- пользуемые для передачи сигналов. Карта — электронное устройство, выполненное на печатной плате. КЗ — короткое замыкание. Кило- (к) — приставка для обозначения тысячи, 103. КМОП — комплементарная технология МОП (CMOS). Код — информация, передаваемая несколькими двоичными разрядами, битами. Контактные площадки — проводники на поверхности печат- ной платы, к которым припаиваются выводы микросхем. Коэффициент разветвления — число входов, которое может быть подключено к данному выходу без нарушения его ра- боты. Определяется отношением выходного тока к входно- му. Стандартная величина коэффициента разветвления при использовании микросхем одной серии равна 10. Линия (линия связи) — проводник (электрический или опто- волоконный), передающий сигнал. Меандр — сигнал со скважностью, равной двум, то есть дли- тельность импульсов равна длительности паузы между ними. Мега- (М) — приставка для обозначения миллиона, 10б. Микро- (мк) — приставка для обозначения одной миллионной доли, КГ6. Милли- (м) — приставка для обозначения одной тысячной до- ли, 10 МОП — полупроводниковая технология на основе полевых транзисторов типа «металл — окисел — полупроводник» (MOS).
Словарь терминов и сокращений 375 Мультиплексирование — передача различных сигналов по одной линии (шине) в разные моменты времени. Нагрузочная способность — параметр выхода микросхемы, характеризующий величину выходного тока, которую мо- жет выдать в нагрузку данный выход без нарушения его работы. Чаще всего нагрузочная способность прямо связа- на с коэффициентом разветвления. Нано- (н) — приставка для обозначения одной миллиардной доли, 10”9. Нулевой сигнал — то же, что отрицательный сигнал. Обратная связь — передача сигнала или его части с выхода схемы на ее вход или один из ее входов. Обратный (инверсный) счет — счет на уменьшение выходно- го кода. ОЗУ — оперативное запоминающее устройство, оперативная память (RAM). ОК — выход с открытым коллектором. Опорное напряжение — напряжение эталонного уровня, с ко- торым сравнивается входной сигнал (в АЦП), или из кото- рого формируется выходной сигнал (в ЦАП). Отрицательная логика — система сигналов, в которой логи- ческой единице соответствует низкий уровень напряжения, а логическому нулю — высокий. Отрицательный сигнал (сигнал отрицательной полярности, нулевой сигнал) — сигнал, активный уровень которого — логический нуль. То есть единица — это отсутствие сигна- ла, нуль — сигнал пришел. Отрицательный фронт сигнала (спад) — переход сигнала из единицы (из высокого уровня) в нуль (в низкий уровень). Пассивный уровень сигнала — уровень, в котором сигнал не выполняет никакой функции. Перепад (переход) сигнала — переключение сигнала из нуля в единицу или из единицы в нуль, то же что фронт сигнала. Передний фронт сигнала — переход сигнала из пассивного уровня в активный. ПЗУ — постоянное запоминающее устройство, постоянная па- мять (ROM). Пико- (п) — приставка для обозначения одной триллионной доли, 10-12.
376 Словарь терминов и сокращений ПЛИС — программируемая логическая интегральная микро- схема. ПЛМ — программируемая логическая матрица (PAL). Погрешность абсолютная — разность между измеренной ве- личиной и ее истинным значением (погрешность изме- рения); разность между сформированной величиной и требуемым ее значением (погрешность формирования, по- грешность воспроизведения). Погрешность относительная — отношение абсолютной по- грешности к требуемому (или истинному) значению данной величины. Часто измеряется в процентах. Положительная логика — система сигналов, в которой логи- ческой единице соответствует высокий уровень напряже- ния, а логическому нулю — низкий. Положительный сигнал (сигнал положительной полярности, единичный сигнал) — сигнал, активный уровень которо- го — логическая единица. То есть нуль — это отсутствие сигнала, единица — сигнал пришел. Положительный фронт сигнала (или просто фронт) — пере- ход сигнала из нуля (из низкого уровня) в единицу (в высо- кий уровень). Полярность сигнала — уровень сигнала, соответствующий его активности. Положительной полярности соответствует ак- тивный единичный сигнал, отрицательной полярности — активный нулевой сигнал. Помехи — паразитные сигналы, накладывающиеся на инфор- мационные сигналы и искажающие их. Помехи могут наводиться извне (электромагнитным полем), а также возникать в цепях питания. Помехозащищенность — параметр, характеризующий вели- чину входного сигнала помехи, который еще не может изменить состояние выходных сигналов. Определяется разницей между напряжением Um и порогом срабатыва- ния (помехозащищенность единичного уровня), а также разницей между порогом срабатывания и Un, (помехоза- щищенность нулевого уровня). Порог срабатывания — уровень входного напряжения, выше которого сигнал воспринимается как единица, а ниже — как нуль. Для ТТЛ микросхем он примерно равен 1,3...1,4 В. НПЗУ — программируемое ПЗУ (PROM).
Словарь терминов и сокращений 377 Принципиальная схема — наиболее подробная схема элек- тронного устройства с указанием всех элементов, связей, входов и выходов, выполненная в соответствии со стандар- том. Протокол — порядок обмена сигналами между цифровыми устройствами. Прямой выход — выход, выдающий сигнал положительной полярности. Прямой счет — счет на увеличение выходного кода. Разрядность (кода, шины) — количество двоичных разрядов кода или количество цифровых сигналов для передачи кода по шине. Разъем — разъемное контактирующее устройство из двух час- тей (розетка и вилка), служащее для передачи сигналов и питания электронных схем. Реверсивный счетчик — счетчик, работающий как в режиме прямого счета, так и в режиме обратного (инверсного) счета. Регенерация — периодическое восстановление, освежение информации, записанной в динамическую память. Розетка (гнездо) — часть разъема, в контакты которого входят контакты вилки (штекера). РПЗУ — репрограммируемое ПЗУ (EPROM), информация в ко- тором стирается ультрафиолетовым излучением и может быть записана вновь. СБИС — сверхбольшая интегральная схема (VLSI). Слово (двоичное) — группа бит (обычно 16, 32 или 64 бита), состоящая из нескольких байт. Синхронизация — обеспечение согласованной во времени ра- боты нескольких устройств, например, по общему тактово- му сигналу. Синхронный (параллельный) счетчик — счетчик, все разря- ды которого переключаются одновременно, синхронно с тактовым сигналом Синхросигнал — то же, что тактовый сигнал. Скважность — отношение периода следования импульсов к длительности этих импульсов. Сокет (Socket) — то же, что колодка, контактирующее устрой- ство-гнездо, в которое устанавливается микросхема с воз- можностью простой ее замены.
378 Словарь терминов и сокращений Спад сигнала — то же, что задний фронт сигнала (обычно — отрицательный фронт). Строб (стробирующий сигнал) — управляющий сигнал, кото- рый своим уровнем определяет момент выполнения эле- ментом или узлом его функции. В более общем смысле строб — это любой синхронизирующий сигнал, тактовый сигнал. Стробирование — согласование во времени работы узлов и устройств с помощью строба. Структурная схема — упрощенная схема электронного уст- ройства, показывающая только основные узлы и важней- шие связи между ними. Схема — электронный узел, устройство, а также их изображе- ние на чертеже. Такт — то же что тактовый сигнал, а также период тактового сигнала. Тактовый сигнал — управляющий сигнал, который своим фронтом определяет момент выполнения элементом или узлом его функции. Иногда то же, что и стробирующий сигнал. Тера- (Т) — приставка для обозначения триллиона, 1012. Тетрада (полубайт, ниббл) — группа из четырех бит, кодируе- мая одним символом в 16-ричной системе счисления. Точность — показатель близости функционирования данного устройства к идеалу, обычно измеряется с помощью вели- чины погрешности. ТТЛ — транзисторно-транзисторная логика и соответствующая ей полупроводниковая технология (TTL). ТТЛШ — технология ТТЛ с диодами Шоттки (TTLS). Характе- ризуется более высоким быстродействием при той же по- требляемой мощности. Узел — часть электронного устройства, выполняющая четко выделенную функцию или несколько взаимосвязанных функций. Устройство (электронное) — функционально (а иногда и кон- структивно) законченная электронная схема. Флэш-память (Flash Memory) — разновидность РПЗУ с элек- трическим стиранием информации и возможностью много- кратной перезаписи.
Словарь терминов и сокращений 379 Фронт сигнала — переход сигнала из нуля в единицу или из единицы в нуль, иногда в более узком значении «передний положительный фронт». Функциональная схема — не слишком подробная схема элек- тронного устройства, показывающая подробно только схе- мы отдельных, принципиально важных узлов устройства. ЦАП — цифро-аналоговый преобразователь (DAC), преобра- зующий входной цифровой код в величину аналогового сигнала (тока или напряжения). Цепочка — последовательное соединение нескольких узлов (или устройств), при котором выходы предыдущего узла соединяются со входами последующего узла. Также цепоч- кой называют любое соединение электронных компонентов (например, RC цепочка, LC-цепочка). Цикл — последовательность обмена сигналами, в течение ко- торого выполняется только одна операция. Чип — то же, что интегральная микросхема, ИМС. Шина — группа сигнальных линий, объединенных по какому- то принципу, например, шиной называют сигналы, соот- ветствующие всем разрядам какого-то двоичного кода (шина данных, шина адреса). Иногда шиной называют так- же провод питания («шина питания») и общий провод («шина земли»), Шифрация — преобразование номера приходящего входного сигнала в выходной двоичный код. Ячейка (памяти) — элемент памяти (одноразрядный или мно- горазрядный), который служит для хранения информаци- онного кода и может быть выбран с помощью кода адреса памяти.
Учебное издание Новиков Юрий Витальевич ОСНОВЫ ЦИФРОВОЙ СХЕМОТЕХНИКИ БАЗОВЫЕ ЭЛЕМЕНТЫ И СХЕМЫ. МЕТОДЫ ПРОЕКТИРОВАНИЯ Руководитель проекта Т. Г. Хохлова Ведущий редактор В. М. Матвеев Художественный редактор В. П. Григорьев Художник П. Инфанте Технический редактор Е. В. Денюкова Корректор Е. Н. Клитина Оригинал-макет подготовлен С. А. Янковой Лицензия ЛР № 010174 от 20.05.97г. Подписано к печати 14.09.2001 г. Формат 60 х 90/16. Бумага офсетная. Гарнитура Times New Roman. Печать офсетная. Объем 12,00 бум. л. Усл.-печ. л. 24,00. Уч.-изд. л. 22,04. Изд. №6/9801. Тираж 5000 экз. Заказ 4589 Издательство «Мир» Министерства РФ по делам печати, телерадиовещания и средств массовых коммуникаций 107996, Москва, 1-й Рижский пер., 2. Диапозитивы изготовлены в издательстве «Мир» Издательство и редакция не несут ответственности за содержание публикуемых рекламных объявлений, а также не предоставляют информации о деятельности фирм. Отпечатано с готовых диапозитивов в ППП «Типография Наука» 121099, Москва, Шубинский пер., 6. Налоговая льгота — общероссийский классификатор продукции ОК-005-93, том 2; 953000 — книги, брошюры