Разделы
Публикации
Популярные
Новые
Главная » Методы подавления шумов, помех электронных систем

1 ... 47 48 49 50 51 52 53 ... 59

том, какой уровень (ВЫСОКИЙ или НИЗКИЙ) будет иметь данный провод, когда заданное условие (КЛЮЧ ЗАМКНУТ) истинно.

Цифровая схема знает , что за сигнал она представляет по тому, откуда этот сигнал поступает, так же как в аналоговой схеме выход какого-либо определенного усилителя представляет определенную величину. Однако цифровые схемы обладают дополнительной гибкостью: иногда одни и те же сигнальные линии используются для передачи различных видов информации и для посылки ее в разных направлениях в различные моменты времени. Для того чтобы выполнить это мультиплексирование , необходимо посылать дополнительную информацию (адресные биты или биты состояния). Впоследствии будет показано много примеров, в которых используется это полезное свойство цифровой электроники, а пока будем считать, что любая схема предназначена для выполнения одной заданной функции и она знает , откуда поступают входные и куда идут выходные сигналы.

Введем понятия 1 и О, внеся некоторую путаницу в эту, по существу, простую ситуацию. Эти символы используются в булевой алгебре для обозначения утверждений ИСТИНА и ЛОЖЬ соответственно. Иногда в том же значении они используются и в электронике, но, к сожалению, здесь они применяются также п в другом смысле, а именно: 1 означает ВЫСОКИЙ уровень, а О - НИЗКИЙ уровень, В этой книге мы постараемся избежать какой-либо двусмысленности, используя для обозначения логических состояний слова ВЫСОКИЙ уровень (или символ В) и НИЗКИЙ уровень (или символ Н), метод, который широко используется в электронной промышленности, а обозначения 1 и О будут применяться лишь в тех случаях, где их двусмысленное толкование исключается.

Диапазон напряжений высокого и низкого уровней. Как

уже упоминалось в разд. 1.10, значения напряжений, соответствующих ВЫСОКИМ и НИЗКИМ уровням, могут колебаться в некотором диапазоне. Например, для ТТЛ состояние НИЗКОГО уровня может быть представлено любым значением напряжения от -0,5 до 0,4 В (типичное значение составляет величину порядка 1/3 В выше уровня земли, что соответствует сигналу на выходе насыщенного п-р-п-транзистора с заземленным эмиттером), а ВЫСОКИЙ уровень - любым значением напряжения в пределах от -f 2,4 до -f 5,5 В (типовая величина составляет приблизительно 3,4 В). Такие широкие диапазоны выбраны для того, чтобы изготовитель микросхем имел в своем распоряжении определенный допуск, в пределах которого параметры схемы могут колебаться за счет изменения температуры, нагрузки, напряжения питания, а также под воздействием шумов, т. е. разнообразных паразитных сигналов, которые добавляются к рабочему сигналу при его прохождении через схему (за счет емкостных связей, внешних наводок и т. п.). Получив сигнал, схема определяет, каков его уровень (ВЫСОКИЙ или НИЗКИЙ), и действует соответствующим образом. Если помеха не превращает 1 в О или наоборот, то все пре-



8.03. Числовые коды

Большинство рассмотренных выше условий, которые могут быть представлены цифровыми уровнями, просты и наглядны. Более сложный и интересный вопрос заключается в том, как с помощью цифровых уровней представить часть числа.

Десятичное (с основанием 10) число представляет собой просто строчку из цифр и (при этом) подразумевается, что они должны быть умножены на последовательные степени числа 10 для образования индивидуальных произведений, а затем сложены вместе. Например,

137.06= 1X105-ЬЗХ10Ч-7Х Юо-ЬОХ 10-1-Ь6 X10 ?.

Для записи числа требуется десять символов (от О до 9), а степень числа 10, на которую должна быть умножена цифра, определяется ее положением по отношению к десятичной запятой. Если мы захотим представить число, используя только два символа (О и 1), то такая система счисления будет называться двоичной или системой с основанием 2. В этом случае каждая 1 или О будет умножаться на последовательные степени числа 2. Наприме!,

11012=1 х2=4-1 x25-i-Ox2i-f 1 X2=13i .

Красно и любые помехи отсеиваются на каждой ступени, поскольку на выходе схемы восстанавливаются чистые значения 1 или 0. В этом смысле цифровая электроника не подвержена влиянию помех и является идеальной.

Термин помехоустойчивость используется для обозначения максимального уровня помехи, которая, будучи добавлена к логическому сигналу при самых неблагоггриятных условиях, не будет еще приводить к ошибочной работе схемы. Так, например, для элементов ТТЛ помехоустойчивость составляет 0,4 В, так как любой сигнал ниже 0,8 В интерпретируется ими как НИЗКИЙ уровень, а любой сигнал выше +2 В - как ВЫСОКИЙ, в то время как уровни выходных сигналов составляют в самом неблагоприятном случае -f 0,4 и 4-2,4 В соответственно (см. таблицу логических уровней в гл. 1). В действительности помехоустойчивость этих схем значительно выше приведенной величины, поскольку типичные значения ВЫСОКОГО и НИЗКОГО напряжений составляют -f 0,2 и 3,4 В, а входной порог принятия решения равен приблизительно 1,3 В. Однако необходимо помнить, что хорошая схема должна быть рассчитана на самый неблагоприятный случай. Не следует также забывать о том, что различные семейства логических элементов обладают различной помехоустойчивостью. Так, элементы типа ВПЗЛ (HNIL - логические схемы с высокой помехозащищенностью) и КМОП имеют более высокую по сравнению с ТТЛ помехоустойчивость, а быстродей* ствующие элементы ЭСЛ - более низкую.



Отдельные единицы и нули в записи, представляющей двоичное число, называются битами (отелов binary digits - двоичный разряд). Индекс (записываемый всегда по основанию 10) указывает, какая система счисления используется. Он часто бывает нужен для того, чтобы избежать путаницы, так как все символы выглядят одинаково.

Итак, только что описанным методом мы преобразовали число из двоичной формы в десятичную. Для того чтобы произвести обратное преобразование, десятичное число нужно последовательно делить на 2, каждый раз записывая остаток. Для преобразования числа 13ie в двоичное нужно произвести следующие операции: 13/2=6, остаток 1; 6/2=3, остаток 0; 3/2=1, остаток 1; 1/2=0, остаток 1; это дает 13io=110l2. Заметим, что ответ образуется, начиная с младшего значащего разряда (МЗР).

Восьмеричное и шестнадцатеричное представления чисел. Для описания систем, имеющих только два состояния, естественно применять двоичные числа. Однако, как будет показано ниже, это не единственный способ. Поскольку двоичные числа имеют большую длину, для их записи обычно используется восьмеричное (с основанием 8) или шестнадцатеричное (с основанием 16) представление. Все это значительно проще, чем кажется: для того чтобы записать двоичное число в восьмеричном коде, нужно всего лишь разбить его на группы по три бита, начиная с МЗР, а затем для каждой группы определить ее восьмеричный эквивалент:

835io=110100001l2(=l 101 000 01l2)=15038.

Здесь, естественно, используются лишь символы от О до 7. Для записи двоичного числа в шестнадцатеричном коде его разбивают на группы по 4 бит, каждая из которых может принимать значения от О до 15. Поскольку для обозначения каждой шестнадцатеричной позиции мы хотим использовать один символ, величины 10-15 будем обозначать с помощью букв латинского алфавита от А до F:

707io =101100001 Ь(= 10 1100 001 U)=2C3ie.

Шестнадцатеричное представление наилучшим образом соответствует байтовой (1 байт=8 бит) структуре ЭВМ, которая чаще всего реализуется в виде 16- или 32-разрядных машинных слов , при этом каждое слово состоит из 2 или 4 байтов. Буквенно-цифровые знаки (буквы, цифры или символы) представляются в виде одного байта. Таким образом, в шестнадцатеричной системе каждый байт состоит из двух шестнадцатеричных цифр, 16-разрядное машинное слово из 4-х шест-надцатеричных цифр и т. д. К сожалению, в ранних ЭВМ были приняты 12- и 32-разрядные слова, которые использовали 6-разрядное представление буквенно-цифровых знаков. Поскольку 6-разрядные знаки было логично представлять в восьмеричном коде, внедрилась эта система счисления. Она сохранилась до настоящего времени и с



