CAN ( Controller Area Network ) veri yolu bir olduğu seri sistem olan otobüs yaygın birçok endüstride, özellikle kullanılan otomotiv sektöründe .
ISO 11898 ile standardize edilmiştir .
Bu adıyla bilinen bir yaklaşımı uygular multiplexing'i ve aynı kablonun (a bağlanırken oluşur hangi otobüs ) çok sayıda bilgisayarlar dolayısıyla sırayla iletişim kuracaktır. Bu teknik, iletilecek her bilgi parçası için özel hatların bağlanması ihtiyacını ortadan kaldırır (noktadan noktaya bağlantı). Bir sistem (araba, uçak, tekne, telefon şebekesi vb. ) belirli bir karmaşıklık düzeyine ulaştığında, kurulacak çok sayıda kablolama ve maliyeti nedeniyle noktadan noktaya yaklaşım imkansız hale gelir. kütle, malzeme, işçilik, bakım).
Araçlarda kabloların miktarını azaltmak amaçlanmıştır otomobil içinde birden fazla mesaj otobüslerin tanıtımı (özellikle CAN) (2 kadar sonra vardı Km araç başına kabloların), ama her şeyden önce bilgisayar ve sensörler sayısında patlama dağıtılan izin kablo uzunluklarını azaltırken araç genelinde ve ilgili hizmetler (tüketimde azalma, kirlilik kontrolü , aktif / pasif güvenlik , konfor, arıza tespiti vb. )
CAN veri yolu, Karlsruhe Üniversitesi ve Bosch arasındaki işbirliğinin sonucudur .
İlk olarak otomotiv sektöründe kullanıldı , ancak şu anda standartlaştırılmış CAN tabanlı protokoller aracılığıyla havacılık gibi çoğu endüstride kullanılmaktadır .
O ile tanıtıldı Intel içinde 1985 , ancak erken 1991'den kadar ISO standart değildi.
1992'de, CAN'ı tanıtmayı amaçlayan bir dernek olan Automation'da CAN oluşturmak için birkaç şirket bir araya geldi.
“Flexibel Data rate” için FD adlı ilk geliştirme yayınlandı.
Bosch tarafından taşınan “XL” adlı ikinci bir evrim geliştirilme aşamasındadır.
Fiziksel katman için iki standart vardır:
CAN, otomotiv endüstrisinde yarı çift yönlü çift yönlü bir seri veri yoludur , ancak deterministik davranış elde etmek için havacılıkta tek yönlü - tek yönlü - kullanılır .
“Düğüm” adı verilen bağlı her cihaz, diğerleriyle iletişim kurabilir.
“Düşük hızlı” CAN veri yolu için düğüm sayısı 20 ile sınırlıdır. “Yüksek hızlı” CAN veri yolu için 30 ile sınırlıdır.
Her düğüm, bükümlü bir çift (korumalı veya korumasız) aracılığıyla veriyoluna bağlanır .
Veri yolunun iki ucu 120 Ω ± %10'luk (108 Ω ve 132 Ω arası tolerans) dirençlerle geri bağlanmalıdır.
CAN veri yoluna erişim, CSMA / CR tekniğini takip eder (konuşmadan önce her istasyonu dinlemek, konuşmamak, çarpışmaların önceliğe göre çözülmesi).
Otobüsün maksimum uzunluğu kullanılan hıza göre belirlenir:
Hız ( kbit/sn ) |
Uzunluk ( m ) |
---|---|
1000 | 30 |
800 | 50 |
500 | 100 |
250 | 250 |
125 | 500 |
62.5 | 1000 |
20 | 2.500 |
10 | 5.000 |
Kullanılan kodlama NRZ türündedir (0'a dönüş yok) :
Düğümler, elektriksel açıdan "kablolu VEYA" ilkesine göre bus üzerinde kablolanmıştır (mantıksal açıdan "kablolu VE"), bu da iki düğümden aynı anda iletim olması durumunda 0 değerinin olduğu anlamına gelir. 1 değerinin üzerine yazar.
Yani diyoruz ki:
Düşük hızlı CAN için diferansiyel çiftinin iki hattı arasında kullanılan mantık durumları ve elektrik seviyeleri aşağıdaki gibidir:
mantıksal durum | V CANH-GND | V CANL-GND | V CANH-CANL |
---|---|---|---|
Çekinik veya "1" | 1,75V | 3,25V | -1,5 V |
Baskın veya "0" | 4 V | 1 V | 3 V |
Yüksek hızlı ADC için diferansiyel çiftinin iki hattı arasında kullanılan mantık durumları ve elektrik seviyeleri aşağıdaki gibidir:
mantıksal durum | V CANH-GND | V CANL-GND | V CANH-CANL |
---|---|---|---|
Çekinik veya "1" | 2,5 V | 2,5 V | 0 ila 0,5 V |
Baskın veya "0" | 3.5V | 1,5 V | 0,9'dan 2 V'a |
Bir bitin süresine “Nominal Bit Süresi” denir.
Her bit, her bir düğümün dahili saati tarafından saatlenen birkaç bölümden oluşur:
"Zaman Kuantumu", her düğümün dahili osilatörünün periyodundan oluşturulan zaman birimidir.
Veri yolu frekansı en fazla 1 MHz ve osilatörlerin frekansı birkaç MHz'dir, “Zaman Kuantumu” genellikle birkaç saat periyoduna (1 ile 32 kez arasında) değer.
Her bölümün süresi aşağıdaki gibidir:
Segment | "Zaman Kuantumu"nda Süre |
---|---|
senkronizasyon | 1 |
Yayılmış | 1'den 8'e |
Tampon faz n o 1 | 1'den 8'e |
Tampon faz n O 2 | 2'den 8'e |
Böylece bir bitin süresi 5 ila 25 “Time Quantum” arasında değişebilir.
Düğümün dahili saatinin frekansı ne kadar yüksek olursa, “Time Quantum”un süresi o kadar kısa olabilir, son üç segment “Time Quantum”u o kadar fazla sayar ve senkronizasyon hassasiyeti o kadar iyi olur.
Senkronizasyon segmentiSenkronizasyon segmenti, farklı düğümleri senkronize etmek için kullanılır.
Gönderici düğüm için yapılan 0'dan 1'e veya 1'den 0'a geçiş bu segmentte gerçekleşmelidir. Bir alıcı düğüm için bu geçiş aynı segmentte gerçekleşmiyorsa, bunun nedeni senkronize olmamasıdır. Bu bir faz hatasıdır.
Şeffaflık biti sayesinde bu kontrol en az 5 bitte bir yapılabilir (kullanıldığı çerçevenin ilk alanları için).
Yayılma segmentiYayılma segmenti, veri yolundaki yayılma olaylarını telafi etmek için kullanılır.
Faz segmentleriFaz segmentleri, geçişler sırasında tespit edilen faz hatalarını telafi etmek için kullanılır.
Yeniden senkronizasyon durumunda bu bölümlerin süresi değişebilir.
Örnekleme noktasıÖrnekleme noktası veya “Örnek noktası”, bit değerinin veri yolunda okunduğu andır. Bu, iki faz segmenti arasında gerçekleşir.
senkronizasyonİki tür senkronizasyon vardır:
CAN veri yolu üzerindeki pin çıkışı standartlaştırılmıştır ve bir DE-9 konektörü kullanır :
Broş | Açıklama |
---|---|
1 | (Rezerv) |
2 | CANL |
3 | kitle |
4 | (Rezerv) |
5 | Ekranlama (isteğe bağlı) |
6 | kitle |
7 | CANH |
8 | (Rezerv) |
9 | Harici güç kaynağı (isteğe bağlı) |
Veri bağlantı katmanı için de iki standart vardır:
Birkaç çerçeve türü vardır:
İki çerçeve arasında, vericiler, veri yolunun çekinik durumda tutulduğu üç bitlik süreye eşdeğer bir duraklama (çerçeveler arası süre) gözlemlemelidir.
Veri çerçevesi, diğer düğümlere bilgi göndermek için kullanılır.
Bir veri çerçevesi yedi farklı alandan oluşur:
Alanlar, SOF'tan EOF'ye sırayla iletilir.
Çerçevenin her alanında, bitler en güçlüden en zayıfa iletilir.
Tahkim alanıTahkim alanı, CAN 2.0A için 11 tanımlama biti ve CAN 2.0B için 29 bit ve ardından baskın olan RTR (Uzaktan İletim İsteği) bitinden oluşur. Bu alan, veri alanında taşınan veriler için bir tanımlayıcı görevi görür.
CAN 2.0A'nın 11 biti 2 11 = 2048 kombinasyona izin verir .
CAN 2.0B'nin 29 biti 2 29 = 536 870 912 kombinasyona izin verir .
Komut alanıKontrol alanı altı bitten oluşur.
En önemli bit, çerçeve türünü ayırt etmek için kullanılır:
Sonraki bit kullanılmaz.
DLC (Veri Uzunluğu Kodu) olarak adlandırılan en az anlamlı dört bit, yerleşik veri alanının (PAYLOAD) bayt sayısını temsil eder.
Bu bayt sayısı 0 ile 8 arasında değişebilir veya DLC alanının dört biti ile saklanan dokuz değer. 9'dan büyük DLC değerleri bu nedenle kullanılmayacaktır (9'dan 15'e kadar).
Veri alanıVeri alanı 0 ila 8 bayt arasında değişebilir.
Bir istek çerçevesi olması durumunda, veri alanı boştur.
CRC alanıAlan, on beş bit CRC'den (Döngüsel Artıklık Kontrolü) ve her zaman çekinik olan bir sınırlayıcı bitten ("CRC sınırlayıcı") oluşur.
CRC, şimdiye kadar iletilen tüm alanlardan hesaplanır (yani, SOF, tahkim alanı, kontrol alanı ve veri alanı; şeffaflık bitleri dikkate alınmaz). Küme, f ( x ) polinomunu oluşturur .
Algoritma öncelikle f ( x )'in 2 15 ile çarpılmasından oluşur .
Daha sonra f ( x ) polinomu g ( x ) = x 15 + x 14 + x 10 + x 8 + x 7 + x 4 + x 3 + x 0 polinomuna bölünür (modulo 2) .
Ardışık bölmeler yapıldıktan sonra, kalan CRC dizisini oluşturur.
Kullanılan algoritmanın Hamming mesafesi 6'dır, yani maksimum beş hata tespit edilebilir.
Bu algılama sistemi sayesinde kaydedilen hata oranı çok düşüktür (4.6 × 10 −11'den az ). Ayrıca ağ, nokta hatalarını gereksiz hatalardan ayırt edebilir. Böylece, bozulmaları sınırlamak için herhangi bir arızalı cihazın ağdan bağlantısı kesilebilir. Ağ daha sonra "bozulmuş" moda girer.
Teşekkür alanı ACKAlan, bir ACK alındı bilgisi bitinden (ACKnowledge) ve her zaman çekinik olan sınırlayıcı bitten ("ACKnowledge sınırlayıcı") oluşur.
Mesajı başarılı bir şekilde alan tüm alıcılar, ACK biti süresince baskın bir bit ileterek mesajı onaylamalıdır; bu, gönderen düğümün, alıcı düğümlerden en az birinin mesajı aldığını bilmesini sağlar.
Bir alıcı düğüm mesajı almadıysa veya yanlış aldıysa, alıcı istasyonun tüm çekinik bitleri maskelemek için yalnızca baskın bir bit göndermesi gerektiğinden, hatayı bildirmek için bu mekanizmayı kullanamaz. Arızayı bildirmek için bir hata çerçevesi göndermelidir.
İstek çerçevesi, başka bir düğümden veri istemek için kullanılır. Aşağıdakiler dışında veri çerçevesine benzer:
Bir istek çerçevesi durumunda RTR bitinin çekinik olması gerçeğinin, aynı tahkim alanıyla aynı anda bir veri çerçevesi gönderilmesi durumunda önceliğe sahip olan veri çerçevesi olduğu anlamına geldiğine dikkat edin.
Mesajların iletimini güvence altına almak için “ bit doldurma ” yöntemi kullanılır.
Aynı polariteye sahip beş bitin arka arkaya gönderildiği durumda, aynı bitlerin aşırı büyük dizilerini kırmak için diziye biraz zıt polarite ekleyerek oluşur. Bu yöntem yalnızca SOF, tahkim, komut, veri ve CRC alanlarına (sınırlayıcı hariç) uygulanır.
Örneğin, "1111 1110", "1111 1011 0" olur.
Birden çok düğüm aynı anda iletmeye çalışırsa ne olur?
Her düğümün sunması gereken bir veri yolu erişim prosedürü vardır:
Böylece tahkim alanı sayesinde bir öncelik sağlanmaktadır.
Ne kadar küçükse, yüksek dereceli 0 (baskın) bitleri ne kadar fazla içeriyorsa, o kadar fazla önceliğe sahip olacaktır.
Bu önceliklendirme veya tahkim aşaması, RTR bitinde sona erer.
Bir hata tespit edilir edilmez, düğüm suçlanan çerçevenin sonunu beklemez, iletimde bir sorun olduğunu belirtmek için hemen bir hata çerçevesi gönderir.
Bir hata çerçevesi iki farklı alandan oluşur:
Hata çerçevesi şunlar olabilir:
Düğümler tarafından bir dizi hata tespit edilebilir.
Bit hatasıBir düğüm, veri yolunda her bir bit yayınladığında, veri yolunu yeniden okur ve yazdığı biti bulması gerekir. Çekinik bir bit gönderirken, baskın bir biti yeniden okursa, değiştirilir.
Bu mekanizma, önceliklendirmeye izin verenle aynıdır, bu nedenle tahkim alanında dikkate alınmamalıdır.
Onay alanı için aynen, gönderen düğüm tarafından gönderilen çekinik bit baskın hale gelirse, bu basitçe bir veya daha fazla alıcı düğümün çerçevenin doğru alındığını teyit etmesidir, bu nedenle bu bir hata değildir.
malzeme hatasıBus üzerinde aynı polariteye sahip ardışık altı bit okunursa, şeffaflık biti mekanizmasına uyulmamıştır veya bir bit değiştirilmiştir.
CRC hatasıAlıcı düğüm tarafından hesaplanan CRC değeri, gönderen düğüm tarafından çerçevede kodlanan CRC değerinden farklıysa, çerçeve bozulmuştur.
CRC sınırlayıcıAlıcı düğümler tarafından okunan "CRC sınırlayıcı" biti çekinik değilse, bit değiştirilmiştir.
ACKbilgi hatasıGönderen düğüm tarafından gönderilen çekinik ACK biti, baskın bir bit tarafından geçersiz kılınmamışsa, hiçbir alıcı düğüm onu almamıştır.
ACKbilgi sınırlamaAlıcı düğümler tarafından okunan "ACKnowledge sınırlayıcı" biti çekinik değilse, bit değiştirilmiştir.
Hata kurtarmaYapı gereği, hata çerçevesi bit doldurma kuralını bozar, çünkü ne olursa olsun, hata bayrağının altı biti aynıdır.
Bir düğüm bir hata çerçevesi gönderdiğinde, diğer tüm düğümler “Stuff error” tipi bir hata algılar ve ayrıca bir hata çerçevesi göndermeye başlar.
Aktif hata çerçeveleri durumunda, bir satırdaki baskın bitlerin sayısı on iki biti geçmemelidir. Bunun ötesinde, kendi hata çerçevesini göndermeyen düğümler bunu yapmamalıdır.
Gönderilecek son düğüm, sınırlayıcıyı (sekiz çekinik bit) sağlar ve kakofoniyi sonlandırır.
Suçlanan çerçeveyi gönderen düğüm daha sonra şansını devre dışı bırakır.
Ve böylece, çerçeve geçene veya hata sayaçlarından biri düğümün hata modunu değiştirmesine neden olana kadar.
Hata sayaçlarıHer düğümün iki hata sayacı vardır:
Verici modunda bir düğümün iletim hatası sayacı:
Alıcı modundaki bir düğümün alma hatası sayacı:
Hata sayaçlarına bağlı olarak, düğüm hata modunu değiştirir. Üç vardır:
Aşırı yük çerçevesi iki durumda kullanılabilir:
Bir aşırı yük çerçevesi iki farklı alandan oluşur:
Aşırı yük çerçevesi, aktif bir hata çerçevesine benzer.
Bir düğüm, bir gecikme (koşul isteme bir aşırı yük çerçevesi iletir zaman , n O , 1), geriye kalan düğümleri aşırı şarj sinyal algılama arası çerçeve periyodu üç resesif bit üzerine yazar, ve kendileri yayarlar kare yük (koşul n o , 2).
Aktif hata çerçevelerinde olduğu gibi, bir satırdaki baskın bitlerin sayısı on iki biti geçmemelidir. Bunun ötesinde, aşırı yükleme çerçevesini göndermeyen düğümler bunu yapmamalıdır.
Gönderilecek son düğüm, sınırlayıcıyı (sekiz çekinik bit) sağlar ve kakofoniyi sonlandırır.
CAN standardında birkaç uygulama katmanı tanımlanmıştır: