Оптимальное распределение ресурсов МК в прошивке

Разработка впрыска топлива на базе SECU-3. Fuel injection related discussion.

Moderator: STC

Qwertty
LQFP144 - On Top Of The Game
Posts: 252
Joined: Thu Jul 26, 2012 12:35 pm

Re: Оптимальное распределение ресурсов МК в прошивке

Post by Qwertty »

В STM точно также придется поддерживать SD карту программой. 95% этой поддержки - это файловая система. Что мега, что стм32, что стм8 - они о файловых системах ничего не знают. Что SD интерфейс, что SPI - затраты ресурсов одинаковы почти. В первом есть CRC и выше скорость в 4 раза. Вот и все. Писать логи большой скорости не надо. SPI справился бы. Но зачем в ЭБУ пихать карту? Внешний девайс типа БК - он же мост на комп.
nikll
LQFP144 - On Top Of The Game
Posts: 553
Joined: Sun Nov 06, 2011 9:20 pm
Location: Russia, Yekaterinburg
Contact:

Re: Оптимальное распределение ресурсов МК в прошивке

Post by nikll »

CRC + четырехкратная разница в скорости + DMA в итоге запись лога вообще ничего не стоит тогда как на stm8 придется делать это програмно. Файловая система? А ты с ней работал? для одного файла одна запись в двойной таблцице в начале раздела, знай себе размер инкрементируй по мере роста лога...
Зачем лог нужен? Ты бы видел как люди изгаляются калибруя впрыск на мотоцикле с ноутбуком на ходу :))))))) Просто отключить все ускорительные насосы включить полную обратную связь и ночью когда машин нет плавно и нежно пройти по всем диапазонам чтобы ШДК успевал по обратной связи менять смесь до адекватной. Соберется лог который можно будет прогнать на компе и разбить на таблицу наполнения и таблицу темпиратуры заряда (во всех режимах это в том числе и с разной темпиратурой двигателя и желательно воздуха). Конечно можно сделать полностью автоматический алгоритм но во первых упихать это даже в stm32 несколько сложновато во вторых всеравно придется вносить ручные правки т.к. невозможно идеально откатать даже за несколкьо заходов (неравномерность нагрузки, нестабильность режимов, лаг ШДК при изменении режимов, все это приводит к тому что лог местами неадекватный).

CAN это хорошо, это стандарт, другое дело что к нему у меня вообще ничего нет. Поэтому будет CAN на будущее и USB для сейчас. Скорость по USB будет согласно стандарту 1.0. Кабели есть с навесными фильтрами (может видели такие как бы наросты недалеко от разьемов, там по сути дроссель из самого кабеля). К тому же USB в stm32f103v идет из коробки, просто два проводника МК до разьема...

4-слойная плата? ты ноутбук собрался сделать или Nvidia переплюнуть? Самый обычный двухслойный текстолит при правилной разводте согласно рекомендациям ST вполне соответсвует нашим требованиям, более того я не собираюсь заматывать плату в тряпочку и класть возле катушек зажигания :) Меня вполне устроит глухая герметичная железная коробка с экранированными разьемами и находящаяся в салоне под бардачком в машине или под сиденьем на мотоцикле. Все охлаждение на стенки коробки через термопасту, если будет сильно грется то можно либо коробку на кузов прикрутить либо радиатор повесить если на мотоцикле.

А ты видел недорогие 5V кортексы? сопоставимые по параметрам цене и распространенности? я вот чтото не видел... Чем тебе 3,3V неугодили? неприятные воспоминания былого? У меня четыре дискавери от st (две купил F1 и F4, потом мне еще две F1 подарили, теперь я буржуй :)), все они 3,3 вольта и ничо нормально, если прямо по пинам не бить статиктой то работают при достаточно серзьеных помехах. Я бы не сказал что там супер схемотехника или многослойная плата. USB тоже вполне прекрасно работает, медленно конечно 12мбит но один хер гораздо быстрее usart.
Сейчас много электроники вообще под 1,8V те же смартфоны посмотри, и ведь работают они?

Да кстати по поводу ДХ вместо ДПКВ, полночи крутил это в голове, если ДХ поставить на коленвал (или на РВ если он приводится шестернями) то в принципе можно обойтись и им, точность углов будет около 5% с увеличением точности до 1% в стабильных режимах, кому то же этого вполне достаточно :) (один хер ощутимо точней механического трамблера приводимого с распредвала). Попробую такую схему у себя на мотоцикле (урал-вояж 825сс), посмотрим что получится с точностью. Вот только к чему привязывать снятие показаний ДАДа, один раз за оборот на 2ц оппозите это не вариант, там пульсации раза в четыре выше чем в рядном 4ц моторе.
Qwertty
LQFP144 - On Top Of The Game
Posts: 252
Joined: Thu Jul 26, 2012 12:35 pm

