|
|
  |
help |
|
|
|
Oct 7 2005, 03:02
|
Группа: Новичок
Сообщений: 4
Регистрация: 7-10-05
Пользователь №: 9 316

|
Вот задачка: На входе некоторого устройства висит постоянный ноль, затем в какойто момент времени он переодически с равным промежутком времени переключается - 1-0-1-0-1-0(число циклов переключения каждый раз разное), и переходит в постоянное состояние либо 1 либо в 0, так вот необходимо зафиксировать событие стабильного состояния единицы и навыходе устройства получить либо постоянную единицу, либо единожды получить 1-0, по данному событию должно произойти срабатывание реле... Т.е реле срабатывает только один раз в момент фиксации постоянной единицы на входе... Возможно ли реализовать данное устройство на обычном логическом комплекте? без применения микроконтроллеров и т.д.
|
|
|
|
|
Oct 7 2005, 08:13
|
Группа: Новичок
Сообщений: 4
Регистрация: 7-10-05
Пользователь №: 9 316

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

Профессионал
    
Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264

|
Цитата(geg @ Oct 7 2005, 12:13) Поставим вопрос по другому, для детектирования требуемого состояния мне необходимо что бы допустим последовательность 0000010101010 перешла в последовательность 0000001010101, т.е. с отставанием на один цикл, единицы должна сдвинуться.... Чем реализовать данный сдвиг? Для реализации декодирования такой последовательности необходимо иметь приемник (пусть это будет сдвиговый регистр), который по какому-то синхросигналу тактирования вводил этот последовательный поток в приемник. У приемника (сдвигового регистра) естественно должны быть выходы каждой триггерной ячейки которые бы сравнивались на 'цифровом компараторе' с заданным значением (0000010101010 или какую Вы пожелаете). А далее из приемника перепишите последовательность в буферный регистр с добавлением 1. Только зачем это все если надо включить реле...? По моемому элементарный микроконтроллер справиться с этой задачей не менее изящней 'огорода на серийных логический элементах'. То же можно организовать и на ПЛИС (если нужна работа на больших частотах), но я тут Вам не помощник, т.к. никогда ими не занимался.
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|
|
|
|
|
Oct 7 2005, 08:54
|
Группа: Новичок
Сообщений: 4
Регистрация: 7-10-05
Пользователь №: 9 316

|
Дык и я микроконтроллерами не занимался, да и неподходит это, и сдвиговые регистры не подходят, ну нету ни какого синхросигнала и все тут.... Кстати может Вы меня не правильно поняли, тут не только надо дописать единицу, а просто сдвинуть цикл, т.е. фазу смены 1-0... 0000010101010111111 0000001010101010000 там где в обоих строках единицы совпадают, то и будет состояние покоя при котором срабатывает реле на выходе...
|
|
|
|
|
Oct 7 2005, 09:11
|

Профессионал
    
Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264

|
Цитата(geg @ Oct 7 2005, 12:54) Дык и я микроконтроллерами не занимался, да и неподходит это, и сдвиговые регистры не подходят, ну нету ни какого синхросигнала и все тут.... Кстати может Вы меня не правильно поняли, тут не только надо дописать единицу, а просто сдвинуть цикл, т.е. фазу смены 1-0... 0000010101010111111 0000001010101010000 там где в обоих строках единицы совпадают, то и будет состояние покоя при котором срабатывает реле на выходе... Каковы вопросы - таковы и ответы... Я действительно не понимаю того, как Вы квантуете свою последовательность: 0000010101010111111 Как Ваш процесс происходит во времени или по переходу события с 0->1 и с 1->0??? Если у Вас имеется последовательность 00000, а не просто 0 значит процесс имеет временную зависимость! С чем Вы работаете со случайной последовательностью или с детерминированным сигналом?? По всей видимости задачу надо сформулировать более корректно, если конечно это не секрет или тайна. Тогда и решение будет более простым.
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|
|
|
|
|
Oct 7 2005, 09:19
|
Группа: Новичок
Сообщений: 4
Регистрация: 7-10-05
Пользователь №: 9 316

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

Профессионал
    
Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264

|
Цитата(geg @ Oct 7 2005, 13:19) Конечно лучше было бы нарисовать диаграмму, но я трактую последовательность так, допустим 1 - высокий уровень с временем t, 0 - низкий уровень с временем t. тогда 0000 это низкий уровень с временем 4t... Но в том то и дело что от времени ни чего не должно зависить, поэтому ни о какой синхронизации речи быть не может, все должно работать просто на сменах уровня... Хорошо, будем нак сказать отталкиваться от имеющейся информации. Что бы отследить именно последовательность событий: 0000010101010 - необходимо их сосчитать! В данном случае с перехода 1 на 0. Это можно реализовать на счетчике по заднему фронфу импульса (счетными импульсами будут Ваши события их будет 4). Далее задача неясна! Зачем из 0000010101010 делать 0000001010101... Если вам надо иметь последовательность событий 0000001010101 или задержку на еще одно событие - досчитайте следующим событием до 5 и дешифрация пятерки выдаст Вам сигнал управления. Или опять что-то не то... Мало информации!!! Теорему Котельникова о востановлении сигнала помните, так вот у меня и 2-х отсчетов пока нет применительно к Вашей задаче.
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|
|
|
|
|
Oct 7 2005, 19:58
|
Гуру
     
Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965

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