İçeriğe geç
[Temeller · 02]

CAN çerçeveleri ve arbitrasyon: master'sız bir hat söz sırasını nasıl belirler

CAN'de master yoktur, jeton yoktur, zaman dilimi yoktur; yine de tüm düğümler sıradaki konuşmacı konusunda tek bir bit süresi içinde uzlaşır. Bunu sağlayan, çerçeve yapısının kendisidir. Bir çerçeveyi bit bit okuyabildiğinizde gecikmeyi, hat yükünü ve protokolün bildirdiği her hata sınıfını mantıkla çözebilirsiniz.

Okuma süresi
13 dk
Güncelleme
7 Ekim 2026
Diyagram
03
Bölüm
09

Master'sız bir hat

CAN ağındaki her düğüm, hat boşta olduğu anda göndermeye başlayabilir. Merkezi bir zamanlayıcı yoktur, alıcı adreslemesi de yoktur: çerçeve, içeriğini adlandıran ve önceliğini belirleyen bir tanımlayıcı (ID) taşır; her düğüm her çerçeveyi alır ve onunla ilgilenip ilgilenmeyeceğine kendisi karar verir. Bu düzeni işleten veri bağı katmanı ISO 11898-1 ile tanımlanır; standardın 2024 sürümü üç protokol kuşağının üçünü de kapsar: klasik CAN, CAN FD ve CAN XL.

CAN fiziksel katmanı yazısında anlatılan iki fiziksel özellik tüm tasarımı taşır. Dominant bit her zaman resesif bitin üzerine yazar ve her verici gönderirken hattı geri okur. Bu ikisi birlikte, birden fazla düğümün aynı anda başlamasına ve kazanan çerçevenin tek bir bitini bile bozmadan çatışmanın çözülmesine olanak tanır.

Klasik bir veri çerçevesinin anatomisi

Temel formattaki klasik bir CAN veri çerçevesi, 44 bitlik protokol yüküyle sarılmış 0 ila 8 veri baytı taşır; ardından bir sonraki çerçeve başlamadan önce kısa bir boşluk gelir. Soldan sağa:

Şekil 01Etkileşimli
bit
11
Tanımlayıcı

Mesajı adlandırır ve önceliğini belirler. Değer ne kadar düşükse öncelik o kadar yüksektir.

Sekme ve ok tuşlarıyla gezinebilirsiniz.

Şekil 01Temel formattaki klasik veri çerçevesi: çerçeve başlangıcı, arbitrasyon alanı, kontrol alanı, veri alanı, CRC alanı, onay alanı ve çerçeve sonu.
Tablo 01Temel formattaki klasik CAN veri çerçevesinin alanları
AlanBitSeviye veya içerikGörevi
Çerçeve başlangıcı (SOF)1DominantBaşlangıcı işaretler; tüm düğümler kenarında sert senkronizasyon yapar
Tanımlayıcı11Herhangiİçeriği adlandırır ve önceliği belirler; düşük değer kazanır
RTR1Veri çerçevesinde dominantUzak iletim isteği; resesif değer uzak çerçeveyi gösterir
IDE1Temel formatta dominantTanımlayıcı uzantısı; resesif değer 29 bitlik tanımlayıcıyı duyurur
r01DominantAyrılmış bit; ISO 11898-1:2015 bu konuma FD format biti FDF adını verir
DLC40–8Veri uzunluk kodu: veri baytı sayısı
Veri0–64HerhangiYük; en anlamlı bit önce
CRC dizisi15HesaplanırSOF'tan veri sonuna kadar döngüsel artıklık denetimi
CRC ayırıcı1ResesifSabit biçimli ayırıcı
ACK yuvası1Resesif gönderilir, dominant ile ezilirAlıcılar çerçevenin doğru olduğunu onaylar
ACK ayırıcı1ResesifSabit biçimli ayırıcı
Çerçeve sonu (EOF)7ResesifÇerçeveyi kapatır
Ara boşluk (intermission)3ResesifSonraki çerçeveden önceki en kısa boşluk

Çerçeve başlangıcı ve tanımlayıcı