Re: Оптимальное распределение ресурсов МК в прошивке

Post by Qwertty »

Я много раз сталкивался с влиянием ЕМС на работу микроконтроллеров. И в экранированных корпусах и с развязками - иногда это только уменьшает вероятность сбоев. Ты пока теоретик, на чужих ошибках учиться не хочешь - учись на своих. Я всегда учитываю чужой опыт и не люблю открывать давно открытое. Недорогие кортексы существуют. Можешь спросить у гугла - найдешь. Купить их у нас сложно. И в итоге из за штучных количеств дорого. Если кристалл 5 баксов, а доставка 40 - сам понимаешь. У нас в магазинах таких нет, это Дижикей и прочие Маузеры имеют большой выбор. Но за морем телушка - полушка.
Насчет скорости записи на SD - поржал. Все данные получаемые с датчиков и все рассчитываемое в программе вполне уложатся в 50 байт на цикл. На 6000 оборотов 200 циклов в секунду. Значит писать нам надо всего 10кб в секунду. Это мизер, ДМА тут опять как корове седло. Кроме того ДМА это совсем не бесплатное. Ты с ним не работал никогда явно. Если же выводишь интерфейс, тот же CAN или 485 - поддержка его пишется один раз. Тебе все равно - есть там на том конце кто то или нет. Данными передачи в никуда может например пользоваться приборка. И еще кто то. Причем хоть 5 получателей - ничего не меняется. Один из них например даталоггер. В варианте с SD картой в мозге все не так. Тебе придется специально тратить ресурсы процессора на запись логов. То есть в варианте с внешним даталоггером затраты ресурсов = 0, а у тебя даже с ДМА будет существенно больше. Второй минус SD карты - если логи пишутся на нее, то нет возможности подключить вместо карты PC. Если для мотоцикла это и действительно неудобно, то в авто ноут вполне приятное решение. Логи здорово, но онлайн настройка тоже нужна. И это ровно тот же интерфейс что и для логов. ЭБУ вообще не должен знать для чего используются данные, отправляемые им по интерфейсу. Не его это дело - ему надо мотором рулить.
С питанием процов проехали. Весь мир идиоты и я тоже - ставим 5В специализированные для авто решения. Весь мир не использует USB как промышленный интерфейс - ты собираешься. Ты один выходит ДАртаньян. Точка. :)
Если ДХ поставить на коленвал - какая разница с индуктивным ДПКВ? ДХ лучше и в более-менее нормальных авто стоят как ДПКВ именно ДХ, а не катушки. На этом форуме есть пример с встроенным шкивом 60-2 прямо в задний сальник коленвала. Это с пятого Гольфа, но у Вага унификация. На мой мотор тоже встанет, но это снимать привода, коробку, сцепление... Геморройная установка в общем. И это не работает с Январем - ему катушечку хочется. А вот на Вемсе или Мегаскирте и этом датчике люди ездят. Преимущества ДХ - не требует внешней обработки, не чувствителен к зазору и нельзя подключить как то не так. Недостатки - значительно дороже тупого куска провода на куске гвоздя. ДХ в распредлитель ставили много лет. Тот же Ваз переднеприводной с раздачей искры механикой. И все нормально, погрешность меньше градуса по КВ. Стробоскоп штука такая - не врет. И ему я почему то верю больше, чем твоим заявлениям о растяжении ремня.
К чему привязывать пульсации ДАД на 2Ц моторе мне не интересно :) Я вроде озвучил свою позицию - попытка сделать сразу универсальное решение в 100% случаев оканчивается эпик фейлом. А чаще всего и не начинается даже - тут схему фиг нарисуешь, надо же все учесть. В том числе и 12 цилиндров и вдруг - 16. Интересно какой максимум цилиндровв авто? О 16 я слышал, но наверно есть и покруче. Не забудь и их учесть. 32 цилиндров впрочем точно хватит. Хотя можешь и 12 ограничится. То есть 12 каналов форс и 12 зажигания. В вашем брутфорсовом подходе таймеров в стм32 должно хватить.
nikll
LQFP144 - On Top Of The Game
Posts: 553
Joined: Sun Nov 06, 2011 9:20 pm
Location: Russia, Yekaterinburg
Contact:

