KLASİK CAN'DA BİT DOLDURMA
Alıcı, veri bitlerini doldurma bitlerinden nasıl ayırır?
Doldurma bölgesinde verici, hatta art arda aynı değerde beş bit gönderdikten sonra ters değerli bir bit ekler. Alıcı, alanları yorumlamadan önce bu biti kontrol eder ve çıkarır. Önce çerçeve sınırını belirleyin, ardından hattaki dalga biçimi kaydını kodu çözülmüş çerçeveyle karşılaştırın.
Bit ekleme
Verici, hatta art arda aynı değerde beş bit gönderdikten sonra ters değerli bir bit ekler.
Sınırı belirleme
Alıcı, CRC dizisinden sonra dinamik bit doldurma kuralını uygulamayı bırakır.
Her iki uçta ölçüm
Aynı test çerçevesini iki bakır hat kesiminde karşılaştırın.
Biçimin Klasik CAN olduğunu doğrulayın; çerçeve türünü ve nominal bit hızını belirleyin.
Aynı değerli bit dizisinin doldurma bölgesinde olup olmadığını kontrol edin.
Ham sinyal geçişlerini, analizörün gösterdiği çerçeveyle ve denetleyici hatalarıyla eşleştirin.
Dalga biçimi doğrulama kontrol listesi — genişlet
| Kontrol | Neler teyit edilmeli | Nasıl doğrulanır |
|---|---|---|
| Hattaki bitler | Art arda aynı durumdaki bitler | İlgili bölgenin başlangıcından itibaren sayın |
| Alan sınırı | CRC dizisinin sonu | Ayırıcıyı, ACK'yi ve EOF'yi belirleyin |
| Fiber üzerinden mesafe uzatma | Gözlem noktası | İki bakır hat kaydını zaman açısından hizalayın |
CAN verilerini bir denetleyiciye yazdıktan sonra osiloskopta, çerçevenin mantıksal alanlarındaki toplam bit sayısından daha fazla bit görebilirsiniz. Bu fazladan bitlerin nedeni bit doldurmadır. Klasik CAN çerçevesinin ilgili bölgesinde verici, art arda aynı değerde beş bitten sonra ters değerli bir bit ekler. Alıcı aynı kurala göre bu biti belirleyip çıkarır ve ardından özgün alanları yorumlar. Bu işlem, alıcıların bit zamanlamasını düzeltmesine yardımcı olur ve eşit uzunluktaki mesajların veri yolunu neden farklı sürelerle meşgul edebildiğini açıklar.
Sinyal düzeyi değişmese de bitler taşınır
Yüksek hızlı bir bakır CAN veri yolunda alıcı-verici, denetleyiciden gelen bitleri CAN_H ile CAN_L arasındaki diferansiyel durumlara dönüştürür. Baskın bit mantıksal 0, çekinik bit ise mantıksal 1 değerini temsil eder. Bir düğüm hattı baskın duruma sürdüğünde diğer düğümlerin gönderdiği çekinik durumları bastırabilir. Elektriksel durum sabit kalsa da alıcı denetleyici her bit süresinde kendi örnekleme noktasında bit değerini belirler. Baskın düzeyin değişmeden kaldığı bir aralık, her biri bir bit süresi kaplayan birden fazla sıfır içerebilir.
Her düğümün kendi osilatörü vardır. Nominal bit süresi aynı değere ayarlanabilir, ancak uygulamada küçük sapmalar kalır. Alıcı, çerçevenin başlangıcında zamanlamasını hizalar ve çerçeve içinde fazı düzeltmek için gerekli koşulları karşılayan sinyal kenarlarını kullanır. Uzun süre uygun bir kenar oluşmazsa alıcının örnekleme anları ile vericinin bit sınırları arasındaki zaman farkı büyür. Bit doldurma, aynı değerli uzun bit dizilerinde geçişler oluşturarak eşzamanlama olanağı sağlar. Doğru örnekleme ayrıca yayılma gecikmesine, örnekleme noktası ayarlarına ve sinyal kalitesine bağlıdır.

Verici, veri yoluna gönderdiği bitleri sayar
Dinamik doldurma bölgesinde, art arda aynı değerli bitlerin sayacı sıfırdan başlayan basitleştirilmiş bir dizi düşünün. Mantıksal dizide beş sıfırı bir adet 1 biti izler. Verici beşinci sıfırı gönderdikten sonra bir adet 1 biti ekler ve ardından özgün 1 bitini gönderir. Veri yolunda beş sıfır, 1 değerli doldurma biti ve özgün 1 biti iletilir. Doldurma biti bir baytın içine veya bir alanın hemen sonuna denk gelebilir. Denetleyici kesintisiz bit akışını izler ve bayt sınırlarında sayacı sıfırlamaz.
Eklenen bit de iletilen dizinin bir parçasıdır ve yeni bir aynı değerli bit dizisi başlatır. Özgün dizide beş sıfırın ardından dört adet 1 biti geldiğini varsayalım. Bu dört bit, eklenen 1 bitiyle birlikte art arda beş adet 1 oluşturur; bu nedenle verici ardından bir adet 0 biti ekler. Kural, her beş özgün bit için bir bit eklenmesi biçiminde özetlenemez. Komşu alanlar ve daha önce eklenen bitler, bir sonraki eklemenin ne zaman yapılacağını etkiler.
Alıcı, aynı değerde beş bitten sonra sıradaki bitin ters durumda olmasını bekler. Beklenen değeri örneklediğinde bunun bir doldurma biti olduğunu anlar ve alınan bit dizisine ilişkin sayaç durumunu günceller, ancak bu biti alanların ayrıştırılmasına katmaz. Ardından gelen özgün 1 biti korunur. İki adet 1 biti, veri yolunda düzeyin değişmediği tek bir aralık olarak görünebilir. Alıcı bu bitlerin rollerini, dizideki konumlarından ve önceki bitlerden ayırt eder.

