Способ выделения пачек прямоугольных импульсов из их непрерывной последовательности произвольным асинхронным строб-сигналом

№ 9’2014
PDF версия
Во многих цифровых устройствах существует задача корректно выделять ряд импульсов из непрерывной последовательности под управлением строб-сигнала. Использование логического элемента с функцией «2И», на один из входов которого подают непрерывную последовательность импульсов, а на другой — стробирующий сигнал, для выделения пачки импульсов в общем случае некорректно и может привести к серьезным последствиям. В статье приведены примеры математического синтеза моделей последовательностных автоматов Мура и Мили для корректного формирования пачек прямоугольных импульсов из их непрерывной последовательности с помощью асинхронных стробирующих сигналов без искажения длительностей и количества импульсов в пачке. Показано, как на основе анализа карт Карно–Вейча синтезированного последовательностного автомата следует мотивированно выбирать элементную базу для практической реализации.

Введение

Для выделения пачек прямоугольных импульсов из непрерывной последовательности на практике часто используют логический элемент с функцией «2И», на один вход которого подают импульсы генератора, а на другой — стробирующий сигнал (рис. 1). Ясно, что на выход элемента «2И» будут проходить импульсы генератора лишь до тех пор, пока действует асинхронный стробирующий сигнал на втором входе элемента «И».

Два способа стробирования для получения пачки импульсов с помощью

Рис. 1. Два способа стробирования для получения пачки импульсов с помощью:
логического элемента с функцией «2И» (график зеленого цвета);
квантизатора временных интервалов (нижний график голубого цвета)

Но все не так просто! Схема «2И» окажется неприемлемой в качестве устройства стробирования, если в разрабатываемом проекте не допустимы потери импульсов в пачке или искажение их длительностей.

Асинхронный Е‑строб никак не привязан по времени ни к положительным, ни к отрицательным фронтам импульсов в последовательности генератора G. В этом случае первый и последний импульсы в выделяемых пачках практически всегда окажутся обрезанными по длительности или вообще пропадут, если в результате будут слишком короткими. В любом случае из-за устройства стробирования, построенного на элементе «2И», такие устройства, как, например, частотомер, счетчик событий, формирователь действующего значения напряжения, АЦП, импульсный вольтметр и т. д., работали бы неправильно. Эту проблему решает схема асинхронного квантизатора временных интервалов, синтез и анализ которой приведен далее.

В статье использован аппарат математической логики, методы синтеза и анализа таблиц переходов и устойчивости переходов по внутренним состояниям конечных цифровых автоматов, четко и академично изложенные С. Ангером в книге [1]. Эта книга с 1970‑х годов и по сей день считается в мире классическим образцом изложения математического аппарата синтеза и анализа асинхронных конечных автоматов в отличие от многих современных книг на эту же тему.

Таблица. Задержки распространения сигналов в микросхемах серии SN74

Микросхема

Задержка, нс

тип.

max

SN74ALS04

3

5

SN74LS51

8

16

SN74ALS20

8

15

SN74ALS30

8

15

 

Два способа стробирования непрерывной последовательности импульсов

Схему с описанными далее свойствами иногда в литературе называют «квантизатор временных интервалов» [1]. Будем называть синтезируемую схему так же.

Итак, как работает схема квантизатора временных интервалов:

  • В идеальном, но маловероятном на практике случае строб может начинаться и заканчиваться при «нулевых» значениях амплитуд импульсов генератора, то есть в паузах сигналов G. Тогда на выход от положительного до отрицательного фронтов каждый импульс будет проходить без сокращения длительности.
  • Если на входе схемы положительный фронт самого первого импульса в последовательности появится раньше строба, то длительность импульса окажется сокращенной, а сам импульс из-за этого будет исключен из пачки. Для парирования такого события — исключения импульса — остальные импульсы будут передаваться на выход, но с привязкой не к положительному, а к ближайшему отрицательному фронту (!) с последующим инвертированием каждого импульса на выходе. Переключение логики слежения схемой с положительных на отрицательные фронты в этой ситуации позволяет искусственно «восстановить» прежнее количество импульсов в пачке.
  • Если же строб заканчивается раньше, чем последний импульс в последовательности, то последний импульс в пачке формируется до конца без усечения его длительности (сравните на рис. 1 нижний график (голубого цвета) с графиком (зеленого цвета), полученным по функции «2И»).

Теперь по описанию работы схемы синтезируем квантизатор временных интервалов, построив таблицу переходов конечного автомата (рис. 2).

Асинхронная таблица переходов квантизатора

Рис. 2. Асинхронная таблица переходов квантизатора:
1–7 — номера состояний автомата (устойчивые обведены кружком);
E — стробирующий сигнал;
G — прямоугольные импульсы источника (генератора)

Значения Y на выходе квантизатора указаны справа (рис. 2) от соответствующих устойчивых состояний:

  • переходы 1-2-3-2-3…2-1 реализуют все события в указанном выше первом случае работы схемы квантизатора;
  • переходы 1-4-5-6-5…6-1 соответствуют указанному второму случаю, причем собственно переходы 5-6… осуществляют слежение за отрицательными фронтами импульсов;
  • переходы 1-2-3-7-1 осуществляют формирование последнего импульса в пачке без обрезания его длительности.

 

