многоканальный счетчик импульсов

Обсуждаем цифровые устройства...
Ответить
gergerichii
Родился
Сообщения: 3
Зарегистрирован: Сб янв 21, 2012 10:13:48

многоканальный счетчик импульсов

Сообщение gergerichii »

Доброго времени суток!
Возникла необходимость собрать устройство подсчета импульсов с инкрементальных энкодеров (причем при сдвиге как в одну сторону, так и в другую). Количество - энкодеров от 20 шт. и выше.
Т.к. я в электронике настоящий про.... хм... профан =), по этому прошу совета у Гуру =)

Условия задачи таковы:
Минимальная цена, минимальное количество радиоэлементов (т.к. все устройство должно, примерно, умещаться на ладони)
Желательно чтобы работала на одном МК. Возможность модульно добавлять энкодеры.
А самое главное: частота импульсов может достигать 2-2,5кГц но НЕЛЬЗЯ упустить НЕ ЕДИНОГО импульса! Это самое важное условие. Не должно накапливаться погрешностей. =)

Энкодеры будут ленточные (т.е. перфорированная лента с оптическими датчиками. Как в струйниках)

Я не прошу принципиальных схем =) мне важно понять как вообще это можно реализовать, с помощью каких компонентов.

За ранее спасибо!
Реклама
orinoko

Re: многоканальный счетчик импульсов

Сообщение orinoko »

Мне думается, что это не есть непосильная задача для МК. Главное, чтоб количество портов было не меньше необходимого количества входных линий. Например, поставить чего-нибудь типа ATmega128 с кварцем на 16 МГц - там портов вполне достаточно. Прерывание по таймеру с периодом 0,1 мсек. По прерыванию считываются все входные линии, при сравнении с предыдущим значением определяем, какая линия перешла 1->0 (или 1->0), и инкремент соответствующего счётчика (какое максимальное значение счётчика?). Но тут я бы советовал писать на асме, чтобы лучше контролировать выполнение программы, чтобы не было гонок.
Тут ещё вопрос, а что с этими данными потом нужно делать?
Ну и не забыть про согласование уровней енкодера и МК.
Реклама
gergerichii
Родился
Сообщения: 3
Зарегистрирован: Сб янв 21, 2012 10:13:48

Re: многоканальный счетчик импульсов

Сообщение gergerichii »

orinoko писал(а):Мне думается, что это не есть непосильная задача для МК. Главное, чтоб количество портов было не меньше необходимого количества входных линий. Например, поставить чего-нибудь типа ATmega128 с кварцем на 16 МГц - там портов вполне достаточно. Прерывание по таймеру с периодом 0,1 мсек. По прерыванию считываются все входные линии, при сравнении с предыдущим значением определяем, какая линия перешла 1->0 (или 1->0), и инкремент соответствующего счётчика (какое максимальное значение счётчика?). Но тут я бы советовал писать на асме, чтобы лучше контролировать выполнение программы, чтобы не было гонок.
Тут ещё вопрос, а что с этими данными потом нужно делать?
Ну и не забыть про согласование уровней енкодера и МК.
Количество энкодеров может увеличится до 100. желательно чтобы их можно было добавлять модульно, т.е. с использованием какого ни будь интерфейса типа i2c. А модули могут быть разного размера от 1 до 20 энкодеров на модуль.
По поводу алгоритма (программного) обработки сигналов с самих энкодеров - я разобрался... но это если энкодер напрямую к МК подключен. В идеале, что бы энкодеры каким-то образом своей жизнью жили, а МК только данные с них собирал =)
Потом эти данные буду пересылаться через USB на ПК либо в виде ID датчика:его дельта, либо в виде вектора пары датчиков (каждый датчик является вержиной (узлом) сложной геометрической системы)

Хотя, наверное, можно обрабатывать и по 50 датчиков, т.к. 2 МК на систему - удовлетворяет условиям. Просто смысл - именно в дешевизне и простоте обслуживания.
Аватара пользователя
coredumped
Опытный кот
Сообщения: 838
Зарегистрирован: Вт апр 12, 2011 18:38:19
Откуда: с Земли

Re: многоканальный счетчик импульсов

Сообщение coredumped »

Для реализации задачи нужно не менее 40 портов для подключения 20 энкодеров. А это минимум mega64. И повозиться прийдется неслабо. Кстати, быстродействия AVR может и не хватить - нужно ведь еще вывод данных обеспечить. Я бы посоветовал рассредоточить задачу на несколько "малоногих" контроллеров - пусть считают импульсы и хранят результаты, а мастер-контроллер по I2C или SPI будет опраишвать данные по мере необходимости. Можно генерить сигнал при изменении данных, который будет вызывать прерывание у мастер-контроллера. Как-то так.
Все будет только лучше, в крайнем случае - хуже.
Реклама
Эиком - электронные компоненты и радиодетали
s64
Потрогал лапой паяльник
Сообщения: 321
Зарегистрирован: Пн окт 18, 2010 21:18:21

Re: многоканальный счетчик импульсов

Сообщение s64 »

Полностью поддерживаю предыдущий пост. Распараллелить задачу - одна тинька, один энкодер. Над интерфейсом нужно думать. Проще всего, по моему, заложится на RS485, хотя там ограничение в 32 устр-ва на шине, i2c - тоже самое.
Реклама
gergerichii
Родился
Сообщения: 3
Зарегистрирован: Сб янв 21, 2012 10:13:48

Re: многоканальный счетчик импульсов

Сообщение gergerichii »

Собственно, про модульность я и написал в предыдущем посте.... в идеале, чтобы каждый модуль мог обрабатывать до 20 энкодеров и запоминать значения, чтобы потом можно было бы опрашивать каким-то образом эти модули и собранную инфу отправлять в ПК
Реклама
Ответить

Вернуться в «Цифровая техника»