Smart Display, CAN bus donanım haberleşme arayüzünü destekler ve CANopen haberleşme protokolünü kullanır. CANopen, CAN bus tabanlı ve endüstride yaygın olarak kullanılan bir haberleşme protokolüdür; tıbbi cihazlar, araç sistemleri, demiryolu uygulamaları ve bina otomasyonu gibi çeşitli alanlarda kullanılmaktadır. Ancak CANopen protokolü kullanıldığında, müşterinin Host tarafında ilgili CANopen haberleşme mekanizmasını uygulaması gerekir. Bu durum, yalnızca CAN bus haberleşmesine ihtiyaç duyan uygulamalarda geliştirme sürecini daha karmaşık hale getirebilir. Uygulamayı basitleştirmek amacıyla geliştirdiğimiz Custom CAN ID protokolü ise Host tarafında CANopen protokolünün uygulanmasını gerektirmez. Bunun yerine, özel bir DBC dosyası üzerinden yapılandırma yapılarak CAN ID'ler ve veriler Smart Display üzerindeki Widget'larla ilişkilendirilebilir ve gerçek zamanlı veri etkileşimi sağlanabilir. Bu yaklaşım, sistem verilerinin daha kolay izlenmesini ve kontrol edilmesini sağlarken daha yüksek esneklik ve daha kolay bakım imkânı sunar.
Custom CAN ID protokolünde veri yapılandırması ve CAN verilerinin Smart Display üzerindeki Widget'larla nasıl etkileşime gireceğinin tanımlanması temel olarak bir DBC (CAN Database) dosyası üzerinden gerçekleştirilir. DBC dosyası; CAN ID'ler, mesaj formatları ve veri çözümleme bilgileri gibi ilgili tanımları içerir. Özel bir DBC dosyası kullanılarak farklı CAN ID'ler ve veriler Smart Display üzerindeki Widget'larla ilişkilendirilebilir ve gerçek zamanlı etkileşim sağlanabilir. Örneğin, CAN ID'ler ve veriler ekrandaki grafik veya metinleri kontrol etmek için kullanılabilirken, ekrandaki butonlar veya kaydırıcılar da CAN verilerini kontrol etmek için kullanılabilir. Bu çift yönlü etkileşim, sistem verilerinin daha kolay izlenmesini ve kontrol edilmesini sağlayarak esnek ve bakımı kolay bir çözüm sunar.
DBC Dosyalarını Anlama
DBC dosyası genellikle CAN bus üzerinden iletilen fiziksel sinyallere ilişkin CAN ID, sinyal adı, ölçekleme faktörü ve tanım gibi bilgileri içeren ASCII düz metin dosyasıdır. Ham CAN verilerinin anlamlı değerlere dönüştürülerek çözümlenmesi ve farklı CAN ID'lerin ilgili sinyallerle eşleştirilmesi için kullanılır. DBC dosyası, CAN mesajlarının veri alanındaki değerlerin fiziksel sinyal değerlerine dönüştürülmesi için gerekli bilgileri sağlar.
Ham CAN Verisi Çözümleme Örneği

CAN ID 0x181 için çözümleme kurallarını içeren bir CAN DBC dosyanız varsa, DBC dosyasında tanımlanan bilgiler kullanılarak aşağıdaki veriler çözümlenebilir.

DBC dosyasının temel işlevlerinden biri, CAN mesajlarının ve sinyallerinin nasıl çözümleneceğine ilişkin kuralları tanımlamaktır. Aşağıdaki örnekte bir DBC dosyasından alınan test verileri gösterilmektedir:

Yukarıdaki DBC bilgilerine göre aşağıdaki çözümleme bilgileri elde edilebilir:

Yukarıdaki çözümleme kuralları kullanılarak daha önce elde edilen ham CAN verileri aşağıdaki bilgilere dönüştürülebilir:

Yukarıdaki örnekte görüldüğü gibi, DBC dosyasında tanımlanan ayarlar kullanılarak belirli bir CAN ID ile ilişkili CAN verilerinin temsil ettiği gerçek değerler doğru şekilde çözümlenebilir. DBC dosyası, CAN mesajlarının ve sinyallerinin veri yerleşimini ve tanımlarını içerir. Böylece ham CAN verileri yorumlanarak ilgili fiziksel değerlere dönüştürülebilir ve sistem, CAN üzerinden iletilen bilgileri doğru şekilde işleyebilir.
DBC Editörü
DBC dosyalarının yapısı ve formatı doğrudan okunup düzenlenmesi zor olabileceğinden, özel DBC dosyalarının oluşturulmasını ve düzenlenmesini kolaylaştırmak için DBC editörlerinden yararlanılabilir. Yaygın olarak kullanılan DBC editörlerinden biri, Vector Informatik GmbH tarafından geliştirilen Vector CANdb++'dır. Bu yazılım; DBC dosyalarının oluşturulması ve düzenlenmesi, mesaj ve sinyallerin eklenmesi ve mesaj ID'leri, başlangıç bitleri, uzunluklar, ölçekleme faktörleri ve offset değerleri gibi ilgili parametrelerin tanımlanması için grafiksel bir kullanıcı arayüzü sunar.

