CAN bus nasıl çalışır? Arbitration, hata yönetimi ve CAN FD farkını açıklayın.

Cevap

CAN (Controller Area Network), otomotiv ve endüstride kullanılan, diferansiyel (CAN_H / CAN_L), multi-master, mesaj tabanlı bir bus'tır. Mesajlar cihaz adresine değil identifier'a göre gönderilir; her node ilgilendiği ID'leri donanım filtreleriyle seçer. Bus'ın iki ucunda 120 Ω sonlandırma bulunur (ölçüldüğünde toplam ~60 Ω).

Dominant ve recessive

  • Dominant (0): CAN_H ≈ 3.5 V, CAN_L ≈ 1.5 V.
  • Recessive (1): İki hat ≈ 2.5 V.

Bir node dominant gönderirse bus dominant olur (wired-AND).

Bitwise arbitration

Tüm node'lar aynı anda göndermeye başlayabilir. Her biri gönderdiği biti bus'tan geri okur:

  1. Recessive (1) gönderip dominant (0) okuyan node kaybettiğini anlar ve alıcıya döner.
  2. Kazanan node mesajını hiçbir bozulma olmadan göndermeye devam eder (non-destructive arbitration).

Sonuç: ID değeri en düşük olan mesaj en yüksek önceliğe sahiptir. Örnek: 0x100 ile 0x0F0 yarışırsa 0x0F0 kazanır.

Frame yapısı (CAN 2.0)

SOF | ID (11 veya 29 bit) | RTR | IDE | r0 | DLC | Data (0-8 byte) | CRC | ACK | EOF
  • Standart (2.0A) 11 bit, extended (2.0B) 29 bit ID.
  • Alıcılardan en az biri ACK slotunda dominant bit yazar.
  • Aynı seviyeden 5 bitten sonra bit stuffing ile ters bit eklenir; senkronizasyon korunur.

Hata yönetimi

Beş hata tespit mekanizması: bit, stuff, CRC, form ve ACK hatası. Her node TEC/REC (transmit/receive error counter) tutar:

DurumKoşulDavranış
Error ActiveSayaçlar < 128Aktif error frame gönderir
Error PassiveTEC veya REC ≥ 128Pasif error frame, gönderim öncesi ek bekleme
Bus OffTEC ≥ 256Bus'tan tamamen çekilir

Bu mekanizma, arızalı bir node'un bütün bus'ı kilitlemesini engeller.

CAN FD farkı

ÖzellikKlasik CANCAN FD
Data uzunluğu8 byte64 byte
Hız1 Mbps'a kadarArbitration 1 Mbps, data fazı 5-8 Mbps
CRC15 bit17/21 bit

Data fazında bit hızının artırılması BRS biti ile yapılır. Arbitration hızı aynı kalır; çünkü arbitration için tüm node'ların bit süresi içinde aynı değeri görmesi gerekir ve bu, propagation delay nedeniyle bus uzunluğunu sınırlar (1 Mbps için ~40 m).

Üst katman protokolleri: CANopen, J1939 (ağır vasıtalar), ISO-TP / UDS (otomotiv teşhis).

  1. UART, SPI ve I2C arasındaki farklar nelerdir?OrtaHaberleşme ProtokolleriEmbedded
  2. SPI'da CPOL ve CPHA nedir? Dört SPI modu arasındaki fark nasıl açıklanır?OrtaHaberleşme ProtokolleriEmbedded
  3. I2C protokolü nasıl çalışır? Adresleme, ACK/NACK ve clock stretching nedir?OrtaHaberleşme ProtokolleriEmbedded
  4. UART'ta baud rate, frame yapısı ve parity nedir? RS-485 UART'tan nasıl farklıdır?KolayHaberleşme ProtokolleriEmbedded

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle