CAN etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
CAN etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

28 Şubat 2025 Cuma

UN R156 Regülasyonu: Araç Yazılım Güncellemeleri için Güvenlik ve Süreç Yönetimi

Otomotiv endüstrisi, dijitalleşmenin hız kazanmasıyla birlikte giderek daha fazla siber güvenlik tehdidine maruz kalıyor. Günümüzde modern araçlar, internet bağlantıları, kablosuz güncellemeler (OTA - Over-the-Air) ve akıllı sistemler sayesinde daha fazla yazılım bileşeni içeriyor. Ancak bu gelişmeler, araçların siber saldırılara karşı korunmasını zorunlu hale getiriyor. İşte tam da bu noktada, Birleşmiş Milletler Avrupa Ekonomik Komisyonu (UNECE) tarafından yayınlanan UN R156 regülasyonu devreye giriyor.

Bu yazıda, UN R156’nın ne anlama geldiğini, hangi konuları kapsadığını ve otomotiv sektöründeki önemini temel seviyede ele alacağız.

UN R156 Nedir?

UN R156 (Regulation No. 156), araçların yazılım güncellemeleriyle ilgili güvenlik ve yönetim gereksinimlerini belirleyen bir düzenlemedir. Bu regülasyon, özellikle araçların uzaktan güncellenmesi (OTA) süreçlerinin güvenli ve izlenebilir olmasını sağlamayı amaçlar. UNECE tarafından geliştirilen bu regülasyon, Software Update Management System (SUMS) yani Yazılım Güncelleme Yönetim Sistemi kavramını ortaya koyarak, otomobil üreticilerinin yazılım güncellemelerini sistematik bir şekilde yönetmelerini zorunlu kılar.

Regülasyonun ana hedefi, kötü amaçlı yazılım yüklenmesini önlemek, güvenli güncelleme süreçleri sağlamak ve araç içindeki yazılım değişikliklerinin kayıt altına alınmasını garanti etmektir.

UN R156 Hangi Konuları Kapsar?

Bu regülasyon, otomotiv sektöründe yazılım güncellemelerinin düzenlenmesi için dört ana gereksinim belirler:

  1. Yazılım Güncelleme Yönetim Sistemi (SUMS) Kurulumu:

    • Araç üreticileri, tüm yazılım güncellemelerini yönetebilecek bir sistem kurmalı ve bu sistemi resmi olarak belgelendirmelidir.
    • Bu sistem, güncelleme süreçlerini şeffaf ve izlenebilir hale getirmelidir.
  2. Güncelleme Süreçlerinin Güvenliği:

    • Tüm yazılım güncellemelerinin kimlik doğrulaması yapılmalı ve yetkisiz erişimlere karşı korunmalıdır.
    • Yazılımın güncelleme sırasında bozulmaması için güvenlik mekanizmaları (örn. şifreleme, imza doğrulama) uygulanmalıdır.
  3. Güncellemelerin Takibi ve Belgelendirilmesi:

    • Yapılan tüm yazılım değişiklikleri kayıt altına alınmalı ve gerektiğinde denetim için hazır tutulmalıdır.
    • Üreticiler, bir aracın hangi yazılım sürümüne sahip olduğunu gösterebilmelidir.
  4. Araç Sahibi ve Yetkililer için Bilgilendirme:

    • Yazılım güncellemeleri sırasında kullanıcılar bilgilendirilmeli, güncelleme süreci hakkında şeffaf bir iletişim sağlanmalıdır.
    • Güncellemelerin araç fonksiyonlarına etkisi açıkça belirtilmelidir.

UN R156 Neden Önemlidir?

Eskiden, araç yazılımlarının güncellenmesi yalnızca servislerde yapılan fiziksel işlemlerle gerçekleşiyordu. Ancak modern araçlarda kablosuz (OTA) güncellemeler yaygınlaştıkça, güvenli yazılım yönetimi kritik bir hale geldi.

Bu regülasyonun otomotiv sektörü açısından en önemli faydaları şunlardır:
Siber Güvenliği Artırır: Yetkisiz yazılım yüklemelerinin önüne geçerek araçların siber saldırılara karşı korunmasını sağlar.
Hukuki ve Ticari Riskleri Azaltır: Üreticilerin, yazılım kaynaklı hatalara karşı daha hızlı müdahale edebilmesine yardımcı olur.
Regülasyon Uyumluluğu Sağlar: UN R156, Avrupa Birliği başta olmak üzere birçok ülkede yasal bir zorunluluk haline gelmiştir. Uyumsuzluk durumunda üreticilere ciddi yaptırımlar uygulanabilir.
Araç Yaşam Döngüsünü Uzatır: Güvenli yazılım güncellemeleri sayesinde araçlar daha uzun süre güncel ve işlevsel kalır.

Sonuç

UN R156, otomotiv sektöründe yazılım yönetiminin güvenli ve sistematik bir şekilde yapılmasını zorunlu kılan bir regülasyondur. Siber güvenlik tehditlerinin arttığı bir dönemde, araç yazılım güncellemelerinin güvenliğini sağlamak, sadece üreticiler için değil, kullanıcılar için de büyük önem taşımaktadır.

Özellikle otonom sürüş teknolojilerinin yaygınlaşmasıyla birlikte, yazılım güncellemelerinin güvenli olması hayati bir konu haline gelmiştir. Bu nedenle, UN R156 regülasyonu, gelecekte daha da önem kazanacak ve tüm otomotiv üreticileri için standart bir gereklilik haline gelecektir.

19 Mart 2024 Salı

CAN Bus Frame Tipleri

Yazıya başlamadan önce CAN Bus temelleri ve mesaj yapısının temellerini incelemek için bu linkte yer alan blog yazısını inceleyebilirisiniz.

CAN Bus hattında kullanılan 4 tip frame (çerçeve, yapı) vardır.

  • Data Frame: Data framei, temelde data/veri taşımak için kullanılan ana yapıdır. CAN Bus sistemleri arasında veri transferi için kullanılır. Tek bir data framei üzerinden minimum 1 maksimum 8 byte veri transferi tek seferde gerçekleştirilebilir.
  • Remote Frame: Remote frame, veri talep etme frameidir. Remote framede tanımlanan ID CAN Bus ağına basılır. İlgili mesaj paketini barındıran sistem bu ağa ilgili data frameini basar. Remote frame, bir sistemin, bir veriye özellikle ihtiyaç duyduğu zamanda kullanılır.
  • Error Frame: SOF ile CRC arasında 6 veya 12 bit boyunca aynı seviye (High/Low, Recessive/Dominant) veri gönderilmesiyle error framei tanımlanmış olur ve hattaki sistemler ilgili framei error frame olarak işaretler. Error frame istemli gönderilen bir frame değildir. Bir sistem bir paketi göndermeye başladıktan sonra bir hata tespit edilirse ilgili frame error frameine çevrilir.
  • Overload Frame: CAN Bus peripheralı meşgul olduğu durumlarda hattı meşgul tutmak için overload frame hatta basar. Bu bilgi hattın durdurulması için kullanılır. Günümüzde genellikle kod üzerinden kontrol edilmez. CAN Bus peripheralları bu durumu kendisi tespit eder ve gerektiği kadar hattı meşgulde tutar, sonrasında bırakır.



Kaynaklar
  1. https://medium.com/@mohammednumeir13/can-protocol-types-of-can-frames-51c8444176bb
  2. https://www.researchgate.net/publication/340883976_Cyberattacks_and_Countermeasures_For_In-Vehicle_Networks/figures?lo=1

1 Mart 2024 Cuma

CAN Bus Fiziksel Katmanı

CAN (Controller Area Network) Bus CANH, CANL şeklinde isimlendirilen ikili hat üzerinden birden çok sistemin konuşabildiği, aynı anda tek bir sistemin konuştuğu (half-dublex), yüksek hızlı uygulamalara izin veren bir ağ yapısıdır.

Haberleşme yapılarında farklı seviye katmanlar ve uygulama tipleri vardır. Bu kapsamda CAN Bus'ın fiziksel katmanı üzerine detaylı bir inceleme gerçekleştirilmiştir.

Bu konuya giriş yaparken donanım seviyesinden işi ele alıp elektriksel seviyeye ilerlemek mantıklı olacaktır.

Öncelikle yazı  kapsamında kullanılacak tanımlardan bahsetmek gerekirse, sistem ifadesini CAN Bus hattına bağlanabilen ve haberleşebilen her şey olarak düşünebiliriz. Otomotiv üzerinden örnek verecek olursak VCU, BMS, Inverter gibi CAN Bus ile haberleşen yapılara sistem diyebiliriz.

Bir CAN Bus hattı CANH ve CANL hatlarının burulmuş çifti (twisted pair) ile birbirine bağlanır. Bu yapı ethernet kablolarında da benzer şekilde kullanılır. Bu bağlantı elektromanyetik yayılıma karşı hattın güçlü olmasını sağlar. Bu yapıda hat üzerinde indüklenen gürültü akımları her iki hatta neredeyse ortak seviyede etkileyeceği için CANH, CANL arasındaki fark neredeyse sabit kalır. 

Örnek bir burulmuş çift (twisted pair) görseli aşağıda görebilirsiniz.

