PDA

Просмотр полной версии : разработка девайсов на МК...



by7
29.10.2014, 09:50
сколько импульсов соответствует 1 км/ч
все зависит от авто! тогда и неизвестных станет меньше......
если это классический датчик скорости, то обычно на один оборот колеса идет 4 импульса( длимну окружности посчитать труда не составит...), если устройство претендует на универсальность, то и возможность коррекции по типоразмеру шин следует учесть.....

sansa
29.10.2014, 10:25
только это уравнение со многими неизвестными, во первых скорость как считать, делать одну схему, чтобы тупо считала импульсы и выводила их на дисплей, а потом покаться на разных скоростях и вычислить сколько импульсов соответствует 1 км/ч? Это можно, а вот с форсункой сложнее))
Скорость тебе не нужна. Она вычисляется в любой момент.
У тебя есть сумма импульсов с датчика скорости - это расстояние, сумма времени открытия форсунки - это топливо. Топливо/Расстояние=Расход. Расстояние/Время=Скорость.

Сколько импульсов на км - делается процедурой калибровки. Обнуляем счетчик импульсов с коробки, проезжаем по GPS 100 км (например), смотрим, сколько импульсов получилось. То же самое с топливом. Обнуляем счетчик форсунок, заправляем до полного, проезжаем 100 км, снова заправляем до полного. По чеку видно, сколько потратили. По счетчику форсунки видим сколько единиц "времени открытия форсунки" нам понадобилось для сжигания такого кол-ва топлива.

Затем, если считываем разницу счетчиков раз в секунду, можем вычислить мгновенный расход (хоть л/ч, если скорость=0, хоть л/км, если скорость >0), мгновенную скорость.
Если считываем разницу за "поездку" (от поворота ключа в ON, до OFF), и считать время поездки, вычисляем средний и суммарный расход за поездку, расстояние поездки, среднюю скорость поездки.
Можно считать все это "с момента создания и до упора" ))
А перед отображением, используем коэффициенты, полученные процедурой калибровки (которые желательно получить для единиц СИ) и нормируем это к удобным для водителя показаниям (км, км/ч, литры в мин) и отображаем ему.

rxstart1
29.10.2014, 12:21
машина ровер 600 двигатель 1.4
я нашел таблицу для разных форсунок средний показатель расхода топлива
согласен нужно знать сколько импульсов датчика скорости придется на 100 км, но я думаю, т. к. зависимость линейная можно колесо вывесить и "проехать 1КМ" скажем получим 10 импульсов, тогда 100 км это 1000 импульсов
теперь нужно узнать сколько прошло топлива в литрах через форсунку за 1сек. (раз в секунду обновлять показания) обзовем Q таким образом F=Q/1000, где F- мгновенный расход топлива XX л/100 км
я правильно все понял?
вот только как рассчитать q тоже эксперементальным путем с помощью осцилограммы форсунки?

sansa
29.10.2014, 12:32
теперь нужно узнать сколько прошло топлива в литрах через форсунку за 1сек. обзовем Q таким образом F=q/1000 получаем F- мгновенный расход топлива XX л/100 км
В данном случае, у тебя получаеются непонятно что. Если Q - л/сек, то из него ты можешь узнать только л/ч. Пусть q - л/ч, тогда q = Q * 3600.
Что бы узнать F (л/км), нужно учитывать скорость, т.е. сколько км ты за этот час проедешь.

- - - Добавлено - - -


вот только как рассчитать q тоже эксперементальным путем с помощью осцилограммы форсунки?
Самый точный я описал выше

rxstart1
29.10.2014, 12:49
Вот мой проект кнопки запуска двигателя, все работает у меня на машине более 3-х лет, кроме тахометра, эту функцию не реализовал в силу объективных причин. Не могу найти у нас прямоугольных светодиодов для создания шкалы. :)
дополнил проект, как побочным эффектом управлением ДХО (включаются после заводки двигателя, выключаются после его остановки), тоже пока не подключал. ибо надо сначала светодиоды в фары вставить.
Кому интересно: полное описание работы устройства, исходники AVR C++, прошивка, FUSE биты, рисунки плат все в архиве.
В исходниках к каждой строке есть комментарии, так что я думаю если кто захочет повторить или переделать под себя трудностей не возникнет.

