Страница 1 из 2

Трёхфазный датчик движения и направления на логике.

Добавлено: Вт сен 22, 2015 21:25:12
DjAndy
Всем привет! :)

Имеется исходный сигнал с трёхканального датчика вращения на оптических прерывателях:

Изображение

Задача:
- схему сделать на обычной логике, TTL или CMOS,
- определить направление вращения по каждому следующему фронту (+/-) с каждого датчика,
- выделить импульсы с каждого фронта, положительного и отрицательного, для их подсчёта в прямом и обратном направлении.

Логика с датчиков переключений такая:
000
001
011
111
110
100

Три дня ломал голову, пришёл к такому решению:

После датчиков дешифратор состояний с шестью выходами (сколько состояний, столько и выходов).
С каждого фронта (любой полярности) любого из датчиков формируется короткий тактовый импульс с заданной длительностью (CLK).
С дешифратора состояний данные записываются в сдвиговый регистр (одна единица с одного из выходов дешифратора).
С поступлением CLK регистр сдвигает данные (единицу смещает по циклу) и если эта единица совпадает с состоянием дешифратора формируется сигнал "совпадение", т.е. счёт в плюс.
Если совпадения нет, - счёт в минус.
Далее по спаду CLK в регистр записывается текущее состояние дешифратора и цикл повторяется.

Что-то мне это решение не кажется очень изящным.
Может у кого будут замечания, или кто уже сталкивался с таким и есть решения попроще, буду благодарен за подзатыльники и подсказки.
:)

Re: Трёхфазный датчик движения и направления на логике.

Добавлено: Вт сен 22, 2015 21:39:48
otest
а ты нарисуй свои мысли, а форум поправит.

Re: Трёхфазный датчик движения и направления на логике.

Добавлено: Ср сен 23, 2015 01:25:13
DjAndy
otest писал(а):а ты нарисуй свои мысли, а форум поправит.
Уже озвучил свои мысли, для схемотехников достаточно.
Схема разбросана по тетради, ошибки в ней искать не нужно, а перерисовывать целиком неохота.
Сама концепция мне кажется неправильной, и в итоге громоздкой в конечной реализации.
Структурную схему прилагаю:

Изображение

Мысли изначально крутились вокруг дешифратора состояний датчиков, может в этом и есть моя ошибка.
Хотя не пришлось городить сложную схему сравнения, обошёлся простыми логическими элементами, т.к. сравнивается каждый раз только одна линия данных.

Если взять последовательности сигналов напрямую с датчиков и сдвигать их для сравнения, уберётся дешифратор, но усложнится схема сравнения.
Или я вообще напрасно сдвиг и сравнение использую? :shock:

Re: Трёхфазный датчик движения и направления на логике.

Добавлено: Ср сен 23, 2015 05:06:33
m.ix
DjAndy писал(а):Схема разбросана по тетради, ошибки в ней искать не нужно, а перерисовывать целиком неохота.
И что?
Юзер не обладает сканером?
ИЛИ не облабает умением рисования в splan?
одлада одлади ...

Наверное очередной ленивый курсач :)))

Возьми шарового грызуна, он тебе подскажет направление и ускорение и прочее.
А ты знал. что оптической мышью можно сканировать документы не хуже сканера?
Сей прогой игрался много лет назад под win95

Re: Трёхфазный датчик движения и направления на логике.

Добавлено: Ср сен 23, 2015 06:08:49
DjAndy
m.ix писал(а):
DjAndy писал(а):Схема разбросана по тетради, ошибки в ней искать не нужно, а перерисовывать целиком неохота.
И что?
Юзер не обладает сканером?
ИЛИ не облабает умением рисования в splan?
[...]
Наверное очередной ленивый курсач :)))

Возьми шарового грызуна, он тебе подскажет направление и ускорение и прочее.
А ты знал. что оптической мышью можно сканировать документы не хуже сканера?
Сей прогой игрался много лет назад под win95
Уважаемый, Вы читать умеете надеюсь, - выше уже внятно сказал - схема получилась громоздкая и несуразная.
Вы хотите её увидеть? Зачем? Чтобы ошибки в ней поискать? Их там нет.
Сама концепция усложнена, что мне и не нравится, блок-схема выложена, кто работал с логикой прекрасно всё поймёт.
Сканер есть, и с CAD-ами по разводке ПП работал профессионально, из возраста писать "курсачи" давно вышел, ещё при Союзе.
В SPLAN рисуют схемы от лени освоить нормальную среду рисования схем, ORCAD например.
По поводу "шарового грызуна", там всё гораздо проще - 2 фотодатчика на одну плоскость вращения, и схем реализации детекторов направления с таких датчиков хватает.
Большинство этих схем считают фронты одной полярности:

