Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы схемотехники. 2011

.pdf
Скачиваний:
161
Добавлен:
02.02.2015
Размер:
5.83 Mб
Скачать

ЛЕКЦИЯ 1 ЦИФРОВАЯ ЭЛЕКТРОНИКА.

КОДИРОВАНИЕ И СИСТЕМЫ СЧИСЛЕНИЯ

Принципы цифровой электроники Сигнал – это любая физическая величина (например, температура, давле-

ние воздуха, интенсивность света, сила тока), изменяющаяся во времени. Благодаря этому изменению сигнал может нести в себе какую-то информацию.

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

Аналоговый сигнал – это сигнал, который может принимать любые значения в определенных пределах. Устройства, работающие только с аналоговыми сигналами, называются аналоговыми устройствами. Название "аналоговый" подразумевает, что сигнал изменяется аналогично физической величине, то есть непрерывно.

Цифровой сигнал – это сигнал, который может принимать только два (иногда – три) значения, причем разрешены некоторые отклонения от этих значений (рис. 1). Например, напряжение может принимать два значения: от 0 до 0,5 В (уровень нуля) или от 2,5 до 5 В (уровень единицы). Устройства, работающие исключительно с цифровыми сигналами, называются цифровыми устройствами.

Рис. 1. Электрические сигналы: аналоговый (слева) и цифровой (справа)

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

Наводки и помехи – это сигналы, приходящие на электронную систему извне и искажающие полезный сигнал (например, электромагнитные излучения от радиопередатчиков или от трансформаторов)

Все операции, производимые электронными устройствами над сигналами, можно условно разделить на три большие группы:

обработка (или преобразование);

передача;

хранение.

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

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

Рис. 2. Искажение шумами и наводками аналогового (слева)

ицифрового (справа) сигналов

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

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

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

Кроме того, цифровой сигнал передает информацию только двумя уровнями и изменением одного своего уровня на другой, а аналоговый – еще и каждым текущим значением своего уровня, то есть он более емкий с точки зрения передачи информации. Поэтому для передачи того объема информации, который содержится в одном аналоговом сигнале, чаще всего приходится использовать несколько цифровых (чаще всего от 4 до 16).

Для преобразования аналоговых сигналов в цифровые и наоборот требуется применение специальной аппаратуры (аналого-цифровых (АЦП) и цифроаналоговых преобразователей (ЦАП)).

Системы счисления

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

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

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

Двоичный код

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

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

Двоичное число имеет п разрядов перед запятой и т разрядов после запятой. Отдельным битам присвоены, в соответствии с их позицией в слове, весовые коэффициенты 2i .На основе этого можно рассчитать эквивалентное десятичное число :

(1)

Рассмотрим в качестве примера двоичное число 10110,011B, которое как двоичное число отмечено символом В (binary). Оно интерпретируется как:

(2)

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

Преобразование десятичных чисел в двоичные числа является более сложным. Оно может быть описано различными алгоритмами для целочисленной и дробной части. В приведенном выше примере с числом 22,37510 алгоритм должен быть представлен следующим образом:

• Вначале формируется целочисленная часть двоичного числа. Для этого целочисленная часть десятичного числа последовательно делится на 2 и записывается остаток, пока не будет получен 0.

Соответствующее числу 2210 двоичное число представляет собой 101102.

• Второй шаг заключается в преобразовании дробной части десятичного числа в дробную часть двоичного числа. Вначале дробная часть десятичного числа умножается на 2. Целочисленная часть отделяется, она образует разряды двоичного числа с наименьшими значениями. Процесс повторяется, как показано ниже.

В этом примере остаток равен 0. Но так бывает не всегда. В нормальном случае дробная часть эквивалентного двоичного числа имеет бесконечно большое количество разрядов. В этом случае необходимо удовольствоваться определенным числом разрядов после запятой и ограничить этим точность. В нашем случае 0,37510 точно соответствует 0,0112. На основе целочисленной и дробной частей получаем искомое двоичное число 10110,0112.

Арифметические операции с фиксированной запятой

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

1. Целочисленное сложение в двоичной системе

Целочисленное сложение двух чисел А и В производится в двоичной системе точно так же, как и в десятичной системе – по разрядам. В каждом разряде должны быть просуммированы обе двоичных цифры an и bп и перенос из предыдущего разряда Cn-1 При сложении возникают (табл. 1) новая сумма Sn и новый перенос Сп..

Например:

Таблица 1. Двоичное сложение

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

2. Сложение чисел с фиксированной запятой

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

Например:

3. Представление с помощью обратного кода

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

Поразрядное дополнение формируется путем замены всех нулей на единицы и обратно. Следовательно, поразрядным дополнением 0001 является 1110. По-

разрядное дополнение двоичного числа А обозначено Очевидно, что при представлении п-битового слова имеем:

(3)

4. Представление с помощью двойного дополнения (точное дополнение)

Точное дополнение АK2 образуется из поразрядного дополнения -путем прибавления 1:

(4)

Следовательно, с учетом (3) будет справедливо:

(5)

5. Умножение

Умножение выполняется так же, как и для десятичной системы. Рассмотрим пример умножения на основе двоичной системы для чисел

Наибольший из ожидаемых результатов Е умножения двух п- битовых слов представляет собой:

.