- - - Добавлено - - -

а зачем учитывать скорость, ведь нужно расстояние, в моем случае 100 км? Я же хочу получить результат Л/100км?

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

cockchafer
29.10.2014, 12:57
я думаю с расчетом топлива проходимого через форсунку все не очень просто, во первых я уверен, что там не будет как в случае со спидометром линейной зависимости, во вторых после подачи питания на форсунку она откроется через какое-то время Т и это тоже нужно учитывать.

в реальности разница в расходе, полученном таким способом (через суммарную без всяких фокусов длительность работы форсунки), с расходом по чеку составляла около пары процентов при общем расходе около 150 литров.

rxstart1
29.10.2014, 13:06
в реальности разница в расходе, полученном таким способом (через суммарную без всяких фокусов длительность работы форсунки), с расходом по чеку составляла около пары процентов при общем расходе около 150 литров.

давайте прикинем
50-100 мкс на то чтобы начало поступать топливо и 500-800мск работа форсунки как ни крути минимум 10%

И я хочу считать не только средний, но и мгновенный расход топлива ЭТО ВАЖНО!

cockchafer
29.10.2014, 13:30
ну так мгновенный - просто промежуток времени брать меньше.

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

rxstart1
29.10.2014, 17:20
Нашел спецификацию, за 1 минуту форсунка выпуливает 240 кубиков при давлении 3 бар, 1 оборот в ХХ(800 об/мин) выпуливает 0,3 кубика

sansa
29.10.2014, 19:30
а зачем учитывать скорость, ведь нужно расстояние, в моем случае 100 км? Я же хочу получить результат Л/100км?
Если ты будешь отображать расход каждые 100 км - тогда не надо. Если раз в секунду, то получаем расход за эту секунду, например, в л/с и скорость за эту же секунду (в м/с).
Например: Расход 0.0005 л/с или, 0.0005 * 3600 = 1.8 л/ч
Скорость: 17 м/с, или 17*3.6= 61.2 км/ч
Если скорость будет неизменна, 100 км мы проедем за время: 100 000/17= 5882 с, или 5882 / 3600 = 1.63 ч или ~ 1:40
За это время, если опять же, расход не изменится, мы израсходуем: 0.0005*5882= 2.94 л
Соответственно, 2.94 - это наш мгновенный расход в л/100км

- - - Добавлено - - -


машина ровер 600 двигатель 1.4
Таких не бывает (по крайней мере, с конвейера не сходили). Может 400-й?

Нашел спецификацию, за 1 минуту форсунка выпуливает 240 кубиков при давлении 3 бар, 1 оборот в ХХ(800 об/мин) выпуливает 0,3 кубика
Забудь ты про эту спецификацию.
1. От температуры плотность бенза сильно меняется. Кубик может получиться и 1 грамм, и 1.3.
2. На сколько правильно работает РДТ? Может вообще не работает.
3. На сколько изношен насос? Может он эти 3 бара только в мечтах видел, макс 2.7?
4. Насколько загадены форсунки?

sansa
29.10.2014, 19:41
давайте прикинем
50-100 мкс на то чтобы начало поступать топливо и 500-800мск работа форсунки как ни крути минимум 10%
А зачем тебе это? За час ты сожжешь, например, 7 литров. За это время у тебя возможно > 10 раз сменится режим работы (под нагрузкой, без), обороты (от 700 до 3-4к)... За это время, на холостом ходу (на прогреве) ты будешь работать 10% времени, например. 2-3к - 80%, >3к еще 10%. Если пользоваться калибровкой - это все усреднится очень хорошо.

