Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
07.05.2006, 01:42
|
|
Гражданин KAZUS.RU
Регистрация: 16.12.2004
Сообщений: 587
Сказал спасибо: 13
Сказали Спасибо 23 раз(а) в 9 сообщении(ях)
|
1) если я поня правильно, то "пропуск" то же что и "двигатель троит", тогда это определяется по коэффициенту детонации - отношению разброса мгновенных скоростей к средней скорости вращения вала (как и в магнитофонах). тогда это делается безо всяких цифровых наворотов
2) если есть опыт программирования (и схемотехники) то порекомендовал бы тот контроллер, который Вы знаете лучше всего (хоть LPT+PC)
3) согласен с высказыванием - пишите полное ТехЗадание!
4) если проект коммерческий: есть средства, но нет времени и навыка - разместите объявление в разделе "работа" и не мучайтесь (как сделали Вам всё равно потом расскажут)
Желаю успеха!
З.Ы. может и я бы взялся за проект - смотря какие условия.
|
|
|
|
07.05.2006, 09:13
|
|
Прохожий
Регистрация: 06.05.2006
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Проект не коммерческий. Система действительно является диагностической. Пропуск рабочего хода - это когда по какой-то причине не воспламинилось топливо в цилиндре. Данное явление диагностируется тем что коленвал теряет ускорение, а на нем как я уже писал распологается диск в виде шестеренки торцом к нему датчик, создающий эл. маг. поле и когда зубец шестерни напротив датчика то поле замыкается создавая напряжение на датчике. Моя задача определять интервалы между импульсами и по ним с помощи спец. алгоритма по ускорению расчитывать был ли пропусук. Датчик с распределительного вала лучше пока не трогать - надо разобраться хотя бы с коленвалом.
|
|
|
|
07.05.2006, 18:45
|
|
Гражданин KAZUS.RU
Регистрация: 16.12.2004
Сообщений: 587
Сказал спасибо: 13
Сказали Спасибо 23 раз(а) в 9 сообщении(ях)
|
тогда с нуля я бы посоветовал ATMEGA128 или LPC2xxx, чтобы можно было отлаживаться дебаггером.(недорогим)
Желаю успеха.
|
|
|
|
08.05.2006, 09:02
|
|
Почётный гражданин KAZUS.RU
Регистрация: 22.06.2004
Адрес: Харьков
Сообщений: 1,488
Сказал спасибо: 3,207
Сказали Спасибо 3,010 раз(а) в 686 сообщении(ях)
|
Для такой задачи может подойти проц намного попроще меги128.
Даже 89С2051.
Порт для RS-232 есть.
Таймером/Захватом можно посчитать хоть часовые временные интервалы на входе INT или Т0.
И отправить по УАРТ.
Лапок у него достаточно.
И ресурсов до примерно 50-100 кгц предостаточно.
|
|
|
|
08.05.2006, 10:06
|
|
Прохожий
Регистрация: 06.05.2006
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
А как мне определить справится ли микроконтроллер или нет? И самое главное как информация будет поступать в микроконтроллер????
Если вешать датчик на прерывание, то сможет ли прирывание возникать с частотой до 100кГЦ? Как определить какой микроконтроллер сможет генерировать прерывания со столь высокой частотой????????
|
|
|
|
08.05.2006, 13:48
|
|
Частый гость
Регистрация: 02.05.2006
Сообщений: 17
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Сообщение от NeoPhenix
|
А как мне определить справится ли микроконтроллер или нет? И самое главное как информация будет поступать в микроконтроллер????
Если вешать датчик на прерывание, то сможет ли прирывание возникать с частотой до 100кГЦ? Как определить какой микроконтроллер сможет генерировать прерывания со столь высокой частотой????????
|
AVR поставьте, как тут советуют - справится.
Напрашивается чип в automotive исполнении, скажем, ATtiny25-15SZ, ATmega48-15AZ.
|
|
|
|
08.05.2006, 13:52
|
|
Прохожий
Регистрация: 06.05.2006
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Так как мне определить справится ли микроконтроллер или нет? И самое главное как информация будет поступать в микроконтроллер????
Если вешать датчик на прерывание, то сможет ли прирывание возникать с частотой до 100кГЦ? Как определить какой микроконтроллер сможет генерировать прерывания со столь высокой частотой????????
[/i]
|
|
|
|
09.05.2006, 02:36
|
|
Прохожий
Регистрация: 04.04.2006
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Еще одно замечание по терминологии: микроконтроллер не генерирует прерывания. Программа которой управляется микроконтроллер - способна "обрабатывать" прерывание. Определить справится ли некий микроконтроллер с прерываниями, которые поступают с частотой 100 КГц не сложно. 100 КГц означает, что между двумя соседними событиями, вызывающими прерывания (в твоем случае между двумя импульсами датчик) лежит временной интервал в 10 мксек. Это тот запас времени в течении которого твоя программа должна не только обработать текущее прерывание (т.е., например, прочитать время, прошедшее с момента предыдущего запуска таймера, сохранить это значение в каком-нибудь регистре или в оперативной памяти, обнулить таймер и запустить его снова), но и выполнить некие осмысленные действия. Ты, например, упоминал в самом начале, что имеется некий алгоритм по которому ты собираешься определять факт наличия пропуска поджига рабочей смеси. Так вот, для реализации этого алгоритма также нужны временные ресурсы. Дальше все просто: раскладываешь перед собой блок схему своего алгоритма плюс блок схему алгоритма обработки прерывания и начинаешь заниматься арифметикой. Считать сколько тактов процессора необходимо для реализации всего алгоритма. Заметь на этом этапе ты считаешь не в микросекундах, а в тактах. Когда ты просчитал потребное количество тактов делаешь последнее действие. Делишь свои 10 мксек на получившееся количество тактов. Это немного сложнее, чем складывать, но тоже не бином Ньютона . В итоге ты получаешь максимальную длительность такта, которую должен обеспечить твой микроконтроллер. Если ты единицу разделишь на эту величину, ты получишь, как легко догадаться, минимальную тактовую частоту, на которой должен быть способен работать твой микроконтроллер.
При анализе своего алгоритма учитывай, что не все микрокоманды исполняются за один такт. Сколько тактов потребно для исполнения той или иной команды ты можешь узнать в спецификации микроконтроллера.
С дружеским приветом!
|
|
|
|
09.05.2006, 02:56
|
|
Прохожий
Регистрация: 04.04.2006
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
И еще пару слов в догонку. Эту процедуру скурпулезного подсчета потребного количества тактов, к сожалению не объехать, ни обойти. Те, кто тебе советуют использовать како-либо конкретный микроконтроллер (например, Isa советует применить 89С2051), исходят из собственного опыта и из разумных по количеству команд алгоритмов. Но никто на форуме, кроме тебя самого не знает никаких деталей об имеющимся у тебя алгоритме. А представим себе на минутку, что для его реализации потребно 100000 команд! В этом случае, я думаю, ты будешь искать подходящий микроконтроллер до морковкиного заговения . Так что пляши от алгоритма!
|
|
|
|
09.05.2006, 08:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 22.06.2004
Адрес: Харьков
Сообщений: 1,488
Сказал спасибо: 3,207
Сказали Спасибо 3,010 раз(а) в 686 сообщении(ях)
|
Сообщение от igor356
|
И еще пару слов в догонку. Эту процедуру скурпулезного подсчета потребного количества тактов, к сожалению не объехать, ни обойти. Те, кто тебе советуют использовать како-либо конкретный микроконтроллер (например, Isa советует применить 89С2051), исходят из собственного опыта и из разумных по количеству команд алгоритмов. Но никто на форуме, кроме тебя самого не знает никаких деталей об имеющимся у тебя алгоритме. А представим себе на минутку, что для его реализации потребно 100000 команд! В этом случае, я думаю, ты будешь искать подходящий микроконтроллер до морковкиного заговения . Так что пляши от алгоритма!
|
Например:
AT89C2051 на частоте 24 МГц дает 2 млн.операций в секунду.
Переход на выполнение процедуры прерывания и выполнение 20 команд
займет примерно 25 мкс. А это частота 40 КГц.
Для этой же задачи применить AVR на частоте 16 МГц:
Производительность 16 млн.операций в секунду.
Переход на выполнение процедуры прерывания и выполнение 20 команд
займет примерно от 2 до 3 мкс. А это дает возможность обслужить прерывания с частотой
до 500 КГц.
Аналогично PIC на частоте 20 МГц даст 5 млн. операций в секунду.
Для обработки может понадобится больше команд. Поэтому процедура займет от 10
до 20 мкс. Соответственно среагировать успеет на частоты прерываний 50-100 КГц.
Вот такая получается арифметика.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:04.
|
|