Bir çerçeve ancak hat ara boşluk süresi boyunca resesif kaldıktan sonra başlayabilir. Tek dominant SOF biti resesiften dominanta bir kenar oluşturur ve her alıcı bit saatini bu kenara yeniden hizalar: buna sert senkronizasyon denir. Ardından tanımlayıcı, en anlamlı biti önde olacak şekilde gelir. Temel formatta 11 bit genişliğindedir ve 0x000 ile 0x7FF arasında 2.048 değer sunar.

Tanımlayıcı bir adres değildir. Çerçevenin neyi taşıdığını tarif eder ve sayısal değeri çerçevenin önceliğidir: sayı ne kadar küçükse öncelik o kadar yüksektir. Her veri tanımlayıcısının tam olarak bir vericisi olmalıdır. Eğer iki düğüm aynı tanımlayıcıyla farklı içerikte veri çerçeveleri gönderseydi arbitrasyon onları ayıramaz, çatışma veri alanında bit hatası olarak ortaya çıkardı.

Kontrol alanı ve veri uzunluğu

Kontrol alanı alıcılara çerçevenin geri kalanını nasıl okuyacaklarını söyler. IDE temel ve genişletilmiş formatı ayırır, ayrılmış bit klasik çerçevelerde dominant kalır, dört bitlik veri uzunluk kodu da veri baytı sayısını verir. Klasik CAN'de 0–8 kodları doğrudan 0–8 bayta karşılık gelir; 9–15 kodları hatta geçerlidir ama yine 8 bayt anlamına gelir. CAN FD bu üst kodlara yeni anlamlar yükler; ayrıntılar Klasik CAN ve CAN FD yazısındadır.

CRC, onay ve çerçeve sonu

Verici, SOF'tan veri alanının sonuna kadar her bit üzerinden, doldurma bitleri eklenmeden önce, 15 bitlik bir CRC hesaplar. Alıcılar aynı hesabı tekrarlar; uyuşmazlık bir CRC hatasıdır. Üreteç polinomu ISO 11898-1 ile sabittir:

Formül
g(x) = x¹⁵ + x¹⁴ + x¹⁰ + x⁸ + x⁷ + x⁴ + x³ + 1 (0x4599)
Klasik CAN'in CRC-15'i: bir CAN çerçevesi uzunluğunda, rastgele dağılmış en fazla beş bit hatasının her bileşimini ve 15 bitten kısa her ardışık hata patlamasını yakalar.

Sırada, vericinin başka birinin yazmasını beklediği tek bit vardır. Verici ACK yuvasını resesif gönderir; çerçeveyi o ana kadar hatasız bulan her alıcı bu biti dominant sürer. Dolayısıyla dominant bir ACK, vericiye en az bir düğümün çerçeveyi sağlam aldığını söyler; hangi düğüm olduğunu ya da kaç düğüm olduğunu söylemez. Resesif kalan ACK yuvası bir onay hatasıdır ve verici çerçeveyi yeniden dener. Yedi resesif EOF biti çerçeveyi kapatır, ardından üç bitlik ara boşluk gelir.

11 bit ve 29 bit tanımlayıcılar

CAN 2.0B, 29 bitlik tanımlayıcıya sahip genişletilmiş formatı getirdi. Bu format tanımlayıcıyı 11 bitlik bir temel kısım ve 18 bitlik bir uzantı olarak ikiye böler; ikisinin arasında iki resesif bit bulunur: SRR (yedek uzak istek) ve uzantıyı duyuran IDE.

Tablo 02Temel ve genişletilmiş formatın karşılaştırması
ÖzellikTemel format (CAN 2.0A)Genişletilmiş format (CAN 2.0B)
Tanımlayıcı uzunluğu11 bit29 bit (11 + 18)
Tanımlayıcı değeri sayısı2.048536.870.912
8 veri baytlı çerçeve, doldurmasız108 bit + 3 ara boşluk128 bit + 3 ara boşluk
Doldurma ve ara boşluk dahil en kötü durum135 bit160 bit
Tipik kullanıcılarBinek araç ağlarının çoğu; ISO 15765-4 teşhisiSAE J1939, ISO 11783; ISO 15765-4 teşhisi (29 bit seçeneği)

Her iki format aynı hatta bir arada bulunabilir ve arbitrasyon onlara tutarlı davranır. Bir temel çerçeve ile bir genişletilmiş çerçevenin ilk 11 tanımlayıcı biti aynıysa temel çerçeve kazanır: dominant RTR biti, genişletilmiş çerçevenin resesif SRR bitiyle karşılaşır; dominant IDE biti de genişletilmiş çerçevenin resesif IDE bitiyle.

Ağır vasıtalar, 29 bitlik formatı tanımlayıcının kendisine bir yapı kazandırmak için kullanır. SAE J1939 tanımlayıcıyı bir öncelik, bir parametre grup numarası ve bir kaynak adresine böler; ayrıntılar Kamyon, otobüs ve iş makineleri için SAE J1939 yazısındadır.

Adım adım bit bazında arbitrasyon

Hat boşaldığında, bekleyen çerçevesi olan her düğüm aynı SOF ile başlayabilir. Her verici tanımlayıcısını bit bit gönderirken hattı izler. Hattaki seviye gönderdiğiyle aynı olduğu sürece devam eder. Resesif gönderip dominant okuyan düğüm kaybetmiştir: başka bir düğüm daha düşük bir tanımlayıcı gönderiyordur. Göndermeyi hemen keser, çerçevenin geri kalanını diğer her düğüm gibi alır ve hat bir sonraki kez boşaldığında yeniden dener.

Bu süreçte hiçbir şey kaybolmaz. Kazanan çerçeve asla bozulmaz, çünkü kaybeden düğümler yalnızca dominant seviyenin üzerine yazdığı resesif bitler göndermiştir. CAN arbitrasyonunun veriyi bozmayan (non-destructive) olarak anılmasının ve en yüksek öncelikli bekleyen çerçevenin, yalnızca o anda süren çerçeve kadar gecikerek hattı her zaman almasının nedeni budur.

Şekil 02Etkileşimli
0 baskındır ve 1'in üzerine yazar. 1 gönderip 0 okuyan düğüm yayını keser ve dinlemeye geçer.
Tanımlayıcı (hex)109876543210
01010100100
01010100000
01111110000
Veri yolu···········

Arbitrasyonu başlatmak için Adım veya Oynat'a basın.

0 baskındır ve 1'in üzerine yazar. 1 gönderip 0 okuyan düğüm yayını keser ve dinlemeye geçer.

Şekil 02Üç düğüm birlikte başlar; her biri resesif gönderip dominant okuduğu ilk bitte yarıştan çekilir ve çerçevesini en düşük tanımlayıcı tamamlar.
Tablo 03Çözümlü örnek: üç düğümün arbitrasyonu (0 = dominant, 1 = resesif; tanımlayıcının 10. biti ilk gönderilir)
Düğüm109876543210
A, 0x12300100100011
B, 0x12F00100101 (kaybetti)–––
C, 0x3A001 (kaybetti)–––––––––
Hat seviyesi00100100011

C düğümü 9. bitte, B düğümü 3. bitte çekilir; A düğümü yarışın farkına bile varmadan çerçevesini tamamlar. B ve C hat yeniden boşaldığı anda tekrar katılır. B bu kez bekleyen diğer çerçevelerle yarışır ve daha düşük bir tanımlayıcı beklemiyorsa sıradaki gönderen o olur.

Arbitrasyonun sağladıkları ve sağlamadıkları

  • Öncelik kesindir. Bekleyen en düşük tanımlayıcı her zaman kazanır. Yoğun yüklü bir hatta düşük öncelikli bir çerçeve süresiz gecikebilir; bu yüzden öncelikler gerçek zaman kısıtlarını izlemelidir.
  • İletim kesintiye uğratılamaz. Başka bir çerçeve başladıktan bir bit sonra hazır olan acil bir çerçeve, o çerçevenin bitmesini beklemek zorundadır: 8 veri baytlı temel formatta bir çerçeve için 135 bit süresine kadar, yani 500 kbit/s'de 270 µs.
  • Veri çerçeveleri, aynı tanımlayıcıya sahip uzak çerçeveleri yener; çünkü veri çerçevesinin RTR biti dominanttır.
  • Arbitrasyon, tek bit içinde gidiş-dönüş ister. Her düğüm örnekleme yapmadan önce hattın birleşik seviyesini görmelidir; bu da azami hat uzunluğunu bit hızına bağlar. CAN FD bu sınırı, daha hızlı bit hızına yalnızca arbitrasyondan sonra geçerek aşar; ayrıntılar Bit hızları ve hat türleri yazısındadır.

