Электроника:Цифровая электроника/Карты Карно/Поля «безразличия» на картах Карно

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Макаров В. (valemak) Контакты:</br>* Habr: @vakemak</br>* Сайт: www.valemak.com</br>Перевёл статей: 648.
Проверка/Оформление/Редактирование: Мякишев Е.А.


Поля «безразличия» на картах Карно[1]

До сего момента мы рассматривали задачи логической редукции, в которых входные условия были заданы исчёрпывающе. То есть, таблица истинности с 3-мя переменными или карта Карно имела 2n = 23 = 8 записей, с полностью заполненной таблицей и/или картой.

Иногда в реальных задачах не всегда нужно заполнять таблицу истинности полностью. В таких случаях заполнять таблицу истинности полностью и не надо.

Например, при работе с BCD-числами (двоично-десятичное кодирование), закодированными четырьмя битами, нас могут не заботить какие-либо коды выше диапазона BCD (0, 1, 2, …, 9). 4-битные двоичные коды для шестнадцатеричных чисел (Ah, Bh, Ch, Eh, Fh) не являются допустимыми кодами для BCD.

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

Обычно нам не нужно заполнять эти коды (1010, 1011, 1100, 1101, 1110, 1111), потому что они никогда не будут возникать, пока мы имеем дело только с числами в кодировке BCD. Эти шесть недействительных кодов нам безразличны.

То есть нам безразлично, какой выход даёт наша логическая схема при несуществующих входах, нам всё равно.

Поля «безразличия»

Неважно, что в карте Карно или в таблице истинности могут быть либо единицы, либо нули, если нас не волнует, каков будет результат для входного условия, которое мы никогда не ожидаем увидеть. Мы отмечаем подобные ячейки звездочкой * среди обычных единиц и нулей.

При формировании групп ячеек с полями «безразличия» можно просто игнорировать их либо интерпретировать как 1 или 0, смотря что выгоднее.

Это часто полезно, так как позволяет формировать группы большего размера, чем без полей «безразличия». При этом необязательно группировать, используя какие-либо поля «безразличия» – это стоит делать только тогда, когда приводит к упрощению логического выражения.

Рис. 1. Поля «безразличия» позволяет упрощать Суммы-Произведений и Произведения-Сумм.
Рис. 1. Поля «безразличия» позволяет упрощать Суммы-Произведений и Произведения-Сумм.

На рисунке 1 выше приведён пример логической функции, в которой желаемый выход равен 1 для входа ABC = 101 в диапазоне от 000 до 101. Нас не волнует, каков будет выход для других возможных входов (110, 111). Эти входы можно интерпретировать и так, и эдак. На рисунке показано оба решения – в средней части рисунка 1 одно из полей «безразличия» взято как 0, а в правой части рисунка 1 одно из полей «безразличия» взято как 1. В обоих случаях это позволяло формировать бо́льшие группы, что в итоге приводило к более простому результату.

Решение в левой части рисунка 1 Вых. = AB'C является более сложным, поскольку мы не использовали ячейки «безразличия». Решение посередине, Вых. = AC, менее сложно, потому что мы сгруппировали ячейку безразличия с одной из единиц, что позволило сформировать группу из двух ячеек.

Третье решение, произведение сумм в правой части рисунка 1, является результатом группировки поля «безразличия» с тремя нулями, что привело к образованию группы из четырёх нулей. Что также привело к менее сложному Вых. = AC.

Мы проиллюстрировали, что ячейки «безразличия» могут использоваться либо как единицы, либо как нули, в зависимости от того, что именно принесёт пользу.

Рис. 2. Реальный проект, где мне понадобились поля «безразличия».
Рис. 2. Реальный проект, где мне понадобились поля «безразличия».

Как-то меня в Lightning State College попросили для их класса электроники построить логику лампы для выставки стационарных велосипедов в местном научном музее. Когда гонщик увеличивает скорость вращения педалей, на гистограммном индикаторе должны загораться лампочки.

Нет движения – лампы не горят. По мере увеличения скорости загорается нижняя лампа L1, затем L1 и L2, затем L1, L2 и L3, а при максимально указанной скорости светят уже все лампочки. После этого дальнейшее увеличение скорости не меняет ничего на дисплее, на котором уже горят все лампы.