Ardışık bitlerin sayımı nerede durur?
Dinamik bit doldurma, Klasik CAN uzak istek çerçevesinin kapsama giren alanlarına da uygulanır. Bu çerçevenin DLC değeri istenen veri uzunluğunu belirtebilir, ancak çerçevede veri alanı yoktur. Bir dalga biçimi kaydını elle incelerken CRC dizisini bulmadan önce çerçeve türünü belirleyin. Uzak istek çerçevesindeki DLC değerini, ardından gelen veri baytlarının sayısı olarak yorumlamak sonraki tüm sınırların yanlış yerde belirlenmesine yol açar.
Klasik CAN veri çerçevesinde dinamik bit doldurma, çerçeve başlangıcında başlar; arbitraj, kontrol ve veri alanlarını kapsayarak CRC dizisinin sonuna kadar sürer. Alıcı, bu bölgeyi işlerken alan uzunluklarını izler. Doldurma bitleri, çerçevenin veri yolunda iletim süresini uzatır. Veri uzunluğu kodu (DLC) özgün anlamını korur. Alanların mantıksal yerleşimi, osiloskopta görülen fiziksel zaman bölümlerinden farklı olabilir.
CRC ayırıcısı, ACK alanı ve çerçeve sonu, CRC dizisinden sonra kendi kurallarına tabidir. Önceki dinamik bit doldurma sayımı artık geçerli değildir. Örneğin, Klasik CAN'da çerçeve sonu art arda yedi çekinik bit içerir. Bu dizi tek başına bir bit doldurma hatasına işaret etmez. Sinyal düzeyinin değişmediği aralığın hangi bölgeye ait olduğuna karar vermeden önce çerçeve sınırını ve varsa hata bayraklarını belirleyin.
Verici, Klasik CAN CRC dizisini, çerçeve başlangıcından veri alanının sonuna kadar olan ve doldurma biti içermeyen mantıksal bitlerden hesaplar. Ardından iletim sırasında CRC dizisini de doldurmaya tabi bölgeye dahil eder. Alıcı dinamik doldurma bitlerini çıkarır ve ilgili CRC kontrolünü yapar. Dolayısıyla kodlamanın getirdiği ek yük ile alan bütünlüğü kontrolü farklı amaçlara hizmet eder. CAN FD, CRC alanında farklı kurallar kullanır. Çerçeve biçimini ve denetleyici yapılandırmasını ilgili teknik belirtime göre doğrulayın.
Eşit veri uzunlukları veri yolunu farklı sürelerle meşgul edebilir
Çerçevenin iletim süresini, mesajın iletilmek için beklediği süreden ayrı değerlendirin. Bit doldurma, çerçevenin hat üzerindeki iletim süresini etkiler. Arbitraj gecikmesi ise o sırada diğer düğümlerin ne gönderdiğine bağlıdır. Periyodik bir mesaj için art arda gelen çerçeve başlangıç bitleri arasındaki süreyi, tek bir çerçevenin başlangıcı ile sonu arasındaki süreden ayrı kaydedin. Bu iki ölçümdeki değişiklikler farklı nedenlere işaret eder.
Aynı sayıda veri baytı içeren ve başarıyla iletilmiş iki Klasik CAN veri çerçevesi düşünün. Tanımlayıcıları veya veri desenleri farklı olabilir. Bir çerçevede aynı değerli bitlerden oluşan uzun diziler tekrar ederken diğerinde sıfırlar ve birler sık sık birbirini izleyebilir. İlk çerçeve daha fazla doldurma biti gerektirebilir; CRC dizisindeki bit değerleri de bu sayıyı etkiler. Nominal bit hızı aynı olduğunda her doldurma biti iletime bir bit süresi ekler. Veri yolu yükünü tahmin ederken çerçevenin hat üzerinde ölçülen uzunluğunu veya ihtiyatlı bir uzunluk tahminini kullanın.
Protokol analizörü, kodu çözülmüş görünümde genellikle tanımlayıcıyı, DLC'yi ve elde edilen verileri gösterir. Veri yolunun ne kadar süre meşgul olduğunu kontrol etmek için ölçümün nerede başladığını ve bittiğini belirleyin. Bir çerçevenin iletim süresi, kuyruğa alınmasından arbitrajı kazanmasına kadar geçen süre ve hata sonrası yeniden iletimde harcanan süre farklı ölçümlerdir. Ölçüm sınırlarını belgelemek, çerçevenin uzamasını veri yoluna erişim rekabetinden kaynaklanan gecikmeden ayırmayı sağlar.
Bit doldurma hatasının ortaya çıktığı bölgeyi belirleyin
Dinamik bit doldurma uygulanan bir alanda alıcı, ters değerli bitin gelmesi gereken yerde aynı değerde altıncı bir bit örneklerse bit doldurma hatası bildirir. Sinyal düzeyinin uzun süre değişmemesi, verici tarafındaki olağandışı davranıştan ya da yerel örnekleme noktası ayarlarından, bit hızından veya sinyal bozulmasından kaynaklanabilir. Hata etkin durumdaki bir düğüm etkin hata bayrağı gönderirse diğer düğümler daha sonra kuralı ihlal eden uzun bir baskın bit dizisi görebilir. Dolayısıyla bir kayıttaki bit doldurma hatası daha önceki bir hatanın sonucu olabilir.
Hata türlerini, zaman sırasındaki ilk olayı ve varsa dalga biçimini kaydedin. Bir CRC hatası, alıcının hesapladığı değer ile alınan CRC dizisinin uyuşmadığını gösterir. Biçim hatası, biçimi önceden belirlenmiş bir alanla ilgilidir. ACK hatası, göndericinin ACK bit konumunda beklenen baskın onayı görmediği anlamına gelir. Bu hatalar aynı olay sırasında peş peşe oluşabilir. Olayları zamana göre sıralamak ve etkilenen alanı kontrol etmek, incelemenin kapsamını daraltmaya yardımcı olur.

CAN veri yolunu fiber üzerinden uzatırken her bakır hat kesimini ve cihazın rolünü kontrol edin
FCTELE firmasının DIN rayına monte edilen sekiz kanallı CAN fiber modemine ait ürün belgelerinde, CAN sinyalinin fiber üzerinden tekrarlanması ve noktadan noktaya çalışma belirtilir. Bir mühendislik testinde bakır CAN hat kesimlerini, fiber hattı ve uç cihazları ayrı gözlem noktaları olarak listeleyin. Çerçeve biçimini, bit hızını, sonlandırmayı ve kablo bağlantılarını kullanılan cihazların belgelerine göre doğrulayın. Ardından yalıtılmış bir test düzeneğinde, içeriği bilinen bir mesajla her uçta alımı kontrol edin. Şekiller gözlem noktalarını gösterir. Cihazın sinyalleri fiber üzerinden nasıl aktardığını belirlemek için ilgili modelin belgelerine başvurun.
Verici tarafındaki bakır hat kesiminde sinyal ve kodu çözülmüş çerçeveler kararlı kalıyor, ancak alıcıya yakın noktada aralıklı hatalar görülüyorsa diğer uçtaki durumu ve zaman damgalarını karşılaştırın. Arızanın belirli bir kabloyla, uç cihazla veya yükle birlikte ortaya çıkıp çıkmadığını kontrol edin. Mesaj periyodunu ve diğer koşulları izlenebilir şekilde kaydedin ve her seferinde yalnızca bir değişkeni değiştirin. Son kayıt; alanların doğru elde edilip edilmediğini, hataların tekrarlanıp tekrarlanmadığını ve iletim yolu değiştirildikten sonra gerçek uygulama trafiğinin normale dönüp dönmediğini göstermelidir. Böylece bit doldurmanın olağan ek yükü gerçek iletim hatalarından ayrılır.
Kaynaklar ve kapsam
Bosch: CAN ve CAN FD'de hata algılama · Microchip: CAN'da bit doldurma ve çerçeve biçimi · FCTEL DIN rayına monte edilen sekiz kanallı CAN fiber ünitesi (Çince)
Çince teknik makaleden çevrilmiştir: Çince özgün makaleyi okuyun.
Sık sorulan sorular
Aynı değerde beş bitten sonra neden bir bit eklenir?
Ters değerli bit, hat üzerinde bir geçiş oluşturur. Eşzamanlama koşullarını karşılayan sinyal kenarları bit zamanlamasını ayarlamak için kullanılabilir; böylece geçiş olmadan geçen süre sınırlanır.
EOF'deki yedi çekinik bit, bit doldurma hatasına yol açar mı?
Klasik CAN'da EOF sabit biçimlidir. İçerdiği yedi çekinik bit, dinamik bit doldurma uygulanan bölgenin dışındadır.
Bir bit doldurma hatasını fiber bağlantının iki ucunda nasıl izleyebilirim?
Aynı test çerçevesini her iki bakır hat kesiminde kaydedin; bit hızını, örneklemeyi ve sonlandırmayı doğrulayın; denetleyici hatalarının zaman damgalarını hizalayın ve fiber ünitelerinin trafiği nasıl aktardığını kontrol edin.
Ek okumalar
CAN veri yolunu fiberle uzatma · Elektriksel arayüzler ve CAN arbitrajı


