Pomiar poziomu i temperatury oleju – cz. 1

Dziś przyszedł czas na przyjrzenie się jednemu z pierwszych czujników, który będziemy obsługiwać bezpośrednio przez nasze urządzenie, a nie jedynie odczytywać wartość pomiaru przez CAN lub diagnostykę. Mowa oczywiście o tytułowym czujniku poziomu i temperatury – G266, który zamontowany został bezpośrednio w misce olejowej. Wiele wersji silnikowych posiadało go fabrycznie, jednak nic nie stoi na przeszkodzie aby w przypadku jego braku znaleźć odpowiednią miskę olejową, wyposażoną w mocowanie czujnika.

Od strony elektrycznej, czujnik zasilany jest bezpośrednio napięciem +12V po zapłonie. Generowany przezeń sygnał pomiarowy trafia bezpośrednio do zestawu wskaźników. Temperatura oleju jest dostępna w jednym z bloków pomiarowych licznika.

Jaki jest więc sens odczytu czujnika przez nasze urządzenie?

Otóż generowany przez czujnik sygnał niesie w istocie dwie informacje: temperaturę oraz poziom oleju. O ile pierwszy pomiar jest dostępny, to drugi już niestety nie. Ściślej – można jedynie odczytać status OK/NOT OK. Czy nie fajnie by było móc zobaczyć dokładny poziom oleju w milimetrach? 🙂 Pewnie!

Przyjrzyjmy się jak wygląda przebieg cyfrowego sygnału z czujnika. Sekwencja rozpoczyna się od opadającego zbocza, które synchronizuje transmisję. Następnie mamy stan niski, trwający dokładnie 20ms (Tsync). Kolejne, rosnące zbocze rozpoczyna czas Ta, który reprezentuje temperaturę oleju. Następny cykl, w stanie niskim trwa również Ta. Ostatnia część przebiegu, po narastającym zboczu, trwająca Tb odpowiada pomiarowy poziomu oleju w milimetrach.

Jak pamiętamy z jednego z naszych poprzednich artykułów,na stanowisku testowym mamy możliwość emulowania czujnika za pomocą płytki ArduinoMini.

No dobrze, ale jak odczytać taki sygnał? Jak zmierzyć czasy, itd?

Nie jest to trywialny problem – na pewno na wstępie odrzucamy wszelkie metody odczytu “w pętli”, czekania na zbocze, itd.

Dlaczego?

Jakiekolwiek próby czysto softwareowego odczytu, w systemie, w którym w ciągu 20 milisekund może wypalić kilka-kilkanaście przerwań, są z góry skazane na porażkę. Ogromny jitter pomiaru skutecznie utrudni synchronizację do pierwszego zbocza i będzie znacząco wpływał na dokładność pomiaru. Blokowanie przerwań na tak długi czas też nie jest pożądane. Musimy więc skorzystać z rozwiązań bardziej hardwareo’wych. Ale o tym więcej napiszę jutro. Zapraszam!

Posted in Sto dni w kolorze.