Небольшой генератор постоянного тока, подключённый к велосипедной шине, выдаёт напряжение, пропорциональное скорости. Он управляет платой тахометра, которая ограничивает напряжение на верхнем пределе скорости, когда горят все лампы. Никакое дальнейшее увеличение скорости не может увеличить напряжение выше этого уровня.

Это очень важно, потому что нисходящий преобразователь A-Ц (аналого-цифровой) выдаёт 3-битный код, ABC, это 23 = 8 кодовых значений, но у нас только пять ламп. A – самый старший бит, C – младший бит.

Логика лампы должна реагировать на шесть кодов при преобразовании A-Ц. ABC = 000 – это отсутствие движения, лампы не горят. Для пяти кодов (от 001 до 101) лампы L1, L1/L2, L1/L2/L3 и так до всех ламп, которые загораются по мере увеличения скорости, определены напряжения и коды при A-Ц преобразовании (для входов ABC).

Нам всё равно, каков будет выход при 110 и 111, потому что эти коды никогда не возникнут при A-Ц преобразовании из-за ограничений в тахометре. Нам нужно разработать пять логических схем для управления пятью лампами.

Рис. 3. Для каждой лампы своя логическая схема, разработанная с помощью карты Карно. Для максимального упрощении используются поля «безразличия».
Рис. 3. Для каждой лампы своя логическая схема, разработанная с помощью карты Карно. Для максимального упрощении используются поля «безразличия».

Поскольку ни одна из ламп не горит для ABC = 000 при A-Ц преобразовании, укажем 0 на всех K-картах для ячейки ABC = 000. Поскольку нас не волнуют коды, которые никогда не встретятся (110, 111), укажем звездочки в этих двух ячейках на всех пяти K-картах.

Лампа L5 будет гореть только при коде ABC = 101. Введим единицу в эту ячейку и пять нулей в оставшиеся пустые ячейки K-карты для L5.

L4 загорится для кода ABC = 100 и останется гореть для любого кода больше, т.е. ABC = 101, потому что все лампы ниже L5 должны гореть, когда горит L5. Вводим единицы в ячейки 100 и 101 карты для L4, чтобы они загорались для этих кодов. Четыре нуля заполняют оставшиеся ячейки карты для L4.

L3 сначала загорится при коде ABC = 011. Она также загорается всякий раз, когда загораются L5 и L4. Вводим три единицы в ячейки 011, 100, 101 для карты L3. Заполняем тремя нулями оставшиеся три ячейки карты для L3.

L2 загорается при ABC = 010 и кодах выше. Заполняем единицами ячейки 010, 011, 100, 101 и двумя нулями в двух оставшихся ячейках.

Единственная ситуация, когда L1 не горит – это отсутствие движения. В ячейке ABC = 000 уже есть ноль. Все остальные пять ячеек получают единицы.

При группировании единиц, как показано на рисунке 3 выше, при использовании полей «безразличия» всякий раз получались бо́льшие по размерам группы. На карте для L1 показаны три члена Суммы-Произведения, соответствующие трём группам из 4-х ячеек.

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

Подобным образом карты для L2 и L4 создают группы из 4-х ячеек с помощью полей «безразличия». Упрощение для L4 поражает, тем паче что лампа L4 управляется наиболее значимым битом при A-Ц преобразовании, L4 = A.

Для лампы L4 не требуется никаких логических вентилей. На картах для L3 и L5 одиночные ячейки образуют группы из двух ячеек с полями «безразличия». На всех пяти картах упрощённые логические уравнения менее сложны, чем если бы мы формировали их без использования полей «безразличия».

Рис. 4. Итоговая схема получилась относительно простой благодаря использованию полей «безразличия».
Рис. 4. Итоговая схема получилась относительно простой благодаря использованию полей «безразличия».

Вентильная схема приведена на рисунке 4 выше. Выходы пяти уравнений K-карт управляют инверторами. Обратите внимание, что логический элемент ИЛИ для L1 – это вентиль не с 3-мя, а с 2-мя входами, имеющий входы (A + B), C, выход A + B + C. Инверторы с открытым коллектором, вроде модели 7406, предпочтительны для управления светодиодами, однако, не является частью логического устройства, составленного с помощью K-карты.

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

Светодиоды, вероятно, будут частью твердотельного реле, управляющего лампами на 120 В переменного тока для музейной экспозиции, которая здесь не показана.

См.также

Внешние ссылки