Anda masuk ke mobil Anda, menekan tombol start, dan mesin menjadi hidup dalam waktu singkat, tetapi bagaimana mobil Anda memutuskan apakah harus mulai atau tidak?
Nah, untuk menghidupkan mobil, beberapa antena dan Electronic Control Unit dikomunikasikan dengan key fob. Protokol Controller Area Network (CAN) memastikan komunikasi antara key fob, antena, dan ECU Anda terjadi dengan tepat di dalam mobil Anda.
Jadi apa itu protokol CAN, dan bagaimana protokol itu membantu perangkat pada sistem kendaraan Anda bekerja sama? Nah, mari kita cari tahu.
Apa Itu Protokol CAN, dan Mengapa Diperlukan?
Kembali pada hari, mobil tidak memiliki banyak elektronik. Bahkan, jika Anda ingin menyalakan kendaraan di awal tahun 1900-an, Anda harus turun dari kendaraan dan menghidupkan mesin dengan tangan.
Mobil saat ini, sebaliknya, memiliki beberapa sensor elektronik, dan perangkat elektronik memantau semuanya mulai dari suhu kabin hingga putaran poros engkol.
Yang mengatakan, data yang diterima dari sensor ini tidak ada nilainya sampai diproses. Pemrosesan data ini dilakukan oleh perangkat komputasi yang dikenal sebagai Electronic Control Units (ECUs).
Tidak seperti komputer dengan CPU tunggal, mobil memiliki beberapa ECU, yang masing-masing bertanggung jawab untuk melakukan tugas tertentu. Meskipun ECU ini dapat melakukan satu tugas secara efisien, mereka harus bekerja sama untuk memastikan fitur seperti: ABS dan ESC bekerja dengan benar.
Karena itu, semua ECU pada mobil harus terhubung. Seseorang dapat menggunakan topologi point-to-point untuk membuat koneksi ini, di mana setiap ECU terhubung langsung ke setiap ECU lainnya. Namun, arsitektur ini akan membuat sistem menjadi kompleks. Faktanya, kendaraan modern memiliki lebih dari 70 ECU, dan menghubungkannya dengan cara satu-ke-satu akan meningkatkan bobot kabel secara eksponensial.
Untuk mengatasi masalah ini, Bosch, bersama dengan Mercedes-Benz dan Intel, menciptakan protokol Controller Area Network pada tahun 1986. Protokol ini memungkinkan ECU untuk berkomunikasi satu sama lain menggunakan bus data bersama yang dikenal sebagai bus CAN.
Bagaimana BISA Bekerja?
Protokol CAN adalah metodologi komunikasi berbasis pesan yang bergantung pada satu set kabel twisted pair untuk transmisi data. Kabel ini dikenal sebagai CAN high dan CAN low.
Untuk mengaktifkan transmisi data pada kabel ini, level tegangannya diubah. Perubahan level tegangan ini kemudian diterjemahkan ke level logika yang memungkinkan ECU pada mobil untuk berkomunikasi satu sama lain.
Untuk mentransmisikan logika satu pada bus CAN, tegangan kedua saluran diatur ke 2,5 volt. Keadaan ini juga dikenal sebagai keadaan resesif, yang berarti bus CAN tersedia untuk digunakan oleh ECU mana pun.
Sebaliknya, logika 0 ditransmisikan pada bus CAN ketika saluran tinggi CAN berada pada tegangan 3,5 volt dan saluran rendah CAN pada 1,5 volt. Keadaan bus ini juga dikenal sebagai keadaan dominan, yang memberi tahu setiap ECU dalam sistem bahwa ECU lain sedang mentransmisikan, jadi mereka harus menunggu sampai transmisi selesai sebelum mereka mulai mentransmisikan pesan mereka.
Untuk mengaktifkan perubahan tegangan ini, ECU mobil terhubung ke bus CAN melalui transceiver CAN dan pengontrol CAN. Transceiver bertanggung jawab untuk mengubah level tegangan pada bus CAN ke level yang dapat dipahami oleh ECU. Pengontrol, di sisi lain, digunakan untuk mengelola data yang diterima dan memastikan bahwa persyaratan protokol terpenuhi.
Semua ECU yang terhubung ke bus CAN ini dapat mengirimkan data pada kabel yang dipilin, tetapi ada tangkapan, hanya pesan dengan prioritas tertinggi yang dapat ditransmisikan pada bus CAN. Untuk memahami bagaimana ECU mentransmisikan data pada bus CAN, kita perlu memahami struktur pesan dari protokol CAN.
Memahami Struktur Pesan Protokol CAN
Setiap kali dua ECU ingin berkomunikasi, pesan dengan struktur di bawah ini ditransmisikan pada bus CAN.
Pesan-pesan ini ditransfer dengan mengubah level tegangan pada bus CAN, dan desain pasangan terpilin dari kabel CAN mencegah kerusakan data selama transmisi.
- SOF: Singkatan dari Start Of Frame, bit SOF adalah bingkai data bit dominan tunggal. Bit ini ditransmisikan oleh sebuah node ketika ingin mengirim data pada bus CAN.
- pengenal: Pengidentifikasi pada protokol CAN dapat berukuran 11 bit atau 29 bit. Ukuran pengenal didasarkan pada versi protokol CAN yang digunakan. Jika versi CAN yang diperluas digunakan, maka ukuran pengidentifikasi adalah 29 bit, dan dalam kasus lain, ukuran pengidentifikasi adalah 11 bit. Tujuan utama dari pengidentifikasi adalah untuk mengidentifikasi prioritas pesan.
- RTR: Permintaan Transmisi Jarak Jauh atau RTR digunakan oleh sebuah node ketika data perlu diminta dari node lain. Untuk melakukan ini, node yang menginginkan data mengirimkan pesan dengan bit resesif dalam bingkai RTR ke node yang dituju.
- DLC: Kode panjang data mendefinisikan ukuran data yang ditransmisikan di bidang data.
- bidang data: Kolom ini berisi data payload. Ukuran payload ini adalah 8 byte, tetapi protokol yang lebih baru seperti CAN FD meningkatkan ukuran payload ini menjadi 64 byte.
- KKR: Singkatan dari Cyclic Redundancy Check, bidang CRC adalah bingkai pemeriksaan kesalahan. Hal yang sama berukuran 15 bit dan dihitung oleh penerima dan pemancar. Node transmisi membuat CRC untuk data saat ditransmisikan. Saat menerima data, penerima menghitung CRC untuk data yang diterima. Jika kedua CRC cocok, integritas data dikonfirmasi. Jika tidak, data memiliki kesalahan.
- Bidang pengakuan: Setelah data diterima dan bebas dari kesalahan, node penerima mengumpankan bit dominan ke dalam bingkai pengakuan dan mengirimkannya kembali ke pemancar. Ini memberitahu pemancar bahwa data telah diterima dan bebas dari kesalahan.
- Akhir Bingkai: Setelah transmisi data selesai, tujuh bit resesif berturut-turut ditransmisikan. Ini memastikan bahwa semua node tahu bahwa sebuah node telah menyelesaikan transmisi data, dan mereka dapat mengirimkan data pada bus.
Selain bit di atas, protokol CAN memiliki beberapa bit yang dicadangkan untuk penggunaan di masa mendatang.
Menyederhanakan BISA Melalui Contoh
Sekarang kita memiliki pemahaman dasar tentang seperti apa pesan pada bus CAN, kita dapat memahami bagaimana data ditransmisikan antara ECU yang berbeda.
Untuk mempermudah, misalkan mobil kita memiliki 3 ECU: Node 1, Node 2, dan Node 3. Dari 3 ECU, Node 1 dan Node 2 ingin berkomunikasi dengan Node 3.
Mari kita lihat bagaimana protokol CAN membantu memastikan komunikasi dalam skenario seperti itu.
- Mendeteksi keadaan bus: Semua ECU di mobil terhubung ke bus CAN. Dalam kasus contoh kita, Node 1 dan Node 2 ingin mengirim data ke ECU lain; sebelum melakukan itu, kedua ECU perlu memeriksa status bus CAN. Jika bus dalam keadaan dominan, maka ECU tidak dapat mengirimkan data saat bus sedang digunakan. Di sisi lain, jika bus dalam keadaan resesif, ECU dapat mengirimkan data.
- Mengirim Awal Bingkai: Jika tegangan diferensial pada bus CAN adalah nol, baik Node 1 dan Node 2 mengubah keadaan bus menjadi dominan. Untuk melakukan ini, tegangan CAN tinggi dinaikkan menjadi 3,5 volt, dan tegangan CAN rendah dikurangi menjadi 1,5 volt.
- Memutuskan node mana yang dapat mengakses bus: Setelah SOF dikirim, kedua node bersaing untuk mengakses bus CAN. Bus CAN menggunakan protokol Carrier Sense Multiple Access/Collision Detection (CSMA/CD) untuk memutuskan node mana yang mendapatkan akses. Protokol ini membandingkan pengidentifikasi yang ditransmisikan oleh kedua node dan memberikan akses ke salah satu dengan prioritas lebih tinggi.
- Mengirim data: Setelah node memiliki akses ke bus, bidang data, bersama dengan CRC, dikirim ke penerima.
- Memeriksa dan mengakhiri komunikasi: Saat menerima data, Node 3 memeriksa CRC dari data yang diterima. Jika tidak ada error, Node 3 mengirimkan pesan CAN ke node pengirim dengan bit dominan pada acknowledgment frame bersama dengan EOF untuk mengakhiri komunikasi.
Berbagai Jenis BISA
Meskipun struktur pesan yang digunakan oleh protokol CAN tetap sama, kecepatan transmisi data dan ukuran bit data diubah untuk mentransfer bandwidth data yang lebih tinggi.
Karena perbedaan ini, protokol CAN memiliki versi yang berbeda, dan ikhtisar yang sama diberikan di bawah ini:
- BISA berkecepatan tinggi: Data pada kabel CAN ditransmisikan secara serial, dan transmisi ini dapat dilakukan pada kecepatan yang berbeda. Untuk CAN berkecepatan tinggi, kecepatan ini adalah 1 Mbps. Karena kecepatan transmisi data yang tinggi ini, kaleng kecepatan tinggi digunakan untuk ECU, yang mengontrol powertrain dan sistem keselamatan.
- BISA kecepatan rendah: Dalam kasus CAN kecepatan rendah, kecepatan transmisi data dikurangi menjadi 125 kbps. Karena kecepatan rendah dapat menawarkan kecepatan data yang lebih rendah, ini digunakan untuk menghubungkan ECU yang mengatur kenyamanan penumpang, seperti AC atau sistem infotainment.
- Bisa FD: Singkatan dari CAN flexible data rate, CAN FD adalah versi terbaru dari protokol CAN. Ini meningkatkan ukuran bingkai data menjadi 64 byte dan memungkinkan ECU untuk mengirimkan data dengan kecepatan mulai dari 1 Mbps hingga 8 Mbps. Kecepatan transmisi data ini dapat dikelola oleh ECU secara real time berdasarkan persyaratan sistem, memungkinkan data untuk ditransfer pada kecepatan yang lebih tinggi.
Apa Masa Depan Komunikasi Otomotif?
Protokol CAN memungkinkan beberapa ECU untuk berkomunikasi satu sama lain. Komunikasi ini memungkinkan fitur keselamatan seperti kontrol stabilitas elektronik dan sistem bantuan pengemudi canggih seperti deteksi titik buta dan kontrol jelajah adaptif.
Konon, dengan munculnya fitur-fitur canggih seperti mengemudi secara otonom, jumlah data yang ditransmisikan oleh bus CAN meningkat secara eksponensial. Untuk mengaktifkan fitur ini, versi protokol CAN yang lebih baru, seperti CAN FD, memasuki pasar.