Uzak çerçeveler

Uzak çerçeve, resesif RTR bitiyle gönderilen ve bir tanımlayıcının sahibinden gönderim yapmasını isteyen, verisiz bir veri çerçevesidir. Standartta yaşamaya devam etse de modern araçlarda nadirdir. Ağların çoğu periyodik olarak ya da değişimde gönderir, CANopen kılavuzları uzak çerçeveleri önermez, J1939 bunun yerine ayrı bir istek mesajı kullanır; CAN FD ise uzak çerçeveleri tamamen kaldırmış, RTR konumunu her zaman dominant olan RRS bitiyle değiştirmiştir.

Bit doldurma ve çerçeve uzunluğu

CAN, sıfıra dönüşsüz (NRZ) kodlama kullanır: aynı değerdeki uzun bir bit dizisi hiç kenar üretmez ve kenar olmadan alıcılar saatlerini hizalı tutamaz. Bit doldurma bunu çözer. Aynı seviyede beş ardışık bitten sonra verici ters seviyede bir bit ekler, alıcılar da bu biti yeniden çıkarır. Doldurma SOF'tan CRC dizisinin sonuna kadar uygulanır; ayırıcılar, ACK alanı ve EOF hiçbir zaman doldurulmaz.

Doldurmanın iki sonucu vardır. En geç her 10 bitte bir resesiften dominanta bir kenar sağlar; bu da alıcıların telafi etmesi gereken saat kaymasını sınırlar. Ayrıca çerçeve içinde altı ardışık aynı biti yasa dışı kılar; hata bayraklarının yararlandığı özellik tam olarak budur. Bedeli, veriye bağlı değişen bir çerçeve uzunluğudur. n veri baytlı bir çerçeve için en kötü durum:

Formül
Temel format: L_maks = 8n + 47 + ⌊(34 + 8n − 1) / 4⌋ · Genişletilmiş format: L_maks = 8n + 67 + ⌊(54 + 8n − 1) / 4⌋
3 bitlik ara boşluk dahil, bit cinsinden en kötü durum çerçeve uzunluğu. n = 8 için: 135 bit (temel) ve 160 bit (genişletilmiş).
Tablo 048 veri baytlı bir çerçevenin süresi
Bit hızıBit süresiTemel, doldurmasız (111 bit)Temel, en kötü durum (135 bit)Genişletilmiş, en kötü durum (160 bit)
125 kbit/s8 µs888 µs1.080 µs1.280 µs
250 kbit/s4 µs444 µs540 µs640 µs
500 kbit/s2 µs222 µs270 µs320 µs
1 Mbit/s1 µs111 µs135 µs160 µs

Çözümlü örnek: hat yükü

Hat yükü, hattın meşgul olduğu zamanın payıdır. Her 10 ms'de 15 çerçeve ve her 100 ms'de 40 çerçeve taşıyan, tüm çerçeveleri temel formatta ve 8 veri baytlı, 500 kbit/s'lik bir aktarma organları ağını ele alalım:

  1. 01
    Saniyedeki çerçeve sayısı

    15 × 100 + 40 × 10 = saniyede 1.900 çerçeve.

  2. 02
    Çerçeve başına bit

    Doldurma olmadan her çerçeve, ara boşluk dahil 111 bit süresi kaplar; en kötü durumda 135.

  3. 03
    Yük

    1.900 × 111 = 210.900 bit/s; bu, 500 kbit/s'nin %42'sine karşılık gelir. En kötü durum doldurmayla: 1.900 × 135 = 256.500 bit/s, yani %51.

  4. 04
    Yorum

    Gerçek trafik bu iki değerin arasında kalır. Düşük öncelikli çerçeveler kendilerinden öncelikli her şeyin arkasında sıra beklediği için, yük arttıkça öncelik listesinin alt ucundaki gecikme hızla tırmanır. Bu yüzden ağ tasarımcıları cömert bir pay bırakır ve tipik değil, en kötü durum yanıt sürelerini doğrular.

Hatayı yakalamanın beş yolu

Her düğüm, kendi gönderdikleri de dahil her çerçeveyi denetler. ISO 11898-1 beş hata türü tanımlar:

Tablo 05CAN hata türleri
HataYakalayanKoşul
Bit hatasıVericiGeri okunan seviye gönderilenden farklı (arbitrasyon ve ACK yuvası dışında)
Doldurma hatasıTüm düğümlerDoldurmanın geçerli olduğu bölümde altı ardışık aynı bit
CRC hatasıAlıcılarAlınan CRC hesaplananla uyuşmuyor
Biçim hatasıTüm düğümlerSabit biçimli bir bit (CRC ayırıcı, ACK ayırıcı, EOF) yanlış seviyede
Onay hatasıVericiACK yuvasında dominant seviye yok

Hata yakalayan düğüm çerçeveyi sessizce atmakla yetinmez. Bir hata bayrağı gönderir: doldurma kuralını bilerek çiğneyen altı dominant bit. Böylece diğer tüm düğümler de bir hata görür. Yerel bir hata küresel hâle gelir, tüm düğümler çerçeveyi birlikte atar ve verici onu kendiliğinden yeniden gönderir. Çerçevenin son bitiyle ilgili çok nadir istisnalar dışında, bir çerçeveyi ya tüm düğümler kabul eder ya da hiçbiri.

Hat üzerinde bir hata çerçevesi, hata bayrağı ile onu izleyen sekiz bitlik resesif hata ayırıcısından oluşur. Diğer düğümler kendi bayraklarıyla karşılık verdiği için dominant bölüm altı ile on iki bit arasında uzayabilir. CRC hatası ise ancak ACK ayırıcısından sonra bildirilir; bu nedenle o çerçeve reddedilmeden önce gözle görülür biçimde tamamlanmış olur.

Hata sayaçları, hata pasif ve bus-off

Kendi transceiver'ı veya kablolaması arızalı olduğu için sürekli çerçeve bozan bir düğümün ağı kilitlemesine izin verilmemelidir. CAN'in hata sınırlama (fault confinement) mekanizması her düğüme iki sayaç verir: gönderim hata sayacı (TEC) ve alım hata sayacı (REC). Hatalar bu sayaçları artırır, başarılı çerçeveler azaltır; düğümün durumunu da bu değerler belirler:

Tablo 06Hata sınırlama durumları
DurumKoşulDavranış
Hata aktifTEC ≤ 127 ve REC ≤ 127Normal çalışma; hataları aktif (dominant) hata bayraklarıyla bildirir
Hata pasifTEC > 127 veya REC > 127Haberleşmeye devam eder, ancak hataları diğer düğümlerin çerçevelerini bozamayan pasif (resesif) bayraklarla bildirir ve yeniden göndermeden önce 8 bit fazladan bekler
Bus-offTEC > 255Hattan çekilir; toparlanana kadar hiçbir şey göndermez
  • Hata yakalayan bir verici TEC'ine 8 ekler; her başarılı gönderim 1 düşürür.
  • Hata yakalayan bir alıcı REC'ine genellikle 1 ekler, kendi hata bayrağının hemen ardından dominant bit görmek gibi özel durumlarda 8; her başarılı alım 1 düşürür.
  • Denge bu yüzden sekize birdir: kabaca dokuz çerçevede birden sık başarısız olan bir verici, istikrarlı biçimde bus-off'a doğru tırmanır.
  • Bus-off durumundaki bir düğüm ancak 11 ardışık resesif bitin 128 kez oluştuğunu gördükten sonra yeniden katılabilir ve her iki sayacı sıfırdan başlatır.

Sayaçlar, fiziksel katman arızalarının neden aralıklı belirtiler verdiğini de açıklar. Yüz çerçevede birini kaybeden bir düğüm, hatalar arasında sayaçlarını toparlar ve hata aktif durumundan hiç çıkmaz. Bağlantısı daha kötü olan bir düğüm ise önce hata pasife, sonra bus-off'a tırmanır, kaybolur, toparlanır ve yeniden görünür; her kayboluş da diğer ECU'lar tarafından genellikle bir haberleşme kaybı arızası olarak kaydedilir.

Çerçeveler osiloskopta nasıl görünür

CAN-H ve CAN-L'ye bağlı iki kanallı bir osiloskop ya da tek bir diferansiyel prob, yukarıda anlatılan yapıları hiçbir protokol çözümlemesine gerek kalmadan gösterir:

Şekil 03Etkileşimli
Kanal 1 · CAN-H · 1 V/divKanal 2 · CAN-L · 1 V/div2 µs/div0 V

CAN-H yükselir, CAN-L 2,5 V çevresinde aynı miktarda düşer. Kenarlar keskin, çekinik seviye düzdür.

Şekil 03İki kanallı osiloskopta CAN-H ve CAN-L: her dominant bit hatları 2,5 V çevresinde birbirinden ayırır. Sağlıklı bir hattı eksik sonlandırma, toprağa kısa devre ve ters bağlı kablolarla karşılaştırın.
  • Çerçeve başlangıcı: uzun bir resesif boşluktan sonraki ilk dominant bit. CAN-H'nin yükselen kenarında, osiloskop sunuyorsa en kısa boşluk süresi koşuluyla tetikleyin.
  • Bit genişliği: bir çerçevedeki en dar darbe bir bit süresidir; 500 kbit/s'de 2 µs. Doldurma, çerçeve içinde beş aynı bitten uzun dizi olmayacağını güvence altına alır.
  • Onay yuvası: çerçevenin sonuna yakın tek bir dominant bit; onu verici değil bir alıcı sürdüğü için genliği çoğu zaman biraz farklıdır.
  • Çerçeve sonu: bir sonraki SOF görünmeden önce en az on bir resesif bit (ACK ayırıcı, yedi EOF biti, üç ara boşluk biti).
  • Hata bayrakları: art arda altı veya daha fazla dominant bit. Geçerli trafik bunları içeremez; dolayısıyla böyle her dizi, bir düğümün hata yakaladığının kanıtıdır.

Bu görsel kontroller, Sahada CAN arıza teşhisi yazısındaki direnç ve gerilim ölçümlerini tamamlar. Çerçevelerin tamamlanıp onaylanıp onaylanmadığını gösterir; bu da bir arızanın elektriksel mi yoksa başka bir kaynaklı mı olduğuna karar vermek için çoğu zaman yeterlidir.

Sık sorulan sorular

Düşük tanımlayıcı, daha önemli bir çerçeve mi demek?

Daha yüksek hat önceliği demektir; ağ tasarımcıları bunu zaman kısıtlarına göre atar. Zaman kısıtı gevşek olan yüksek tanımlayıcılı bir çerçeve de güvenlik açısından önemli bir içerik taşıyabilir.

Aynı tanımlayıcıyı iki ECU gönderebilir mi?

Farklı içerikli veri çerçeveleri olarak gönderemez. Arbitrasyon onları ayıramaz ve çatışma veri alanında bit hatası olarak görünür. Bir ağdaki her veri tanımlayıcısının tam olarak bir vericisi vardır.

Onay, çerçevenin hedeflenen alıcıya ulaştığını kanıtlar mı?

Hayır. Yalnızca en az bir düğümün çerçeveyi hatasız aldığını doğrular. Uçtan uca teyidin önemli olduğu yerlerde bunu üst katman protokolleri sağlar; örneğin UDS yanıtları veya J1939 taşıma protokolünün onayları.

Ne kadar hata çerçevesi kabul edilebilir?

Sağlıklı bir araç ağında, normal çalışmada neredeyse hiç. Marş veya uyanma gibi güç geçişlerinde birkaç tane görülebilir; ancak sürekli bir hata oranı her zaman fiziksel ya da yapılandırmaya bağlı bir soruna işaret eder.

Aynı arıza neden farklı günlerde farklı belirtiler verir?

Çünkü hata sınırlama sürekli işleyen bir dengedir. Sıcaklık, titreşim ve hat yükü, sınırda çalışan bir düğümün ne sıklıkla başarısız olduğunu ve dolayısıyla hata aktif kalıp kalmayacağını, hata pasife kayıp kaymayacağını ya da bus-off'a ulaşıp ulaşmayacağını değiştirir.

Makalenin sonuGüncelleme: 7 Ekim 2026
[Santim SC-1]

Her CAN aracı. İlk günden hazır.

Santim SC-1, piyasadaki klasik CAN ve CAN FD bütün araçları destekler. Yeni bir araç çıktığında anında uyumlu hale gelir. Beklemeniz veya talep oluşturmanız gerekmez. Yeni nesil CAN cihazı.

Santim SC-1 CAN cihazı