CANH, CANL twisted pair kablo üzerinden iletildikten sonra elektronik devre üzerindeki yapılar ile karşılaşıyoruz. Burada temel yapıyı anlamak için CAN Bus dönüştürücüler ile anlatıma devam etmek faydalı olacaktır. Sektörde de sıklıkla kullanılan SN65HVD1050 entegresini örnek olarak ele alabiliriz. Bu yapılar mikrodenetleyicilerden çıkan CANTX, CANRX pinlerini CANH, CANL seviyesine dönüştürür. CAN Bus dönüştürücü entegrelerinin ana görevi budur. Tamamen analog yapılar bu dönüşüm için yeterlidir. Bununla birlikte hat ile ilgili temel elektriksel kontrolleri yapabilir. Entegre özelinde sıcaklık kontrolü ve koruması yapabilir. ESD korumaları sağlayabilir. Bublar zorunlu fonksiyonlar değildir.

SN65HVD1050'nin iç yapısı aşağıdaki gibidir.

CAN Bus dönüştürücüleri giriş tarafında CANH, CANL değerlerinin elektriksel farkına göre RXD ucuna 1/0 bilgisi gönderir. CANH, CANL aynı değerlerde ise lojik 1, aradaki fark 2.5 V ise lojik değer 0'dır.


Gönderici taraftan bakacak olursak TXD pini üzerinden bir sürücü kısım aktifleşir ve çıkış anahtarlarını sürer. Bu anahtarlar TXD lojik 0 iken aktif çalışır ve CANH, CANL hattını 2.5 V farka çeker. Aksi durumda aynı değerde tutar.

CAN Bus'ın özelliklerinden biri hattı sürerken aynı zamanda aktif olarak okumaya devam etmesi ve CAN mesaj paketi içerisinde belli bitleri takip ederek karşı alıcının mesajı sağlıklı bir şekilde alıp almadığını doğrulamasıdır. Bu sayede gönderilen mesajların en az bir alıcıya ulaşıp ulaşmadığından gönderici taraf emin olur.

Ek ve büyük bir katkısı da veri gönderirken okumaya devam etmesi sayesidne herhangi bir durumda önceliği yüksek bir mesaj paketi başka bir sistem üzerinden gönderilirse, hattı her sistem sürekli okuyarak çalışmaya devam ettiği için ilgili yüksek öncelikli mesaja diğer tüm sistemler izin/öncelik verir.

Kaynaklar:

  1. https://www.ti.com/lit/an/sloa101b/sloa101b.pdf

26 Şubat 2024 Pazartesi

ESP32 ile Kristal veya Osilatör Kullanmadan RMII Üzerinden Ethernet Haberleşmesi ve İpuçları

İnternette gördüğüm ESP32 ve ethernet uygulamalarının çoğunda ethernet chipine kristal takarak uygulama çalıştırılmış. Bunun sinyal kalitesi açısından faydası olabilir ancak tek çözüm bu değil. ESP32 modüllerinden de ethernet için gerekli clock çıkışını alabilirsiniz.

Bunun için örnek devrede de gösterildiği gibi ESP32 ile ethernet chipinin clock uçlarını birleştirmek yeterli. Burada frekans 50 MHz mertebesinde olduğu için mümkün oldukça yakın olması önemli.

Benim yaptığım uygulamadan hat boyu yaklaşık 44 mm ve 2 adet via kullanılıyor. Buna rağmen sorunsuz bir şekilde sistemin çalıştığını gördüm.



ESP32 clock çıkışı için GPIO0, GPIO16, GPIO17 pinleri kullanılabilir.


Arduino arayüzünde varsayılan olarak clock ESP32'ye girecek şekilde tanımlanmıştır. Ethernet clock çıkışını tanımlamak için aşağıdaki satır kullanılabilir. Bu begin fonksiyonu üzerinden ethernet chipi, clock yönü ve pini seçilebilir.

ETH.begin(0,-1,23,18,ETH_PHY_LAN8720,ETH_CLOCK_GPIO17_OUT);

Kaynaklar;

  • https://docs.espressif.com/projects/esp-idf/en/release-v3.1/api-reference/ethernet/esp_eth.html
  • https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32d_esp32-wroom-32u_datasheet_en.pdf

10 Ocak 2024 Çarşamba

STM32F103 Mikrodenetleyici Çevre Birimlerinde Karşılaştığım Bir Problem #STM32Tips

Konunun hikayesinden başlamak gerekirse, STM32F0 ve STM32F1 serisi işlemcilerden oluşan ve CAN Bus üzerinden birbirleri ile haberleşen bir tasarım üzerine çalışıyordum. Her bir kart için CAN Bus bağlantısının yanında bilgisayar bağlantısını da kurmak için USB bağlantısını sisteme dahil etmiştim. Bu tasarım STM32F0 serisi işlemcide CAN Bus ve USB sorunsuz çalıştı.

