logo

CAN (Denetleyici Alanı Ağı) protokolü

CAN anlamına gelir Denetleyici Alanı Ağı protokol. tarafından geliştirilen bir protokoldür. Robert Bosch CAN protokolü, mikrodenetleyicinin ve diğer cihazların herhangi bir ana bilgisayar olmadan birbirleriyle iletişim kurmasını sağlamak için tasarlanmış bir standarttır. CAN protokolünü diğer iletişim protokolleri arasında eşsiz kılan özellik, veriyolunun yayın tipidir. Burada yayın, bilginin tüm düğümlere iletilmesi anlamına gelir. Düğüm, bilgisayarın USB kablosu veya ethernet bağlantı noktası aracılığıyla ağ üzerinden iletişim kurmasını sağlayan bir sensör, mikro denetleyici veya ağ geçidi olabilir. CAN, mesaj tabanlı bir protokoldür; bu, mesajın mesaj tanımlayıcısını taşıdığı ve tanımlayıcıya göre önceliğe karar verildiği anlamına gelir. CAN ağında düğüm tanımlamaya gerek olmadığından onu ağa eklemek veya ağdan silmek çok kolay hale gelir. Seri yarı çift yönlü ve asenkron tipte bir iletişim protokolüdür. CAN ağı iki kablolu veri yolu üzerinden bağlandığından, CAN iki kablolu bir iletişim protokolüdür. Teller, her iki uca bağlı 120Ω karakteristik empedansa sahip bükümlü çifttir. Başlangıçta esas olarak araçların içindeki iletişim için tasarlanmıştı ancak artık birçok başka bağlamda da kullanılıyor. UDS ve KWP 2000 gibi CAN da yerleşik teşhis için kullanılabilir.

Neden CAN?

Elektronik cihazların sayısının artması nedeniyle merkezi bir standart iletişim protokolüne ihtiyaç duyuldu. Örneğin modern bir araçta gösterge paneli, şanzıman kontrolü, motor kontrol ünitesi ve daha birçok alt sistem için 7'den fazla TCU bulunabilir. Tüm düğümler bire bir bağlanırsa iletişimin hızı çok yüksek olur, ancak kabloların karmaşıklığı ve maliyeti de çok yüksek olur. Yukarıdaki örnekte, tek bir gösterge paneli 8 konnektör gerektirir; dolayısıyla bu sorunun üstesinden gelmek için CAN, iki kablo (yani CAN yüksek ve CAN düşük) gerektiren merkezi bir çözüm olarak tanıtıldı. CAN protokolünü kullanmanın çözümü, mesaj önceliklendirmesi nedeniyle oldukça verimlidir ve ağı etkilemeden bir düğüm eklenip çıkarılabileceği için esnektir.

CAN protokolünün uygulamaları

Başlangıçta CAN protokolü, araçların içinde meydana gelen iletişim sorununu hedef almak için tasarlandı. Ancak daha sonra sunduğu özelliklerden dolayı farklı alanlarda da kullanılmaya başlanmıştır. CAN protokolünün uygulamaları şunlardır:

java sürümü linux
  • Otomotiv (binek araçları, kamyonlar, otobüsler)
  • Havacılık ve navigasyon için elektronik ekipmanlar
  • Endüstriyel otomasyon ve mekanik kontrol
  • Asansör ve yürüyen merdivenler
  • Bina otomasyonu
  • Tıbbi alet ve ekipmanlar
  • Denizcilik, tıbbi, endüstriyel, tıbbi

CAN katmanlı mimarisi

Bildiğimiz gibi OSI modeli iletişim sistemini 7 farklı katmana ayırır. Ancak CAN katmanlı mimarisi iki katmandan oluşur;