Синтез схемы квантизатора временных интервалов по модели Мура

По таблице переходов (рис. 2) построим таблицу финальных пар (рис. 3), соответствующую модели Мура (слева), и для сравнения модель Мили (справа).

Из рис. 3 видно, что полные покрытия таблиц финальных пар и по модели Мура, и по модели Мили обеспечивают четыре максимально совместимых множества, но в модели Мили (рис. 3б) в МС1 и МС4, в МС2 и МС3 соответственно присутствуют 2 и 6 альтернативные устойчивые состояния.

Таблицы финальных пар по моделям

Рис. 3. Таблицы финальных пар по моделям:
а) Мура;
б) Мили: MCi — максимально совместимые множества строк с перечисленными в них номерами устойчивых состояний (строк)

Теперь нетрудно нарисовать карты кодирования, сжатые таблицы (рис. 4) и карты Карно — Вейча для выходного сигнала (Y) и кодирующего сигнала (Z) (рис. 5) по модели Мура.

Карта кодирования и сжатая таблица переходов по модели Мура

Рис. 4. Карта кодирования и сжатая таблица переходов по модели Мура

Для того чтобы обеспечить переходы между соседними устойчивыми состояниями в таблице переходов по модели Мура, состояния расставлены и закодированы в коде Грея, кроме устойчивых состояний 1 и 3, между которыми переход 3-1 не является соседним. Они не могут быть закодированы соседними кодами Грея и требуют дополнительного анализа на предмет критических гонок. А критических гонок при переходе из устойчивого состояния 3 в устойчивое состояние 1 нет, так как в крайнем левом столбце таблицы переходов (рис. 4) имеется единственное устойчивое состояние 1, поэтому любая гонка в столбце не критична, всегда заканчиваясь в состоянии 1.

Карты Карно–Вейча для выходного сигнала (Y+) и кодирующего сигнала (Z+) по модели Мура

Рис. 5. Карты Карно–Вейча для выходного сигнала (Y+) и кодирующего сигнала (Z+) по модели Мура

Далее, выпишем тупиковые логические уравнения по картам Карно–Вейча (рис. 5), причем для взаимной минимизации формул выгодно воспользоваться не прямыми, а инверсными значениями переменных:

Формула

Необходимо заметить, что минтерм G×y–×z в формулах (1) и на карте для Y+ вовсе не лишний (!), как может показаться. Он выполняет роль противогоночного «мостика» между минтермами G×E×z и E–×y–, защищая переход 2(0)-2(0) от последовательностных гонок при переключениях сигнала Е и G = 1, Y = 0, Z = 1.

 

Синтез квантизатора по модели Мили

Проделаем те же процедуры по модели Мили, причем для совместной минимизации карт выберем одноименные минтермы, покрывающие таблицу переходов, тоже с инверсными значениями сигнала Y, указанными в знаменателях таблицы.

Карта кодирования по модели Мили (рис. 6) не совпадает с картой кодирования по модели Мура (рис. 4) из-за наличия дополнительной кодирующей переменной Z2. Кроме того, в соответствующей таблице переходов есть альтернативные состояния, указанные в числителях и в знаменателях (рис. 7).

Карта кодирования и сжатая таблица переходов по модели Мили

Рис. 6. Карта кодирования и сжатая таблица переходов по модели Мили

Карты Карно–Вейча для кодирующих сигналов (Z1, Z2) и выходного сигнала (Y) по модели Мили

Рис. 7. Карты Карно–Вейча для кодирующих сигналов (Z1, Z2) и выходного сигнала (Y) по модели Мили

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

 

Мотивация выбора элементной базы

На первый взгляд задача выбора кажется простой, но только кажется. Без серьезного анализа проекта правильно выбрать элементы невозможно: ошибаются не только начинающие разработчики, но и профессионалы…

По причинам, указанным автором статьи в [2], далее приведена элементная база в порядке убывания ее актуальности применительно к описываемому примеру:

  • программируемая логическая матрица (ПЛМ, ПЛА) для асинхронной реализации примера;
  • микросхемы с малой степенью интеграции (МИС);
  • устройство с программируемой логикой (ПЛИС) для асинхронной реализации примера;
  • микропроцессор (МП) для синхронной реализации примера.

Следуя современным тенденциям, хочется решить эту задачу, использовав микропроцессор, но технически верно — применить ПЛМ или ПЛИС с учетом нюансов, описанных автором статьи в [2]. В данном примере вполне приемлемо использовать и МИС. Худшим вариантом будет использование микропроцессора.

Физические процессы происходят асинхронно в непрерывном времени и по параллельным алгоритмам. «Могущество» и универсальность класса асинхронных автоматов [1] в том-то и заключается, что их логические уравнения (по определению) тоже «работают» в непрерывном времени и параллельным алгоритмам в отличие от синхронных автоматов и, значит, машин фон Неймана. Только синтезировать асинхронные автоматы намного сложнее.

