ALGO TEAM / MÜHENDİSLİK BLOGU

CAN Bus, J1939 ve saha mühendisliği yazıları.

CAN, J1939, telemetri, kontrol ve saha doğrulaması üzerine; araştırmaya, ölçüme ve gerçek uygulamaya dayanan kalıcı içerikler.

Teknik makaleler ve araştırmalar

Teknik makaleler ve araştırmalar

Sahada tekrar kullanılabilecek açıklamalar, kontrol sıraları ve doğrulama notları.

CAN / 01

CAN hattında mesaj analizine nereden başlanır?

Bir CAN sorununda ilk hedef mesajları yorumlamak değil, hattın fiziksel ve zamansal olarak sağlıklı olduğunu doğrulamaktır.

Analiz fiziksel katman, veri bağı ve uygulama katmanı olarak üçe ayrılmalıdır. Önce terminasyon, bit hızı, toprak referansı ve hata sayaçları doğrulanır; ardından ID, DLC ve çevrim süreleri çıkarılır. Sinyal ölçeklendirmesi ancak bu iki katman sağlıklıysa anlamlıdır.

J1939 ağında 29 bit kimlik yalnız mesaj numarası değildir; öncelik, PGN ve kaynak adresini birlikte taşır. Bu nedenle aynı PGN'nin farklı ECU'lardan gelebileceği, adres talebi ve BAM/TP gibi çok paketli taşıma yöntemlerinin trace analizini etkileyebileceği unutulmamalıdır.

Kontrol sırası

  1. Bit hızını ve örnekleme ayarını cihazlarla eşleştir.
  2. Enerji kapalıyken CAN-H ile CAN-L arasında yaklaşık 60 Ω terminasyon kontrolü yap.
  3. Mesaj çevrim zamanlarını ölç; yalnız ortalamaya değil jitter ve kayıp periyotlara da bak.
  4. Alive counter ve checksum varsa önce bu alanların gerçekten nasıl değiştiğini belirle.
TELEMETRY / 02

Her veriyi değil, doğru olayı kaydetmek

Telemetride depolama ihtiyacını asıl büyüten sinyal sayısı değil; örnekleme sıklığı, olay öncesi/sonrası pencere ve çevrimdışı kalma süresidir.

İyi bir kayıt mimarisi üç veri sınıfını ayırır: düşük frekanslı durum özeti, olay anındaki yüksek çözünürlüklü pencere ve teşhis için ham haberleşme kaydı. Her sınıfın saklama süresi, sıkıştırma ve yükleme politikası farklı olmalıdır.

Cihaz çevrimdışıyken verinin kaybolmaması kadar belleğin dolduğunda ne olacağı da tasarlanmalıdır. Rotation policy en eski dosyanın ne zaman silineceğini; retention policy hangi verinin ne kadar tutulacağını; compression ise işlemci yükü ile depolama kazancı arasındaki dengeyi belirler.

Kontrol sırası

  1. Sürekli sinyalleri düşük ve gerekçeli bir temel frekansta tut.
  2. Eşik aşımı, durum geçişi ve hata oluşumu gibi olayları ayrı tanımla.
  3. Olaydan önceki kısa tamponu ve olay sonrası gözlem süresini birlikte kaydet.
  4. Sunucuya aktarım ile cihaz içi ham kayıt gereksinimini birbirinden ayır.
FIELD / 03

Hesap doğruysa makine neden farklı davranır?

Kâğıt üzerindeki sonuç ile makine davranışı arasındaki fark çoğu zaman tek bir büyük hatadan değil, küçük varsayımların üst üste binmesinden çıkar.

Bir test yalnız sonuç sayısından ibaret değildir. Komut, ham sensör değeri, ölçeklenmiş değer, kontrol çıkışı ve fiziksel ölçüm aynı zaman tabanında kaydedilirse sapmanın sensörden mi, yazılımdan mı yoksa aktüatörden mi geldiği ayrıştırılabilir.