Her iki katmanı da anlayalım.

  • Veri Bağlantı Katmanı: Bu katman, düğümden düğüme veri aktarımından sorumludur. Bağlantıyı kurmanızı ve sonlandırmanızı sağlar. Ayrıca fiziksel katmanda oluşabilecek hataların tespit edilmesi ve düzeltilmesinden de sorumludur. Veri bağlantısı katmanı iki alt katmana bölünmüştür:
      MAC:MAC, Medya Erişim Kontrolü anlamına gelir. Bir ağdaki cihazların ortama nasıl erişim sağladığını tanımlar. Verilerin Kapsüllenmesi ve Kapsülden Çıkarılması, Hata tespiti ve sinyalizasyon sağlar.
  • LLC:LLC Mantıksal bağlantı kontrolü anlamına gelir. Çerçeve kabul filtrelemesinden, aşırı yük bildiriminden ve kurtarma yönetiminden sorumludur.
  • Fiziksel katman: Fiziksel katman, ham verilerin iletilmesinden sorumludur. Gerilim seviyesi, zamanlama, veri hızları ve konnektör gibi parametrelere ilişkin spesifikasyonları tanımlar.

CAN spesifikasyonları, CAN standardında tanımlanan CAN protokolünü ve CAN fiziksel katmanını tanımlar. ISO 11898. ISO 11898'in üç bölümü vardır:

  • ISO 11898-1: Bu bölüm, Veri bağlantısı katmanının ve fiziksel sinyal bağlantısının özelliklerini içerir.
  • ISO 11898-2: Bu bölüm, yüksek hızlı CAN için CAN fiziksel katmanının altına gelir. Yüksek hızlı CAN, güç aktarma organlarında ve aracın şarj alanında 1 Mbps'ye kadar veri hızına izin verir.
  • ISO 11898-3: Bu bölüm aynı zamanda düşük hızlı CAN için CAN fiziksel katmanının altına gelir. 125 kbps'ye kadar veri hızına izin verir ve iletişim hızının kritik bir faktör olmadığı durumlarda düşük hızlı CAN kullanılır.

CiA DS-102: CiA'nın tam biçimi, CAN konektörünün özelliklerini tanımlayan Otomasyondaki CAN'dır.

nick pulos kara yıldırım

Uygulama söz konusu olduğunda, CAN denetleyicisi ve CAN alıcı-vericisi yazılımda uygulama, işletim sistemi ve ağ yönetimi fonksiyonlarının yardımıyla uygulanır.

CAN Çerçeveleme

CAN çerçevesinin yapısını anlayalım.

CAN protokolü
    :SOF, çerçevenin başlangıcı anlamına gelir; bu, yeni çerçevenin bir ağa girildiğini gösterir. 1 bitliktir.Tanımlayıcı:CAN 2.0 A spesifikasyonu kapsamında tanımlanan standart bir veri formatı, tahkim için 11 bitlik bir mesaj tanımlayıcı kullanır. Temel olarak bu mesaj tanımlayıcısı veri çerçevesinin önceliğini belirler.RTR:RTR, ister veri çerçevesi ister uzak çerçeve olsun, çerçeve türünü tanımlayan Uzaktan İletim İsteği anlamına gelir. 1 bitliktir.Kontrol alanı:Kullanıcı tanımlı fonksiyonlara sahiptir.
      GİTMEK:Bir kontrol alanındaki bir IDE biti, tanımlayıcı uzantısı anlamına gelir. Baskın bir IDE biti, 11 bitlik standart tanımlayıcıyı tanımlarken resesif IDE biti, 29 bitlik genişletilmiş tanımlayıcıyı tanımlar.DLC:DLC, bir veri alanındaki veri uzunluğunu tanımlayan Veri Uzunluğu Kodu anlamına gelir. 4 bitten oluşur.Veri alanı:Veri alanı en fazla 8 bayt içerebilir.
    CRC alanı:Veri çerçevesi aynı zamanda iletim süresi boyunca bozulma meydana gelirse tespit etmek için kullanılan 15 bitlik bir döngüsel artıklık kontrol alanı da içerir. Gönderici, veri çerçevesini göndermeden önce CRC'yi hesaplar ve alıcı da CRC'yi hesaplar ve ardından hesaplanan CRC'yi göndericiden alınan CRC ile karşılaştırır. CRC eşleşmezse alıcı hatayı üretecektir.ACK alanı:Bu alıcının onayıdır. Diğer protokollerde tüm paketler alındıktan sonra onay için ayrı bir paket gönderilir, ancak CAN protokolünde alındı ​​için ayrı bir paket gönderilmez.EOF:EOF çerçevenin sonu anlamına gelir. Çerçevenin sonu olarak bilinen 7 ardışık resesif bit içerir.

