Notatka. Standard VPW spełniają modele GM, standard PWM Ford, a standard ISO 9141-2 modele azjatyckie i europejskie.
Wszystkie informacje
Urządzenie, o którym mowa, to mikrokontroler wykonany w technologii CMOS (CMOS).
Uwaga! Kontroler NIE jest przeznaczony do podłączania do systemów autodiagnostyki pokładowej pierwszej generacji (OBD I)!
Urządzenie pełni funkcję prostego skanera i przeznaczone jest do odczytu kodów diagnostycznych oraz danych z systemu OBD II (prędkość obrotowa silnika, temperatura płynu chłodzącego i powietrza dolotowego, charakterystyka obciążenia, przepływ powietrza do silnika itp.) w zakresie normy SAE J1979 przez dowolny typ magistrali (PWM, VPW i ISO 9141-2).
Główny cel
Aby połączyć się z komputerem (RS) wystarczy przewód 3-żyłowy, podłączenie do gniazda diagnostycznego wykonuje się przewodem 6-żyłowym. Zasilanie sterownika odbywa się poprzez 16-pinowe złącze diagnostyczne OBD.
Schemat ideowy sterownika interfejsu PC z systemem OBD II
Zalecenia dotyczące użytkowania
Do podłączenia urządzenia do samochodu można użyć kabla nieekranowanego o długości nie większej niż 1,2 m, co ma szczególne znaczenie w przypadku korzystania z protokołu PWM. W przypadku używania dłuższego kabla należy zmniejszyć rezystancję rezystorów na wejściu urządzenia (R8 i R9 lub R15). Podczas korzystania z kabla ekranowanego ekran powinien być wyłączony, aby zmniejszyć pojemność.
Kabel do podłączenia do portu szeregowego komputera może być również nieekranowany. Urządzenie pracuje stabilnie z kablem o długości do 9 m. Przy znacznie dłuższych kablach należy zastosować mocniejszy komunikator RS 232.
Topologia połączeń elektrycznych jest dowolna. W przypadku wysokiej wilgotności należy użyć dodatkowych kondensatorów bocznikowych.
Darmowe oprogramowanie (przeglądarka) do odczytu kodów i danych jest przeznaczony do użytku w systemie DOS. Niewielki rozmiar aplikacji w wariancie «pod DOSem» pozwala zmieścić go na dyskietce rozruchowej DOS i używać go nawet na komputerach wyposażonych w oprogramowanie niezgodne z DOS. Opcjonalnym warunkiem jest nawet obecność dysku twardego w komputerze.
Ogólne zasady wymiany danych
Notatka. O ile nie zaznaczono inaczej, wszystkie liczby są w formacie szesnastkowym (hex), format dziesiętny jest wskazywany przez etykietę dec.
Wymiana danych odbywa się trójprzewodowym łączem szeregowym, bez stosowania wymiany inicjalizacyjnej komunikatów serwisowych (handshaking). Urządzenie nasłuchuje kanału w poszukiwaniu wiadomości, wykonuje otrzymane polecenia i przesyła wyniki do komputera osobistego (PC), po czym natychmiast powraca do trybu słuchania. Dane wchodzące i wychodzące ze sterownika zorganizowane są w łańcuch kolejnych bajtów, z których pierwszy jest bajtem kontrolnym. Zazwyczaj bajt kontrolny jest liczbą od 0 do 15 dec (lub szesnastkowy 0-F), który opisuje liczbę kolejnych bajtów informacji. Na przykład polecenie 3-bajtowe wyglądałoby tak: 03 (bajt kontrolny), 1. bajt, 2. bajt, 3. bajt. Podobny format jest używany zarówno w przypadku poleceń przychodzących w celu sprawdzenia pokładowego systemu autodiagnostyki, jak i komunikatów wychodzących zawierających żądane informacje. Należy zauważyć, że w bajcie kontrolnym wykorzystywane są tylko cztery niskie bity - wysokie bity są zarezerwowane dla niektórych specjalnych poleceń i mogą być wykorzystane przez komputer PC podczas inicjowania połączenia ze sterownikiem i negocjowania protokołu transmisji danych, a także kontroler do kontroli błędów transmisji. W szczególności w przypadku błędu transmisji sterownik ustawia najbardziej znaczący bit (MSB) bajt kontrolny na jednostkę. Po udanej transmisji wszystkie cztery bity wyższego rzędu są ustawiane na zero.
Notatka. Istnieją indywidualne wyjątki od zasad korzystania z bajtu kontrolnego.
Inicjalizacja sterownika i systemu autodiagnostyki pokładowej
Aby rozpocząć wymianę danych, komputer PC musi nawiązać połączenie ze sterownikiem, następnie zainicjować sterownik oraz kanał danych OBD II.
Nawiązywanie połączenia
Po podłączeniu sterownika do komputera i złącza diagnostycznego OBD należy go zainicjować, aby zapobiec «zamarza», związane z zakłóceniami na liniach szeregowych, jeśli zostały one podłączone przed włączeniem zasilania kontrolera. Jednocześnie przeprowadzana jest prosta kontrola aktywności interfejsu. Sygnał jednobajtowy 20 jest wysyłany jako pierwszy (hex), odbierane przez kontroler jako polecenie nawiązania połączenia. W odpowiedzi kontroler zamiast sterowania wysyła jednobajtowy szesnastkowy FF (255 dec) i przechodzi w tryb oczekiwania na odbiór danych. Komputer może teraz przystąpić do inicjalizacji łącza danych.
Notatka. Ten przypadek jest jednym z nielicznych, kiedy kontroler nie używa bajtu kontrolnego.
Inicjalizacja
Na tym etapie inicjowany jest protokół, według którego będą wymieniane dane, aw przypadku protokołu ISO inicjowany jest system pokładowy. Wymiana danych odbywa się za pomocą jednego z trzech protokołów: VPW (General Motors), PWM (Ford) oraz ISO 9141-02 (Producenci azjatyccy/europejscy).
Notatka. Istnieje wiele wyjątków: na przykład podczas odpytywania niektórych modeli samochodów Mazda można użyć protokołu PWM firmy Ford. Dlatego jeśli napotkasz problemy z transmisją, powinieneś najpierw spróbować użyć innego protokołu.
Wybór protokołu następuje poprzez wysłanie kombinacji składającej się z bajtu kontrolnego 41 (hex) i bezpośrednio po nim bajt określający typ protokołu: 0 = VPW, 1 = PWM, 2 = ISO 9141. Na przykład polecenie 41 (hex) 02 (hex) zostaje zainicjowany protokół ISO 9141.
W odpowiedzi sterownik wysyła bajt kontrolny i bajt stanu. Ustawienie MSB bajtu kontrolnego wskazuje na problem, a następujący po nim bajt stanu będzie zawierał odpowiednią informację. Po udanej inicjalizacji wysyłany jest bajt kontrolny 01 (hex), wskazując, że następuje bajt stanu weryfikacji. W przypadku protokołów VPW i PWM bajt weryfikacyjny jest prostym echem bajtu wyboru protokołu (odpowiednio 0 lub 1), podczas inicjalizacji protokołu ISO 9141 będzie to klucz cyfrowy zwrócony przez wbudowany procesor i określający, która z dwóch nieco różnych wersji protokołu zostanie użyta.
Notatka. Klucz cyfrowy ma cel czysto informacyjny.
Należy zaznaczyć, że inicjalizacja protokołów VPW i PWM jest znacznie szybsza, gdyż wymaga jedynie przekazania odpowiednich informacji do sterownika. W modelach spełniających normę ISO inicjalizacja trwa około 5 sekund, poświęconych na wymianę informacji między kontrolerem a wbudowanym procesorem, wytwarzanych z prędkością 5 bodów. Należy zwrócić uwagę czytelnika, że w niektórych pojazdach z rodziny ISO 9141 inicjalizacja protokołu zostaje zawieszona, jeśli żądanie danych nie zostanie wysłane w ciągu 5 sekund - oznacza to, że komputer powinien automatycznie wysyłać żądania co kilka sekund, nawet w trybie bezczynności..
Po nawiązaniu połączenia i zainicjowaniu protokołu rozpoczyna się regularna wymiana danych, na którą składają się żądania otrzymane z komputera PC oraz odpowiedzi wydawane przez kontroler.
Procedura wymiany danych
Działanie sterownika przy wykorzystaniu protokołów z rodziny ISO 9141-2 i SAE (VPW i PWM) występuje w kilku różnych scenariuszach.
Wymiana za pomocą protokołów SAE (VPW i PWM)
Podczas wymiany danych za pomocą tych protokołów buforowana jest tylko jedna ramka danych, co oznacza, że konieczne jest określenie ramki, która ma zostać przechwycona lub zwrócona. W niektórych (rzadki) przypadkach wbudowany procesor może przesyłać pakiety składające się z więcej niż jednej ramki. W takiej sytuacji żądanie musi być powtarzane aż do odebrania wszystkich ramek pakietu.
Wniosek zawsze tworzony w następujący sposób: [Bajt kontrolny], [Żądanie SAE], [Numer ramki]. Jak wspomniano powyżej, bajt kontrolny jest zwykle liczbą równą całkowitej liczbie bajtów, które po nim następują. Żądanie jest sporządzone zgodnie ze specyfikacjami SAE J1950 i J1979 i składa się z nagłówka (3 bajty), sekwencje bajtów informacji i bajt kontroli błędów (CRC). Należy zauważyć, że chociaż informacje na żądanie są tworzone w ścisłej zgodności ze specyfikacjami SAE, konsumentem bajtu kontrolnego i numeru ramki jest kontroler interfejsu.
Po pomyślnym zakończeniu procedury komunikat odpowiedzi ma zawsze następujący format: [Bajt kontrolny], [Standardowa odpowiedź SAE]. Bajt kontrolny, tak jak poprzednio, określa liczbę następujących po nim bajtów informacyjnych. Odpowiedź, zgodnie z wymogami normy SAE, składa się z nagłówka (3 bajty), ciągi bajtów informacji i bajt CRC.
O niepowodzeniu wysłane 2 bajty wiadomość zwrotna: [Sprawdź bajt], [Bajt stanu]. W tym przypadku MSB jest ustawiany w bajcie kontrolnym. Cztery najmniej znaczące bity tworzą liczbę 001, wskazującą, że po sterowaniu następuje pojedynczy bajt, bajt stanu. Taka sytuacja może wystąpić dość często, ponieważ Specyfikacje dopuszczają możliwość niewydawania danych przez procesor pokładowy, a także przesyłanie błędnych danych w przypadku, gdy żądanie nie spełnia standardu wspieranego przez producentów pojazdów. Możliwe jest również, że żądane dane nie są w danym momencie dostępne w pamięci RAM procesora. Gdy sterownik nie otrzyma oczekiwanej odpowiedzi lub otrzyma uszkodzone dane, ustawiany jest MSB bajtu kontrolnego, a po sterowaniu wydawany jest bajt statusu.
W przypadku kolizji magistrali interfejs generuje pojedynczy bajt 40 (hex), który jest bajtem kontrolnym z najmniej znaczącym bitem ustawionym na zero. Podobna sytuacja może wystąpić dość często, gdy magistrala samochodowa zostanie załadowana komunikatami o wyższym priorytecie niż dane diagnostyczne – urządzenie obliczeniowe musi powtórzyć pierwotne żądanie.
Wymiana zgodnie z protokołami ISO 9141-2
Norma ISO 9141-2 jest stosowana przez większość azjatyckich i europejskich producentów samochodów. Struktura generowanego żądania PC niewiele różni się od stosowanej w standardach SAE, z tą różnicą, że kontroler nie potrzebuje informacji o numerze ramki, a odpowiednia informacja nie powinna znajdować się w pakiecie. Zatem, wniosek zawsze składa się z bajtu kontrolnego, po którym następuje ciąg bajtów danych, w tym suma kontrolna. Jak wiadomość zwrotna kontroler po prostu przekazuje sygnały generowane przez wbudowany procesor. W komunikacie odpowiedzi nie ma bajtu kontrolnego, więc komputer PC akceptuje przychodzące informacje w sposób ciągły, dopóki łańcuch nie zostanie przerwany 55-milisekundową pauzą wskazującą na zakończenie pakietu informacyjnego. Zatem komunikat odpowiedzi może składać się z jednej lub więcej ramek, zgodnie z wymaganiami specyfikacji SAE J1979. Kontroler nie analizuje ramek, nie odrzuca ramek niediagnostycznych itp. Komputer PC musi samodzielnie przetworzyć przychodzące dane, aby wyizolować poszczególne ramki, analizując bajty nagłówka.
Notatka. Odpowiedzi na większość żądań składają się z pojedynczej ramki.
Modyfikacje dokonane w najnowszych kontrolerach interfejsu
Poniżej przedstawiono główne różnice w procesie przesyłania danych z wykorzystaniem protokołów SAE i ISO 9141, które są charakterystyczne dla najnowszych kontrolerów interfejsowych, a także procedurę przesyłania danych z wykorzystaniem protokołu ISO 14230:
- ISO 9141: Dodano bajt adresu;
- ISO 9141: Zwracany jest nie tylko jeden, ale oba bajty klucza (dodatkowy bajt jest również zwracany w trybach SAE, jednak nie jest tutaj używany);
- Dodano obsługę protokołu ISO 14230.
Notatka. Wszystkie bajty informacyjne są przesyłane w formacie szesnastkowym.
Notatka. Znak XX oznacza niezdefiniowany, zarezerwowany lub nierozpoznany bajt.
Nawiązywanie połączenia
Kolejność konfiguracji połączenia nie uległa zmianie:
- Wysyłka: 20
- Recepcja: FF
Wybór protokołu
Obowiązuje następujący schemat:
- VPW:
- Wysyłka: 41, 00
- Przyjęcie: 02, 01, XX
- PWM:
- Wysyłka: 41, 01
- Przyjęcie: 02, 01, XX
- ISO 9141:
- Wysyłka: 42, 02, adr, gdzie: adr - bajt adresu (zwykle 33 heks)
- Przyjęcie: 02, K1, K2, gdzie K1, K2 to bajty klucza ISO
- Lub: 82, XX, XX (Błąd inicjalizacji ISO 9141)
- ISO 14230 (szybka inicjalizacja):
- Wysyłka: 46, 03, R1, R2, R3, R4, R5, gdzie: R1 ÷ R5 - komunikat o rozpoczęciu żądania połączenia ISO 14230, zwykle R1 ÷ R5 = C1, 33, F1, 81, 66
- Przyjęcie: S1, S2, ………, gdzie S1, S2, ……… to komunikat o rozpoczęciu odpowiedzi ISO 14230 w celu nawiązania połączenia
Notatka. Więcej niż jeden ECU może być przesyłany szeregowo. Jako odpowiedź można użyć negatywnego kodu odpowiedzi.
- Typowa pozytywna odpowiedź wygląda następująco: S1, S2, ……. = 83, F1, 10, C1, E9, 8F, BD
- ISO 14230 (powolna inicjalizacja): Podobny do ISO 9141
Uwagi i komentarze
Jeśli planujesz używać kontrolera do przesyłania danych tylko przez jeden lub dwa protokoły, możesz wykluczyć niepotrzebne komponenty (patrz diagram powyżej). Na przykład podczas organizowania schematu protokołu VPW (GM) wymagane są tylko trzy przewody instalacji elektrycznej w przewodzie łączącym sterownik z samochodem (zaciski 16, 5 i 2).
Jeżeli protokół PWM nie jest używany, elementy R4, R6, R7, R8, R9, R10, T1, T2 i D1 mogą zostać wyłączone.
W przypadku odmowy wymiany w ramach protokołu ISO, wykluczeniu podlegają elementy: R15, R16, R17, R18, R19, R21, T4 i T5.
Odmowa stosowania protokołu VPW pozwala wykluczyć następujące elementy: R13, R14, R23, R24, D2, D3 i T3.
Stosowane są rezystory węglowe z tolerancją rezystancji 5%.
Zwróć uwagę na brak przycisku resetowania awaryjnego (RESET), w razie potrzeby taki restart można wykonać poprzez odłączenie sterownika od złącza samochodowego (procesor interfejsu automatycznie uruchomi się ponownie). Ponowne uruchomienie oprogramowania na PC powoduje inicjalizację nowego interfejsu.