реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Многоканальная система контроля длины заготовки, нужны идеи
ATon
сообщение Apr 10 2005, 11:47
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 10-04-05
Пользователь №: 4 005



Здраствуйте, посоветуйте, пожалуйста. Надо разработать на основе микроконтроллера AT89C51 10-канальную систему контроля длины заготовки. Должна рассчитываться длина заготовпи при движении по конвееру, считается что скорость движения задана,т.е. считать нужно время, сигналы "начала" и "конца" заготовки поступают с фотодатчиков конвеера. Каким образом можно обрабатывать 10 каналов сразу, можно ли обойтись как-нибудь 1 микропроцессором? Если можно, то каим образом? Подскажите, если есть какие-нибудь идеи.
Сам я думаю про подключение внешних таймеров, но какие нужны, и какие они вобще бывают не знаю.
P.S.: Если эта тема больше подходит к форуму по микросхемам, то переместите ее пожалуйста.
Go to the top of the page
 
+Quote Post
m16
сообщение Apr 10 2005, 13:47
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 242
Регистрация: 27-01-05
Пользователь №: 2 225



датчик - схема генерирующая одиночный имульс по фронту и спаду - триггер - сигналы от триггеров объединяем схемой И и заводим на внешнее прерывание проца , сигналы от датчиков заводим на 10 портов настроенных на ввод -10 портов настроенных на вывод на сбросы триггеров . запускаем таймер на непрерывный счет.
алгоритм - от датчика Н приходит сигнал начало загот. - устаналиваеся триггер Н - прерывание - считываем таймер на лету - опрашиваем порты - определяем номер датчика изменивший свое состояние (с 0 на 1 или с 1 на 0) в первом случае записываем в ячейку Нначало во втором Нконец . сбрасываем триггер вызвавший прерыв. разрешаем прерывание. между прерываниями занимаемся подсчетом длины заготовки.
удачи.
Go to the top of the page
 
+Quote Post
ATon
сообщение Apr 10 2005, 19:49
Сообщение #3





Группа: Новичок
Сообщений: 3
Регистрация: 10-04-05
Пользователь №: 4 005



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

Сообщение отредактировал ATon - Apr 10 2005, 19:50
Go to the top of the page
 
+Quote Post
Alexandr
сообщение Apr 10 2005, 21:15
Сообщение #4


Знающий
****

Группа: Модераторы
Сообщений: 804
Регистрация: 1-12-04
Пользователь №: 1 283



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


--------------------
Иван Сусанин - первый полупроводник
Go to the top of the page
 
+Quote Post
nameless
сообщение Apr 11 2005, 03:48
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 174
Регистрация: 9-07-04
Пользователь №: 305



Цитата(ATon @ Apr 10 2005, 14:47)
Здраствуйте, посоветуйте, пожалуйста. Надо разработать на основе микроконтроллера AT89C51 10-канальную систему контроля длины заготовки. Должна рассчитываться длина заготовпи при движении по конвееру, считается что скорость движения задана,т.е. считать нужно время, сигналы "начала" и "конца" заготовки поступают с фотодатчиков конвеера. Каким образом можно обрабатывать 10 каналов сразу, можно ли обойтись как-нибудь 1 микропроцессором? Если можно, то каим образом? Подскажите, если есть какие-нибудь идеи.
Сам я думаю про подключение внешних таймеров, но какие нужны, и какие они вобще бывают не знаю.
P.S.: Если эта тема больше подходит к форуму по микросхемам, то переместите ее пожалуйста.
*


Берем два мультиплексора - один обьединяет датчики (1-ползет заготовка; 0 - нет заготовки) другой - клавиши. Единым циклом перебираем входы мультиплексоров (4 линии) и по двум линиям принимаем решение о начале/конче заготовки и о нажатии той или иной клавиши (+2 линии). Все остальные линии - на индикатор. Если удается сделать "ровный" цикл опроса (!!!)- то ошибка измерения длины становится предсказуемой (=1 период сканирования * const скорость ковеера)...
Go to the top of the page
 
+Quote Post
m16
сообщение Apr 11 2005, 06:40
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 242
Регистрация: 27-01-05
Пользователь №: 2 225



расширить порты вввода-вывода очень просто ---- через адреса внешней памяти . навешать можно сколько угодно. и если производительность проца устраивает то нет необходимости использовать другой с большим количеством портов.
Go to the top of the page
 
