Мультиплексоры: Принципы Работы и Преобразование Данных
Введение
Мультиплексоры и демультиплексоры — основные компоненты цифровых схем, обеспечивающие управление потоками сигналов. В этой статье мы кратко рассмотрим их принципы работы и области применения.
Мультиплексор
Мультиплексор — это цифровое устройство, которое выбирает один из нескольких входных сигналов и передаёт его на один выход. Выбор конкретного входа осуществляется с помощью управляющих линий, называемых линиями выбора.
Мультиплексор, или MUX, также известный как селектор данных, представляет собой комбинационную схему с несколькими входными линиями, одной выходной линией и несколькими линиями выбора. Некоторые мультиплексоры в виде интегральных схем обеспечивают комплементарные выходы. Кроме того, в ИС-мультиплексорах почти всегда присутствует вход ENABLE или STROBE, который должен быть активен для корректной работы устройства. Мультиплексор выбирает двоичную информацию с одного из входов в зависимости от логического состояния линий выбора и передает ее на выход. Если имеется n линий выбора, максимальное число возможных входных линий составляет 2n, и такой мультиплексор называется мультиплексором типа «2n к 1» или «2n × 1».
Схема и таблица истинности базового мультиплексора 4-к-1.
Таблица истинности мультиплексора 4-к-1.
X1 | X0 | Y |
---|---|---|
0 | 0 | I0 |
0 | 1 | I1 |
1 | 0 | I2 |
1 | 1 | I3 |
Схема и таблица истинности базового мультиплексора 8-к-1.
Чтобы познакомить вас с практическими мультиплексорами в виде интегральных схем, отметим, что ИС с номером 74151 из семейства TTL является мультиплексором «8 к 1», а ИС с номером 74150 — мультиплексором «16 к 1». Мультиплексор «8 к 1» имеет активный низкий вход ENABLE и предоставляет комплементарные выходы.
Таблица истинности мультиплексора 8-к-1.
Вход C | Вход B | Вход A | Вход включения | Выход Y | Выход W |
---|---|---|---|---|---|
X | X | X | H | L | |
L | L | L | L | D0 | |
L | L | H | L | D1 | |
L | H | L | L | D2 | |
L | H | H | L | D3 | |
H | L | L | L | D4 | |
H | L | H | L | D5 | |
H | H | L | L | D6 | |
H | H | H | L | D7 |
Примечания:
- Y, W: Выходы
- G: Вход включения
- A, B, C: Входы выбора
- D0-D7: Входные данные
Схема и таблица истинности базового мультиплексора 16-к-1.
Мультиплексор «16 к 1» также имеет активный низкий вход ENABLE, но при этом обладает активным низким выходом.
Таблица истинности мультиплексора 16-к-1.
Вход D | Вход C | Вход B | Вход A | Вход включения | Выход W |
---|---|---|---|---|---|
X | X | X | X | H | |
L | L | L | L | L | |
L | L | L | H | L | |
L | L | H | L | L | |
L | L | H | H | L | |
L | H | L | L | L | |
L | H | L | H | L | |
L | H | H | L | L | |
L | H | H | H | L | |
H | L | L | L | L | |
H | L | L | H | L | |
H | L | H | L | L | |
H | L | H | H | L | |
H | H | L | L | L | |
H | H | L | H | L | |
H | H | H | L | L | |
H | H | H | H | L |
Внутренняя структура мультиплексора
Давайте кратко рассмотрим, как устроена комбинационная логическая схема внутри мультиплексора на примере мультиплексора «2 к 1». Функциональная таблица этого устройства
( S ) | ( Y ) |
---|---|
0 | I0 |
1 | I1 |
Схема работает следующим образом:
- При S = 0 выход определяется булевой функцией: Y = I0
- При S = 1 выход определяется булевой функцией: Y = I1
Таким образом, входы I0 и I1 подключаются к выходу при S = 0 и S = 1 соответственно. Расширяя эту концепцию, рассмотрим логическую схему мультиплексора «4 к 1». Комбинации сигналов 00, 01, 10 и 11 на линиях выбора переключают на выход I0, I1, I2 и I3 соответственно. Работа этой схемы описывается следующей булевой функцией:
Y = I_0 \overline{S_1} \overline{S_0} + I_1 \overline{S_1} S_0 + I_2 S_1 \overline{S_0} + I_3 S_1 S_0
Аналогично, мультиплексор «8 к 1» описывается булевой функцией:
\begin{aligned} Y =\ & I_0 \overline{S_2} \overline{S_1} \overline{S_0} + I_1 \overline{S_2} \overline{S_1} S_0 + I_2 \overline{S_2} S_1 \overline{S_0} + I_3 \overline{S_2} S_1 S_0 \\ &+ I_4 S_2 \overline{S_1} \overline{S_0} + I_5 S_2 \overline{S_1} S_0 + I_6 S_2 S_1 \overline{S_0} + I_7 S_2 S_1 S_0 \end{aligned}
Как отмечалось ранее, мультиплексоры обычно имеют вход ENABLE, который можно использовать для управления функцией мультиплексирования. Когда этот вход активен, то есть находится в состоянии логической «1» или логического «0» (в зависимости от того, активен ли вход ENABLE по высокому или низкому уровню соответственно), выход также становится активным. Мультиплексор функционирует нормально. Когда вход ENABLE неактивен, выход отключается и постоянно находится либо в состоянии логического «0», либо в состоянии логической «1», в зависимости от того, является ли выход прямым или инверсным. На рисунке
показано, как можно модифицировать мультиплексор «2 к 1» для включения входа ENABLE. Функциональная таблица этого модифицированного мультиплексора
S | EN | Y |
---|---|---|
X | 0 | 0 |
0 | 1 | I0 |
1 | 1 | I1 |
Здесь вход ENABLE активен при высоком уровне. Некоторые ИС содержат более одного мультиплексора. В таком случае вход ENABLE и входы выбора общие для всех мультиплексоров внутри одного корпуса ИС. На рисунке показан мультиплексор «4 к 1» с входом ENABLE, активным по низкому уровню.
Реализация булевых функций с помощью мультиплексоров
Одним из наиболее распространённых применений мультиплексора является его использование для реализации комбинационных логических булевых функций. Самый простой способ сделать это — использовать мультиплексор «2n к 1» для реализации булевой функции от n переменных. Входные линии, соответствующие каждому минтерму, присутствующему в булевой функции, устанавливаются в логическое состояние «1». Остальные минтермы, отсутствующие в булевой функции, отключаются путём установки их соответствующих входных линий в логическое состояние «0».
Например, использование мультиплексора «8 к 1» для реализации булевой функции, заданной уравнением:
f(A, B, C) = \sum m(2, 4, 7)
Уравнение с переменными A, B и C можно записать так:
f(A, B, C) = \overline{A} \cdot B \cdot \overline{C} + A \cdot \overline{B} \cdot C + A \cdot B \cdot \overline{C}
Входы, соответствующие трём минтермам, присутствующим в данной булевой функции, подключены к логическому «1». Оставшиеся пять возможных минтермов, отсутствующих в функции, подключены к логическому «0».
Однако существует более эффективный способ достижения того же результата. Можно использовать мультиплексор типа «2n-1 к 1» для реализации булевой функции с n + 1 переменными. Процедура такова: из n + 1 переменных n подключаются к n линиям выбора мультиплексора «2n-1 к 1». Оставшаяся переменная используется на входных линиях. Различные входные линии подключаются к одному из следующих сигналов: «0», «1», оставшаяся переменная или её инверсия. Определить, какой сигнал подключать к каждой линии, можно с помощью простой процедуры. Эта процедура проиллюстрирована на примере булевой функции, приведённой выше.
Это булевая функция от трёх переменных. Обычно для её реализации потребовался бы мультиплексор «8 к 1». Сейчас мы покажем, как её можно реализовать с помощью мультиплексора «4 к 1». У выбранного мультиплексора две линии выбора. Первый шаг — составить таблицу истинности данной булевой функции.
Минтерм | A | B | C | f(A, B, C) |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 0 |
2 | 0 | 1 | 0 | 1 |
3 | 0 | 1 | 1 | 0 |
4 | 1 | 0 | 0 | 0 |
5 | 1 | 0 | 1 | 1 |
6 | 1 | 1 | 0 | 1 |
7 | 1 | 1 | 1 | 1 |
На следующем этапе две из трёх переменных подключаются к двум линиям выбора, причём переменная старшего разряда подключается к линии выбора старшего разряда. В данном случае переменные B и C выбраны для линий выбора и подключаются соответственно к S1 и S0. Затем строится таблица, в которой минтермы располагаются в двух строках под входами мультиплексора. Первая строка содержит термы, где оставшаяся переменная A инвертирована, а вторая — где A без инверсии. Это легко сделать с помощью таблицы истинности.
Необходимые минтермы идентифицируются и помечаются в этой таблице. Затем каждый столбец входов рассматривается отдельно. Если ни один минтерм в определённом столбце не помечен, под ним записывается «0». Если помечены оба, записывается «1».
Если выделен только один минтерм, записывается соответствующая переменная (инверсная или нет). Затем входные линии устанавливаются в соответствующее логическое состояние. В данном случае
I0, I1, I2 и I3 будут подключены к A, 0, A и A соответственно.
Не обязательно выбирать только самую левую переменную для использования на входах мультиплексора. Можно использовать любую переменную, если соответствующим образом составить таблицу реализации. В рассмотренном выше примере переменная A была выбрана для входных линий, и первая строка таблицы реализации содержала записи, где A была инверсной, а вторая строка — где A была без инверсии. Если выбрать переменную C в качестве оставшейся, таблица реализации изменится соответствующим образом.
I0 | I1 | I2 | I3 | |
---|---|---|---|---|
0 | 2 | 4 | 6 | |
C | 1 | 3 | 5 | 7 |
0 | C |
Аппаратная реализация в этом
случае будет отличаться. Если переменная B выбрана как оставшаяся, таблица реализации и аппаратная реализация также изменятся соответственно.
I0 | I1 | I2 | I3 | |
---|---|---|---|---|
B̅ | 0 | 1 | 4 | 5 |
B | 2 | 3 | 6 | 7 |
B | 0 | B̅ | B |
Мультиплексоры для преобразования данных из параллельного в последовательный формат
Хотя во многих цифровых системах данные обрабатываются параллельно для повышения скорости обработки, при передаче данных на относительно большие расстояния это делается последовательно. Параллельная передача в данном случае нежелательна, так как требует большого числа линий связи. Мультиплексоры можно использовать для преобразования данных из параллельного в последовательный формат.
Один из таких методов использует мультиплексор «8 к 1» для преобразования восьмибитных параллельных двоичных данных в последовательную форму. Трёхбитный счётчик управляет линиями выбора. По мере того как счётчик проходит значения от 000 до 111, выход мультиплексора проходит через I0 до I7. Процесс преобразования занимает восемь тактовых циклов. В данной схеме трёхбитный счётчик реализован с помощью трёх триггеров типа «переключение». Тем не менее, в виде интегральных схем доступны различные типы и сложности счётчиков. Триггеры и счётчики рассматриваются подробно в главах 10 и 11 соответственно.
Пример
Реализуем булеву функцию в виде произведения сумм, выраженную через минтермы 1, 2, 5, с помощью подходящего мультиплексора.
Решение
- Пусть булева функция имеет вид f(A, B, C) = произведение по минтермам 1, 2, 5.
- Эквивалентное выражение в виде суммы произведений можно записать как f(A, B, C) = сумма по минтермам 0, 3, 4, 6, 7.
Таблица истинности для данной булевой функции приведена в таблице.
C | B | A | f(A, B, C) |
---|---|---|---|
0 | 0 | 0 | 1 |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | 1 |
Функцию можно реализовать с помощью мультиплексора «4 к 1» с двумя линиями выбора. Переменные A и B выбраны для линий выбора. Таблица реализации, составленная на основе таблицы истинности, приведена в таблице.
I0 | I1 | I2 | I3 | |
---|---|---|---|---|
C̅ | 0 | 1 | 2 | 3 |
C | 4 | 5 | 6 | 7 |
1 | 0 | C | 1 |
Аппаратная реализация представлена на рисунке.