Skenario
Ketika mendapatkan dataset mobil yang dibuat dengan mendata lalu lintas CAN melalui port OBD-II dari kendaraan sungguhan untuk deteksi intrusi, saya mendapatkan bingkai CAN dengan pengidentifikasi CAN 11-bit, misalnya, 0x00a0
.
Pertanyaan
Kita semua tahu bahwa pengidentifikasi CAN mewakili prioritas dan makna pesan, tetapi apa hubungan antara pengidentifikasi CAN dan ECU? Apakah setiap ECU memiliki pengidentifikasi CAN eksklusif, atau ECU yang berbeda (seperti ECU yang mengontrol airbag dan lainnya) dapat mengirim bingkai CAN dengan pengidentifikasi CAN yang sama dalam beberapa keadaan?
Jawaban:
Tidak ada sambungan yang kuat antara alamat CAN dan modul di bus. Semakin rendah nilai ID, semakin tinggi prioritas di bus. Dari memori ini berfungsi dalam perangkat keras karena angka yang lebih rendah menarik bus rendah dan menginjak ID dengan ID yang lebih tinggi.
Berbagai pesan dapat dilewatkan di sekitar bus CAN menggunakan ID unik mereka dan 8 byte yang mengikuti untuk membawa data sinyal.
Misalnya modul ABS mungkin akan memiliki ID rendah untuk mengirim pesan ke semua simpul yang mendengarkan bahwa mode anti selip kendaraan aktif. Pesan berprioritas rendah (ID CAN lebih besar) dari mengatakan modul tangki bahan bakar akan melaporkan tingkat pengisian tangki ke kluster instrumen.
Protokol OBD bertindak dengan cara yang sama, alat pemindaian bergabung dengan bus sebagai simpul menggunakan alamat seperti 0x7DF dan membuat permintaan untuk data, menggunakan 8 byte data yang mengikuti ID. Setiap simpul di bus (ECU misalnya) dapat merespons dengan data yang sesuai yang diminta oleh alat pindai, ia melakukan ini menggunakan alamat dalam kisaran 0x7E8- & gt; 0x7EF (rentang memungkinkan beberapa node untuk merespons, 0x7E8 cukup Halaman wiki khas menjelaskan protokol di sini https://en.wikipedia.org/wiki/OBD-II_PIDs
sumber