Select Sidearea

Populate the sidearea with useful widgets. It’s simple to add images, categories, latest post, social media icon links, tag clouds, and more.

hello@youremail.com
+1234567890

CAN-BUS Bit Zamanlaması

Vetes Mühendislik > CAN-BUS Bit Zamanlaması

CAN-BUS Bit Zamanlaması

 

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 –

 

  • Senkronizasyon Segmenti
  • Yayılma Segmenti
  • Faz Segmenti 1
  • Faz Segmenti 2

 

İş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:

 

  • Bir saat ön ölçekleyici değeri
  • Örnekleme noktasından önceki kuanta sayısı
  • Örnekleme noktasından sonraki kuanta sayısı
  • Senkronizasyon Atlama Genişliğindeki kuanta sayısı, SJW

 

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:

  • BRP0..BRP5 saat ön ölçekleyici değerini ayarlar
  • SJW0..SJW1 SJW’nin uzunluğunu ayarlar
  • TSEG10..TSEG13 örnekleme noktasından önceki kuanta sayısını ayarlar (başlangıç biti dahil değildir)
  • TSEG20..TSEG22 örnekleme noktasından sonraki kuanta sayısını ayarlar.

 

Üç ö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.