CAN, CANbus, CANopen, SAE J1939 arasındaki farklar?

Başlatan musti463, 26 Mart 2014, 20:53:31

musti463

CAN, CANbus, CANopen, SAE J1939 arasındaki hem teorik hem de uygulamada farkları nelerdir? Hangiler hangi ihtiyaçları karşılar? Kullanım yerleri nelerdir? Tercih sebepleri nelerdir? vb. konularda bilgi verebilir mi tecrübeli arkadaşlarımız?
Mustafa Emir SADE

skara1214

Alıntı yapılan: musti463 - 26 Mart 2014, 20:53:31
CAN, CANbus, CANopen, SAE J1939 arasındaki hem teorik hem de uygulamada farkları nelerdir? Hangiler hangi ihtiyaçları karşılar? Kullanım yerleri nelerdir? Tercih sebepleri nelerdir? vb. konularda bilgi verebilir mi tecrübeli arkadaşlarımız?
canbus arabalarda kullanılıyor güvenli iletişim için protokolünü incelersen veri iletimi konusunda baya iyi olduğunu görürsün.İçinde can geçenlerin hepsi aynı mantaliteye sahiptir zannımca.Sae yi bilmiyorum ilk defa sizden duyuyorum. Onun yerine modbusu bir araştır oda çok kullanılıyor
Herkes ölür ama herkes gerçekten yaşamaz

musti463

aslında canbus hakkında teorik bilgiye sahibim fakat bu CANopen nasıl bişey anlamadım ve J1939
Mustafa Emir SADE

Kerim42

Merhaba Arkadaşlar,
  Canbus (Controller Area Network). CanBus 1983 de Robert Bosch un geliştirdiği bir haberleşme sistemidir. Bu sistem geliştirilerek günümüzde bir çok farklı sektörde kullanılmaktadır. En çok otomotiv, ev otomasyonu vb. Canbus gelişmesiyle farklı protokoller de çıkmış oldu. CanOpen, CanJ1939, CanFreestyle, Can Aerospace, Arnic, NMEA 2000, ISOBUS, CanKingdom Bunların hepsi aynı ağacın gövdesinden türemiş dallar gibidir. Canopen genelde endüstriyel sensörlerde, Canj1939 genelde otomotivde  motor şanzuman gibi parçaların Ecu ları (Elektronik kontrol ünitesi)  arasında, CanFreestyle Adındanda anlaşıldığı gibi kişiye yada işe özel geliştirilen, Canaerospace hava araçları özellikle boing uçaklarda,  Arinc gene hava yolu araclarında, NMEA 2000 Deniz taşıtlarında marine uygulamarında, ISOBUS tarım ekipmanlarında genellikle traktör gibi araçların haberleşme protokolleridir.
  Canbus ı diğer haberleşme diğer haberleşme protokollerinden ayıran  özellikler
       -Multimaster çalışma yapabilmesidir. Yani herkez elindeki kartı masaya koyar isteyen istediğini alır.
       -Kararlı yapıya sahip olması yapılan hesaplamalara göre 100 yılda 1. Yani asırda 1. dir.
       -Sistemdeki örneğin 20. modül hata yapar ve bu hata sürekli hale gelirse kendisini pasif konuma alır sadece dinleme yapar. Hata sayısı artarsa donanım olarak kendisini kapatır. Bu Canbus Donanımının özelliğidir.
       -Max 1 Mbps haberleşme hızına sahiptir. Araçlarda Canj1939 250kbps hızı standarttır. Aracların iç can hattları 500kbps olabilmektedir.
  Canbus haberleşme sisteminde hatta ki her mesajın bir ID si olur. Bu ID ler Standart yada extended olarak isimlendirilir. Canopen protokolünde 11bit (Standart) ID kullanılır. Canj1939 protokolünde 29bit (Extended) ID kullanılır. Canopen sistemde sisteme enerji verildiğinde bir komut yollanarak sistemdeki tüm modüller yada istenen modül start yapılır ve hatta haberleşme başlar. Stop, reset işlemleri de yapılabilir. Canj1939 da sistemde ki modüllere enerji geldiği anda haberleşme başlar. Canj1939 da 29 bit ID içinde bir çok anlamlı blok vardır ilk 3 bit priority yani öncelik Hattaki Bazı önemli ID lere öncelik verir. 1 bit reserve boş kullanılmaya bit. 1 bit Data sayfası 16 bit PGN (Parameter Grup Number) Örneğin Canj1939 da Motor devir PGN si 61444 bu önceden standart hale getirilmiştir. Standartın içeriginde okunan degeri hangi data degerinden okuyacagımız  ne manaya geldiği, kaç bitlik olduğu ofsett ayarı, max alacağı deger hepsi bellidir. Canopen da Cob-Id vardır. Örneğin Sistemde Canopen bir sensör Id si 5 ise onun ayarlarını yaparken 0x600+ID  değeri ile ayarlarız. Oda bize cevap verirken 0x700+ID ile ayar tamam oldu olmadı gibi cevaplar verir. Bu CanOpen DS301 e göredir. Mantık aynıdır Can openda Hatta bir mesaj bıraktığımız zaman hattan bize bir cevap gelirse onun kimden geldiğini cevap olup olmadığını anlayabiliyoruz. CanFreestyle de Hatta bırakılan mesajları bir olaya bir ID ye veya zamana her 100ms yada 1000 ms ayarlaya biliyoruz. Hızı data bloklarının manasını kendimiz belirliyoruz. Canopen sisteme start verilince sistemde ki modüller yapılan zaman ayarına göre belirli zaman aralıklarında durmadan yollarlar. Canj1939 önceden belirlenmiştir yakıt bilgisinin ne kadar zaman aralıkla yada devir bilgisinin ne kadar zaman aralıkla gönderdiği bellidir.
      Daha fazla ayrıntı için Protokollerin Data frame i incelemek yeterlidir.
