BIT STUFFING PADA CAN KLASIK
Cara penerima memisahkan muatan data dari bit sisipan
Dalam bagian yang dikenai bit stuffing, pemancar menyisipkan bit bernilai kebalikan setelah lima bit bernilai sama pada bus. Penerima memeriksa dan membuang bit itu sebelum menafsirkan bidang-bidang frame. Mulailah dengan menentukan batas frame, lalu bandingkan rekaman sinyal pada bus dengan hasil dekode frame.
Sisipkan bit
Pemancar menyisipkan bit bernilai kebalikan setelah lima bit bernilai sama pada bus.
Temukan batasnya
Penerima berhenti menerapkan aturan bit stuffing dinamis setelah urutan CRC.
Ukur di kedua ujung
Bandingkan frame uji yang sama pada kedua segmen tembaga.
Pastikan formatnya CAN Klasik, lalu identifikasi jenis frame dan laju bit nominal.
Periksa apakah deretan bit tersebut berada dalam bagian yang dikenai bit stuffing.
Cocokkan transisi sinyal mentah dengan frame yang ditampilkan penganalisis dan galat yang dilaporkan pengendali.
Daftar periksa verifikasi rekaman sinyal — buka
| Pemeriksaan | Yang perlu dikonfirmasi | Cara memverifikasi |
|---|---|---|
| Bit pada bus | Deretan bit dengan keadaan yang sama | Hitung dari awal bagian tempat aturan berlaku |
| Batas bidang | Akhir urutan CRC | Identifikasi pembatas, ACK, dan EOF |
| Perpanjangan jangkauan serat optik | Lokasi pengamatan | Selaraskan kedua rekaman dari segmen tembaga |
Setelah menuliskan data CAN ke pengendali, Anda mungkin melihat lebih banyak bit pada osiloskop daripada jumlah bit dalam bidang-bidang logis frame. Bit tambahan itu berasal dari bit stuffing. Dalam bagian frame CAN Klasik yang dikenai aturan ini, pemancar menyisipkan satu bit bernilai kebalikan setelah lima bit berturut-turut dengan nilai yang sama. Penerima menggunakan aturan yang sama untuk mengenali dan membuang bit itu, lalu menafsirkan bidang-bidang aslinya. Proses ini membantu penerima menyesuaikan pewaktuan bit dan menjelaskan mengapa pesan dengan panjang yang sama dapat menggunakan bus selama durasi yang berbeda.
Sinyal yang datar tetap membawa bit
Pada bus CAN berkecepatan tinggi berbasis kabel tembaga, transceiver mengubah bit dari pengendali menjadi keadaan diferensial antara CAN_H dan CAN_L. Bit dominan mewakili nilai logika 0, sedangkan bit resesif mewakili nilai logika 1. Saat sebuah node menggerakkan bus ke keadaan dominan, keadaan itu dapat mengesampingkan keadaan resesif yang dikirim node lain. Selama keadaan listrik tidak berubah, pengendali penerima tetap menentukan nilai bit pada titik pengambilan sampel di setiap periode bit. Bagian sinyal yang datar pada keadaan dominan dapat memuat beberapa bit nol, masing-masing menempati satu periode bit.
Setiap node memiliki osilator sendiri. Periode bit nominal dapat diatur ke nilai yang sama, tetapi dalam praktiknya tetap ada sedikit penyimpangan. Penerima menyelaraskan pewaktuannya pada awal frame dan menggunakan tepi sinyal yang memenuhi syarat untuk mengoreksi fase di dalam frame. Jika tidak ada tepi sinyal yang sesuai dalam waktu lama, selisih antara waktu pengambilan sampel penerima dan batas bit pemancar akan membesar. Bit stuffing menciptakan transisi di tengah deretan bit yang panjang sehingga penerima dapat melakukan sinkronisasi. Ketepatan pengambilan sampel juga bergantung pada tunda propagasi, pengaturan titik pengambilan sampel, dan kualitas sinyal.

