3. ПОСЛЕДОВАТЕЛЬНЫЕ СХЕМЫ
В последовательных схемах (ПС) выходные сигналы зависят не только от комбинаций входных, но и от значений самих выходных сигналов в предшествующий момент времени. Для работы ПС принципиальное значение имеет время задержки распространения tзд.р. Простейшей ПС является триггер.
3.1 ТРИГГЕРЫ
Триггером называют последовательную схему с положительной обратной связью и двумя устойчивыми состояниями 0 и 1 (то есть триггер обладает свойством памяти) . В общем случае триггер может иметь асинхронные входы предварительной установки, тактовый или синхронизирующий и информационные входы. К основным типам триггеров относятся:
- триггер с раздельной установкой состояний (RS-триггер),
- триггер "защелка" (D - триггер),
- универсальный триггер (JK - триггер),
- триггер со счетным входом (T - триггер).
По способу записи информации триггеры подразделяются на асинхронные и синхронные или тактируемые, а по способу управления - на триггеры со статическим управлением (единичным или реже нулевым уровнем тактового сигнала) и триггеры с динамическим управлением (положительным - из 0 в 1, или отрицательным - из 1 в 0 фронтом тактового сигнала). В последнем случае говорят о триггерах с прямым или инверсным динамическим входом управления.
3.1.1 АСИНХРОННЫЙ RS - ТРИГГЕР
Асинхронный триггер имеет два входа S(et) - установка и R(eset) - сброс и два выхода прямой - Q и инверсный - ~Q. Триггер переходит из текущего состояния X на выходе к состоянию 0, при подаче на вход S нуля и на вход R единицы, а при поступлении на вход S единицы и на вход R нуля триггер переходит к состоянию 1. При нулевых значениях, когда S=R=0 триггер должен сохранять старое значение. Комбинация сигналов S=R=1 не определена. В соответствии с описанием составим таблицу состояний триггера (таблица 6).
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\tabl6.gif" \* MERGEFORMATINET
Q и X - могут принимать любые значения, но Q в пределах одной строки, неизменно. Значения d будут доопределены на этапе минимизации. Входных переменных три - S,R и текущее состояние выхода Qt, поэтому всего должно быть восемь состояний при различных значениях Q и X. Последующее состояние выходов отделено от текущего временем задержки сигнала dt. Таблица Карно функции Q(t+dt) с учетом всех возможных состояний приведена на рис.35, слева.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris35.gif" \* MERGEFORMATINET
Доопределяем значения d единицей и находим характеристическое уравнение RS - триггера:
Q(t+dt) = S + ~R*Qt = ~(~S * ~(~R*Q)). (26)
Этому уравнению соответствует схема на рис.35, справа. Учитывая, что Qt и Q(t+dt) сигналы на одном и том же выходе, но в разные моменты времени, свяжем их. Окончательно схема триггера и его условное обозначение будет выглядеть, как на рис.36.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris36.gif" \* MERGEFORMATINET
Условное обозначение B соответствует части рисунка, обведенной точками, т.е. RS триггеру с инверсными входами, а обозначение A - всему рисунку, или RS триггеру с прямыми входами.
Если на триггер с прямыми входами подать сигналы R=S=1 или на входы инверсного - нули, то оба выхода Q и ~Q будут установлены в 1, что противоречит аксиоме Q*~Q = 0. Поэтому такой режим, иногда называют запрещенным. Однако ничто не мешает разработчику использовать его, например, для сигнализации об одновременном и нежелательном поступлении единичных сигналов на RS входы, введением дополнительной схемы И.
Временные диаграммы RS триггера с инверсными входами приведены на рис.37. Через время tзд.р., обозначенное "-", от поступления сигнала ~S = 0 на вход элемента И-НЕ с номером 3, выход Q переключится первым, а следом через такой же промежуток времени переключится и выход ~Q. Спустя интервал времени t2 - t0 = dt на выходах установятся новые значения. Также протекает процесс при ~R = 0, но выход ~Q переключится первым. Отсюда вытекает, что изменение входных сигналов не должно происходить быстрее времени dt.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris37.gif" \* MERGEFORMATINET
Одним из применений RS триггера с инверсными входами служит схема подавления "дребезга" контактов клавиатуры. Процесс многократного размыкания и замыкания контактов при их переключении называется дребезгом. Схема и диаграммы показаны на рис.38.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris38.gif" \* MERGEFORMATINET
В момент t0 нажатия на клавишу, начинаются соударения верхнего и среднего контактов. До момента t1 сигналы ~S,~R поочередно принимают значения 1,1 и 0,1, что соответствует режимам памяти и установки в 1. При этом, естественно начальное значение Q = 1 не изменится, что и требуется. В интервале t1..t2 средний контакт находится в "свободном по- лете". Первое его касание нижнего контакта в момент t2 сбросит триггер (~S = 1, ~R = 0). До момента t3 сигналы ~S,~R поочередно принимают значения 1,0 и 1,1, что соответствует режимам сброса и памяти, т.е. Q = 0. При отпускании клавиши (момент t3) развивается обратный процесс. В результате действия схемы выходной сигнал чист от импульсных помех.
3.1.2 СИНХРОННЫЙ RS - ТРИГГЕР
Если незадействованные входы элементов И-НЕ 1 и 2 соединить вместе (рис. 36), получится синхронный RS - триггер со статическим управлением (синхронизируемый уровнем). Схема и условное обозначение приведены на рис.39.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris39.gif" \* MERGEFORMATINET
Нетрудно убедиться, что при C=0 сигнал Q=~(~Q*1)=Q, а ~Q=~(Q*1)=~Q, т.е. независимо от значений S и R, выходы сохраняют старые значения и триггер находится в режиме памяти. При C=1 он функционирует, как асинхронный RS-триггер. Триггеры со статическим управлением называют, также "прозрачными", т.к. при активном уровне синхросигнала C, информация с входов беспрепятственно проходит на выходы. Временные диаграммы приведены на рис.40.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris40.gif" \* MERGEFORMATINET
До момента времени t4 сигнал C = 1 и выходное значение определяется комбинациями сигналов R и S. В течение интервала времени t0...t1 на входе R действует 1, а сигнал S = 0, поэтому Q тоже равно 0. Начиная с момента t1 и до момента t2, R = S = 0 действует режим памяти (Q не изменяется). В момент t2 R = 0,а S = 1 и триггер устанавливается (Q = 1). С момента окончания импульса S и до момента t3 триггер хранит эту единицу, а в момент t3 сбрасывается, т.к.R = 0, а S = 1. Аналогично можно проанализировать и все остальные состояния выхода.
3.1.3 D - ТРИГГЕР СО СТАТИЧЕСКИМ УПРАВЛЕНИЕМ
D - триггер имеет два входа: информационный вход D(аtа) и вход управления записью/запоминанием (защелкиванием) L(oad)/L(atch) - отсюда его второе имя : "защелка". Последний вход часто обозначают символом C(lock). Выходной сигнал Q принимает значение равное входному D при L = 1 и сохраняет предыдущее значение Q(t+dt) = Qt при L = 0. Таблица состояний триггера имеет вид:
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris40-1.gif" \* MERGEFORMATINET
Q и X - могут принимать любые значения, но Q в пределах одной строки, неизменно. Таблица Карно дана на рис.41. Связующий импликант добавлен для получения схемы свободной от "гонок" (см. раздел - переходные процессы) и от инверсии входных величин. Q(t+dt) = ~L*Qt + L*D + D*Qt = L*D + Qt(~L + D) = L*D + Qt((~L + D)*(~L + L)) = L*D + Qt*((~L + D*~L) + D*L) = L*D + Qt*(~L + D*L) = ~(~(L*D) * ~(Qt*(D*L + ~L))) = ~(~(L*D) * ~(Qt*~(~(D*L) * L))).
Этой формуле соответствует схема и условное обозначение на рис.41, в центре и справа.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris41.gif" \* MERGEFORMATINET
Если в уравнение вместо ~(D*L) * L подставить ~(D*L) * L = (~D + ~L)*L = ~D*L получится реализация D-триггера с использованием RS- триггера, но появляется дополнительный инвертор. На рис.42 приведена схема такого триггера, дополненная асинхронными инверсными входами установки и сброса ~S и ~R (эти две перекрестные связи показаны двойными линиями).
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris42.gif" \* MERGEFORMATINET
Если на вход ~S подать активный сигнал 0, а на вход ~R единицу, то Q=1 независимо от сигналов на остальных входах элемента 3. На выходе 2-го элемента по той же причине тоже единица. Три единицы встречаясь на входах элемента 4, дают на его выходе ноль, который попадая на вход 3-го элемента подтверждает его состояние. Триггер устанавливается в единицу. Причем сигналы D и L не влияют на этот процесс. В силу этого, асинхронные входы (~S и ~R) имеют наивысший приоритет. Вследствие симметричности асинхронных связей, аналогично протекает процесс при ~S=1 и ~R=0, но триггер, естественно сбрасывается (Q = 0). Уравнение синхронного D-триггера с асинхронными входами сброса/установки ~S и ~R записывается в следующем виде:
Q(t+dt) = S + ~R * (~L*Qt + L*D + D*Qt). (27)
В этом выражении до скобок записано уравнение асинхронного RS-триггера, а в скобках уравнение D-триггера. Нетрудно увидеть, что при ~S = 0 (S = 1) и ~R = 1 все выражение равно единице (установка триггера в "1"), а при ~S = ~R = 1, RS-триггер "отключается" и схема функционирует, как D-триггер. Временные диаграммы работы триггера приведены ниже.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris42-1.gif" \* MERGEFORMATINET
С момента времени t0 до момента t1 сигнал загрузки L = 1 (на входах ~R и ~S пассивный уровень) и данные с входа D беспрепятственно проходят на выход Q (свойство прозрачности D-триггера со статическим управлением видно особенно наглядно). В момент t1 триггер становится непрозрачным, информация защелкивается и последнее значение на выходе будет храниться до прихода нулевого уровня на вход ~R в момент t2. Состояние Q = 0 не изменится даже при L = D = 1 в момент t3. Триггер установится только в момент t4 по сигналу ~S = 0. Если вернуться к рис.41 и убрать из условного обозначения триггера вход C, получится повторитель и инвертор, как на приведенном рисунке, и эта схема не будет обладать свойствами памяти.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris42-2.gif" \* MERGEFORMATINET
Поэтому асинхронных D -триггеров в природе не существует и определение "синхронный" по отношению к D-триггеру является избыточным.
3.1.4 D - ТРИГГЕР С ДИНАМИЧЕСКИМ УПРАВЛЕНИЕМ
Отличается от статического D-триггера свойствами L(C) входа. Запись информации происходит только в момент перехода тактового сигнала L из 0 в 1. При постоянном значении L=0, L=1 или отрицательном перепаде триггер хранит предыдущую информацию, т.е. не обладает свойством прозрачности (см. таблицу состояний 7). Промышленно выпускаемые триггеры дополняются асинхронными инверсными входами установки и сброса ~S и ~R (рис.43).
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris42-3.gif" \* MERGEFORMATINET
Q и X - принимают любое значение, но Q в пределах одной строки, неизменно. На схемах прямые динамические входы D- триггера обозначаются наклонной чертой "слева - снизу - вправо - вверх" или стрелкой внутрь.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris43.gif" \* MERGEFORMATINET
Временные диаграммы триггеров с динамическим входом существенно изменяются. Действие асинхронных входов такое же, как в D-триггере со статическим управлением, поэтому на временных диаграммах они не указаны (рис.44).
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris44.gif" \* MERGEFORMATINET
3.1.5 УНИВЕРСАЛЬНЫЙ JK-ТРИГГЕР
JK-триггер имеет два информационных входа J и K, тактовый динамический вход, чаще инверсный, и два асинхронных входа установки и сброса. Его таблица состояний имеет вид:
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris44-1.gif" \* MERGEFORMATINET
Q и X - принимают любые значения, но Q в пределах одной строки, неизменно. Запись информации, при пассивных уровнях сигналов сброса (~R) и установки (~S), осуществляется только в моменты перехода сигнала C из 1 в 0, за исключением триггера типа ТВ15, который переключается положительным фронтом, т.е. JK -триггеры являются непрозрачными. Уравнение JK-триггера с асинхронными входами ~R и ~S:
Q(t+dt) = S + ~R ( J*~Qt + ~K*Qt ). (27.1)
Условные обозначения JK-триггера с инверсным динамическим входом приведено на рис.45. Наклонная черта "смотрит слева - направо - сверху - вниз", а стрелка повернута наружу. Универсальность JK -триггера будет продемонстрирована далее.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris45.gif" \* MERGEFORMATINET
Вторая, третья и четвертая строчки таблицы состояний идентичны соответствующим строчкам RS-триггера, если вход J уподобить входу S, а вход K - входу R. Отличие в том , что комбинация J = K = 1 определена и триггер в этом режиме приобретает очень полезное свойство (см.таблицу 8), при поступлении каждого отрицательного фронта на вход C, меняет значение сигнала на выходе, как показано на рис.46.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris46.gif" \* MERGEFORMATINET
3.1.6 T - ТРИГГЕР
Анализ временной диаграммы при J = K = 1 (рис. 46) позволяет сделать два важных вывода. Во-первых , период повторения выходных импульсов увеличился в два раза, значит триггер в этом режиме делит частоту входных импульсов на два. Во-вторых, с приходом четного импульса выходной сигнал равен 0, а с приходом нечетного равен 1, т.е. триггер является счетчиком по модулю два. Триггер со счетным входом или T - триггер промышленностью не выпускается, а реализуется с помощью динамического D , или JK - триггеров.
3.1.7 ВЗАИМНЫЕ ПРЕОБРАЗОВАНИЯ ТРИГГЕРОВ
JK триггер преобразуется в динамический D - триггер подключением инвертора к входу K (рис.47-1), при этом из четырех комбинаций сигналов: J=K=0, J=K=1, J=0 K=1, J=1 K=0 осуществлены будут две последних, т.е. синхронные установка и сброс. Если необходим прямой синхровход, к входу C подключается еще один инвертор. На рис.47-2 JK триггер включен по схеме T - триггера со счетным входом (J=K=1). Счет можно прервать, подав на один из асинхронных входов 0.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris47.gif" \* MERGEFORMATINET
D-триггер с динамическим управлением также преобразуется в T-триггер, путем введения обратной связи с инверсного выхода на вход D. Тогда Q(t+dt) = D, но D в свою очередь равно D = ~Qt и, следовательно, Q(t+dt) = ~Qt, т.е. новое значение на выходе триггера является инверсией старого с каждым поступлением положительного перепада тактового импульса C (рис.48-1,2).
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris48.gif" \* MERGEFORMATINET
И, наконец, любой из перечисленных триггеров может быть использован в качестве асинхронного RS-триггера с инверсными входами (рис.48-3), невзирая на остальные сигналы, что объясняется наивысшим приоритетом входов ~S и ~R.
Схема на рис.48-1 позволяет оценить максимальную частоту входных импульсов Fmax на тактовом входе D-триггера в счетном режиме. В справочниках приводится задержка активного фронта сигнала от входа C до момента установления нового значения сигнала на выходе триггера tзд.р.тр. = tba (рис.48-4). Реже приводится время опережения установки tуст = tab информационным сигналом на входе D, активного фронта сигнала C. Новый активный фронт должен поступить не ранее окончания интервала времени равного сумме этих двух временных параметров. Отсюда следует, что максимальное значение Fмакс. деления < 1 / (tзд.р.тр. + tуст). Существует еще один параметр th - время удержания (hold) информационного сигнала относительного тактового (синхронизирующего), однако этим временем обычно можно пренебречь.
3.2 РЕГИСТРЫ
Последовательные схемы с различными комбинациями последовательного и параллельного способов записи и считывания информации. Выполняются на основе триггеров.
3.2.1 ПАРАЛЛЕЛЬНЫЕ И ПОСЛЕДОВАТЕЛЬНЫЕ РЕГИСТРЫ
Регистры с параллельной записью называются, также регистрами памяти. В них могут использоваться, как прозрачные "защелки", так и триггеры с динамическим управлением. На рис.49 приведена схема 8-ми разрядного регистра памяти с общим входом управления записью информацией и ее условное обозначение. Высокий уровень на входе C переписывает информацию с входа на выход (Qi=Di), а низкий уровень - защелкивает данные.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris49.gif" \* MERGEFORMATINET
Последовательные регистры или, как их еще называют, регистры сдвига (рис. 50) выполняются на основе триггеров с динамическим синхровходом, ( справедливо для регистров с одним тактирующим сигналом). В двухтактных можно использовать и прозрачные регистры - "защелки". Функция записи в n-разрядном регистре сдвига на D-триггерах задается в виде условий: D0=DS=x, Di=Q(i-1), где i=1,2,...,n-1. DS - вход для последовательной записи.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris50.gif" \* MERGEFORMATINET
С приходом очередного положительного фронта синхроимпульса C , сигнал с входа i-го триггера через время tзд.р. окажется на его выходе и поступит на вход следующего (i+1)-го триггера. Однако на его выход эта информация не перепишется, т.к. длительность активного фронта t0,1 меньше tзд.р. На этом процесс сдвига данных на один разряд закончится до прихода следующего положительного фронта тактового сигнала. Отсюда понятно, почему нельзя использовать триггеры со статическим управлением. Каждый раз при C = 1 вся цепочка окажется прозрачной от входа DS до выхода Q7 и значение DS = x будет записано во все триггеры.
В обозначениях регистров сдвига направление стрелки, указывающей сдвиг, условно. В разных справочниках, ее направление различно. Условно принимается, что сдвиг производится от младшего разряда к старшему. Практические схемы регистров дополняются схемами, подключаемыми к каждому триггеру и имеющими вход параллельной записи Di, общий вход разрешения записи L и общий асинхронный вход сброса ~R всех триггеров. Эти схемы подключаются к незадействованным входам ~Ri, ~Si триггеров. Данному описанию соответствует таблица истинности 9.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris50-1.gif" \* MERGEFORMATINET
Di и X - могут принимать любые значения, но Di в пределах одной строки, неизменно. Минимизируя логические функции ~Ri и ~Si с помощью таблиц Карно получим: ~Si = ~(L*Di*~R) и ~Ri = ~R*(~L + Di). Этой паре уравнений соответствует схема, показанная на рис.51, где приведено также условное обозначение регистра сдвига выполненного по такой схеме.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris51.gif" \* MERGEFORMATINET
Вход ~R обладает наивысшим приоритетом, если ~R=0, то ~Ri=0, а ~Si=1 и все триггеры обнуляются, независимо от сигналов L,Di и C. Меньшим приоритетом обладают входы L и Di. Если ~R = 1, то при L = 1, производится параллельная запись информации и Qi = Di независимо от сигнала C. И, наконец, если на входах ~R и L пассивные уровни, то ~Ri = ~Si = 1, тоже пассивный уровень и регистр хранит информацию, либо производит ее сдвиг.
Одно из применений регистров сдвига с параллельной загрузкой кода заключается в преобразовании параллельного формата данных в последовательный, передаче этих данных по однопроводной линии связи (вторая линия должна быть, как минимум "землей" или экраном) и обратном преобразовании последовательной информации в параллельную (рис.52).
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris52.gif" \* MERGEFORMATINET
Такая схема применяется в коммуникационных портах ЭВМ (COM-порты), в микросхеме К580ИК51, а также в модемах.
3.2.2 РЕВЕРСИВНЫЙ РЕГИСТР СДВИГА
Название указывает, что сдвиг данных от разряда к разряду может производиться, как в одну сторону, так и в другую. Одна из возможных схем трехразрядного реверсивного регистра с двумя последовательными информационными входами, для сдвига информации влево DSL, и вправо DSR, с параллельными входами записи (D0..D2), синхровходом C, входом ~R установки в 0 всех триггеров и двумя входами выбора режима M1,M0, приведена на рис.53.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris53.gif" \* MERGEFORMATINET
К D-входу любого разряда, за исключением крайних, подключены, через входы 1 и 2 мультиплексора, выходы и левого и правого соседних триггеров. Если M1=0, а M0=1, то к входам D подключены первые входы мультиплексоров и информация в каждый триггер, кроме нулевого записывается от левого соседа (происходит сдвиг вправо). Вход DSR служит в этом режиме для последовательного ввода информации. Если M1=1, M0=0, то к входам D подключены вторые входы мультиплексоров и информация в каждый триггер, кроме последнего записывается от правого соседа (происходит сдвиг влево). Для последовательного ввода данных в этом режиме используется вход DSL. При M1=M0=1 происходит параллельная запись Qi=Di положительным фронтом тактового сигнала. Для хранения информации необходимо подать комбинацию M1=M0=0. В этом случае к D-входам триггеров подключатся нулевые входы мультиплексоров (на схеме не показаны). Чтобы не произошло несанкционированной записи схема ИЛИ-И запрещает в этом режиме прохождение синхроимпульсов. По такой схеме выполнен 8-разрядный регистр 1533ИР13. Реверсивный регистр может использоваться для быстрого (всего за n тактов) деления и умножения двоичных чисел на 2^n, где n-число сдвигов. Например вместо числа 5, после сдвига влево на 2 разряда, стало число 20.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\ris53-1.gif" \* MERGEFORMATINET
3.2.3 СИНХРОННЫЙ И АСИНХРОННЫЙ СПОСОБЫ ЗАГРУЗКИ ПАРАЛЛЕЛЬНОГО КОДА
Устройства (в том числе регистры), в которых для записи входного параллельного кода Di используется сигнал разрешения записи L, а тактовый сигнал C не используется, называются устройствами с асинхронной параллельной записью кода.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron2.files\\Trigg-RG.files\\syn-asyn-load.gif" \* MERGEFORMATINET
Устройства (в том числе регистры), в которых для записи входного параллельного кода Di необходим, во-первых, сигнал разрешения записи L и, во-вторых, перепад синхросигнала на тактовом входе C - называются устройствами с синхронной параллельной записью кода.
Условные обозначения таких входов могут совпадать, поэтому для точной идентификации способа записи необходимо обращаться к справочникам (таблица состояний либо описание).
3.3 СЧЕТЧИКИ
Счетчик (Сч) - последовательная схема, преобразующая поступающие на вход импульсы в код Q, пропорциональный их количеству. Большинство счетчиков снабжено выходом переноса CR. Для двоичного и двоично-десятичного кода, как впрочем, и для других систем счисления, справедливы следующие соотношения:
Q = (D + SUM(C)) mod M
CR = (D + SUM(C)) \ M
В этих формулах: Q - код на выходах счетчика, D - начальное значение, записанное в счетчик, SUM(C) - сумма импульсов поступивших на вход в процессе счета и M - модуль счета или число различных состояний счетчика (число импульсов поступивших на счетный вход, после которых счетчик возвращается в исходное состояние), CR - число импульсов переноса, возникающих при возврате счетчика в исходное состояние на одноименном выходе, mod - операция нахождения остатка при делении на M, \ - операция целочисленного деления . Если D = 0 и SUM(C) < M, то очевидно, что Q = SUM(C) и CR = 0. C приходом каждого M-ного импульса счетчик возвращается в исходное состояние. Пример: пусть D =17, SUM(C) = 9, M = 8, тогда Q = 26 mod 8 = 2, а CR = 3.
Счетчики выполняются на триггерах со счетным входом (T-триггерах). По способу счета Сч могут быть суммирующие, вычитающие и реверсивные, т.е. изменяющие направление счета. По способу переключения триггеров делятся на асинхронные и синхронные. В асинхронных счетчиках триггеры переключаются последовательно (асинхронно) от разряда к разряду, а в синхронных одновременно. Один Т-триггер обеспечивает модуль счета М = 2, а n триггеров дадут М = 2^n. При суммировании импульсов необходимо формировать перенос из i-го в (i+1)-ый разряд по следующему правилу.
Правило 1: перенос CR из i-го в (i+1)-ый разряд формируется, если во всех разрядах с i-го по 0-й записана максимальная для данной системы счисления цифра, при этом разряды младше (i+1)-го обнуляются.
Q i+1 i..0 Q i+1 i..0
0 9999 0 1111 1--->|
DEC + 1 BIN + 1 | отрицательный
-------- -------- | перепад
1 0000 1 0000 |--->0
На прямых выходах триггеров этих разрядов Qi формируется отрицательный перепад ( см. рисунок), а на инверсных - положительный.
Отсюда вытекает правило 2: Если в Сч используются триггеры с прямым динамическим входом, то сигнал переноса в суммирующем счетчике снимается с инверсных выходов предыдущих триггеров, а если триггеры с инверсным динамическим входом, то сигнал переноса берется с прямых выходов.
3.3.1 АСИНХРОННЫЙ СЧЕТЧИК C ПОСЛЕДОВАТЕЛЬНЫМ ПЕРЕНОСОМ
В качестве примера возьмем четырехразрядный счетчик. Четыре двоичных разряда счетчика обеспечивают М = 16 состояний. Ниже приведена схема и условное обозначение такого счетчика, выполненная на JK-триггерах с инверсными динамическими входами
INCLUDEPICTURE "C:\\Мои документы\\INTERNET\\electron11.files\\ct-obu.files\\i-ct-1.gif" \* MERGEFORMATINET
По правилу 2 сигналы переносов должны сниматься с прямых выходов триггеров, которые переключаются последовательно друг за другом, т.е. асинхронно. Триггеры поставлены в режим счета (J = K = 1). Счетчик дополнен схемой формирования ускоренного переноса CR (Carry), выход которой может быть подключен к счетному входу C следующего такого же счетчика. Входы ~R всех триггеров объединены, а на входы ~S подана "лог.1", что позволяет "сбрасывать" счетчик сигналом ~R = 0. Счетный вход суммирующего счетчика обозначается "+1". Временные диаграммы схемы, без учета задержки сигнала даны на рисунке.
INCLUDEPICTURE "C:\\Мои документы\\INTERNET\\electron11.files\\ct-obu.files\\i-ct-2.gif" \* MERGEFORMATINET
Анализ временных диаграмм позволяет сделать ряд выводов:
1) После n-го по счету входного импульса код на выходах Q = Q3Q2Q1Q0 = n, например, после 5-го, код Q = 0101 = 5, а после 11-го - Q = 1011 = 11(DEC), т.е. схема действительно является счетчиком.
2) С приходом активного фронта 16-го импульса все триггеры "сбрасываются" и далее процесс повторяется, т.е. модуль счета М=16.
3) Схема также является делителем частоты входных импульсов на 2 в степени (i+1), где i - номер триггера, с которого снимается выходной сигнал.
4) Если снимать выходной код с инверсных выходов, то нетрудно заметить, что начальное значение Q = Q0Q1Q2Q3 = 1111 = 15, т.е. максимальному числу для четырех разрядов и далее, с приходом очередного импульса, код на выходах уменьшается на 1. В этом случае счетчик называют вычитающим. Такого же результата можно добиться, если снимать переносы с противоположных выходов триггеров, а код по-прежнему с прямых. Убедиться в этом нетрудно, самостоятельно построив временные диаграммы. Счетный вход вычитающего счетчика обозначается "-1".
5) Важно также отметить, что задний фронт импульса переноса совпадает с моментом перехода всех триггеров из 1 в 0, для суммирующего счетчика и с моментом перехода из 0 в 1 - для вычитающего.
Скорость счета или максимальная частота входных импульсов определяется задержкой сигнала от момента прихода активного фронта счетного импульса до появления нового кода на выходе последнего триггера: tзд.р.счетчика = n * tзд.р.триггера, где n-число триггеров. Тогда Fмакс. счета < 1/tзд.р.счетчика. На рис.56. показан процесс последовательного переключения отдельных триггеров счетчика с приходом восьмого импульса.
INCLUDEPICTURE "C:\\Мои документы\\INTERNET\\electron11.files\\ct-obu.files\\i-ct-3.gif" \* MERGEFORMATINET
Выходной код в течение интервала tзд.р.сч. принимает недопустимые значения (6,4,0). Скорость деления частоты входного сигнала не зависит от количества триггеров и определяется максимальной частотой переключения входного триггера, т.е. Fmax.деления < 1/(tзд.р.триггера + tуст) и больше Fмакс.счета.
3.3.2 СИНХРОННЫЙ СЧЕТЧИК С ПАРАЛЛЕЛЬНЫМ ПЕРЕНОСОМ
В синхронном счетчике импульсы поступают на тактовые входы всех триггеров одновременно. Ниже на рисунке ниже приведен трехразрядный счетчик с модулем счета M = 8. Справа приведено условное обозначение промышленно выпускаемого счетчика, дополненного входами Di для параллельной синхронной загрузки начального кода перепадом сигнала на входе C(+1) при ~L = 0, а также входом сброса ~R.
INCLUDEPICTURE "C:\\Мои документы\\INTERNET\\electron11.files\\ct-obu.files\\i-ct-4.gif" \* MERGEFORMATINET
Перенос из i-го разряда в (i+1)-ый производится по формуле CRi = Qi*..*Q1*Q0*(CE*PE) с помощью элементов "И". Входы CE (разрешение счета) и PE (разрешение переноса) на данном этапе рассмотрения могут быть объединены вместе (CE = PE = 1). Входы J и K триггеров соединены, поэтому возможно только два режима их работы - память (J = K= 0) и счет (J = K = 1). Триггер "i" изменит свое состояние только тогда, когда CR(i-1) = J = K = 1, т.е. при единичных значениях выходов всех предыдущих триггеров, что отвечает правилу 1. Во всех остальных случаях CR(i-1) = J = K = 0 и значение Qi не изменится. Быстродействие синхронного счетчика значительно выше, из-за того, что триггеры переключаются одновременно и сигнал CRi появится на JK входах через интервал tзд.р.счетч. = tзд.р.триггера + tзд.р.элемента"И", который не зависит от числа триггеров. Частота счета Fmax < 1/(tзд.р.сч. + tуст). Максимальная частота деления Fmax.деления = Fmax.счета.
3.3.3 РЕВЕРСИВНЫЙ СЧЕТЧИК
Схема двухразрядного счетчика с общим входом сброса R, выходом переноса CR при суммировании и выходом переноса BR при вычитании приведена на рис. внизу.
INCLUDEPICTURE "C:\\Мои документы\\INTERNET\\electron11.files\\ct-obu.files\\i-ct-5.gif" \* MERGEFORMATINET
Предположим, что начальное значение кода равно 2 (Q1 = 1 и Q0 = 0). Рассмотрим режим суммирования, когда на входе "-1" - действует ноль, а на вход "+1" приходит импульс. Отрицательный фронт входного импульса не пройдет через верхний канал мультиплексора "2 в 1", выполненного на элементе И-ИЛИ-НЕ, этому препятствует старое значение Q0=0. На входах нижнего канала действует конъюнкция единицы (~Q0 = 1) и нуля. Поэтому сигнал на выходе мультиплексора равен нулю и триггер T1 сохраняет старое значение. Через время, равное задержке элемента ИЛИ отрицательный фронт поступит на счетный вход триггера T0, и еще через время задержки триггера на его выходах установится новое значение Q0 = 1 (~Q0 = 0). При этом верхний канал открывается для прохождения отрицательного фронта счетного импульса, но т.к. длительность фронта t1,0 значительно меньше суммарного времени задержки tзд = tзд.р.ИЛИ + tзд.р. триггера, на входах "+1" и "-1" к этому времени действуют нули и выходной сигнал мультиплексора по прежнему равен 0. Триггер T1 остается в прежнем состоянии. Новый код на выходах счетчика увеличился на 1 и стал равен Q1Q0 = 11 = 3, до следующего импульса.
Рассмотрим режим вычитания, когда на входе "+1" - действует ноль, а на вход "-1" приходит импульс. Отрицательный фронт входного импульса беспрепятственно пройдет через нижний канал мультиплексора, т.к. ~Q0 = 1 и переключит триггер T1. Спустя время tзд новый код появится и на выходах триггера T0, но отрицательный перепад c выхода ~Q0 не пройдет на счетный вход триггера T1, по причине того, что сигнал на входе "-1" к этому времени уже равен нулю. Старый код 10 на выходах счетчика сменился кодом 01, т.е. уменьшился на 1.
Примерно так выполнены счетчики типа 1533ИЕ6 и 1533ИЕ7, с дополнительным асинхронным входом ~L параллельной записи начального кода. Их обозначения приведены на рисунке.
INCLUDEPICTURE "C:\\Мои документы\\INTERNET\\electron11.files\\ct-obu.files\\i-ct-6.gif" \* MERGEFORMATINET
В некоторых счетчиках предпочтительней иметь один тактовый вход и вход управления направлением счета. Для этого к входам "+1" и "-1" подключают демультиплексор "1 в 2". В этом случае, если управляющий сигнал U/~D = (Up/~Down) = 1, тактовые импульсы C поступают на вход суммирования, а если он равен нулю - на вход вычитания. Счетчик такого типа приведен на рисунке внизу.
INCLUDEPICTURE "C:\\Мои документы\\INTERNET\\electron11.files\\ct-obu.files\\i-ct-7.gif" \* MERGEFORMATINET
3.3.4 КАСКАДНОЕ ВКЛЮЧЕНИЕ СЧЕТЧИКОВ
Рассмотрим последовательное включение n - счетчиков с различными модулями счета Mi. Возможна постановка двух задач.
В первой необходимо определить частоту сигнала на выходе переноса CRi каждого счетчика при частоте входного сигнала Fвх.
Во второй - какой код будет зафиксирован на выходах QQ каждого счетчика после подачи Nвх импульсов?
INCLUDEPICTURE "C:\\Мои документы\\INTERNET\\electron11.files\\ct-obu.files\\i-ct-8.gif" \* MERGEFORMATINET
Для решения воспользуемся формулами счетчика.
Тогда в первой задаче на выход переноса первого счетчика пройдет CR1 = (D1 + Fвх) \ M1 - импульсов за единицу времени (1 сек). Раскрывая скобки и учитывая, что D < M, найдем CR1 = Fвх2 = Fвх \ M1. Аналогично найдем, что на выход переноса второго счетчика пройдет CR2 = Fвх3 = Fвх2 \ M2 = Fвх \ (M1* M2) импульсов. Окончательное решение даст CRn = Fвых = Fвх\(M1*M2*...*Mn).
Во второй задаче код на выходе 1-го счетчика QQ1 = (D1 + Nвх) mod M1, код на выходе второго счетчика QQ2 = (D2 + CR1) mod M2, и так далее до QQn = (Dn + CR(n-1)) mod Mn, причем величины CRi вычислены в первой задаче.
3.3.5 СЧЕТЧИК - ТАЙМЕР
Служит для формирования временных отрезков заданной длительности. Таймер может выполняться на вычитающих счетчиках или, в некоторых случаях, на суммирующих. Общим для этих схем является параллельная загрузка начального кода и остановка счета в момент переполнения счетчика. При этом интервал времени отсчитывается от активного фронта первого счетного импульса до заднего фронта сигнала переноса. Если требуется сформировать задержку в D секунд при tclk = 1сек., то начальный код N, загружаемый в вычитающий счетчик равен D. В суммирующий счетчик требуется записать N=M-1-D (число M-1 = 11..1). Как видно из диаграммы и в том, и в другом случае требуется D+1 импульсов, для перехода всех триггеров из одного состояния в другое и Tтайм = tclk * D, т.к. D - 0 = M - 1 - (M - 1 - D) = D.
INCLUDEPICTURE "C:\\Мои документы\\INTERNET\\electron11.files\\ct-obu.files\\i-ct-11.gif" \* MERGEFORMATINET
3.3.6 ПРИМЕНЕНИЕ СЧЕТЧИКОВ В ИЗМЕРИТЕЛЬНОЙ ТЕХНИКЕ
На рисунке внизу последовательно включены 6 счетчиков с модулем 10 (двоично-десятичные). Информационные выходы Qi каждого каскада через преобразователь BCD кода подключены к семисегментному индикатору.
В целом устройство может решать три задачи: считать количество импульсов, измерять их частоту следования и длительность.
INCLUDEPICTURE "C:\\Мои документы\\INTERNET\\electron11.files\\ct-obu.files\\i-ct-9.gif" \* MERGEFORMATINET
Перед любыми измерениями необходимо очистить счетчики, подав на вход R импульс сброса. 1) Для подсчета количества импульсов необходимо подать их на оба входа схемы И (или только на один, а на другой 1). Пусть на эти входы поступило N=1997 импульсов. Тогда на выходах младшего счетчика останется код QQ0 = 1997 mod 10 = 7. На выход переноса пройдет CR0 =1997 \ 10 = 199 импульсов, и далее QQ1 = (199 mod 10) = 9 и CR1 = 199 \ 10 = 19. В конце счета на выходах счетчиков будет зафиксирован BCD код = 0000 0000 0001 1001 1001 0111, а на индикаторах высветится число 001997. Внимание! У счетчиков на схемах младший разряд находится слева, а в числах - справа. В общем виде десятичный эквивалент BCD кода на выходах будет иметь вид: N = QQ(n-1) * 10^(n-1) + ... + QQ1 * 10^1 + QQ0 * 10^0. Из этого выражения следует, что N находится в диапазоне: 1 < = N <= 999999.
2) При измерении частоты входных импульсов, их необходимо подвести к входу "a", а на вход "b" подать импульс калиброванной длительности T равной 10^i (i =..-1,0,1,..), например T = 1сек, как на рисунке внизу.
INCLUDEPICTURE "C:\\Мои документы\\INTERNET\\electron11.files\\ct-obu.files\\i-ct-10.gif" \* MERGEFORMATINET
Частота повторения импульсов на входе "a" равна по определению: F = 1/dt. Из диаграмм "b" и "c" можно найти период повторения dt = T / N, с погрешностью dt / T.Тогда F = N / T и при T = 1с частота F = N. Диапазон измерения находится в пределах: (1...(10^6)-1)Гц. Для измерения длительности импульса на вход "a" необходимо подать сигнал с частотой F = 10^i (i=2,3,..), например F =10^6[Гц]. Длительность импульса T = N * dt = N / F и диапазон ее измерения равен (1..999999)мксек.