Controller Area Network Yapısı | Bi Tutam Bilişim :) | Bi tutam bilişim :)
Katman der demez benim aklım OSI ye gidiyor. Sanırım pek çoğumuzun da öyledir. CAN’ ın katman yapısı ise OSI’ den oldukça farklı.
CAN 3 katmandan meydana gelmektedir. Ve Frame bazında işlem yaptığı için OSI ile karşılaştıracak olursak ilk 2 katmana karşılık gelir.Nesne katmanında (Object Layer) temel olarak paket ayıklama ve öncelik belirleme işlemleri gerçekleşir. Transfer katmanında (Transfer layer) hata tespiti(error handling), arbitration dediğimiz bit çekişmesi ve onay (ACK) işlemleri gerçekleşirken ; fiziksel katmanda (pyhscial layer) sinyal seviyesi ve zamanlama, bit gösterimi gibi kavramlar karşımıza çıkmaktadır.
CAN ‘ın modül yapısında CAN kontrolcüsü(CAN controller), CAN sürücüsü(CAN driver), mikrodenetleyici(microcontroller) bulunur. Mikrodenetleyici ile CAN kontroller aynı entegrede bulunabileceği gibi farklı aynı entegrede de bulunabilir. Driver sadece sinyal seviyesi ile ilgilenir. CAN ise mikrodenetleyici tarafından kontrol edilir.Çünkü CAN düşük seviyeli bir protokoldür ve bu sebeple yazılım ile kontrole ihtiyaç duyar.
Çalışma prensibi olarak mesajını bütün ağa iletir. Mesajlar bit bit gönderilir. En az iki düğümden oluşurken; gönderen dahil bütün düğümler haberleşme esnasında aktif rol alırlar ve her paket her düğüme ulaştırılır yani herkes her frameden haberdardır. Ve her düğüm kendisine gelen mesajı kaydederek kullanıp kullanmayacağına karar verir.
Frame Yapısı ve Çeşitleri
4 tane frame çeşidi vardır.
Data Frame (bilgi)
Aşağıda data ile remote frame farkı gözetmeksizin temel bir CAN frame yapısı yer almaktadır.
Framedeki alanlara bakarsak.
Arbitration Field : 11-29 bitten meydana gelen ve her frame özelolan ID ile RTR alanını içerir. RTR alanı 1 ise remote frame olurken; 0(sıfır) ise data frame halini alır.
Kontrol Alanı(Control Field) : Veri uzunluğu kodu DLC yi içerirken 2 biti extented frame tarafından kullanılır.
Veri Alanı(Data Field): 8 byte veri alanıdır. Yani bilginin bulunduğu kısımdır. Fullde olabilir; boş da olabilir.
CRC Alanı (CRC Field) : Verinin checksum bitleridir. Mesajın tipine göre optimize edilir. Checksum yöntemi bildiğimiz gibi veri uzunluğunun yarısını kapsayan uzunluktadır. Bir hata kontrol yöntemidir.
Onay -ACK- Alanı (Acknowledgement Field) : Mesajın alındığına dair verilen onay paketidir. Mesaj alındığında 1 den 0 durumuna geçer.
EOF Alanı : End Of Frame dedğimiz frame in sonu olduğun belirten alandır. Hemen akabinde gelen int ise 2 frame arası 3 bit boşluktur.
Senkronizasyon – Stuff Biti Nedir ?
Birbirini farklı izleyen bitlerde senkronizasyon düşen kenar ile tespit edilir. Alıcı düşen kenar gördüğünde bit ayrımını yapabilir. Ancak sürekli aynı değerde veri gelmesi ihtimali de vardır. Örneğin: ethernette manchester kodlama dediğimiz 1 bitin 2 bit ile ifade edilmesi yöntemi vardır ve senkronizasyon bu şekilde sağlanır. CAN için ise stuffing dediğimiz yöntem vardır. Stuffing her 5 aynı bitte 6.bitin ters bit şeklinde gelmesidir. Bu yöntemin olumsuz yanı ise stuff bitlerinin gereksiz yere uzamalara sebep olmasıdır.
CAN Hata Tespiti ve Hata Tipleri
CAN deki her mesaj ciddi önemler taşır. Sistemin düzgün işlemesi için hata olmaması çok önemlidir. Bu nedenle farklı hata yakalama yöntemi varken 5 te farklı hata tipi vardır.
Hata Tespit Yöntemleri:
Gönderici tarafından bit kontrolü
Stuff kural kontrolü
Stuff biti hatası
Hata halinde bir sonraki hata bayrağı(error flag) çeker.
Not : Yazıya ait ilk resim CAN için kendi oluşturduğum zihin haritasıdır.**
CAN ingilizce açılımı ile Controller Area Network türkçesi ile ise Kontrol Alan Ağı Veri Yolu olan endüstriyel alanlarda çözüm sunarak haberleşmeyi sağlayan protokoldür.Performansı ve güvenilirliği oldukça yüksektir ki bu sebeple gerçek zamanlı uygulamalarda tercih edilmektedir. 1983 yılında CAN-Bus olarak BOSH tarafından geliştirilmiş, 1986 yılında resmi olarak SAE tarafından piyasaya sürülmüş ve ilk CAN Chip 1987 yılında intel tarafından üretilmiştir. CAN(Controller Area Network) Nerelerde Kullanılır? *CAN(Controller Area Network) ‘in en yaygın ve önemli kullanım alanı otomotiv sektörüdür.Ford, Mazda, BMW, Volva, Mercedes, Land Rover gibi pek çok firma tarafından kullanılmaktadır. Otomotivde araç içindeki neredeyse bütün haberleşme CAN ile sağlanır. Fren sisteminden hava yastıklarına yada cam açma komutlarına kadar olan sistem CAN(Controller Area Network) kontrolündedir.(Daha sonra sistemin nasıl işlediğini de inceleyeceğiz) *Tren yolu…