CAN kısa mesajlar kullanır- maksimum fayda yükü 94 bittir. Mesajlarda açık bir adres yoktur; bunun yerine, mesajların içerik adresli olduğu söylenebilir, yani içerikleri örtük olarak adreslerini belirler.
Mesaj Türleri
Bir CAN veriyolunda dört farklı mesaj türü (veya “çerçeve”) vardır:
Veri Çerçevesi
Özet: “Herkese merhaba, işte X etiketli bazı veriler, umarım beğenirsiniz!”
Veri Çerçevesi en yaygın mesaj türüdür. Aşağıdaki ana bölümlerden oluşur (kısa olması için birkaç ayrıntı atlanmıştır):
İki ya da daha fazla düğümün veri yolu için yarıştığı durumlarda mesajın önceliğini belirleyen Tahkim Alanı. Tahkim Alanı şunları içerir:
Not 1: Veri yolunda bir Onay Bitinin varlığının, hedeflenen muhataplardan herhangi birinin mesajı aldığı anlamına gelmediğini belirtmek gerekir. Bildiğimiz tek şey, veri yolu üzerindeki bir veya daha fazla düğümün mesajı doğru bir şekilde aldığıdır.
Not 2: Tahkim Alanındaki Tanımlayıcı, adının aksine, mesajın içeriğini tanımlamak zorunda değildir.
Uzak Çerçeve
Özet: “Herkese merhaba, lütfen birisi X etiketli veriyi üretebilir mi?”
Uzak Çerçeve tıpkı Veri Çerçevesi gibidir, ancak iki önemli fark vardır:
Uzak Çerçevenin amacı, ilgili Veri Çerçevesinin iletilmesini talep etmektir. Diyelim ki, A düğümü Tahkim Alanı 234 olarak ayarlanmış bir Uzak Çerçeve iletirse, B düğümü uygun şekilde başlatılmışsa, Tahkim Alanı da 234 olarak ayarlanmış bir Veri Çerçevesi ile yanıt verebilir.
Uzak Çerçeveler bir tür istek-yanıt tipi veri yolu trafik yönetimi uygulamak için kullanılabilir. Ancak pratikte Uzak Çerçeve çok az kullanılır. CAN standardının burada özetlenen davranışı öngörmediğini de belirtmek gerekir. Çoğu CAN kontrol cihazı, Uzak Çerçeveye otomatik olarak yanıt verecek veya bunun yerine yerel CPU’yu bilgilendirecek şekilde programlanabilir.
Uzak Çerçeve ile ilgili bir sorun vardır: Veri Uzunluk Kodu beklenen yanıt mesajının uzunluğuna ayarlanmalıdır. Aksi takdirde arbitrasyon çalışmayacaktır.
Bazen Uzak Çerçeveye yanıt veren düğümün, tanımlayıcı tanınır tanınmaz iletimine başladığı ve böylece boş Uzak Çerçeveyi “doldurduğu” iddia edilir. Böyle bir durum söz konusu değildir.
Hata Çerçevesi
Özet: (herkes, yüksek sesle) “HADİ TEKRAR DENEYELİM”
Basitçe söylemek gerekirse, Hata Çerçevesi bir CAN mesajının çerçeveleme kurallarını ihlal eden özel bir mesajdır. Bir düğüm bir hata algıladığında iletilir ve diğer tüm düğümlerin bir hata algılamasına neden olur – böylece onlar da Hata Çerçeveleri gönderir. Mesajı ileten daha sonra otomatik olarak mesajı yeniden iletmeyi deneyecektir. Bir düğümün Hata Çerçevelerini tekrar tekrar ileterek veri yolu trafiğini yok etmemesini sağlayan ayrıntılı bir hata sayaçları şeması vardır.
Hata Çerçevesi, aynı değere sahip 6 bitlik bir Hata Bayrağı (böylece bit doldurma kuralını ihlal eder) ve 8 resesif bitlik bir Hata Sınırlayıcıdan oluşur. Hata Sınırlayıcı, veri yolundaki diğer düğümlerin ilk Hata Bayrağını tespit ettiklerinde Hata Bayraklarını gönderebilecekleri bir alan sağlar.
Aşırı Yük Çerçevesi
Özet: “Ben çok meşgul küçük bir 82526’yım, lütfen biraz bekler misiniz?”
Aşırı Yük Çerçevesinden burada sadece bütünlük için bahsedilmiştir. Format açısından Hata Çerçevesine çok benzer ve çok meşgul olan bir düğüm tarafından iletilir. Aşırı Yük Çerçevesi çok sık kullanılmaz, çünkü günümüz CAN kontrolörleri bunu kullanmayacak kadar akıllıdır. Aslında, Aşırı Yük Çerçeveleri üretecek tek kontrolör artık kullanılmayan 82526’dır.