Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Многоканальная система контроля длины заготовки
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
ATon
Здраствуйте, посоветуйте, пожалуйста. Надо разработать на основе микроконтроллера AT89C51 10-канальную систему контроля длины заготовки. Должна рассчитываться длина заготовпи при движении по конвееру, считается что скорость движения задана,т.е. считать нужно время, сигналы "начала" и "конца" заготовки поступают с фотодатчиков конвеера. Каким образом можно обрабатывать 10 каналов сразу, можно ли обойтись как-нибудь 1 микропроцессором? Если можно, то каим образом? Подскажите, если есть какие-нибудь идеи.
Сам я думаю про подключение внешних таймеров, но какие нужны, и какие они вобще бывают не знаю.
P.S.: Если эта тема больше подходит к форуму по микросхемам, то переместите ее пожалуйста.
m16
датчик - схема генерирующая одиночный имульс по фронту и спаду - триггер - сигналы от триггеров объединяем схемой И и заводим на внешнее прерывание проца , сигналы от датчиков заводим на 10 портов настроенных на ввод -10 портов настроенных на вывод на сбросы триггеров . запускаем таймер на непрерывный счет.
алгоритм - от датчика Н приходит сигнал начало загот. - устаналиваеся триггер Н - прерывание - считываем таймер на лету - опрашиваем порты - определяем номер датчика изменивший свое состояние (с 0 на 1 или с 1 на 0) в первом случае записываем в ячейку Нначало во втором Нконец . сбрасываем триггер вызвавший прерыв. разрешаем прерывание. между прерываниями занимаемся подсчетом длины заготовки.
удачи.
ATon
Спасибо! Лед тронулся )) Еще к системе требуется подключить клавиатуру (10 каналов - "Пуск","Останов") и светодиоды состояния конвеера (тоже соответственно работает, не работает, т.е. нажата соответствующая кнопка или нет). Как вы думаете, лучше использовать контроллер клавиатуры и дисплея (i8279) или просто подключить 14 портов? Еще нужно подключить внешнюю память программ (т.е. порты P2 и Р0 получаются заняты).
Главный вопрос такой: если подключить к Р0 и Р2 внешнюю память, можно ли использовать эти порты еще как-нибудь (контроллер клавиатуры работает, например, с ними же)?
Alexandr
Если вы используете внешнюю память программ, то порты P0 и P2 по другому назначению использовать не получится. Соответственно для подключения клавиатуры, светодиодов и датчиков у Вас портов не хватит => без внешнего оборудования не обойтись. Советую ставить два контроллера - один отвечает за интерфейс с пользователем, другой за обработку. И Вам будет проще и система станет легко масштабируемой. Есть еще вариант - помоему у Philips были 51-ые с большим количеством портов. Кстати, а почему вопрос про AT89C51 задается в разделе про AVR-ы ?
nameless
Цитата(ATon @ Apr 10 2005, 14:47)
Здраствуйте, посоветуйте, пожалуйста. Надо разработать на основе микроконтроллера AT89C51 10-канальную систему контроля длины заготовки. Должна рассчитываться длина заготовпи при движении по конвееру, считается что скорость движения задана,т.е. считать нужно время, сигналы "начала" и "конца" заготовки поступают с фотодатчиков конвеера. Каким образом можно обрабатывать 10 каналов сразу, можно ли обойтись как-нибудь 1 микропроцессором? Если можно, то каим образом? Подскажите, если есть какие-нибудь идеи.
Сам я думаю про подключение внешних таймеров, но какие нужны, и какие они вобще бывают не знаю.
P.S.: Если эта тема больше подходит к форуму по микросхемам, то переместите ее пожалуйста.
*


