Schemat ideowy sterownika interfejsu do komputera osobistego z systemem autodiagnostyki pokładowej OBD II
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! Sterownik 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
Do podłączenia do komputera wystarczy przewód 3-żyłowy, podłączenie do złącza diagnostycznego wykonuje się przewodem 6-żyłowym. Zasilanie sterownika dostarczane jest poprzez 16-pinowe złącze diagnostyczne OBD. Schemat ideowy sterownika przedstawiono na rysunku.
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
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 wchodzi 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 (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.
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.
Żądanie ma zawsze następującą postać: [Bajt kontrolny], [Żądanie zgodne ze standardem 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.
W przypadku niepowodzenia wysyłany jest 2-bajtowy komunikat odpowiedzi: [Bajt kontrolny], [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 chip nie otrzyma oczekiwanej odpowiedzi lub otrzyma uszkodzone dane, ustawiany jest MSB bajtu kontrolnego, a bajt stanu jest wysyłany po bajcie kontrolnym.
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 żądanie zawsze składa się z bajtu kontrolnego, po którym następuje ciąg bajtów informacyjnych, w tym suma kontrolna. W odpowiedzi chip po prostu retransmituje 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.
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:
- 1) 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.
Notatka. Wszystkie bajty informacyjne są przesyłane w formacie szesnastkowym.
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
VPW:
- Wyjazd: 41.00
- Recepcja: 02, 01, XX
PWM:
- Wysyłka: 41, 01
- Recepcja: 02, 01, XX
ISO 9141:
- Wysyłanie: 42, 02, adr, gdzie: adr to bajt adresu (zwykle 33 heks)
- Odbierz: 02, K1, K2, gdzie K1, K2 to bajty klucza ISO
- Lub: 82, XX, XX (Błąd inicjalizacji ISO 9141)
ISO 14230 (szybka inicjalizacja):
- Wyślij: 46, 03, R1, R2, R3, R4, R5, gdzie: R1 ÷ R5 - wiadomość o rozpoczęciu żądania połączenia ISO 14230, zwykle R1 ÷ R5 = C1, 33, F1, 81, 66
- Odbiór: S1, S2, ………, gdzie S1, S2, ……… - 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): Taki sam jak 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. 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.