Главная страница
Навигация по странице:

  • 3.4. Пример логического управления

  • 4. Арифметические операции с двоичными числами

  • 5. Программируемые логические контроллеры

  • 5.1. Микропроцессоры

  • Конспект лекций по дисциплине Контроль и управление техническими системами для бакалавров и магистров направления 150400


    Скачать 5.27 Mb.
    НазваниеКонспект лекций по дисциплине Контроль и управление техническими системами для бакалавров и магистров направления 150400
    Дата26.11.2022
    Размер5.27 Mb.
    Формат файлаpdf
    Имя файлаLekcii.pdf
    ТипКонспект лекций
    #813165
    страница10 из 11
    1   2   3   4   5   6   7   8   9   10   11

    3.3. Упрощение логических функций
    Перед реализацией схемы на логических элементах ее обычно подвергают упрощению. Упрощение логической функции позволяет получить результат с использованием наименьшего возможного количества элементарных операций. Это обеспечивает уменьшение сложности печатной платы и расхода электронных компонентов при реализации схемы с помощью монтажа, уменьшение числа компонентов при реализации схемы на кристалле, или упрощение и повышение надежности программы для ПЛК.
    Упрощение может быть осуществлено преобразованием ДНФ или КНФ на основе законов алгебры логики. Как правило, такой подход используется при небольшом количестве аргументов, поскольку он требует не формализованных, а зачастую и интуитивных действий (вспомните упрощение алгебраических выражений в школьной математике).
    В более сложных случаях требуется использовать формализованные процедуры упрощения, например, упрощение с помощью анализа карт
    Карно. В этом случае необходимо определить ряд простых правил.
    Основой являются определение «соседних» клеток и «максимального подкуба». Соседними клетками мы будем называть клетки, координаты которых отличаются только в одной позиции. Так, на рисунке 56 клетки с координатами 001 и 011 являются соседними, а клетки с координатами
    001 и 010 – не соседние. Соседними, по этому определению, являются и, казалось бы, далекие друг от друга клетки в верхнем и нижнем рядах карты с координатами 000 и 100, а так же 001 и 101. Мы как бы склеили карту верхней и нижней гранью, свернув ее в трубку.
    «Подкубом» карты Карно будем называть составленное из соседних заштрихованных клеток прямоугольное поле, стороны которого кратны степеням 2, а площадь содержит
    2
    k
    клеток. Значение k называют порядком подкуба. Порядок не может быть больше числа аргументов
    n
    ,
    kn . Подкуб нулевого порядка содержит одну заштрихованную клетку, а подкуб порядка
    n
    занимает всю карту. В последнем тривиальном случае на карте нет ни одной не заштрихованной клетки.

    - 104 -
    «Максимальным подкубом» мы будем называть подкуб, имеющий на данной карте наибольший возможный порядок, в котором хотя бы одна клетка не принадлежит ранее выделенным максимальным подкубам, то есть, подкубы могут иметь не более k-1 общих клеток.
    Например, для карты рисунка 48 можно обнаружить два максимальных подкуба второго порядка. Для этой карты на рисунке
    58 контурами разного цвета обведены максимальные подкубы, состоящие из клеток {000, 001, 101,
    100} — зеленый контур 1 и {001,
    011, 111, 101} — желтый контур 2.
    Правило упрощения с помощью карты Карно формулируется так: дизъюнктивная форма для карты
    Карно содержит столько конъюнкций, сколько максимальных подкубов можно последовательно выделить на карте. Каждая конъюнкция соответствует одному подкубу и содержит (
    n-k)
    сомножителей- аргументов. Сомножитель берется в инвертированной форме, если его значение в подкубе равно «0». Из конъюнкции исключаются аргументы, которые в соответствующем подкубе приобретают оба значения – «0» и
    «1».
    Удобно выполнять упрощение в следующем порядке: 1) выделяют и нумеруют подкубы; 2) записывают дизъюнкцию конъюнкций по числу подкубов, составляя конъюнкции из всех аргументов; 3) в каждой конъюнкции вычеркивают аргументы, принимающие в соответствующем подкубе оба значения «0» и»1»; 4) инвертируют оставшиеся аргументы, которые в соответствующем подкубе имеют значение «0».
    Пример: последовательность упрощения функции 5.1:
    Шаг 1): выделение подкубов, {000, 001, 101, 100} — первый подкуб 2-го порядка и {001,
    011, 111, 101} — второй подкуб 2-го порядка.
    Шаг 2): y=x
    2

    x
    1

    x
    0
    +
    x
    2

    x
    1

    x
    0
    , → дизъюнкция двух (по числу подкубов) конъюнкций ,
    Шаг 3): y=x
    2

    x
    1

    x
    0
    +
    x
    2

    x
    1

    x
    0
    , → вычеркивание аргументов, от которых не зависит результат ,
    Шаг 4): y= ̄
    x
    1
    +
    x
    0
    , → инвертирование аргумента x
    1
    , имеющего нулевое значение в подкубе .
    3.4. Пример логического управления
    Управление включением сегмента семисегментного индикатора
    десятичных цифр. В современной цифровой автоматике широко используются цифровые индикаторы для вывода информации о настройках и параметрах процессов. Рассмотрим как на логических элементах обеспечить включение сегментов индикатора (рис. 59) при индикации десятичных цифр. Как следует из постановки задачи, индикатор должен приобретать одно из десяти состояний, в каждом из которых будет включено несколько сегментов.
    x
    2
    x
    1
    =01
    x
    2
    x
    1
    =11
    x
    2
    x
    1
    =10
    x
    0
    =0
    x
    0
    =1
    x
    2
    x
    1
    =00
    Рис. 58. Выделение максимальных подкубов
    1 2

    - 105 -
    Какие сегменты нужно включить, а какие должны остаться не активными зависит от высвечиваемой цифры (рис. 60). Для управления выбором цифры нам потребуется четырехбитный сигнал, который обеспечит выбор одного из
    16
    объектов, пронумерованных от 0 до 15. Это значит, что при работе индикатора шесть комбинаций значений битов останутся невостребованными, поскольку десятичных цифр всего 10.
    Однако, уменьшить разрядность сигнала невозможно, поскольку число состояний сигнала из трех бит обеспечивает выбор только из восьми вариантов.
    В качестве примера выберем управление сегментом a. Из рисунка 60 видно, что этот сегмент остается не засвеченным только при индикации цифр «1» и «4».
    Построим логическую функцию, обеспечивающую включение сегмента a при появлении двоичных кодов всех десятичных цифр, кроме «1» и «4», на входе схемы. Для незадействованных комбинаций кодов — их шесть, значение логической функции может быть произвольным, поскольку отрабатывать такие значения не нужно. Обычно, в этом случае назначают недостающие значения таким образом, чтобы легче осуществлялась последующая обработка. При конструировании нормальных форм (ДНФ и
    КНФ) стремятся уменьшить количество элементарных дизъюнкций и конъюнкций. Поэтому, если в значениях логической функции преобладают нули, то и незадействованные заполняют нулями, тогда ДНФ будет содержать меньше слагаемых. И наоборот, при преобладании единиц незадействованные тоже заполняют единицами и КНФ будет иметь меньше сомножителей. В нашем случае преобладающие значения
    — единицы. Заполнив недостающие значения функции в таблице 11 единицами получим всего две строки с нулевым значением логической функции, то есть, Конъюнктивная Нормальная Форма этой функции будет содержать всего две элементарных дизъюнкции:
    a=(x
    3
    +
    x
    2
    +
    x
    1
    +
    x
    0
    )⋅(
    x
    3
    +
    x
    2
    +
    x
    1
    +
    x
    0
    )
    Схема на логических элементах, реализующая КНФ, показана на рисунке
    61.
    Осуществим упрощение логической функции, используя анализ карты
    Карно. На рисунке 62 приведена карта Карно для логической функции управления сегментом а. На карте выделены два максимальных подкуба третьего порядка (желтый и розовый) и два максимальных подкуба второго порядка (зеленый и голубой).
    Таблица 11. Логическая функция управления сегментом a индикатора
    a
    b
    c
    d
    f
    e
    g
    Рис. 59. Семисегментный индикатор
    Рис. 60. Индикация десятичных цифр на семисегментном индикаторе

    - 106 -
    Цифра
    Двоичный код цифры
    a
    x
    3
    x
    2
    x
    1
    x
    0
    0
    0 0
    0 0
    1
    1
    0 0
    0 1
    0
    2
    0 0
    1 0
    1
    3
    0 0
    1 1
    1
    4
    0 1
    0 0
    0
    5
    0 1
    0 1
    1
    6
    0 1
    1 0
    1
    7
    0 1
    1 1
    1
    8
    1 0
    0 0
    1
    9
    1 0
    0 1
    1


    1 0
    1 0
    1

    1 0
    1 1
    1

    1 1
    0 0
    1

    1 1
    0 1
    1

    1 1
    1 0
    1

    1 1
    1 1
    1
    После применения последовательности шагов упрощения 2, 3 и 4
    логическая функция получится такой:
    a=x
    1
    +
    x
    3
    +
    x
    2

    x
    0
    +
    x
    2

    x
    0
    Схема, реализующая эту функцию с использованием элементарных логических операций, представлена на рисунке 63.
    Сравните эту схему со схемой на рисунке 52. Налицо существенное уменьшение числа элементов и соединений. Кроме того, в соответствии с теоремой двойственности x
    2

    x
    0
    =
    x
    2
    +
    x
    0
    . Поэтому два инвертора и одну
    1
    1
    x
    0
    x
    1
    x
    2
    x
    3
    1
    1
    1
    1
    1
    1
    & a
    Рис. 61. Реализация КНФ для управления сегментом a

    - 107 -
    Это еще более упростит управление сегментом.
    4. Арифметические операции с двоичными числами
    Рассмотренные выше операции осуществляются над отдельными битами позиционных двоичных чисел. Однако, при логическом управлении системами почти всегда возникает необходимость вычислений. С этой целью, в дополнение к логическим операциям, в цифровой технике используют и операции, позволяющие производить простые арифметические действия над позиционными двоичными числами. Такие операции называют арифметическими. Это сложение, умножение и вычитание чисел. Основным отличием арифметической операции является различие количества разрядов операндов и результата. Так, арифметически складывая два двоичных числа, представляемые одним битом, можно получить следующие результаты: 0, 1, и 2. Последний
    1
    1
    x
    0
    x
    1
    x
    2
    x
    3
    1
    1
    1
    a
    Рис. 63. Схема управления сегментом a после упрощения
    &
    &
    x
    3
    x
    2
    =01
    x
    3
    x
    2
    =11
    x
    3
    x
    2
    =10
    x
    3
    x
    2
    =00
    Рис. 62. Карта Карно для функции управления сегментом a
    x
    1
    x
    0
    =00
    x
    1
    x
    0
    =01
    x
    1
    x
    0
    =11 x
    1
    x
    0
    =10

    - 108 - результат не может быть представлен одним битом.
    Потребуется дополнительный разряд — его называют разрядом переноса.
    В таблице истинности для арифметического сложения результат должен быть представлен в виде позиционного двоичного числа из двух битов: младший разряд y и старший — разряд переноса с.
    Операнды
    Результат
    x
    1
    x
    0
    c
    y
    0 0
    0 0
    0 1
    0 1
    1 0
    0 1
    1 1
    1 0
    Оказывается, нет необходимости создавать специальные элементы для реализации арифметических операций. Разряд переноса — это просто конъюнкция операндов. А младший разряд запишем в виде ДНФ:
    y=x
    1

    x
    0
    +
    x
    1

    x
    0
    . Схема,
    реализующая арифметическую операцию сложения битов, приведена на рисунке 64.
    Создавая последовательное соединение таких схем можно сконструировать схему для сложения чисел любой разрядности.
    Однако, как правило, ограничиваются числом разрядов, представляемых целой степенью двойки — четырех-, восьми-, шестнадцати-разрядные и выше.
    Функция
    y
    имеет самостоятельное значение. Для нее есть обозначение «ИСКЛЮЧАЮЩЕЕ-ИЛИ» с латинским эквивалентом «XOR». При изображении логических схем управления для
    «XOR» используется символ, напоминающий символ логического сложения (рис. 65).
    Арифметические операции умножения могут быть реализованы с помощью
    правого сдвига двоичного числа (сдвиг на одну позицию вправо увеличивает значение двоичного числа в два раза), дополненного операцией сложения в случае умножения на число не являющееся степенью двойки. Левый сдвиг позиционного двоичного числа на один разряд равносилен делению этого числа на 2. Выдвигаемые младшие разряды при этом теряются, то есть, происходит округление результата к меньшему значению.
    Для вычитания двоичных чисел используют сложение уменьшаемого с вычитаемым, представленным в дополнительном коде. Представление числа в дополнительном коде является аналогом отрицательного числа в арифметике. Для получения числа в дополнительном коде исходное число
    Рис. 65. «ИСКЛЮЧАЮЩЕЕ-ИЛИ»
    1
    =1
    1
    x
    0
    x
    1
    1
    1
    y
    Рис. 64. Арифметическое сложение двух битов
    &
    &
    & c

    - 109 - поразрядно инвертируют и к полученному результату арифметически прибавляют единицу. В качестве примера рассмотрим представление десятичного числа «7» в виде позиционного двоичного четырехразрядного числа — «0111» и числа «-7» в дополнительном коде
    — «1001». Для обратного перехода нужно из числа в дополнительном коде вычесть единицу и оставшийся результат инвертировать. Старший разряд числа в дополнительном коде используется для хранения информации о знаке числа (1 — «минус», 0 — «плюс»), поэтому четырьмя разрядами нельзя представить числа по абсолютной величине больше 7, а восемью разрядами — больше 127.
    5. Программируемые логические контроллеры
    В современной автоматике нашли широкое применение программируемые логические контроллеры (ПЛК), на которых реализуется логическое управление технологическим оборудованием разного назначения.
    5.1. Микропроцессоры
    Программируемый логический контроллер (ПЛК) представляет собой специализированный вычислитель на базе микропроцессора, предназначенный для управления технологическими процессами и
    РСт
    АДР
    УУ
    АКК
    АЛУ
    РПР
    БФД
    РгА
    РгВ
    РОН
    РПР
    М
    КОП
    Шина данных
    Шина адреса
    МП
    Шина управления
    Рис. 66. Архитектура микропроцессора
    СК
    Буфер адреса

    - 110 - различным оборудованием в реальном масштабе времени. Он является универсальным техническим средством, позволяющим в кратчайшие сроки создавать технические комплексы для различных областей применения.
    Под термином «микропроцессор» сейчас обычно понимают часть аппаратного обеспечения компьютера или программируемого логического контроллера, отвечающую за выполнение логических и арифметических операций и координирующую работу всех устройств компьютера (контроллера). Микропроцессор в большой степени унаследовал архитектуру циклической обработки данных, разработанную еще в 1946 году Нейманом.
    Устройство любого микропроцессора (МП) предполагает наличие следующих основных элементов (рис. 66):

    арифметико-логическое устройство — АЛУ со сдвиговыми регистрами РгА и РгВ, регистром-аккумулятором AКК и регистром признаков результата РПР. На АЛУ возлагается задача выполнения логических и арифметических операций в соответствии с кодом операции, поступившим от устройства управления. Регистры сдвига и регистр-аккумулятор обеспечивают временное хранение данных при последовательной загрузке нескольких операндов и при необходимости выполнения рекурсий.

    Для промежуточного хранения информации предусмотрены регистры общего назначения — РОН.

    Управление потоком команд и данных реализуется через счетчик команд СК, регистр стека РСт, регистр адреса АДР и буферные регистры: буфер данных (БФД) и буфер адреса.

    Взаимодействие всех элементов МП, дешифровку команд и выработку кода операции КОП для АЛУ обеспечивает устройство управления — УУ. Оно же обеспечивает взаимодействие с внешними элементами контроллера: синхронизацию от тактового генератора, обнаружение прерываний и реакции на них.

    Между элементами МП данные и команды транспортируются через внутреннюю магистраль М.
    Циклический процесс последовательной обработки данных с использованием приведенной архитектуры осуществляется следующим образом:
    1. Число, находящееся в счетчике команд СК переписывается в регистр адреса АДР. УУ через буфер адреса устанавливает это число на шину адреса и выставляет в шину управления сигнал чтения памяти.
    2. Память, получив адрес и сигнал чтения, переписывает число, находящееся по данному адресу, на шину данных и выставляет сигнал готовности, по которому число фиксируется в регистре буфере данных БФД.
    3. УУ читает число из буфера данных и анализирует его. Если это код команды, то из него выделяется код операции КОП и устанавливается на управляющем входе АЛУ. Если это операнды команды (данные), то они фиксируются в регистрах РгА и РгВ.
    4. Когда данные готовы, УУ дает сигнал готовности АЛУ, по которому
    АЛУ выполняет операцию, код которой уже установлен, над

    - 111 - данными, содержащимися в регистрах сдвига РгА и РгВ.
    5. Результат записывается в регистр-аккумулятор, в регистре признаков устанавливаются важные признаки результата, как-то: переполнение, необходимость переноса, признак нулевого результата, признак отрицательного результата и другие. Для каждого признака в РПР отводится один бит с фиксированным номером.
    6. По признакам результата может быть осуществлено разветвление выполнения последовательности команд. Если последняя команда является командой перехода, то при выполнении условия перехода вычисляется адрес перехода и его уменьшенное на единицу значение устанавливается в счетчик команд СК.
    7. СК увеличивается на единицу: СК=СК + 1. Это означает выборку следующего адреса при отсутствии перехода или первого адреса новой последовательности команд при выполнении команды перехода.
    8. Снова выполняется п. 1.
    Этот цикл выполняется бесконечно с момента подачи питания в МП до выключения. Цикл может разветвляться по запросам внешних устройств
    — аппаратным прерываниям. По окончанию обработки прерывания циклический процесс продолжается с той команды, перед которой произошло прерывание. Время выполнения каждого шага цикла определяется тактовой частотой процессора, задаваемой внешним по отношению к МП тактовым генератором, вырабатывающим непрерывную последовательность прямоугольных импульсов. Изменяя частоту генератора можно влиять на быстродействие МП. Однако, собственные свойства МП, емкости и индуктивности внутренних проводников, быстрота срабатывания транзисторов не позволяют сильно менять тактовую частоту, а следовательно, и быстродействие.
    Развитие МП идет по пути увеличения разрядности данных и команд, изменения систем команд как в сторону усложнения, так и в сторону сокращения набора команд, увеличения числа ядер процессора, выполняющих параллельно несколько таких циклов одновременно.
    Однако, принцип работы, заложенный архитектурой Дж. фон Неймана, остается пока непоколебимым.
    1   2   3   4   5   6   7   8   9   10   11


    написать администратору сайта