Электроника средств транспорта Ремонт и разработка дополнительного автооборудования. Бортовые компьютеры и многое другое. |
02.07.2012, 20:29
|
|
Частый гость
Регистрация: 15.04.2010
Сообщений: 12
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Самодельный круиз-контроль
блин, ну не понимаю я, зачем колхозить формирователь импульсов? неужели нельзя отслеживать только один фронт? либо 0-1, либо 1-0, де факто, с формирователем почти то же и вышло, так ведь и стабильность получилась!
|
|
|
|
02.07.2012, 20:41
|
|
Гражданин KAZUS.RU
Регистрация: 08.05.2004
Адрес: Екатеринбург
Сообщений: 760
Сказал спасибо: 2
Сказали Спасибо 85 раз(а) в 82 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от marsden
|
неужели нельзя отслеживать только один фронт?
|
В этом и проблема, измерения низких частот, нужно тратить на это время. При этом нужно еще и умудрится выделить полезный период от ложного срабатывания. Все в совокупности требует продолжительного времени. При этом еще нужно кучу дел сделать. Ща вот пытаемся, первая попытка провалилась. Сейчас по другому пути идем. Надеюсь gnomon не сдернется )))
Я вот сейчас еще вывел значек включения ДХО на индикатор, и сегодня уже подключил. Смотрится прикольно в совокупности
|
|
|
|
02.07.2012, 20:51
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2008
Адрес: Харьков, Украина
Сообщений: 523
Сказал спасибо: 32
Сказали Спасибо 106 раз(а) в 82 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от OKLiK
|
В этом и проблема, измерения низких частот, нужно тратить на это время
|
я щас пробую сваять свой спидометр, с несколькими алгоритмами работы. Посмотрю насколько он врать будет.
|
|
|
|
03.07.2012, 07:39
|
|
Временная регистрация
Регистрация: 18.11.2011
Сообщений: 98
Сказал спасибо: 1
Сказали Спасибо 11 раз(а) в 6 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от OKLiK
|
В этом и проблема, измерения низких частот, нужно тратить на это время. При этом нужно еще и умудрится выделить полезный период от ложного срабатывания. Все в совокупности требует продолжительного времени. При этом еще нужно кучу дел сделать.
|
Не вижу проблемы. Глянь код от "ещё один max"-а с его коментарием:
Код:
|
Инициализация таймеров:
Код:
// Timer/Counter 0 initialization
// Clock source: T0 pin Falling Edge
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x06;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 31,250 kHz
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: On
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x04;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x04; //здесь и ...
OCR1AL=0xE2; //... здесь задаётся время счёта (40 мкс)
OCR1BH=0x00;
OCR1BL=0x00;
Прерывание 1-го таймера по сравнению:
Код:
// Timer 1 output compare A interrupt service routine
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
// Place your code here
speed_cur=TCNT0; //здесь считается скорость
TCNT1H=0x00;
TCNT1L=0x00;
TCNT0=0x00;
}
Конец кода.
Таймер 1 считает до 40 мкс, а таймер 0 (в режиме счётчика)
в это время принимает внешние импульсы. А прерывание из
4-х тактов, классика! Его практически нет, и ты в любой
момент времени знаешь текущую скорость. |
У меня этот код работает со временем 134 мкс от ABS.
Последний раз редактировалось Andry_MA; 03.07.2012 в 07:42.
|
|
|
|
03.07.2012, 07:49
|
|
Временная регистрация
Регистрация: 18.11.2011
Сообщений: 98
Сказал спасибо: 1
Сказали Спасибо 11 раз(а) в 6 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от marsden
|
блин, ну не понимаю я, зачем колхозить формирователь импульсов? неужели нельзя отслеживать только один фронт? либо 0-1, либо 1-0, де факто, с формирователем почти то же и вышло, так ведь и стабильность получилась!
|
А колхозить стали, как я понимаю, из-за проблем неправильного определения текущей скорости. Что-то там со скважностью не в порядке.
|
|
|
|
03.07.2012, 08:00
|
|
Гражданин KAZUS.RU
Регистрация: 08.05.2004
Адрес: Екатеринбург
Сообщений: 760
Сказал спасибо: 2
Сказали Спасибо 85 раз(а) в 82 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от Andry_MA
|
со скважностью не в порядке
|
да вот проблема то по моему в другом, я считаю что скважность тут вообще не причем, я менял скважность от 3% до 97% и проблем в подсчете небыло, проблемы возникали из-за пропусков импульсов от ДС или лишних, что приводит к фигне. Визуально это осциллографом простым не увидеть, нужно писать сигнал, а потом анализировать.
Проверяя все это с генератором, и если из сигнала пропадал хоть 1..2 импульса то показания прыгали очень сильно.
В вашем случае, датчик абс дает очень качественный сигнал, поскольку от этого зависит правильность работы системы в целом.
Что бы точно отследить проблему, нужно писать сигнал датчика скорости самописцем, тогда будет видно точно в чем проблема.
Последний раз редактировалось OKLiK; 03.07.2012 в 08:02.
|
|
|
|
03.07.2012, 09:10
|
|
Временная регистрация
Регистрация: 18.11.2011
Сообщений: 98
Сказал спасибо: 1
Сказали Спасибо 11 раз(а) в 6 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от OKLiK
|
да вот проблема то по моему в другом, я считаю что скважность тут вообще не причем
|
может и причём. меня вот это
Сообщение от cuper_1971
|
Похоже, я всё-таки решил эту проблему аппаратным способом. Формирователь, который запускается фронтом сигнала с датчика скорости и формирует импульс строго заданной длительности сделал чудо
|
заставило это предположить.
Цитата:
|
проблемы возникали из-за пропусков импульсов от ДС или лишних
|
Что-то мне подсказывает нет у Вас ни пропусков, ни лишних импульсов.
Гляньте что нарисовал. В одном случае насчитали 5 импульсов, в другом, счёт начался чуть позже, 4-ре. Может в этом разгадка большой погрешности?
В моём случае, датчик абс дает очень качественный сигнал, поскольку от этого зависит правильность работы системы в целом. А ещё и частота больше. Соответственно погрешность меньше.
|
|
|
|
03.07.2012, 09:26
|
|
Гражданин KAZUS.RU
Регистрация: 08.05.2004
Адрес: Екатеринбург
Сообщений: 760
Сказал спасибо: 2
Сказали Спасибо 85 раз(а) в 82 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от Andry_MA
|
Может в этом разгадка большой погрешности?
|
Это как вариант, поскольку мы не контролируем начало периода для начало отсчета времени измерения!
|
|
|
|
03.07.2012, 11:05
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.06.2010
Сообщений: 1,223
Сказал спасибо: 13
Сказали Спасибо 176 раз(а) в 123 сообщении(ях)
|
Re: Самодельный круиз-контроль
Andry_MA, нет, не так.
Будет замерен период импульсов (т.е. между каждой парой восходящих фронтов), данные просуммированы и разделены на количество замеров, т.е. будет получен средний период.
По верхней картинке будет четыре замера, по нижней три. Вычисленное значение в обоих случаях будет очень точным.
Если скважность одного из имульсов будет отличаться и он будет находиться в базе замера между двумя другими смежными имульсами, то ничего страшного - уменьшение/увеличение его периода будет скомпенсировано при усреднении за увеличения/уменьшения периода смежного импульса, т.к. длина окружности всех шторок постоянна и суммарный период всех импульсов всегда одинаков. Но вот если этот "кривой" импульс с "кривым" периодом окажется крайним (первым или последним) в базе замера, то и будет косяк, т.к. следующий/предыдущий смежный и компенсирующий отклонение импульс в замер не попадет.
Вот в чем суть проблемы.
Для 6-импульсного датчика с одним "кривым" импульсом с отклонением скважности в 120% получается следующий расклад.
Вероятность ошибки: 2/6, т.е. попадание "кривого" импульса на передний/задний край базы замера = 33%
Ошибка замер а периода: отклонение скважности "кривого" импульса делить на (количество импульсов ДС минус 1) = 20 / 5 = 4%
Т.е. для 60 км/ч получим ошибку 2,4 км/ч.
Если "кривых" шторок в ДС больше одной, то, соответственно, всё умножайте на их количество.
Последний раз редактировалось gnomon72; 03.07.2012 в 11:24.
|
|
|
|
03.07.2012, 11:24
|
|
Временная регистрация
Регистрация: 18.11.2011
Сообщений: 98
Сказал спасибо: 1
Сказали Спасибо 11 раз(а) в 6 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от OKLiK
|
мы не контролируем начало периода для начало отсчета времени измерения!
|
Сообщение от gnomon72
|
Будет замерен период импульсов (т.е. между каждой парой восходящих фронтов)
|
Кому верить?
Сообщение от gnomon72
|
Если скважность одного из имульсов будет отличаться и он будет находиться в базе замера между двумя другими смежными имульсами, то ничего страшного - уменьшение/увеличение его периода будет скомпенсировано при усреднении за увеличения/уменьшения периода смежного импульса, т.к. длина окружности всех шторок постоянна и суммарный период всех импульсов всегда одинаков. Но вот если этот "кривой" импульс с "кривым" периодом окажется крайним (первым или последним) в базе замера, то и будет косяк, т.к. следующий/предыдущий смежный и компенсирующий отклонение импульс в замер не попадет.
Вот в чем суть проблемы.
|
А вот это непонятно. Если замеры производятся между восходящими фронтами как может влиять скважность даже "кривого" импульса? Даже если он окажется крайним (первым или последним) в базе замера?
Это насколько должна быть кривой механика датчика, что-бы скорость скакала на 10%, как говорилось ранее?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:04.
|
|