Re: Оптимальное распределение ресурсов МК в прошивке

Post by nikll »

Что тебе ненравится с ДМА? настроил источник и получатель, повесил прерывание на окончание передачи (в нем инткрементировать счетчик в FAT таблице), после заполнения структуры просто дергаеш ДМА и идеш дальше. Я работал с SD на stm32 там все просто, crc аппаратное, spi аппаратное, с dma прекратсно увязывается.
По поводу онлайн редактированния, это естественно будет, запись логов на карту это только дополнительная фича для желающих :) (для моего мотоцикла к примеру). Те же январи и микасы вполне себе отлично откатываются через ноутбук в онлайне.
Весь мир юзает винду и считает что это хорошо :) аргумент не убедил.
ДХ на коленвал вполне возможно, но точность будет ниже и алгоритм сложней, ты только что мне втирал про дартаньяна а сам предлагаеш аналогично :)
Мне пофиг какой будет датчик на КВ индукционный или ДХ, но я за 60-2 вместо одного сигнала каждые 180гр.
Пульсации на впуске есть в любом моторе, и если в виэйте они достаточно малы то в 4ц они уже доходят до 30% давления, а в 2ц так вообще от почти нуля до атмосферы и обратно :).
По поводу точности трамблера, я незнаю что и как ты намерял но по факту даже на моей нижневальной волге с жестко заблокированным автоматом опережения УОЗ скачит на 4гр. Привод распредвала шестреней, от распредвала так же шестерней через промвал и вилкообразное соеденение на трамблер. 2 градуса на трамблере это 4 градуса на кв. На ЗМЗ406 с цепным приводом РВ так вообще только за счет растяжения цепей фазы уходят на столкьо что требуются либо разреные шестерни (с переодической подстройкой) либо после 50-60тык перекидывать цепь на один зуб...
В общем положение коленвала надо определять по коленвалу а не по генератору задним колесам и погоде на марсе...
Ну ты можеш делать и под 32 цилиндра, а я сделаю платформу к которой можно подцепить любое размуное количество исполнительной переферии, 32 не обещаю но до 16ц впринипе можно запилиить :)
Qwertty
LQFP144 - On Top Of The Game
Posts: 252
Joined: Thu Jul 26, 2012 12:35 pm

Re: Оптимальное распределение ресурсов МК в прошивке

Post by Qwertty »

nikll wrote:Что тебе ненравится с ДМА? настроил источник и получатель, повесил прерывание на окончание передачи (в нем инткрементировать счетчик в FAT таблице), после заполнения структуры просто дергаеш ДМА и идеш дальше. Я работал с SD на stm32 там все просто, crc аппаратное, spi аппаратное, с dma прекратсно увязывается.
Усомнюсь. :lol: Любой работавший с SD картами знает что SPI и CRC не совместимы.
nikll wrote: ДХ на коленвал вполне возможно, но точность будет ниже и алгоритм сложней, ты только что мне втирал про дартаньяна а сам предлагаеш аналогично :)
В дорогие авто ставят. Точность - выше. Алгоритм не меняется. Просто ДХ дороже. Экономят копейки.
Или это все же про распредвал? Тут то я просто полюбопытствовал - почему не ставят. Я в любом случае этого делать не буду. Заводских деталей не бывает, а точить нестандартные шкивы это тупиковый путь.
nikll wrote: По поводу точности трамблера, я незнаю что и как ты намерял но по факту даже на моей нижневальной волге с жестко заблокированным автоматом опережения УОЗ скачит на 4гр. Привод распредвала шестреней, от распредвала так же шестерней через промвал и вилкообразное соеденение на трамблер. 2 градуса на трамблере это 4 градуса на кв. На ЗМЗ406 с цепным приводом РВ так вообще только за счет растяжения цепей фазы уходят на столкьо что требуются либо разреные шестерни (с переодической подстройкой) либо после 50-60тык перекидывать цепь на один зуб...
У меня шестерней от промвала. Промвал - ремнем ГРМ. Мотор - ABS, раньше был моновпрыском. Потом перестроился на газ и для прогрева на бензине был поставлен карб с какой то авдотьи. Сейчас остался только карб после кончины гига. После газа это катастрофа - вместо 10 литров пропана 10 литров бензина совсем не то. Так вот - люфта в распределителе нет. Распределитель всегда нагружен - он крутит маслонасос. И эта нагрузка полностью устраняет люфт. Руками он есть - градусов на 5-10 точно. А на стробоскопе уже нет.
nikll wrote:
В общем положение коленвала надо определять по коленвалу а не по генератору задним колесам и погоде на марсе...
Ну ты можеш делать и под 32 цилиндра, а я сделаю платформу к которой можно подцепить любое размуное количество исполнительной переферии, 32 не обещаю но до 16ц впринипе можно запилиить :)
Положение - конечно по ДПКВ. Вот только зачем? Меня положение КВ вообще не интересует. Что с ним делать то? АЦП тактировать? Что то черезчур серьезные аппаратные затраты. Проще по старинке - таймером :lol:
nikll
LQFP144 - On Top Of The Game
Posts: 553
Joined: Sun Nov 06, 2011 9:20 pm
Location: Russia, Yekaterinburg
Contact:

