Açılımı “Controller Area Network” olan 1983 yılında Robert Bosch tarafından otomotivde kablo yumağı yerine bir kablodan yazılım kontrollü veri transferini sağlamak amacıyla geliştirilmiştir ve resmi olarak 1986 yılında kullanılmaya başlanmıştır. Bu protokol sayesinde motor, frenler, klima, çeşitli sensörler gibi birimler arasında onlarca kablo yerine sadece iki kablo kullanılmakadır. CAN protokolü başta otomotiv alanında kullanılsa da veri iletim hızı, hata oranının düşüklüğü ve uygulama kolaylığı gibi sebeplerden dolayı mikroişlemcili sistemlerde de çoğu kişi tarafından bireysel uygulamalarda kullanılmaktadır. Güvenliğin çok önemli olduğu gerçek zamanlı uygulamalarda da kullanılır. Öyle ki istatistiksel olasılık hesapları sonucunda bir asırda bir tane tespit edilemeyen mesaj hatası yapabileceği tespit edilmiştir. Uygulama alanı yüksek hızlı ağlardan düşük maliyetli çoklu kablolamalı sistemlere kadar geniştir. CAN-BUS; otomobil elektroniği, akıllı motor kontrolü, robot kontrolü, akıllı sensörler, asansörler, makine kontrol birimleri, kaymayı engelleyici sistemler, trafik sinyalizasyon sistemleri, akıllı binalar ve laboratuar otomasyonu gibi uygulama alanlarında maksimum 1Mbit/sn lik bir hızda veri iletişimi sağlar. Genel olarak iletişim hızı 40m de 1Mbit/sn iken bir km uzaklıklarda 40Kbit/sn ye düşmektedir. CAN diğer protokollerden farklı olarak mesaj temelli çalışmaktadır. Her mesaja özgü bir ID numarası vardır. Mesajlar çerçeveler ile iletilirler, veri ve istek mesajları olarak ikiye ayrılırlar. İstek mesajlarında veri bulunmaz. Veri mesajlarında ise en fazla sekiz baytlık veri aktarılır. CAN2.0A ve CAN2.0B olmak üzere iki tane standartı vardır. Bunlar arasındaki fark mesaj uzunluklarının farklı olmasıdır. İlerleyen kısımlarda bu iki kavram açıklanacaktır.
2. CAN- Bus Sisteminin Özellikleri
- Tüm üniteler iletim hattına eşit öncelikli veri yollama hakkına sahiptir. Buna multimaster(çok efendili) çalışma denir.
- Mesaj önceliği
- Kayıp zaman güvenliği
- Yapılandırma esnekliği
- Senkronizasyonlu çoklu kabul; aynu veri birçok ünite tarafından alınabilir
- Sistemdeki veri yoğunluğunu kaldırabilme
- Hata tespiti ve hataya ilişkin sinyalleri üretme
- Mesajın yollanmasında hata oluşması halinde mesaj iletim hattının(bus) boş olduğu anda otomatik olarak tekrar veri yollama
- Ünitelerde oluşan geçici ve kalıcı hataları ayırt edebilme ve özerk olarak kalıcı hatalı üniteleri kapatabilme
Bir sistemde her ünite bir anda veri yollamaya çalışırsa çatışmalar meydana gelir. Bu durumu önlemek için tüm ünitelerin her an iletim hattını dinler ve hattın boş olduğu anı yakalamaya çalışır. Hattı boş gören ünite kendisine ait veriyi yollar.
Tüm ünitelerin eşit
mesaj yollama özelliği bu iletişim sisteminin mesaj öncelikli sistem olmasından
kaynaklanır. İnternette tüm bilgisayarların bir numarası (IP) vardır ve veriler
o numaraya ait kişiye yollanır. CAN-Bus sisteminde ise ünitelere değil
mesajlara numara verilir. Örneğin yolda
kaza yapma ihtimali olan bir otomobili düşünelim. Sürücü çarpacağını fark eder
ve frene basar. Burada CAN-Bus sisteminin özelliğini aracın çarpışması durumuna
göre inceleyelim. Önden bir çarpışma durumunda sensörler devreye girer ve hava
yastıklarının açılması, yakıtın kesilmesi gibi bir dizi önlemler alınmalıdır.
Bu gibi işlerden sorumlu tüm ünitelere 1 no’lu mesaj (kaza oldu güvenlik
sistemleri devreye girsin) iletilmelidir. Bunu diğer ünitelere sensörlü sistem
söyleyecektir. Ancak o arada başka bir ünite motor ısısının kaç derece olduğunu
sürücü göstergesindeki ekrana bağlı üniteye göndermeye çalışsın. Peki hangisi
daha önemli? Bu durumda CAN-Bus sistemi tek kablo üzerinden eşit erişimli mesaj
yollanmasına izin verir fakat öncelikli mesajların daha önce iletilmesi iletim
çakışmalarını önler.
CAN, iletişim
ortamına erişim yöntemi olarak bit öncelikli yapı ile CSMA/CD kullanır. Bu
yöntem , mesajların çarpışmamasını garanti etmekle beraber, iletişim hattının
uzunluğunu sınırlandırır. Dolayısıyla, CAN düğümleri 1Mbit/s veri iletim hızı
ile 40 m ve 40 Kbit/s veri iletim hızı ile 1000 m’lik bir veri yolu üzerinden
bağlanabilirler.
CSMA/CD (Carrier
Sense Multiple Access with Collision Detection) yapısı CAN sisteminin daha
güvenli olmasını sağlar. Bu sistemi kısaca açıklayalım. CAN sistemindeki her
ünite iletim ortamını dinlemek zorundadır. Eğer bir ünite iletim ortamına veri
aktarmak isterse önce yolu dinler, yol boş ise veriyi iletir. Bazen uzak
mesafelerden kaynaklanan sebeplerden dolayı bir ünite yola veri aktarırken,
uzaktaki ünite diğer mesajın yolda olduğunu anlayamadığından kendi mesajını da
yolu boş zannederek bırakır. Böylece çatışma (collision) oluşur. İki ünite de
çatışmayı sezer ve veri aktarımını bir süre bekletir. Daha sonra iletim ortamı
boş olduğunda verileri tekrar yollamaya çalışırlar. CAN-BUS
sistemine gönderilen tüm veriler, ağdaki her ünite tarafında alınır. Üniteler
içinde bulunan filtre yardımıyla kendisini ilgilendiren mesajları alır
ilgilendirmeyen mesajları siler.
4. CAN-Bus Veri Paketleme Yapısı ve Mantığı
4.1. Mesaj ID Alanı(Arbitration Field)
CAN sistemlerinde veriler paketler halinde
iletilir. Ancak iki tip paketleme yapılır ve özel adları vardır. 11 bit
tanımlayıcıya sahip olanlar CAN 2.0A diğer adıyla standart CAN, 29 bit
tanımlayıcıya sahip olanlar ise CAN 2.0B extended (geliştirilmiş) CAN denir.
Aralarındaki temel fark, tanımlanabilecek mesaj sayısıdır. Standart CAN
sisteminde 2^11=2048 mesaj tanımlanabilirken geliştirilmiş Can sisteminde
2^29=536870912 mesaj tanımlanabilir. Bu bilginin tutulduğu alana mesaj ID alanı
adı verilir. Mesaj önceliğini belirlemek için buradaki sayı dikkate alınır.
Ayrıca mesaj ID alanı RTR biti de içerir. Eğer 1 ise gönderilecek pakete istek
çerçevesi (remote frame) denir. Eğer 0 ise veri çerçevesi (data frame) denir.
Bir ünite neden data frame yollar? Bu sorunun yanıtı kendisinde bulunan veriyi
iletmektir. Bir ünitenin istek çerçevesi yollamasının nedeni, ünitelerin başka
ünitelerden gelecek bilgiye ihtiyaç duymalarıdır. Karşı tarafa “bana şu bilgiyi
yolla” demenin yolu istek çerçevesi kullanmaktır. İstek çerçevesi yollayan bir
ünitenin veri alanı (data field) yoktur. Çünkü veri istemektedir. Istenen
veriye ilişkin mesaj ID alanında vardır.
4.2. Kontrol Alanı(Control Field)
6 bitten oluşur. İlk
biti standart veri paketlemesi mi ya da geliştirilmiş veri paketlemesi mi
yapıldığını belirtir. Ayrıca veri alanının kaç byte değerinden oluştuğunu
belirten bitlere sahiptir.
4.3. Veri Alanı(Data Field)
CAN-Bus iletişiminde
en fazla 8 byte bilgi iletilebilir. Bu değer 8 byte dan daha az olabilir.
Gönderilecek veri uzunluğu kontrol alanında belirtilir.
4.4. Dönüşssel Artıklık Kontrol Alanı(CRC Field)
15 bitlik CRC
sequence ve CRC delimiterden oluşur. Görevi pakete ait CRC kodunu tutmaktır.
Üniteye gelen pakete cevap verilebilmesi için ilk önce paketin doğruluğu
kontrol edilmelidir. Bunun için de ilk önce alınan paketin CRC paketi
hesaplanır. Daha sonra alıcı ünite paket ile birlikte gelen CRC değeri ile
hesaplanan değeri karşılaştırılır. İki değer birbirine eşit ise alınan paket
geçerlidir. Eğer iki değer,
birbirine eşit değilse mesajı alamadığını belirtmek için CRC hatasından
kaynaklı hata oluştuğunu belirten hata çerçevesi (error frame) yollar. Bu
bilgiyi alan gönderici veriyi tekrar yollamaya çalışır. Bu bilgiyi ünitelerden
sadece biri yollasa bile veri tekrar yollanmalıdır.
4.5. Alındı Bilgisi Alanı(ACK Field)
Bu bir mesaj
iletimiyle açıklanacak olursa; gönderici başla bitir ile iletim hattında şu an
gönderici benim der. Ardından mesaj ID alanı, kontrol alanı, CRC alanı
gönderilir. Alındı bilgisi alanında ise iletim ortamı çekinik tutulur. Eğer
diğer tüm ünitelerden biri, mesaj onu ilgilendirse yada ilgilendirmese dahi
mesajı alabiliyorsa iletim ortamını baskın yapar ve böylece gönderici en az bir
ünite veriyi alabildiği için bitir bitini yollayıp iletim ortamını diğerlerinin
kontrolüne bırakır. Yani alındı bilgisi alanında “aldınız mı?” sorusuna yanıt
beklenir. Eğer alındı bilgisi sürecinde herhangi bir üniteden alındığına dair
bilgi alamazsa ACK hatasından kaynaklı hata oluştuğunu belirten hata çerçevesi
üretilir ve gönderici tekrar yolamaya çalışır. Eğer gönderen istek çerçevesi
yollamışsa, alıcı da iletim hattının boş bir anında cevabını göndericiye
yollar.
4.6. Hata Çerçevesi(Error Frame)
Veri çerçevesi veya
istek çerçevesinin gönderiminde ya da alımında hata oluştuğunda gönderen veya
alıcılar tarafından ne tip hatanın olduğunu gösteren mesaj çerçevesidir.
CAN kullanım şekli bakımından iki şekilde görülür.
Biri Full-CAN diğeri ise Half-CAN tabirleri ile anılır. Bu ifadelerden kasıt
ise şöyledir. Eğer CAN denetleyici ve mikrodenetleyici birbirinden ayrı iseler
buna half-CAN denir. Ancak mikrodenetleyici kendi içinde CAN denetleyicisini de
barındırıyorsa Full-CAN olur. Full-CAN de mikroişlemciye daha az yüklenilir.
Ama başlangıçta CAN içermeyen bir sistemden CAN’ e geçmek için half-CAN daha
yararlıdır.
6. CAN-Bus Gelişim Süreci
6. CAN-Bus Gelişim Süreci
90’larda
CAN’ in gelişimi sonucunda CiA denen CAN in Automation kuruldu. Bu bağımsız
grup CAN özelliklerini belirlemekte ve gerçekleştirmektedir. Daha sonra
DeviceNET geliştirildi. DeviceNet endüstriyel cihazlarını (sensörs,aktuatör)
yük eviye cihazlarına(kontrolör) bağlamaya yarayan düşük seviye networktür.
DeviceNet özellikle düşük maliyet üzerine yoğunlaşmıştır. 1995’te CAN2.0B
geliştirilerekten bir CAN sistemine bağlı ünite sayısı 500 milyona
çıkarılmıştır. 1996’da CANopen geliştirilmiştir. Böylece uygulamada
kullanılabilirliği daha da artmıştır.
7. Sonuç
Mesaj içerikli haberleşmenin getirdiği kablolama kolaylığı ve bunun getirdiği düşük maliyet, hata tespit rutinlerinin çok güçlü olmasının getirdiği güvenirlik, yeni ünitelerin eklenmesi için sistemde değişime gitmemenin getirdiği kolaylık, saniyede 10000 mesaj iletimi sağlaması CAN-BUS’ ın önemli avantajlarıdır.
Mesaj içerikli haberleşmenin getirdiği kablolama kolaylığı ve bunun getirdiği düşük maliyet, hata tespit rutinlerinin çok güçlü olmasının getirdiği güvenirlik, yeni ünitelerin eklenmesi için sistemde değişime gitmemenin getirdiği kolaylık, saniyede 10000 mesaj iletimi sağlaması CAN-BUS’ ın önemli avantajlarıdır.
Hiç yorum yok:
Yorum Gönder