Smart Display GUI Builder – Custom CAN ID Yapılandırması
Smart Display GUI Builder, Custom CAN ID projelerinin oluşturulması için kullanıcı dostu bir arayüz sunar. Bir DBC dosyasını içe aktarıp mesajları/sinyalleri ilgili Widget'larla eşleştirerek CAN verilerinin Smart Display üzerinde görüntülenmesini ve etkileşimli olarak kullanılmasını sağlayabilirsiniz. Aşağıdaki bölümlerde Smart Display GUI Builder ile bir Custom CAN ID projesinin nasıl oluşturulacağı ve DBC dosyası ile Widget'lar arasındaki ilişkilerin nasıl yapılandırılacağı açıklanmaktadır.
Custom CAN ID Projesi Oluşturma
Project adını girin, kullanılacak Smart Display cihaz tipini seçin ve bir Custom CAN ID projesi oluşturmak için Protocol bölümünde "Custom CAN Id (CANbus)" seçeneğini belirleyin.

Özel DBC Dosyasını İçe Aktarma
DBC Viewer sayfasına geçin ve özel DBC dosyasını içe aktarmak için "Load DBC File" seçeneğine tıklayın. Dosya içe aktarıldıktan sonra DBC dosyasında tanımlanan Messages, Signals ve ilgili yapılandırma bilgilerini görüntüleyebilirsiniz.

Gauge ve Horizontal Slider Widget'larını Yapılandırma
Gauge nesnesini seçin ve Gauge özelliklerindeki CAN Signal bölümünde Message değerini EEC1, Signal değerini ise EngSpeed olarak ayarlayın. Böylece Gauge, EngSpeed sinyaliyle ilişkilendirilir. Yapılandırma tamamlandıktan sonra Gauge üzerinde görüntülenen değer, EngSpeed değerine göre değişir.

Horizontal Slider nesnesini seçin ve Horizontal Slider özelliklerindeki CAN Signal bölümünde Message değerini HorizontalSliderMessage, Signal değerini ise HorizontalSliderSignal1 olarak ayarlayın. Böylece Horizontal Slider, HorizontalSliderSignal1 sinyaliyle ilişkilendirilir. Yapılandırma tamamlandıktan sonra Horizontal Slider, HorizontalSliderSignal1 değerine göre değişir.

CAN ID / CAN Data ve Widget Etkileşimini Simüle Etme
Simülatörü başlatmak için "Simulator With GUI" simgesine tıklayın.

Simülatörü başlattıktan sonra, Host tarafından EngSpeed verisi gönderilmesini simüle etmek için alt bölümdeki EngSpeed kaydırıcısını hareket ettirin ve simülatördeki Gauge değerinin buna göre nasıl değiştiğini gözlemleyin. Sağ taraftaki Message Log bölümünde CAN ID ve CAN Data değişiklikleri görüntülenir. Ayrıca simülatördeki Horizontal Slider'ı kullanarak Device tarafından veri gönderilmesini de simüle edebilirsiniz.

Smart Display Cihaz Yapılandırmasını Güncelleme
Simülatör üzerinden işlevleri doğruladıktan ve sistemin beklendiği şekilde çalıştığını kontrol ettikten sonra Device'a bağlanın ve Project ayarlarını Smart Display'e yükleyin.

Project yükleme ve güncelleme işleminin tamamlanmasını bekleyin.

Device CAN ID / CAN Data ve Widget Etkileşimini Doğrulama
Project'i Device'a yükledikten sonra Smart Display'in işlevlerini ayrıca doğrulayabilirsiniz. GUI Builder'ı Device'a bağlayın ve "Test Device" seçeneğine tıklayarak Test Device Window'u açın. Bu pencere üzerinden Host ile Device arasındaki veri etkileşimini test edebilirsiniz.

Test Device Window
Test Device Window, DBC yapılandırmasına göre Host tarafından ilgili CAN ID ve CAN Data'nın gönderilmesini simüle edebilir. Host'un EngSpeed verisi göndermesini simüle etmek için EngSpeed kaydırıcısını hareket ettirin ve Smart Display üzerindeki Gauge değerinin buna göre nasıl değiştiğini gözlemleyin. Pencerenin alt bölümündeki CAN veri kayıtlarında CAN ID ve CAN Data bilgileri görüntülenir. Ayrıca Smart Display üzerindeki Horizontal Slider'ı kullanarak Device tarafından gönderilen verilerin gereksinimleri karşılayıp karşılamadığını doğrulayabilirsiniz.

Smart Display Üzerindeki Gerçek Görüntü

