Ищу в интернете информацию о совершенствовании RS-триггера.Нигде нет.Дело в том,что разрабатывая одно устройство я схемотехнически решил проблему RS-триггера.Сделал на этих триггерах блок управления для станка,уже больше полгода работает и никаких жалоб нет.Никаких сбоев...Я перечитал много литературы,получается этот триггер никто не победил,эту проблему просто обошли стороной(JK-триггер например).У меня устранена строка ошибки.Получился асинхронный RS-триггер без строки ошибки.Ищу собеседников по этой теме...
Insector А по подробнее можно. Что за строка ошибки, как решил? Что то я не припомню такого. Триггер это же очень простое устройство, какие там могут быть ошибки.
Insector Действительно любопытный топикстарт Насколько я понимаю JK-триггер никакая не замена RS-триггера, а просто устройство другого предназначения, причём частенько микросхемы как JK- так и D-триггеров имеют RS-входы предназначенные для их принудительной установки в 1 или 0. Так о какой "глобальной суперпроблеме" речь - то ???
Так первые знаки буду R, S. Следующие два знака-Q Q_(инверсный выход) Исходное состояние 0 0 - 0 1 Теперь подаем сигнал на S вход 0 1 - 1 0 Сброс 1 0 - 0 1 Если же подать сигнал на оба входа,на обоих выходах будет так же оба сигнала. 1 1 - 1 1 когда снимем сигналы,состояние триггера будет неопределенным.В равной степени сигнал может быть как на прямом выходе,так и на инверсном. Эта проблема послужила толчком для дальнейшего совершенствования триггера.Получается,что ее обошли стороной (JK триггер).Но этот триггер меня не устроил тем,что у него тактовый,синхронный вход. Я как-то делал одно устройство,у меня получился триггер с такой таблицей истинности: Исходное стостояние 0 0 - 0 1 Переключаем триггер 0 1 - 1 0 Сбрасываем 1 0 - 0 1 Теперь подаем сигнал на оба входа 1 1 - 0 1 То есть R вход у меня получился преобладающим. И меня это устроило.Если пошел сбой,то триггер просто сбрасывется.Я делал блок управления для станка,получается,если сбой пошел,триггеры просто опрокидываются,станок останавливается. Вообще,почему я эту тему поднял...Когда-то я начал изучать микросхемы.Работал со 155 серией.И столкнулся с RS триггером.Я сразу подумал,не может быть такого,что нельзя обойти эту строку ошибки.Как я думал? Логические элементы-то есть логикой мы можем получить все,что хотим.Но пришлось потом работать.И я забросил эту тему до лучших времен...А потом устроился на одно предприятие,и мне сделали экзамен-сконструировать блок управления для станка.И тут я опять столкнулся с этой строкой ошибки.Мне нужно было получить асинхронный статический триггер.Я поднял гору литературы,читал информацию про новые технологии,наткнулся на ПЛИС (программируемые логические интегральные схемы).И везде этот RS триггер с его строкой ошибки...Его не могут решить больше 30 лет.А у меня получилось,и я сразу подумал,а как бы продвинулась автоматика,если бы тогда был этот триггер...
Позвольте в это очень сильно усомниться ) "JK и D - тиггеры могут работать в счётном режиме, т.е. менять своё состояние на противоположное на каждый импульс приходящий на счётный вход триггера" - раз причина!!! - два причина !!! Как раз для работы сложных устройств потребовалась их синхронизация ) Реально RS триггер прижился в основном в схемах принудительного сброса\начальной установки где поднятая тобой проблема просто не актуальна. Имхо не "не могут", а не хотят - конечно если долго медитировать можно напридумывать "экзотических устройств", для которых эта "строка ошибки" - смерть. Только сейчас микроконтроллеры рулят
Первое,старый блок управления был собран на и-не элементах.Там столько было наворочено...Было штук 15 блоков.Когда я собрал на своих триггерах,получилось 6 плат-блоков.Учитывайте,что травил и собирал сам,вручную.Это я к тому,что уже в то время(лет 20 назад),можно было упростить,удешевить автоматику. Второе,D и JK триггеры-это синхронные устройства,и они должны синхронизироваться.Согласен,но всегда ли нужна синхронизация,соответственно усложнение устройства? Просто есть и будут устройства,где цикл и действие их конечно,ограниченно...То есть,в принципе можно обойтись,к примеру ПЛИСом.Читал их устройство.Смотрел внутреннюю схему.До сих пор прочно обосновались RS-защелки! Третье,нужны были реле времени,попалось одно,собрано на AVR-микроконтроллере.Столкнулся с неприятным моментом...Мне нужно было получить логические вход и выход.На выходе этого блока стоит реле.Я решил управлять по питанию.но в момент включения микроконтроллер выдавал короткий(несколько микросекунд) ложный импульс.То есть,в момент включения он опрашивается,загружает программу...По входу сброса така же картина.Допускаю,что коряво написана программа.Реле на выходе потому и стояло,что не успевало срабатывать.Обошелся оптронами после реле,для развязки схемы. Четвертое,вообще я свожу к тому,что процессоры,микроконтроллеры как раз и состоят из RS-защелок.С этой строкой ошибки,по другому-запрещенным состоянием.Прогресс двигается к тому,чтобы процессор работал быстрее,больше обрабатывал команд за отрезок времени.Хорошо,подумайте над одним парадоксом-у процессора есть порты ввода-вывода.Нам нужно задействовать,скажем несколько портов на кнопки.Но сталкиваемся с дребезгом контакотов.Я читал литературу по тем же самым AVR-микроконтроллерам.Чтобы устранить дребезг контактов,нужно написать программу.Теперь работает процессор,опрашивает порты ввода-вывода,уже какое-то время тратится.Теперь на каком-то входе есть контакт,время еще тратится и на программу устранения дребезга контактов.Ну не маразм ли???!!!!
Вроде не маразм. При включении импульс на сигнальных ногах? Ду дык наверное, входы несконфигурены ещё на I/O. На сбросе импульс? Вообще он и должен быть, для запуска контроллера, формируется либо внутри, либо внешними цепями, в зависимости от типа. Скажу по секрету вам, что эту программу не надо писать. Для большинства микроконтроллеров есть т.н. application note , где ваша задача , именуемая в простонародье "набор лампочек и кнопочек", расписана обычно очень подробно, т.к. является базовой.. этакий 'Hello, World'. Какой-нить дешевенький RISC - и проблема растворяется ... microchip.com
Ну ты крут ))) - На AVR или PIC плата логики (силовая часть не в счёт) была бы одна и соооовсем маааалюсенькая Я уже писал - зависимость обратная "серьёзное устройство" ==> "нужна синхронизация" Во первых не всегда (есть и апаратная поддержка), во вторых писать программу полюбому нужно и командой больше\меньше - не важно. А важно, что вместо 6 плат с грудой "супертриггеров" - всего одна с легко обновляемой логикой работы Во первых "дребезг контактов" = "переходной процесс" ==> он гораздо короче чем "рабочая реакция", во вторых в критических случаях рулят бесконтактные датчики типа Холла и т.п. В третьих для управления станком, особенно старым - запас быстродействия контроллеров такой, что им зачастую полюбому приходится 90% времени просто спать ЗЫ: Что за старообрядческая контора такая, что "сделали экзамен-сконструировать блок управления для станка" и не включили в ТЗ "использовать современную элементную базу" ) ЗЗЫ: В ответе не нужно цитировать весь предыдущий пост - достаточно взять из него фразы, которые комментируешь, или просто сослаться на имя кому отвечаешь.
Насчет количества плат-блоков-сами триггеры уместились на одной плате 12х10 см.Остальные платы-оптоэлектронная развязка входов и выходов,и схемы совпадения и разрешения прохождения сигналов.Если бы я делал на процессоре,получилось бы 5 плат.Сам процесоор,два блока входов,блок выходов,и плата пульта управления.Производство-это безотказное оборудование,поэтому делается оптоэлектронная развязка.Чтобы помехи не попали на плату процессора.
Ну прям "Назад в будущее" получается Ну хорошо, без схем развязки никуда не дется... Но вместо боарда 10х15 запичканого тригерами была бы одна кро-о-о-охотная микросхема. И как уже писали А, ну да, забыл. И ета плата могла бы управлять 10 станками сразу
Ага ) Ты бы ещё ПК с win XP попробовал "поуправлять" методом выдёргивания из розетки и сказал - кривая машина - глупые сообщения пишет, зачем-то винду каждый раз "восстанавливает после серьёзного сбоя" ) Ясен пень, что МК для запуска требуется время на стабилизацию работы тактового генератора, приведение в порядок систем адресации и т.п. А "кривизна программы" тут совершенно ни при чём. Хотя конечно не буду спорить, что когда "устройство автоматики" состоит из одной функции, реализуемой одной простейшей логической микросхемой, или парой диодов\транзисторов, да к тому-же "управляется по питанию" ) то асинхронные схемы предпочтительнее синхронных. Ещё раз повторяю JK и D триггеры разрабатывались как раз потому, что в процессорах (разновидностью коих являются МК) потребовалась синхронные триггеры и счётчики не реализуемые на RS И наконец твоя "строка ошибки" вообще-то не баг, а фича, вполне документированная и состояние после снятия 11 не "не определено" а "определяется тем с какого из входов сигнал снят последним". В большинстве случаев это состояние 11 просто не используется за ненадобностью. Опять таки не спорю - в отдельных специфических случаях твой вариант триггера предпочтительнее "классического RS", но говорить о "революции в автоматике" и необходимости "срочной переделки ПЛИС на новый вид RS триггера" боюсь не приходится - не тот масштаб применимости ЗЫ: Да первое апреля скоро - весёлые топики пошли
Insector >И везде этот RS триггер с его строкой ошибки... >Его не могут решить больше 30 лет. >А у меня получилось,и я сразу подумал,а как бы продвинулась автоматика,если бы тогда был этот триггер... Ведь именно эта мысль породила данную ветку, правда ? Так почему бы не оставить в стороне частности типа "платы 12х10" и не пойти кратчайшим путем: вот вам моя схема идеального RS-триггера, и судите сами, как бы продвинулась автоматика, обопрись она на него 30 лет назад. P.S. Кстати, почему WASM_HARDWARE, а не WASM_ELECTRONICS ? Речь-то вроде о схемотехнике.
Прошу прощения за рисунок опубликованный в предыдущем топике, такой триггер не должен работать. Но скорость решения говорит о "сложности" проблемы которую якобы >не могут решить больше 30 лет хотя триггер намного старше >Эпохальным для истории вычислительной техники событием стало изобретение триггера Бонч->Бруевичем в 1918 году в РСФСР, а также независимо год спустя в Америке, Икклзом и Джорданом. начнем с постановки задачи и от того что Insector Работал со 155 серией А где же главное состояние RS триггера, в котором он хранит предыдущее состояние, когда на входах R и S нет никакого сигнала? Для TTL-логики отсутствие сигнала как раз и соответствует логической 1. То есть для классического RS-триггера состояния должны быть следующими: R=0 S=1 сброс, R=1 S=0 установка, R=1 S=1 хранение предыдущего состояния, R=0 S=0 неопределенное состояние. Вероятно с неопределенным состоянием, оно же запрещенное состояние, у Insector "строка ошибки" топикстартер и пытался бороться, к сожалению Insector не представил свою схему, но по описанию она подходит под ассинхронный D-триггер, который по идее должен быть изобретен раньше синхронного. В аттаче исправленный вариант
kero Нажимаю на кнопку ответить и указываю путь к рару... может это у вас что то в европейской части? а вот как вставить рисунок? я сразу хотел вставить схему если между "img""/img" вставить путь к файлу то должен он быть быть приаттаченным?
Во-первых,я писал есть сигнал или нет его.То есть не зависимо от того какая логика используется.Я в курсе,что 1 может считаться как низкий так и высокий уровень сигнала.Во-вторых,и во воторой схеме есть ошибка,когда показываешь схемы,то хотя бы просчитай все комбинации сигналов.Теперь,как я описал таблицу истинности для своего триггера.Сразу скажу я пишу таблицы истинности независимо от того какая логика включения используется 0 или 1. 0 0 - 0 1 Исходное 0 1 - 1 0 Подается на S вход. 0 0 - 1 0 Хранение состояния. 1 0 - 0 1 Подается на R вход. 1 1 - 0 1 Подаем на оба входа. Как видно R вход преобладающий. Этот триггер легко сделать синхронным.Повторюсь,мне нужно было получить асинхронный статический триггер.
Insector И вы меня еще упрекаете что я восстанавливаю вашу схему по вашим же отрывочным сведениям? Опубликуйте вы схему "идеального" триггера, а не таблицу состояний - вопросы сами бы собой отпали. Даже по верхнему топику не очевидно что за сигнал 0 или 1 подан на вход R, а что на S. И что вы считаете соответствует логической 1 высокий или низкий сигнал? Я например считаю, что 1 это высокий уровень. На чем собрана ваша схема, если TTL- то отсутствие сигнала соответствует 1, эсли ваш "идеальный" триггер собран на КМОП то отсутствие сигнала соответствует 0. два во второй степени это четыре, а не пять Хранение состояния 1 0 у вас тригер состоя ние 0 1 видимо не сохраняет? и прежде чем отправлять свою схему, почему вы думаете, что я ее не проверил?