Изменения

Перейти к: навигация, поиск

Мультиплексор и демультиплексор

6605 байт добавлено, 19:11, 4 сентября 2022
м
rollbackEdits.php mass rollback
<div style="background-color: #ABCDEF; font-size: 16px; font-weight: bold; color: #000000; text-align: center; padding: 4px; border-style: solid; border-width: 1px;">Эта статья находится в разработке!</div>
<includeonly>[[Категория: В разработке]]</includeonly>
 
{{Определение
|definition='''Мультиплексор''' (англ. ''multiplexer'', или ''mux'') - логический элемент— [[Реализация булевой функции схемой из функциональных элементов|логическая схема]], имеющий $имеющая <tex>2^n + n$ </tex> входов $<tex>x_0$</tex>, $<tex>x_1$</tex>, $<tex>\ldots$</tex>, $<tex>x_{2^n-1}$</tex>, $<tex>s_0$</tex>, $<tex>s_1$</tex>, $<tex>\ldots$</tex>, $<tex>s_{n-1}$ </tex> и один выход $<tex>z$</tex>, на который подаётся значение на входе $<tex>x_i$</tex>, где $<tex>i$ - </tex> — число, которое кодируется входами $<tex>s_0$</tex>, $<tex>s_1$</tex>, $<tex>\ldots$</tex>, $<tex>s_{n-1}$</tex>.
}}
{{Определение
|definition='''Демультиплексор''' (англ. ''demultiplexer'', или ''demux'') - логический элемент— логическая схема, имеющий $имеющая <tex>n+1$ </tex> входов $<tex>s_0$</tex>, $<tex>s_1$</tex>, $<tex>\ldots$</tex>, $<tex>s_{n-1}$</tex>, $x$ <tex>y</tex> и $<tex>2^n$ </tex> выходов $<tex>z_0$</tex>, $<tex>z_1$</tex>, $<tex>\ldots$</tex>, $<tex>z_{2^n-1}$</tex>. На все выходы подаётся $<tex>0$ </tex> кроме выхода $<tex>z_i$</tex>, на который подаётся значение на входе $<tex>y$</tex>, где $<tex>i$ - </tex> — число, которое кодируется входами $<tex>s_0$</tex>, $<tex>s_1$</tex>, $<tex>\ldots$</tex>, $<tex>s_{n-1}$</tex>.
}}
==Принцип работы мультиплексора==
[[Файл:2to1mux.png|thumb|180px|<tex>2-to-</tex>—to—<tex>1 </tex> мультиплексор]]
[[Файл:4to1mux.png|thumb|180px|<tex>4-to-</tex>—to—<tex>1 </tex> мультиплексор]]
===Мультиплексор 2-to-1=== Рассмотрим мультиплексор $<tex>2</tex>-to-<tex>1$ </tex> (это значит, что есть всего два входа $<tex>x_0$ </tex> и $<tex>x_1$</tex>, значения которых могут подаваться на вход $<tex>z$</tex>). Рассмотрим Переберём всевозможные варианты значений на входах. Если на $<tex>s$ </tex> подавать $<tex>0$</tex>, то на выход $<tex>z$ </tex> будет подаваться то же значение, которое подаётся на вход $<tex>x_0$</tex>, т.е. в данном случае значение на входе $<tex>x_1$ </tex> нас не интересует. Аналогично, если на вход $<tex>s$ </tex> подавать $<tex>1$</tex>, то на выход $<tex>z$ </tex> будет подаваться то же значение, которое подаётся на вход $<tex>x_1$. Для более лучшего понимания посмотрим на таблицу истинности</tex>.
{| class="wikitable"
|-style="text-align:center;"! $<tex>s$ </tex> !! $<tex>x_0$ </tex> !! $<tex>x_1$ </tex> !! $<tex>z$</tex>|-style="text-align:center;"| '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{0''' }</tex> || <tex>? </tex> || '''<tex>\textbf{0'''}</tex>|-style="text-align:center;"| '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{1''' }</tex> || <tex>? </tex> || '''<tex>\textbf{1'''}</tex>|-style="text-align:center;"| '''<tex>\textbf{1''' }</tex> || <tex>? </tex> || '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{0'''}</tex>|-style="text-align:center;"| '''<tex>\textbf{1''' }</tex> || <tex>? </tex> || '''<tex>\textbf{1''' }</tex> || '''<tex>\textbf{1'''}</tex>
|}
Также рассмотрим ===Мультиплексор 4-to-1===Рассмотрим мультиплексор $<tex>4</tex>-to-<tex>1$ </tex> (это значит, что есть четыре входа $<tex>x_0$</tex>, $<tex>x_1$</tex>, $<tex>x_2$ </tex> и $<tex>x_3$</tex>, значения которых могут подаваться на выход $<tex>z$</tex>). Также рассмотрим переберём всевозможные варианты значений на входах. Тут уже <tex>2 </tex> входа $<tex>s_0$ </tex> и $<tex>s_1$</tex>, которые определяют, значение какого из входов $<tex>x_0$</tex>, $<tex>x_1$</tex>, $<tex>x_2$ </tex> или $<tex>x_3$ </tex> будет подаваться на выход $<tex>z$</tex>. Если $<tex>s_0 = s_1 = 0$</tex>, то на выход $<tex>z$ </tex> будет подаваться значение входа $<tex>x_0$</tex>, если $<tex>s_0 = 1$ </tex> и $<tex>s_1 = 0$ - </tex> — то значение $<tex>x_1$</tex>, если $<tex>s_0 = 0$ </tex> и $<tex>s_1 = 1$ - </tex> — то значение $<tex>x_2$</tex>, в противном случае - значение $<tex>x_3$. Для более лучшее понимания рекомендуется обратиться к таблице истинности</tex>. {| class="wikitable" align="center"|-align="center"! $<tex>s_0$ </tex> !! $<tex>s_1$ </tex> !! $<tex>x_0$ </tex> !! $<tex>x_1$ </tex> !! $<tex>x_2$ </tex> !! $<tex>x_3$ </tex> !! $<tex>z$</tex>|-align="center"| '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{0''' }</tex> || <tex>? </tex> || <tex>? </tex> || <tex>? </tex> || '''<tex>\textbf{0'''}</tex>|-align="center"| '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{1''' }</tex> || <tex>? </tex> || <tex>? </tex> || <tex>? </tex> || '''<tex>\textbf{1'''}</tex>|-align="center"| '''<tex>\textbf{1''' }</tex> || '''<tex>\textbf{0''' }</tex> || <tex>? </tex> || '''<tex>\textbf{0''' }</tex> || <tex>? </tex> || <tex>? </tex> || '''<tex>\textbf{0'''}</tex>|-align="center"| '''<tex>\textbf{1''' }</tex> || '''<tex>\textbf{0''' }</tex> || <tex>? </tex> || '''<tex>\textbf{1''' }</tex> || <tex>? </tex> || <tex>? </tex> || '''<tex>\textbf{1'''}</tex>|-align="center"| '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{1''' }</tex> || <tex>? </tex> || <tex>? </tex> || '''<tex>\textbf{0''' }</tex> || <tex>? </tex> || '''<tex>\textbf{0'''}</tex>|-align="center"| '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{1''' }</tex> || <tex>? </tex> || <tex>? </tex> || '''<tex>\textbf{1''' }</tex> || <tex>? </tex> || '''<tex>\textbf{1'''}</tex>|-align="center"| '''<tex>\textbf{1''' }</tex> || '''<tex>\textbf{1''' }</tex> || <tex>? </tex> || <tex>? </tex> || <tex>? </tex> || '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{0'''}</tex>|-align="center"| '''<tex>\textbf{1''' }</tex> || '''<tex>\textbf{1''' }</tex> || <tex>? </tex> || <tex>? </tex> || <tex>? </tex> || '''<tex>\textbf{1''' }</tex> || '''<tex>\textbf{1'''}</tex>
|}
==Логическая схема мультиплексора==
[[Файл:LogicSircuit1to8.png{{main|thumb|180px|Логическая схема мультиплексора 8-to-1]]Шифратор и дешифратор}}
Заметим, что [[дешифратор]] имеет $<tex>n$ </tex> входов и $<tex>2^n$ </tex> выходов, причём на всех все выходы дешифратора подаётся $<tex>0$ </tex> кроме выхода $<tex>z_i$</tex>, на который подаётся $<tex>1$</tex>, где $<tex>i$ - </tex> — число, которое кодируется его входами.
Тогда давайте построим дешифратор ${<tex>n}</tex>-to-{<tex>2^n}$ </tex> (это значит, что у дешифратора имеется $<tex>n$ </tex> входов и $<tex>2^n$ </tex> выходов), на вход ему подадим входы $значения входов <tex>s_0$</tex>, $<tex>s_1$</tex>, $<tex>\ldots$</tex>, $<tex>s_{n-1}$</tex>, а выходы этого дешифратора обозначим как $<tex>y_0$</tex>, $<tex>y_1$</tex>, $<tex>\ldots$</tex>, $<tex>y_{2^n-1}$</tex>, а потом с помощью гейта $<tex>AND$ </tex> соединим выход $<tex>y_i$ </tex> дешифратора с входом $<tex>x_i$ </tex> мультиплексора, потом соединим все гейты с выходом $<tex>z$</tex> с помощью гейта <tex>OR</tex>, у которого <tex>2^n</tex> входов и один выход. Давайте разберёмся, почему эта схема правильная: очевидно, что если входы $<tex>s_0$</tex>, $<tex>s_1$</tex>, $<tex>\ldots$ $</tex> <tex>s_{n-1}$ </tex> кодируют вход $<tex>i$</tex>, то это значит, что только $<tex>y_i$ </tex> выход дешифратора будет иметь $<tex>1$</tex>, тогда как на остальных выходах будет $<tex>0$</tex>, значит, что значения на входах $<tex>x_0$</tex>, $<tex>x_1$</tex>, $<tex>\ldots$</tex>, $<tex>x_{i-1}$</tex>, $<tex>x_{i+1}$</tex>, $<tex>\ldots$</tex>, $<tex>x_{2^n-1}$ </tex> на ответ никак повлиять не могут. Теперь, если на входе $<tex>x_i$ </tex> было $<tex>0$</tex>, то на выходе $<tex>z$ </tex> будет $<tex>0$</tex>, если же на входе $<tex>x_i$ </tex> был $<tex>1$</tex>, то на выходе $<tex>z$ </tex> будет $<tex>1$</tex>. {||[[Файл:LogicSircuit1to8.png|thumb|500px|Логическая схема мультиплексора <tex>8</tex>-to-<tex>1</tex>]]|}
==Принцип работы демультиплексора==
[[Файл:1to2demux.png|thumb|180px|<tex>1</tex>-to-<tex>2 </tex> демультиплексор]]
[[Файл:1to4demux.png|thumb|180px|<tex>1</tex>-to-<tex>4 </tex> демультиплексор]]
===Демультиплексор 1-to-2===Рассмотрим демультиплексор $<tex>1</tex>-to-<tex>2$ </tex> (это значит, что у демультиплексора два выхода). Если на вход $<tex>s$ </tex> подать значение $<tex>0$</tex>, то на выход $<tex>z_0$ </tex> будет подаваться то же значение, которое подаётся на вход $<tex>y$</tex>, а на выход $<tex>z_1$ </tex> будет подаваться $<tex>0$</tex>. Если же на вход $<tex>s$ </tex> подать значение $<tex>1$</tex>, то на выход $<tex>z_0$ </tex> будет подаваться значение $<tex>0$</tex>, а на выход $<tex>z_1$ </tex> то же значение, которое будет подаваться на вход $<tex>y$. Для более лучшего понимания посмотрим на таблицу истинности</tex>.
{| class="wikitable"
|-align="center"! $<tex>s$ </tex> !! $<tex>y$ </tex> !! $<tex>z_0$ </tex> !! $<tex>z_1$</tex>|-align="center"| '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{0''' }</tex> || <tex>0</tex>|-align="center"| '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{1''' }</tex> || '''<tex>\textbf{1''' }</tex> || <tex>0</tex>|-align="center"| '''<tex>\textbf{1''' }</tex> || '''<tex>\textbf{0''' }</tex> || <tex>0 </tex> || '''<tex>\textbf{0'''}</tex>|-align="center"| '''<tex>\textbf{1''' }</tex> || '''<tex>\textbf{1''' }</tex> || <tex>0 </tex> || '''<tex>\textbf{1'''}</tex>
|}
Также рассмотрим ===Демультиплексор 1-to-4===Рассмотрим демультиплексор $<tex>1</tex>-to-<tex>4$ </tex> (это значит, что у демультиплексора четыре выхода). Теперь у нас уже есть два входа $<tex>s_0$ </tex> и $<tex>s_1$</tex>, которые определяют, на какой из выходов $<tex>z_0$</tex>, $<tex>z_1$</tex>, $<tex>z_2$ </tex> или $<tex>z_3$ </tex> будет подаваться значение $<tex>y$</tex>, тогда как на остальные выходы будет подаваться $<tex>0$</tex>. В случае, когда $<tex>s_0 = s_1 = 0$</tex>, то на выход $<tex>z_0$ </tex> будет подаваться значение на входе $<tex>y$</tex>, тогда как на $<tex>z_1$</tex>, $<tex>z_2$ </tex> и $<tex>z_3$ </tex> будет подаваться $<tex>0$</tex>. Если же $<tex>s_0 = 1$ </tex> и $<tex>s_1 = 0$</tex>, то на выходы $<tex>z_0$</tex>, $<tex>z_2$ </tex> и $<tex>z_3$ </tex> будет подаваться $<tex>0$</tex>, а на выход $<tex>z_1$ </tex> будет подаваться то же, что подаётся на вход $<tex>y$</tex>. Аналогично разбираются остальные случаи. Для более лучшего понимания посмотрим на таблицу истинности<tex>s_0 = 0</tex>, <tex>s_1 = 1</tex> и <tex>s_0 = s_1 = 1</tex>.
{| class="wikitable"
|-align="center"! $<tex>s_0$ </tex> !! $<tex>s_1$ </tex> !! $<tex>y$ </tex> !! $<tex>z_0$ </tex> !! $<tex>z_1$ </tex> !! $<tex>z_2$ </tex> !! $<tex>z_3$</tex>|-align="center"| '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{0''' }</tex> || <tex>0 </tex> || <tex>0 </tex> || <tex>0</tex>|-align="center"| '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{1''' }</tex> || '''<tex>\textbf{1''' }</tex> || <tex>0 </tex> || <tex>0 </tex> || <tex>0</tex>|-align="center"| '''<tex>\textbf{1''' }</tex> || '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{0''' }</tex> || <tex>0 </tex> || '''<tex>\textbf{0''' }</tex> || <tex>0 </tex> || <tex>0</tex>|-align="center"| '''<tex>\textbf{1''' }</tex> || '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{1''' }</tex> || <tex>0 </tex> || '''<tex>\textbf{1''' }</tex> || <tex>0 </tex> || <tex>0</tex>|-align="center"| '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{1''' }</tex> || '''<tex>\textbf{0''' }</tex> || <tex>0 </tex> || <tex>0 </tex> || '''<tex>\textbf{0''' }</tex> || <tex>0</tex>|-align="center"| '''<tex>\textbf{0''' }</tex> || '''<tex>\textbf{1''' }</tex> || '''<tex>\textbf{1''' }</tex> || <tex>0 </tex> || <tex>0 </tex> || '''<tex>\textbf{1''' }</tex> || <tex>0</tex>|-align="center"| '''<tex>\textbf{1''' }</tex> || '''<tex>\textbf{1''' }</tex> || '''<tex>\textbf{0''' }</tex> || <tex>0 </tex> || <tex>0 </tex> || <tex>0 </tex> || '''<tex>\textbf{0'''}</tex>|-align="center"| '''<tex>\textbf{1''' }</tex> || '''<tex>\textbf{1''' }</tex> || '''<tex>\textbf{1''' }</tex> || <tex>0 </tex> || <tex>0 </tex> || <tex>0 </tex> || '''<tex>\textbf{1'''}</tex>
|}
==Логическая схема демультиплексора==
[[Файл:LogicSircuit1to4demuxПостроим схему, аналогичную схеме мультиплексора.png|thumb|180px|Логическая схема мультиплексора  Тогда давайте построим дешифратор, <tex>n</tex>-to-<tex>2^n</tex>, на входы дешифратора подадим входы <tex>s_0</tex>, <tex>s_1</tex>, <tex>\ldots</tex>, <tex>s_{n-1}</tex>, а выходы этого дешифратора мы обозначим как <tex>y_0</tex>, <tex>y_1</tex>, <tex>\ldots</tex>, <tex>y_{2^n-1}</tex>. Поставим <tex>2^n</tex> гейтов <tex>AND</tex> и соединим каждый из выходов дешифратора <tex>y_0</tex>, <tex>y_1</tex>, <tex>\ldots</tex>, <tex>y_{2^n-to1}</tex> со входом <tex>x</tex> с помощью гейта <tex>AND</tex>, потом соединим соответственные гейты с выходами <tex>z_0</tex>, <tex>z_1</tex>, <tex>\ldots</tex>, <tex>z_{2^n-4]]1}</tex>, причем мы соединим гейт <tex>AND</tex> с выходом <tex>z_i</tex>, если на этот гейт приходится выход дешифратора <tex>y_i</tex>.
Построим схему{||[[Файл:LogicSircuit1to8demux.png|thumb|500px|Логическая схема демультиплексора <tex>1</tex>-to-<tex>8</tex>]]|} ==Применение мультиплексора и демультиплексора в реальной жизни== Мультиплексоры и демультиплексоры часто используются в электронных схемах.  В качестве примера можно рассмотреть использование мультиплексоров для разделения на временные слоты и предоставления каждому объекту логической цепи своего слота, во время которого можно обмениваться данными с другими объектами. Данный способ позволяет использовать как можно меньше проводов для соединения объектов между собою. Такой принцип применяется при построении телефонных станций, которые соединяются с помощью одного провода, аналогичную схеме мультиплексораа для обеспечения помехоустойчивой связи используются временные слоты, в которые только одна из станций может обмениваться данными с остальными.  Также мультиплексоры и демультиплексоры используются в современных телефонах для преобразование сигналов в голосовые сообщения, поскольку позволяют с помощью малого (порядка <tex>30</tex> входов) воспроизводить любой сигнал с частотой, которую может различить человеческое ухо.
Тогда давайте построим дешифраторКроме того, ${n}-to-{2^n}$, на вход ему подадим входы $s_0$, $s_1$, $\ldots$, $s_{n-1}$, а выводы этого дешифратора мы обозначим как $y_0$, $y_1$, $\ldots$, $y_{2^n-1}$. Поставим $2^n$ гейтов $AND$, тогда соединим каждый из выходов дешифратора $y_0$, $y_1$, $\ldots$, $y_{2^n-1}$ мультиплексоры используются и вход $y$ с помощью гейта $AND$, потом соединим соответственные гейты с выходами $z_0$, $z_1$, $\ldots$, $z_{2^n-1}$, причем мы соединим гейт $AND$ с выходом $z_i$, если на этот гейт приходится выход дешифратора $y_i$при производстве компьютерных компонентов.
==См. также==
*[[Реализация булевой функции схемой из функциональных элементов]]
*[[Метод Лупанова синтеза схем]]
*[[ДешифраторШифратор и дешифратор]]
==Источники информации==
*[https://en.wikipedia.org/wiki/Multiplexer Wikipedia - Multiplexer]
*[https://books.google.ru/books?id=UD0h_GqgbHgC&printsec=frontcover&dq=network%2B+guide+to+networks&redir_esc=y#v=onepage&q&f=false Dean, Tamara (2010), Network+ Guide to Networks, стр. 79-84]
 
[[Категория: Дискретная математика и алгоритмы]]
 
[[Категория: Схемы из функциональных элементов]]
1632
правки

Навигация