STM32F1 serisi işlemciyi kullanırken aynı yazılıp mimarisi üzerinden devam ediyordum ancak bir sorun ile karşılaştım. Bir şekilde CAN Bus hattını kullanamıyordum. Problemi araştırmaya başladığımda USB ve CAN Bus'ın birlikte kullanımı ile ilgili başka problem yaşayanların da olduğunu gördüm. Sonrasında kullandığım işlemci olan STM32F103CB'nin datasheetini (Reference Manual RM0008 Rev 21) inceledim. CAN Bus kısmında aşağıdaki gibi bir not olduğunu gördüm.

"In low, medium-, high- and XL-density devices the USB and CAN share a dedicated 512-

byte SRAM memory for data transmission and reception, and so they cannot be used concurrently (the shared SRAM is accessed through CAN and USB exclusively). The USB and CAN can be used in the same application but not at the same time."

Buradan anladığımız CAN Bus ve USB işlemci üzerinde aynı SRAM alanlarını kullanıyor ve bu yüzden her iki çevre birimi birlikte kullanılamıyor. USB'yi kapatıp CAN Bus'ı çalıştırmak veya tam tersi mümkün ancak her ikisi aynı anda asla çalıştırılamıyor. Bu yüzden örnek vermek gerekirse CAN Bus üzerinden alınan bir veriyi USB üzerinden gerçek zamanlı alıp işlemek mümkün değil.

Ek olarak STM32F0 serisi ile bir çok uygulama yapmıştım ve bu yüzden USPDP, USPDM hatlarını direkt konnektöre bağlamıştım. STM32F103CB işlemci kullanırken USBDP hattına 3.3 V'a 1.5 kR pull-up resistor gerekiyormuş.

STM32 USB kullanılan uygulamalarda donanım tasarımı hakkında aşağıdaki doküman yayınlamış. Donanım tarafında yapılması gereken işler tek bir dokümanda bütün işlemci ailesi için verilmiş. Gelecek tasarımlar için işe yarar gibi görünüyor.


Link: https://www.st.com/resource/en/application_note/an4879-introduction-to-usb-hardware-and-pcb-guidelines-using-stm32-mcus-stmicroelectronics.pdf (10.01.2024)

31 Aralık 2023 Pazar

CAN Bus Temel Özellikler, Avantajları ve Dezavantajları

Temel Özellikler

  • Bükümlü çift yapısında iki kablo
  • Hat baş ve sonra 2 direnç ile sonlandırılır
  • ~40 metre kablo için 1 Mbps veri iletim hızı vardır
  • Bir mesaj paketinde azami 8 byte veri gönderilir
  • Mesaj gönderme alma prosedürü hatalara dirençli (robust) bir şekilde çalışır
  • Mesaj ID'sine göre önceliklendirme yapısı vardır
  • İki sistem aynı anda mesaj paketi iletmek istese bile ID önceliklendirme yapısı hatayı engeller
  • Mesajlar hat üzerindeki tüm sistemlere iletilir
  • Mesaj iletilmeme durumunda yeniden gönderme yapısı CAN kontrolcüsü üzerinde gerçekleştirilir
  • Sabit/Sürekli bir hata durumunda CAN kontrolcüsü kendini belli durumlarda durdurur

Avantajlar

  • Düşük kablolama karmaşıklığı
  • Araç kablolama işlemlerinde kolaylık
  • Hatta yeni bir sistem eklemek veya hattan bir sistemi kaldırmakta kolaylık
  • Kapalı bir sistem hattı etkilemez
  • Çoklu yönetici, her bir sistem hatta veri basabilir ve hat üzerinde bulunan veriyi okuyabilir
  • Elektromanyetik yayılımdan etkilenmesi halinde emniyetlidir
  • Hata tespit yapıları vardır
  • Arıza durumunda teşhis ve bakım kolaylıkla yapılır
Dezavantajlar
  • Veri iletişim hızı ~1Mbps hızında sınırlıdır
  • Basit protokollere göre uygulaması daha maliyetlidir
  • Siber ataklara karşı açıktır. Kolaylıkla hatta erişilip veriler manipüle edilebilir




ISO/SAE 21434:2021 Standardı: Otomotiv Siber Güvenliği İçin Yeni Çağı Başlatıyor

Modern araçlar, giderek daha fazla elektronik ve yazılım bileşenlerine bağımlı hale geliyor. Bu durum, araçların performansını ve kullanıcı ...