Изображение

или определяют направление с помощью делителей:

Изображение

хотя есть и учитывающие фронты обоих полярностей с каждого из датчиков, и определяющие направление по каждому из фронтов:

Изображение

но, всё это работа с двумя оптодатчиками.

В моём случае три оптодатчика и нужно считать по каждому фронту любой полярности, каждого из трёх датчиков, и определять направление по любому из фронтов.
Исходя из этих условий и свои сложности...

Re: Трёхфазный датчик движения и направления на логике.

Добавлено: Ср сен 23, 2015 07:07:45
akl
ПЗУ с обратными связями, в котором зашит описанный автомат состояний. Хотя, 8-ми ногий контроллер с такой задачей справился бы.

Re: Трёхфазный датчик движения и направления на логике.

Добавлено: Ср сен 23, 2015 07:32:29
DjAndy
akl писал(а):ПЗУ с обратными связями, в котором зашит описанный автомат состояний. Хотя, 8-ми ногий контроллер с такой задачей справился бы.
MCU если и справится с полной задачей, не считая этой, то очень мощный, - только с этих датчиков общая частота около 10кГц будет, плюс все заложенные в устройство постоянные realtime пересчёты.
Сам лично с MCU не дружу, не далось оно мне. Поэтому и уход к логике, чтобы загнать схему в последствии в ПЛИС.

Re: Трёхфазный датчик движения и направления на логике.

Добавлено: Сб сен 26, 2015 04:48:12
hrpankov
...припомню: Задача:

- схему сделать на обычной логике, TTL или CMOS,
- определить направление вращения по каждому следующему фронту (+/-) с каждого датчика,
- выделить импульсы с каждого фронта, положительного и отрицательного, для их подсчёта в прямом и обратном направлении."

....ЛП5 справиться с виделением импульсов, а небольшое ПЗУ с обратной связью - со всем остальним....

Re: Трёхфазный датчик движения и направления на логике.

Добавлено: Ср сен 30, 2015 16:32:15
DjAndy
Вот что у меня получилось на чистой логике, без ПЗУ:

Изображение

Два импульсных дешифратора (отдельные для обоих направлений импульсов с датчиков), срабатывающих по любому из фронтов с любой полярностью.
Получилось 6 корпусов логики. Можно попробовать применить обычные дешифраторы вместо 7410 (ЛА4), корпусов будет меньше.

Кстати, наращивание ЛП5 на 3 входа и более, как рисуется во многих книжках, у Шило например, не работает как многовходовое "исключающее ИЛИ".

Re: Трёхфазный датчик движения и направления на логике.

Добавлено: Чт окт 01, 2015 18:02:42
Flasher
Насчет ЛП5 поподробнее, пожалуйста.

Re: Трёхфазный датчик движения и направления на логике.

Добавлено: Чт окт 01, 2015 20:09:58
DjAndy
Flasher писал(а):Насчет ЛП5 поподробнее, пожалуйста.
Если это ко мне по поводу
DjAndy писал(а):Кстати, наращивание ЛП5 на 3 входа и более, как рисуется во многих книжках, у Шило например, не работает как многовходовое "исключающее ИЛИ".
Отвечу. Смотрим известную многим книжку:
В.Л.Шило. Популярные цифровые микросхемы (Справочник, Радио и связь, 1987)
Логика работы ЛП5: - совпадение лог.уровней на входах - на выходе "0":

Изображение

А теперь смотрим предложенный вариант расширения входов, Рис. 1.36.а

Изображение

Получается, - при несовпадении лог.уровней на входах А и B и единице на входе C, на выходе Q Рис. 1.36.а сформируется сигнал "0" (совпадение по трём входам). :)
Пример:
A=1
B=0
C=1
Q=0
А должна быть единица на выходе при разногласии на входах.

Разбор полётов:
A=1
B=0
на выходе первого элемента "1", приехали.
На входы второго элемента поступают "1", на входе "0".

Re: Трёхфазный датчик движения и направления на логике.