Özet olarak benzetme yaparsak:
    Bir Oda düşünelim bunun içindede A,B,C,D,E isimli  4 farklı kişi var ve hepsinin farklı bir işi var. A sıcaklığı ölçüyor Oda da 10sn arayla durmadan söylüyor.B tarihe bakıyor 15sn arayla tarihi söylüyor. C saate bakıyor her 2 dk bir söylüyor. D de odanın ışığının yanıp yanmadığını her 5sn de bir söylüyor .aynı zamanda sıcaklık25 üzerinde iken çift rakamlı tarihlerde ışığı acıyor diğer zamanlarda kapatıyor. E Denetleme adamı hatta bakıp arıza olup olmadığına sistemin hangi durumda olduna karar veriyor Diagnostic gibi.  Zihnimizde canbus ı bu şekilde canlandırabiliriz.
sürçü lisan ettikse affola. Faydası olması dileğiyle.
Alemi padişah olmak bir kuru kavga imiş. Bir veliye bende olmak cümleden ala imiş. (Yavuz Sultan Selim)

frederic

Ne güzel anlatmışsınız Hocam çok tecrübeli birine benziyorsunuz bu konuda, tebrik ederim.

interrupter

Gerçekten çok güzel açıklamissiniz hocam.  Peki biz protokolleri ögrenebilecegimiz türkçe kitap yada doküman varmidir

kralsam

Hocam açıklama için teşekkürler. Gayet güzel açıklamışsınız.

Alıntı yapılan: interrupter - 16 Haziran 2014, 22:23:26
Gerçekten çok güzel açıklamissiniz hocam.  Peki biz protokolleri ögrenebilecegimiz türkçe kitap yada doküman varmidir
Hocam bildiğim kadarı ile bu bilgileri anabileceğiniz kaynak epey bir ücrete satılıyor. Şu EMI,EMC gibi konularda öyleydi sanırım, onun klavuz kitabı gibi. :)

Kerim42

Merhaba Arkadaşlar,
Canopen için Can CiA adında bir kuruluş var.  http://www.can-cia.org/index.php?id=specifications&no_cache=1
Bu linkte can open için fiziksel katmanı yazılımı, donanımı, network yönetimi hakkında epeyce bir döküman var. Ücretsiz  sadece kayıt olmanız yeterli. Ama ben bu işi tam olarak anlamak istiyorum diyorsak elimizde bir can analyzer olmalı. Uygulama yapmadan ordaki yazılanları okumak sadece uyku getiriyor.
  CanJ1939 için http://standards.sae.org/automotive/   de sitesinde ücreti karşılığı satılıyor.
Alemi padişah olmak bir kuru kavga imiş. Bir veliye bende olmak cümleden ala imiş. (Yavuz Sultan Selim)

mur@t

@Kerim42,

Bilgilendirme için teşekkürler.
benim de konuyla ilgili bir sorum olacak.
CANBUS'da (araçlarda kullanılan ISO 15765 standartı sanırım) CanOpen'de olduğu gibi, gönderilen ve yanıtlanan ID'leri ayırmak için bir yöntem var mı?


Mucit23

Bende bu konuyu merak ediyordum, Örneğin X marka Aracın Y modelinde Araç Hız bilgisinin ID'si herhangi bir kitapta yazıyormu? Daha doğrusu Otomobil üreticileri bunları veriyorlarmı?

