Ülkemizde sanayi, özellikle otomotiv sanayi her geçen gün önemini artırmaktadır. Ülkemizin otomotiv sanayine olan hassasiyeti ve arzusu bu yönde olan çalışmaların tetiklenmesine ve gelişmesinin ivmelenmesine sebep olmuştur. Fakat yine de birçok konuda olan yerli kaynak eksikliğinin otomotiv camiasında da büyük sıkıntı oluşturmasından dolayı, gelişmeler istenilen düzeylere ulaşamamaktadır. Bu sıkıntıları bir nebze olsun azaltmak amacı ile hazırlanmış olan bu yazı dizisinde CAN incelenecektir.

Çok fazla tarihi ayrıntılara girmeden CAN’in Robert Bosch GmbH şirketinde 1983’lü yıllarda başlanılan çalışmayla ortaya çıktığını ve resmi olarak 1986’da Society of Automotive Engineers (SAE/Otomotiv Mühendisleri Topluluğu) konferansında duyurulduğunu söyleyebiliriz.

Bunun yanı sıra bu iletişim protokolünü kullanan ilk işlemcilerin Intel ve Philipse ait olduğunu ve otomobilin ağ yapısını CAN olarak kullanan ilk otomobil markasının da BMW olduğunu ekleyebiliriz.

Endüstride oldukça yaygınlaşan CAN, endüstri için üretilmiş birçok cihazın dış dünyaya açılan iletişim kanalı olmuş durumda. Özellikle otomotiv denince akla ilk gelen iletişim kanalı diyebiliriz.

Endüstride sıkça kullanılan ve adını sıkça duyduğumuz MODBUS, PROFIBUS benzeri endüstriyel haberleşme ağları (fieldbus networks) gibi CAN de OSI (Open Systems Interconnections) standartlarına göre tasarlanmıştır. Fakat fieldbus ağları genelde tek bir ağdan oluştuğundan ve ağları birbirine bağlamak için protokollere ihtiyaç duymadığından genelde sadece OSI’nin 1, 2 ve 7. katmanı olarak belirttiğimiz katmanları göz önüne alınarak tasarlanmıştır.

Aslında bu 1, 2 ve 7. katmana zaman zaman ek olarak birçok iletişim noktasının aynı anda birbirleri ile rahatça iletişim kurabilmesi amaçlı session layer (oturum katmanı) olarak tanımlanan 5. katmanın da eklendiğini söyleyebiliriz. Bu yapı TTCAN’de (Time Triggered CAN/Zaman tetiklemeli CAN) ortaya çıkar. Bu konuya ilerleyen zamanlarda değinilecektir.

Layers OSI Layers TCP/IP Layers CAN Layers
7 Application Application Application
6 Presenttation
5 Session Session(TTCAN)
4 Transport Trasnport
3 Network Internet
2 Data Link Network Access Data Link
1 Physical Physical

Tablo 1-OSI modeline göre TCP/IP ve CAN

Tablo 1’de de görüleceği gibi; OSI standartlarına göre TCP/IP‘de karşılık gelen katmanlar OSI’nin bazı katlarını bir araya toplarken, CAN‘de bazı katmanlar hiç bulunmamaktadır.

CAN’de fiziksel katmanda; kablolama, kablo cinsi, kablo uzunluğu, konnektörler ve fiziksel katmanın elektronik bileşenleri gibi terimlerle uğraşılır. Data link katmanında framelerin çözümlenmesi, doğrulanması, adreslenmesi, paketlenmesi, hata kontrolü gibi kavramlar irdelenir.

Şekil 1-CAN Open bazlı CAN’in OSI modeli

Uygulama katmanında ise cihazlar arasındaki dili ortaya koyan protokoller işlenir. Şekil 1’de en meşhur uygulama katmanı protokollerinden CAN Open baz alınarak oluşturulmuş OSI modeli görülmektedir. Bu genel tanıtımdan sonra sırasyıla katmanları irdeleyelim.

Katmanları irdelemeye başlamadan önce yazı dizimiz boyunca neler yapacağımızdan bahsedelim ve yazımızın yalnızca teoriden ibaret kalmayıp pratiğe de dökeceğimizi belirtelim. Bu kapsamda; ilk olarak fiziksel katmandan bahsedilecek ve fiziksel katmanla alakalı devre tasarımları gerçeklenecek. Daha sonra data link layer incelencek ve CAN controller birimini içeren bir mikrodenetleyicide (STM32 veya Rensas RX) data link yazılımları yazılacak.

Baud rate hesaplamaları için optimizasyon çalışmaları yapılacak. TTCAN yapısından bahsedilecek. CAL (CAN Apllication Layer) standartlarından CAN Open protokolü ve SAEJ1939 protokolleri incelencek. CAN Open için kullancağımız işlemcimizde bir kütüphane hazırlanacak. Olabildiğince standartlara değinilerek professiyoneller için standartlara atıfta bulunulanacak. Son olarak basit bir debimetre CAN Open cihazına dönüştürülerek endüstriyel bir cihaz olarak hazırlanıp sunulacak.

Ahmet Cemal KURTULMUŞ