Custom CAN Komutlarına Genel Bakış
Aşağıda Custom CAN tarafından kullanılan komut protokolü açıklanmaktadır. Bu komutlar aracılığıyla Host cihazı, Smart Display'i kolayca kontrol edebilir; sayfa değiştirme, parlaklık ayarlama ve buzzer'ı çalıştırma gibi işlemler gerçekleştirilebilir.
CAN ID Yapılandırması
Komut protokolünde aşağıdaki CAN ID ayarları kullanılır:
- CAN ID formatı: 29 bit
CAN ID: 0xEF0000 + 0x7B00 (varsayılan kanal ID'si. GUI Builder üzerinden değiştirilebilir.)
Komut Veri Formatı
Gönderme Komutu
| Header Byte (1 Byte) |
Length (1 Byte) |
Payload (N Byte) |
CRC (2 Byte) |
| Sabit değer: 0x53 (S) |
Değer = 4 + Payload uzunluğu
Maksimum Payload boyutu: 250 |
Veri içeriği ve uzunluğu için Send Command Payload bölümüne bakın. |
Modbus CRC16 |
Yanıt Komutu
| Header Byte (1 Byte) |
Length (1 Byte) |
Payload (N Byte) |
CRC (2 Byte) |
| Sabit değer: 0x52 (R) |
Değer = 4 + Payload uzunluğu
Maksimum Payload boyutu: 250 |
Veri içeriği ve uzunluğu için Response Command Payload bölümüne bakın. |
Modbus CRC16 |
Komut Payload'u
Aşağıda her bir komut Payload'unun açıklaması yer almaktadır.
- Set Brightness: 0x6
Gönderme Komutu
| Command Code |
1 Byte |
0x6 |
| Brightness |
1 Byte |
Brightness value |
Yanıt Komutu
| Command Code |
1 Byte |
0x6 |
| Error Code |
1 Byte |
0:Success
1:Failed |
- Set Buzzer: 0x7
Gönderme Komutu
| Command Code |
1 Byte |
0x7 |
| Cycle |
1 Byte |
Cycle value |
| High |
1 Byte |
High value |
| Low |
1 Byte |
Low value |
Yanıt Komutu
| Command Code |
1 Byte |
0x7 |
| Error Code |
1 Byte |
0:Success
1:Failed |
- Set Page Index: 0x8
Gönderme Komutu
| Command Code |
1 Byte |
0x8 |
| Page Index |
1 Byte |
Page Index value |
Yanıt Komutu
| Command Code |
1 Byte |
0x8 |
| Error Code |
1 Byte |
0:Success
1:Failed |
- Get Page Count: 0xA
Gönderme Komutu
Yanıt Komutu
| Command Code |
1 Byte |
0xA |
| Error Code |
1 Byte |
0:Success
1:Failed |
| High |
1 Byte |
Page Count value |
- Get Current Page Index: 0xF
Gönderme Komutu
Yanıt Komutu
| Command Code |
1 Byte |
0xF |
| Error Code |
1 Byte |
0:Success
1:Failed |
| Page Index |
1 Byte |
Page Index value |
- Set Device State: 0x20
Gönderme Komutu
| Command Code |
1 Byte |
0x20 |
| Device State |
1 Byte |
0: ConfigMode
1: DisplayMode |
Yanıt Komutu
| Command Code |
1 Byte |
0x20 |
| Error Code |
1 Byte |
0:Success
1:Failed |
İletim Örneği
- Parlaklığı 90 olarak ayarlama

- Page Index değerini 1 olarak değiştirme
Sayfa değiştirirken önce Device State değerini ConfigMode olarak ayarlayın ve ardından sayfa değiştirme komutunu gönderin. Sayfa değiştirme işlemi tamamlandıktan sonra Device State değerini tekrar DisplayMode olarak ayarlayın. Komut sırası aşağıdaki gibidir:

Custom CAN ID ile CAN HMI Geliştirmeyi Kolaylaştırma
Custom CAN ID protokolü sayesinde kullanıcılar, standart bir DBC dosyası üzerinden CAN ID'lerini ve CAN Data bilgilerini tanımlayabilir ve Smart Display GUI Builder'da Messages/Signals ile ilgili Widgets arasında ilişki kurarak CAN verilerini HMI arayüzüne entegre edebilir. CANopen veya J1939 gibi daha kapsamlı haberleşme protokollerine ihtiyaç duyulmayan uygulamalarda Custom CAN ID, DBC yapılandırmasını temel alarak Host ile Smart Display entegrasyonunu daha kolay gerçekleştirmenin pratik bir yolunu sunar.
Kullanıcılar, gerçek bir Smart Display cihazına bağlanmadan önce Smart Display GUI Builder'ın simülasyon özelliklerini kullanarak DBC yapılandırması, CAN verileri ve Widgets arasındaki etkileşimi de doğrulayabilir.