
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ı:

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:
- CAN Bus nedir? CAN protokolü incelemesi – Barış SAMANCI
- CAN Bus: Şu Araç Ağ İletişimi Dedikleri— Giriş – Can ACAR
- CAN Bus Nedir ve Nerelerde Kullanılır? – Elektrikport
- CAN BUS NEDİR ?
- CAN-Bus Protokolü
- Mikrodenetleyici Tabanlı Kontrol Biriminin Can-Bus ile Haberleştirilmesi – Roboturka
- CAN-BUS HABERLEŞME PROTOKOLÜ İLE BİNA ENERJİ YÖNETİMİ UYGULAMASI – Onur KALAYCI, Mükremin AY
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.
Geri bildirim: Sürücüsüz Otomobillerin Temelleri - Semih Cengiz
CANopen tanıtım yazınız için teşekkürler devamı gelecek mi acaba?
SDO nedir, PDO nedir, NMT mesajı
Yorum için teşekkürler. Hazırladığım bu yazı baya eski, ne yazık ki bu tip yazılar hazırlamak zahmetli ve çok vakit alıyor. Devam etmek her zaman aklımın bir köşesinde ancak ne zaman mümkün olur bilemiyorum. Sizi bekletmemek adına güzel bir kaynak paylaşabilirim, ne yazık ki ingilizce. Umarım işinize yarar. https://www.csselectronics.com/pages/can-bus-intros-tutorials
Canopen haberleşme sistemini ESa italy firmasının sürücü leri sayesinde öğrenmek zorunda kaldım ebs-6 drive model sürücü ve 2 . El sürücü ve motorlar aldım puls- ve dır olarak süreceğimi düşündüm ama malesef kullanmadım, yukarıda anlattığıniz gibi firma biz bu ürüne destek vermiyoruz diyerek ürünlerin kullanılamaz olmasını istiyor destek vermiyor, bende bu ürünleri CNC 3 eksen makina da kullanmak için azimle her kapıyı çalıyorum ama şimdiye kadar cevap bulamadım, yoruldum, üretici firmanın amacına teslim olmak üzereyim bunları çöpe atacağız galiba 😢
Merhaba İsmail Bey,
Geç dönüş yaptığım için kusura bakmayın bu ara siteye vakit ayıramıyorum. Maalesef elinizde ürünlere ait canmap(.eds uzantılı bir dosya) veya hangi mesajlarla hangi komutları kontrol etmeniz gerektiğine dair bir doküman yoksa ürünü çalıştırabilmeniz pek mümkün değil. Çünkü üretici istediği mesaja istediği komutu koyabilir ve eğer isterse açılış senkronizasyonu için özel bir şifreleme bile atayabilir. Bu da ürünü rastgele mesaj denemelerine korunaklı kılıyor. Örneğin her 50ms sürede bir 100 numaralı mesaj ID’sinin 5.biti 1 olsun ve bir sonraki mesajda 0 olsun gibi senkronizasyon işlemleri atayabiliyorlar. Eğer forumlarda vs bir kaynak dokümanı yoksa ve üretici de destek olmuyorsa maalesef yapabilecek pek bir şey yok. En azından benim deneyimimle durum bu.