Следовательно, результат умножения двух п- битовых чисел имеет длину 2п бит. Но он меньше, чем максимальное представляемое с помощью 2п бит двоичное число 22n - 1.

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

При умножении чисел с фиксированной запятой вначале числа умножаются без учета запятой. Затем запятая вводится в соответствии с правилом: умножение двух чисел с п и k разрядами после запятой даст произведение с п + k разрядами после запятой.

6. Деление

Для деления можно использовать тот же самый алгоритм, что и в десятичной системе. Продемонстрируем это на примере уравнения

Соответственно при делении числа с п

разрядами после запятой на число с k

разрядами после запятой частное имеет п — k

разрядов после запятой. Так в соот-

210 – 1 = 1023
27 – 1 = 127

ветствии с верхним примером имеем: . Деление чисел с точным дополнением также можно свести к умножению и сложению.

Двоичные числа с плавающей запятой

Подобно десятичному числу с плавающей запятой Z10 = M × 10 E, двоичное число с плавающей запятой определяется как Z2 = M × 2 E, где M – мантисса и E – порядок числа.

Пример.

 

225,8125

десятичное число с фиксированной запятой

= 2,258125 E 2

десятичное число с плавающей запятой

= 11100001,1101

двоичное число с фиксированной запятой

= 1,11000011101 E 0111 двоичное число с плавающей запятой

Внастоящее время расчеты с плавающей запятой выполняются преимущественно с использованием представления чисел в стандарте IEEE-P754. Этот числовой стандарт задействуется не только в вычислительных устройствах, но и в персональных компьютерах и даже в системах обработки сигналов и поддерживается соответствующими арифметическими процессорами. Пользователь может выбирать между двумя точностями вычислений: 32-разрядным форматом одинарной точности и 64-разрядным форматом двойной точности. В самих же устройствах применяется 80-разрядный формат. В формате выделяются три области: знаковый бит S, порядок числа E и мантисса M. Длина слов мантиссы и порядка числа зависят от выбранной точности представления конечного результата вычислений. Согласно стандарту IEEE, мантисса определяется числами m0, m1, m2 и т.д. Обычно мантиссу нормируют на m0:

аее модуль лежит в интервале 1 ≤ M < 2. Цифра m0 = 1 применяется только во внутреннем формате; в остальных форматах она скрыта и должна быть дополнена перед началом расчетов.

Вформате IEEE порядок числа E задается как двоичное число со смещением, чтобы можно было определять положительные и отрицательные значения. Для расчетов необходимо вычитать смещение величиной, равной половине диапазона изменения порядка, что составляет:

при одинарной точности, при двойной точности, 214 – 1 = 16383 при внутренней точности.

Знак всего числа определяется знаковым битом S, поэтому здесь имеет место отображение числа с использованием модуля и знака. Таким образом, число в

формате IEEE определяется по формуле:

Шестнадцатеричный код

На практике наряду с двоичным кодом внедрился шестнадцатеричный код, поскольку он обеспечивает лучшее обозрение длинных двоичных чисел. Шестнадцать шестнадцатеричных цифр определены в табл. 2. Шестнадцатеричные цифры больше девяти представлены буквами A-F. Для преобразования двоичных в шестнадцатеричные числа объединяют по четыре цифры двоичного числа, которые интерпретируются как шестнадцатеричный разряд. Благодаря этому шестнадцатеричное число занимает только четверть разрядов, занимаемых двоичным числом одинаковой величины. Например:

Итак, справедливо выражение 011011001111=6CF16.

Таблица 2. Шестнадцатеричные числа.

В качестве обозначения шестнадцатеричного числа используется индекс Н, Преобразование шестнадцатеричного числа в десятичное число и обратно проще всего производить через соответствующее двоичное число. Также возможно производить преобразование с помощью алгоритма, как при преобразовании двоичного числа в десятичное число. Обратное преобразование производится аналогично.

Восьмеричный код

Восьмеричный код применяется аналогично шестнадцатеричному, только объединяются лишь по 3 разряда двоичного числа. Для восьмеричного кода применяются цифры десятичного кода от 0 до 7, он обозначается индексом 8.

Например:

Следовательно, справедливо 110101100011=65438.

Код Грея

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

смотрим переключение от в двоичном коде:

При этом переключении изменяются биты 0 и 1. Поэтому при одновременном переключении непосредственно достигается новое число. Если вначале изменяется бит 0, то появляется число 0000, и только когда изменяется бит 1, получаем правильное число 0010. Если же сначала изменяется бит 1 и потом изменяется бит 0, то в промежутке возникает число 0011. Коды Грея позволяют избежать этой очень серьезной ошибки за счет того, что при переходе от одного кодового слова к следующему изменяется только один разряд. В табл. 3 представлен 4- разрядный код Грея. В дополнение к вышесказанному показанный код имеет свойство, которое заключается в его цикличности, так как также и при переходе от высшего числа (15D) низшему числу изменяется только один разряд. Циклические коды Грея могут быть сконструированы для всех прямых длин периодов.

Таблица 3. Пример 4-разрядного кода Грея.

Двоично-десятичный код

Если мы хотим подвести к десятичным цифрам некоторые отметки, то для этого подойдет код, в котором отдельным десятичным цифрам приданы двоичнокодированные кодовые слова. Этот код обозначается как двоично-десятичный код