Pemancar menghitung bit yang sudah dikirim pada bus
Ambil contoh urutan sederhana dalam bagian yang dikenai bit stuffing dinamis, dengan hitungan awal nol. Urutan logisnya adalah lima bit nol yang diikuti satu bit bernilai satu. Setelah mengirim bit nol kelima, pemancar menyisipkan satu bit bernilai satu, lalu mengirim bit satu asli. Bus membawa lima bit nol, satu bit sisipan bernilai satu, dan bit satu asli. Penyisipan dapat terjadi di dalam satu byte atau tepat setelah akhir suatu bidang. Pengendali mengikuti aliran bit secara kontinu dan meneruskan hitungan saat melewati batas byte.
Bit sisipan itu sendiri merupakan bagian dari urutan yang dikirim dan mengawali deretan baru. Misalkan urutan asli memuat empat bit satu setelah lima bit nol. Keempat bit satu itu bersama bit sisipan membentuk lima bit satu berturut-turut, sehingga pemancar kemudian menyisipkan satu bit nol. Aturan ini tidak bisa disederhanakan menjadi satu penyisipan untuk setiap lima bit asli. Bidang-bidang yang bersebelahan dan bit yang telah disisipkan sebelumnya memengaruhi kapan penyisipan berikutnya terjadi.
Setelah lima bit identik, penerima mengharapkan bit berikutnya memiliki keadaan yang berlawanan. Saat sampel menunjukkan nilai yang diharapkan, penerima mengenalinya sebagai bit sisipan dan memperbarui status deretan bit yang diterima, tetapi tidak menyertakan bit itu saat mengurai bidang-bidang frame. Bit satu asli yang menyusul tetap dipertahankan. Kedua bit satu dapat terlihat sebagai satu bagian sinyal datar yang tidak terputus pada bus. Penerima membedakan peran keduanya berdasarkan posisi dan riwayat deretan bit.

Di mana penghitungan deretan bit berhenti
Bit stuffing dinamis juga berlaku pada bidang-bidang frame remote CAN Klasik yang tercakup oleh aturan tersebut. DLC pada frame ini dapat menunjukkan panjang data yang diminta, tetapi frame tersebut tidak memiliki bidang data. Saat memeriksa rekaman sinyal secara manual, identifikasi jenis frame sebelum mencari urutan CRC. Jika DLC pada frame remote dianggap sebagai jumlah byte data yang menyusul, semua batas bidang berikutnya akan bergeser.
Pada frame data CAN Klasik, bit stuffing dinamis dimulai dari awal frame, mencakup bidang arbitrase, kontrol, dan data, hingga akhir urutan CRC. Penerima melacak panjang tiap bidang saat memproses bagian ini. Bit sisipan menambah waktu penggunaan bus. Kode panjang data, atau DLC, tetap memiliki arti semula. Susunan logis bidang-bidang frame dapat berbeda dari pembagian waktu yang terlihat pada osiloskop.
Pembatas CRC, bidang ACK, dan akhir frame mengikuti aturan masing-masing setelah urutan CRC. Hitungan bit stuffing dinamis sebelumnya tidak lagi berlaku. Sebagai contoh, akhir frame CAN Klasik berisi tujuh bit resesif berturut-turut. Deretan ini saja tidak menandakan galat bit stuffing. Tentukan batas frame dan cari penanda galat jika ada sebelum memutuskan di bagian mana sinyal datar itu berada.
Pemancar menghitung urutan CRC pada CAN Klasik dari bit logis tanpa sisipan, mulai dari awal frame hingga akhir bidang data. Saat transmisi, pemancar kemudian menyertakan urutan CRC dalam bagian yang dikenai bit stuffing. Penerima membuang bit sisipan dinamis dan melakukan pemeriksaan CRC yang sesuai. Dengan demikian, tambahan bit untuk pengodean dan pemeriksaan integritas bidang memiliki tujuan yang berbeda. CAN FD menggunakan aturan berbeda pada bidang CRC-nya. Verifikasi format frame dan konfigurasi pengendali berdasarkan spesifikasi yang berlaku.
Panjang data yang sama dapat memerlukan waktu transmisi yang berbeda
Bedakan waktu transmisi frame dari waktu tunggu pesan sebelum dikirim. Bit stuffing memengaruhi durasi transmisi frame itu sendiri pada bus. Tunda arbitrase bergantung pada apa yang sedang dikirim node lain pada saat itu. Untuk pesan periodik, catat selang antara dua bit awal frame berturut-turut secara terpisah dari durasi antara awal dan akhir satu frame. Perubahan pada kedua pengukuran itu mengarah pada penyebab yang berbeda.
Pertimbangkan dua frame data CAN Klasik yang berhasil dikirim dengan jumlah byte data yang sama. Pengidentifikasi atau pola datanya bisa berbeda. Salah satu frame mungkin berulang kali memuat deretan panjang bit bernilai sama, sedangkan pada frame lain bit nol dan satu sering bergantian. Frame pertama mungkin memerlukan lebih banyak bit sisipan, dan nilai-nilai dalam urutan CRC juga memengaruhi jumlahnya. Pada laju bit nominal yang sama, setiap bit sisipan menambah satu periode bit. Untuk memperkirakan beban bus, gunakan panjang frame pada bus yang teramati atau perkiraan panjang yang konservatif.
Penganalisis protokol biasanya menampilkan pengidentifikasi, DLC, dan data yang dipulihkan pada tampilan hasil dekode. Untuk memeriksa penggunaan bus, tentukan kapan pengukuran dimulai dan diakhiri. Waktu transmisi frame, waktu tunggu sejak pesan masuk antrean hingga berhasil memenangkan arbitrase, dan waktu untuk transmisi ulang setelah galat adalah besaran yang berbeda. Mencatat batas pengukuran membantu membedakan pertambahan panjang frame dari tunda akibat perebutan akses ke bus.
Temukan bagian tempat galat bit stuffing muncul
Di dalam bidang yang dikenai bit stuffing dinamis, penerima melaporkan galat bit stuffing jika sampel menunjukkan bit keenam bernilai sama di posisi yang seharusnya berisi bit bernilai kebalikan. Bagian sinyal yang datar dalam waktu lama dapat disebabkan oleh perilaku abnormal di sisi pemancar, pengaturan titik pengambilan sampel setempat, laju bit, atau distorsi sinyal. Jika node berstatus error-active mengirim penanda galat aktif, node lain kemudian dapat melihat deretan panjang bit dominan yang melanggar aturan. Karena itu, galat bit stuffing dalam suatu log bisa merupakan akibat dari galat yang terjadi lebih dahulu.
Catat jenis galat, kejadian paling awal, dan rekaman bentuk gelombang jika tersedia. Galat CRC menunjukkan ketidaksesuaian antara hasil perhitungan penerima dan urutan CRC yang diterima. Galat format terjadi pada bidang yang harus mengikuti format tertentu. Galat ACK berarti pengirim tidak mendeteksi konfirmasi penerimaan dominan yang diharapkan pada slot ACK. Galat-galat ini dapat terjadi secara berurutan dalam insiden yang sama. Mengurutkan kejadian berdasarkan waktu dan memeriksa bidang yang terdampak membantu mempersempit penyelidikan.

