Ostrzeżenie: VPW dotyczy modeli GM, PWM dotyczy forda, ISO 9141-2 dotyczy modeli azjatyckich i europejskich.
Wszystkie informacje
Urządzenie, o którym mowa, to mikrokontroler wykonany w technologii CMOS (CMOS).
Uwaga: Sterownik nie jest przeznaczony do podłączenia 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
Do podłączenia do komputera wystarczy przewód 3-żyłowy, podłączenie do złącza diagnostycznego wykonuje się przewodem 6-żyłowym. Napięcie zasilania dostarczane jest do sterownika poprzez 16-pinowe złącze diagnostyczne OBD. Schemat ideowy sterownika przedstawiono poniżej.
Schemat ideowy sterownika interfejsu do komputera osobistego z systemem autodiagnostyki pokładowej 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 można pobrać ze stron internetowych producentów i jest przeznaczony do użytku pod DOS. Niewielki rozmiar aplikacji w wariancie «pod DOSem» pozwala umieścić go na dyskietce startowej DOS i używać go nawet na komputerach wyposażonych w oprogramowanie niekompatybilne z DOS-em. Opcjonalnym warunkiem jest nawet obecność dysku twardego w komputerze.
Ogólne zasady wymiany danych
Ostrzeżenie: O ile nie zaznaczono inaczej, wszystkie liczby są w formacie szesnastkowym (hex).
Format dziesiętny jest wskazany na etykiecie 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.
Ostrzeżenie: Istnieją pewne wyjątki od zasad używania 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 wchodzi w tryb oczekiwania na odbiór danych. Komputer może teraz przystąpić do inicjalizacji łącza danych.
Ostrzeżenie: Jest to jeden z niewielu przypadków, w których 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).
Ostrzeżenie: Istnieje wiele wyjątków: na przykład podczas sondowania 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 (szesnastkowy) 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 pokładowy procesor OBD i określający, która z dwóch nieco różniących się wersji protokołu zostanie użyta.
Ostrzeżenie: klucz cyfrowy ma charakter wyłącznie 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, odbiorcą bajtu kontrolnego i numeru ramki jest układ 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 układ nie otrzyma oczekiwanej odpowiedzi lub otrzyma uszkodzone dane, ustawiany jest MSB bajtu kontrolnego, a po sprawdzeniu wysyłany jest bajt stanu.
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 tej stosowanej w standardach SAE, z tą różnicą, że chip 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 chip 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. Chip 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.
Ostrzeżenie: większość odpowiedzi na zapytanie składa 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, charakterystyczne dla najnowszych wersji kontrolerów interfejsów, a także kolejność przesyłania danych z wykorzystaniem protokołu ISO 14230: 1. Norma ISO 9141: Dodano bajt adresu;
2. ISO 9141: Zwracany jest nie jeden, ale oba bajty klucza; (dodatkowy bajt jest również zwracany w trybach SAE, jednak nie jest tutaj używany).
3. Dodano obsługę protokołu ISO 14230.
Ostrzeżenie: Wszystkie bajty danych są przesyłane w formacie szesnastkowym.
Ostrzeżenie: znak XX oznacza niezdefiniowany, zarezerwowany lub nierozpoznany bajt.
Nawiązywanie połączenia
Kolejność konfiguracji połączenia nie uległa zmianie:
Wysyłka: | 20 |
Przyjęcie: | FF |
Wybór protokołu
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, ……… - komunikaty o rozpoczęciu odpowiedzi ISO 14230 na połączenie |
Ostrzeżenie: 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): Podobne do ISO 9141
Uwaga 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.
Komentarze gości