Перейти к содержанию
    

Многоканальная система контроля длины заготовки

Здраствуйте, посоветуйте, пожалуйста. Надо разработать на основе микроконтроллера AT89C51 10-канальную систему контроля длины заготовки. Должна рассчитываться длина заготовпи при движении по конвееру, считается что скорость движения задана,т.е. считать нужно время, сигналы "начала" и "конца" заготовки поступают с фотодатчиков конвеера. Каким образом можно обрабатывать 10 каналов сразу, можно ли обойтись как-нибудь 1 микропроцессором? Если можно, то каим образом? Подскажите, если есть какие-нибудь идеи.

Сам я думаю про подключение внешних таймеров, но какие нужны, и какие они вобще бывают не знаю.

P.S.: Если эта тема больше подходит к форуму по микросхемам, то переместите ее пожалуйста.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

датчик - схема генерирующая одиночный имульс по фронту и спаду - триггер - сигналы от триггеров объединяем схемой И и заводим на внешнее прерывание проца , сигналы от датчиков заводим на 10 портов настроенных на ввод -10 портов настроенных на вывод на сбросы триггеров . запускаем таймер на непрерывный счет.

алгоритм - от датчика Н приходит сигнал начало загот. - устаналиваеся триггер Н - прерывание - считываем таймер на лету - опрашиваем порты - определяем номер датчика изменивший свое состояние (с 0 на 1 или с 1 на 0) в первом случае записываем в ячейку Нначало во втором Нконец . сбрасываем триггер вызвавший прерыв. разрешаем прерывание. между прерываниями занимаемся подсчетом длины заготовки.

удачи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо! Лед тронулся )) Еще к системе требуется подключить клавиатуру (10 каналов - "Пуск","Останов") и светодиоды состояния конвеера (тоже соответственно работает, не работает, т.е. нажата соответствующая кнопка или нет). Как вы думаете, лучше использовать контроллер клавиатуры и дисплея (i8279) или просто подключить 14 портов? Еще нужно подключить внешнюю память программ (т.е. порты P2 и Р0 получаются заняты).

Главный вопрос такой: если подключить к Р0 и Р2 внешнюю память, можно ли использовать эти порты еще как-нибудь (контроллер клавиатуры работает, например, с ними же)?

Изменено пользователем ATon

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если вы используете внешнюю память программ, то порты P0 и P2 по другому назначению использовать не получится. Соответственно для подключения клавиатуры, светодиодов и датчиков у Вас портов не хватит => без внешнего оборудования не обойтись. Советую ставить два контроллера - один отвечает за интерфейс с пользователем, другой за обработку. И Вам будет проще и система станет легко масштабируемой. Есть еще вариант - помоему у Philips были 51-ые с большим количеством портов. Кстати, а почему вопрос про AT89C51 задается в разделе про AVR-ы ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здраствуйте, посоветуйте, пожалуйста. Надо разработать на основе микроконтроллера AT89C51 10-канальную систему контроля длины заготовки. Должна рассчитываться длина заготовпи при движении по конвееру, считается что скорость движения задана,т.е. считать нужно время, сигналы "начала" и "конца" заготовки поступают с фотодатчиков конвеера. Каким образом можно обрабатывать 10 каналов сразу, можно ли обойтись как-нибудь 1 микропроцессором? Если можно, то каим образом? Подскажите, если есть какие-нибудь идеи.

Сам я думаю про подключение внешних таймеров, но какие нужны, и какие они вобще бывают не знаю.

P.S.: Если эта тема больше подходит к форуму по микросхемам, то переместите ее пожалуйста.

 

Берем два мультиплексора - один обьединяет датчики (1-ползет заготовка; 0 - нет заготовки) другой - клавиши. Единым циклом перебираем входы мультиплексоров (4 линии) и по двум линиям принимаем решение о начале/конче заготовки и о нажатии той или иной клавиши (+2 линии). Все остальные линии - на индикатор. Если удается сделать "ровный" цикл опроса (!!!)- то ошибка измерения длины становится предсказуемой (=1 период сканирования * const скорость ковеера)...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

расширить порты вввода-вывода очень просто ---- через адреса внешней памяти . навешать можно сколько угодно. и если производительность проца устраивает то нет необходимости использовать другой с большим количеством портов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Клавиатура укладывается в матрицу 3х4, а индикацию можно на регистр с последовательным входом положить. Итого 3+4+2=9 пин получается. А порт только один свободный как я понимаю? Хотя для контроллера с внешней шиной, экономить пины и использовать регистры с последовательным входом не имеет смысла наверное.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а я встречал схему расширения портов на плисине, очень удобно.

там можно и дешифраторы и мультиплексоры и тп и тд реализовывать.

вдобавок: та ПЛИС использовалась как расширитель портов и подключались сразу и жки и сди и клава и много чего ещё, а обращение к внешним устройствам как к памяти.

по моему быстро, дешиво и сердито :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, действительно это не AVR, извиняюсь  :unsure:

Можно использовать AVR с большим кол-вом портов либо легко на PICе скажем 18LF452 или чем-то подобном

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а я встречал схему расширения портов на плисине, очень удобно.

там можно и дешифраторы и мультиплексоры и тп и тд реализовывать.

вдобавок: та ПЛИС использовалась как расширитель портов и подключались сразу и жки и сди и клава и много чего ещё, а обращение к внешним устройствам как к памяти.

по моему быстро, дешиво и сердито  :)

Да уж сразу использовать ПЛИС, организовать в ней автомат и выполнять на нем всю работу. А про этого чудо зверя под названием семейство MSC51 советую забыть как про страшный сон. Настоятельно рекомендую перейти на AVR, еще лучше на ARM (например Phillips). Стоят даже дешевле сейчас, работают быстрее, потребляют меньше, и самое главное, если вы знакомы с С и имеете понятие о машинном коде, разработка будет проходить гораздо быстрее.

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

Ну я понимаю, когда используют это по инерции, но когда их закладывают в новые устройства, к тому же технологические! А если вам захочется потом соединить 10 цехов таких, причем один находится на другом конце города? Или еще что-нибудь взбредет в голову начальству? Я все это говорю из личного опыта, когда мяня заставили применить AT89C51 как ядро системы телекомуникаций, типа там всего лишь 4 кнопки и светодиод будет, будешь при аварии его зажигать, ага. А потом им захотелось маршрутизатор делать на базе этого устройства, когда несколько сотен их уже стояло у заказчика. Видал я такое начальство подальше.

Best regards, Andrey.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, проект что ни на есть учебный. учат меня ,а я учусь.

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

Хотелось бы сделать все на ПЛИСЕ, но времени разбираться опять мало, если потом буду делать что-нибудь реальное, обязательно приму к сведению, все что вы мне посоветовали. К стати спасибо, за то что откликнулись (Форум мне этот очень нравится ;) )

 

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

 

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

 

Вот, что делать-то :unsure: регистр с 3 состояниями и монтажное или?

А если работаем на вывод?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Те регистры, которые работают на вывод и будут работать на P0, должны быть с третьим состоянием.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...