CANBus Mesajlarını Okuyan ve Analiz Eden Arayüz

🚗 CANBus Mesajlarının İzlenmesi ve Analizi için Geliştirilen Arayüz
Modern araçlarda yerleşik elektronik kontrol üniteleri (ECU) arasında veri alışverişi, Controller Area Network (CAN) protokolü üzerinden gerçekleştirilir. Mevcut açık kaynaklı CANBus izleme araçları, belirli senaryolar için yeterli olsa da, proje gereksinimlerimizi karşılayacak ölçüde özelleştirilebilir, modüler ve genişletilebilir bir çözüm ihtiyacını tam olarak karşılamamaktadır.

Bu nedenle, CANBus veri trafiğini gerçek zamanlı olarak dinleyebilen, analiz edebilen ve kullanıcıya anlamlı çıktılar sunabilen özgün bir yazılım geliştirme sürecini başlattık. Proje halen aktif geliştirme aşamasında olup, kullanım senaryolarına bağlı olarak yeni işlevler ve protokol desteği düzenli olarak entegre edilmektedir.

Bu yazıda, geliştirilen yazılımın hedefleri, teknik altyapısı, çekirdek modülleri ve geliştirme sürecinde izlenen yöntemler hakkında bilgi paylaşacağım.

🛠️ Projenin Amacı
Bu uygulamanın temel amacı, Controller Area Network (CAN) hattından iletilen çerçeveleri (frames) gerçek zamanlı olarak yakalamak, protokol kurallarına uygun şekilde ayrıştırmak (parsing) ve kullanıcıya görselleştirilmiş veri sunmaktır.

Mevcut araçlar benzer işlevler sunsa da, geliştirilen sistem yüksek modülerlik ilkesiyle tasarlanmış olup; USB, TCP/IP, SSH tüneli, MQTT gibi farklı bağlantı protokollerine genişletilebilir biçimde entegre edilebilmektedir. Bu yaklaşım, farklı veri toplama senaryolarında altyapı uyumluluğu sorununu ortadan kaldırarak tek bir arayüz üzerinden çoklu bağlantı yönetimini mümkün kılmıştır.

Canlı grafik izlemek ve bir yandan hattı dinlemek gibi özellikler aslında tek bir amaca hizmet etmektedir elimizde DBC bulunmayan araçlarda manuel olarak verileri anlamlandırmak için kullanıyoruz. Belli senaryo denemeleri ve birden fazla ekiple farklı yaklaşımların hepsine uygun ihtiyaçların gözetilmesi ile böyle bir uygulama yapılmıştır. Farklı bağlantı desteği ise saha çalışmalarında ve ekipler arası doğrulamada en büyük güven faktörünü oluşturmaktadır.

🔌 1. Bağlantı Ayarları: Çoklu Protokol Desteği
Uygulamanın çekirdek bileşenlerinden biri olan Bağlantı Ayarları modülü, veri toplama sürecinde çoklu protokol desteğini merkezileştirir. Bu modül üzerinden:

  • USB Arabirimi: Windows işletim sistemine bağlı CANBus dongle’lar ile doğrudan fiziksel bağlantı sağlanabilir.
  • SSH Tüneli: Raspberry Pi veya benzeri gömülü sistemlerde çalışan CAN arayüzlerine, uzak terminal üzerinden güvenli erişim gerçekleştirilebilir.
  • MQTT Protokolü: IoT odaklı altyapılarda çalışan, CAN verilerini MQTT topic’leri üzerinden yayınlayan cihazlara abone olunabilir.

Bu yapı sayesinde sistem, hem donanımsal hem de yazılımsal açıdan bütün ortamlarda çalışabilen, ölçeklenebilir ve esnek bir dinleme altyapısı sunar. Bu kısım sahada küçük araç, büyük araç ve uzak araç gibi bütün hepsine destek verecek şekilde yapılmıştır.

🧩 2. CAN Arayüzü Seçimi ve Bağlantı
Bağlantı ayarları tamamlandıktan sonra, cihazın tanımlı arayüzlerinden (can0, can1 vb.) biri seçilir ve “Bağlan” butonu ile dinleme başlatılır.
Arayüz doğru şekilde yapılandırılmışsa, mesajlar anında ekranda görüntülenir.
USB dongle ile Windows üzerinde ya da can-utils kurulu Raspberry Pi sistemlerinde sorunsuz çalışır.

