CANBUS

CAN-BUS Haberle┼čme Sistemi Hakk─▒nda K─▒sa Makale

Canbus Nedir?

A├ž─▒l─▒m─▒ ÔÇťController Area Network BusÔÇŁ olan yani ÔÇťKontrol Alan A─č─▒ Veri yoluÔÇŁdur.1980ÔÇÖ lerde Robert Bosch taraf─▒ndan otomotivde kablo yuma─č─▒ yerine bir kablodan yaz─▒l─▒m kontroll├╝ veri transferini sa─člamak amac─▒yla geli┼čtirilmi┼čtir. CAN, otomotiv end├╝strisindeki en bilinen haberle┼čme sistemidir. Her ne kadar ba┼člang─▒├žta yaln─▒zca otomotiv uygulamalar─▒ i├žin tasarlanm─▒┼č olsa da y├╝ksek performans─▒ g├╝venirlili─činden dolay─▒ bir├žok da─č─▒t─▒k (distrubuted) end├╝striyel kontrol uygulamalar─▒nda yayg─▒n olarak 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.
CAN-BUSÔÇÖ ─▒ ISO/OSI Reference i ├╝zerinden a├ž─▒klamak istersek CANBUS
OSI Layers
┼čeklinde ├╝├ž alt b├Âl├╝me ay─▒rabiliriz.
  • Nesne Katman─▒ (object layer)
  • ─░letim Katman─▒ (Transfer layer)
  • Fiziksel Katman (Physical layer)
Nesne ve iletim katmanlar─▒ data link layerin t├╝m servis ve fonksiyonlar─▒n─▒ olu┼čturur.
Nesne Katman─▒n─▒n g├Ârevleri;
  • Hangi mesaj─▒n transfer edilece─čini tespit etmek,
  • ─░letim katman─▒nda hangi mesaj─▒n al─▒naca─č─▒na karar vermek,
  • Donan─▒mla ilgili uygulamaya aray├╝z sa─člamakt─▒r.
─░letim katman─▒n─▒n ba┼čl─▒ca g├Ârevi transfer protokol├╝d├╝r. ├ľrne─čin: ├žer├ževe (frame) kontrol├╝, mesaj ├Ânceli─či belirleme, hata kontrol├╝, hata sinyalle┼čmesi, hata kapatma. ─░letim katman─▒ yeni bir mesaj─▒ yollamadan ├Ânce iletim hatt─▒n─▒n bo┼č olmas─▒na dikkat eder. ─░letim hatt─▒ndan veri al─▒nmas─▒ndan da sorumludur. Ayr─▒ca senkron ileti┼čim i├žin veri transferi s─▒ras─▒nda bit zamanlamas─▒n─▒n baz─▒ parametrelerini g├Âz ├Ân├╝nde bulundurur.
CAN-BUS ├╝zerinden haberle┼čen t├╝m sistem bile┼čenlerine ├╝nite(node) denir. ├ľrne─čin 100 tane birbirinden ba─č─▒ms─▒z mikrodenetleyicili devrelerimiz olsun. Bunlar─▒ CANÔÇöBUS sistemi ile haberle┼čtirdi─čimizi varsay─▒m. Bu sistemde her bir mikrodenetleyicili sistem bir ├╝niteyi olu┼čturur.
Fiziksel Katman, ├╝niteler aras─▒nda veri haberle┼čmesi s─▒ras─▒ndaki t├╝m elektriksel k─▒s─▒md─▒r.
CAN-BUS sisteminin sahip oldu─ču ├Âzellikler:
  • Mesaj ├Ânceli─či
  • Kay─▒p zaman g├╝venli─či
  • Yap─▒land─▒rma esnekli─či
  • Senkronizasyonlu ├žoklu kabul: Ayn─▒ veri bir├žok ├╝nite taraf─▒ndan al─▒nabilinir
  • Sistemdeki veri yo─čunlu─čunu kald─▒rabilme
  • ├çok efendili (Multimaster) ├žal─▒┼čma
  • Hata tespiti ve hataya ili┼čkin sinyalleri ├╝retme
  • Mesaj─▒n yollanmas─▒nda hata olu┼čmas─▒ halinde mesaj─▒n iletim hatt─▒n─▒n (BUS) bo┼č oldu─ču bir anda mesaj─▒n otomatik tekrar yollama
  • ├ťnitelerde olu┼čan ge├žici ve kal─▒c─▒ hatalar─▒ ay─▒rt edebilme ve ├Âzerk olarak kal─▒c─▒ hatal─▒ ├╝niteleri kapatabilme