Periksa setiap segmen tembaga dan peran tiap perangkat saat memperluas jaringan CAN melalui serat optik
Dokumentasi produk FCTELE untuk modem serat optik CAN delapan kanal yang dipasang pada rel DIN mencantumkan fungsi pengulang CAN ke serat optik dan pengoperasian titik ke titik. Dalam pengujian teknis, catat segmen tembaga CAN, serat optik, dan perangkat ujung sebagai titik pengamatan yang terpisah. Verifikasi format frame, laju bit, terminasi, dan pengkabelan berdasarkan dokumentasi perangkat yang benar-benar digunakan. Kemudian gunakan pesan yang sudah diketahui dalam rangkaian uji terisolasi untuk memeriksa penerimaan di tiap ujung. Gambar menunjukkan titik-titik pengamatan. Lihat dokumentasi model terkait untuk mengetahui cara perangkat meneruskan sinyal melalui serat optik.
Jika sinyal dan hasil dekode frame tetap stabil pada segmen tembaga di sisi pemancar, tetapi galat sesekali muncul di dekat penerima, bandingkan keadaan sinyal dan stempel waktu dengan yang tercatat di ujung lainnya. Periksa apakah gangguan mengikuti kabel, perangkat ujung, atau beban tertentu. Pastikan periode pesan dan kondisi lainnya dapat ditelusuri, lalu ubah hanya satu variabel pada satu waktu. Catatan akhir harus menunjukkan apakah bidang-bidang frame berhasil dipulihkan dengan benar, apakah galat muncul kembali, dan apakah lalu lintas aplikasi yang sebenarnya kembali normal setelah jalur diubah. Dengan demikian, penambahan bit yang wajar akibat bit stuffing dapat dibedakan dari gangguan transmisi yang sebenarnya.
Sumber dan cakupan
Bosch: Deteksi galat pada CAN dan CAN FD · Microchip: Bit stuffing dan format frame CAN · Unit serat optik CAN delapan kanal untuk rel DIN dari FCTEL (bahasa Mandarin)
Diterjemahkan dari artikel teknis berbahasa Mandarin: Baca artikel asli berbahasa Mandarin.
Pertanyaan umum
Mengapa menyisipkan bit setelah lima bit bernilai sama?
Bit bernilai kebalikan menciptakan transisi pada bus. Tepi sinyal yang memenuhi syarat sinkronisasi dapat digunakan untuk menyesuaikan pewaktuan bit sehingga durasi deretan tanpa transisi dapat dibatasi.
Apakah tujuh bit resesif pada EOF menyebabkan galat bit stuffing?
EOF pada CAN Klasik memiliki format tetap. Ketujuh bit resesifnya berada di luar bagian yang dikenai bit stuffing dinamis.
Bagaimana cara menelusuri galat bit stuffing pada sambungan serat optik?
Rekam frame uji yang sama pada kedua segmen tembaga, verifikasi laju bit, pengambilan sampel, dan terminasi, selaraskan stempel waktu galat pengendali, lalu periksa cara unit serat optik meneruskan lalu lintas.
Bacaan lebih lanjut
Memperluas bus CAN dengan serat optik · Antarmuka listrik dan arbitrase CAN