rxstart1
29.10.2014, 19:44
да точно 400 я просто 6 случайно нажал не посмотрел))
на счет скорости ты прав согласен.
ну тогда на счет сколько топливо проходим у меня только одна мысльналить 100г в банку опустить туда же насос считать импульсы после заводки машины соответственно засечь время. как машина заглохнет значение сохранить в 5 переменных EEPROM десятки сотни тысячи и т. д. тогда можно извлечь поделить на время зная частоту вычислить сколько топлива уходит за 1 оборот, ну и желательно осцилограмму снять, тогда будет известна и ширина импульса, т. е. его длительность.

sansa
29.10.2014, 19:51
у меня только одна мысльналить 100г в банку опустить туда же насос
У тебя > 30% в бак через обратку уйдет.
Не ленись, добавь 4 кнопки и процедуру калибровки )

rxstart1
29.10.2014, 19:53
да я не ленюсь я просто не могу понять относительно чего калибровать, где взять эталон?

sansa
29.10.2014, 19:58
да точно 400 я просто 6 случайно нажал не посмотрел))
Его не Денис зовут? ))

- - - Добавлено - - -


где взять эталон?
Обнуляем счетчик форсунок, заправляем до полного, проезжаем 100 км, снова заправляем до полного. По чеку видно, сколько потратили. По счетчику форсунки видим сколько единиц "времени открытия форсунки" нам понадобилось для сжигания такого кол-ва топлива.

rxstart1
29.10.2014, 20:02
но покрайней мере все начинает в голове устаканиваться
зная скорость я узнаю сколько машина пройдет за одну сек км составив пропорцию переведу относительно 100 км
подсчитав импульсы с форсунки в течении секунды можно определить сколько топлива прольется за час составив пропорцию выходим на расход л/100 км

- - - Добавлено - - -


Его не Денис зовут? ))

- - - Добавлено - - -


Обнуляем счетчик форсунок, заправляем до полного, проезжаем 100 км, снова заправляем до полного. По чеку видно, сколько потратили. По счетчику форсунки видим сколько единиц "времени открытия форсунки" нам понадобилось для сжигания такого кол-ва топлива.

да Денис))


смысл в том что в башке контроллера такая большая цифра не пропишется)))
даже если ехать по трассе память МК переполнится быстрее чем проеду это растояние

sansa
29.10.2014, 20:29
сколько топлива уходит за 1 оборот
Тут не правильно. Нельзя считать обороты. Именно время открытия форсунки.
Вот как бы я сделал счетчик времени форсунки (https://drive.google.com/file/d/0BwQijhjsHgryLU5iUXJVMzRFZHc/view?usp=sharing). Обращаясь к нему каждую секунду, получаем разницу с прошлой секунды в мкс открытия форсунки.

- - - Добавлено - - -


смысл в том что в башке контроллера такая большая цифра не пропишется)))
даже если ехать по трассе память МК переполнится быстрее чем проеду это растояние
Храни в своих единицах. Например, каждые 10 сек пересчитывай в л/с и прибавляй к хранимому.

rxstart1
29.10.2014, 21:01
согласен кратное деление только лучше сдвигом заменить. Это стандартный подсчет по фронту с задающим таймером.

- - - Добавлено - - -

обобщая выше описанное прихожу к выводу за эталон взять характеристики форсунки, но по ходу эксплуатации подправить и записать в eeprom

by7
30.10.2014, 11:58
понимаю,. что вопрос простого решения не поднимается, но может были комплектации 400 (45) с бортовым компом проще установить и пользоваться готовым. или использовать прошивку из заводского блока.......кмк необходимые счетчики уже есть в прошивке ЭБУ и можно использоваить их, что значительно упростит конструкцию....

radodendron
30.10.2014, 13:41
но может были комплектации 400 (45) с бортовым компом
400-ый видел с бортовым в инете, но такой найти нереально, по крайней мере, в Беларуси и ближайших странах, да и тут больше смысл в том, чтобы не готовое купить и всунуть, а понять как работает и сделать самому

AutoSfera
30.10.2014, 13:48
а не проще купить отдельно бортовой компьютер? Есть такие, в размер под магнитолу.