Берем два мультиплексора - один обьединяет датчики (1-ползет заготовка; 0 - нет заготовки) другой - клавиши. Единым циклом перебираем входы мультиплексоров (4 линии) и по двум линиям принимаем решение о начале/конче заготовки и о нажатии той или иной клавиши (+2 линии). Все остальные линии - на индикатор. Если удается сделать "ровный" цикл опроса (!!!)- то ошибка измерения длины становится предсказуемой (=1 период сканирования * const скорость ковеера)...
m16
расширить порты вввода-вывода очень просто ---- через адреса внешней памяти . навешать можно сколько угодно. и если производительность проца устраивает то нет необходимости использовать другой с большим количеством портов.
Alexandr
Теоретически конечно можно подцепить еще что-то на внешнюю шину адреса, но при этом все равно придется ставить нечто вроде дешифатора адреса, который выбирал бы с каким устройством работаем. Придется ограничить размер кода во внешней памяти и как было сказано - уменьшится производительность. Плюс придется учесть такой аспект как согласование по импедансу (несколько нагрузок на шине хуже чем одна). Поэтому в данном случае, когда необходимо подключить клаву, сведиоды и датчики - такой вариант не самый удачный.
rezident
Клавиатура укладывается в матрицу 3х4, а индикацию можно на регистр с последовательным входом положить. Итого 3+4+2=9 пин получается. А порт только один свободный как я понимаю? Хотя для контроллера с внешней шиной, экономить пины и использовать регистры с последовательным входом не имеет смысла наверное.
veter
а я встречал схему расширения портов на плисине, очень удобно.
там можно и дешифраторы и мультиплексоры и тп и тд реализовывать.
вдобавок: та ПЛИС использовалась как расширитель портов и подключались сразу и жки и сди и клава и много чего ещё, а обращение к внешним устройствам как к памяти.
по моему быстро, дешиво и сердито :)
Joker
Цитата(ATon @ Apr 11 2005, 11:00)
Да, действительно это не AVR, извиняюсь  unsure.gif
*

Можно использовать AVR с большим кол-вом портов либо легко на PICе скажем 18LF452 или чем-то подобном
Andrey_Sudnov
Цитата(veter @ Apr 11 2005, 22:09)
а я встречал схему расширения портов на плисине, очень удобно.
там можно и дешифраторы и мультиплексоры и тп и тд реализовывать.
вдобавок: та ПЛИС использовалась как расширитель портов и подключались сразу и жки и сди и клава и много чего ещё, а обращение к внешним устройствам как к памяти.
по моему быстро, дешиво и сердито  smile.gif
*

Да уж сразу использовать ПЛИС, организовать в ней автомат и выполнять на нем всю работу. А про этого чудо зверя под названием семейство MSC51 советую забыть как про страшный сон. Настоятельно рекомендую перейти на AVR, еще лучше на ARM (например Phillips). Стоят даже дешевле сейчас, работают быстрее, потребляют меньше, и самое главное, если вы знакомы с С и имеете понятие о машинном коде, разработка будет проходить гораздо быстрее.
Да, а если это у вас проект по учебе, уговорите преподавателя, что хотите отказаться от применения микроконтроллеров позапрошлого века и применить нармальный чип.
Ну я понимаю, когда используют это по инерции, но когда их закладывают в новые устройства, к тому же технологические! А если вам захочется потом соединить 10 цехов таких, причем один находится на другом конце города? Или еще что-нибудь взбредет в голову начальству? Я все это говорю из личного опыта, когда мяня заставили применить AT89C51 как ядро системы телекомуникаций, типа там всего лишь 4 кнопки и светодиод будет, будешь при аварии его зажигать, ага. А потом им захотелось маршрутизатор делать на базе этого устройства, когда несколько сотен их уже стояло у заказчика. Видал я такое начальство подальше.
Best regards, Andrey.
ATon
Да, проект что ни на есть учебный. учат меня ,а я учусь.
Менять МК не хочу, потому что в нем я хоть чуть чуть разбираюсь, а потом мне кажется, что ограниченность ресурсов - не всегда большой минус, а повод для размышления, как с этим справится.
Хотелось бы сделать все на ПЛИСЕ, но времени разбираться опять мало, если потом буду делать что-нибудь реальное, обязательно приму к сведению, все что вы мне посоветовали. К стати спасибо, за то что откликнулись (Форум мне этот очень нравится wink.gif )

Вот а пока я тут разбираюсь у меня возник вопрос:

Если расширять порты ввода/вывода с помощью регистров (ну допустим мы их сделали на ПЛИСЕ), то какие они должны быть с тремя состояниями? И подключать их к выводам порта монтажным или? Я имею ввиду если к этому регистру обращаться как к внешней памяти данных... Сначала выбираем этот регистр (chip select или что там?) - на порте P0 адрес в 1м такте, потом во 2 такте с регистра поступают данные опять же в порт P0 (это логика работы с внешней памятью - считывание данных).

Вот, что делать-то unsure.gif регистр с 3 состояниями и монтажное или?
А если работаем на вывод?
rezident
Те регистры, которые работают на вывод и будут работать на P0, должны быть с третьим состоянием.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.