• AN228 - CAN fiziksel katmanının dikkate alınması. CAN iletişim arabirimi

    Bu yazıda, CAN protokolünü tam olarak açıklamayacağız, sadece kullanmanız veya geliştirmeniz için bilmeniz ve anlamanız gereken şeylere dikkat edeceğiz. elektronik aletler CAN desteği ile.

    CAN protokolü, otomotiv endüstrisi için geliştirildi ve daha sonra otomobiller, demiryolu taşımacılığı vb. için yerleşik ağ alanında standart haline geldi. CAN, gelişmiş hata kontrol araçları, 1 Mbps'ye kadar aktarım hızları ve sekiz bayttan fazla veri içermeyen paketler ile ağlar oluşturmanıza olanak tanır.

    Bağlantı ve fiziksel katmanlarOLABİLMEK

    CAN protokolünde fiziksel katmanın kesin bir tanımı yoktur, bu nedenle, örneğin mesajları iletmek için bükümlü çift veya optik fiber kullanılabilir. Temel olarak CAN, bağlantı katmanını uygular, yani. mesaj paketlerinin oluşumunu gerçekleştirir, hataların yayılmasını, onaylanmayı ve hakemliği sınırlandırır. Elbette ortak standartlar var. uygulama katmanıörneğin CANopen, ancak farklı üreticilerin ekipmanları arasında birlikte çalışabilirlik sağlamaya gerek yoksa, dahili bir protokol kullanmak daha iyidir.

    Ana bilgisayar yapısıOLABİLMEK

    Düşündüğümüz CAN ağ düğümü bir mikrodenetleyici, bir CAN denetleyici ve bir alıcı-vericiden oluşur (Şekil 1). Çoğu zaman, devreyi basitleştirmek için yerleşik CAN denetleyicili mikro denetleyiciler kullanırız, ancak bazen SPI arayüzüne (MCP2510) sahip bağımsız bir CAN denetleyici kullanılır. Daha sonra, alıcı-verici, uçlarında 120 ohm dirençli sonlandırma dirençleri (sonlandırıcı) bulunan bükülmüş bir çifte bağlanır.

    Şekil 1 - CAN ağ düğümü

    Bükümlü bir çiftte veya serbest barada mantıksal bir tane oluşturmak için, her iki kabloya da 0 veya Vcc arasındaki voltaj farkının yarısına eşit bir voltaj uygulanır. Mantıksal sıfır, hattın tellerine diferansiyel voltaj sağlanmasına karşılık gelir (Şekil 2).




    Şekil 2 - CAN veriyolundaki mantık seviyeleri

    CAN veri yolu, 40 m'den fazla olmayan bir kablo uzunluğu ile 1 Mbit / s hızında veri aktarmanıza izin verir.Eğitim literatüründe, aktarım hızını 10 kbit / s'ye düşürerek, 1,5 km ağ uzunluğu.

    mesaj paketiOLABİLMEK

    CAN mesaj formatı Şekil 3'te gösterilmiştir.




    Şekil 3 - CAN mesaj paketi

    Aslında, mesaj paketi CAN denetleyicisi tarafından oluşturulur ve uygulama yazılımı yalnızca mesaj tanımlayıcısını, mesaj uzunluğunu ayarlar ve veri baytları sağlar, bu nedenle paketi tam olarak dikkate almayacağız, ancak çalışırken değiştirdiğimiz verilere bakacağız. CAN veri yolu.

    Mesaj kimliği, bu pakette gönderilen verileri tanımlamak için kullanılır. Gönderilen her mesaj, ağdaki tüm düğümler tarafından alınır ve bu durum tanımlayıcı, belirli bir cihazın bu mesajı işlemenin gerekli olup olmadığını anlamasını sağlar. Maksimum mesaj uzunluğu 8 bayttır, ancak kaydetmek için bu değeri azaltabilirsiniz. Bant genişliği CAN otobüsü. Örneğin, metnin altında araç ağından gelen CAN mesajlarının birkaç ekran görüntüsü vardır.

    otobüste tahkimOLABİLMEK

    Ayrıntılar olmadan, en küçük tanımlayıcıya sahip mesaj her zaman önce CAN veriyolunda iletilir.

    Veri yolu baud hızının ayarlanmasıOLABİLMEK

    CAN veriyolundaki veri aktarım hızı, diğer birçok seri veri aktarım protokolünde olduğu gibi bir hız bölücü tarafından değil, zaman dilimlerinin oluşturulmasıyla ayarlanır. Çoğu durumda 10Kbps, 20Kbps, 50Kbps, 100Kbps, 125Kbps, 500Kbps, 800Kbps, 1MBaud hızları kullanılır ve bu hızların ayarları önceden hesaplanmıştır. Şekil 4, PcanView'daki hız seçim penceresini göstermektedir.



    Şekil 4 - PcanView programında baud hızının seçilmesi

    Gördüğümüz gibi, standart hız ayarlanırken ayarlar otomatik olarak yapılır, ancak farklı bir veri aktarım hızı kullanmanın gerekli olduğu zamanlar vardır. Örneğin gemide araç CAN 83Kbps hızında çalışabilir. Bu durumda, ayarları kendiniz hesaplamanız veya İnternette özel bir hız hesaplayıcı aramanız gerekecektir. Hızı bağımsız olarak hesaplamak için, bir bitlik mesajı iletmek için birkaç niceliğin kullanıldığını ve iletim aralığının üç bölümden oluştuğunu anlamak gerekir (Şekil 5).




    Şekil 5 - Bir bitin iletim süresi

    İlk segment her zaman sabittir ve bir kuantuma eşittir. Daha sonra iki segment Tseg1 ve Tseg2 vardır ve her segmentteki kuanta sayısı kullanıcı tanımlıdır ve 8 ila 25 arasında olabilir. Örnekleme noktası Tseg1 ve Tseg2 arasındadır, yani. birinci bölümün sonunda ve ikinci bölümün başında. Kullanıcı ayrıca, alıcı cihazın 1 - 4 zaman dilimi aralığında olabilen bit hızını ayarlamak için senkronizasyon atlamasının genişliğini (Senkronizasyon Atlama Genişliği - SJW) tanımlayabilir.

    Şimdi hızı hesaplamak için formülü veriyoruz (CAN kontrolörü SJA1000 için hızı hesaplama örneği):

    BTR = Pclk/(BRP * (1 + Tseg1 + Tseg2))

    BTR - veri aktarım hızı,

    Pclk – CAN kontrolörü çalışma frekansı,

    BRP - baud hızı üreteci frekans ön ölçekleyici değeri

    Tseg1 - ilk bölüm

    Tseg2 - İkinci bölüm

    Kontrol etmek için, önceden hesaplanmış olan 125Kbps hızını alalım ve ayarları manuel olarak almaya çalışalım. Pclk 16 MHz alır.

    BRP = 16MHz /(125K * (1 + Tseg1 + Tseg2))

    Daha sonra 8 ila 25 zaman dilimi aralığında olan bit iletim aralığını seçiyoruz, böylece BRP'nin bir tamsayı değeri elde edilecek. Bizim durumumuzda (1 + Tseg1 + Tseg2) = 16 alırsak, BRP 30'a eşit olacaktır.

    SP = ((1 + Tseg1 + Tseg2) * 70)/100

    Değerleri değiştiririz ve Tseg1 = 10, Tseg2 = 5, yani ilişkisine karşılık gelen 16 * 0.7 = 11.2 elde ederiz. 1 + 10 + 5 = 16. Sonra Tseg2 >= 5 ise, sonra SJW = 4, Tseg2 ise bakarız.< 5, то SJW = (Tseg2 – 1). В нашем случае SJW = 4.

    Toplamda 125Kbps hız elde etmek için BRP = 30, Tseg1 = 10, Tseg2 = 5, SJW = 4 parametrelerini belirtmelisiniz.

    Not: Baud hızı konfigürasyonu, SJA1000 denetleyicili eski USB-CAN modülleri (GW-001 ve GW-002) ile AT91SAM7A3 denetleyicili yeni sysWORXX modülleri arasında önemli ölçüde farklılık gösterir. Arabanın yerleşik CAN'ı ile 83kbit / s hızında çalışmayı anlatan makalede, AT91SAM7A3 kontrol cihazı için hızın hesaplanması verilmiştir.


    Üzerinden veri alma ve iletme örneğiCAN arabirimi

    Örnekte, SYSTEC'ten PcanView programı ile bir CAN adaptörü kullanacağız ve 125Kbps hızında çalışan aracın içindeki CAN'a bağlanacağız. Düşündüğümüz araba elektrikli koltuklarla donatılmıştır ve bu nedenle koltukların konumundan sorumlu verileri inceleyeceğiz ve bir bilgisayar kullanarak paketi değiştirerek koltuk arkalığının konumunu değiştirmeye çalışacağız.

    Başlamak için araba şemasında CANH ve CANL hatlarına en uygun şekilde yerleştirilmiş konektörü bulup adaptörümüzü ona bağlarız. Konektör ve teller bulunamadıysa, koltuk kontrol ünitesine sürünebilir, birbirine dolanmış iki tel bulabilir ve adaptörü bağlamak için telleri dikkatlice kesebilirsiniz. Adaptörü bağladıktan ve yapılandırdıktan sonra mesajlar gelmezse, öncelikle CANH CANL'ı kendi aralarında değiştirmeyi deneyin ve kontağın açık olup olmadığını kontrol edin.
    Daha sonra PcanView programını çalıştırınız, açılan ayarlar penceresinde Baudrate = 125Kbps olarak ayarlayıp OK tıklayınız (Şekil 4). Bir sonraki pencerede, Mesaj filtresi = Standart, adres aralığını 000 ila 7FF olarak ayarlayın ve Tamam'a tıklayın (Şekil 6).



    Şekil 6 - CAN filtresinin ayarlanması

    Her şey doğru yapılırsa koltuklardan gelen mesajları göreceğiz (Şekil 7) ve kontrol panelindeki sırtlığı eğme düğmesine bastığınızda, uzaktan kumandadan koltuğa gelen 1F4 adresli başka bir mesaj göreceğiz ( Şekil 7 ) Şekil 8).



    Şekil 7 - Elektrikli sandalyeden gelen CAN mesajları


    Şekil 8 - Elektrikli sandalyeden CAN mesajları ve kontrol panelinden koltuğa mesaj

    Artık CAN paketindeki adresin, uzunluğun ve verilerin, geri konumu değiştirmek üzere düğmeye basmayı simüle etmek için ne olması gerektiğini biliyoruz. İletim sekmesinde YENİ'ye tıklayın ve açılan pencerede 1F4 paketinin bir kopyasını oluşturun, yani. ID = 1F4, Uzunluk = 3, Data = 40 80 00. Periyot 0 ms bırakılabilir, boşluk tuşuna basıldığında mesajlar gönderilir (Şekil 9).



    Şekil 9 - CAN mesajı oluşturma

    Şekil 10, CAN'a gönderilen tüm mesajları ve bunlarla ilgili bilgileri içeren ana pencerenin İletim alanını göstermektedir. Bir mesaj vurgulandığında ve boşluk düğmesine basıldığında, CAN ağına bir paket gönderilecek ve sandalye istenen yönde hafifçe hareket edecektir.



    Açıktır ki, bu durumda sandalye üzerinde tam teşekküllü kontrol elde etmek mümkün olmayacaktır çünkü. fabrika uzaktan kumanda paketlerini ağdan çıkaramayız, ancak bu sorun oldukça çözülebilir.

    Sonuç

    Biraz çaba ve beceri ile yüksek teknolojiyi kullanarak kendi elektronik sistemlerinizi nasıl oluşturabileceğinizi gördük. CAN protokolü ve araç CAN veriyoluna bağlı cihazları nasıl bağlayabileceğinizi, keşfedebileceğinizi ve kontrol edebileceğinizi.

    CAN arayüzü, otomobillerde kullanılan elektronik cihazlar arasındaki iletişim için Bosch tarafından 1980'lerin sonunda geliştirildi.

    CAN'ın genel tanımı. Ağ, alıcı veya verici olabilen sözde düğümlerin iletişimi için tasarlanmıştır. Her düğüm iki bileşenden oluşur: CAN denetleyicisi ve alıcı-verici (alıcı-verici). Denetleyici, CAN ağı üzerinden değişim protokolünü uygular ve alıcı-verici ağ ile etkileşim sağlar (sinyallerin iletilmesi ve alınması).

    Uygulamada, standarda göre, CAN veri yolu genellikle, sinyallerin diferansiyel bir şekilde iletildiği bükümlü bir çifttir.

    Şek. CAN ağının yapısı gösterilmektedir. Genellikle, bir seri kodun TxD verici çıkışına ve bir RxD kod alıcı girişine sahip bir CAN modülüne sahip bir denetleyici olarak bir mikrodenetleyici kullanılır. Alıcı-verici mantık sinyallerini, yani mantık 0'lar ve 1'ler, CAN_H ve CAN_L etiketli iki veri yolu kablosuna uygulanan diferansiyel voltaja dönüştürür.

    Standarda göre hattın karakteristik empedansı 108-132 ohm aralığında olmalıdır. Sinyal yansımalarını azaltmak için veri yolunun her iki ucuna 120 ohm'luk sonlandırma dirençleri RC bağlanmalıdır. İletimin güvenilirliğini artırmak ve gürültü bağışıklığını artırmak için bazen üçüncü bir kablo kullanılır - GND olarak adlandırılan yaygın bir kablo. Besleme gerilimi UCC (veya UDD), GND'ye göre standart +5 V'tur.

    Fiziksel aktarım ortamından soyutlamak için, CAN belirtimi çekinik (çekinik) ve baskın (baskın) olmak üzere iki mantıksal durumu (yani mantıksal 0 ve 1) tanımlar. Bir ağ düğümü resesif bir bit ilettiğinde ve başka bir baskın olduğunda, baskın bitin alınacağı varsayılır.

    Resesif durumda (yani, alıcı-vericinin TxD girişindeki mantık 1), UDIFF =UCANH - UCANL diferansiyel voltajı minimum eşikten (alıcı girişinde 0,5 V veya verici çıkışında 0,05 V) düşüktür.

    Baskın durumda (yani alıcı-vericinin TxD girişinde mantık 0), diferansiyel voltaj UDIFF minimum eşikten (alıcı girişinde 0,9 V veya verici çıkışında 1,5 V) yüksektir.

    CAN'daki mesajlar. Arayüz kısa mesajlar kullanır: maksimum boyut 94 bittir. CAN mesajındaki veri içeriği, olduğu gibi, bu mesajın kaynağının adresini ve bu bilgiye ihtiyaç duyan alıcıların adreslerini dolaylı olarak belirler.

    Örneğin. bir CAN düğümü veri yoluna "Motor yağı sıcaklığı 80" mesajını gönderir. Diğer tüm düğümler bu mesajı alır, ancak yalnızca ona ihtiyaç duyan düğümler bu bilgiyi kullanır.

    CAN veri yolu üzerinden iletilen mesajlara çerçeveler veya çerçeveler denir. İletimi başlatan kişiye ve amacına bağlı olarak 4 tür çerçeve vardır:

    1) veri iletmek için kullanılan veri çerçevesi;

    2) uzak bir düğümden uzaktan veri talep etmek için kullanılan veri talep çerçevesi;

    3) veri yolunda hatalar algılandığında bir hata çerçevesi;

    4) örneğin alıcı hazır olmadığında paketlerin, bir veri çerçevesinin ve bir istek çerçevesinin iletimini geciktirmek için iletilen aşırı yükleme çerçevesi.

    Standart veri çerçevesi mesaj formatının bir görünümü şekil 2'de gösterilmektedir. Yedi farklı bit alanından oluşur:

      Çerçeve başlangıç ​​alanı, aynı zamanda verici ve alıcı üreteçleri senkronize etmeye yarayan bir baskın bitten oluşur.

      Tahkim alanı, 11 bitlik bir kimlik ve bir RTR - (veri aktarım talebi) biti içerir. Bir veri çerçevesi için bu bitin baskın seviyede olması gerekir.

      Kontrol alanı altı bitten oluşur. En önemli iki bit şu anda kullanılmamaktadır. Dört bitlik veri uzunluğu kodu, veri alanındaki bayt sayısını gösterir.

      Veri alanı sıfır ila sekiz bayt veri içerir.

      Sağlama toplamı alanı, mesaj sağlama toplamını (15 bit) ve resesif sınırlayıcı biti içerir.

      Onay alanı iki bitten oluşur. Slot adlı en önemli bit, verici düğümü resesif seviyeye ayarlar. İletim başarılı olursa, alıcı düğüm bu biti baskın seviyeye ayarlayarak bunu işaret eder. Bu alandaki ikinci bit, resesif ayırıcı bittir.

      Çerçeve alanının sonu yedi resesif bitten oluşur.

    Çerçevenin sonunu (EOF), üç resesif bitten oluşan bir boşluk alanı izler. Bu aralıktan sonra lastik serbest kabul edilir.

    Endüstriyel gerçek zamanlı ağ CAN, ortak bir veri iletim ortamına sahip bir ağdır. Bu, ağdaki tüm düğümlerin aynı anda veri yolu üzerinden iletilen sinyalleri aldığı anlamına gelir. Belirli bir düğüme mesaj göndermek mümkün değildir. Tüm ağ düğümleri, veri yolu üzerinden iletilen tüm trafiği alır. Ancak CAN denetleyicileri, CAN mesajlarını filtrelemek için bir donanım yeteneği sağlar.

    Her düğüm iki bileşenden oluşur. Bu, ağ ile etkileşimi sağlayan ve protokolü uygulayan CAN denetleyicisinin kendisi ve bir mikroişlemcidir (CPU).

    Pirinç. 1. CAN ağının topolojisi.

    CAN kontrolörleri, sinyallerin iletildiği CAN_H (can-high) ve CAN_L (can-low) olmak üzere iki hattı olan bir diferansiyel veri yolu kullanılarak bağlanır. CAN_H hattındaki sinyal CAN_L hattındakinden daha yüksek olduğunda mantık sıfır kaydedilir. Mantıksal birim - CAN_H ve CAN_L sinyallerinin aynı olduğu durumda (farklılıkları 0,5 V'tan az). Böyle bir diferansiyel iletim şemasının kullanılması, olası işÇok zor çevre koşullarında CAN ağları. Mantıksal sıfıra baskın bit, mantıksal sıfıra resesif bit denir. Bu adlar, CAN veri yolunda mantıksal bir ve sıfırın önceliğini yansıtır. Veri yolu günlüğüne eşzamanlı iletim ile. sıfır ve bir, veri yoluna yalnızca bir mantıksal sıfır (baskın sinyal) kaydedilecek ve bir mantıksal sıfır (resesif sinyal) bastırılacaktır.

    CAN mesaj türleri.

    CAN'daki veriler, standart formattaki kısa mesaj çerçevelerinde iletilir. CAN'da dört tür mesaj vardır:

    • veri çerçevesi
    • uzak çerçeve
    • Hata çerçevesi
    • aşırı yük çerçevesi

    veri çerçevesi en sık kullanılan mesaj türüdür. Aşağıdaki ana bölümlerden oluşur:

    • tahkim alanı, iki veya daha fazla düğüm aynı anda ağa veri göndermeye çalıştığında mesajın önceliğini belirler. Tahkim alanı sırayla oluşur:
      • CAN-2.0A standardı için, 11 bit tanımlayıcı + 1 bit RTR (yeniden aktarım)
      • CAN-2.0B standardı için, 29 bit tanımlayıcı + 1 bit RTR (yeniden aktarım)

      Tanımlayıcı alanının, adına rağmen, kendi başına ağdaki düğümü veya veri alanının içeriğini tanımlamadığına dikkat edilmelidir. Bir Veri çerçevesi için, RTR biti her zaman mantık sıfırına (baskın sinyal) ayarlanır.

    • veri alanı 0 ila 8 bayt veri içerir
    • CRC alanı, hata tespiti için kullanılan mesajın 15 bitlik sağlama toplamını içerir.
    • Onay Yuvası (1 bit), mesajı doğru şekilde alan her CAN denetleyicisi, ağa bir onay biti gönderir. Mesajı gönderen düğüm bu biti dinler ve onay alınmazsa iletimi tekrarlar. Bir onay aralığının alınması durumunda, ileten düğüm, yalnızca ağdaki düğümlerden en az birinin mesajını doğru bir şekilde aldığından emin olabilir.

    Pirinç. 2. Veri çerçevesi CAN 2.0A standardı.

    uzak çerçeve veri alanı olmayan ve RTR bit seti (1 - resesif bitler) olan bir Veri Çerçevesidir. Uzak çerçevenin temel amacı, ağdaki düğümlerden birinin başka bir düğüm tarafından veri ağına iletim başlatmasıdır. Bu şema, toplam ağ trafiğini azaltmanıza olanak tanır. Ancak, Uzak Çerçeve artık pratikte nadiren kullanılmaktadır (örneğin, Uzak Çerçeve, DeviceNet'te hiç kullanılmamaktadır).

    Hata çerçevesi CAN mesaj biçimini açıkça ihlal eden bir mesajdır. Böyle bir mesajın iletimi, tüm ağ düğümlerinin bir CAN çerçeve biçimi hatası kaydetmesine ve ardından ağa otomatik olarak bir Hata Çerçevesi iletmesine neden olur. Bu işlemin sonucu, verilerin verici düğüm tarafından ağa otomatik olarak yeniden iletilmesidir. Hata Çerçevesi, 6 bitten oluşan Hata Bayrağı alanından oluşur. aynı değer(ve bu nedenle Hata çerçevesi, Bit Doldurma kontrolünü ihlal eder, aşağıya bakın) ve 8 resesif bitten oluşan Hata Sınırlayıcı alanı. Hata Ayırıcı, diğer ağ düğümlerinin bir Hata Çerçevesi algıladıklarında ağa kendi Hata Bayraklarını göndermelerine izin verir.

    aşırı yük çerçevesi- Şu anda gelen bir mesajı işleyemeyen aşırı yüklenmiş bir düğüm tarafından kullanılması ve bu nedenle Aşırı yükleme çerçevesini kullanarak verilerin yeniden iletilmesini istemesi farkıyla Hata çerçevesinin yapısını ve mantığını tekrarlar. Şu anda, Aşırı Yük çerçevesi pratik olarak kullanılmamaktadır.

    İletim ortamına erişim kontrolü (bit düzeyinde tahkim).

    Bir CAN çerçevesinin tahkim alanı, CAN'da veri yolu erişim çakışmalarını tahribatsız tahkim kullanarak çözmek için kullanılır. Tahribatsız tahkim yönteminin özü aşağıdaki gibidir. Birkaç denetleyicinin aynı anda ağa bir CAN çerçevesini göndermeye başlaması durumunda, her biri veri yoluna gönderilecek bit ile rakip denetleyicinin veri yoluna göndermeye çalıştığı biti karşılaştırır. Bu bitlerin değerleri eşit ise her iki kontrolör de bir sonraki biti iletir. Ve bu, iletilen bitlerin değerleri farklı olana kadar olur. Şimdi, bir mantıksal sıfır (daha yüksek öncelikli bir sinyal) ileten kontrolör iletmeye devam edecek ve diğer (diğer) kontrolör, veri yolu yeniden serbest kalana kadar iletimini kesecektir. Tabii ki, veri yolu şu anda meşgulse, kontrolör boş olana kadar iletmeye başlamayacaktır.

    Pirinç. 3. CAN veriyolunda bit düzeyinde tahkim.

    Hata tespit yöntemleri.

    CAN protokolü, ağ hatalarını tespit etmek için beş yöntem tanımlar:

    • bit izleme
    • biraz doldurma
    • çerçeve kontrolü
    • ACKbilgi Kontrolü
    • CRC Kontrolü

    bit izleme- her düğüm, ağa bit aktarımı sırasında, kendisi tarafından iletilen bitin değerini, veri yolunda görünen bitin değeri ile karşılaştırır. Bu değerler eşleşmezse, düğüm bir Bit Hatası üretir. Doğal olarak, veri yolu üzerindeki tahkim sırasında (tahkim alanını veri yoluna geçirme), bu hata kontrol mekanizması devre dışı bırakılır.

    biraz doldurma- Bir düğüm veriyoluna sırayla aynı değere sahip 5 bit gönderdiğinde, karşıt değere sahip altıncı bir bit ekler. Alıcı düğümler bu ekstra biti kaldırır. Bir düğüm, veri yolunda aynı değere sahip 5'ten fazla ardışık bit algılarsa, bir Stuff Hatası üretir.

    çerçeve kontrolü- CAN mesajının bazı bölümleri tüm mesaj türlerinde aynı anlama gelir. Onlar. CAN protokolü, veri yolunda tam olarak hangi voltaj seviyelerinin ve ne zaman görüneceğini belirtir. Mesaj formatı ihlal edilirse, düğümler bir Form Hatası oluşturur.

    ACKbilgi Kontrolü- ağ üzerinden doğru mesajı alan her düğüm, ağa baskın (0) bir bit gönderir. Bu olmazsa, verici düğüm bir Onay Hatası günlüğe kaydeder.

    CRC Kontrolü- her CAN mesajı bir CRC toplamı içerir ve her alıcı düğüm alınan her mesaj için CRC değerini hesaplar. Toplamın hesaplanan CRC değeri, mesaj gövdesindeki CRC değeriyle eşleşmezse, alıcı düğüm bir CRC Hatası üretir.

    Hata sınırlama mekanizması.

    CAN ağının her düğümü, çalışma sırasında beş olası hatadan birini algılamaya çalışır. Bir hata algılanırsa, düğüm ağa bir Hata Çerçevesi gönderir ve böylece mevcut tüm ağ trafiğini (gönderme ve alma) yok eder. mevcut mesaj). Diğer tüm düğümler, Hata Çerçevesini algılar ve uygun eylemi gerçekleştirir (alınan mesajı atın). Ek olarak, her düğüm iki hata sayacı tutar: İletim Hatası Sayacı ve Alma Hatası Sayacı. Bu sayaçlar çeşitli kurallara göre artar veya azalır. Hata sayaçlarını yönetmenin kuralları oldukça karmaşıktır, ancak basit bir prensibe indirgenirler, bir iletim hatası, İletim Hatası sayacının 8 artmasına neden olur, bir alım hatası, Alma Hatası sayacını 1 artırır, herhangi bir doğru iletim / alım bir mesaj, karşılık gelen sayacı 1 azaltır. Bu kurallar, ileten düğümün gönderme hata sayacının, alıcı düğümlerin alma hata sayacından daha hızlı artmasına yol açar. Bu kural, hataların kaynağının verici düğüm olma olasılığının yüksek olduğu varsayımına karşılık gelir.

    CAN ağının her düğümü üç durumdan birinde olabilir. Bir düğüm başladığında, Hata Etkin durumundadır. İki hata sayacından en az biri 127 sınırını aştığında, düğüm Pasif Hata durumuna girer. İki sayaçtan en az birinin değeri 255 sınırını aştığında, düğüm Bus Off durumuna girer.

    Hata Etkin durumundaki bir düğüm, veri yolunda bir hata algılanırsa ağa Etkin Hata Bayrakları gönderir. Etkin Hata Bayrakları 6 baskın bitten oluşur, dolayısıyla tüm düğümler bunu kaydeder. Pasif Hata durumundaki bir düğüm, ağda bir hata algıladığında ağa Pasif Hata Bayrakları gönderir. Pasif Hata Bayrakları 6 resesif bitten oluşur, bu nedenle ağ düğümlerinin geri kalanı bunu fark etmez ve Pasif Hata Bayrakları yalnızca düğümün Hata sayacında bir artışa yol açar. Veri Yolu Kapalı durumundaki bir düğüm ağa hiçbir şey göndermez (yalnızca Hata çerçeveleri değil, hiçbir şey göndermez).

    Adresleme ve üst düzey protokoller

    CAN'da mesajların ve düğümlerin açık bir şekilde adreslenmesi yoktur. CAN protokolü, tahkim alanının (Tanımlama alanı + RTR) bir mesaj veya düğüm tanımlayıcısı olarak kullanılması gerektiğini hiçbir yerde belirtmez. Böylece mesaj tanımlayıcıları ve düğüm adresleri mesajın herhangi bir alanında (tahkim alanı, veri alanı veya her ikisi) görünebilir. Benzer şekilde protokol, tahkim alanının veri aktarımı için kullanılmasını yasaklamamaktadır.

    Tahkim alanının ve veri alanının kullanımı ve ağdaki düğüm adreslerinin, mesaj tanımlayıcılarının ve önceliklerin dağıtımı, Yüksek Katman Protokollerinin (HLP) konusudur. HLP adı, CAN protokolünün ISO/OSI referans ağ modelinin yalnızca iki alt katmanını açıklarken, geri kalan katmanların HLP protokolleri tarafından tanımlandığı gerçeğini yansıtır.

    Pirinç. 4. CAN protokolünün mantıksal yapısı.

    Bunun gibi birçok üst düzey protokol var. Bunlardan en yaygın olanları:

    • Cihaz ağı
    • CAL/CANaç
    • Can Krallık

    CAN protokolünün fiziksel katmanı

    CAN protokolünün Fiziksel Katmanı (Fiziksel Katman), kablonun direncini, ağdaki elektrik sinyallerinin seviyesini vb. belirler. CAN protokolünün birkaç fiziksel katmanı vardır (ISO 11898, ISO 11519, SAE J2411).

    Çoğu durumda, ISO 11898 standardında tanımlanan CAN fiziksel katmanı kullanılır.ISO 11898, iletim ortamı olarak empedansı (sonlandırıcılar) 120 ohm olan iki telli bir diferansiyel hattı tanımlar (empedans dalgalanmalarına aralıkta izin verilir). 108 ohm'dan 132 ohm'a kadar CAN fiziksel katmanı, CAN denetleyicileri tarafından kullanılan normal TTL sinyal seviyelerini CAN veriyolu üzerindeki sinyal seviyelerine dönüştüren CAN alıcı-vericileri (alıcı-vericileri) olan özel yongalarda uygulanır. En yaygın CAN alıcı-vericisi Phillips'tir. ISO 11898 standardına tamamen uyan 82C250.

    Protokole göre CAN ağının maksimum hızı 1 Mbit/sn'dir. 1 Mbit/sn hızında maksimum kablo uzunluğu yaklaşık 40 metredir. Kablonun uzunluğundaki sınırlama, sonlu ışık hızı ve bit bit tahkim mekanizması ile ilgilidir (tahkim sırasında, tüm ağ düğümleri mevcut iletim bitini aynı anda almalı, sinyalin yayılmak için zamanı olmalıdır. tek bir ağ süresinde tüm kablo boyunca Aktarım hızı ile maksimum kablo uzunluğu arasındaki ilişki tabloda gösterilmiştir:

    CAN ağı için konektörler hala STANDART DEĞİLDİR. Her üst düzey protokol genellikle CAN ağı için kendi konektör tipini tanımlar.

    CAN Veriyolu - Giriş

    CAN protokolü, seri iletişim için bir ISO standardıdır (ISO 11898). Protokol, taşıma uygulamalarında kullanılmak üzere geliştirilmiştir. Günümüzde yaygınlaşan CAN, endüstriyel üretim otomasyon sistemlerinde olduğu kadar ulaşımda da kullanılmaktadır.

    CAN standardı, fiziksel bir katmandan ve birkaç tanımlayan bir veri iletişim katmanından oluşur. çeşitli tipler mesajlar, veri yolu erişimi çakışma çözme kuralları ve yük devretme koruması.

    CAN protokolü

    CAN protokolü, ISO 11898-1 standardında açıklanmıştır ve aşağıdaki gibi özetlenebilir:

    Fiziksel katman, bükümlü çift üzerinden diferansiyel veri iletimini kullanır;

    Veri yoluna erişimi kontrol etmek için tahribatsız bit tabanlı çakışma çözümü kullanılır;

    Mesajlar küçüktür (çoğunlukla 8 bayt veri) ve bir sağlama toplamı tarafından korunur;

    Mesajların açık adresleri yoktur, bunun yerine her mesaj veri yolundaki sırasını kontrol eden sayısal bir değer içerir ve aynı zamanda mesaj içeriği için bir tanımlayıcı görevi görebilir;

    İletilerin düzgün bir şekilde alınmaması durumunda yeniden iletilmesini sağlayan iyi düşünülmüş bir hata işleme şeması;
    var Etkili araçlar hataları izole etmek ve hatalı düğümleri veri yolundan kaldırmak için.

    Daha yüksek seviyeli protokoller

    CAN protokolünün kendisi, yalnızca küçük veri paketlerinin iletişim ortamı aracılığıyla A noktasından B noktasına nasıl güvenli bir şekilde taşınabileceğini tanımlar. Tahmin edebileceğiniz gibi, akışın nasıl kontrol edileceği hakkında hiçbir şey söylemiyor; Aktar çok sayıda 8 baytlık bir mesaja sığan veriler; ne de düğüm adresleri hakkında; bağlantı kurmak vb. Bu noktalar, Yüksek Katman Protokolü (HLP) tarafından tanımlanır. HLP terimi, OSI modelinden ve onun yedi katmanından gelmektedir.

    Daha yüksek seviyeli protokoller aşağıdakiler için kullanılır:

    Veri hızı seçimi de dahil olmak üzere başlatma prosedürünün standardizasyonu;

    Adreslerin etkileşen düğümler veya mesaj türleri arasında dağılımı;

    Mesaj biçimlendirme tanımları;
    sistem düzeyinde hata işlemenin sağlanması.

    Kullanıcı grupları vb.

    CAN yetkinliğinizi arttırmanın en etkili yollarından biri mevcut kullanıcı grupları içerisinde yapılan çalışmalara katılmaktır. Aktif olarak katılmayı planlamasanız bile, kullanıcı grupları iyi bir bilgi kaynağı olabilir. Konferansa katılım bir başka iyi bir şekilde kapsamlı ve doğru bilgilerin elde edilmesi.

    CAN ürünleri

    Düşük seviyede, açık piyasada bulunan iki tür CAN ürünü arasında temel bir ayrım yapılır – CAN yongaları ve CAN geliştirme araçları. Daha fazlası için yüksek seviye– diğer iki ürün türü: CAN modülleri ve CAN mühendislik araçları. Bu ürünlerin geniş bir yelpazesi şu anda açık piyasada mevcuttur.

    CAN Patentleri

    CAN uygulamalarıyla ilgili patentler çeşitli türlerde olabilir: zamanlama ve frekansların uygulanması, büyük veri kümelerinin iletimi (CAN protokolü yalnızca 8 bayt uzunluğundaki veri çerçevelerini kullanır), vb.

    Dağıtılmış kontrol sistemleri

    CAN protokolü, dağıtılmış kontrol sistemleri geliştirmek için iyi bir temeldir. CAN tarafından kullanılan çakışma çözme yöntemi, her CAN düğümünün bu düğümle ilgili mesajlarla etkileşime girmesini sağlar.

    Dağıtılmış bir kontrol sistemi, bir sistem olarak tanımlanabilir. işlem gücü sistemin tüm düğümleri arasında dağıtılır. Bunun tersi, merkezi işlem birimi ve yerel G/Ç noktaları olan bir sistemdir.

    CAN mesajları

    CAN veriyolu bir yayın veriyoludur. Bu, tüm düğümlerin tüm aktarımları "dinleyebileceği" anlamına gelir. Belirli bir düğüme mesaj göndermenin bir yolu yoktur, istisnasız tüm düğümler tüm mesajları alır. Bununla birlikte, CAN donanımı yerel filtreleme yeteneği sağlar, böylece her modül yalnızca ilgilendiği mesaja yanıt verebilir.

    CAN mesajı adresleme

    CAN nispeten kısa mesajlar kullanır - bilgi alanının maksimum uzunluğu 94 bittir. Mesajların açık bir adresi yoktur, içerik adresli olarak adlandırılabilirler: mesajın içeriği dolaylı olarak (örtük olarak) muhatabı belirler.

    Mesaj türleri

    CAN veriyolunda iletilen 4 tür mesaj (veya çerçeve) vardır:

    Veri çerçevesi (Veri Çerçevesi);

    Uzak çerçeve (Uzak Çerçeve);

    Hata çerçevesi;

    Aşırı yük çerçevesi.

    veri çerçevesi

    Kısaca: “Herkese merhaba, X ile işaretlenmiş bir veri var, umarım beğenirsiniz!”
    Veri çerçevesi, en yaygın mesaj türüdür. Aşağıdaki ana bölümleri içerir (kısa olması için bazı ayrıntılar çıkarılmıştır):

    İki veya daha fazla düğüm veri yolu için rekabet ettiğinde mesajın sırasını belirleyen Tahkim Alanı. Tahkim alanı şunları içerir:

    CAN 2.0A durumunda, 11 bitlik tanımlayıcı ve bir bit, tanımlayıcı veri çerçevesi olan RTR biti.

    CAN 2.0B durumunda, 29 bitlik bir tanımlayıcı (ayrıca iki resesif bit içerir: SRR ve IDE) ve bir RTR biti.

    0 ila 8 bayt veri içeren Veri Alanı.

    Mesajın çoğu bölümü için hesaplanan 15 bitlik bir sağlama toplamı içeren CRC alanı (CRC Alanı). Bu sağlama toplamı, hata tespiti için kullanılır.

    Onay Yuvası. Mesajı doğru bir şekilde alabilen her CAN denetleyicisi, her mesajın sonunda bir Onay biti gönderir. Alıcı-verici, tanıma bitinin varlığını kontrol eder ve bulunmazsa mesajı yeniden gönderir.

    Not 1: Bus üzerindeki tanıma bitinin varlığı, programlanan her hedefin mesajı aldığından başka bir şey ifade etmez. Bilinen tek şey, mesajın bir veya daha fazla veri yolu düğümü tarafından doğru bir şekilde alındığıdır.

    Not 2: Tahkim alanındaki tanımlayıcı, ismine rağmen mutlaka mesajın içeriğini tanımlamaz.

    CAN 2.0B veri çerçevesi ("standart CAN").

    CAN 2.0B veri çerçevesi ("genişletilmiş CAN").

    uzak çerçeve

    Kısaca: "Herkese merhaba, X etiketli veri üretebilen var mı?"
    Silinen bir çerçeve, bir veri çerçevesine çok benzer, ancak iki önemli fark vardır:

    Açıkça silinmiş bir çerçeve olarak işaretlenir (tahkim alanındaki RTR biti resesiftir) ve

    Veri alanı eksik.

    Uzak bir çerçevenin ana görevi, uygun bir veri çerçevesinin iletimini talep etmektir. Diyelim ki A düğümü, 234'lük bir tahkim alanı parametresiyle bir uzak çerçeveyi iletirse, o zaman B düğümü, uygun şekilde başlatıldıysa, 234'lük bir tahkim alanı parametresiyle de bir veri çerçevesini geri göndermelidir.

    İstek-yanıt veri yolu trafik kontrolünü uygulamak için uzak çerçeveler kullanılabilir. Ancak pratikte uzak çerçeve çok az kullanılır. CAN standardı burada tam olarak nasıl belirtildiğini belirtmediği için bu o kadar önemli değil. Çoğu CAN denetleyicisi, uzak bir çerçeveye otomatik olarak yanıt verecek veya bunun yerine yerel işlemciye bildirimde bulunacak şekilde programlanabilir.

    Uzak çerçevenin bir püf noktası vardır: Veri Uzunluğu Kodu, beklenen yanıt mesajının uzunluğuna ayarlanmalıdır. Aksi takdirde, çatışma çözümü işe yaramaz.

    Bazen uzak bir çerçeveye yanıt veren bir düğümün tanımlayıcıyı tanıdığı anda iletimini başlatması ve böylece boş uzak çerçeveyi "doldurması" gerekir. Bu farklı bir durum.

    Hata Çerçevesi

    Kısaca (birlikte, yüksek sesle): "Ah CANIM, BİR BİR BİR DENEYELİM"
    Hata Çerçevesi özel mesaj CAN mesaj çerçeveleme kurallarını ihlal eden. Bir düğüm bir arıza tespit ettiğinde gönderilir ve diğer düğümlerin arızayı tespit etmesine yardımcı olur - ve onlar da hata çerçeveleri gönderir. Verici otomatik olarak mesajı tekrar göndermeyi deneyecektir. Bir düğümün tekrar tekrar hata çerçeveleri göndererek veri yolu iletişimini kesintiye uğratmamasını sağlamak için iyi düşünülmüş bir hata sayacı şeması vardır.

    Hata çerçevesi, aynı değere sahip 6 bitten oluşan (dolayısıyla bit doldurma kuralını ihlal eden) bir Hata Bayrağı ve 8 resesif bitten oluşan bir Hata Ayırıcı içerir. Hata sınırlayıcı, diğer veri yolu düğümlerinin kendileri ilk hata bayrağını algıladıktan sonra hata bayraklarını gönderebilecekleri bir alan sağlar.

    Aşırı Yük Çerçevesi

    Kısaca: "82526 küçük çok meşgulüm, bir dakika bekler misiniz?"
    Aşırı yük çerçevesinden burada sadece bütünlük adına bahsedilmiştir. Format olarak bir hata çerçevesine çok benzer ve meşgul bir düğüm tarafından iletilir. Aşırı yükleme çerçevesi nadiren kullanılır çünkü modern CAN denetleyicileri onu kullanmayacak kadar güçlüdür. Aslında, aşırı yükleme çerçeveleri oluşturacak tek denetleyici artık kullanılmayan 82526'dır.

    Standart ve Genişletilmiş CAN

    Başlangıçta, CAN standardı tahkim alanındaki tanımlayıcının uzunluğunu 11 bit olarak ayarlar. Daha sonra alıcıların talebi üzerine standart genişletildi. Yeni biçim genellikle genişletilmiş CAN (Genişletilmiş CAN) olarak anılır ve tanımlayıcıda en az 29 bite izin verir. Kontrol Alanında ayrılmış bir bit, iki tür çerçeve arasında ayrım yapmak için kullanılır.

    Resmi olarak, standartlar şu şekilde adlandırılır -

    2.0A - yalnızca 11 bitlik tanımlayıcılarla;
    2.0B, 29 bit veya 11 bit tanımlayıcılara sahip genişletilmiş bir sürümdür (karıştırılabilirler). Düğüm 2.0B olabilir

    2.0B aktif yayılmış çerçeveleri iletebilen ve alabilen veya

    2.0B pasif (pasif), yani alınan uzatılmış çerçeveleri sessizce atar (ancak aşağıya bakın).

    1.x - orijinal belirtimi ve revizyonlarını ifade eder.

    Şu anda, daha yeni CAN denetleyicileri genellikle 2.0B tipindedir. 1.x veya 2.0A tipi bir kontrolör, 29 tahkim biti ile mesaj alırken karıştırılacaktır. 2.0B pasif tip denetleyici bunları kabul edecek, doğruysa tanıyacak ve sonra atacaktır; bir kontrolör 2.0B aktif tipi, bu tür mesajları hem iletebilir hem de alabilir.

    2.0B ve 2.0A (ayrıca 1.x) denetleyicileri uyumludur. 2.0B denetleyicileri yayılmış çerçeveler göndermekten kaçındıkları sürece hepsini aynı veri yolunda kullanabilirsiniz.

    Bazen insanlar standart CAN'ın genişletilmiş CAN'dan "daha iyi" olduğunu iddia eder çünkü genişletilmiş CAN mesajlarında daha fazla ek yük vardır. Çok lazım değil. Verileri iletmek için bir tahkim alanı kullanıyorsanız, genişletilmiş bir CAN çerçevesi, standart bir CAN çerçevesinden daha az ek yük içerebilir.

    Temel CAN (Temel CAN) ve tam CAN (Tam CAN)

    Temel CAN ve Tam CAN terimleri, CAN'ın "çocukluğunda" ortaya çıkar. Bir zamanlar, programcıya DPRAM tarzı bir arabirim sağlayan bir Intel 82526 CAN denetleyicisi vardı. Ardından FIFO odaklı bir programlama modeli kullanan 82C200 ile Philips geldi ve sınırlı fırsatlar süzme İki programlama modelini ayırt etmek için, insanlar Intel yöntemini Tam CAN ve Philips yöntemini Temel CAN olarak adlandırmaya başladılar. Günümüzde çoğu CAN denetleyicisi her iki programlama modelini de desteklemektedir, bu nedenle Tam CAN ve Temel CAN terimlerini kullanmanın bir anlamı yoktur - aslında bu terimler karışıklığa neden olabilir ve bunlardan kaçınılmalıdır.

    Aslında, Tam CAN denetleyicisi Temel CAN denetleyicisi ile iletişim kurabilir ve bunun tersi de geçerlidir. Uyumluluk sorunu yoktur.

    Veriyolu Uyuşmazlık Çözümü ve Mesaj Önceliği

    Mesaj çakışma çözümü (iki veya daha fazla CAN denetleyicisinin veri yolunu kimin kullanacağına karar verdiği süreç), veri iletimi için gerçek bant genişliği kullanılabilirliğini belirlemede çok önemlidir.

    Herhangi bir CAN denetleyicisi, veri yolunun boşta olduğunu algıladığında iletimi başlatabilir. Bu, iki veya daha fazla denetleyicinin aynı anda (neredeyse) bir mesaj iletmeye başlamasına neden olabilir. Çatışma şu şekilde çözülür. Verici düğümler, mesaj gönderilirken veri yolunu izler. Bir düğüm, kendisi resesif bir seviye gönderirken baskın bir seviye tespit ederse, derhal çatışma çözme sürecinden çekilecek ve alıcı olacaktır. Çarpışma çözümlemesi tüm tahkim alanı üzerinden gerçekleştirilir ve bu alan gönderildikten sonra bus üzerinde sadece bir verici kalır. Hiçbir şey olmazsa bu düğüm iletmeye devam edecek. Diğer potansiyel vericiler, mesajlarını daha sonra, otobüs boşaldığında iletmeye çalışacaklardır. Çatışma çözme sürecinde hiçbir zaman boşa harcanmaz.

    Çatışmanın başarılı bir şekilde çözülmesinin önemli bir koşulu, iki düğümün aynı tahkim alanını iletebileceği bir durumun imkansızlığıdır. Bu kuralın bir istisnası vardır: eğer mesaj veri içermiyorsa, o zaman herhangi bir düğüm bu mesajı iletebilir.

    CAN veri yolu bir kablolu VE veri yolu olduğundan ve Baskın bit mantıksal 0 olduğundan, sayısal olarak en düşük tahkim alanına sahip mesaj çakışma çözümünü kazanacaktır.

    Soru: Tek bir veri yolu düğümü bir mesaj göndermeye çalışırsa ne olur?

    Cevap: Düğüm, elbette çatışmayı çözmede kazanacak ve mesajı başarılı bir şekilde iletecektir. Ancak tanıma zamanı geldiğinde... hiçbir düğüm tanıma alanının baskın bitini göndermeyecek, böylece verici bir tanıma hatası saptar, bir hata bayrağı gönderir, iletim hatası sayacını 8 artırır ve yeniden iletime başlar. Bu döngü 16 kez tekrar edecek, ardından verici pasif hata durumuna geçecektir. Hata sınırlama algoritmasındaki özel bir kurala göre, düğüm pasif bir hata durumuna sahipse ve hata bir tanıma hatasıysa, iletim hatası sayacının değeri artık artmayacaktır. Bu nedenle, biri mesajı tanıyana kadar düğüm sonsuza kadar iletecektir.

    Mesaj adresleme ve tanımlama

    Yine, CAN mesajlarının tam adres içermemesinde yanlış olan bir şey yoktur. Her CAN denetleyicisi tüm veri yolu trafiğini alacak ve bir donanım filtreleri ve yazılım kombinasyonu kullanarak bu mesajla "ilgilenip ilgilenmediğini" belirleyecektir.

    Aslında, CAN protokolü bir mesaj adresi kavramından yoksundur. Bunun yerine, mesajın içeriği, mesajın herhangi bir yerinde bulunan bir tanımlayıcı tarafından tanımlanır. CAN mesajları "içerik adresli" olarak adlandırılabilir.

    Belirli bir adres şu şekilde çalışır: "Bu, X düğümü için bir mesajdır." İçeriğe yönelik bir mesaj şu şekilde tanımlanabilir: "Bu mesaj, X ile işaretlenmiş verileri içeriyor." İki kavram arasındaki fark küçük ama önemlidir.

    Tahkim alanının içeriği, standarda göre, mesajın veri yolundaki sırasını belirlemek için kullanılır. Tüm CAN denetleyicileri, donanım filtreleme sürecinde bir anahtar olarak tahkim alanının tümünü (yalnızca bir kısmını) kullanır.

    Standart, tahkim alanının mutlaka bir mesaj tanımlayıcısı olarak kullanılması gerektiğini söylemez. Ancak, bu çok yaygın bir kullanım durumudur.

    Tanımlayıcı değerler hakkında bir not

    Tanımlayıcı için 11 (CAN 2.0A) veya 29 (CAN 2.0B) bit olduğunu söyledik. Bu tamamen doğru değil. Belirli bir eski CAN denetleyicisiyle uyumluluk için (tahmin edin hangisi?), tanımlayıcıların en önemli 7 biti mantıksal bire ayarlanmamış olmalıdır, bu nedenle 11 bit tanımlayıcılar ve 29-bitlik kullanıcılar için 0..2031 değerleri mevcuttur. bit tanımlayıcıları 532676608 farklı değer kullanabilir.

    Diğer tüm CAN denetleyicilerinin "yanlış" tanımlayıcıları kabul ettiğini unutmayın, bu nedenle 2032..2047 tanımlayıcıları modern CAN sistemlerinde kısıtlama olmaksızın kullanılabilir.

    CAN fiziksel katmanları

    CAN veri yolu

    CAN veriyolu, bit doldurmalı sıfıra dönüşsüz (NRZ) bir kod kullanır. İki farklı sinyal durumu vardır: baskın (mantıksal 0) ve resesif (mantıksal 1). Kullanılan fiziksel katmana bağlı olarak belirli elektrik seviyelerine karşılık gelirler (birkaç tane vardır). Modüller veri yoluna kablolu VE bağlıdır: en az bir düğüm veri yolunu baskın duruma getirirse, kaç düğüm resesif durumu ilettiğine bakılmaksızın tüm veri yolu bu durumdadır.

    Çeşitli fiziksel seviyeler

    Fiziksel katman elektrik seviyelerini ve bara sinyal şemasını, kablo empedansını vb. tanımlar.

    Bir kaç tane var çeşitli versiyonlar Fiziksel Katmanlar: En yaygın değişken, ISO 11898-2'nin bir parçası olan CAN standardı tarafından tanımlanır ve iki telli dengeli bir sinyal şemasıdır. Bazen yüksek hızlı CAN olarak da adlandırılır.

    Aynı ISO 11898-3 standardının başka bir bölümü, daha yavaş bir veri yolu için farklı bir iki telli dengeli sinyal şemasını tanımlar. Hataya dayanıklıdır, bu nedenle kablolardan biri kesilse, toprağa kısa devre yapsa veya Vbat durumunda olsa bile sinyalleşme devam edebilir. Bazen bu şemaya düşük hızlı CAN denir.

    SAE J2411, tek telli (artı tabii ki toprak) bir fiziksel katmanı tanımlar. Esas olarak arabalarda kullanılır - örneğin GM-LAN.

    Birkaç tescilli fiziksel katman vardır.

    Eskiden CAN sürücüleri yokken RS485 modifikasyonları kullanılıyordu.

    Kural olarak, farklı fiziksel seviyeler birbiriyle etkileşime giremez. Bazı kombinasyonlar iyi koşullarda çalışabilir (veya çalışıyor gibi görünebilir). Örneğin, yüksek hızlı ve düşük hızlı alıcı-vericiler aynı veri yolu üzerinde yalnızca ara sıra çalışabilir.

    CAN alıcı-verici yongalarının büyük çoğunluğu Philips tarafından üretilmiştir; diğer üreticiler arasında Bosch, Infineon, Siliconix ve Unitrode bulunmaktadır.

    En yaygın alıcı-verici, ISO 11898 standardı tarafından açıklanan fiziksel katmanı uygulayan 82C250'dir.Geliştirilmiş bir sürüm, 82C251'dir.

    Yaygın bir düşük hızlı CAN alıcı-verici, Philips TJA1054'tür.

    Maksimum veri yolu veri hızı

    CAN veri yolunda maksimum veri aktarım hızı, standarda göre, 1 Mbps'ye eşittir. Ancak, bazı CAN denetleyicileri 1 Mbps'nin üzerindeki hızları destekler ve özel uygulamalarda kullanılabilir.

    Düşük hızlı CAN (ISO 11898-3, yukarıya bakın) 125 kbps'ye kadar hızlarda çalışır.

    Tek telli CAN veriyolu standart mod verileri yaklaşık 50 kbps hızında ve özel bir yüksek hız modunda, örneğin bir ECU'yu (ECU) programlamak için yaklaşık 100 kbps hızında iletebilir.

    Otobüste minimum veri aktarım hızı

    Bazı alıcı-vericilerin belirli bir değerin altında bir hız seçmenize izin vermeyeceğini unutmayın. Örneğin 82C250 veya 82C251 kullanıyorsanız hızı sorunsuz bir şekilde 10 kbps'ye ayarlayabilirsiniz ancak TJA1050 kullanıyorsanız hızı 50 kbps'nin altına ayarlayamazsınız. Spesifikasyona göz atın.

    Maksimum kablo uzunluğu

    1 Mbps veri hızında, kullanılan kablonun maksimum uzunluğu yaklaşık 40 metre olabilir. Bunun nedeni, sinyalin dalga cephesinin en uzak düğüme ulaşabilmesi ve bit okunmadan önce geri dönebilmesi gerektiği çatışma çözme şemasının gerekliliğinden kaynaklanmaktadır. Yani kablo uzunluğu ışık hızı ile sınırlıdır. Işık hızını artırma önerileri dikkate alındı, ancak galaksiler arası sorunlar nedeniyle reddedildi.

    Diğer maksimum kablo uzunlukları (değerler yaklaşıktır):

    500 kbps'de 100 metre;

    250 kbps'de 200 metre;

    125 kbps'de 500 metre;
    10 kbps'de 6 kilometre.

    Galvanik izolasyon için optokuplörler kullanılıyorsa, maksimum veri yolu uzunluğu buna göre azaltılır. İpucu: hızlı optokuplörler kullanın ve veri sayfasındaki maksimum veri hızına değil, cihazdaki sinyal gecikmesine bakın.

    Otobüs sonlandırma

    ISO 11898 CAN veri yolu bir sonlandırıcı ile sonlandırılmalıdır. Bu, veri yolunun her bir ucuna 120 ohm'luk bir direnç takılarak elde edilir. Fesih iki amaca hizmet eder:

    1. Veri yolunun sonundaki sinyal yansımalarını kaldırın.

    2. Doğru seviyeleri aldığından emin olun doğru akım(DC).

    ISO 11898 CAN veri yolu, hızından bağımsız olarak sonlandırılmalıdır. Tekrar ediyorum: ISO 11898 CAN veri yolu, hızı ne olursa olsun sonlandırılmalıdır. İçin laboratuvar işi bir sonlandırıcı yeterli olabilir. CAN veri yolunuz sonlandırıcıların yokluğunda bile çalışıyorsa, sadece şanslısınız.

    Dikkat edin diğer fiziksel seviyeler düşük hızlı CAN, tek kablolu CAN ve diğerleri gibi, bir veri yolu sonlandırıcı gerektirebilir veya gerektirmeyebilir. Ancak ISO 11898 yüksek hızlı CAN veri yolunuz her zaman en az bir sonlandırıcı gerektirecektir.

    Kablo

    ISO 11898 standardı şunu belirtir: dalga direnci kablo nominal olarak 120 ohm olmalıdır, ancak bir dizi ohm direnç değerine izin verilir.

    Bugün piyasada çok az kablo bu gereksinimleri karşılamaktadır. Direnç değerleri aralığının gelecekte genişletilmesi kuvvetle muhtemel.

    ISO 11898, ekranlı veya ekransız bükümlü çifti tanımlar. SAE J2411 tek telli kablo standardı üzerinde çalışmalar devam etmektedir.

    yönetici

    Otomobillerde seri bağlantı ihtiyacı

    Bu, CAN veri yolunun nasıl düzenlendiğini ve çalıştığını biraz daha ayrıntılı olarak ortaya koyan CAN veriyoluna adanmış döngüden çevrilen bir sonraki makalemizdir. İngilizce orijinal.

    Birçok otomobilde halihazırda çok sayıda elektronik kontrol sistemi bulunmaktadır. Otomotiv elektroniğinin büyümesi, kısmen tüketicilerin daha fazla güvenlik ve konfor arzusunun ve kısmen de hükümetin daha iyi emisyon kontrolü ve daha düşük yakıt tüketimi taleplerinin sonucudur. Bu gereklilikleri karşılayan kontroller, motor, şanzıman ve gaz kelebeği kontrolü ile kilitlenmeyi önleyici fren sistemleri (ABS) ve hızlanma kontrolü (ASC) alanlarında bir süredir kullanılmaktadır.

    Bu sistemlerde uygulanan fonksiyonların karmaşıklığı, aralarında veri alışverişini gerektirir. Geleneksel sistemler özel sinyal hatları kullanarak iletişim kurar, ancak kontrol fonksiyonları daha karmaşık hale geldikçe bu daha zor ve pahalı hale geliyor. Ne zaman karmaşık sistemler kontrolleri (Motronic gibi), özellikle bağlantı sayısı artık artırılamaz.

    Ek olarak, birden fazla kontrol cihazını kapsayan fonksiyonları uygulayan bir dizi sistem geliştirilmektedir. Örneğin ASC, tahrik tekerleği kaydığında torku azaltmak için motor yönetim sistemi ile gaz kelebeği (enjeksiyon) kontrolünün etkileşimini gerektirir. Birden fazla kontrol ünitesini içeren fonksiyonlara başka bir örnek, vites değiştirme kolaylığının ateşleme zamanlamasını kısaca ayarlayarak iyileştirilebildiği elektronik şanzıman kontrolüdür.

    Araçların genel optimizasyonunu amaçlayan gelecekteki gelişmeleri de göz önünde bulundurursak, şu durumlardan kaynaklanan sınırlamaların üstesinden gelmek gerekir: geleneksel cihazlar yönetmek. Bu, yalnızca bir seri veri yolu kullanan ağ sistemi bileşenleri tarafından yapılabilir. Bosch, "Kontrolör Alan Ağı(CAN), o zamandan beri uluslararası standartlaştırılmıştır (ISO 11898) ve birkaç yarı iletken üreticisi tarafından "taşa (silikonda) dökülmüştür".

    CAN kullanılarak, uçtan uca (tek düzeyli) istasyonlar (kontrolörler, sensörler ve aktüatörler) bir seri veri yolu üzerinden bağlanır. Veri yolunun kendisi korumalı veya korumasız olabilen dengeli veya asimetrik iki telli bir devredir. Fiziksel iletim elektriksel parametreleri de ISO 11898 standardında belirtilmiştir.Uygun otobüs sürücü çipleri çok çeşitli üreticilerden temin edilebilir.

    ISO/OSI referans modelindeki veri bağı katmanına karşılık gelen CAN protokolü, mevcut araç uygulamaları için otomotiv gereksinimlerini karşılar. Kablo ağacı yapılarından farklı olarak, ağ protokolü elektromanyetik girişimin neden olduğu iletim hatalarını algılar ve düzeltir. Böyle bir ağın ek avantajları, tüm sistemi yapılandırma kolaylığı ve merkezi teşhis olasılığıdır.

    CAN'ı araçlarda kullanmanın amacı, kontrol bilgisayarına çok fazla yük bindirmeden herhangi bir istasyonun diğeriyle iletişim kurmasını sağlamaktır.

    CAN ağını arabalarda kullanma

    Araçlarda seri iletişim için her biri farklı gereksinimleri ve amaçları olan dört ana uygulama vardır.

    Motoru, şanzımanı, şasiyi ve frenleri senkronize etmek için ağ denetleyicileri. Veri aktarım hızları, gerçek zamanlı sistemler için tipik olan 200 kbps ila 1 Mbps aralığındadır.
    Ağ bileşenleri otomobili daha konforlu hale getiren genel elektronik ve şasi elektroniği. Bu tür multipleks uygulamalara örnek olarak aydınlatma kontrolü, klima ve merkezi kilitleme, koltuk ve ayna ayarı verilebilir. Burada bileşen maliyetlerine ve kablolama gereksinimlerine özel önem verilmelidir. Tipik bir veri hızı yaklaşık 50 kbps'dir.
    Yakın gelecekte seri haberleşme de sahada kullanılacaktır. mobil iletişim araç radyoları, araç telefonları, navigasyon yardımcıları vb. bileşenleri merkezi, daha ergonomik bir kontrol paneline bağlamak için. Araçtan araca iletişim gibi Project Prometheus'ta tanımlanan işlevler, büyük ölçüde seri iletişime dayanacaktır.
    Şu anda ilk üç uygulama için CAN kullanılıyor, ancak teşhis için ISO 9141'e göre bir arayüz tercih edilen çözüm.

    CAN ağının endüstriyel uygulamaları

    Araç veri yolu sistemleri ve endüstriyel alan veri yolu sistemleri için gereksinimlerin karşılaştırılması, çarpıcı benzerlikler ortaya koyuyor: düşük maliyet, zorlu elektrik ortamlarında performans, yüksek gerçek zamanlı kapasite ve kullanım kolaylığı, her iki sektörde de eşit derecede arzu edilir.

    CAN'ın Mercedes-Benz'in "S-Serisi"nde standart kullanımı ve ABD'li ticari otomobil üreticilerinin hızlı iletim (1 Mbit/s'ye kadar) için CAN'ı benimsemesi, endüstriyel kullanıcıların kulaklarını dikmesine neden oldu. Sadece mobil ve sabit tarım ve deniz makine ve ekipmanları üreticileri değil, aynı zamanda tıbbi ekipman, tekstil makineleri, özel ekipman ve asansör kontrolleri üreticilerinin de tercihi CAN'ı seçti. Bir seri veri yolu sistemi, bir makine veya tesis içindeki sensörler ve aktüatörler kadar ağ bağlantılı "akıllı" I/O cihazları için özellikle uygundur.

    Tekstil makine sektörü CAN'ın öncülerinden biridir. Bir üretici, 1990 gibi erken bir tarihte, CAN ağları aracılığıyla gerçek zamanlı iletişim kuran modüler kontrol sistemleri ile dokuma tezgahlarını donattı. Bu arada, birkaç tekstil makinesi üreticisi, uluslararası kullanıcı ve üretici grubu "CAN in Automation"ın bir üyesi olan "CAN Textile Users Group" bünyesinde birleşti. Ambalajlama makinelerinde tekstil makinelerinde ve kağıt üretimi ve işlenmesinde kullanılan makinelerde de benzer gereklilikler vardır.

    ABD'de çok sayıda işletme CAN'ı üretim hatlarında ve makine araçlarında kullanıyor. iç sistem hat içindeki veya doğrudan makine üzerindeki ağ sensörleri ve aktüatörler için lastikler. Tıp mühendisliği sektörü gibi bazı kullanıcılar, özellikle katı güvenlik gereksinimlerine sahip oldukları için CAN'ı tercih ettiler. Özel güvenlik gereksinimleri olan diğer makine ve ekipman üreticileri (örn. robotlar ve taşıma sistemleri) benzer sorunlarla karşı karşıyadır.

    Yüksek iletim güvenilirliğine ek olarak, istasyon başına düşük bağlantı maliyetleri CAN için bir başka belirleyici argümandır. Fiyatın kritik olduğu uygulamalarda, CAN yongalarının çeşitli üreticilerden temin edilebilmesi önemlidir. Diğer kontrolör çiplerinin kompaktlığı da örneğin alçak gerilim şalt alanında önemli bir husustur.

    CAN ağları nasıl çalışır?

    Veri alışverişi ilkeleri

    Veriler CAN üzerinden iletildiğinde, hiçbir istasyon adreslenmez, bunun yerine mesajın içeriği (örn. motor devri veya sıcaklık), ağ genelinde benzersiz olan bir tanımlayıcı tarafından tanımlanır. Tanımlayıcı, yalnızca içeriği değil, aynı zamanda mesajın önceliğini de belirler. Bu, birden fazla istasyon otobüs erişimi için rekabet ettiğinde, otobüs tahsisi için önemlidir. Belirli bir istasyonun CPU'su bir veya daha fazla istasyona bir mesaj göndermek isterse, verileri ve tanımlayıcılarını atanan CAN çipine (Hazır durumu) gönderir. İletişimi başlatmak için CPU'nun yapması gereken tek şey bu. Mesaj, bir CAN çipi kullanılarak oluşturulur ve iletilir. CAN çipi bir veri yolu ataması alır almaz ("Mesaj Gönder" durumu), CAN ağındaki diğer tüm istasyonlar bu mesajın alıcısı olur ("Mesaj Al" durumu). Mesajı doğru bir şekilde alan CAN ağındaki her istasyon, alınan verilerin bu istasyon için geçerli olup olmadığını ("Seç" durumu) belirlemek için bir kabul testi (alma testi) gerçekleştirir. Veriler ilgili istasyonla ilgiliyse işlenir (Durum "Kabul edildi"), aksi takdirde göz ardı edilir. İçeriğe yönelik bir adresleme şeması aracılığıyla yüksek derecede sistem ve konfigürasyon esnekliği elde edilir. Donanımda herhangi bir değişiklik yapmadan mevcut bir CAN ağına istasyon eklemek çok kolaydır veya yazılım mevcut istasyonlar için, yeni istasyonların saf alıcı olması şartıyla. İletişim protokolü, bireysel bileşenler için fiziksel hedef adresleri gerektirmediğinden, modüler elektronik kavramını destekler ve ayrıca çoklu alıma (yayın, çoklu yayın) ve dağıtılmış süreçlerin senkronizasyonuna izin verir: birkaç kontrolör tarafından bilgi olarak gerekli olan ölçümler üzerinden iletilebilir. her denetleyicinin kendi sensörüne sahip olması gerekmeyecek şekilde bir ağ.



    1. Verilerin belirli bir düğüm için uygun olup olmadığını belirlemek için CAN düğümleri tarafından yayın iletimi ve giriş filtreleme

    Tahribatsız bit düzeyinde kontrol:

    Verilerin gerçek zamanlı olarak işlenebilmesi için hızlı bir şekilde iletilmesi gerekir. Bu sadece 1 Mbps'ye kadar fiziksel bir veri bağlantısı gerektirmez, aynı zamanda birden fazla istasyon aynı anda mesaj göndermek istediğinde hızlı veri yolu tahsisi gerektirir.



    2. Tahribatsız bitsel doğrulama ilkesi (değerlendirme, okuma)

    Gerçek zamanlı olarak, ağ mesajlaşmasının aciliyeti (sıralama) büyük ölçüde değişebilir: hızla değişen bir boyut (örn. motor yükü), yavaşa göre değişen diğer ölçümlerden (örn. motor sıcaklığı) daha sık ve dolayısıyla daha kısa gecikmelerle iletilmelidir. Bir mesajın daha az acil olan başka bir mesaja göre iletilme önceliği, karşılık gelen mesajın tanımlayıcısı tarafından belirlenir. Öncelikler, sistem tasarımı sırasında karşılık gelen ikili değerler olarak belirlenir ve dinamik olarak değiştirilemez. En küçük kimlik ikili numara en yüksek önceliğe sahiptir.

    Veri yolu erişim çakışmaları, veri yolu seviyesini parça parça gözlemleyerek (okuyarak) alınan tanımlayıcıların katılımcı istasyonlarının her birini parça parça kontrol ederek çözülür. Baskın durumun (mantıksal 0) resesif durumun (mantıksal 1) üzerine yazdığı "kablolu ve" mekanizmasına göre, resesif iletim ve baskın izleme (almak için 0'ı bekleyin) olan tüm bu istasyonlar tarafından veri yolu tahsisi çekişmesi kaybedilir. Tüm "kaybedenler" otomatik olarak en yüksek öncelikli mesajın alıcısı olur ve veri yolu tekrar kullanılabilir olana kadar yeniden iletmez.

    Lastik Dağıtım Verimliliği:

    Bir veri yolu dağıtım sisteminin verimliliği, öncelikle bu sistem için bir seri veri yolunun olası kullanımı ile belirlenir. Hangi veri yolu sistemlerinin hangi uygulamalar için uygun olduğuna karar vermek için literatür, otobüs tahsis prosedürlerini sınıflandırmak için bir yöntem içerir. Genellikle aşağıdaki sınıfları birbirinden ayırırız:

    Sabit bir programa göre dağıtım. Tahsis, bu katılımcının o anda veri yoluna ihtiyacı olup olmadığına bakılmaksızın (örnekler: jeton hücresi veya jeton transferi) her katılımcıya maksimum süre boyunca sırayla yapılır.
    İhtiyaca göre lastik tahsisi. Veri yolu, bekleyen transfer taleplerine göre bir üyeye atanır, yani tahsis sistemi sadece transfer etmek isteyen katılımcıları dikkate alır (örnekler: CSMA, CSMA/CD, kontrol uçuşu, döngü veya bit kontrolü). CAN için, veri yolu tahsisi, iletilmeyi bekleyen mesajlar arasında özel olarak görüşülür. Bu, CAN tarafından tanımlanan prosedürün ihtiyaca göre tahsis olarak sınıflandırıldığı anlamına gelir.

    Lastik muayene (değerlendirme) sistemlerinin etkinliğini değerlendirmenin bir başka yolu da otobüs erişim yöntemidir:

    Tahribatsız veri yolu erişimi. Bu tür yöntemlerde, otobüse bir erişimden hemen sonra veya belirli bir süre içinde (bir veya daha fazla istasyon tarafından) otobüs bir ve yalnızca bir istasyona atanır. Bu, bir veya daha fazla istasyon tarafından veri yoluna her erişimin benzersiz bir veri yolu tahsisiyle sonuçlanmasını sağlar (örnekler: belirteç konumu, belirteç aktarımı, döngü, bit kontrolü.
    Yıkıcı lastik dağıtımı. Birden fazla istasyonun veri yoluna eşzamanlı erişimi, tüm iletim girişimlerinin iptal edilmesiyle sonuçlanır ve bu nedenle başarılı bir veri yolu tahsisi olmaz. Veri yolu tahsisi birden fazla veri yolu erişimi gerektirebilir, başarılı bir veri yolu tahsisinden önceki deneme sayısı tamamen istatistiksel bir değerdir (örnekler: CSMA/CD, Ethernet). Mümkün olan en düşük veri hızında gecikme sınırlarına saygı duyarak tüm CAN ağ iletim isteklerini işlemek için CAN protokolünün, farklı kaynaklardan eşzamanlı veri yolu erişimleri olsa bile her zaman net bir veri yolu tahsisi olmasını sağlayan bir veri yolu tahsis yöntemi uygulaması gerekir. istasyonlar.

    İletilecek mesajların tanımlayıcısını kullanan bit-bit kontrol yöntemi, iletmek isteyen birden fazla istasyon arasındaki herhangi bir çakışmayı benzersiz bir şekilde çözer ve bunu en geç 13 (standart format) veya 33 (genişletilmiş format) içinde yapar. herhangi bir erişim periyodu için bit periyotları. CSMA/CD yöntemi tarafından kullanılan mesaj tabanlı denetimden farklı olarak, bu tahribatsız çakışma çözme yöntemi, veri yolu bant genişliğinin faydalı bilgiler aktarılmadan kullanılmamasını sağlar.

    Veri yolunun sıkışık olduğu durumlarda bile, veri yolu erişim önceliğini mesaj içeriğiyle ilişkilendirmek, mevcut CSMA / CD veya token (token) protokollerine kıyasla yararlı bir sistem özelliği olduğunu kanıtlıyor: yetersiz veri yolu bant genişliğine rağmen, bekleyen tüm aktarım istekleri şu şekilde işlenir: tüm sistem için önemlerini sıralayın (mesajın önceliğine göre belirlenir).

    Veri yolu tahsisindeki "boşluklar" çok küçük tutulduğu için, mevcut bant genişliği faydalı verileri aktarmak için etkin bir şekilde kullanılır. CSMA/CD protokolü ile olabilecek aşırı yük nedeniyle tüm iletim sisteminin düşmesi CAN ile mümkün değildir. Bu şekilde CAN, kullanılan mesaj önceliğine dayalı olarak bit-bit kontrol nedeniyle tahribatsız, hızlı, trafik tanımlı veri yolu erişiminin uygulanmasına izin verir.

    Tahribatsız veri yolu erişimi şu şekilde ayrılabilir:

    Otobüs erişiminin merkezi yönetimi ve
    Merkezi olmayan veri yolu erişim kontrolü

    Kontrol mekanizmalarının sistemde yalnızca bir kez (merkezi) veya birden fazla (merkezi olmayan) bulunmasına bağlı olarak.

    Atanan istasyonla iletişim sistemi (özellikle merkezi veri yolu erişim kontrolü için), ana istasyonun arızalanması durumunda devreye giren bir strateji sağlamalıdır. Bu konseptin dezavantajı, arıza yönetimi stratejisinin uygulanmasının karmaşık ve pahalı olması ve yedek istasyonun merkezi istasyonu devralmasının çok uzun zaman alabilmesidir.

    Bu nedenlerden dolayı ve ana istasyonun (ve dolayısıyla tüm iletişim sisteminin) güvenilirliği sorununu aşmak için CAN protokolü merkezi olmayan veri yolu yönetimini uygular. Veri yolu erişim kontrolü de dahil olmak üzere tüm temel iletişim mekanizmaları, sistemde birden çok kez gerçekleştirilir, çünkü iletişim sisteminin yüksek kullanılabilirlik gereksinimlerini karşılamanın tek yolu budur.

    Genel olarak, CAN'ın, merkezi olmayan erişim kontrolü ile tahribatsız veri yolu erişimini kullanarak, yüksek faydalı hız tüm istasyonlar için yoğun veri yolu koşullarında mümkün olan en düşük veri yolu veri hızında veri aktarın. Veri yolu kontrol prosedürünün etkinliği, veri yolunun yalnızca isteklerin iletilmesini bekleyen istasyonlar tarafından kullanılmasıyla artırılır.

    Bu talepler, mesajların bir bütün olarak sisteme önem sırasına göre işlenir. Bu özellikle aşırı yük durumunda avantajlıdır. Veri yolu erişimi mesaj tabanlı öncelik olduğundan, gerçek zamanlı sistemlerde düşük bireysel gecikme garanti edilebilir.



    3. Standart format için mesaj çerçevesi (CAN Spesifikasyonu 2.0A)

    Mesaj biçimleri.

    CAN protokolü, mesajın iki çerçeve biçimini (çerçevesini) destekler, tek önemli fark, tanımlayıcının (ID) uzunluğudur. Standart formatta, tanımlayıcının uzunluğu 11 bittir ve genişletilmiş formatta uzunluk 29 bittir. Veri yolunda iletim için mesaj çerçevesi yedi ana alan içerir.

    Standart biçimli bir mesaj, bir "çerçeve başlangıcı" başlangıç ​​biti ile başlar, ardından bir tanımlayıcı içeren bir "doğrulama alanı" ve veri çerçevesi mi yoksa istek çerçevesi mi olduğunu gösteren bir "RTR" (uzak iletim talebi) biti gelir. herhangi bir veya veri baytı (uzak istek çerçevesi).

    "Kontrol alanı", standart formatı veya genişletilmiş formatı belirten IDE uzantı bitini (uzantı tanımlayıcısı) içerir, bit gelecekteki uzantılar için ayrılmıştır ve - son 4 bitte - veri alanının veri bayt sayısı.

    "Veri alanı"nın uzunluğu 0 ile 8 bayt arasındadır ve ardından bit hatalarını tespit etmek için çerçeve güvenlik kontrolü olarak kullanılan bir "CRC" alanı gelir.

    "ACK" alanı, bir ACK yuvası (1 bit) ve bir ACK sınırlayıcı (bir resesif bit) içerir. ACK yuvasındaki bit, resesif bir bit olarak gönderilir ve o anda verileri doğru (doğru) alan alıcılar tarafından baskın bir bit olarak üzerine yazılır (pozitif alındı). Doğru mesajlar kabul testinin sonucuna bakılmaksızın alıcılar tarafından onaylanmıştır. Bir mesajın sonu "çerçevenin sonu" ile gösterilir. "Boşluk", ardışık mesajları ayıran minimum bit periyodu sayısıdır. Herhangi bir istasyonun bir sonraki veri yolu erişimi yoksa, veri yolu boşta kalır ("otobüs boşta").

    Hata algılama ve sinyal verme.

    Diğer veri yolu sistemlerinden farklı olarak, CAN protokolü onay mesajlarını kullanmaz, bunun yerine meydana gelen hataları bildirir. CAN protokolündeki hataları tespit etmek için mesaj düzeyinde üç mekanizma uygulanır:

    Döngüsel Fazlalık Kontrolü (CRC) CRC, iletimin sonuna fazlalık kontrol bitleri ekleyerek bir çerçevedeki bilgileri korur. Alıcı tarafında, bu bitler yeniden hesaplanır ve alınan bitlere göre kontrol edilir. Aynı fikirde değillerse, bir CRC hatası oluşmuştur. Çerçeve Kontrolü - Bu mekanizma, sabit bir çerçeve formatı ve boyutu için bit alanlarını kontrol ederek iletilen çerçevenin yapısını kontrol eder. Çerçeve kontrolleri sırasında bulunan hatalara "biçim hataları" denir.
    ACK hataları. Yukarıda bahsedildiği gibi, alınan çerçeveler tüm alıcılar tarafından "olumlu alındı" yoluyla onaylanır. Mesajı gönderen kişiden herhangi bir onay alınamıyorsa (ACK hatası), sadece alıcılar tarafından algılanan bir iletim hatası olduğu, ACK alanının bozulduğu veya alıcı olmadığı anlamına gelebilir.

    CAN protokolü ayrıca iki bit düzeyinde hata algılama mekanizması uygular.

    izleme. Vericinin hataları tespit etme yeteneği, veri yolu sinyali izlemeye dayalıdır: ileten her düğüm aynı zamanda veri yolu seviyesini de izler ve böylece gönderilen bir bit ile alınan bir bit arasındaki farkları tespit eder. Bu, tüm global ve verici-yerel hataların güvenilir bir şekilde tespit edilmesini sağlar.
    Bit Doldurma - Tek tek bitlerin kodlanması, bit seviyesinde kontrol edilir. CAN tarafından kullanılan bit temsili, bit kodlamada maksimum verimliliği garanti eden NRZ (sıfıra dönüşsüz) kodlamadır. Senkronizasyon kenarları, bit dolgusu ile oluşturulur, yani, beş ardışık eşit bitten sonra, gönderici, alıcılar tarafından kaldırılan fazladan bir değere sahip bilgi bitlerini bit akışına ekler. Kod doğrulaması, doldurma kuralına uyulup uyulmadığını kontrol etmekle sınırlıdır. Yukarıdaki mekanizmaları kullanan en az bir istasyon (herhangi bir istasyon) tarafından bir veya daha fazla hata tespit edilirse, mevcut iletim bir "hata bayrağı" gönderilerek iptal edilir. Bu, diğer istasyonların mesaj almasını engeller ve böylece ağ genelinde veri tutarlılığı sağlar.

    İletim sonlandırıldıktan sonra hatalı mesaj gönderen, iletimi otomatik olarak yeniden dener (otomatik yeniden deneme isteği). Otobüs tahsisi için yine rekabet olabilir. Tipik olarak yeniden iletim, bir hata algılandıktan sonra 23 bitlik süreler içinde başlar; Özel durumlarda sistem kurtarma süresi 31 bittir.

    Bununla birlikte, açıklanan yöntem, bir istasyon arızasının tüm mesajların (doğru olanlar dahil) kesintiye uğramasına yol açabileceği ve herhangi bir kendi kendini izleme önlemi alınmadığı takdirde veri yolu sistemini bloke ettiği durumlarda etkili ve verimli olabilir. Böylece, CAN protokolü, sporadik hataları kalıcı hatalardan ayırmak ve istasyon arızalarını yerelleştirmek (hata sınırlama) için bir mekanizma sağlar. Bu tarafından yapılır istatistiksel değerlendirmeİstasyonun kendi kusurlarını tanımak için istasyon hatası durumları ve olası giriş CAN ağının geri kalanının etkilenmediği bir çalışma moduna. Bu, iptal edilenler arasında yanlış mesajların yanlış tanımlanmasını önlemek için istasyonun kendi kendine kapanmasına neden olacak kadar ileri gidebilir.

    CAN protokolü veri güvenilirliği:

    Araçlarda güvenlikle ilgili sistemlerin tanıtılması, veri iletiminin güvenilirliği için yüksek gerekliliklerle ilişkilidir. Amaç genellikle, aracın ömrü boyunca veri alışverişinin bir sonucu olarak sürücü için tehlikeli durumlardan kaçınacak şekilde formüle edilir.

    Bu amaca, verilerin güvenilirliği yeterince yüksekse veya artık hata olasılığı yeterince düşükse ulaşılır. Veri yolu sistemleri bağlamında güvenilirlik, iletim hatalarıyla bozulan verileri belirleme yeteneği anlamına gelir. Artık hata olasılığı, veri güvenilirliğindeki bozulmanın istatistiksel bir ölçüsüdür: veri bozulma olasılığını ve bu bozulmanın tespit edilmeden gitme olasılığını belirler. Kalan hata olasılığı o kadar küçük olmalıdır ki, ortalama olarak, sistemin kullanım ömrü boyunca hiçbir bozuk veri gözden kaçmayacaktır.



    4. Bit Hata Olasılığının Bir Fonksiyonu Olarak Artık Hata Olasılığı

    Artık hata olasılığının hesaplanması, hata sınıflandırmasını ve tüm iletim yolunun model tarafından tanımlanmasını gerektirir. CAN artık hata olasılığını, örneğin beş veya on düğümlü ve 1/1000 hata oranıyla (bir hata binde bir mesaj), o zaman maksimum bit hatası olasılığı yaklaşık 0,02 ila yaklaşık 10^-13'tür. Buna dayanarak, belirli bir CAN ağı için tespit edilemeyen hataların maksimum sayısını hesaplamak mümkündür.

    Örneğin, CAN ağı 1 Mbps veri hızında, ortalama veri yolu bant genişliği kullanımı %50, toplam ömrü 4000 saat ve ortalama mesaj uzunluğu 80 bit ile çalışıyorsa, toplam ağ sayısı İletilen Mesajlar 9x10^10'dur. Kullanım ömrü boyunca tespit edilemeyen iletim hatalarının istatistiksel sayısı bu nedenle 10^-2 mertebesinden daha azdır. Ya da başka bir deyişle, yılda 365 gün boyunca günde sekiz saat çalışma süresi ve her 0,7 saniyede bir hata oranıyla, her bin yılda bir (istatistiksel ortalama) tespit edilemeyen bir hata meydana gelir.

    Gelişmiş CAN mesajları

    SAE Kamyon ve Otobüsler Alt Komitesi, standartlaştırılmış sinyaller ve mesajlar ile çeşitli veri hızları için veri aktarım protokollerine sahiptir. Daha uzun bir tanımlama alanı mevcut olduğunda, bu tür bir standardizasyonun uygulanmasının daha kolay olduğu ortaya çıkmıştır.

    Bu çabaları desteklemek için CAN protokolü, 29 bitlik bir tanımlayıcının getirilmesiyle genişletildi. Bu tanımlayıcı, mevcut bir 11 bitlik tanımlayıcıdan (temel kimlik) ve 18 bitlik bir uzantıdan (uzantı kimliği) oluşur. Böylece, CAN protokolü iki mesaj formatının kullanılmasına izin verir: StandardCAN (Sürüm 2.0A) ve ExtendedCAN (Sürüm 2.0B). İki formatın aynı veri yolunda bir arada bulunması gerektiğinden, kenar yumuşatma formatları ve aynı temel tanımlayıcı ile veri yolu erişim çakışmaları durumunda veri yolunda hangi mesajın daha yüksek önceliğe sahip olduğu belirlenir: standart bir mesaj her zaman genişletilmiş bir formata göre önceliklidir İleti.

    Genişletilmiş biçimli mesajları destekleyen CAN denetleyicileri, standart biçimli mesajları da gönderip alabilir. Bu ağda yalnızca standart formatı (Sürüm 2.0A) destekleyen CAN denetleyicileri kullanılıyorsa, ağ boyunca yalnızca standart formattaki mesajlar iletilebilir. Genişletilmiş formattaki mesajlar yanlış anlaşılacaktır. Ancak, yalnızca standart formatı destekleyen, ancak genişletilmiş format mesajlarını tanıyan ve yok sayan CAN denetleyicileri vardır (sürüm 2.0B pasif).

    Standart format ile genişletilmiş format arasındaki ayrım, standart format çerçevesinde baskın olarak iletilen IDE biti (tanımlayıcı uzantı biti) kullanılarak yapılır. Genişletilmiş biçimli çerçeveler için bu resesiftir. RTR biti, verilerin iletilmesine veya talep edilmesine bağlı olarak baskın veya çekinik olarak iletilir. özel mesaj istasyondan. Genişletilmiş tanımlayıcı çerçeveler için standart formattaki RTR biti yerine SRR (uzak istek değiştirme) biti gönderilir. SRR biti, bir kontrol durumunda, her iki mesaj da aynı temel tanımlayıcıya sahip olduğunda, standart bir çerçevenin her zaman genişletilmiş bir çerçeveye veri yolu önceliği tahsisine sahip olmasını sağlamak için her zaman resesif olarak iletilir.

    Standart formattan farklı olarak, genişletilmiş formatta, IDE bitini 18 bitlik bir kimlik numarası, bir RTR biti ve ayrılmış bir bit (r1) takip eder.

    Aşağıdaki tüm alanlar standartla aynıdır. İki format arasındaki uyum, genişletilmiş formatı destekleyen CAN kontrolörlerinin standart formatta da veri alışverişi yapabilmesi sayesinde sağlanır.



    5. Genişletilmiş format için mesaj çerçevesi (CAN Spesifikasyonu 2.0A)

    CAN protokolünün uygulamaları

    İletişim, CAN protokolünün tüm uygulamaları için aynıdır. Bununla birlikte, bir uygulamanın devrede onu takip eden mikrodenetleyicilerden geçen mesajı ne ölçüde ele aldığı konusunda farklılıklar vardır. İletişim, CAN protokolünün tüm uygulamaları için aynıdır. Ancak devrede onu takip eden mikrodenetleyicilerden mesaj geçirmenin nasıl gerçekleştirildiği konusunda farklılıklar vardır.

    Ara tamponlu CAN kontrolörü

    Tampon CAN denetleyicileri (önceden basicCAN yongaları olarak anılırdı), protokole göre bir bit akışı oluşturmak ve doğrulamak için gereken mantığı donanım olarak uyguladı. Ancak gönderilecek ve alınacak veri setlerinin yönetimi, özellikle alımın filtrelenmesi sadece CAN kontrolörü tarafından gerçekleştirilir.

    Kural olarak, ara tamponlu CAN kontrolörlerinde iki alma ve bir gönderme tamponu bulunur. 8 bitlik kod ve maske kayıtları, sınırlı kabul filtrelemesine izin verir (tanımlayıcının 8 MSB'si). Bu vaka değerlerinin uygun bir şekilde seçilmesi, tanımlayıcı gruplarının okunmasına veya sınırda olan durumlarda tüm tanımlayıcıların seçilmesine izin verir. Mesaj farklılaşması için 8'den fazla ID-MSB gerekiyorsa, devrede CAN denetleyicisini takip eden mikrodenetleyici, yazılım kabul filtrelemesini tamamlamalıdır.

    Ara ara belleğe sahip CAN denetleyicileri, alma filtreli bir mikro denetleyicide büyük bir yükü boşaltabilir, ancak yalnızca küçük bir çip alanı gerektirir ve bu nedenle daha düşük bir maliyetle üretilebilirler. Prensip olarak CAN ağındaki tüm nesneleri alabilirler.

    Nesne depolamalı CAN denetleyicisi.

    CAN nesneleri temel olarak üç bileşenden oluşur: bir tanımlayıcı, bir veri uzunluğu kodu ve gerçek yük.

    Nesne depolama CAN denetleyicileri (önceden fullCAN olarak anılırdı), ara tamponlara sahip CAN denetleyicileri gibi çalışır, ancak aynı zamanda belirli nesneleri de yönetir. Birden fazla eşzamanlı istek olduğunda, örneğin hangi nesnenin önce iletilmesi gerektiğini belirlerler. Ayrıca gelen nesneler üzerinde kabul filtrelemesi gerçekleştirirler. Bir sonraki mikrodenetleyicinin arabirimi RAM'e karşılık gelir. İletilecek veri ilgili RAM alanına yazılır, alınan veri sırasıyla RAM alanından okunur. Mikrodenetleyicinin yalnızca birkaç biti yönetmesi gerekir (örneğin, aktarım isteği).

    Nesne depolamalı CAN denetleyicileri, yerel mikro denetleyiciden maksimum yük için tasarlanmıştır. Ancak, bu CAN denetleyicileri daha geniş bir çip alanı gerektirir ve bu nedenle daha pahalıdır. Buna ek olarak, yalnızca sınırlı sayıda yonga (mikrodenetleyici) yönetebilirler.

    Bugün, her iki uygulama ilkesini birleştiren CAN denetleyicileri mevcuttur. En az biri ara tampon olarak tasarlanmış nesne depolamaya sahiptirler. Bu nedenle, basicCAN ile fullCAN arasında ayrım yapmak artık mantıklı değil.

    G/Ç işlevleri için CAN bağımlı denetleyicileri.

    Tıpkı CAN protokolünün tüm fonksiyonlarını destekleyen CAN kontrolörleri gibi, sonraki bir mikrodenetleyici gerektirmeyen CAN yongaları da vardır. Bu CAN yongalarına SLIO ( seri bağlantı G/Ç). CAN yongaları bağımlıdır ve bir CAN yöneticisi (ağdaki merkezi, ana mikrodenetleyici) tarafından kontrol edilmelidir.

    Fiziksel CAN bağlantısı

    Veri hızları (1 Mbit/s'ye kadar), yalnızca güç hücreleri kullanılarak gerçekleştirilebilen oldukça dik bir darbe eğimi gerektirir. Prensip olarak, birkaç fiziksel bağlantı mümkündür. Bununla birlikte, Otomasyon grubundaki CAN kullanıcıları ve üreticileri, ISO 11898'e uygun sürücü şemalarının kullanılmasını tavsiye etmektedir.

    ISO 11898'e uygun gömülü sürücü IC'leri birkaç şirketten (Bosch, Philips, Siliconix ve Texas Instruments) temin edilebilir. Uluslararası Kullanıcılar ve Üreticiler Grubu (CIA) ayrıca birkaç mekanik bağlantı (kablo ve konektörler) tanımlar.



    6. ISO 11898'e göre Fiziksel CAN Bağlantısı

    Saygılarımızla, çeviri atölye ekibi tarafından sağlanmaktadır.