Микропроцессор (микроконтроллер) представляет собой синхронную, «машину фон Неймана», с последовательным исполнением операторов (программы) и последовательным реагированием на внешние сигналы, причем только двумя способами:

  • непрерывным программным опросом выбранного бита порта, через который вводится внешний сигнал;
  • генерированием процессов внешнего прерывания (interrupt) по условию на выбранном входе.

Примечание. Для справки: понятие внешнего прерывания введено не Д. Нейманом. Оно придумано сотрудником фирмы. Intel (USA) в начале 1970‑х годов.

Синхронная организация схемотехники микропроцессора, по определению позволяющая выполнять все действия только последовательно и в квантованные моменты времени, в данном случае «мешает» ему реагировать на асинхронные внешние сигналы повышенной частоты, что является непреодолимым недостатком. Асинхронные автоматы, реализованные на ПЛМ и ПЛИС в виде аппаратных цепочек (а не программных, как в микропроцессоре), свободны именно от этого недостатка и потому приоритетны.

Далее, если для микропроцессора применить метод непрерывного программного опроса порта по факту регистрации положительного фронта импульсов входной последовательности, то при написании программы можно скоро убедиться, что от ресурса времени микропроцессора, даже пусть самого мощного, ничего не останется для выполнения других операторов программы. Просто потому, что весь ресурс будет поглощен избыточными, а значит, бесполезными опросами порта. Приведем пример фрагмента программы на языке Micropascal:

procedure ReadPortA;
    begin
        {цикл опроса положительного фронта импульса в порте А}
        repeat
           {пустой цикл}
        until portA.b0=1;
        текст обработки внешнего сигнала
        …
    end;

Можно попытаться программно опрашивать появление положительного фронта менее динамичного сигнала-строба (фрагмент программы):

procedure ReadPortA;
    var
        strob,b0:byte;
    begin
        repeat {цикл опроса положительного фронта сигнала СТРОБ в порте А}
        b0:= PortA.b0
        until b0=1;
        if (strob=1) and (b0=1)
        then
           текст обработки внешнего сигнала
           …
    end;

Но и в этом варианте возникает ситуация, уже описанная выше, вызывающая неопределенность фиксации положительного фронта с последующим обрезанием импульса по длительности.

Точно такие же ситуации возникают и при попытке использовать метод внешних прерываний: либо процедура обработчика прерываний практически «не позволит» процессору выполнять остальную программу, либо будет потерян момент фиксации положительных фронтов импульсов генератора.

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

Наиболее правильным будет выбор ПЛМ для прошивки уравнений нашего асинхронного автомата. Можно также использовать ПЛИС, но с несколько большими материальными затратами для разработчика [2]. В обоих случаях прошивками должны создаваться асинхронные аппаратные, а не синхронные программные, как в микропроцессоре, цепочки, реализующие независимые параллельные асинхронные же алгоритмы.

Используя одну из многочисленных IDE-интегрированных сред проектирования, например для ALTERA, можно создать прошивку для ПЛИС по логическим формулам (1).

Точно так же можно сделать прошивку, используя структурный язык VHDL и схему (рис. 8), построенную по логическим формулам (1). Оба варианта позволяют реализовать схему квантизатора временных интервалов современными средствами, но все-таки, учитывая большую степень интеграции ПЛИС, по возможности следует выполнять эту реализацию на фоне одновременно выполняемых более крупных проектов в едином корпусе микросхемы. Применить ПЛМ в данном случае и технически, и экономически гораздо целесообразнее.

Логическая схема «квантизатора временных интервалов»

Рис. 8. Логическая схема «квантизатора временных интервалов»:
E — вход асинхронного стробирующего сигнала;
G — сигналы стробируемого источника импульсов (генератора);
Y — выход пачек импульсов квантизатора

Наконец, в данном примере можно реализовать схему квантизатора и на МИС. Это несколько архаичное решение по сравнению с решениями на ПЛМ и ПЛИС на практике тоже дает гарантированный результат, если спаять схему (рис. 8) по формулам (1) на микросхемах:

  • 1533ЛН1 (аналог SN74ALS04),
  • 1533ЛР11 (аналог SN74LS51),
  • 1533ЛА10 (аналог SN74ALS20),
  • 1533ЛА2 (аналог SN74ALS30).

В интересах дальней радиолокации макетный образец квантизатора временных интервалов, построенный по схеме (рис. 8) на широко известных отечественных микросхемах 1533‑й серии (или на SN74 с суммарной задержкой до 60 нс выходного сигнала, таблица), позволил получить методическую погрешность определения дальности до цели в диапазоне от 100 до 15 000 км с ошибкой не более 20 м.

 

Заключение

Корректное формирование пачек прямоугольных импульсов из их непрерывной последовательности с помощью асинхронного стробирующего сигнала без искажения длительностей и количества импульсов в пачке требует специальных мер и в общем случае не простых электронных логических схем.

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

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

Литература
  1. Ангер С. Асинхронные последовательностные схемы. М.: Наука, 1977.
  2. Сафронов В. Практика математического синтеза микропрограммных управляющих автоматов на основе ПЗУ и ПЛМ // Компоненты и технологии. 2014. № 1.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *