Bu yazıya başlamadan önce eğer CAN Bus hakkında bilgi almak isterseniz aşağıda yer alan blog yazılarını inceleyebilirsiniz.
Bu blog yazısına giriş yapmak gerekirse, CAN Bus hattı üzerinden iletilebilecek maksimum paket sayısı, tanımlanan CAN hızı ve mesaj paket yapısı ile doğrudan ilişkilidir. Ancak CAN Bus mimarisinde yer alan bit stuffing mekanizması nedeniyle bu değer tek ve kesin bir sayı olarak ifade edilemez.
Başka bir deyişle; aynı CAN hızında çalışan iki sistemde, gerçekleşen paket sayısı, hatta efektif veri throughput’u birbirinden farklı olabilir.
Bit stuffing hakkında okuma yapmak isterseniz bu linkten inceleyebilirsiniz.
CAN Mesaj Çerçevesi ve Bit Seviyesinde Yapı
Standart bir CAN 2.0A (11-bit ID) veri çerçevesi aşağıdaki temel alanlardan oluşur:
- Start of Frame (SOF)
- Arbitration Field (ID + RTR)
- Control Field (DLC vb.)
- Data Field (0–8 byte)
- CRC Field
- ACK Field
- End of Frame (EOF)
Bu alanların nominal bit uzunlukları sabit gibi görünse de, bit stuffing devreye girdiğinde gerçek iletilen bit sayısı artar.
Bit Stuffing Nedir?
CAN protokolünde, arka arkaya 5 adet aynı seviyede bit (0 veya 1) iletildiğinde, alıcı ve verici senkronizasyonunu korumak amacıyla zıt seviyede bir bit otomatik olarak eklenir.
Bu eklenen bit:
- Veri değildir
- Çerçeveye ait değildir
- Ancak hattı meşgul eder
Dolayısıyla bit stuffing yoğunluğu arttıkça, aynı mesaj daha uzun sürede iletilir.
Teorik Maksimum Paket Sayısı Nasıl Yaklaşık Hesaplanır?
Teorik bir üst sınır hesaplamak için genellikle şu yaklaşım kullanılır:
- CAN hızı (bitrate) belirlenir. Örnek: 500 kbps.
- Bir CAN mesajının minimum ve maksimum bit uzunluğu hesaplanır. Bit stuffing yok varsayımı, iyimser senaryo. Bit stuffing maksimum varsayımı, kötümser senaryo.
- 1 saniyede iletilebilecek maksimum mesaj sayısı yaklaşık olarak bulunur.
Standard ve Extend Mesaj Tipleri için Teorik Maximum, Minimum Bit Sayısı
Bu kısımda verilen yüksek seviyedeki bit değerleri teoride ulaşılması güç değerlerdir. Genellikle düşük bit sayısına yakın bir değerde genellikle bir paket oluşturulur. Bu sayılarda mesaj paketlerinin tamamı 8-byte olarak kabul edilir.
| Frame Type | Standard Frame | Extended Frame |
|---|---|---|
| Minimum Bit Count | 111 | 128 |
| Maximum Bit Count | 130 | 140 |
Farklı frame tiplerinde maximum minimum bit sayısını bulduktan sonra iş kolay. CAN Bus için tanımlanan hız üzerinden bir bit için gereken süreyi hesaplayıp bulduğumuz bit sayıları ile çarpıyoruz.
Bunu 500 kbps hız üzerinden örnekleyecek olursak bir bit için gereken süre 1/500.000 olacaktır. Bu da 2 us değerine denk gelir.
2 us tablodaki değerler ile çarpıldığında 500 kbps hızında tanımlanmış bir CAN Bus hattında bir CAN paketi için gereken süre aşağıdaki gibi hesaplanır.
| Frame Type | Standard Frame | Extended Frame |
|---|---|---|
| Minimum Time | 222 µs | 256 µs |
| Maximum Time | 260 µs | 280 µs |
| Frame Type | Standard Frame | Extended Frame |
|---|---|---|
| Minimum Time Package Count | 4504 | 3906 |
| Maximum Time Package Count | 3846 | 3571 |