Populate the sidearea with useful widgets. It’s simple to add images, categories, latest post, social media icon links, tag clouds, and more.
CAN veri yolundaki her bit, zamanlama amacıyla en az 4 kuanta bölünür. Kuantlar mantıksal olarak dört gruba veya segmente ayrılır –
İşte bir CAN veri bitinin resmi:
Her zaman bir kuantum uzunluğunda olan Senkronizasyon Segmenti, saatlerin senkronizasyonu için kullanılır. Veri yolu üzerinde veri değiştiğinde burada bir bit kenarının gerçekleşmesi beklenir.
Yayılma Segmenti, veri yolu hatlarındaki gecikmeyi telafi etmek için gereklidir.
Saatleri senkronize tutmak için gerekirse Faz Segmentleri kısaltılabilir (Faz Segmenti 1) veya uzatılabilir (Faz Segmenti 2).
Veri yolu seviyeleri Faz Segmenti 1 ve Faz Segmenti 2 arasındaki sınırda örneklenir.
Çoğu CAN denetleyicisi, bir bit sırasında üç kez örnekleme seçeneği de sunar. Bu durumda, örnekleme, örnekleme noktasından önceki iki kuantanın sınırlarında gerçekleşir ve sonuç çoğunluk kod çözmeye tabidir (en azından 82527 için durum budur).
Saat Senkronizasyonu
Çip üzerindeki veri yolu saatini ayarlamak için CAN denetleyicisi, bir bitin uzunluğunu integral sayıda kuanta kadar kısaltabilir veya uzatabilir. Bu bit süresi ayarlamalarının maksimum değeri Senkronizasyon Atlama Genişliği, SJW olarak adlandırılır.
Sert senkronizasyon, başlangıç bitinin resesiften dominant geçişinde gerçekleşir. Bit zamanı bu kenardan itibaren yeniden başlatılır.
Yeniden senkronizasyon, bir mesajdaki Senkronizasyon Segmenti içinde bir bit kenarı oluşmadığında meydana gelir. Faz Segmentlerinden biri sinyaldeki faz hatasına bağlı bir miktarla kısaltılır veya uzatılır; kullanılabilecek maksimum miktar Senkronizasyon Atlama Genişliği parametresi tarafından belirlenir.
Bit Zamanlama Kaydı Hesaplaması
Çoğu CAN kontrol cihazı, programcının aşağıdaki parametreleri kullanarak bit zamanlamasını ayarlamasına izin verir:
Genellikle bu amaç için iki yazmaç sağlanır: btr0 ve btr1. Bununla birlikte, farklı kontrolörler arasında işler biraz değişme eğilimindedir, bu nedenle veri sayfalarınızı dikkatlice okuyun.
Her ikisi de NXP’den (nee Philips) 82c200 ve SJA1000’de kayıt düzeni şu şekildedir:
Üç örnek elde edilecekse SAM 1’e, bir örnek yeterliyse 0’a ayarlanır.
Not: bu parametrelerin gerçek değeri yazmaca yazılan değerden bir fazladır.
Örnek: SJA1000’e beslenen osilatör sinyali 16 MHz ise ve 250 kbit/s’lik bir bit hızı, tüm bitin %62’sine yakın bir örnekleme noktası ve 2 kuantalık bir SJW istiyorsak,
–
BRP = 4, bu da 2 * 4 / 16000000 s = 500 ns’lik bir kuantum uzunluğu verir ve
TSEG1 = 5, örnekleme noktasından önce 5 kuanta verir ve
TSEG2 = 3, bu da örnekleme noktasından sonra 3 quanta verir.
Bu durumda her bit 5 + 3 = 8 quanta içerecektir, bu da istenen bit hızının 1 / (8 * 500 ns) = 250 kbit/s olmasıyla sonuçlanır. Kayıt değerleri aşağıdaki gibi olmalıdır:
Örnekleme noktası bir bitin 5/8 = %62,5’idir.