Re: Оптимальное распределение ресурсов МК в прошивке

Post by nikll »

Это без нагрузки у тебя нет люфта на стробоскопе, на ходу особенно в рваном городском режиме маслонасос не уберет люфт :).
Тебя не интересует положение КВ О_О а от чего таймер плясать будет? от момента запуска двигателя чтоли? )))))))))))))))
ДХ или индукционный датчик это похер, важно сколько сигналов на один оборот КВ, два сигнала через 180гр или 60-2.
User avatar
hc13nx2
LQFP112 - Up with the play
Posts: 130
Joined: Tue Apr 12, 2011 11:58 pm
Location: Херсон
Contact:

Re: Оптимальное распределение ресурсов МК в прошивке

Post by hc13nx2 »

Qwertty wrote:В STM точно также придется поддерживать SD карту программой. 95% этой поддержки - это файловая система. Что мега, что стм32, что стм8 - они о файловых системах ничего не знают. Что SD интерфейс, что SPI - затраты ресурсов одинаковы почти. В первом есть CRC и выше скорость в 4 раза. Вот и все. Писать логи большой скорости не надо. SPI справился бы. Но зачем в ЭБУ пихать карту? Внешний девайс типа БК - он же мост на комп.
CD карта вообще там не надо, на всякий случай надо предусмотреть панельку под SPI память и писать туда циклически лог кадрами, а читать через софтину на PC. На два порядка упрощает написание кода и соответственно на столько меньше глюков, что очень важно.
ВАЗ-2108 1300 SPIRT+MPSZ CDI
Qwertty
LQFP144 - On Top Of The Game
Posts: 252
Joined: Thu Jul 26, 2012 12:35 pm

Re: Оптимальное распределение ресурсов МК в прошивке

Post by Qwertty »

ИМХО - все что не надо для управления мотором из ЭБУ надо убрать. Нечего ему ерундой заниматься. :) Лог должен писать внешний прибамбас - хоть PC, хоть специально сделанный даталоггер. Который за одно будет и бортовым компом - ну расход там посчитать/показать или еще что. Вот он пусть с картой и работает. Либо транслирует пакеты с CAN шины во что то понятное ноутбуку. Или совмещает. А ЭБУ должен заниматься одной задачей - форсунками дрыгать, да катушками зажигания. И тупо выплевывать данные с датчиков плюс результаты своих расчетов во внешний интерфейс. Не задумываясь - нужно это кому и если да, то зачем нужно.

Таймер отсчет ведет от ВМТ. Меня именно ВМТ и интересует. А люфт может проявиться только при резком сбросе оборотов. Тогда может не хватить нагрузки от маслонасоса. Но в это время логично вообще топливо не лить. И промах в искре даже на 5 градусов вообще ни на что не повлияет. В общем ДПКВ хорош если есть события привязанные именно к углу. Допустим рулить фазами ГРМ. Тут без вариантов - нужно не время а именно угловое положение. Но мой мотор не умеет все равно это делать. В остальном я великой выгоды именно от 30 событий на цикл от одного в ВМТ не вижу. Зато вижу некислую трудоемкость установки этого самого ДПКВ.
Sergey89
QFP80 - Contributor
Posts: 71
Joined: Sat Dec 03, 2011 1:28 pm
Location: Russia, Velikiy Novgorod
Contact:

Re: Оптимальное распределение ресурсов МК в прошивке

Post by Sergey89 »

для связи с пк можно rs232 или usb применить. а для внешних девайсов можно can использовать.
Qwertty
LQFP144 - On Top Of The Game
Posts: 252
Joined: Thu Jul 26, 2012 12:35 pm

Re: Оптимальное распределение ресурсов МК в прошивке

Post by Qwertty »

CAN - наше все. Отдельный интерфейс для писи - излишество. Все понятно - ИМХО.
Post Reply