+Quote Post
Alexandr
сообщение Apr 11 2005, 08:05
Сообщение #7


Знающий
****

Группа: Модераторы
Сообщений: 804
Регистрация: 1-12-04
Пользователь №: 1 283



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


--------------------
Иван Сусанин - первый полупроводник
Go to the top of the page
 
+Quote Post
rezident
сообщение Apr 11 2005, 09:38
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Клавиатура укладывается в матрицу 3х4, а индикацию можно на регистр с последовательным входом положить. Итого 3+4+2=9 пин получается. А порт только один свободный как я понимаю? Хотя для контроллера с внешней шиной, экономить пины и использовать регистры с последовательным входом не имеет смысла наверное.
Go to the top of the page
 
+Quote Post
veter
сообщение Apr 11 2005, 17:09
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 119
Регистрация: 26-01-05
Из: С-Пб
Пользователь №: 2 210



а я встречал схему расширения портов на плисине, очень удобно.
там можно и дешифраторы и мультиплексоры и тп и тд реализовывать.
вдобавок: та ПЛИС использовалась как расширитель портов и подключались сразу и жки и сди и клава и много чего ещё, а обращение к внешним устройствам как к памяти.
по моему быстро, дешиво и сердито :)
Go to the top of the page
 
+Quote Post
Joker
сообщение Apr 11 2005, 20:10
Сообщение #10


Участник
*

Группа: Свой
Сообщений: 35
Регистрация: 12-12-04
Пользователь №: 1 457



Цитата(ATon @ Apr 11 2005, 11:00)
Да, действительно это не AVR, извиняюсь  unsure.gif
*

Можно использовать AVR с большим кол-вом портов либо легко на PICе скажем 18LF452 или чем-то подобном
Go to the top of the page
 
+Quote Post
Andrey_Sudnov
сообщение Apr 12 2005, 06:41
Сообщение #11


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 15-03-05
Пользователь №: 3 361



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

Да уж сразу использовать ПЛИС, организовать в ней автомат и выполнять на нем всю работу. А про этого чудо зверя под названием семейство MSC51 советую забыть как про страшный сон. Настоятельно рекомендую перейти на AVR, еще лучше на ARM (например Phillips). Стоят даже дешевле сейчас, работают быстрее, потребляют меньше, и самое главное, если вы знакомы с С и имеете понятие о машинном коде, разработка будет проходить гораздо быстрее.
Да, а если это у вас проект по учебе, уговорите преподавателя, что хотите отказаться от применения микроконтроллеров позапрошлого века и применить нармальный чип.
Ну я понимаю, когда используют это по инерции, но когда их закладывают в новые устройства, к тому же технологические! А если вам захочется потом соединить 10 цехов таких, причем один находится на другом конце города? Или еще что-нибудь взбредет в голову начальству? Я все это говорю из личного опыта, когда мяня заставили применить AT89C51 как ядро системы телекомуникаций, типа там всего лишь 4 кнопки и светодиод будет, будешь при аварии его зажигать, ага. А потом им захотелось маршрутизатор делать на базе этого устройства, когда несколько сотен их уже стояло у заказчика. Видал я такое начальство подальше.
Best regards, Andrey.
Go to the top of the page
 
+Quote Post
ATon
сообщение Apr 23 2005, 11:27
Сообщение #12





Группа: Новичок
Сообщений: 3
Регистрация: 10-04-05
Пользователь №: 4 005



Да, проект что ни на есть учебный. учат меня ,а я учусь.
Менять МК не хочу, потому что в нем я хоть чуть чуть разбираюсь, а потом мне кажется, что ограниченность ресурсов - не всегда большой минус, а повод для размышления, как с этим справится.
Хотелось бы сделать все на ПЛИСЕ, но времени разбираться опять мало, если потом буду делать что-нибудь реальное, обязательно приму к сведению, все что вы мне посоветовали. К стати спасибо, за то что откликнулись (Форум мне этот очень нравится wink.gif )

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

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

Вот, что делать-то unsure.gif регистр с 3 состояниями и монтажное или?
А если работаем на вывод?
Go to the top of the page
 
+Quote Post
rezident
сообщение Apr 23 2005, 19:58
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Те регистры, которые работают на вывод и будут работать на P0, должны быть с третьим состоянием.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th June 2025 - 05:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01473 секунд с 7
ELECTRONIX ©2004-2016