📝 3. Log Kaydı Alma
Uygulama, gelen verilerin gerçek zamanlı loglanmasına olanak tanır. Desteklenen formatlar:
JSON – Veri analizi için ideal,
CSV – Excel gibi araçlarda analiz imkanı,
Raw CAN – Orijinal formatıyla arşivleme veya tekrar oynatma (replay) amaçlı. (replay özelliğini lab ortamımız hazır olduğunda aktif edeceğiz)
Dinleme başladığı andan veya kullanıcı dinlemek istediği andan itibaren tüm mesajlar seçilen formatta kaydedilir.

📁 4. DBC Yükleme Desteği
“DBC Yükle” özelliği ile, gelen mesajların anlamlı sinyallere dönüştürülmesi sağlanır.
DBC dosyası yüklendiğinde yalnızca mesaj ID’si değil; sinyal isimleri, açıklamaları, bit alanları ve ölçeklendirme bilgileri de görüntülenir.
(Çok yakında otomatik DBC oluşturma için çalışmalarımız devam etmektedir)

🔍 5. Mesaj Detayları ve Decode
DBC entegrasyonu sayesinde, gelen veriler sadece hexadecimal ID olarak değil, anlamlı parametre isimleri ve ölçüm değerleri ile birlikte gösterilir.
Burada aslında sizin DBC dosyanızın kalitesi ve doğrulu ne kadar iyi ise o kadar verimli ve doğru veri gözlenmesi yapılabilir.

📊 6. Canlı Grafik İzleme
Belirli bir mesaj ID’si seçilerek, bu ID’ye ait verilerin zaman içindeki değişimi grafiksel olarak izlenebilir. Manuel analiz yaparken çok işlevli olmaktadır. (Aşağıdaki grafik canlı olarak dinlenmiş ve sinyal ve dörtlü yandığında ID’den gelen mesajın tek değişen bitinin değişim grafiğidir. Sırası ile sağ, sol ve dörtlü yakılmıştır.)

🌐 7. Trafik Görselleştirme
CAN hattındaki genel trafik yükü ve mesaj yoğunluğu grafiksel olarak sunulur.
Bu sayede:
Sensör eklemelerinin trafik üzerindeki etkisi,
Araçta yapılan değişikliğin hattın üzerindeki etkisi daha net görülebilir ve kolayca analiz edilebilir.

🎯 8. ID Filtresi
CANBus trafiği çok yoğun olabilir. ID Filtresi özelliği ile yalnızca belirli ID’ler görüntülenerek gereksiz veri yükü azaltılır.
Bu, test senaryolarında odaklanmak istenen verileri ayırmak için özellikle faydalıdır.

💬 9. Ana Mesaj Paneli
Tüm gelen mesajlar, zaman damgası (Timestamp), mesaj kimliği (ID) ve veri baytları (Data Bytes) ile tablo halinde listelenir.
Bu düzen, hem sade bir görünüm sağlar hem de gerekli bilgilere anında erişim imkânı tanır.

🔦10.Tema değişikliği
Bu kısımın önemi saha çalışmasında belli olmaktadır. Güneşli havalarda araç üzerindeki testlerimizde açık renkli temaları kullanmak bizim için daha kullanışlı olmaktadır.

Refons teknoloji olarak özellikle otomotiv sektöründeki CAN Bus projelerine yönelik olarak; sistem analizi, prototipleme, güvenlik testleri ve gömülü yazılım geliştirme alanlarında danışmanlık ve yazılım çözümleri sunmaktayız. Kurumunuza özel ihtiyaçları anlayarak, sahada karşılaşılan pratik sorunlara yönelik ölçeklenebilir ve etkin çözümler üretmekteyiz. İlgili projelerinizde birlikte çalışmak ve katkı sağlamak için bizimle iletişime geçebilirsiniz.

YUNUS EMRE ÇETİNKAYA

https://www.linkedin.com/in/yunus-emre-%C3%A7etinkaya-88a0b7218

12.08.2025