geg 0 7 октября, 2005 Опубликовано 7 октября, 2005 · Жалоба Вот задачка: На входе некоторого устройства висит постоянный ноль, затем в какойто момент времени он переодически с равным промежутком времени переключается - 1-0-1-0-1-0(число циклов переключения каждый раз разное), и переходит в постоянное состояние либо 1 либо в 0, так вот необходимо зафиксировать событие стабильного состояния единицы и навыходе устройства получить либо постоянную единицу, либо единожды получить 1-0, по данному событию должно произойти срабатывание реле... Т.е реле срабатывает только один раз в момент фиксации постоянной единицы на входе... Возможно ли реализовать данное устройство на обычном логическом комплекте? без применения микроконтроллеров и т.д. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BVU 0 7 октября, 2005 Опубликовано 7 октября, 2005 · Жалоба Для фиксации события используйте триггер... а алгоритм детектирования требуемого состояния можно спроектировать на логике. Если надо учитывать количество переключений - используйте счетчик. Все это есть - цифровая схемотехника. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
geg 0 7 октября, 2005 Опубликовано 7 октября, 2005 · Жалоба Поставим вопрос по другому, для детектирования требуемого состояния мне необходимо что бы допустим последовательность 0000010101010 перешла в последовательность 0000001010101, т.е. с отставанием на один цикл, единицы должна сдвинуться.... Чем реализовать данный сдвиг? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BVU 0 7 октября, 2005 Опубликовано 7 октября, 2005 · Жалоба Поставим вопрос по другому, для детектирования требуемого состояния мне необходимо что бы допустим последовательность 0000010101010 перешла в последовательность 0000001010101, т.е. с отставанием на один цикл, единицы должна сдвинуться.... Чем реализовать данный сдвиг? <{POST_SNAPBACK}> Для реализации декодирования такой последовательности необходимо иметь приемник (пусть это будет сдвиговый регистр), который по какому-то синхросигналу тактирования вводил этот последовательный поток в приемник. У приемника (сдвигового регистра) естественно должны быть выходы каждой триггерной ячейки которые бы сравнивались на 'цифровом компараторе' с заданным значением (0000010101010 или какую Вы пожелаете). А далее из приемника перепишите последовательность в буферный регистр с добавлением 1. Только зачем это все если надо включить реле...? По моемому элементарный микроконтроллер справиться с этой задачей не менее изящней 'огорода на серийных логический элементах'. То же можно организовать и на ПЛИС (если нужна работа на больших частотах), но я тут Вам не помощник, т.к. никогда ими не занимался. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
geg 0 7 октября, 2005 Опубликовано 7 октября, 2005 · Жалоба Дык и я микроконтроллерами не занимался, да и неподходит это, и сдвиговые регистры не подходят, ну нету ни какого синхросигнала и все тут.... Кстати может Вы меня не правильно поняли, тут не только надо дописать единицу, а просто сдвинуть цикл, т.е. фазу смены 1-0... 0000010101010111111 0000001010101010000 там где в обоих строках единицы совпадают, то и будет состояние покоя при котором срабатывает реле на выходе... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BVU 0 7 октября, 2005 Опубликовано 7 октября, 2005 · Жалоба Дык и я микроконтроллерами не занимался, да и неподходит это, и сдвиговые регистры не подходят, ну нету ни какого синхросигнала и все тут.... Кстати может Вы меня не правильно поняли, тут не только надо дописать единицу, а просто сдвинуть цикл, т.е. фазу смены 1-0... 0000010101010111111 0000001010101010000 там где в обоих строках единицы совпадают, то и будет состояние покоя при котором срабатывает реле на выходе... <{POST_SNAPBACK}> Каковы вопросы - таковы и ответы... Я действительно не понимаю того, как Вы квантуете свою последовательность: 0000010101010111111 Как Ваш процесс происходит во времени или по переходу события с 0->1 и с 1->0??? Если у Вас имеется последовательность 00000, а не просто 0 значит процесс имеет временную зависимость! С чем Вы работаете со случайной последовательностью или с детерминированным сигналом?? По всей видимости задачу надо сформулировать более корректно, если конечно это не секрет или тайна. Тогда и решение будет более простым. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
geg 0 7 октября, 2005 Опубликовано 7 октября, 2005 · Жалоба Конечно лучше было бы нарисовать диаграмму, но я трактую последовательность так, допустим 1 - высокий уровень с временем t, 0 - низкий уровень с временем t. тогда 0000 это низкий уровень с временем 4t... Но в том то и дело что от времени ни чего не должно зависить, поэтому ни о какой синхронизации речи быть не может, все должно работать просто на сменах уровня... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BVU 0 7 октября, 2005 Опубликовано 7 октября, 2005 · Жалоба Конечно лучше было бы нарисовать диаграмму, но я трактую последовательность так, допустим 1 - высокий уровень с временем t, 0 - низкий уровень с временем t. тогда 0000 это низкий уровень с временем 4t... Но в том то и дело что от времени ни чего не должно зависить, поэтому ни о какой синхронизации речи быть не может, все должно работать просто на сменах уровня... <{POST_SNAPBACK}> Хорошо, будем нак сказать отталкиваться от имеющейся информации. Что бы отследить именно последовательность событий: 0000010101010 - необходимо их сосчитать! В данном случае с перехода 1 на 0. Это можно реализовать на счетчике по заднему фронфу импульса (счетными импульсами будут Ваши события их будет 4). Далее задача неясна! Зачем из 0000010101010 делать 0000001010101... Если вам надо иметь последовательность событий 0000001010101 или задержку на еще одно событие - досчитайте следующим событием до 5 и дешифрация пятерки выдаст Вам сигнал управления. Или опять что-то не то... Мало информации!!! Теорему Котельникова о востановлении сигнала помните, так вот у меня и 2-х отсчетов пока нет применительно к Вашей задаче. :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex11 3 7 октября, 2005 Опубликовано 7 октября, 2005 · Жалоба Если неизвестно заранее ни количество изменений 0-1, ни время между переходами, то задача теоретически не решается, поскольку невозможно по прошедшему времени сказать, прошло t или 4t. Послабление может быть, только если гарантировано, что есть, как минимум, переход 0-1-0 и длительности нулей и единиц в одной последовательности одинаковые, хотя бы приблизительно. Тогда по первой паре переходов вычисляете длительность импульса t, затем ждете, чтобы за время 2t ничего не менялось, и считаете это концом процесса. Реализовать можно на PLD или на микроконтроллере. На последнем проще, но возможно только если длительности не очень маленькие. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Adlex 0 9 октября, 2005 Опубликовано 9 октября, 2005 · Жалоба По моему, это та же задача. как и подавление дребезга от кнопки. Имеется куча готовых вариантов решения - выбрать исходя из частоты (периода) перключения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BVU 0 10 октября, 2005 Опубликовано 10 октября, 2005 · Жалоба Задача сформулирована крайне не корректно (совершенная абстракция - то преобразование последовательности, то реакция на последовательность событий (переходов)). Не стоит обсуждвть это дальше пока не будет - новой информации, тем более сам постановщик вопроса замолчал не желая раскрывать свой т.з. Что касается 'дребезга контактов' то это делаеться на элементарной логике, подобных схем в интернете - море... а самых надежный способ подавления дребезга использовать простой RS-триггер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться