niedziela, 7 czerwca 2009

Diagnostyka samochodowa

Od dłuższego czasu oprócz możliwości programowania w komórkach interesuję się też tym jakie możliwości programistyczne są w samochodach. Na razie jeszcze nie ma wersji Symbiana, która by zarządzała informacjami z układów w samochodach. Jedyne to co mogę zrobić to dokonywać diagnostykę w samochodach. Tutaj trzeba wiedzieć gdzie jest port OBD2, podłączyć kabel diagnostyczny i rozpocząć komunikację z układami kierowniczymi w samochodzie.

Najciekawszą rzeczą jest to że obok standardowego zestawu danych każdy producent samochodu może zawierać dodatkowe kody diagnostyczne i trzeba tylko wiedzieć jak można wysyłać dodatkowe polecenia. Na razie według mnie najlepszą bazą kodów diagnostycznych dysponuje program VAG-COM firmy Ross-Tech. Cała rzecz opiera się na tym żeby skorzystać z tego programu trzeba zakupić sprzęt czyli kabel diagnostyczny, który w wersji dla profesjonalistów kosztuje 899 dolarów. Tak naprawdę największą wartością jest baza 12000 kodów diagnostycznych. Pomimo, że w internecie jest już baza 7597 kodów. Ten program jest rozwijany już klika lat. Ale okazuje się, że coraz ważniejsze staje się na bieżąco dokonywanie auto diagnostyki samochodu w którym się jeździ. Z prostego powodu im więcej elektroniki i czujników tym większe prawdopodobieństwo awarii. Warto na bieżąco wiedzieć co się dzieje z elektroniką w samochodzie, a nie tylko w momencie awarii. Skoro istotne jest dokonywania diagnozy swojego samochodu to warto zaobserwować na rynku wysyp różnych urządzeń diagnostycznych skanerów OBD2 opartych na komunikacji z Bluetoothem gdzie odpowiednie oprogramowanie w komórce odbiera, komunikuje się z tym skanerem. Przykładem takiego urządzenia Elmscan 5 Wireless Bluetooth, jednakże kupowanie takich urządzeń ma sens jak mamy pewność, że te dane które otrzymamy wystarczą nam. Często jest tak, że wymieniamy części na nowsze i wtedy może okazać się że trzeba kupić nowy skaner z nową bazą kodów. W tej sytuacji można skonstruować własny skaner OBD2. Podzespoły do elektroniki są w miarę tanie. To co trzeba zrobić to zaprojektować układ który będzie pełnił tą rolę i oczywiście zaprogramować. Obecnie na rynku są dostępne mikroprocesory takie jak AVR czy 8058 dodatkowo wystarczy kupić układ Rayson BT, zrobić płytkę z wyjściem do komunikacji z portem OBD2. To co trzeba zaprogramować w AVR Studio kod który będzie kierował komunikacją z portem i jak z BT. Otóż komunikacja może obywać się na różnych protokołach. W diagnostyce samochodowej takimi protokołami są KWP-2000, KWP-6000 (CAN), KWP-7000(UDS). Znajomość budowy tych protokołów wystarczy do zaprogramowania mikroprocesora. Warto poczytać o tym z niemieckojęzycznej strony. Są też kody źródłowe do mikroprocesorów z których można by zanalizować pod kątem tego jak programuje się protokoły komunikacji Obdchip, Micronics czy Stern Technologies. Zrobienie takiego zestawu pozwoli na samodzielne badanie nowych kodów, z tego powodu że będzie można tworzyć własną bazę kodów diagnostycznych.

Jednak jest już dostępny układ scalony elm 327, który można sobie przystosować do zaprogramowania protokołów komunikacyjnych OBD2 na poziomie poleceń AT (w praktyce można poszukać sobie już gotowego rozwiązania z układem BT).

Od marca 2009 roku jest rozwijany opensourcowy projekt SymBtELM przez Owena Brotherwooda, Jest to skrypt napisany w Pythonie na Symbiana. Dzięki temu układowi elm 327 i modułowi BT można by nawiązać komunikację z komórką.

Podobny projekt rozwijają też Brazylijczycy tworząc aplikację do tego samego celu w Pythonie dla Symbiana i interfejs użytkownika w WebRuntime (WRT).

Byłem zainteresowany napisaniem takiego programu do komunikacji z komórkami, ale brak obeznania w programowaniu w elektronice i fakt, że do elektroniki trzeba mieć dobre wyczucie w precyzji. Trzeba wiedzieć jak zaprojektować płytkę, jak wygląda lutowanie, a potem używanie programatora, co to są fusebity. Do dobrego pomiaru danych w transmisji w celu sprawdzania działania komunikacji w danym protokole dobrze przydałby się oscyloskop. To wszystko jest interesujące, ale biorąc pod uwagę swoją niepełnosprawność to raczej zajmowanie się tym wszystkim w pojedynkę przekracza moje możliwości.