Kabul kriteri test başlamadan yazılmalıdır. Örneğin yalnız 'hız doğru' demek yerine kararlı hâl hatası, izin verilen aşım, yerleşme süresi ve farklı sıcaklık/yük noktaları tanımlanır. Böylece saha gözlemi tekrarlanabilir bir mühendislik kanıtına dönüşür.

Kontrol sırası

  1. Komut edilen değer ile ölçülen fiziksel değeri bağımsız bir cihazla karşılaştır.
  2. Ham CAN değerini ölçeklenmiş değerden ayır ve iki aşamayı ayrı doğrula.
  3. Sensör toleransı, filtre gecikmesi ve kontrol çevrim süresini hesaba kat.
  4. Test koşullarını; sıcaklık, yük, besleme gerilimi ve makine durumuyla birlikte kaydet.
GATEWAY / 04

GCAN-205 ile Modbus verisini CAN mesajına güvenli eşlemek

Bir gateway projesinde en sık hata bağlantıda değil; register sırası, byte order, ölçek ve gönderim tetikleme mantığının birbirine karıştırılmasında oluşur.

Önce mesaj sözleşmesi tek tabloda dondurulur: CAN ID, DLC, byte/bit konumu, veri tipi, factor, offset, fiziksel aralık, geçersiz değer ve gönderim periyodu. Ardından her Modbus register'ının bu sözleşmedeki hangi ham alanı beslediği açıkça yazılır.

Örneğin 0–2500 rpm hız ve 0–100 tork isteği 0x205 mesajında taşınacaksa, fiziksel değer doğrudan register'a yazılmamalıdır. Önce seçilen çözünürlüğe göre ham tam sayıya çevrilir, sınırlandırılır ve little/big endian sırası test vektörleriyle doğrulanır. 100 ms gönderim zamanlayıcısı veri güncellenmese bile aynı çerçeveyi periyodik üretmelidir; stale data için ayrıca timeout davranışı tanımlanmalıdır.

Kontrol sırası

  1. Tek bir bilinen test değeri yerine 0, orta değer, maksimum ve aralık dışı değerlerle test yap.
  2. Modbus register görüntüsü, gateway çıkış trace'i ve alıcı ECU'nun çözdüğü değeri aynı test kaydında karşılaştır.
  3. Register adreslemesinde 0 tabanlı/1 tabanlı gösterim farkını ve 16 bit word sırasını ayrı doğrula.
  4. Haberleşme kesilince son değeri tutma, sıfırlama veya güvenli değere geçme kararını uygulamaya göre açıkça tanımla.
J1939 / 05

J1939 arıza kodunu SPN ve FMI üzerinden okumak

Bir J1939 arıza kaydında SPN hangi parametrede sorun görüldüğünü, FMI ise kontrolörün o parametrede nasıl bir hata algıladığını anlatır; ikisi birlikte yorumlanmalıdır.

DM1 mesajı aktif arızaları, DM2 ise daha önce aktif olup artık pasif kalan arızaları taşır. SPN numarası tek başına parçayı değiştirme talimatı değildir. Örneğin motor devriyle ilgili bir SPN; sensör, kablo, besleme, hava aralığı, dişli çember veya sinyal tutarlılığı sorunlarından herhangi birini gösterebilir.

FMI 2 gibi 'erratic/intermittent/incorrect' sınıfları açık devreyle aynı değildir. Teşhis; arıza anındaki motor durumu, diğer hız kaynakları, sinyalin ham değişimi ve arızanın occurrence count bilgisiyle desteklenmelidir. Üreticiye özel SPN yorumları için motor ECU'sunun servis dokümanı temel alınmalıdır.

Kontrol sırası

  1. DM1/DM2 çerçevesinden SPN, FMI, occurrence count ve lamba durumlarını birlikte çıkar.
  2. SPN tanımını kullanılan J1939DA sürümü ve üretici servis dokümanıyla çapraz kontrol et.
  3. Arızayı silmeden önce freeze-frame benzeri çalışma koşullarını ve CAN trace'ini kaydet.
  4. Sensör değişiminden önce besleme, şase, konnektör, kablo sürekliliği ve sinyal biçimini ölç.