CANopen logo

CAN/CANopen ile ilgili yeterli Türkçe kaynak olmadığı için bu konuda bir yazı dizisi hazırlamaya karar verdim. Paylaşılan Türkçe içeriklerin çoğu yüzeysel bir anlatıma sahip ve kelime anlamı dışında okuyucuya pek bir şey kazandırmıyor. Çok güzel hazırlanmış birkaç içeriği saymazsak ne yazık ki bu konuda içerik çok kısıtlı. Bu yazıyı hazırlarken incelediğim Türkçe kaynakları yazının sonuna ekleyeceğim. İngilizce kaynak arayanların ise google amcaya soracağı ilk kelimeler şunlar olmalı:

  • can-cia
  • can-wiki info
  • canopensolutions
  • sae org
  • can-newsletter
  • ixxat
  • kvaser
  • National Instruments

CAN Bus nedir?

“Controller Area Network” CAN bir çok endüstriyel uygulamada kullanılan yaygın bir haberleşme sistemidir. Otomobiller ve asansör sistemleri gibi günlük hayatımızda sıkça kullandığımız araçlar can bus haberleşme sistemi ile çalışmaktadır. Tercih edilmesinin en büyük sebeplerinden birisi kablo karmaşasını ve kablo ağırlığını minimuma indirmesidir. Bir diğer önemli özelliği ise hata payının çok düşük olmasıdır.

Basit bir örnek vermek gerekirse: Normalde bir motor sürücü, motoru kontrol edebilmek için; gaz bilgisi, fren bilgisi, park freni bilgisi, vites/yön bilgisi, güç aktifleştirme bilgisi gibi analog veya dijital girdilere ihtiyaç duyar. Sürücüye her bir bilgiyi iletebilmek için ekstra kablo ihtiyacı vardır. Ayrıca aynı bilgileri motor sürücüden farklı bir cihaz da kullanacaksa, bu bilgileri o cihaza da götürmek için ekstra kablolar daha kullanılması gerekir. Can bus sisteminde ise tüm cihazlar iki haberleşme kablosu ve bir adet referans(ground/GND) kablosu kullanarak bağlanır ve tüm veriler bu haberleşme hattı üzerinden hattaki tüm cihazlara gönderilebilir.

CANopen nedir?

CANopen, CAN haberleşme sistemini temel alan yüksek seviyeli bir haberleşme protokolüdür. CAN protokolü OSI modelinde fiziksel katman ve veri katmanını kapsarken CANopen ise bu iki katmanın üstündeki diğer katmanları kapsamaktadır.

Başlangıçta taşıma sistemleri, robotik, endüstriyel araçlar gibi hareket odaklı makine kontrol sistemleri için tasarlanmıştır. Günümüzde tıbbi ekipman, arazi araçları, deniz elektroniği, demiryolu uygulamaları veya bina otomasyonu gibi çeşitli uygulama alanlarında kullanılmaktadır.

CAN haberleşme sistemi markalardan bağımsızdır. Yani birden farklı markada cihazı aynı haberleşme hattına bağlayıp kullanabilirsiniz. Ya da haberleşme hattında arızalanan bir ürün yerine, aynı ayarlamalar yapılmış farklı bir marka ürün kullanabilirsiniz.

CAN haberleşme sistemi her ne kadar markalardan bağımsız tasarlanmış olsa da firmalar müşterilerini kendilerine bağımlı kılmak için farklı yollar deniyorlar. CANopen protokolü üreticiye esnek bir yapı sunduğu için, her üretici kendine özgü bazı tanımlamalar yapıp bunları son kullanıcılar ile paylaşmayarak gizliliğini ve müşterinin bağımlılığını sağlamaya çalışıyorlar. Örneğin; bazı marka slave cihazların aynı marka master cihazlar olmadan çalışmaması gibi.

Konuya kısa bir giriş yaptıktan sonra tarihçeyi atlayarak CANopen kullanacak kişilerin bilmesi gereken terimlere geçmek istiyorum. Tarihçe ile ilgili Robert Bosch amcamızın kemiklerini sızlatacak kadar çok paylaşım zaten var.

CAN hattının basit fiziksel yapısı:

CAN_topoloji
CiA 303-1 / Gerekli Standart: ISO 11898-2
Haberleşme hattı aktifken CAN_H ve CAN_L arasındaki direnç 60Ω olarak ölçülmelidir.

CAN haberleşme iki kablo ile sağlanır, bükümlü(twisted) kablo kullanımı manyetik alan etkisini önemli ölçüde azaltır. Kablo çapı 0.34 mm2 ve 0,6 mm2 arasında seçilebilir, hat(kablo) uzunluğu haberleşme hızı seçimi konusunda önemlidir. Fiziksel sinyal iletiminde elektromanyetik uyumluluk sağlamak için simetrik iki sinyal kullanılır(CAN-H, CAN-L).

CAN hattının fiziksel yapısı bazı özel durumlara göre değişiklik gösterebiliyor. High Speed Can / Yüksek Hızlı Can diye tabir edilen versiyonda direnç kullanılması gerekliyken, Low Speed Can / Düşük Hızlı Can kullanılıyorsa dirence ihtiyaç olmayabilir. Bağlantı şekilleri ve tanımları temel olarak verdikten sonra bu konuları detaylı bir şekilde açıklamayı düşünüyorum. Bu yüzden şimdilik bu bilgi bizim için yeterli.