Добавлено: Чт окт 01, 2015 20:25:17
botchin
Ето на коленки придумал.
Вариант на одновибратирах. На каждъй вход по два одновибратора. Расмотрим верхние два. Положителнъй фронт на входе А установит одновибратора в 1 только если на входе D единица т.е. на въходе дешифратора 1 (код 000 - после кода 000 можем ожидать положителнъй фронт на входе А). Отрицателнъй фронт на А будем ожидат после 7. Далее как у тебя.

Для входа Б положительнъй фрон после 001, отрицательнъй после 110

И т.д.

Схема только на уме проигранная. Много от связей на схеме не сделанъ - я принимаю что ето дело объчное.

Re: Трёхфазный датчик движения и направления на логике.

Добавлено: Чт окт 01, 2015 20:46:11
Flasher
DjAndy писал(а): Получается, - при несовпадении лог.уровней на входах А и B и единице на входе C, на выходе Q Рис. 1.36.а сформируется сигнал "0" (совпадение по трём входам). :)
Пример:
A=1
B=0
C=1
Q=0
А должна быть единица на выходе при разногласии на входах.
Ээээ... Вы хоть понимаете функцию сложения по модулю 2 ? "должна быть единица на выходе при разногласии на входах" это частный случай 2-х входового элемента...

Re: Трёхфазный датчик движения и направления на логике.

Добавлено: Чт окт 01, 2015 21:33:07
DjAndy
botchin писал(а):Вариант на одновибратирах. На каждъй вход по два одновибратора. Расмотрим верхние два. Положителнъй фронт на входе А установит одновибратора в 1 только если на входе D единица т.е. на въходе дешифратора 1 (код 000 - после кода 000 можем ожидать положителнъй фронт на входе А). Отрицателнъй фронт на А будем ожидат после 7. Далее как у тебя.

Для входа Б положительнъй фрон после 001, отрицательнъй после 110
Ок. Вперёд схема возможно и будет работать, полностью не проверял. Диоды на выходе по моему перевёрнуты. :)
А вот обратный счёт, переход с 000 на 100:
- на выходе дешифратора переход с 0 на 4, ожидаем единицу на C, она поступает на вход 5-го одновибратора, куда подключен выход 3 дешифратора... и всё, не работает.

Re: Трёхфазный датчик движения и направления на логике.

Добавлено: Чт окт 01, 2015 21:47:22
botchin
Я не проверял схему. Я предлагаю идею. На вх А: с 000 на 001 - положителнъй и с 111 к 110 отрицательнъй, если толко въ не обращаете ос времени наоборот. Можно на D входъ и И/ИЛИ на диодах навесить. Но я опять говорю - ето только идея. Остальное ваше дело. Если мне попалась такая задача я бъ присобачил здесь МК.

Re: Трёхфазный датчик движения и направления на логике.

Добавлено: Чт окт 01, 2015 22:10:11
DjAndy
Flasher писал(а):
DjAndy писал(а): Получается, - при несовпадении лог.уровней на входах А и B и единице на входе C, на выходе Q Рис. 1.36.а сформируется сигнал "0" (совпадение по трём входам). :)
Пример:
A=1
B=0
C=1
Q=0
А должна быть единица на выходе при разногласии на входах.
Ээээ... Вы хоть понимаете функцию сложения по модулю 2 ? "должна быть единица на выходе при разногласии на входах" это частный случай 2-х входового элемента...
Так. Давайте не будем отвлекаться на функции.
Расширение элемента "исключающее или" на те же три входа должно иметь следующую логику работы:

A B C Q
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 0

А имеем по рис.1.36.а такую:

A B C Q
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1

:)

Re: Трёхфазный датчик движения и направления на логике.

Добавлено: Чт окт 01, 2015 22:18:49
Flasher
:shock:

Re: Трёхфазный датчик движения и направления на логике.

Добавлено: Чт окт 01, 2015 22:24:42
Paguo-86PK
Схема использует код Джонсона? А Мажоритальный клапан не пробовали?

Re: Трёхфазный датчик движения и направления на логике.

Добавлено: Чт окт 01, 2015 22:27:13
DjAndy
botchin, спасибо за участие, и за идею. Мне уже тоже хочется это сделать на 8-ми ногом МК. :)
Flasher писал(а)::shock:
Flasher, что-то не так? :)

Re: Трёхфазный датчик движения и направления на логике.

Добавлено: Чт окт 01, 2015 22:35:40
Flasher
Увы, не так...
Ваше видение работы трехвходового исключающего или не имеет ничего общего с реалиями. Видны серьезные пробелы в теории.