Ujednolicone usługi diagnostyczne
Unified Diagnostic Services (UDS) to diagnostyczny protokół komunikacyjny używany w elektronicznych jednostkach sterujących (ECU) w elektronice samochodowej, który jest określony w normie ISO 14229-1. Wywodzi się z ISO 14230-3 ( KWP2000 ) i przestarzałej normy ISO 15765 -3 (Diagnostic Communication over Controller Area Network (DoCAN)). „Ujednolicony” w tym kontekście oznacza, że jest to standard międzynarodowy, a nie specyficzny dla firmy. Do tej pory ten protokół komunikacyjny jest używany we wszystkich nowych ECU produkowanych przez dostawców Tier 1 Producenta oryginalnego sprzętu (OEM) i jest włączony do innych standardów, takich jak AUTOSAR . ECU w nowoczesnych pojazdach kontrolują prawie wszystkie funkcje, w tym elektroniczny wtrysk paliwa (EFI), sterowanie silnikiem , skrzynię biegów, układ przeciwblokujący, zamki drzwi, hamowanie, działanie szyb i wiele innych.
Narzędzia diagnostyczne są w stanie skontaktować się ze wszystkimi ECU zainstalowanymi w pojeździe, który ma włączone usługi UDS. W przeciwieństwie do magistrali CAN , który wykorzystuje tylko pierwszą i drugą warstwę modelu OSI , UDS wykorzystuje piątą i siódmą warstwę modelu OSI. Identyfikator usługi (SID) i parametry związane z usługami są zawarte w ładunku danych ramki danych.gh
Nowoczesne pojazdy posiadają interfejs diagnostyczny do diagnostyki zewnętrznej, który umożliwia podłączenie komputera (klienta) lub narzędzia diagnostycznego zwanego testerem do systemu komunikacji pojazdu. W ten sposób żądania UDS mogą być wysyłane do kontrolerów, którzy muszą udzielić odpowiedzi (może być pozytywna lub negatywna). Umożliwia to przesłuchanie pamięci usterek poszczególnych jednostek sterujących, aby aktualizować je za pomocą nowego oprogramowania układowego, mieć niskopoziomową interakcję z ich sprzętem (np. włączanie lub wyłączanie określonego wyjścia) lub korzystać ze specjalnych funkcji (zwanych procedurami) w celu próbować zrozumieć środowisko i warunki pracy ECU, aby móc zdiagnozować wadliwe lub w inny sposób niepożądane zachowanie.
Usługi
SID (identyfikator usługi)
Grupa funkcyjna | Poproś o identyfikator SID | Identyfikator SID odpowiedzi | Praca | Opis |
---|---|---|---|---|
Zarządzanie diagnostyką i komunikacją | 0x10 | 0x50 | Diagnostyczna kontrola sesji | UDS wykorzystuje różne sesje operacyjne, które można zmienić za pomocą „Kontroli sesji diagnostycznej”. W zależności od tego, która sesja jest aktywna, dostępne są różne usługi. Na starcie jednostka sterująca domyślnie znajduje się w „Sesji domyślnej”. Inne sesje są zdefiniowane, ale nie muszą być realizowane w zależności od typu urządzenia:
Ponadto istnieją zarezerwowane identyfikatory sesji, które można zdefiniować dla określonego zastosowania producentów pojazdów i dostawców pojazdów. |
0x11 | 0x51 | Reset ECU | Usługa „Reset ECU” służy do ponownego uruchomienia jednostki sterującej (ECU). W zależności od sprzętu i implementacji jednostki sterującej można zastosować różne formy resetowania:
Ponownie, istnieją wartości zastrzeżone, które można zdefiniować dla określonego zastosowania producentów pojazdów i dostawców pojazdów. |
|
0x27 | 0x67 | Dostęp bezpieczeństwa | Kontrola bezpieczeństwa jest dostępna, aby włączyć najbardziej krytyczne dla bezpieczeństwa usługi. W tym celu generowany jest „Seed” i wysyłany do klienta przez jednostkę sterującą. Na podstawie tego „ziarna” klient musi obliczyć „klucz” i odesłać go z powrotem do jednostki sterującej w celu odblokowania usług o krytycznym znaczeniu dla bezpieczeństwa. | |
0x28 | 0x68 | Kontrola komunikacji | Dzięki tej usłudze zarówno wysyłanie, jak i odbieranie wiadomości można wyłączyć w centrali. | |
0x29 | 0x69 | Uwierzytelnianie | Aktualizacja (2020) standardu dodała tę usługę, aby zapewnić ustandaryzowane podejście do bardziej nowoczesnych metod uwierzytelniania niż pozwala na to usługa Security Access (0x27), w tym uwierzytelnianie dwukierunkowe z wymianą certyfikatów opartą na PKI . | |
0x3E | 0x7E | Obecny tester | W przypadku braku komunikacji z klientem przez dłuższy czas, jednostka sterująca automatycznie wychodzi z bieżącej sesji i powraca do „Sesji domyślnej” oraz może przejść w tryb uśpienia. Dlatego istnieje dodatkowa usługa, której celem jest zasygnalizowanie urządzeniu, że klient nadal jest obecny. | |
0x83 | 0xC3 | Uzyskaj dostęp do parametrów synchronizacji | W komunikacji między kontrolerami a klientem muszą być przestrzegane określone czasy. Jeśli zostaną one przekroczone bez wysłania wiadomości, należy przyjąć, że połączenie zostało przerwane. Godziny te można wywołać i zmienić. | |
0x84 | 0xC4 | Bezpieczna transmisja danych | ||
0x85 | 0xC5 | Kontroluj ustawienia DTC | Włącz lub wyłącz wykrywanie dowolnych lub wszystkich błędów. Jest to istotne w przypadku wykonywania prac diagnostycznych w samochodzie, które mogą powodować nieprawidłowe zachowanie poszczególnych urządzeń. | |
0x86 | 0xC6 | Odpowiedź na zdarzenie | ||
0x87 | 0xC7 | Kontrola łącza | Service Link Control służy do ustawiania szybkości transmisji dostępu diagnostycznego. Zwykle jest implementowany tylko w bramie centralnej. | |
Transmisja danych | 0x22 | 0x62 | Odczyt danych według identyfikatora | Dzięki tej usłudze możliwe jest pobranie jednej lub kilku wartości jednostki sterującej. Mogą to być wszelkiego rodzaju informacje o różnej długości, takie jak numer części lub wersja oprogramowania. Można sprawdzać wartości dynamiczne, takie jak aktualny stan czujnika. Każda wartość jest powiązana z identyfikatorem danych (DID) z zakresu od 0 do 65535. Normalne sygnały CAN są przeznaczone do przekazywania informacji, które niektóre ECU wykorzystują w swoich funkcjach. Dane DID są wysyłane tylko na żądanie i służą jako informacje, z których nie korzysta żaden ECU, ale może z nich skorzystać narzędzie serwisowe lub tester oprogramowania. |
0x23 | 0x63 | Odczyt pamięci według adresu | Odczytaj dane z pamięci fizycznej pod podanym adresem. Ta funkcja może być używana przez narzędzie testujące w celu odczytania wewnętrznego zachowania oprogramowania. | |
0x24 | 0x64 | Odczyt skalowania danych według identyfikatora | ||
0x2A | 0x6A | Odczyt danych według identyfikatora okresowo | Dzięki tej usłudze wartości są okresowo wysyłane przez jednostkę sterującą. Wartości, które mają zostać wysłane, muszą być zdefiniowane wyłącznie przy użyciu „Dynamicznie definiuj identyfikator danych”. | |
0x2C | 0x6C | Dynamicznie zdefiniuj identyfikator danych | Ta usługa oferuje możliwość naprawy określonej przez urządzenie puli identyfikatorów danych (DID) w celu skonfigurowania innego identyfikatora danych. Zwykle jest to połączenie części różnych DID lub po prostu połączenie całych DID. Żądane dane mogą być skonfigurowane lub pogrupowane w następujący sposób:
|
|
0x2E | 0x6E | Zapisz dane według identyfikatora | Za pomocą tego samego identyfikatora danych (DID) można również zmieniać wartości. Oprócz identyfikatora przesyłana jest nowa wartość. | |
0x3D | 0x7D | Zapisz pamięć według adresu | Usługa „Write Memory By Address” umożliwia zewnętrznemu narzędziu diagnostycznemu zapisywanie informacji w ECU w jednej lub kilku ciągłych lokalizacjach pamięci. | |
Transmisja zapisanych danych | 0x14 | 0x54 | Wyczyść informacje diagnostyczne | Usuń wszystkie zapisane kody DTC |
0x19 | 0x59 | Przeczytaj informacje o DTC | DTC oznacza „ Diagnostyczne kody usterek ”. Każdy kod DTC obsługiwany przez usterkę jednostki sterującej jest zapisywany z własnym kodem w pamięci błędów i można go odczytać w dowolnym momencie. Oprócz błędu zostaną zapisane dodatkowe informacje, które można również odczytać. | |
Kontrola wejścia/wyjścia | 0x2F | 0x6F | Wejście Sterowanie wyjściem według identyfikatora | Ta usługa umożliwia zewnętrzną interwencję systemu na sygnały wewnętrzne / zewnętrzne za pośrednictwem interfejsu diagnostycznego. Określając tzw. bajty opcji można określić dodatkowe warunki dla żądania, określa się następujące wartości: ReturnControlToECU : Urządzenie musi odzyskać sterowanie wspomnianymi sygnałami. ResetToDefault : Tester monituje o zresetowanie sygnałów do wartości domyślnych w całym systemie. Freeze Current State : Urządzenie zamrozi aktualną wartość sygnału. ShortTermAdjustment : Urządzenie będzie wykorzystywać dostarczoną wartość sygnału |
Zdalna aktywacja rutyny | 0x31 | 0x71 | Rutynowa kontrola | Rutynowe usługi kontrolne mogą być wykonywane wszelkiego rodzaju. Istnieją trzy różne typy wiadomości:
Można określić parametry komunikatu początkowego i końcowego. Umożliwia to realizację każdej możliwej usługi specyficznej dla projektu. |
Przesłać, ściągnąć | 0x34 | 0x74 | Poproś o pobranie | Wczytywanie nowego oprogramowania lub innych danych do centrali odbywa się za pomocą opcji „Poproś o pobranie”. Tutaj określa się lokalizację i rozmiar danych. Z kolei kontroler określa, jak duże mogą być pakiety danych. |
0x35 | 0x75 | Poproś o przesłanie | Usługa „Poproś o przesłanie” jest prawie identyczna z usługą „Poproś o pobranie”. Usługa ta polega na przeniesieniu oprogramowania z jednostki sterującej do testera. Należy określić lokalizację i rozmiar. Ponownie rozmiar bloków danych jest określany przez testera. | |
0x36 | 0x76 | Transfer danych | Do rzeczywistej transmisji danych wykorzystywana jest usługa „Transfer danych”. Ta usługa służy zarówno do wysyłania, jak i pobierania danych. Kierunek transferu jest wcześniej powiadamiany przez usługę „Prośba o pobranie” lub „Żądanie przesłania”. Ta usługa powinna próbować wysyłać pakiety o maksymalnej długości, jak określono w poprzednich usługach. Jeśli zestaw danych jest większy niż maksimum, należy skorzystać z usługi „Prześlij dane” kilka razy z rzędu, aż wszystkie dane dotrą. | |
0x37 | 0x77 | Poproś o wyjście z transferu | Transmisja danych może zostać „zakończona” w przypadku skorzystania z usługi „Transfer Exit”. Ta usługa służy do porównania jednostki sterującej z testerem. Gdy jest uruchomiony, jednostka sterująca może odpowiedzieć negatywnie na to żądanie zatrzymania żądania przesyłania danych. Zostanie to użyte, gdy ilość danych (ustawiona w „Żądanie pobrania” lub „Żądanie przesłania”) nie została przesłana. | |
0x38 | 0x78 | Poproś o transfer plików | Ta usługa służy do inicjowania pobierania plików z klienta na serwer lub przesyłania z serwera do klienta. Dodatkowo usługa ta udostępnia informacje o systemie plików. | |
0x7F | Odpowiedź negatywna | Ta odpowiedź jest udzielana, gdy nie można wykonać żądania usługi, na przykład mając nieobsługiwany identyfikator danych. Kod negatywnej odpowiedzi zostanie dołączony. |
Zobacz też
- Diagnostyka pokładowa , ogólny artykuł o usługach diagnostycznych w pojazdach
- PID OBD-II , o standardzie amerykańskim
Linki zewnętrzne
- Ujednolicone usługi diagnostyczne — ISO 14229 (plakat z softing.com)