Memasuki industri yang paling menuntut di embedded: memahami CAN bus dan struktur frame-nya, arsitektur AUTOSAR pada ECU otomotif, serta protokol industri seperti Modbus dan EtherCAT, ditutup praktik menyiapkan komunikasi CAN pertama di board

Episode 19 dan 20 memperkenalkan safety dan ASIL; episode ini membawa kalian ke tempat di mana keduanya dipakai setiap hari: industri otomotif dan industri pabrik. Satu mobil modern berisi 100+ ECU yang saling berbicara lewat CAN bus; satu lini produksi berisi PLC dan sensor yang berkomunikasi lewat protokol industri seperti Modbus, EtherCAT, dan Profinet.
Dunia ini tidak menoleransi "cukup jalan" — semua protokol dibangun di atas fondasi determinisme (episode 14) dan safety (episode 19). Episode ini membangun fondasi: apa itu CAN, bagaimana frame-nya dibentuk, apa itu AUTOSAR, dan bagaimana protokol industri diorganisasi.
CAN (Controller Area Network) adalah bus serial yang dirancang Bosch pada 1980-an untuk otomotif — dan kini juga dominan di industri. Keunggulannya:
Konsep penting: CAN bukan "satu node adalah master". Semua node bisa mengirim kapan saja; arbitrase memastikan hanya satu yang menang — berdasar ID frame (semakin kecil ID, semakin tinggi prioritas). Inilah mengapa ID harus dipilih hati-hati: ID kecil untuk data kritis waktu (ABS), ID besar untuk telemetri santai.
Frame CAN memiliki bagian-bagian yang wajib dipahami:
| SOF | ArbID (11-bit) | RTR | IDE | r0 | DLC (4-bit) | Data (0-8 byte) | CRC | ACK | EOF |Bagian yang paling sering menentukan desain:
Contoh mengirim frame dengan library CAN (misal MCP2515 atau CAN transceiver + STM32 bxCAN):
CanTxMsgTypeDef frame;
frame.StdId = 0x123; /* ArbID: prioritas + identitas pesan */
frame.IDE = CAN_ID_STD;
frame.RTR = CAN_RTR_DATA;
frame.DLC = 4; /* 4 byte data */
frame.Data[0] = (sensor_value >> 8) & 0xFF;
frame.Data[1] = sensor_value & 0xFF;
frame.Data[2] = 0x00;
frame.Data[3] = checksum8(sensor_value);
HAL_CAN_AddTxMessage(&hcan, &frame, &tx_mailbox);Perhatikan packing manual: nilai 16-bit dipecah menjadi byte dan dirangkai — inilah kenapa seluruh proyek CAN nyata punya DBC file (Database CAN) yang mendefinisikan setiap sinyal dan bit-nya. Tanpa DBC, data antar vendor adalah teka-teki.
AUTOSAR (AUTomotive Open System ARchitecture) adalah standar arsitektur software untuk ECU otomotif — kolaborasi pabrikan dan supplier besar. Tujuannya: membuat software ECU portabel dan dapat dipakai ulang antar vendor dan platform.
Lapisan arsitektur AUTOSAR Classic (untuk MCU) yang harus dikenal:
| Lapisan | Peran |
|---|---|
| Application Layer | Logika bisnis (kontrol rem, suhu kabin) |
| RTE (Runtime Environment) | Bus komunikasi antar komponen aplikasi |
| BSW (Basic Software) | Driver MCU, komunikasi (CAN, SPI), memory stack, diagnostics |
| MCAL (Microcontroller Abstraction) | Driver level register yang menyeragamkan MCU berbeda |
Manfaat praktisnya: tim aplikasi menulis terhadap antarmuka standar (RTE), bukan register chip tertentu. Supplier menyediakan BSW yang tersertifikasi. Kerugiannya: kompleksitas dan lisensi tinggi — inilah kenapa AUTOSAR hanya masuk akal untuk proyek besar.
Di sisi modern, AUTOSAR Adaptive (untuk SoC/Linux, POSIX, C++) menangani aplikasi dengan kebutuhan resource besar — layanan, komunikasi IP, dan update OTA yang dibahas di episode 17.
Di dunia pabrik, lanskap protokolnya berbeda dari otomotif. Tiga yang paling sering ditemui:
| Protokol | Tipe | Karakteristik |
|---|---|---|
| Modbus RTU/TCP | Sederhana, master/slave | Paling tua & tersebar; cocok untuk PLC, sensor sederhana |
| EtherCAT | Ethernet deterministik | Mikrodetik presisi; PLC high-end, motion control |
| Profinet / Profibus | Ethernet / fieldbus | Kuat di industri Eropa |
| OPC UA | Service-oriented | Interoperabilitas ke level enterprise/cloud |
Pola desainnya seragam: protocol framing, addressing, error handling, dan timing budget. Kemampuan membaca spesifikasi protokol dan mengimplementasikan lapisan dasar dengan benar adalah skill yang membuat kalian berguna di banyak proyek industri.
Note
Jangan panik dengan banyaknya protokol. Semuanya berbagi anatomi yang sama: frame/packet, address/ID, payload, dan error detection. Kuasai satu secara mendalam (mulai dari CAN atau Modbus), dan protokol lain hanyalah variasi dari pola yang sama. Yang tidak bisa digeneralisasi adalah budaya safety-nya — dan itu sudah kalian bawa dari episode 19-20.
0x100 berisi nilai ADC, node B menerima dan menampilkan.0x010) yang mengirim lebih sering — amati arbitrase bekerja (node 0x100 menunggu).can-utils (candump, cansend).Inti yang harus dibawa pulang:
Di episode 24 selanjutnya kita melompat ke kelas perangkat keras yang lebih dalam: SoC & FPGA basics — memahami Zynq, dasar Verilog/VHDL, dan mendesain logika sendiri, dengan praktik blink FPGA pertama. Dari sini kalian melihat bahwa "embedded" tidak berhenti di menulis C. Sampai jumpa di episode 24!