Şu çinde satılan dandik Can bus arıza bulma cihazları var. Bunlar nasıl çalışıyor? İlgili Aracın Can-Bus ID lerini nasıl öğreniyorlar?

papsukkal

Canj1939 da Motor devir png si 61444 standart hale geldi ise bu örnek veriyorum toyotada da opelde de aynidir. Doğru mu anladim? Ya da her marka hatta modele göre değişebilir mi?

mur@t

J1939 standartı genellikle ağır araçlarda ve gemilerde kullanılıyor.
CAN ID araç markasına hatta modeline göre bile farklı olabiliyor.

Bu ID'leri otomobil üreticileri vermiyor, arıza tespit cihazları için durum farklı.
Bu cihazlar diagnostik portuna bağlanıyorlar, bu porta göndereceğiniz sorgu komutları standart zaten. (OBD2)
Tabi bu her araçta, her bilginin alınabileceği anlamına gelmiyor.  Standart OBD2 komutlarının yanında markaya özel
spesifik komutlar da var ancak onlar da açık bilgi değil.

Kerim42

Merhaba Arkadaşlar,
 
Araçlarda ki canbus sistemi canopen gibi degil biraz farklıdır. Örneğin motor şanzuman fren gibi birincil önceliğe sahip malzemelerin ecu ları birbirine bağlanır. Bu sistemin çalışması için gerekli olan bağlantıdır yuksek hızlı olur. dışarı açık degildir. Diger bir can hattı üzerinde ilkindeki bilgilerde vardır ama kaynak adresi farklıdır. Aynı dataları oradanda okuyabiliriz. Sistemde sanzuman (otomatik) vites atarken motorun devir bilgisine de bakar güvelik nedeni ile onlar kendi arasında çalısır birisi çomak sokmasın diye dışarı açık değildir. İkincil olan dışarı açıktır yani diagnotic işlemleri yapılır. Aracı servise götürüp hata lambasını sildirmemiz gibi. Bu konnektöre OBD2 denmektedir. 12V ile 24V soketleri bir birinden farklıdır. Bu konektörün özellikle ağır vasıta için  farklı şekil (yuvarlak 8pin 35 pin) ve yerlerde olabiliyor.
Otomobil üreticileri marka model ve üretim yılına göre OBD soketi yeri Canbus protokolü farklılık göstermektedir. Bunları internetten bulabilirsiniz. Bunların içinden ISO11898 olanları rahatlıkla okuyabilirsiniz. Canj1939 olanlarıda okuyabilirsiniz. Örneğin A marka araç j1939 kullanıyor ise yakıt bilgisi, egzos co2 bilgisi, kilometre bilgisi bunlar değişmez ID aynıdır. Sadece j1939 da belirli bir ID aralıgı özel amaçlıdır datanın ne manaya geldiğini üretici bilir. Volkswagen, mercedes gibi aracların bazı modellerinde KWP2000 gibi farklı bir protokol vardır. Bundada bilgiler PID degerleri sabittir. Birde LIN bus (Local interconnect network)hattı vardır. Buda çok önemli olmayan canbus a göre ucuz yollu bir iletişim. Örneğin kapı switch bilgisi gibi.
Eğer amacınız diagnostic cihazı yapmak ise http://www.elmelectronics.com/products.html Buraya bir bakın.
Ama hobi amaçlı yapıyorum veya araç takip cihazı yapacağım diyorsanız. OBD ile hiç uğraşmayın Yeni nesil araclarda artık FMS (Filo Yönetim sistemi) diye bir çıkış var. Bazı araçlarda standart bazı araçlarda opsiyonel serviste taktırmak gerekebiliyor. Buradan takometre bilgileri servis mesafesi yakıt tüketimi sürücü1 yada 2 gibi bilgiler alına bilir. Sadece okuma yapılabilir. Ayrıntılı bilgi için http://www.fms-standard.com/ bakınız.
Alemi padişah olmak bir kuru kavga imiş. Bir veliye bende olmak cümleden ala imiş. (Yavuz Sultan Selim)

papsukkal


mur@t

Alıntı yapılan: mur@t - 17 Haziran 2014, 11:02:49
@Kerim42,

Bilgilendirme için teşekkürler.
benim de konuyla ilgili bir sorum olacak.
CANBUS'da (araçlarda kullanılan ISO 15765 standartı sanırım) CanOpen'de olduğu gibi, gönderilen ve yanıtlanan ID'leri ayırmak için bir yöntem var mı?

Benim sorumla ilgili bir fikriniz var mı?