├çal─▒┼čma Mant─▒─č─▒
CAN-BUS sisteminde t├╝m ├╝niteler iletim hatt─▒na e┼čit ├Âncelikli veri yollama hakk─▒na sahiptirler. Buna multimaster ├žal─▒┼čma denir. Hatas─▒z veri ileti┼čimi nas─▒l olur? Herkes bir anda veri yollamaya ├žal─▒┼č─▒rsa ├žat─▒┼čmalar olaca─č─▒ a├ž─▒k. Bunun ├ž├Âz├╝m├╝ ┼č├Âyle sa─članm─▒┼č. T├╝m ├╝niteler her daim iletim hatt─▒n─▒ dinlemek zorundad─▒r. Yani her ├╝nite iletim hatt─▒n─▒n bo┼č oldu─ču an─▒ yakalamaya ├žal─▒┼č─▒r. Hatt─▒ bo┼č g├Âren verisini yollar.
T├╝m ├╝nitelerin e┼čit mesaj yollama ├Ânceli─či olsada i┼čin asl─▒ biraz ├Âyle de─čil. Bunun sebebi, CANÔÇÖ in mesaj ├Âncelikli bir sistem olmas─▒ndan dolay─▒d─▒r. ─░nternette t├╝m PCÔÇÖ lerin bir numaras─▒ (IPsi) vard─▒r ve veriler o IP li ki┼čiye yollan─▒r. Zaten bu y├╝zden bol kablolamal─▒ bir sistemdir. Ancak CAN de ├╝nitelere de─čil mesajlara numara verilir. ├ľrne─čin bir otomobil d├╝┼č├╝nelim. Aceleci ┼čof├Âr├╝m├╝z yolda h─▒zl─▒ca giderken bir arabaya ├žarpacak olsun. ┼×of├Âr ├žarpaca─č─▒n─▒ fark eder ve t├╝m g├╝c├╝yle frene as─▒l─▒r. Burada CANÔÇÖ in ├Ânemi arabalar─▒n kaza yapmas─▒ ile ba┼člar. Mesela ├Ânden ├žapt─▒ ve sens├Ârler bunu fark etti─činde hava yast─▒klar─▒n─▒n a├ž─▒lmas─▒, yak─▒t─▒n kesilmesi gibi bir dizi ├Ânlemler al─▒nmal─▒d─▒r. Bu i┼člerden sorumlu t├╝m ├╝nitelere 1 numaral─▒ mesaj (kaza oldu g├╝venlik sistemleri devreye girin) iletilmelidir. Bunu sens├Ârl├╝ sistem s├Âyleyecektir di─čer ├╝nitelere. Ancak o ara ba┼čka bir ├╝nite mesela motor ─▒s─▒s─▒n─▒n ka├ž derece oldu─čunu kokpitte ki LCD li ├╝niteye yollamaya ├žal─▒┼čs─▒n. Sizce hangisi ┼ču anda daha ├Ânemli! ─░┼čte CAN tek kablo ├╝zerinden e┼čit eri┼čimli mesaj yollanmas─▒na izin verir ama ├Âncelikli mesajlar─▒n daha ├Ânce iletim ortam─▒na iletilmesine de ├Âzen g├Âsterir.
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├╝─č├╝mler 1 Mbit/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) den k─▒saca bahsedersek CAN sistemi, g├╝venli ileti┼čim g├╝c├╝n├╝ bu yap─▒y─▒ kullanmas─▒ndan al─▒r. Bir CAN haberle┼čmesi ├Ârne─či ile CSMA/CD n─▒n rol├╝n├╝ 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 verisini yola iletir. Bazen uzak mesafelerden de kaynaklanan sebeplerden dolay─▒ bir ├╝nite yola veri aktar─▒rken, uzaktaki di─čer ├╝nite 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 ├╝nitede ├žat─▒┼čmay─▒ sezer ve her iki ├╝nitede veri aktar─▒m isteklerini bir s├╝re bekletir. Daha sonra iletim ortam─▒ bo┼č oldu─čunda verilerini tekrar yollamaya ├žal─▒┼č─▒rlar.
CAN-BUSÔÇÖ a g├Ânderilen t├╝m veriler t├╝m ├╝niteler taraf─▒ndan al─▒n─▒r. Her ├╝nite i├žinde bulunan filtreler yard─▒m─▒yla kendisini ilgilendiren mesajlar─▒ al─▒r, ilgilendirmeyenleri ise ├ž├Âpe atar.
CAN-BUS Veri Paketleme Yap─▒s─▒ ve Mant─▒─č─▒
Mesaj ID Alan─▒ (Arbitration Field) (=Yarg─▒c─▒l─▒k Alan─▒)
CAN sistemlerinde veriler paketler halinde iletilir. Ancak iki tip paketleme yap─▒l─▒r ve ├Âzel adlar─▒ da vard─▒r. 11bit tan─▒mlay─▒c─▒ya sahip olanlar CAN2.0A di─čer ad─▒yla Standart CAN, 29bit tan─▒mlay─▒c─▒ya sahip olanlara ise CAN2.0B di─čer ad─▒yla Geli┼čtirilmi┼č (Extended) CAN denir. Aralar─▒ndaki temel fark ise tan─▒mlanabilinecek mesaj say─▒s─▒d─▒r. Standart CAN de 2^11 = 2048 mesaj tan─▒mlanabilinirken, Geli┼čtirilmi┼č CAN de 2^29 = 536.870.912ÔÇŽmesaj tan─▒mlanabilinir. Bu bilginin tutuldu─ču alana mesaj id alan─▒ denir. Mesaj ├Ânceli─čini belirlemede buradaki say─▒ dikkate al─▒n─▒r. Ayr─▒ca, mesaj id alan─▒ RTR biti de i├žerir. E─čer 1 ise g├Ânderilecek pakete ─░stek ├ç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. Peki bir ├╝nite neden istek ├žer├ževesi yollar? Bu sorunun yan─▒t─▒ da ┼č├Âyledir. Bazen ├╝niteler ba┼čka ├╝nitelerden gelecek bilgiye ihtiya├ž duyarlar. 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. ─░stenen veriye ili┼čkin bilgi Mesaj ID Alan─▒nda vard─▒r.
Kontrol Alan─▒ (Control Field)
6bitten olu┼čur. ─░lk biti standart veri paketlemesi mi yoksa geli┼čtirilmi┼č veri paketlemesi mi yap─▒ld─▒─č─▒n─▒ belirtir. Ayr─▒ca Veri Alan─▒n─▒n ka├ž byte ten olu┼čtu─čunu belirten bitlere de sahiptir.
Veri Alan─▒ (Data Field)
CAN-BUS ta bir anda en fazla 8byte l─▒k veri yollanabilir. Yani Veri Alan─▒ uzunlu─ču en azla 8byte olur. Ama daha da az olabilir. G├Ânderilecek veri uzunlu─ču Kontrol Alan─▒nda belirtilir.
D├Ân├╝┼čsel Art─▒kl─▒k Kontrol Alan─▒ (Cyclic Redundancy Control Field ÔÇô CRC Field)
15bitlik CRC Sequence ve CRC Delimiter dan 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 de─čeri 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.
Al─▒nd─▒ Bilgisi Alan─▒ (Acknowledgement Field - ACK Field)
Bunu bir mesaj iletimiyle a├ž─▒klayal─▒m. G├Ânderici Ba┼čla biti ile iletim hatt─▒nda ┼ču an g├Ânderici benim der. Ard─▒ndan Mesaj ID Alan─▒, Kontrol Alan─▒, Veri 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 ya da 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 kullan─▒m─▒ i├žin 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 yollamaya ├žal─▒┼č─▒r.
E─čer g├Ânderen ─░stek ├çer├ževesi yollam─▒┼čsa, al─▒c─▒ da iletim hatt─▒n─▒n bo┼č bir an─▒nda cevab─▒n─▒ g├Ândericiye yollar.
Hata ├çer├ževesi (Error Frame)
Veri ├çer├ževesi ya da ─░stek ├çer├ževesinin g├Ânderiminde ya al─▒m─▒nda hata olu┼čtu─čunda g├Ânderen ya da al─▒c─▒lar taraf─▒ndan ne tip hatan─▒n oldu─čunu belirten mesaj ├žer├ževesidir.
Kullan─▒m T├╝rleri
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.
EMI:( Elektromagnetik Parazit)
CAN, elektromagnetik parazitlerden etkilenmez. E─čer elektromanyetik parazit iletim ortam─▒n─▒ etkilerse CAN_H, CAN_L ayn─▒ ┼čekilde etkilenece─činden sistemler sorunsuzca ├žal─▒┼č─▒r. CAN_H, CAN_L, CAN_BUS da kullan─▒lan sinyalle┼čmedir. Lojikten bilinen s─▒f─▒r ve birler gibi.
CANÔÇÖ in 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┼čtirldi. 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. 95 de CAN2.0B geli┼čtirilerekten bir CAN sistemine ba─čl─▒ ├╝nite say─▒s─▒ 500milyona ├ž─▒kar─▒lm─▒┼čt─▒r. 1996 da CANopen geli┼čtirilmi┼čtir. B├Âylece uygulamada kullan─▒labilirli─či daha da artm─▒┼čt─▒r.
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.
Protocol Format
KAYNAKLAR:
1. CAN Specification Versiyon 2, Robert Bosch

Hakk─▒ KURUMAHMUT

2007