sansa
30.10.2014, 17:59
а не проще купить отдельно бортовой компьютер?
А говорил, исправишься ))


а понять как работает и сделать самому
ЗЫ. Если уж покупать - то с функцией расшифровки ошибок ЭБУ, да и вообще, что бы читал переменные из мозгов. А на К-серию такой врядли найдешь.
ЗЫЫ. Или там БОШ?

rxstart1
30.10.2014, 20:29
я конечно понимаю, что в любом ЭБУ двигателем есть калькулятор топлива, вопрос как выдрать прошивку, дизассемблировать и из этого куска г выколупать, то что надо???

radodendron
31.10.2014, 07:59
Если уж покупать - то с функцией расшифровки ошибок ЭБУ
даже если и читать ошибки, то читать по сути нечего=)

ЗЫЫ. Или там БОШ?
MEMS 1.9

rxstart1
31.10.2014, 09:55
гребаные японцы по к-линии не читаются стандартными элмами. У этого ражна свои интерфейсы, и я думаю эти приблуды для чтения по к линии российского или китайского производства мало чем помогут. А более дорогие сканеры нужно к буку подключать, да и стоят на несколько порядков дороже

cockchafer
31.10.2014, 09:58
а обычными KKL не читаются?

by7
31.10.2014, 11:02
обычными KKL не читаются?
под обычные кл нужен необычный софт, тогда и почитается....

любом ЭБУ двигателем есть калькулятор топлива
я бы начинал со схем и линий связи эбу-БК...вряд ли там что то оч специфическое.....скорее какой то стандартный протокол

cockchafer
31.10.2014, 11:32
под обычные кл нужен необычный софт, тогда и почитается....


так всё равно же велосипед изобретать

rxstart1
31.10.2014, 22:40
конечно рассуждать просто, имея протокол интерфейса можно за пару минут прогу состряпать, которая будет и читать и ошибки сбрасывать. Только где же его найти)))
Японо-мать сцуко не оставили протокол интерфейса, даже гугл не поможет))

cockchafer
31.10.2014, 23:03
когда-то для расшифровки протокола прошивки одного телефона использовал сниффер ком порта :) так что всё возможно

rxstart1
31.10.2014, 23:22
ага только надо как минимум знать частоту синхронизации +ассемблер какбы это выразится ну перспективно чтоли а не на уровне команд, я не хакер для меня это не возможно

by7
02.11.2014, 22:48
не возможно
нет ничего невозможного - все лишь вопрос времени.....

sansa
03.11.2014, 00:13
стандартными элмами
Элма - это микросхема с зашитым протоколом. Адаптер для КЛайна - просто согласование уровней на КОМ-порт. Разбор протокола идет в программе.
Вообще, все машины, которые я видел, достаточно привести с их (машинного) уровня 12В в компьютерный 5В. Дальше разбирать в программе.

- - - Добавлено - - -


так всё равно же велосипед изобретать
Вот это самое страшное.
http://hondamotor.ru/board/index.php?showtopic=110297

rxstart1
03.11.2014, 09:49
Вообще, все машины, которые я видел, достаточно привести с их (машинного) уровня 12В в компьютерный 5В. Дальше разбирать в программе.
19004
Вот как то так, теперь дело за малым я полагаю:)

Только вот не уверен, что все так просто, я пробовал свой цитромон елмом опросить, показывает только напряжение и частоту вращения. А вот лексия показывает все параметры. Я думаю не зря лексия стоит 300 уёв, а елм 12:)

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

- - - Добавлено - - -


когда-то для расшифровки протокола прошивки одного телефона использовал сниффер ком порта :) так что всё возможно

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

rxstart1
06.11.2014, 15:40
У меня есть такая приблуда ELM327 под USB хотелось бы автономнку сделать с 2 строчным дисплеем по средствам UART подружить. Кто может растолковать как команды типа АТ0 через терминал посылаются на ELM? И как считать фреймы на МК?