успехом применяется для записи двоичных чисел, однако зачастую может создавать определенные неудобства.

Так, например, в машинах, оперирующих с 16-разрядными словами, одно слово служит для хранения двух буквенно-цифровых знаков длиной 8 бит каждый (два байта). Вось.меричное представление создает в этом случае массу неприятностей, поскольку оно не позволяет разделять слова на отдельные байты.

Предположим, что в некотором машинном слове записаны буквы А к В, представленные в широко распространенном коде ASCII (более подробно см. в разд. 10.17). В этом случае:

Л=1018 = 01 000 001 5=102 = 01 000010 слово (ЛВ) = 01 000 001 01 000 010 =

= 0 100000 101 000010 (после перегруппировки в

3-разрядные группы) = 04502g (в восьмеричной записи)

Таким образом, после записи 16-разрядного слова в восьмеричном коде индивидуальное существование знаков А и В оказалось стерто, поскольку при образовании 3-разрядных групп старший байт оказался перетасован с младшим. Слово будет отличаться еще больше, если символы поменять места.ми, т. е. поместить В в старшую (левую) половину слова, а Л в младшую (правую).

Упражнение 8.1. Определите, каким будет восьмеричное представление 16-разрядного слова, содержащего сочетание ВА в коде ASCII.

При шестнадцатеричном представлении эти проблемы отсутствуют. Знак Л - это 41ie, знак S -42ie, ЛВ -4142i , а ВЛ - 4241,. Единственная проблема в шестнадцатеричной системе - это необходимость использования хитрых чисел типа ЗР2А и выполнения над ними арифметических операций.

Поскольку восьмеричное кодирование также имеет широкое распространение, мы будем использовать обе системы.

Двоично-десятичный код. Другим методом представления чисел является двоичное кодирование каждой десятичной цифры, которая записывается в виде группы из 4 двоичных разрядов. Например,

137io = 0001 0011 0111 (двоично-десятичный код).

Заметим, что двоично-десятичное представление числа не эквивалентно двоичному, которое в данном случае будет иметь вид:

137io= 1000100Ц.

Можно считать, что разряды двоично-десятичного кода, начиная с правого, выражают числа 1, 2, 4, 8, 10, 20, 40, 80, 100, 200, 400, 800 и т. д. Очевидно, что двоично-десятичное кодирование не экономично с точки зрения использования двоичных разрядов, поскольку каждая



группа из 4 бит способна представлять числа от О до 15, но используется для записи числа, не превышающего 9 (за исключением редкого случая записи цифровой информации с четным паритетом на 7-доро-жечную магнитную ленту). Однако двоично-десятичное кодирование очень удобно в тех ситуациях, когда требуется воспроизвести число в десятичной форме, поскольку в этом случае каждый двоично-десятичный символ нужно лишь преобразовать в соответствующее десятичное число, а затем вывести его на индикацию. (Для выполнения этой функции существуют специальные ИМС, которые в одном небольшом корпусе с простой топологией содержат дешифратор двоично-десятичного кода, формирователи сигналов, буферный регистр и индикатор. На вход такой схемы нужно лишь подать логические уровни двоично-десятичного символа, после чего на ней высветится соответствующая цифра.) По этой причине двоично-десятичное кодирование обычно используется при вводе и выводе цифровой информации. К сожалению, преобразование между двоично-десятичным и чисто двоичным кодом сложно, поскольку каждая десятичная цифра зависит от состояния почти всех двоичных разрядов и наоборот. Тем не менее двоичная арифметика настолько эффективна, что в большинстве ЭВМ вся входная информация преобразуется в двоичную форму, а обратное преобразование производится лишь при ее выводе. Можно представить себе, сколько усилий было бы сэкономлено, если бы Homo sapiens имел 8 или 16 пальцев!

Упражнение 8.2. Преобразуйте в десятичный код следующие числа: а) lllOlOlj; OIIOj, б) 11,010101012, в) 258, г) SOg. Преобразуйте в двоичный код следующие числа; а) 1023 б) 1023 g.

Числа со знаком. Прямой (знаковеличинный) код. Рано или поздно возникнет необходимость представлять в двоичном коде отрицательные числа; в первую очередь это потребуется в устройствах, выполняющих вычислительные операции. Са.мое простое - отвести один разряд (скажем, старший) под знак числа, используя остальные для представления его величины. Этот способ называется знаковеличинным или прямым кодом и соответствует обычной записи числа со знаком (табл. 8.1). Он используется при выводе чисел на индикацию, а также в некоторых аналого-цифровых преобразователях (АЦП). Вообще же это далеко не лучшая форма представления чисел со знаком, особенно при выполнении вычислений, поскольку в данном случае операции вычитания и сложения выполняются по-разному (т. е. сложение не работает для чисел со знаком). Кроме того, здесь могут присутствовать нули двух типов (-f О н -0) и при выборе нужного из них следует быть очень внимательным.

Смещенный код, Вторым методом представления числа со знаком является смещенный код. Для того чтобы получить смещенный код какого-либо числа, нужно к этому числу, представленному в прямом коде, прибавить половину наибольшего возможного числа (табл. 8.1).



Таблица 8.1

4-разрядные двоичные числа в трех системах представления

Прямой код

Смещен-

Прямой код

Смещен-

Целое

ный

нительный

Целое

ный

нительный

код

код

код

код

0111

1111

0111

1010

оно

1110

оно

1110

оно

1011

0101

1101

0101

1101

0101

1100

0100

1100

0100

1100

0100

1101

ООП

1011

ООП

1011

ООП

1110

0010

1010

0010

1010

0010

1111

0001

1001

0001

1001

0001

0000

1000

0000

1000

0000

(-0)

1000

1001

0111

1111

Благодаря этой операции последовательность всех чисел, начиная со старшего отрицательного и кончая старшим положительным, будет представлять собой простую двоичную прогрессию и может быть сформирована с помощью двоичных счетчиков. Информацию о знаке здесь также несет старший разряд, однако нуль становится однозначным. Смещенный код используется в АЦП и ЦАП (преобразователях), однако он еще не удобен для выполнения вычислений.

Дополнительный код. При выполнении операций над целыми числами наиболее часто используется представление чисел в форме дополнения до двух, или, иначе, в дополнительном коде. Положительные числа в такой системе записываются просто как двоичные без знака, а отрицательные выражаются таким числом, которое, будучи добавлено к положительному числу той же величины, даст в результате нуль. Для того чтобы получить отрицательное число, нужно для каждого бита положительного числа сформировать дополнение до 1, или обратный код (т. е. вместо каждого О записать 1 и наоборот), а затем к полученному результату прибавить 1 (это даст дополнительный код). Как видно из табл. 8.1, числа в дополнительном коде отличаются от чисел в смещенном коде инверсным значением старшего значащего разряда (СЗР). Точно так же как и при других формах представления, СЭР несет информацию о знаке. Здесь имеется только один нуль, удобно представляемый нулевыми состояниями всех разрядов (при очистке счетчика или регистра в них заносится нулевое значение).

Арифметика в дополнительном коде. Арифметические операции в дополнительном коде выполняются весьма просто. Для того чтобы получить сумму двух чисел, достаточно сложить соответствующие разряды (с учетом переноса), например

5-1-(-2): 0101 (+5) 1110 (-2) ООН (-f3)



Для ТОГО чтобы вычесть В из А, нужно взять дополнительный код числа В и прибавить его к числу А (т. е. прибавить отрицательное число):

2-5! 0010 (+2)

1011 (-5) (+5 = 0101: обратный код: 1010, дополнитель-

ный код: 1011)

1101 (-3)

Умножение в дополнительном коде также выполняется непосредственно. Попробуйте сделать следующие упражнения.