Şimdi verilerin CAN ağı üzerinden nasıl iletildiğini göreceğiz.

CAN protokolü

Bir CAN ağı birden fazla CAN düğümünden oluşur. Yukarıdaki durumda üç CAN düğümünü ele aldık ve bunları A düğümü, B düğümü ve C düğümü olarak adlandırdık. CAN düğümü aşağıda verilen üç öğeden oluşur:

  • Ev sahibi
    Ana bilgisayar, belirli bir işi yapmak için bazı uygulamaları çalıştıran bir mikro denetleyici veya mikro işlemcidir. Toplantı sahibi, alınan mesajın ne anlama geldiğine ve daha sonra hangi mesajı göndermesi gerektiğine karar verir.
  • CAN Denetleyicisi
    CAN denetleyicisi, CAN protokolü tarafından açıklanan iletişim işlevleriyle ilgilenir. Ayrıca CAN mesajlarının iletimini veya alımını da tetikler.
  • CAN Alıcı-Vericisi
    CAN alıcı-vericisi, CAN veriyolundaki verilerin iletilmesinden veya alınmasından sorumludur. Veri sinyalini CAN veriyolundan toplanan ve CAN denetleyicisinin anlayabileceği veri akışına dönüştürür.

Yukarıdaki şemada, verileri iletmek veya almak için blendajsız bükümlü çift kablo kullanılmıştır. CAN veriyolu olarak da bilinir ve CAN veriyolu iki hattan oluşur; yani sırasıyla CANH ve CANL olarak da bilinen CAN düşük hattı ve CAN yüksek hattı. İletim bu hatlara uygulanan diferansiyel gerilim nedeniyle gerçekleşir. CAN, ortamı nedeniyle bükümlü çift kablo ve diferansiyel voltaj kullanır. Örneğin bir arabada, motorda, ateşleme sisteminde ve daha birçok cihazda gürültü nedeniyle veri kaybı ve veri bozulmasına neden olabilir. İki çizginin bükülmesi manyetik alanı da azaltır. Veri yolu her iki uçta 120Ω dirençle sonlandırılmıştır.

CAN Özellikleri

CAN protokolü

Diferansiyel voltajın yardımıyla 0 ve 1'in CAN bus üzerinden nasıl iletildiğini belirleyeceğiz. Yukarıdaki şekil CAN low ve CAN high voltaj seviyesini gösteren voltaj grafiğidir. CAN terminolojisinde mantık 1'in resesif, mantık 0'ın ise baskın olduğu söylenir. CAN yüksek hattı ve CAN düşük hattı 2,5 volt ile uygulandığında, gerçek diferansiyel voltaj sıfır volt olacaktır. CAN veriyolundaki sıfır volt, CAN alıcı-vericisi tarafından resesif veya mantık 1 olarak okunur. CAN veriyolundaki sıfır volt, veriyolunun ideal durumudur. CAN üst hattı 3,5 volta, CAN alt hattı ise 1,5 volta çekildiğinde veriyolunun gerçek diferansiyel voltajı 2 volt olacaktır. CAN alıcı-vericisi tarafından baskın bit veya mantık 0 olarak değerlendirilir. Veri yolu durumu baskın veya mantık 0'a ulaşırsa, başka herhangi bir düğüm tarafından resesif duruma geçmek imkansız hale gelir.

