ALGO TEAM

ALGO TEAM / CAN & J1939 REHBERİ

DBC ile ECU simülasyonu: CAN ve J1939 mesajı gönderme

9 dakika · Güncelleme: 23 Ağustos 2026

DBC dosyasından mesaj seçip sinyal değerlerini fiziksel birimlerle değiştirerek Standard veya Extended CAN çerçevesi üretme rehberi.

DBC ECU Simülatörünü aç

ECU simülatörü ne yapar?

DBC tabanlı ECU simülatörü, bir ağ düğümünün yayınlayacağı mesajları DBC dosyasından bulur ve her sinyal için anlaşılır bir kontrol üretir. Kullanıcı sıcaklık, basınç veya devir gibi fiziksel değeri değiştirir; araç factor, offset, bit uzunluğu, byte order ve signed tanımını kullanarak CAN payload'ını oluşturur.

Bu yaklaşım HMI, gateway veya kontrol yazılımını gerçek ECU hazır olmadan sınamak için kullanışlıdır. Ancak gerçek araç ağına mesaj enjekte etmek beklenmeyen hareket veya arızaya yol açabilir. İzole tezgâh, doğru terminasyon, acil durdurma ve yetkili test prosedürü şarttır.

DBC'den mesaj oluşturma akışı

  • DBC dosyasını yükleyin ve simüle edeceğiniz ECU düğümünü seçin.
  • Gönderilecek mesajı ve Standard/Extended çerçeve biçimini doğrulayın.
  • Sinyallerin başlangıç değeri, sınırı ve birimini kontrol edin.
  • Fiziksel değerleri ayarlayın ve oluşan ham baytları beklenen örnekle karşılaştırın.
  • Önce tek seferlik gönderim yapın; doğrulamadan sonra güvenli bir periyot seçin.

Fiziksel değerden ham değere örnek

Bir motor devri sinyali 16 bit unsigned, Intel byte order, factor 0,125 ve offset 0 olarak tanımlansın. 1500 rpm göndermek için ham değer (1500 − 0) / 0,125 = 12000 olur. 12000 sayısı hexadecimal 0x2EE0'dir; little-endian yerleşimde ilgili iki bayt E0 2E görünür.

Bu örnek yalnızca sinyal başlangıç biti bayt sınırındaysa doğrudan böyledir. Sinyal farklı bitte başlıyorsa diğer sinyallerle aynı payload içine bit maskesiyle yerleştirilir. Simülatörün gösterdiği ham payload'ı bilinen bir referansla doğrulamak bu yüzden değerlidir.

Standard, Extended ve J1939 mesajları

DBC dosyası 11 bit Standard veya 29 bit Extended kimlikler içerebilir; simülatör ikisini de tanımdaki biçime göre ele almalıdır. J1939, 29 bit kimlik içinde priority, PGN ve source address alanlarını taşır. Aynı PGN farklı kaynak adreslerinden gelebileceği için yalnızca PGN'ye bakarak ECU ayırmak yeterli değildir.

Gönderim öncesinde bitrate ve kanal ayarı ağla aynı olmalıdır. Yanlış bitrate mesajın anlaşılmamasına, yoğun hata çerçevelerine veya arayüzün bus-off durumuna geçmesine neden olabilir.

Sayaç ve checksum sınırı

Bazı üretici mesajlarında yaşam sayacı ve checksum bulunur. Bunların algoritması her DBC dosyasında yer almaz; DBC çoğunlukla sinyal konumunu tanımlar, özel checksum hesabını değil. Sayaç başlangıcı, artış miktarı, taşma değeri ve checksum kapsamı ayrı teknik bilgiyle doğrulanmalıdır.

CAN Viewer içindeki dinamik gönderim alanları manuel bayt, sayaç ve checksum denemeleri için uygundur. DBC ECU Simülatörü ise fiziksel sinyallerden mesaj üretmeye odaklanır. Üreticiye özgü E2E koruma kullanılıyorsa algoritma doğrulanmadan gerçek kontrol ünitesini taklit ettiğinizi varsaymayın.

Güvenli test kontrolü

  • Test ağını gerçek makine aktüatörlerinden ayırın.
  • Kimlik çakışmasını önlemek için aynı mesajı yayınlayan gerçek ECU'yu yönetin.
  • Başlangıç değerlerini güvenli aralıkta tutun ve periyodik gönderimi görünür biçimde durdurabilin.
  • Ham payload, CAN ID, çerçeve biçimi ve periyodu kayıt altına alın.
  • Sonucu alıcı ECU/HMI davranışı ve bağımsız ölçümle doğrulayın.