Mierzenie obrotów silnika samochodowego - analiza

Sep 30, 2007 3 Replies

Hej.



Kolejnym moim wyzwaniem jest budowa obrotościomierza cyfrowego do samochodu na '51. Chciałbym pod Waszą ocenę poddać moje rozumowanie.



Impulsy będę zliczał z cewki zapłonowej, gdzie pojwiają mi się zera. Pomijam kwestię uformowania inpulsów do TTLa oraz fakt, że wynik muszę dzielić przez



4 - ilość cylindrów.

Impulsy chcę podać na wejście przerwania INT0.



Teraz troszkę o czasie.



Zakres teoretyczny dla urządzenia pracy silnika określam na:


422 obr/min - 9000 obr/min

Chcę policzyć impulsy w danym określonym czasie. Mój procek ma przyłożony kwarc 11059200 Hz więc maksymalna częstotliwość pracy układu czasowego jako



16-to bitowego licznika impulsów wynosi 11059200 Hz / 24 = 460800 Hz (z dokumentacji). To daje czas trwania okresu rzędu: 0,00000217 sekundy.

Licznik ma pracować w trybie 16to bitowym więc 0,00000217 sekundy x 65536 (do momentu zgłoszenia przerwania z licznika licząc od zera) = 0,142 sekundy.



Czyli 142 ms to minimalny okres dla uchwycenia choćby 1 impulsu, czyli wyznacza mi minimalne obroty, jakie jestem w stanie uchwycić.



Stąd mam:



1 / (0,142) x 60 = 422 obr/min (jak wyżej).

Co do logiki działania:


- program ustawia liczniki T0 i T1 na zero przy starcie



- czeka na zgłoszenie przerwania opadjącym zboczem z INT0



- w momencie przerwania z INT0, blokuje to przerwanie i uruchamia 16bitowy licznik czasu T1 popychany wewnętrznym oscylatorem.



- jednocześnie poprzez zworę między INT0 a T0 , licznik T0 zlicza kolejne impulsy



- gdy T1 dojdzie do przepełnienia (65536) generuje przerwanie, które zatrzymuje zliczania, obrabia wynik dla programu głównego, zeruje liczniki i włącza przerwanie od INT0.



Wybaczcie, że może wyważam otwarte drzwi, ale zależy mi na zrozumieniu zagadnienia, a po przekopaniu Google i kilku art. EP miałem kilka pomysłów zamiast rozwiązania.



Za uwagi i sugestie z góry serdeczne THX. D.


Użytkownik "DEXTER" snipped-for-privacy@home.pl napisał w wiadomości news: snipped-for-privacy@news.home.net.pl...

Przez 4? IMHO jezeli silnik 4-suwowy to 1 iskra na 2 obroty walu ... No chyba, ze cewka daje napiecie na swiece w kazdym obrocie walu...

11059200 / 24? Hmmm zawsze myslalem, ze cykl rozkazowy trwa 12 taktow zegara a nie 24. No ale skoro tak masz w dokumentacji...

Sam pomiar to w sumie zalezy od czasu odswiezania - czyli jak czesto chcesz odswizac wynik. Mozna albo liczyc ilosc impulsow w czasie - ale tu zeby wynik byl w miare dokladny mui tych impulsow troche nalapac, a wiec odswiezanie moze byc slabe... Mozna tez liczyc czas jaki uplywa miedzy 2 kolejnymi iskrami ale tu trza dokladny wzorzec czasu i wysoka (w miare) czestotliwosc zegara procka (metoda lepsza do pomiaru niskich wartosci rpm).

Pozdrawiam, Bartek

Iskry idą jednocześnie na 2 cylindry więc jest impuls na obrót.

PC

ja zrobilem sobie obrotomierz tak że zliczał czas między opadającymi zboczami zewnetrznego przerwania i wystarczy do tego jeden licznik z przerwaniem.

1.zbocze opadające 2.start licznika co np 100us i zliczanie programowe przerwan od T0.
  1. kolejne zbocze opadające i stop zliczania od T0
  2. przeliczenie i wywalenie na wyświetlacz.
  3. go to 1.

Pozdrawiam Janusz Brela

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required