CAN özelliklerinden öğrenilen önemli noktalar

  • Mantık 1 resesif bir durumdur. CAN veriyolu üzerinden 1 iletmek için hem CAN yüksek hem de CAN düşük 2,5V ile uygulanmalıdır.
  • Mantık 0 baskın bir durumdur. CAN veriyolu üzerinden 0 iletmek için CAN yüksek 3,5V'da, CAN düşük ise 1,5V'de uygulanmalıdır.
  • Otobüsün ideal durumu resesiftir.
  • Düğüm baskın duruma ulaşırsa, başka hiçbir düğüm tarafından resesif duruma geri dönemez.

CAN veri yolu mantığı

CAN protokolü
CAN protokolü

Yukarıdaki senaryodan, baskın durumun resesif durumun üzerine yazdığını biliyoruz. Düğüm baskın ve resesif biti aynı anda gönderdiğinde veri yolu baskın kalır. Resesif seviye yalnızca tüm düğümler resesif biti gönderdiğinde ortaya çıkar. Böyle bir mantık AND mantığı olarak bilinir ve fiziksel olarak açık kolektör devresi olarak uygulanır.

CAN İletişim Prensibi

Mesajın tahkim alanında belirlenen önceliğe göre gönderildiğini biliyoruz. Standart çerçeve için mesaj tanımlayıcısı 11 bit, genişletilmiş çerçeve için ise mesaj tanımlayıcısı 29 bittir. Sistem tasarımcısının mesaj tanımlayıcısını tasarımın kendisinde tasarlamasına olanak tanır. Mesaj tanımlayıcısı ne kadar küçük olursa mesajın önceliği de o kadar yüksek olur.

Arraylist Java sıralaması

Tahkimin bir akış şeması aracılığıyla nasıl çalıştığını anlayalım.

CAN (Denetleyici Alanı Ağı) protokolü

Gönderici mesajı göndermek istiyor ve CAN veriyolunun boşta kalmasını bekliyor. CAN veri yolu boştaysa gönderen, veri yolu erişimi için SOF'u veya baskın biti gönderir. Daha sonra en anlamlı bitteki mesaj tanımlayıcı biti gönderir. Düğüm, resesif biti iletirken veri yolundaki baskın biti tespit ederse, bu, düğümün tahkimi kaybettiği ve daha fazla bit iletmeyi durdurduğu anlamına gelir. Gönderen, otobüsün serbest kalmasından sonra mesajı bekleyecek ve yeniden gönderecektir.

CAN Tahkim Örneği

CAN protokolü

Üç düğümü (Düğüm 1, Düğüm 2 ve Düğüm 3) ele alırsak, bu düğümlerin mesaj tanımlayıcıları sırasıyla 0x7F3, 0x6B3 ve 0x6D9'dur.

CAN protokolü

En anlamlı bit ile üç düğümün tamamının iletimi yukarıdaki diyagramda gösterilmiştir.

bahar önyükleme ek açıklamaları

on birbubit: Düğümlerin üç biti de resesif olduğundan, veri yolu biti de resesif kalacaktır.

10bubit: Tüm düğümler resesif olarak 10. bit'e sahiptir, dolayısıyla veri yolu da resesif kalacaktır.

9bubit: Düğüm 1 resesif bit içerirken diğer düğümler baskın bit içerir, dolayısıyla veri yolu da baskın kalacaktır. Bu durumda, düğüm 1 tahkimi kaybetmiştir, dolayısıyla bit göndermeyi durdurur.

8bubit: Hem düğüm 2 hem de düğüm 3 resesif bit gönderiyor, böylece veri yolu durumu resesif kalıyor.

7bubit: Düğüm 2 baskın bit gönderirken düğüm 3 resesif bit gönderir, böylece veri yolu durumu baskın kalır. Bu durumda, düğüm 3 tahkimi kaybetmiştir, dolayısıyla düğüm 2 tahkimi kazanırken mesaj göndermeyi durdurur, yani mesaj alınana kadar veriyolunu tutmaya devam edeceği anlamına gelir.