Эта статья находится в разработке!
Определение: |
Мультиплексор (англ. multiplexer, или mux) — логическая схема, имеющая [math]2^n + n[/math] входов [math]x_0[/math], [math]x_1[/math], [math]\ldots[/math], [math]x_{2^n-1}[/math], [math]s_0[/math], [math]s_1[/math], [math]\ldots[/math], [math]s_{n-1}[/math] и один выход [math]z[/math], на который подаётся значение на входе [math]x_i[/math], где [math]i[/math] — число, которое кодируется входами [math]s_0[/math], [math]s_1[/math], [math]\ldots[/math], [math]s_{n-1}[/math]. |
Определение: |
Демультиплексор (англ. demultiplexer, или demux) — логическая схема, имеющая [math]n+1[/math] входов [math]s_0[/math], [math]s_1[/math], [math]\ldots[/math], [math]s_{n-1}[/math], [math]x[/math] и [math]2^n[/math] выходов [math]z_0[/math], [math]z_1[/math], [math]\ldots[/math], [math]z_{2^n-1}[/math]. На все выходы подаётся [math]0[/math] кроме выхода [math]z_i[/math], на который подаётся значение на входе [math]y[/math], где [math]i[/math] — число, которое кодируется входами [math]s_0[/math], [math]s_1[/math], [math]\ldots[/math], [math]s_{n-1}[/math]. |
Принцип работы мультиплексора
[math]2[/math]—to—
[math]1[/math] мультиплексор
[math]4[/math]—to—
[math]1[/math] мультиплексор
Мультиплексор 2-to-1
Рассмотрим мультиплексор [math]2[/math]-to-[math]1[/math] (это значит, что есть всего два входа [math]x_0[/math] и [math]x_1[/math], значения которых могут подаваться на вход [math]z[/math]). Переберём всевозможные варианты значений на входах. Если на [math]s[/math] подавать [math]0[/math], то на выход [math]z[/math] будет подаваться то же значение, которое подаётся на вход [math]x_0[/math], т.е. в данном случае значение на входе [math]x_1[/math] нас не интересует. Аналогично, если на вход [math]s[/math] подавать [math]1[/math], то на выход [math]z[/math] будет подаваться то же значение, которое подаётся на вход [math]x_1[/math]. Для более лучшего понимания посмотрим на таблицу истинности.
[math]s[/math] |
[math]x_0[/math] |
[math]x_1[/math] |
[math]z[/math]
|
[math]\textbf{0}[/math] |
[math]\textbf{0}[/math] |
[math]?[/math] |
[math]\textbf{0}[/math]
|
[math]\textbf{0}[/math] |
[math]\textbf{1}[/math] |
[math]?[/math] |
[math]\textbf{1}[/math]
|
[math]\textbf{1}[/math] |
[math]?[/math] |
[math]\textbf{0}[/math] |
[math]\textbf{0}[/math]
|
[math]\textbf{1}[/math] |
[math]?[/math] |
[math]\textbf{1}[/math] |
[math]\textbf{1}[/math]
|
Мультиплексор 4-to-1
Также рассмотрим мультиплексор [math]4[/math]-to-[math]1[/math] (это значит, что есть четыре входа [math]x_0[/math], [math]x_1[/math], [math]x_2[/math] и [math]x_3[/math], значения которых могут подаваться на выход [math]z[/math]). Также переберём всевозможные варианты значений на входах. Тут уже [math]2[/math] входа [math]s_0[/math] и [math]s_1[/math], которые определяют, значение какого из входов [math]x_0[/math], [math]x_1[/math], [math]x_2[/math] или [math]x_3[/math] будет подаваться на выход [math]z[/math]. Если [math]s_0 = s_1 = 0[/math], то на выход [math]z[/math] будет подаваться значение входа [math]x_0[/math], если [math]s_0 = 1[/math] и [math]s_1 = 0[/math] — то значение [math]x_1[/math], если [math]s_0 = 0[/math] и [math]s_1 = 1[/math] — то значение [math]x_2[/math], в противном случае — значение [math]x_3[/math]. Для более лучшее понимания рекомендуется обратиться к таблице истинности.
[math]s_0[/math] |
[math]s_1[/math] |
[math]x_0[/math] |
[math]x_1[/math] |
[math]x_2[/math] |
[math]x_3[/math] |
[math]z[/math]
|
[math]\textbf{0}[/math] |
[math]\textbf{0}[/math] |
[math]\textbf{0}[/math] |
[math]?[/math] |
[math]?[/math] |
[math]?[/math] |
[math]\textbf{0}[/math]
|
[math]\textbf{0}[/math] |
[math]\textbf{0}[/math] |
[math]\textbf{1}[/math] |
[math]?[/math] |
[math]?[/math] |
[math]?[/math] |
[math]\textbf{1}[/math]
|
[math]\textbf{1}[/math] |
[math]\textbf{0}[/math] |
[math]?[/math] |
[math]\textbf{0}[/math] |
[math]?[/math] |
[math]?[/math] |
[math]\textbf{0}[/math]
|
[math]\textbf{1}[/math] |
[math]\textbf{0}[/math] |
[math]?[/math] |
[math]\textbf{1}[/math] |
[math]?[/math] |
[math]?[/math] |
[math]\textbf{1}[/math]
|
[math]\textbf{0}[/math] |
[math]\textbf{1}[/math] |
[math]?[/math] |
[math]?[/math] |
[math]\textbf{0}[/math] |
[math]?[/math] |
[math]\textbf{0}[/math]
|
[math]\textbf{0}[/math] |
[math]\textbf{1}[/math] |
[math]?[/math] |
[math]?[/math] |
[math]\textbf{1}[/math] |
[math]?[/math] |
[math]\textbf{1}[/math]
|
[math]\textbf{1}[/math] |
[math]\textbf{1}[/math] |
[math]?[/math] |
[math]?[/math] |
[math]?[/math] |
[math]\textbf{0}[/math] |
[math]\textbf{0}[/math]
|
[math]\textbf{1}[/math] |
[math]\textbf{1}[/math] |
[math]?[/math] |
[math]?[/math] |
[math]?[/math] |
[math]\textbf{1}[/math] |
[math]\textbf{1}[/math]
|
Логическая схема мультиплексора
Заметим, что дешифратор имеет [math]n[/math] входов и [math]2^n[/math] выходов, причём на все выходы дешифратора подаётся [math]0[/math] кроме выхода [math]z_i[/math], на который подаётся [math]1[/math], где [math]i[/math] — число, которое кодируется его входами.
Тогда давайте построим дешифратор [math]n[/math]-to-[math]2^n[/math] (это значит, что у дешифратора имеется [math]n[/math] входов и [math]2^n[/math] выходов), на вход ему подадим входы [math]s_0[/math], [math]s_1[/math], [math]\ldots[/math], [math]s_{n-1}[/math], а выходы этого дешифратора обозначим как [math]y_0[/math], [math]y_1[/math], [math]\ldots[/math], [math]y_{2^n-1}[/math], а потом с помощью гейта [math]AND[/math] соединим выход [math]y_i[/math] дешифратора с входом [math]x_i[/math] мультиплексора, потом соединим все гейты с выходом [math]z[/math]. Давайте разберёмся, почему эта схема правильная: очевидно, что если входы [math]s_0[/math], [math]s_1[/math], [math]\ldots[/math] [math]s_{n-1}[/math] кодируют вход [math]i[/math], то это значит, что только [math]y_i[/math] выход дешифратора будет иметь [math]1[/math], тогда как на остальных выходах будет [math]0[/math], значит, что значения на входах [math]x_0[/math], [math]x_1[/math], [math]\ldots[/math], [math]x_{i-1}[/math], [math]x_{i+1}[/math], [math]\ldots[/math], [math]x_{2^n-1}[/math] на ответ никак повлиять не могут. Теперь, если на входе [math]x_i[/math] было [math]0[/math], то на выходе [math]z[/math] будет [math]0[/math], если же на входе [math]x_i[/math] был [math]1[/math], то на выходе [math]z[/math] будет [math]1[/math].
Логическая схема мультиплексора [math]8[/math]-to- [math]1[/math]
|
Принцип работы демультиплексора
[math]1[/math]-to-
[math]2[/math] демультиплексор
[math]1[/math]-to-
[math]4[/math] демультиплексор
Демультиплексор 1-to-2
Рассмотрим демультиплексор [math]1[/math]-to-[math]2[/math] (это значит, что у демультиплексора два выхода). Если на вход [math]s[/math] подать значение [math]0[/math], то на выход [math]z_0[/math] будет подаваться то же значение, которое подаётся на вход [math]y[/math], а на выход [math]z_1[/math] будет подаваться [math]0[/math]. Если же на вход [math]s[/math] подать значение [math]1[/math], то на выход [math]z_0[/math] будет подаваться значение [math]0[/math], а на выход [math]z_1[/math] то же значение, которое будет подаваться на вход [math]y[/math]. Для более лучшего понимания посмотрим на таблицу истинности.
[math]s[/math] |
[math]y[/math] |
[math]z_0[/math] |
[math]z_1[/math]
|
[math]\textbf{0}[/math] |
[math]\textbf{0}[/math] |
[math]\textbf{0}[/math] |
[math]0[/math]
|
[math]\textbf{0}[/math] |
[math]\textbf{1}[/math] |
[math]\textbf{1}[/math] |
[math]0[/math]
|
[math]\textbf{1}[/math] |
[math]\textbf{0}[/math] |
[math]0[/math] |
[math]\textbf{0}[/math]
|
[math]\textbf{1}[/math] |
[math]\textbf{1}[/math] |
[math]0[/math] |
[math]\textbf{1}[/math]
|
Демультиплексор 1-to-4
Также рассмотрим демультиплексор [math]1[/math]-to-[math]4[/math] (это значит, что у демультиплексора четыре выхода). Теперь у нас уже есть два входа [math]s_0[/math] и [math]s_1[/math], которые определяют, на какой из выходов [math]z_0[/math], [math]z_1[/math], [math]z_2[/math] или [math]z_3[/math] будет подаваться значение [math]y[/math], тогда как на остальные выходы будет подаваться [math]0[/math]. В случае, когда [math]s_0 = s_1 = 0[/math], то на выход [math]z_0[/math] будет подаваться значение на входе [math]y[/math], тогда как на [math]z_1[/math], [math]z_2[/math] и [math]z_3[/math] будет подаваться [math]0[/math]. Если же [math]s_0 = 1[/math] и [math]s_1 = 0[/math], то на выходы [math]z_0[/math], [math]z_2[/math] и [math]z_3[/math] будет подаваться [math]0[/math], а на выход [math]z_1[/math] будет подаваться то же, что подаётся на вход [math]y[/math]. Аналогично разбираются случаи [math]s_0 = 0[/math], [math]s_1 = 1[/math] и [math]s_0 = s_1 = 1[/math]. Для более лучшего понимания посмотрим на таблицу истинности.
[math]s_0[/math] |
[math]s_1[/math] |
[math]y[/math] |
[math]z_0[/math] |
[math]z_1[/math] |
[math]z_2[/math] |
[math]z_3[/math]
|
[math]\textbf{0}[/math] |
[math]\textbf{0}[/math] |
[math]\textbf{0}[/math] |
[math]\textbf{0}[/math] |
[math]0[/math] |
[math]0[/math] |
[math]0[/math]
|
[math]\textbf{0}[/math] |
[math]\textbf{0}[/math] |
[math]\textbf{1}[/math] |
[math]\textbf{1}[/math] |
[math]0[/math] |
[math]0[/math] |
[math]0[/math]
|
[math]\textbf{1}[/math] |
[math]\textbf{0}[/math] |
[math]\textbf{0}[/math] |
[math]0[/math] |
[math]\textbf{0}[/math] |
[math]0[/math] |
[math]0[/math]
|
[math]\textbf{1}[/math] |
[math]\textbf{0}[/math] |
[math]\textbf{1}[/math] |
[math]0[/math] |
[math]\textbf{1}[/math] |
[math]0[/math] |
[math]0[/math]
|
[math]\textbf{0}[/math] |
[math]\textbf{1}[/math] |
[math]\textbf{0}[/math] |
[math]0[/math] |
[math]0[/math] |
[math]\textbf{0}[/math] |
[math]0[/math]
|
[math]\textbf{0}[/math] |
[math]\textbf{1}[/math] |
[math]\textbf{1}[/math] |
[math]0[/math] |
[math]0[/math] |
[math]\textbf{1}[/math] |
[math]0[/math]
|
[math]\textbf{1}[/math] |
[math]\textbf{1}[/math] |
[math]\textbf{0}[/math] |
[math]0[/math] |
[math]0[/math] |
[math]0[/math] |
[math]\textbf{0}[/math]
|
[math]\textbf{1}[/math] |
[math]\textbf{1}[/math] |
[math]\textbf{1}[/math] |
[math]0[/math] |
[math]0[/math] |
[math]0[/math] |
[math]\textbf{1}[/math]
|
Логическая схема демультиплексора
Построим схему, аналогичную схеме мультиплексора.
Тогда давайте построим дешифратор, [math]n[/math]-to-[math]2^n[/math], на входы дешифратора подадим входы [math]s_0[/math], [math]s_1[/math], [math]\ldots[/math], [math]s_{n-1}[/math], а выходы этого дешифратора мы обозначим как [math]y_0[/math], [math]y_1[/math], [math]\ldots[/math], [math]y_{2^n-1}[/math]. Поставим [math]2^n[/math] гейтов [math]AND[/math] и соединим каждый из выходов дешифратора [math]y_0[/math], [math]y_1[/math], [math]\ldots[/math], [math]y_{2^n-1}[/math] со входом [math]x[/math] с помощью гейта [math]AND[/math], потом соединим соответственные гейты с выходами [math]z_0[/math], [math]z_1[/math], [math]\ldots[/math], [math]z_{2^n-1}[/math], причем мы соединим гейт [math]AND[/math] с выходом [math]z_i[/math], если на этот гейт приходится выход дешифратора [math]y_i[/math].
Логическая схема демультиплексора [math]1[/math]-to- [math]8[/math]
|
Применение мультиплексора и демультиплексора в реальной жизни
Мультиплексоры и демультиплексоры часто используются в электронных схемах.
В качестве примера можно рассмотреть использование мультиплексоров для разделения на временные слоты и предоставления каждому объекту логической цепи свой слот, во время которого можно обмениваться данными с другими объектами. Такой способ позволяет использовать как можно меньше проводов для соединения объектов между собою. Такой принцип применяется при построении телефонных станций, которые соединяются с помощью одного провода, а для обеспечения помехоустойчивой связи используются временные слоты, в которые только одна из станций может обмениваться данными с остальными.
Также мультиплексоры и демультиплексоры используются в современных телефонах для обеспечения генерации сигналов в голосовые сообщения, поскольку позволяют с помощью малого (порядка [math]30[/math] входов) воспроизводить любой сигнал с частотой, которую может услышать человеческое ухо.
Огромную роль они играют также и в производстве компьютеров.
Логическая схема модуля памяти на [math]8[/math] бит
|
См. также
Источники информации