Master / Slave Cihaz nedir?

CANopen haberleşme protokolünde Master ve Slave terimleri kullanılıyor. Bu terimler, cihazın haberleşme hattındaki davranışlarının belirlenmesi ile ilgilidir. Master olarak adlandırılan cihaz; CANopen haberleşmesini başlatmak veya durdurmak, hattaki slave cihazların çalışma durumlarını kontrol etmek, slave cihazları kapatmak veya yeniden başlatmak, slave cihazların ayarlarını yapmak veya değiştirmek gibi kritik yetkilere sahiptir.

Master cihaz için çok basit bir örnek verirsek, bir otomobildeki Elektronik Kontrol Ünitesi(ECU) verileri işleyip kararları veren ve hattaki diğer cihazları kontrol eden elemandır. Endüstriyel uygulamalarda bu görevi genelde PLC veya endüstriyel PC gerçekleştirmektedir.

Aydınlatma, motor kontrol cihazları, sensörler, giriş-çıkış modülleri, kontrol paneli veya tüm bu araçları CANopen haberleşme hattına bağlayan cihazlar slave olarak adlandırılabilir. Bir cihazın Master veya Slave olması donanımsal ihtiyaçlara bağlı olduğu gibi yazılıma da bağlıdır. Yani Master olarak kullanılan bir cihaz yazılım değişiklikleri ile Slave olarak da kullanılabilir. Bazı durumlarda tam tersi de mümkündür, ancak bu durumlar tamamen cihazın yapısının daha önceden bu duruma uygun olarak geliştirilmesine bağlıdır.

Endüstriyel uygulamalarda çoğunlukla hatta sadece bir adet master bulunur ve diğer elemanlar slave olarak kullanılır. Bu durum karar alma ve uygulama konusundaki karışıklıkları engeller. Ancak hatta bir adet master olması zorunlu değildir. Üretilecek sistemin kurgusuna göre birden fazla master kullanılabilir. Böyle bir hatta dikkat edilmesi gereken bazı durumlar vardır. Örneğin ileride bahsedeceğim bir konu olan NMT durum mesajı tek bir master tarafından kontrol edilmelidir.

Node ID nedir?

“Node” kelimesi “düğüm” anlamına gelmektedir. Haberleşme hattındaki her bağlantı bir düğüm olarak adlandırılır. CANopen haberleşme hattındaki her düğümün yani hattaki her cihazın “ID” kimlik numarası olması gerekir. Bu kimlik numarası her cihaz için farklı, yani kendine özgü olmalıdır. Birden fazla cihazın aynı Node ID’yi kullanması durumunda veri iletiminde veya haberleşmede hatalar, sorunlar çıkabilmektedir. Bu durum tercih edilmez. CANopen destekleyen cihazlar varsayılan bir Nod ID ile gelmektedir ancak bu kimlik numarası sonradan kullanıcı tarafından değiştirilebilir.

Low-Speed Can hattında 32 adet düğüm yani cihaz bulunabilirken, High-Speed Can hattında 110 cihaz bulunabilir.

  CAN hattındaki cihazların "node id"leri birbirinden farklı olmalıdır. 

Baud rate nedir?

Baud rate haberleşme sistemlerinin genelinde kullanılan bir terimdir. Hattaki cihazların ürettiği veya aldığı, saniyedeki pulse sayısıdır. CANopen haberleşme hızı, kullanacağınız fiziksel bağlantıya yani kablo uzunluğuna bağımlıdır. Kablo uzunluğu arttıkça kullanabileceğiniz haberleşme hızı düşer. Ayrıca hattaki tüm cihazların aynı baud rate ile çalışabilmesi gerekmektedir. Hattaki herhangi bir elemanın haberleşme hızı farklı ise haberleşme sorunları yaşanır. Haberleşme bağlantısının kurulamadığı durumlarda ilk kontrol edilmesi gereken ayarlardandır.

         CiA 301 4.2
 Bit rate(Hız)      Bus length(Kablo Uzunluğu)
 1 Mbit/s                  25 m
 800 kbit/s                50 m
 500 kbit/s               100 m
 250 kbit/s               250 m
 125 kbit/s               500 m
 50 kbit/s              1.000 m
 20 kbit/s              2.500 m
 10 kbit/s              5.000 m
Aynı haberleşme hattına bağlı tüm cihazların "baudrate" değerleri aynı olmalıdır.

Bu yazıda CANopen ile haberleşmeye kısa bir giriş yapmış olduk. Bir sonraki yazımda SDO nedir, PDO nedir, NMT mesajı nedir gibi sorularla biraz daha detaya girmeye çalışacağım. Yazımın başında bahsetmiş olduğum Türkçe kaynak linklerini buraya bırakıyorum, umarım faydalı olur:

CAN BUS ile ilgili kaynaklar:

CANopen ile ilgili kaynaklar:

Listeyi sürekli güncel tutmaya çalışacağım, gözden kaçan güzel bir kaynak varsa lütfen yorum olarak yazın.


Bir Cevap Yazın

%d blogcu bunu beğendi: