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:
  • „Sesja programowania” używana do przesyłania oprogramowania.
  • „Rozszerzona sesja diagnostyczna” służy do odblokowania dodatkowych funkcji diagnostycznych, takich jak regulacja czujników.
  • „Sesja diagnostyczna systemu bezpieczeństwa” używana do testowania wszystkich funkcji diagnostycznych o krytycznym znaczeniu dla bezpieczeństwa, takich jak testy poduszek powietrznych.

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:
  • „Twardy reset” symuluje wyłączenie zasilania.
  • "key off on Reset" symuluje spust i włączenie zapłonu kluczykiem.
  • „Miękki reset” umożliwia inicjalizację niektórych jednostek programowych i ich struktur pamięci.

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:

  • DID źródła, pozycja, długość (w bajtach), Bajt funkcji podrzędnej: defineByIdentifier
  • Długość adresu pamięci (w bajtach), Bajt funkcji podrzędnej: defineByMemoryAddress
  • Kombinacje dwóch powyższych metod poprzez wiele żądań.
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:
  • Za pomocą komunikatu startowego można zainicjować usługę. Można go zdefiniować tak, aby potwierdzał rozpoczęcie realizacji lub powiadamiał o zakończeniu usługi.
  • Za pomocą komunikatu Stop działająca usługa może zostać przerwana w dowolnym momencie.
  • Trzecia opcja to wiadomość z zapytaniem o wyniki usługi.

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ż

Linki zewnętrzne