Анализ цифрового сигнала в получателе сигнала (пример)

Jan 16, 2021 06:39

Предыдущие посты:
1. Последовательная и параллельная передача данных.
2. Почему аналоговый сигнал так называется (на примере звука).
3. Непрерывность аналогового сигнала.
4. Что такое цифровой сигнал.
5. Прерывность цифрового сигнала.
6. Синхронизация при передаче цифрового сигнала.

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

В русской википедии есть две подходящих под это понятие статьи:
https://ru.wikipedia.org/wiki/Логический_вентиль
https://ru.wikipedia.org/wiki/Логические_элементы

На мой взгляд, «логический вентиль» (по-английски «logic gate») и «логический элемент» - это примерно одно и то же. Думаю, логические вентили - это самые простые логические элементы, на базе которых строятся более сложные логические элементы вроде триггеров.

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

Логические элементы делят на две группы: устройства комбинационной логики (по-английски «combinational logic») и устройства секвенциальной (последовательностной) логики (по-английски «sequential logic»):
https://ru.wikipedia.org/wiki/Комбинационная_логика
https://ru.wikipedia.org/wiki/Секвенциальная_логика

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

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

https://ru.wikipedia.org/wiki/Регистр_(цифровая_техника)
https://en.wikipedia.org/wiki/Hardware_register
https://en.wikipedia.org/wiki/Shift_register

Что собой представляет регистр? Это набор соединенных между собой триггеров. Что такое «триггер»? Это логический элемент секвенциальной логики, а проще говоря ячейка памяти, которая может хранить 1 бит информации (цифровых данных). Как может быть устроен регистр? Вариантов много. Ниже я нарисовал два варианта из множества возможных:



Рисунок 1
На рисунке 1 пунктирной линией изображены границы получателя сигнала. Сигнал приходит слева от источника сигнала, который находится за пределами рисунка. В границах получателя сигнала изображен регистр, состоящий из 8 триггеров, последовательно соединенных между собой (каждый триггер изображен отдельным квадратиком).

В регистре из варианта сверху сигнал проходит последовательно через все триггеры слева направо и выходит справа. Это сдвиговый регистр (по-английски «shift register») с последовательным вводом и последовательным выводом информации (по-английски «serial-in serial-out», сокращенно «SISO»).

В регистр из варианта снизу сигнал входит слева и проходит последовательно через все триггеры слева направо, разбиваясь на биты. А затем все 8 полученных битов одновременно выходят из регистра вверх. Это сдвиговый регистр с последовательным вводом и параллельным выводом (по-английски «serial-in parallel-out», сокращенно «SIPO»). Это удобно, потому что от источника данные обычно передаются на большое расстояние последовательно, а внутри получателя сигнала (компьютера) расстояния небольшие и здесь уже может использоваться параллельная передача данных между узлами компьютера.

В принципе, можно рассмотреть, как работает один триггер регистра. Остальные работают так же. В регистрах обычно используют вид триггера, который называется «D-триггер» (по-английски «D flip-flop»). Кстати, в английском языке для обозначения триггеров есть еще слово «latch» (по-русски «защелка»). «Latch» и «flip-flop» - это два разных вида триггеров (о разнице между ними можно узнать в статье о триггерах английской википедии, в этом посте я не буду в это углубляться).

https://ru.wikipedia.org/wiki/Триггер#D-триггеры
https://en.wikipedia.org/wiki/Flip-flop_(electronics)#D_flip-flop

Рассмотрим работу D-триггера на следующем рисунке. Для схематичных изображений логических элементов в русском языке используется термин «условное графическое обозначение», сокращенно «УГО». Русские и английские условные графические обозначения несколько различаются, но всегда можно разобраться, о чем идет речь, из контекста.



Рисунок 2
На этом рисунке показаны три условных графических обозначения, которые обозначают то же самое. Первый слева - английский вариант, второй и третий - русские. В наших УГО обычно принято входы рисовать слева, выходы - справа. Буква «T» в наших вариантах, как я понимаю, означает «триггер». В третьем варианте (если считать слева) просто опущены входы «R» и «S», так как их можно посчитать второстепенными и в некоторых случаях показывать их нет необходимости. Инвертирование сигнала можно обозначить и черточкой над буквой выхода (в английском варианте) и кружочком (в русском варианте). Буква «Q» означает «quit» (по-русски «выход»). Зачем в триггере два выхода - прямой и инверсный - я не в курсе, для простоты буду рассматривать только один из них (второй, очевидно, всегда будет выдавать сигнал, противоположный первому).

Триггер является энергозависимым типом памяти, то есть при выключении питания хранившийся в нем бит теряется. Неизвестно, какое значение окажется в триггере при включении питания. Для начальной установки триггера (сразу после включения питания) в нужное значение (0 или 1) и нужны входы «R» (означает «reset», по-русски «сбросить», то есть сбросить в значение 0) и «S» (означает «set», по-русски «установить», то есть установить в значение 1).

Итак, остались главные входы: «D» (означает «data», по-русски «данные», потому что на этот вход подается цифровой сигнал от источника сигнала) и «C» или «Clk» (означает «clock», по-русски дословно «часы», но в данном случае имеется в виду «clock signal», что по-русски значит «тактовый сигнал»).

https://ru.wikipedia.org/wiki/Тактовый_сигнал
https://en.wikipedia.org/wiki/Clock_signal

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



Рисунок 3
На рисунке 3 изображены графики двух цифровых сигналов, один под другим. Сверху изображен цифровой сигнал с цифровыми данными (двоичное число 101) от источника сигнала, снизу - тактовый сигнал. Вертикальную (уровень сигнала) и горизонтальную (время) оси графиков я не стал рисовать.

Вышеуказанный D-триггер срабатывает по переднему фронту (по-английски «rising edge») тактового сигнала. На рисунке 3 я обозначил передний фронт (переход от нижнего уровня сигнала к верхнему) тактового сигнала красным цветом. Задний фронт (переход от верхнего уровня сигнала к нижнему) тактового сигнала я обозначил зеленым цветом.

Как только на вход «C» триггера приходит передний фронт тактового сигнала, триггер берет образец цифрового сигнала с данными на входе «D» и сохраняет его в себе, то есть до следующего срабатывания (следующего взятия образца сигнала с данными по команде тактового сигнала) триггера на выходе «Q» триггера будет выдаваться полученный (и сохраненный) образец сигнала.

Таблица с входящими и исходящими значениями («таблица истинности») для описанного случая:

CDQновый
Передний фронт00
Передний фронт11
Другой участок тактового сигналабез разницыQсохраненный

То, что наш D-триггер срабатывает именно по переднему фронту тактового сигнала, на его УГО (см. рисунок 2) изображено короткой косой линией, перечеркивающей место входа «C».

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

Образование

Previous post Next post
Up