logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

VAG MQB - Protokół diagnostyczny, format ramki, żądania

tzok 19 Sty 2022 23:26 975 4
REKLAMA
  • #1 19830889
    tzok
    Moderator Samochody
    Szukam materiałów na temat protokołu diagnostycznego stosowanego w platformie MQB. Choćby podstaw, w jaki sposób "przejść" przez gateway, jak pobrać listę modułów. Chodzi mi jak to zrobić "z palca", czyli na poziomie ramek CAN-TP. Znalazłem jakiś jeden opis, ale niezbyt się to zgadza z tym co widzę na swoim "zestawie testowym".

    Fragment opisu, który znalazłem (pisownia oryginalna):
    Cytat:
    Some basics to get to the gateway. First thing you need to do is send a connection request and receive the ID that all messages are going to sent by.

    0x200 (1F C0 00 10 00 03 01) Tester requests communication and ID from gateway.
    0x21F (00 D0 00 03 BF 04 01) Gateway Responds. Tester ID is now 0x4BF and gateway will be 0x300

    A request for the module coding from The gateway:

    0x4BF (14 00 03 22 06 00) Request Module Coding
    0x300 (29 00 06 62 06 00 00 C3) Responce: 00C303
    0x300 (1A 03)

    Requesting installation list from Gateway:

    0x4BF (16 00 03 22 04 A1) Request Installation List

    Just some lines so I can show.

    First Byte is always line number

    0x300 (2E 00 E7 62 04 A1 19 1F) First byte line number the next 5 are the positive response to the request.
    0x300 (2F 05 0D 05 31 01 01 09)
    0x300 (20 20 01 01 46 21 01 01) Skipped a line for clarity. Byte 03 is start of module identification which always is 01, 46 is the number for the BCM Module 46. 21 is the assigned diagnostic value for 46. Byte 7 (01) shows the module is present. A value of (00) means the module is not installed…
    0x300 (21 42 22 01 01 52 23 01)
    0x300 (22 01 62 24 01 01 72 25)
    0x300 (23 01 01 36 26 01 01 06) Module 06 assigned value 35. NOT INSTALLED.
    0x300 (24 35 00 01 69 43 00 01)


    Natomiast to jest fragment logu z żądania listy modułów z poziomu VCDSa (w "zestawie testowym" jest tylko gateway 0x19 i ECU 0x01):
    Time   ID     DLC Data                    Comment
    37,756 200      7 1F C0 00 10 00 03 01    
    37,757 21F      7 00 D0 00 03 2E 03 01    
    37,768 32E      6 A0 0F 8A FF 32 FF       
    37,768 300      6 A1 0F 8A FF 4A FF       
    37,896 32E      5 10 00 02 1A 9F          
    37,898 300      1 B1                      
    37,908 300      8 20 00 98 5A 9F 91 01 01 
    37,917 300      8 21 00 05 02 02 00 00 03 
    37,927 300      8 22 03 00 00 00 13 00 00 
    37,938 300      8 23 15 05 00 00 44 09 00 
    37,948 300      8 24 00 55 06 00 00 22 0A 
    37,957 300      8 25 00 00 09 20 02 00 46 
    37,967 300      8 26 21 02 10 42 22 02 00 
    37,978 300      8 27 52 23 02 00 62 24 02 
    37,988 300      8 28 00 72 25 02 00 36 26 
    37,997 300      8 29 02 00 65 29 02 00 16 
    38,007 300      8 2A 2A 02 00 08 2C 02 00 
    38,018 300      8 2B 76 2D 02 00 7D 2E 02 
    38,027 300      8 2C 00 18 2F 04 18 26 30 
    38,037 300      8 2D 02 00 69 43 02 00 06 
    38,047 300      8 0E 35 02 00 3D 3A 02 00 
    38,049 32E      1 BF                      
    38,057 300      8 2F 47 53 04 18 75 55 04 
    38,067 300      8 20 18 37 5B 04 18 57 57 
    38,077 300      8 21 04 18 0F 4F 04 18 56 
    38,087 300      8 22 52 04 18 77 5A 04 18 
    38,097 300      8 23 17 07 06 18 25 14 06 
    38,107 300      8 24 18 19 1F 14 05 1C 40 
    38,117 300      8 15 04 18 04 00 00 02 FF 
    38,120 32E      1 B6                      
    38,320 32E      1 A3                      
    38,327 300      6 A1 0F 8A FF 4A FF       
    38,439 32E      5 11 00 02 1A 9B          
    38,446 300      1 B2                      
    38,456 300      8 26 00 30 5A 9B 31 4B 30 
    38,466 300      8 27 39 30 37 35 33 30 45 
    38,476 300      8 28 20 20 30 31 31 30 10 
    38,487 300      8 29 00 00 00 01 81 C8 F6 
    38,496 300      8 2A 30 39 47 61 74 65 77 
    38,506 300      8 2B 61 79 20 20 20 20 20 
    38,516 300      8 2C 20 20 20 20 48 30 39 
    38,525 300      2 1D 20                   
    38,529 32E      1 BE                      
    38,728 32E      1 A3                      
    38,735 300      6 A1 0F 8A FF 4A FF       
    38,838 32E      5 12 00 02 1A 91          
    38,845 300      1 B3                      
    38,855 300      8 2E 00 11 5A 91 0E 31 4B 
    38,865 300      8 2F 30 39 30 37 39 35 31 
    38,876 300      6 10 20 20 20 20 FF       
    38,878 32E      1 B1                      
    39,076 32E      1 A3                      
    39,085 300      6 A1 0F 8A FF 4A FF       
    39,170 32E      1 A8                      
    39,184 300      1 A8

    Jak widać zgadzają się tylko dwie pierwsze linie.
  • REKLAMA
  • #2 19832522
    kamyczek
    Poziom 38  
    Po pierwsze ,to jak widzę kolega moderator nie rozróżnia protokołów ,ani adresów fizycznych i funkcjonalnych . Musi kolega przede wszystkim zdobyć literaturę na ten temat i przez nią przebrnąć .Niestety większość to płatne dokumentacje ze strony z normami ISO
    Bez tej wiedzy niestety ,te cyferki i literki ogląda się jak hieroglify w Egipcie .
    W tej samej sieci mogą funkcjonować różne protokoły , trzeba potrafić je identyfikować i na podstawie tej wiedzy rozpoznawać usługi które w nich są wykorzystywane. można sobie znaleźć jakąś ramkę odpowiedzialną za zapalenie kierunkowskazu , klakson , czy kontrolkę , ale to chyba maksymalnie wszystko co się w temacie zrobi analizatorem bez dodatkowej wiedzy .
  • REKLAMA
  • #3 19834907
    tzok
    Moderator Samochody
    W MQB na linii port OBD-II - CAN-Gateway, panuje absolutna cisza, o ile nie otworzy się komunikacji gatewaya z konkretnym modułem. Jak otworzyć komunikację z gatewayem i przypisać adresy GW i urządzenia diagnostycznego już wiem i to działa, teraz potrzebuję się dowiedzieć:
    1. Jak zarządzać od Gatewaya listy skonfigurowanych modułów CAN.
    2. Jak odczytać adresy fizyczne tych modułów.
    3. Jak otworzyć, utrzymać i zamknąć komunikację z wybranym modułem.

    Na tym etapie nie interesują mnie szczegóły samego protokołu diagnostycznego, a "można sobie znaleźć jakąś ramkę odpowiedzialną za zapalenie kierunkowskazu, klakson, czy kontrolkę, ale to chyba maksymalnie wszystko co się w temacie zrobi analizatorem" to w ogóle wszystko czego mi do "szczęścia potrzeba". Sęk w tym by to zrobić przez złącze diagnostyczne, a nie podłączając się bezpośrednio do konkretnych linii CAN.

    Ogólne specyfikacje ISO 15765-2 (CAN-TP) i ISO 14229-1:2020 (UDS) wiele mi tu nie pomogą, a dokumenty VAG są dla "śmiertelników" niedostępne.
  • REKLAMA
  • #4 19835321
    elektryku5
    Poziom 39  
    tzok napisał:
    "można sobie znaleźć jakąś ramkę odpowiedzialną za zapalenie kierunkowskazu, klakson, czy kontrolkę, ale to chyba maksymalnie wszystko co się w temacie zrobi analizatorem" to w ogóle wszystko czego mi do "szczęścia potrzeba".


    To jest do zrobienia, co zresztą udowadniają producenci niefabrycznych alarmów pod CAN.

    tzok napisał:
    Sęk w tym by to zrobić przez złącze diagnostyczne, a nie podłączając się bezpośrednio do konkretnych linii CAN.


    Z tym może być problem, GW na pewno będzie w stanie przepuścić adresy diagnostyczne poszczególnych modułów, ale czy da się go zmusić do przekazywania wszystkich innych ramek nie byłbym taki pewien.
    Generalnie na wstępie trzeba zaznaczyć, że mówimy tu o protokołach TP2.0 i UDS, ale one służą tylko do diagnostyki, komunikacja pomiędzy samymi modułami między sobą nie jest w ogóle z nimi związana.
  • #5 19835396
    kamyczek
    Poziom 38  
    elektryku5 napisał:
    To jest do zrobienia, co zresztą udowadniają producenci niefabrycznych alarmów pod CAN


    Tyle że alarmy wpina się w sieć w określony can a nie typowo w obd .

    Zazwyczaj jest to can sieci komfortu ,bo zależy nam na sygnałach otwarcia , zamknięcia , klaksonie , zapłonie , kierunkowskazach . Bardzo często to zupełnie odrębna sieć a niejednokrotnie to LIN a nie CAN .
REKLAMA