Упражнение 8.3. Произведите двоичное умножение +2 на -3, используя 3-раз рядный дополнительный код. Подсказка: ответ равен -6.

Упражнение 8.4. Покажите, что дополнительный код числа -5 равен -[-5.

Благодаря естественности вычислений в дополнительном коде он повсеместно используется в ЭВМ для выполнения арифметических операций над целыми числами (однако следует отметить, что числа с плавающей запятой обычно используются в знаковеличинной форме, называемой знак - порядок - мантисса).

Код с избытком 3 и код 4221. Существует ряд других кодов, которые обладают весьма интересными и полезными свойствами. Вы можете вдруг обнаружить, что вместо двоично-десятичного кода применен код с избытком 3 или код 4221 . Оба этих кода, так же как и двоично-десятичный, для представления каждой десятичной цифры используют 4-разрядную группу. Для того чтобы любую цифру от О до 9 записать в коде с избытком 3, нужно прибавить к ней число 3, а затем выразить результат в 4-разрядном двоичном коде. При использовании кода 4221 каждая цифра также записывается в виде 4-разрядной группы, однако ее разряды, начиная с левого, представляют величины 4, 2, 2 и 1. Для того чтобы понять, почему используются именно эти коды, рассмотрим записанные с их помощью цифры от О до 9:

Цифра

Код

Код 4221

с избыт-

ООП

0000

0100

0001

0101

0010

оно

ООП

0111

1000

1000

0111

1001

1100

1010

1101

1011

1110

1100

1111

Эти коды обладают одним весьма важным свойством: для того чтобы для какой-либо цифры получить ее дополнение до 9 (= 9 - цифра ), достаточно взять ее обратный код. Это позволяет упростить



десятичную арифметику точно так же, как применение дополнительного кода упрощает двоичную арифметику. Вместо вычитания какого-либо числа достаточно произвести сложение с числом, которое представляет собой дополнение до 9 исходного числа плюс 1. Например,

27-15: 27

+85 (дополнение до 9 числа 15 = 84, затем прибавили 1) Ответ: 12

/Год'/ ея. Рассматриваемый ниже код используется в механических шифраторах угла поворота вала, а также в других устройствах. Он носит название кода Грея и обладает тем свойством, что при переходе от любого его состояния к следующему изменяется лишь одирг разряд (бит). Это позволяет предотвратить ошибки, так как в данном случае при переходе между двумя закодированными значениями все разряды никак не могут измениться одновременно. Если бы использовался чисто двоичный код, то при переходе, например, от 7 к 8 на входе можно было бы получить число 15. Существует простое правило для формирования состояний кода Грея: начинать нужно с нулевого состояния, а затем для получения каждого следующего нужно выбрать са.мый младший разряд, изменение которого приводит к образованию нового состояния, и взять его инверсное значение.

0000 0001 ООП

осю оно

0111 0101 0100 1100 1101

1111

1110 1010 1011 1001 1000

Коды Грея могут содержать любое число разрядов. Они находят применение при параллельном кодировании - методе быстродействующего аналого-цифрового преобразования, который будет рассмотрен ниже. В следующем разделе мы покажем взаимные соответствия между кодом Грея и двоичным кодо.м.

8.04. Вентили и таблицы истинности

Комбинационная а последовательная логика. Сущность цифровой электроники состоит в том, чтобы в соответствии с входными цифровыми сигналами вырабатывать выходные цифровые сигналы. Например, сумматор может принять на свои входы два 16-разрядных числа



И сформировать на выходе 16-разрядную сумму (плюс перенос). Можно также сделать схему для умножения двух чисел. Операции такого типа должен уметь выполнять процессор ЭВМ. Другой задачей может быть сравнение двух чисел с целью удостовериться в том, что все системы действуют нормально . Или, возможно, вы захотите дополнить паритетным битом число, подлежащее передаче по каналу связи, так, чтобы общее количество единиц в нем стало четны.м: проверка паритета на приемной стороне обеспечивает простой контроль правильности передачи. Еще одна типичная задача состоит в том, чтобы взять какие-либо числа, выраженные в двоичном коде, а затем воспроизвести их на экране, отперфорировать или отпечатать в виде десятичных знаков. Во всех этих задачах состояние выхода (или выходов) является предопределенной функцией состояния входа или входов. Задачи, относящиеся к этому классу, называются комбинационными и могут быть решены с помощью вентилей - устройств, которые выполняют операции булевой алгебры в системах с двумя состояниями (двоичных).

Существует другой класс задач, которые не могут быть решены лишь путем формирования комбинационных функций текущих значений входных сигналов, а требуют знания их прежнего состояния. Для решения этих задач требуется применять последовательные схемы. К типичны.м задачам такого типа относится преобразование строки двоичных разрядов из последовательной формы (один разряд следует за другим во времени) в параллельную группу разрядов, подсчет числа единиц, распознавание заданной определенной кодовой комбинации в последовательности битов, или, например, формирование одного выходного импульса после поступления четырех входных. Для решения всех этих задач требуется иметь в какой-либо форме цифровую память. Основным устройством для ее построения служит триггер (или мультивибратор с двумя устойчивыми состояниями).

Начнем рассмотрение с вентилей и комбинационной логики, поскольку они служат основой для построения любых цифровых схем. При переходе к последовательным логическим устройствам мир цифровой техники станет значительно более интересным, однако и вентили сами по себе также весьма любопытны.

Вентиль ИЛИ. Выход вентиля ИЛИ имеет ВЫСОКИЙ уровень, если ВЫСОКИЙ уровень присутствует хотя бы на одном из его входов. Это может быть выражено с помощью таблицы истинности , представленной на рис. 8.2, где показан вентиль ИЛИ на 2 входа. В общем случае число входов не ограничено, однако в стандартном корпусе микросхемы обычно размещаются четыре 2-входовых вентиля, три 3-входовых или два 4-входовых. Так, например, на выходе 4-входо-вого вентиля ИЛИ ВЫСОКИЙ уровень будет присутствовать в том случае, если он будет подан на любой из его входов.

Для обозначения операции ИЛИ в булевой алгебре используется символ +, Функция Л ИЛИ S записывается как А-\-В,



Вентиль И. Выход вентиля И имеет ВЫСОКИЙ уровень только в том случае, если ВЫСОКИЙ уровень присутствует на обоих его входах. Символическое изображение вентиля И и его таблица истинности даны на рис. 8.3. Выпускаемые промышленностью вентили И, так же как и вентили ИЛИ, могут иметь 3, 4, а иногда и большее число входов. Так, например, 8-входовый вентиль И вырабатывает на выходе ВЫСОКИЙ уровень только в А-I >\ том случае, если ВЫСОКИЙ уровень действует на всех его входах.

Баоды

А В

Входы

0 0

0 0

0 1

0 1

1 0

1 0

а

ИНВЕРТОР

А

Рис. 8.2.

Рис. 8.3.

Рис. 8.4.

Для обозначения операции И в булевой алгебре используется точка ( ), которая может быть опущена; функция Л и S записывается как А-В, или просто Л В.

Инвертор (функция НЕ). Часто бывает нужно получить дополнение (инверсию) логического сигнала. Эту функцию выполняет инвертор - вентиль, имеющий только один вход (рис. 8.4).

Для обозначения операций НЕ в булевой алгебре используется черта над символом, а иногда апостроф; НЕ А записывается как А или как Л'.

И-НЕ и ИЛИ-НЕ. Вентили могут совмещать инвертирование о выполнением функций И и ИЛИ. Как вскоре будет показано, такие вентили имеют более широкое распространение, чем просто И и ИЛИ (рис. 8.5).


Искшчакидее ИЛИ

А В

А В

а

В 0

0 Q

а

0 1

1 0

1 0

t \

а

Рис. 8,6.



1 ... 47 48 49 50 51 52 53 ... 59
© 2004-2024 AVTK.RU. Поддержка сайта: +7 495 7950139 в тональном режиме 271761
Копирование материалов разрешено при условии активной ссылки.
Яндекс.Метрика