Меню

Уровни напряжения логического нуля



Логические уровни и операции

Вы наверняка уже слышали о таком понятии, как напряжение (англ. voltage), которое измеряется в Алессандро Вольтах? Напряжение может быть разным: 220 В, 110 В, 5 В, 3 В и даже 3,3 В. Однако в цифровой технике нам не нужен такой большой разброс значений. Если объяснять совсем просто: когда мы подадим на светодиод, скажем, 5 вольт (так называемая «логическая единица»), он начнет светиться. Если же мы подадим 0 вольт (так называемый «логический ноль»), то светодиод гореть не будет. У чисел «1» и «0» есть и альтернативные названия в зависимости от области их применения: «истина» (англ. true) или «ложь» (англ. false), «высокое состояние» (англ. high) или «низкое состояние» (англ. low).

Логический сигнал – это сигнал, принимающий два возможных значения — «истина» или «ложь», «высокое» или «низкое» состояние, «0» или «1». Конечно, мы живем не в идеальном мире, и получить ровно 5 вольт мы не можем, как и не можем получить чистый ноль (мы лишь «договорились», что он является нулем относительно тех 5 вольт). Что же делать в таком случае? Абстрактные «0» и «1» сильно бы упростили нам жизнь. Уже из определения логического сигнала можно догадаться, что есть понятие «логический уровень». Существуют стандарты, определяющие допустимые уровни напряжений, логических сигналов. В зависимости от технологии исполнения (КМОП, ТТЛ) эти уровни не всегда совпадают. STM32 питается от напряжения 3,3 В, т.е. «высокий уровень» для нашего МК – 3,3 В. «Низкий уровень», соответственно — это 0 В. Следует обратить внимание на то, что в стандартах в качестве логических уровней приведены не одиночные значения напряжений, а диапазоны значений. А между низким и высоким уровнями есть буферная зона. Она нужна для того, чтобы избежать «дребезга состояний», который может возникнуть, если значение сигнала будет колебаться около граничного значения. Ниже приведены некоторые стандарты напряжений.

Logic levels

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

Читайте также:  Стабилизаторы напряжения бастион теплоком

Алгебра логики, или булева алгебра, оперирует логическими переменными и включает три базовых логических операции:

  • логическое «И» (англ. and), конъюнкция или логическое умножение, обозначается ∧ или в языке Си & ;
  • логическое «ИЛИ» (англ. or), дизъюнкция или логическое сложение, обозначается ∨ или в языке Си | ;
  • логическое «НЕ» (англ. not), изменение значения, инверсия или отрицание, обозначается ¬ или в языке Си

Таблицы истинности для этих операций:

A B A & B A | B ¬ A
1
1 1 1
1 1
1 1 1 1

Ниже приведены аксиомы булевой алгебры.

  1. Коммутативность (переместительный закон)

Источник

Теоретическая часть. Как известно, в цифровой электронике логический «0» и логическая «1» представляются соответствующими уровнями напряжения

Как известно, в цифровой электронике логический «0» и логическая «1» представляются соответствующими уровнями напряжения. Например, транзисторно-транзисторная логика (ТТЛ) использует 0В в качестве логического нуля и 5В как логическую единицу (или напряжения, которые близки к данным). В других структурах (КМОП и др.) напряжения необязательно равны 0 и 5 вольт соответственно. Это говорит о том, что логические уровни могут быть представлены любыми парами напряжения на наше усмотрение – их выбор не настолько важен, как может показаться.

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

Существует достаточно кодов, используемых для передачи в линиях связи. Вот четыре из них :

– Non-return to zero — level (bipolar) (NRZ-L)

Оригинальный цифровой сигнал сохраняется, но сдвигается симметрично относительно 0В.

– Bi-phase — level (Bi$-L также известен как Манчестерский код)

Уровень меняется на середине длительности бита с +V на – V, если это логическая «1», и с – V на + V, если это логический «0».

– Return to zero — alternate mark inversion (RZ-AMI)

Как видно из рисунка 1, этот код использует нулевой уровень напряжения в качестве логического «0» и импульсы длиной в полбита для логической единицы. При этом, полярность импульсов чередуется (даже если единицы идут не одна за другой).

– Non-return to zero — mark (bipolar) (NRZ-M)

В этом коде напряжение меняет уровень, если поступает «1», и не меняет, если поступает «0».

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

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

Восстановление тактовой частоты битов (Bit-clock regeneration).

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

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

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

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

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

1. Собрать схему, показанную на рисунке15.3:

Черные провода от осциллографа заземлить – т.е. вставить в ячейки GND.

2.Установить регулятор кода в положение 00.

Схема может быть представлена блочной диаграммой:

Цифровой сигнал с частотой 2 кГц обеспечивает синхронизацию источнику генерирования случайной последовательности. С выхода генератора последовательностей (выход Х) снимается 31-битное двоичное слово. Затем оно преобразуется с помощью кода, задаваемого регулятором (четыре сочетания 0 и 1 соответствуют четырем кодам) и подается на выход Line.

3.Запустить осциллограф NI Elvis Oscilloscope.

4. Установить следующие настройки:

-Timebase на 1ms/div

-Trigger Type на Digital

5. Активировать второй канал осциллографа и сравнить исходную и перекодированную последовательности.

6. Рассмотреть остальные три кода, последовательно переключая регуляторы от 01 до 11.

Какой из четырех кодов является биполярным?

Какой из кодов использует нулевое напряжение для представления логического «0»?

Используя правило RZ-AMI кода определить количество логических «1» в отображаемой части выходной последовательности.

Часть 2. Рассмотрение сигнала в частотной области.

1. Закрыть осциллограф.

2. Запустить Dynamic Signal Analyzer VI.

3. Установите соответствующие настройки:

— Source Channel на SCOPECH1 FFT Settings

— Frequency Span на 40,000

— Resolution на 400

— Window на 7 Term B-Harris

– Type на Digital

— Voltage Range на ±10V

— Weighting to Exponential

— # of Averages to 3

Правильно настроенный анализатор сигнала должен показать следующую картинку:

Рисунок 15.5

Сравните спектральные диаграммы четырех кодов.

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

Чтобы привести одно из доказательств этого, замерьте частоту первого нуля в спектре у всех четырех кодов:

Код Частота первого нуля
NRZ-L
Bi*-L
RZ-AMI
NRZ-M

Часть 3. Восстановление частоты битов.

1. Измените уже собранную схему как показано на рисунке 15.6:

2. Установить регулятор Gain усилителя в среднее положение, а регулятор частоты среза фильтра fc в крайнее правое.

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

3. Рассмотрите спектры полученных сигналов для всех четырех кодов.

Источник