AVT5271 - VAGloger Przyrząd diagnostyczny dla samochodów z grupy VW-AUDI.pdf
(
521 KB
)
Pobierz
untitled
PROJEKTY
AVT
5271
VAGlogger
Przyrząd diagnostyczny dla
samochodów z grupy VW-Audi
Dodatkowe materiały
na CD i FTP
Diagnostyka współczesnych systemów sterowania silnikami
spalinowymi wymaga nie tylko odpowiedniej wiedzy, ale
i odpowiednich narzędzi diagnostycznych. Większość czynności
diagnostycznych można wykonać tylko przy użyciu dedykowanego
dla danego modelu samochodu testera.
Rekomendacje:
przyrząd może przydać się każdemu, kto lubi
troszkę „pogrzebać” w silniku samochodu.
AVT-5271 w ofercie AVT:
AVT-5271A – płytka drukowana
Podstawowe informacje:
• Przyrząd diagnostyczny dla samochodów
z grupy VW
• Przetestowano działanie z następującymi
modelami samochodów:
- Audi A4 1.9TDI z 1996 roku
- Skoda Octavia 1.8T z 2005 roku
- Skoda Octavia 1.9TDI z 2000 roku
- Audi A3 1.6 z 2002 roku
- VW Polo 1.2 z 2003 roku
• Płytka dwustronna o o wymiarach
60×41 mm
Dla aut grupy Volkswagen-Audi (produ-
centa takich marek jak Volkswagen, Skoda,
Seat oraz Audi) powstało kilka programów
umożliwiających diagnostykę z użyciem
prostego interfejsu podłączonego do portu
szeregowego lub USB. Jednym z bardziej
znanych jest VagCom. Umożliwia on odczyt
i kasowanie błędów nie tylko ze sterownika
silnika, ale także z innych podzespołów sa-
mochodu (ABS, poduszki powietrzne itp.).
Jest możliwy odczyt grup pomiarowych,
a także adaptacje i kodowanie sterowników.
Jedną z bardziej przydatnych funkcji jest
zapis do pliku, bloków pomiarowych zbie-
ranych podczas testowego przejazdu samo-
chodu. Późniejsza analiza takiego zbioru da-
nych pomaga zdiagnozować niesprawność
danego podzespołu silnika szczególnie,
jeżeli problem występuje sporadycznie lub
na przykład tylko przy dużym obciążeniu
silnika. Powstały plik tekstowy zawiera gru-
py danych rozdzielone średnikami – format
odczytywany przez większość popularnych
arkuszy kalkulacyjnych, co można wykorzy-
stać do utworzenia wykresu danej wartości
w funkcji czasu.
Z racji bezpieczeństwa rejestracja da-
nych podczas jazdy wymaga obsługi kom-
putera przenośnego przez drugą osobę.
W wielu przypadkach jest to kłopotliwe, dla-
tego postanowiłem opracować samodzielne
urządzenie, które zapisywałoby odczytane
ze sterownika silnika dane na karcie SD. Po-
łożyłem nacisk na intuicyjną, zredukowaną
do absolutnego minimum, obsługę, która nie
rozprasza uwagi kierowcy pojazdu. Wybór
kon
fi
guracji logowania, rozpoczęcie oraz za-
trzymanie pracy jest kontrolowane przy uży-
ciu jednego przycisku. Stan urządzenia jest
sygnalizowany dwukolorową diodą świecącą
oraz akustycznie.
Opracowany tester komunikuje się ze
sterownikiem silnika (ECU) przy użyciu
protokołu KW1281. Z tego też powodu dia-
gnostyka jest ograniczona do aut grupy
Volkswagen-Audi, które miały swoją pre-
mierę rynkową do roku 2003. Po tym czasie
producent wycofał się z diagnostyki silnika
Dodatkowe materiały na CD i FTP:
ftp://ep.com.pl
, user:
10142
, pass:
5x7bu87r
• wzory płytek PCB
•karty katalogowe i noty aplikacyjne
elementów oznaczonych w
wykazie
elementów
kolorem czerwonym
(a także innych podzespołów) po asynchro-
nicznej linii szeregowej K, a jej miejsce zajęła
komunikacja z użyciem magistrali CAN. Na-
leży także wspomnieć, iż można się spotkać
z samochodami grupy Volkswagen-Audi,
które mimo diagnostyki za pomocą linii K,
wykorzystują protokół inny niż KW1281 lub
też odpowiedzi są niezgodne z oczekiwany-
mi (przykładem jest Skoda Felicia 1.3MPI
z 1997 roku).
Budowa
Sercem urządzenia jest mikrokontroler
z rodziny Cortex-M3 STM32F103CB, który
jest dostępny w obudowie PQFP48. Mikro-
kontroler ma 128 kB pamięci programu oraz
28
ELEKTRONIKA PRAKTYCZNA 1/2011
Przyrząd diagnostyczny dla samochodów z grupy VW-Audi
Wykaz elementów
Rezystory:
R1: 510 V
R2: 12 kV
R3: 22 kV
R4, R5: 270 V
R6: 470 V
R7: 33 kV
R8: 33 kV
R9: 1 MV
R10: 470 V
Kondensatory:
C1: 47 mF/25 V
C2: 100 nF (1206)
C3: 1 mF/10 V
C4: 4,7 mF/10 V
C5: 100 nF
C6: 100 nF
C7: 22 pF
C8: 22 pF
C9: 10 pF
C10: 10 pF
C11: 100 nF
Półprzewodniki:
D1: S1M lub inna prostownicza SMD
D2: LL4148 (MINIMELF)
D3: dioda LED dwukolorowa, 5 mm,
wspólna katoda
T1: BC847B
T2: BC857B
IC1: STM32F103CB
IC2: L9637D
IC3: 78M05
IC4: TPS76333
Inne:
Q1: rezonator kwarcowy 8MHz
Q2: rezonator kwarcowy 32.768kHz
BUZ1: buzzer z generatorem na napięcie 5 V
BAT1: bateria CR2032 z wyprowadzeniami
do montażu poziomego
Przycisk zwierny
Wtyk OBD2 duży
Gniazdo karty SD bez wyrzutnika
pamiętać, że wyłączenie stacyjki w samocho-
dzie nie odcina zasilania na pinie 16 złącza
diagnostycznego i urządzenie należy każdora-
zowo odłączać po skończonej pracy.
wa 3V używane są przez zegar czasu rzeczy-
wistego.
Komunikacja z ECU jest prowadzona po-
przez port UART2 mikrokontrolera. Jako kon-
werter napięć zastosowałem łatwo dostępny
i niedrogi układ L9637D. Wymaga zasilania
dwoma napięciami: 12 V (pobierane ze złącza
diagnostycznego samochodu) oraz 5 V. Ponie-
waż L9637D, w przeciwieństwie do mikrokon-
trolera, pracuje z tylko z poziomami napięć 5 V,
należało obniżyć poziom na linii RXD UART2
dzielnikiem rezystancyjnym. Z kolei sterowa-
nie nadawaniem poziomem 3,3 V z mikrokon-
trolera jest wystarczające dla L9637D.
Napięcie 5 V do zasilania L9637D, buzze-
ra oraz stabilizatora LDO 3,3 V (napięcie zasi-
lania mikrokontrolera oraz karty SD) jest wy-
twarzanie typowym stabilizatorem liniowym
78M05. Niewielki pobór prądu nie powoduje
dużych strat na tym stabilizatorze i nie zaob-
serwowałem nadmiernego nagrzewania się
układu nawet podczas dłuższej pracy. Należy
Oprogramowanie
Oprogramowanie zostało napisane w ję-
zyku C i skompilowane kompilatorem GCC.
Wykorzystałem bezpłatne biblioteki do
obsługi peryferiów dostarczone przez ST-
Microelectronics w wersji 2.0.3
[2]
. System
plików FatFS jest autorstwa osoby podpisu-
jącej się pseudonim ChaN i również jest do-
stępny bezpłatnie
[1]
.
Rysunek 1. Schemat ideowy przyrządu
Komunikacja ze sterownikiem
samochodu
Komunikacja ze sterownikiem silnika
jest dokonywana przy użyciu dwukierunko-
wej jednoprzewodowej magistrali K. Dane są
przesyłane asynchronicznie (tak jak w przy-
padku RS232) z jednym bitem startu, ośmio-
ma bitami danych i jednym bitem stopu.
Prędkość transmisji wynosi, w przypadku
aut, w których wyższą warstwą jest protokół
KW1281, 9600 lub 10400 bodów. Wyjątkiem
jest sekwencja inicjalizacji połączenia.
20 kB pamięci RAM. Taktowany jest rezona-
torem kwarcowym 8 MHz, którego częstotli-
wość jest wewnętrznie powielana z użyciem
PLL. Rezonator 32,768 kHz oraz bateria lito-
ELEKTRONIKA PRAKTYCZNA 1/2011
29
PROJEKTY
Komunikacja testera ze sterownikiem pole-
ga na wymianie komunikatów o długości od 4
do 256 bajtów.
Pojedynczy komunikat składa się z nastę-
pujących pól:
- długość komunikatu, nie uwzględnia
znacznika końca komunikatu (1 bajt)
- kolejny numer komunikatu, inkremento-
wany każdorazowo o 1 (1 bajt)
- typ komunikatu (1 bajt)
- blok danych, może być pusty (maksymalna
długość tego pola to 252 bajty)
- znacznik końca komunikatu, ma zawsze
wartość 0x03 (1 bajt)
Kolejne bajty komunikatu (z wyjątkiem
znacznika końca) muszą być każdorazowo po-
twierdzane przez druga stronę poprzez przez
odesłanie zanegowanej wartości odebranego
bajta.
Zaimplementowałem obsługę następują-
cych typów komunikatów:
- potwierdzający (ACK, 0x09)
- żądanie odczytu grupy pomiarowej (GRO-
UP_REQUEST, 0x29)
- odpowiedz z zawartością grupy pomiaro-
wej (GROUP_RESPONSE, 0xE7)
- koniec sesji (END_OF_SESSION, 0x06)
- dane ASCII (ASCII_BLOCK, 0xF6)
Inicjalizacja połączenia następuje poprzez
wysłanie przez tester adresu sterownika, z któ-
rym ma nastąpić komunikacja. W przypadku
silnika jest to adres 01h. Wysłanie sekwencji
inicjalizacyjnej następuje z prędkością 5 bodów
(czas trwania pojedynczego bitu to 200 ms).
Zaadresowany sterownik, z właściwą sobie
prędkością transmisji, odpowiada wysłaniem
trzech bajtów: 55h (bajt synchronizacji) oraz
dwubajtowego słowo kodowe oznaczającego
numer protokołu (w przypadku KW1281 są
to kolejno bajty o wartościach 01h oraz 8Ah).
Mierząc czas trwania słowa synchronizującego
(naprzemienna sekwencja zer i jedynek) moż-
na określić zastosowaną przez sterownik pręd-
kość transmisji i odpowiednio zaprogramować
UART mikrokontrolera w celu poprawnego
odebrania kolejnych dwóch bajtów.
Jako potwierdzenie tester odsyła zane-
gowaną wartość ostatniego odebranego bajta
(w przypadku protokołu KW1281 będzie to
75h).
Po inicjalizacji sterownik (w tym przypad-
ku sterownik silnika) przesyła pierwszy komu-
nikat. Zwykle pierwsze kilka komunikatów za-
wiera dane tekstowe ASCII (numer części, mo-
del sterownika itp.). Tester potwierdza kolejne
komunikaty odebrane od sterownika wysyłając
ramki typu ACK o długości 4 bajtów (z pustym
polem danych).
Kiedy ECU wyśle wszystkie bloki ASCII
nastąpi wzajemna wymiana komunikatów
ACK (służy to podtrzymaniu połączenia). Po
odebraniu kolejnych 8 komunikatów ACK te-
ster wysyła pierwsze zapytanie o grupę pomia-
rową (nie jest to wymóg protokołu a tylko moje
założenie). Komunikat tego typu ma długość 5
bajtów a jego pole danych zawiera numer żąda-
nej grupy (od 0 do 255). Odpowiedzią ze strony
sterownika jest komunikat typu
GROUP_RE-
SPONSE
z polem danych o długości 12 bajtów
(w przypadku grupy zerowej jest to 8 bajtów).
Każda grupa pomiarowa zawiera cztery
wartości (po trzy bajty na każdą). Pierwszy bajt
takiej podgrupy zawiera rodzaj (typ) wartości
i mówi o tym, jakiej procedury należy użyć, aby
przeliczyć dwa kolejne bajty na wartość rze-
czywistą. Wzory do przeliczania odebranych
wartości są dostępne na stronie
[3]
. Powyższe
nie dotyczy grupy o numerze 0, grupa ta zawie-
ra osiem wartości, po jednym bajcie na każdą
wartość.
Jednocześnie można wysłać zapytanie tyl-
ko o jedną grupę pomiarową. VAGlogger po-
zwala na logowanie maksymalnie trzech grup
a zapytania o kolejne numery są dokonywane
sekwencyjnie.
Zakończenia komunikacji ze sterowni-
kiem, tester może dokonać wysyłając ramkę
typu END_OF_SESSION. W programie VA-
Gloggera przyjąłem, że nieotrzymanie odpo-
wiedzi od sterownika w ciągu 500 milisekund
jest traktowane jako zerwanie połączenia.
Montaż i programowanie
mikrokontrolera
VAGlogger wykonano na dwustronnej
płytce o wymiarach 60×41 mm. Przelotki zo-
stały umieszczone poza obrysem elementów,
dzięki czemu można ją wykonać w warunkach
domowych (bez metalizacji otworów). Płytka
została wykonana metodą fotochemiczna na
gotowym laminacie
fi
rmy Bungard o grubości
0,8 mm i naświetlanym lampą UV do opalania
twarzy. Laminat jest wywoływany identycznie
jak laminat pokryty lakierem światłoczułym
Positiv 20, czyli w roztworze wodorotlenku
sodu. Płytka została wytrawiona w roztworze
B327. Po wytrawieniu ścieżek, płytkę należy
je zabezpieczyć przed utlenianiem – osobiście
używam sprayu Flux
fi
rmy Contact Chemie.
Przed zamontowaniem elementów war-
to odznaczyć w obudowie wtyku otwory pod
śruby mocujące. Jeśli płytka nie ma metaliza-
cji otworów, to montaż należy rozpocząć od
przelotek. Można je wykonać np. ze srebrzo-
nego drutu o średnicy 0,2...0,3 mm. Wygięty
w kształt litery U drut przekładamy przez dwa
sąsiadujące ze sobą otwory. Sprężystość drutu
zapewnia pewne osadzenie przelotek przed lu-
towaniem i nie ma ryzyka ich wypadnięcia na-
wet po obróceniu płytki. Część przelotek znaj-
duję się blisko innych punktów lutowniczych,
dlatego warto je skrócić dopiero po przyluto-
waniu reszty elementów. Mikrokontroler ma
raster wyprowadzeń 0,5 mm a jego montaż
wykonałem przy użyciu lutownicy kolbowej
z cienkim grotem. Jako ostatnie należy zamon-
tować elementy przewlekane (buzzer, bateria
litowa). Dioda świecąca jest montowana na
skróconych wyprowadzeniach bezpośrednio
do PCB, przycisk na krótkich przewodach.
Rysunek 2. Schemat montażowy
przyrządu
Jako złącza CON1 (podłączenie złącza diagno-
stycznego samochodu) oraz CON2 (UART1
mikrokontrolera, używane tylko do jego zapro-
gramowania) należy zastosować kątowe listwy
kołkowe. Proszę zwrócić uwagę, że niektóre
wyprowadzenia muszą zostać przylutowane
po obu stronach płytki (najpierw od spodu
PCB a później po delikatnym podważeniu pla-
stikowej części listwy u góry). Złącza CON3
nie trzeba montować – jest to złącze debuggera
SWD. Po montażu należy optycznie sprawdzić
płytkę pod kątem wystąpienia zwarć.
Kolejnym etapem jest zaprogramowanie
mikrokontrolera. Przed podłączeniem zasila-
nia należy wykonać zworę między rezystorem
R8 (wyprowadzenie BOOT0 mikrokontrolera)
a +3,3 V – na płytce jest to zwora oznaczona
SJ1-H, w celu wymuszenia na mikrokontrole-
rze startu w trybie bootloadera. Układ należy
zasilić podłączając napięcie 12V między piny
1 i 3 złącza CON1. Poprzez konwerter 3.3V/
RS232 podłączyć płytkę VAGloggera (złącze
CON2) do portu szeregowego komputera PC.
Jako konwerter można użyć typowej aplikacji
układu MAX3232 z kondensatorami 100 nF.
Plik hex z kodem programu należy załado-
wać do mikrokontrolera używając programu
Flash Download Demonstrator dostępnego
na stronie ST-Microelectronics
[2]
. Domyślne
ustawienia portu szeregowego sugerowane
przez aplikację są właściwe.
30
ELEKTRONIKA PRAKTYCZNA 1/2011
Przyrząd diagnostyczny dla samochodów z grupy VW-Audi
Jeżeli programowanie powiodło się, odłą-
czyć zasilanie od układu, usunąć zworę SJ1
z pozycji H i zamontować ją w pozycji L (wy-
prowadzenie BOOT0 mikrokontrolera musi zo-
stać podłączone poprzez rezystor R8 do masy).
W tym ustawieniu mikrokontroler po resecie
będzie wykonywać kod z pamięci FLASH.
Płytka drukowana jest zamontowana
w obudowie wtyku OBD2 przy pomocy trzech
śrub M2.5 z łbem stożkowym i o długości
15mm. Każda ze śrub jest przymocowana do
obudowy przykręconą z drugiej strony nakręt-
ką. Kolejne dwie nakrętki mocują płytkę na
odpowiedniej wysokości (równej wysokości
połówki obudowy wtyku).
Przed ostatecznym zamontowaniem płytki
w obudowie należy odznaczyć miejsca, w któ-
rych pilnikiem zostaną wykonane otwory na
kartę SD, diodę świecącą oraz przycisk.
19:59:00
14.09.10
Kartę należy włożyć do urządzenia przed
włączeniem zasilania, ponieważ jej inicjaliza-
cja oraz odczyt plików kon
fi
guracyjnych nastę-
puje tylko jednorazowo po resecie urządzenia.
Dla bezpieczeństwa elektroniki w samo-
chodzie, układ należy podłączać przy wyłą-
czonym zapłonie. Po uruchomieniu silnika na-
leży wybrać długimi naciśnięciami przycisku
aktywną kon
fi
gurację. Domyślnie urządzenie
startuje w kon
fi
guracji pierwszej (sygnalizo-
wane ciągłym świeceniem się zielonej diody,
w tym przypadku logowane są grupy podane
w pierwszej linii pliku
con
fi
g.txt
). Kolejne nu-
mery kon
fi
guracji są sygnalizowane odpowied-
nio zapaleniem się diody na k
olor czerwony
lub pomarańczowy. Jednocześnie numer kon
fi
-
guracji jest sygnalizowany odpowiednią liczbą
krótkich sygnałów.
Krótkie naciśniecie przycisku rozpoczy-
na proces łączenia się ze sterownikiem silni-
ka. Jest on sygnalizowany szybkim miganiem
zielonej diody LED oraz pojedynczym długim
sygnałem dźwiękowym. Po prawidłowym na-
wiązaniu połączenia kolor diody zmienia się
na kolor wybranej kon
fi
guracji, tempo pulso-
wania diody zmniejsza się a użytkownik jest
informowany akustyczne o numerze wybranej
kon
fi
guracji (odpowiednią liczbą krótkich sy-
gnałów dźwiękowych). Rozpoczyna się pro-
ces odpytywania sterownika silnika o kolejne
grupy pomiarowe i zapisywanie ich do pliku.
Pojedyncze naciśniecie przycisku powoduje
rozłączenie ze sterownikiem i zamknięcie bie-
żącego pliku.
Brak odpowiedzi od sterownika, niewła-
ściwy numer protokołu lub zerwanie komuni-
kacji w trakcie logowania jest sygnalizowane
szybkim pulsowaniem diody czerwonej diody
LED oraz dwoma długimi sygnałami dźwięko-
wymi. Po dwóch sekundach układ wraca do
trybu wyboru kon
fi
guracji.
Dowolny błąd związany z systemem pli-
ków zarówno podczas inicjalizacji urządzenia
jak i podczas procesu logowania, taki jak: brak
karty, brak pliku kon
fi
guracyjnego lub jego
błędny format, błąd zapisu pliku np. z powodu
przepełnienia karty, błąd komunikacji z kartą,
jest sygnalizowany trzema długimi sygnałami
dźwiękowymi oraz pulsowaniem diody na
kolor pomarańczowy. Długie przytrzymanie
przycisku powoduje reset urządzenia.
W konstrukcji loggera użyłem zwykłego
gniazda SD bez wyrzutnika. Wstrząsy obecne
w aucie mogą spowodować poluzowanie się
karty w gnieździe i konsekwencji tego błąd
opisany powyżej. Prostym rozwiązaniem jest
założenie gumki recepturki. Lepszym rozwią-
zaniem byłoby użycie gniazda SD typu push-
pull. Niestety ich wadą są dużo większe wy-
miary.
Pliki tworzone przez VAGloggera mają
trzycyfrową nazwę oraz rozszerzenie
CSV
(po-
czynając od
001.CSV
). Po uruchomieniu urzą-
dzenia katalog główny karty jest każdorazowo
odczytywany w celu stwierdzenia numeru
ostatniego zapisanego pliku – kolejny zapisy-
wany plik będzie miał numer o jeden większy
od największego znalezionego.
Obsługa urządzenia
Do prawidłowej pracy VAGlogger potrze-
buje pliku kon
fi
guracyjnego. Należy przygo-
tować kartę SD z systemem plików FAT16 lub
FAT32. W katalogu głównym utworzyć plik
kon
fi
guracyjny o nazwie
con
fi
g.txt
. Kolejne li-
nie pliku to ustawienia dla kolejnych kon
fi
gu-
racji. Pojedyncza kon
fi
guracja może zawierać
od jednej do trzech numerów grup (rozdzielo-
ne średnikami).
Przykładowa zawartość pliku
con
fi
g.txt
:
1;2;5
115;118
32;33
VAGlogger ma zegar czasu rzeczywistego
podtrzymywany bateria litową. Czas oraz data
są ustawiane na podstawie zawartości pliku
settime.txt
umieszczonego podobnie jak
con-
fi
g.txt
w katalogu głównym karty. Prawidłowo
odczytany plik jest kasowany następnie z sys-
temu plików.
Format pliku
settime.txt
jest następujący:
gg:mm.ss
dd.mm.rr
Plik z poniższą zawartością spowoduje
ustawienie godziny 19:59:00 oraz daty na 14
września 2010 roku:
Podsumowanie
VAGlogger powstał z myślą o samocho-
dach zbudowanych na bazie Golfa 4 (Seat
Leon, Audi A3, Skoda Octavia). Protokół
KW1281 występował także w innych pojaz-
dach z tych lat, wobec czego jego funkcjonal-
ność nie jest ograniczona tylko do tej rodziny.
Działanie urządzenia zostało przetestowa-
ne na następujących pojazdach:
- Audi A4 1.9TDI z 1996 roku
- Skoda Octavia 1.8T z 2005 roku
- Skoda Octavia 1.9TDI z 2000 roku
- Audi A3 1.6 z 2002 roku
- VW Polo 1.2 z 2003 roku
Jacek Greniger
jacek.greniger@gmail.com
Linki:
[1]
http://elm-chan.org/fsw/ff/00index_e.html
[2]
http://www.st.com/mcu/devicedocs-
STM32F103CB-110.html
[3]
http://www.blafusel.de/obd/obd2_kw1281.
html
R
E
K
L
A
M
A
ELEKTRONIKA PRAKTYCZNA 1/2011
31
Plik z chomika:
gselectro.eu
Inne pliki z tego folderu:
AVT1026 - Elektroniczna klepsydra.pdf
(458 KB)
AVT1022 - Migająca lampa dużej mocy.pdf
(238 KB)
AVT1016 - Tester tranzystorów bipolarnych.pdf
(207 KB)
AVT1025 - Prosty podwajacz napięcia.pdf
(199 KB)
AVT1015 - Przystawka do miernika uniwersalnego.pdf
(214 KB)
Inne foldery tego chomika:
_AUDI A6 C5
--==2022==--
--==A6==-- _AUDI A6 C5
--==BEST==--Instalacje elektryczne
--==diagnostyka==--
Zgłoś jeśli
naruszono regulamin