Jaki jest związek między identyfikatorem CAN i ECU w standardzie OBD-II

0

Scenariusz

Podczas zbierania zestawów danych samochodowych przez rejestrowanie ruchu CAN przez port OBD-II z prawdziwego pojazdu do wykrywania włamań, mam na przykład pewną ramkę CAN z 11-bitowym identyfikatorem CAN 0x00a0.

Pytanie

Wszyscy wiemy, że identyfikator CAN reprezentuje priorytet wiadomości i znaczenie, ale jaki jest związek między identyfikatorem CAN a ECU? Czy każdy ECU ma wyłączny identyfikator CAN lub różne ECU (takie jak ECU, który kontroluje poduszkę powietrzną i inne) mogą wysyłać ramkę CAN z tym samym identyfikatorem CAN w pewnych okolicznościach?

hcnhcn012
źródło
1
Witamy w Serwisie i naprawie pojazdów silnikowych! Trochę spory z tobą, żeby ludzie nie byli zdezorientowani. ECU = jednostka sterująca silnika, która jest komputerem sterującym silnikiem. Znajduje się na magistrali CANbus i wypluwa kody spełniające specyfikację OBDII, gdy coś się dzieje, powinno się zgłosić. Pozostałe jednostki sterujące będą ich własnymi urządzeniami, takimi jak komputery SRS i ABS (w większości samochodów i tak są one oddzielone od ECU). Wydaje się, że w tym, co podajesz w akapicie Q, nie rozumiesz tego lub nie zdajesz sobie sprawy, że ECU nie jest ogólnym terminem dla komputera składowego.
Pᴀᴜʟsᴛᴇʀ2

Odpowiedzi:

1

Nie ma silnego sprzężenia między adresem CAN a modułem w magistrali. Im niższa wartość identyfikatora, tym wyższy priorytet w autobusie. Z pamięci działa to w sprzęcie, ponieważ niższa liczba pociąga za sobą autobus i depcze na identyfikatorze o wyższym identyfikatorze.

Różne komunikaty mogą być przekazywane wokół magistrali CAN przy użyciu ich unikalnego identyfikatora i 8 bajtów, które są następstwem przesyłania danych sygnału.

Na przykład moduł ABS prawdopodobnie miałby niską identyfikację, aby wysłać wiadomość do wszystkich węzłów odsłuchowych, że tryb antypoślizgowy pojazdu jest aktywny. Komunikat o niskim priorytecie (większy identyfikator CAN) mówi, że moduł zbiornika paliwa zgłosi poziom napełnienia zbiornika do zestawu wskaźników.

Protokół OBD działa w podobny sposób, narzędzie skanujące dołącza do magistrali jako węzeł przy użyciu adresu takiego jak 0x7DF i wysyła żądanie danych, używając 8 bajtów danych, które następują po ID. Każdy węzeł na magistrali (na przykład ECU) może odpowiedzieć odpowiednimi danymi, których żąda narzędzie skanujące, robi to przy użyciu adresu z zakresu 0x7E8-> 0x7EF (zakres pozwala na odpowiedź wielu węzłów, 0x7E8 jest dość typowy - strona wiki wyjaśnia protokół tutaj https://en.wikipedia.org/wiki/OBD-II_PIDs

mx5_craig
źródło