Да, числами. Может графически и удобнее, собственно говоря для этого и обратился к вам.
Если делать графически, то можно использовать уже готовые окна, которые сейчас используются для редактирования кривых.
Видел в других программах для тюнинга именно числами...
В мегу 16 будет тяжело влезть. Влазит впритык, свободных байтов ОЗУ не останется что затруднит дальнейшее сопровождение прошивки. В принципе, при желании можно будет потом и в мегу 16 запихнуть. Посмотрим.
Редактирование кривых УОЗ в реальном врем. (Realtime tables)
Moderator: STC
- STC
- LQFP144 - On Top Of The Game
- Posts: 2420
- Joined: Fri Oct 22, 2010 10:47 pm
- Location: Ukraine, Kiev
- Contact:
Re: Редактирование кривых УОЗ в реальном времени
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
Re: Редактирование кривых УОЗ в реальном времени
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
-
- LQFP144 - On Top Of The Game
- Posts: 330
- Joined: Thu Dec 09, 2010 12:55 pm
- Location: Kyiv, Ukraine
Re: Редактирование кривых УОЗ в реальном времени
STC
Практически полностью реализовал редактирование кривых в реальном времени. Планирую хранить временные редактируемые таблицы во внешней ЕЕПРОМ. Осталось написать часть по работе с внешней памятью. В ОЗУ точки уже редактируются. Возник вопрос, на который не смог найти ответ в исходниках прошивки - где находятся таблицы для работы на газе или как они получаются из бензиновых? Я забил место в ОЗУ под таблицы для двух полных характеристик по 320 байт - одна для бензина, другая для газа, но это может быть не нужно.
Практически полностью реализовал редактирование кривых в реальном времени. Планирую хранить временные редактируемые таблицы во внешней ЕЕПРОМ. Осталось написать часть по работе с внешней памятью. В ОЗУ точки уже редактируются. Возник вопрос, на который не смог найти ответ в исходниках прошивки - где находятся таблицы для работы на газе или как они получаются из бензиновых? Я забил место в ОЗУ под таблицы для двух полных характеристик по 320 байт - одна для бензина, другая для газа, но это может быть не нужно.
- STC
- LQFP144 - On Top Of The Game
- Posts: 2420
- Joined: Fri Oct 22, 2010 10:47 pm
- Location: Ukraine, Kiev
- Contact:
Re: Редактирование кривых УОЗ в реальном времени
В прошивке хранятся 8 наборов характеристик. Они никак не разделены на таблицы для газа и для бензина. В параметрах просто есть две переменных, одна это номер набора для бензина, другая это номер набора для газа.
Думаю что выделить место можно и для двух (и более) наборов. Главное другое.
Так как я тоже буду реализовывать данную возможность в основной прошивке, то нам нужно подумать над протоколом обмена так как менеджер у нас один.
Думаю что выделить место можно и для двух (и более) наборов. Главное другое.
Так как я тоже буду реализовывать данную возможность в основной прошивке, то нам нужно подумать над протоколом обмена так как менеджер у нас один.
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
-
- LQFP144 - On Top Of The Game
- Posts: 330
- Joined: Thu Dec 09, 2010 12:55 pm
- Location: Kyiv, Ukraine
Re: Редактирование кривых УОЗ в реальном времени
Когда я проверял обработку концевиков, то, на сколько помню, при использовании одних и тех же таблиц для бензина и газа, например 2108 стандарт, при переходе на газ изменялся текущий уоз. Собственно из за этого и возник у меня вопрос. Я ещё проверю. Если уоз меняться не будет - значит я ошибся.
Функцию изменения кривых я реализую как автономную от внешнего компа - с кнопок блока индикации, еепромка внешняя. А вот перенос полученных данных можно реализовать по разному - или добавить команду в протокол обмена или прочитать еепром программатором. Тогда во втором случае в менеджере должна быть возможность брать таблицы из отдельного файла и помещать их в прошивку вместо имеющихся.
Считаю, что применение внешней еепром для отладочных целей предпочтительнее, чем встроенной в мегу. В случае сбоя и необходимости восстановления базовых параметров в еепром посредством замыкания джампера не теряются модифицированные таблицы. Использовать для изменения более двух таблиц - по одной для газа и бензина - смысла не вижу. Для начала определяется наиболее подходящая для конкретного двигателя из имеющихся, а потом она переносится в еепром и изменяется. В базовой схеме секу-3 выводы SDA и SCL свободные - внешнюю еепром прицепить можно, а вот с ОЗУ проблема - может не хватить, тогда эта функция будет для меги-32 и более.
Функцию изменения кривых я реализую как автономную от внешнего компа - с кнопок блока индикации, еепромка внешняя. А вот перенос полученных данных можно реализовать по разному - или добавить команду в протокол обмена или прочитать еепром программатором. Тогда во втором случае в менеджере должна быть возможность брать таблицы из отдельного файла и помещать их в прошивку вместо имеющихся.
Считаю, что применение внешней еепром для отладочных целей предпочтительнее, чем встроенной в мегу. В случае сбоя и необходимости восстановления базовых параметров в еепром посредством замыкания джампера не теряются модифицированные таблицы. Использовать для изменения более двух таблиц - по одной для газа и бензина - смысла не вижу. Для начала определяется наиболее подходящая для конкретного двигателя из имеющихся, а потом она переносится в еепром и изменяется. В базовой схеме секу-3 выводы SDA и SCL свободные - внешнюю еепром прицепить можно, а вот с ОЗУ проблема - может не хватить, тогда эта функция будет для меги-32 и более.
- STC
- LQFP144 - On Top Of The Game
- Posts: 2420
- Joined: Fri Oct 22, 2010 10:47 pm
- Location: Ukraine, Kiev
- Contact:
Re: Редактирование кривых УОЗ в реальном времени
Внешнюю еепромку использовать не буду, буду использовать внутреннюю. С затиранием проблем не будет - эти таблицы мы затирать не будем.
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
- STC
- LQFP144 - On Top Of The Game
- Posts: 2420
- Joined: Fri Oct 22, 2010 10:47 pm
- Location: Ukraine, Kiev
- Contact:
Re: Редактирование кривых УОЗ в реальном времени
- Делать полный набор нужно для сохранения универсальности и той модели хранения которую я выбрал (каждый набор состоит из СТАРТОВОЙ, ХХ, РАБОЧЕЙ, ДТОЖной таблиц). Да, нам реально нужно только РАБОЧУЮ редактировать, но остальные таблицы много места не израсходуют;
- То что ты сделал два набора (один для газа, один для бензина) хорошо. Места в EEPROM-e в любом случае хватает. Для меги 16 просто будет один набор (так как у нее всего 512 байт EEPROM);
- Вкладка "Данные прошивки" останется без изменений;
- На вкладку "Параметры и монитор" я добавлю кнопку при нажатиии которой будет открываться окно (или вкладка) для редактирования набора(ов) таблиц в реальном времени.
- Команды для Чтения и Записи EEPROM у нас есть только в загрузчике, в прошивке нет. Я предлагаю добавить две новых команды в протокол (одна для записи, а другая для чтения). Причем команды могут пересылать данные только небольшими фрагментами (например 16 или 32 байта). Это значит что для пересылки всего набора таблиц нужно будет послать 10-20 команд. Это для экономии ОЗУ (чтобы не делать буфер на 304 байта в ОЗУ). В любом случае пользователь редко будет двигать все точки одновременно, и поэтому достаточно пересылать данные небольшими порциями.
- Позже я добавлю в менеджер отдельную вкладку "Данные EEPROM". Эта вкладка позволит редактировать данные в EEPROM и перегонять их между данными в прошивке.
- В пришивке добавить посылку имен наборов таблиц в команде FNNAME_DAT. Просто два имени, например tunning1, tunning2. Тогда в менеджере можно будет выбирать один из этих наборов, а прошивка в свою очередь будет их использовать;
- Редактируемые данные можно хранить непосредственно и ОЗУ, а можно непосредственно в EEPROM (думаю что должно зависеть только от реализации прошивки, менеджер не должен знать об этом). В первом случае данные редактируются в ОЗУ и во время работы все время из него считываются, по команде "Сохранить" будут сохранены в EEPROM, а при следующем запуске извлечены (если выбран набор таблиц которые можно редактировать в реальном времени). Во втором случае, данные редактируются непосредственно в EEPROM, и во время работы все время из него считываются. Второй вариант, я думаю проще.
- То что ты сделал два набора (один для газа, один для бензина) хорошо. Места в EEPROM-e в любом случае хватает. Для меги 16 просто будет один набор (так как у нее всего 512 байт EEPROM);
- Вкладка "Данные прошивки" останется без изменений;
- На вкладку "Параметры и монитор" я добавлю кнопку при нажатиии которой будет открываться окно (или вкладка) для редактирования набора(ов) таблиц в реальном времени.
- Команды для Чтения и Записи EEPROM у нас есть только в загрузчике, в прошивке нет. Я предлагаю добавить две новых команды в протокол (одна для записи, а другая для чтения). Причем команды могут пересылать данные только небольшими фрагментами (например 16 или 32 байта). Это значит что для пересылки всего набора таблиц нужно будет послать 10-20 команд. Это для экономии ОЗУ (чтобы не делать буфер на 304 байта в ОЗУ). В любом случае пользователь редко будет двигать все точки одновременно, и поэтому достаточно пересылать данные небольшими порциями.
- Позже я добавлю в менеджер отдельную вкладку "Данные EEPROM". Эта вкладка позволит редактировать данные в EEPROM и перегонять их между данными в прошивке.
- В пришивке добавить посылку имен наборов таблиц в команде FNNAME_DAT. Просто два имени, например tunning1, tunning2. Тогда в менеджере можно будет выбирать один из этих наборов, а прошивка в свою очередь будет их использовать;
- Редактируемые данные можно хранить непосредственно и ОЗУ, а можно непосредственно в EEPROM (думаю что должно зависеть только от реализации прошивки, менеджер не должен знать об этом). В первом случае данные редактируются в ОЗУ и во время работы все время из него считываются, по команде "Сохранить" будут сохранены в EEPROM, а при следующем запуске извлечены (если выбран набор таблиц которые можно редактировать в реальном времени). Во втором случае, данные редактируются непосредственно в EEPROM, и во время работы все время из него считываются. Второй вариант, я думаю проще.
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
-
- LQFP144 - On Top Of The Game
- Posts: 330
- Joined: Thu Dec 09, 2010 12:55 pm
- Location: Kyiv, Ukraine
Re: Редактирование кривых УОЗ в реальном времени
Может всё таки таблицы редактировать во вкладке "Данные прошивки", но сделать там соответствующий флажок. Ну и потом отредактированные таблицы будут переноситься в прошивку.- Вкладка "Данные прошивки" останется без изменений;
- На вкладку "Параметры и монитор" я добавлю кнопку при нажатиии которой будет открываться окно (или вкладка) для редактирования набора(ов) таблиц в реальном времени.
Зачем целую вкладку, можно просто несколько команд из меню для переноса данных.- Позже я добавлю в менеджер отдельную вкладку "Данные EEPROM". Эта вкладка позволит редактировать данные в EEPROM и перегонять их между данными в прошивке.
Не понял зачем это?- В прошивке добавить посылку имен наборов таблиц в команде FNNAME_DAT. ...
Я считаю, что при редактировании таблиц данные лучше хранить в озу, а в еепром только считывать в начале и сохранять в конце. У меня сделано так.- Редактируемые данные можно хранить непосредственно и ОЗУ, а можно непосредственно в EEPROM....
Для всего этого дела нужно продумать наиболее правильный и простой алгоритм подбора кривых, так как двигатель работает на разных режимах. В идеале - это поставить на стенд, а в реальных условиях как?
- STC
- LQFP144 - On Top Of The Game
- Posts: 2420
- Joined: Fri Oct 22, 2010 10:47 pm
- Location: Ukraine, Kiev
- Contact:
Re: Редактирование кривых УОЗ в реальном времени
Хорошо, насчет 1-го и 2-го твоих комментариев я в принципе согласен, потом еще подумаю (в любом случае, не это сейчас главное).
По поводу FNNAME_DAT. Когда ты в менеджере открываешь вкладку "Функции" то для того чтобы узнать названия наборов таблиц менеджер посылает блоку команды для получения имен наборов таблиц. чтобы в списке появились две редактируемые таблицы, нужно чтобы блок в дополнение к 8 существующим посылал имена этих двух.
Хорошо. Данные храним в ОЗУ.
Насчет алгоритма подбора кривых не понял что ты имел ввиду.
По поводу FNNAME_DAT. Когда ты в менеджере открываешь вкладку "Функции" то для того чтобы узнать названия наборов таблиц менеджер посылает блоку команды для получения имен наборов таблиц. чтобы в списке появились две редактируемые таблицы, нужно чтобы блок в дополнение к 8 существующим посылал имена этих двух.
Хорошо. Данные храним в ОЗУ.
Насчет алгоритма подбора кривых не понял что ты имел ввиду.
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
-
- LQFP144 - On Top Of The Game
- Posts: 330
- Joined: Thu Dec 09, 2010 12:55 pm
- Location: Kyiv, Ukraine
Re: Редактирование кривых УОЗ в реальном времени
Я думаю, что менеджер должен работать или с таблицами в прошивке или с таблицами из еепром/озу, по этому в окне с таблицами будут или 8 таблиц из прошивки или 2 из еепром/озу.
По алгоритму. У нас есть 16 кривых для рабочего режима. При редактировании в зависимости от нагрузки двигателя (на ходу) мы можем изменять разные точки на разных кривых. При этом в результате изменённые точки будут на 3Д графике расположены хаотически, что не очень наглядно для составления нормальных (правильныых) кривых.
Стенд это идеальный вариант для создания известных нагрузок.
В "домашних" условиях проще всего отредактировать первую кривую при минимальной нагрузке - поставил на нейтралку и добавляй обороты, изменяя точки, например до появления детонации, приближаясь к детонационной кривой. При этом канал детонации должен быть отключён или нет и как его использовать в данном случае? В принципе остальные кривые практически такие же, но смещённые в зависимости от разрежения воздуха (от нагрузки), по этому их можно будет получить из подобранной первой кривой.
Вроде объяснил, что имел в виду?
По алгоритму. У нас есть 16 кривых для рабочего режима. При редактировании в зависимости от нагрузки двигателя (на ходу) мы можем изменять разные точки на разных кривых. При этом в результате изменённые точки будут на 3Д графике расположены хаотически, что не очень наглядно для составления нормальных (правильныых) кривых.
Стенд это идеальный вариант для создания известных нагрузок.
В "домашних" условиях проще всего отредактировать первую кривую при минимальной нагрузке - поставил на нейтралку и добавляй обороты, изменяя точки, например до появления детонации, приближаясь к детонационной кривой. При этом канал детонации должен быть отключён или нет и как его использовать в данном случае? В принципе остальные кривые практически такие же, но смещённые в зависимости от разрежения воздуха (от нагрузки), по этому их можно будет получить из подобранной первой кривой.
Вроде объяснил, что имел в виду?