Перейти к содержанию
    

Вот задачка:

На входе некоторого устройства висит постоянный ноль, затем в какойто момент времени он переодически с равным промежутком времени переключается - 1-0-1-0-1-0(число циклов переключения каждый раз разное), и переходит в постоянное состояние либо 1 либо в 0, так вот необходимо зафиксировать событие стабильного состояния единицы и навыходе устройства получить либо постоянную единицу, либо единожды получить 1-0, по данному событию должно произойти срабатывание реле... Т.е реле срабатывает только один раз в момент фиксации постоянной единицы на входе... Возможно ли реализовать данное устройство на обычном логическом комплекте? без применения микроконтроллеров и т.д.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поставим вопрос по другому, для детектирования требуемого состояния мне необходимо что бы допустим последовательность 0000010101010 перешла в последовательность 0000001010101, т.е. с отставанием на один цикл, единицы должна сдвинуться.... Чем реализовать данный сдвиг?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поставим вопрос по другому, для детектирования требуемого состояния мне необходимо что бы допустим последовательность 0000010101010 перешла в последовательность 0000001010101, т.е. с отставанием на один цикл, единицы должна сдвинуться.... Чем реализовать данный сдвиг?

Для реализации декодирования такой последовательности необходимо иметь приемник (пусть это будет сдвиговый регистр), который по какому-то синхросигналу тактирования вводил этот последовательный поток в приемник.

У приемника (сдвигового регистра) естественно должны быть выходы каждой триггерной ячейки которые бы сравнивались на 'цифровом компараторе' с заданным значением (0000010101010 или какую Вы пожелаете).

А далее из приемника перепишите последовательность в буферный регистр с добавлением 1. Только зачем это все если надо включить реле...?

По моемому элементарный микроконтроллер справиться с этой задачей не менее изящней 'огорода на серийных логический элементах'. То же можно организовать и на ПЛИС (если нужна работа на больших частотах), но я тут Вам не помощник, т.к. никогда ими не занимался.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дык и я микроконтроллерами не занимался, да и неподходит это, и сдвиговые регистры не подходят, ну нету ни какого синхросигнала и все тут....

Кстати может Вы меня не правильно поняли, тут не только надо дописать единицу, а просто сдвинуть цикл, т.е. фазу смены 1-0...

0000010101010111111

0000001010101010000

там где в обоих строках единицы совпадают, то и будет состояние покоя при котором срабатывает реле на выходе...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дык и я микроконтроллерами не занимался, да и неподходит это, и сдвиговые регистры не подходят, ну нету ни какого синхросигнала и все тут....

Кстати может Вы меня не правильно поняли, тут не только надо дописать единицу, а просто сдвинуть цикл, т.е. фазу смены 1-0...

0000010101010111111

0000001010101010000

там где в обоих строках единицы совпадают, то и будет состояние покоя при котором срабатывает реле на выходе...

Каковы вопросы - таковы и ответы...

Я действительно не понимаю того, как Вы квантуете свою последовательность:

0000010101010111111

Как Ваш процесс происходит во времени или по переходу события с 0->1 и с 1->0??? Если у Вас имеется последовательность 00000, а не просто 0 значит процесс имеет временную зависимость! С чем Вы работаете со случайной последовательностью или с детерминированным сигналом??

По всей видимости задачу надо сформулировать более корректно, если конечно это не секрет или тайна. Тогда и решение будет более простым.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конечно лучше было бы нарисовать диаграмму, но я трактую последовательность так, допустим 1 - высокий уровень с временем t, 0 - низкий уровень с временем t. тогда 0000 это низкий уровень с временем 4t... Но в том то и дело что от времени ни чего не должно зависить, поэтому ни о какой синхронизации речи быть не может, все должно работать просто на сменах уровня...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конечно лучше было бы нарисовать диаграмму, но я трактую последовательность так, допустим 1 - высокий уровень с временем t, 0 - низкий уровень с временем t. тогда 0000 это низкий уровень с временем 4t... Но в том то и дело что от времени ни чего не должно зависить, поэтому ни о какой синхронизации речи быть не может, все должно работать просто на сменах уровня...

Хорошо, будем нак сказать отталкиваться от имеющейся информации.

Что бы отследить именно последовательность событий: 0000010101010 - необходимо их сосчитать! В данном случае с перехода 1 на 0. Это можно реализовать на счетчике по заднему фронфу импульса (счетными импульсами будут Ваши события их будет 4).

Далее задача неясна! Зачем из 0000010101010 делать 0000001010101...

Если вам надо иметь последовательность событий 0000001010101 или задержку на еще одно событие - досчитайте следующим событием до 5 и дешифрация пятерки выдаст Вам сигнал управления.

Или опять что-то не то... Мало информации!!! Теорему Котельникова о востановлении сигнала помните, так вот у меня и 2-х отсчетов пока нет применительно к Вашей задаче. :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если неизвестно заранее ни количество изменений 0-1, ни время между переходами, то задача теоретически не решается, поскольку невозможно по прошедшему времени сказать, прошло t или 4t. Послабление может быть, только если гарантировано, что есть, как минимум, переход 0-1-0 и длительности нулей и единиц в одной последовательности одинаковые, хотя бы приблизительно. Тогда по первой паре переходов вычисляете длительность импульса t, затем ждете, чтобы за время 2t ничего не менялось, и считаете это концом процесса. Реализовать можно на PLD или на микроконтроллере. На последнем проще, но возможно только если длительности не очень маленькие.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По моему, это та же задача. как и подавление дребезга от кнопки.

Имеется куча готовых вариантов решения - выбрать исходя из частоты (периода) перключения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Что касается 'дребезга контактов' то это делаеться на элементарной логике, подобных схем в интернете - море... а самых надежный способ подавления дребезга использовать простой RS-триггер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...