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

5 Mart 2025 Çarşamba

HAL Kütüphanesine Giriş: Neden ve Nasıl Kullanılır?

STM32 mikrodenetleyicileriyle tanıştıysanız, muhtemelen şu soruyu sormuşsunuzdur: "Bu kadar pin, register ve ayar varken ben nasıl başa çıkacağım?" İşte tam bu noktada HAL kütüphanesi sahneye çıkıyor—adeta STM32’nizi elinizden tutup "Korkma, ben buradayım!" diyen bir rehber gibi. Bu yazıda, HAL’in ne olduğunu, neden hayat kurtardığını ve nasıl kullanıldığını keyifli bir dille anlatacağım. Hazırsanız, kahvenizi alın, 4 dakikalık bir STM32 macerasına çıkıyoruz!

HAL Nedir? Donanımın Dostu!

HAL, yani Hardware Abstraction Layer (Donanım Soyutlama Katmanı), STM32’nin karmaşık donanım detaylarını sizin için sadeleştiren bir kütüphane. Register’larla boğuşmak, bit kaydırmalarıyla uğraşmak yerine, HAL size "Şunu yap!" dediğinizde donanımı usulca ayarlayan bir sihirbaz sunuyor. STMicroelectronics’in geliştirdiği bu araç, yüzlerce STM32 modelinde tutarlı bir kod yazma deneyimi sağlıyor. Yani, ister STM32F103 ile LED yakıyor olun, ister STM32H7 ile uçuk projeler peşinde koşun, HAL sizin sırtınızı kolluyor.

Neden HAL Kullanmalısınız?

Diyelim ki bir GPIO pinini çıkış yapmak istiyorsunuz. Eski usul register programlamada, önce datasheet’e dalar, GPIOA_CRH register’ını bulur, sonra bitleri elle ayarlardınız—tam bir bulmaca! HAL ile ise sadece HAL_GPIO_Init() diye bir fonksiyon çağırıyorsunuz, pin hazır! Peki, HAL’i seçmek için başka neler var?

  • Hız: STM32CubeMX ile birleştirince saniyeler içinde proje başlatırsınız.
  • Taşınabilirlik: Kodunuzu başka bir STM32’ye taşıyın, çoğu şey çalışmaya devam eder.
  • Kolaylık: "Bu timer nasıl PWM üretir?" diye düşünmek yerine, HAL’in hazır fonksiyonlarına güvenin.
    Kısacası, HAL sizi donanımın derinliklerinden çekip çıkarır ve "Projenize odaklan!" der.

Nasıl Başlarız? İlk Adım: LED Yakalım!

HAL’in büyüsünü anlamak için bir LED yakma örneği yapalım. STM32CubeMX’i indirin (ücretsizdir, ST’nin sitesinden kapın), bir STM32 kart seçin—mesela Nucleo-F103RB.

  1. CubeMX’te Ayar Yapın:
    • GPIO sekmesine gidin, LED’in bağlı olduğu pini (örneğin PA5) "GPIO_Output" olarak seçin.
    • "Project Manager"dan kodu oluşturun, bir IDE’de (Keil, STM32CubeIDE) açın.
  2. Kodu İnceleyin: CubeMX, HAL’in temellerini sizin için hazırlar. main.c içinde şuna benzer bir şey görürsünüz:

HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); // PA5’i hazırlar 

  1. LED’i Yakın: while(1) döngüsüne şu satırı ekleyin:

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET); // LED yanar! 

HAL_Delay(500); // 500ms bekler 

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET); // LED söner 

HAL_Delay(500); 

Kodu derleyin, karta yükleyin ve voilà—LED yanıp sönüyor! HAL, tüm register sihirlerini sizin için yaptı.

Küçük Bir Bonus: HAL’in Sınırları

HAL mükemmel mi? Eh, her süper kahramanın bir zayıf yanı var. Küçük, hız kritik projelerde register seviyesinde kontrolü tercih edebilirsiniz—HAL biraz fazla "nazik" kalabilir. Ama başlangıç ve orta seviye projeler için? Kesinlikle bir naber! Üstelik, daha fazla hız gerektiğinde HAL’i LL (Low Layer) kütüphanesiyle karıştırabilirsiniz.

Son Söz: HAL ile İlk Adımı Atın!

HAL kütüphanesi, STM32 dünyasına giriş biletiniz. Karmaşayı bırakın, yaratıcılığınızı konuşturun. Bir LED yakmakla başlayın, sonra UART, timer

 Kaynaklar

  1. http://www.emcu.it/STM32Cube/STM32Cube.html

3 Mart 2025 Pazartesi

Elektrikli Araçlarda BMS'lerin ISO/TR 9968:2023 Perspektifinden İncelenmesi

Elektrikli araçlar (EV), sürdürülebilir ulaşımın geleceğini şekillendiren en önemli teknolojilerden biridir. Ancak bu araçların başarısı, yalnızca güçlü motorlar veya aerodinamik tasarımlara bağlı değildir. Bataryalar, elektrikli araçların kalbinde yer alan kritik bileşenlerdir ve bu bataryaların yönetimi için tasarlanan Batarya Yönetim Sistemleri (BMS) , araç performansı, güvenliği ve ömrü açısından hayati öneme sahiptir. BMS'lerin tasarım, geliştirme ve uygulama süreçlerinde uluslararası standartlar, özellikle de yeni yayınlanan ISO/TR 9968:2023 , rehberlik edici bir rol oynamaktadır.

Bu yazıda, ISO/TR 9968:2023 standardının BMS'ler üzerindeki etkisini ve bu perspektiften nasıl değerlendirildiğini inceleyeceğiz.


ISO/TR 9968:2023 Nedir?

ISO/TR 9968:2023, elektrikli araçların şarj sistemleri ve ilgili bileşenleri için bir teknik rapor olarak hazırlanmış bir standarttır. Bu standart, özellikle elektrikli araçların şarj altyapısıyla olan etkileşimlerini ve bu süreçteki güvenlik, uyumluluk ve performans gereksinimlerini ele alır. BMS'ler, bataryaların şarj ve deşarj süreçlerini yönettiği için, ISO/TR 9968:2023 kapsamında da önemli bir yer tutar.

ISO/TR 9968:2023, sadece şarj sistemlerine odaklanmaz; aynı zamanda bataryaların güvenli bir şekilde çalışmasını sağlamak için gerekli olan iletişim protokolleri, veri paylaşımı ve hata yönetimi gibi konuları da kapsar. Bu nedenle, BMS'lerin ISO/TR 9968:2023 ile uyumlu olması, elektrikli araçların genel güvenliğini ve performansını artırmada kritik bir faktördür.


BMS'lerin ISO/TR 9968:2023 Çerçevesinde Rolü

ISO/TR 9968:2023, BMS'lerin aşağıdaki ana alanlarda nasıl işlev gördüğüne dikkat çeker:

1. Şarj Yönetimi ve Uyumluluk

Elektrikli araçlar, farklı şarj istasyonlarıyla uyumlu olmalıdır. Ancak her şarj istasyonunun güç çıkışları, gerilim seviyeleri ve iletişim protokolleri farklılık gösterebilir. ISO/TR 9968:2023, BMS'lerin bu farklılıkları algılayıp uygun şekilde yanıt vermesini gerektirir. Örneğin:

  • BMS, şarj istasyonundan gelen verileri analiz eder ve bataryanın maksimum kapasitesini aşmadan şarj işlemini optimize eder.
  • Şarj sırasında oluşan sıcaklık artışlarını izler ve gerektiğinde şarj hızını düşürür.

Bu süreçler, ISO/TR 9968:2023'e uygun olarak gerçekleştirildiğinde, hem araç hem de şarj istasyonu için daha güvenli bir deneyim sağlar.

2. İletişim Protokolleri ve Veri Paylaşımı

Modern elektrikli araçlar, şarj istasyonlarıyla iletişim kurmak için çeşitli protokoller kullanır (örneğin, ISO 15118 veya CHAdeMO). BMS, bu iletişim protokollerini yöneten merkezi bir bileşendir. ISO/TR 9968:2023, BMS'lerin şarj istasyonlarıyla etkili bir şekilde iletişim kurmasını ve şu bilgileri paylaşmasını gerektirir:

  • Bataryanın mevcut şarj durumu (State of Charge - SoC).
  • Maksimum şarj hızı ve gerilim sınırları.
  • Hata kodları veya uyarılar.

Bu veri paylaşımı, şarj sürecinin verimli ve güvenli bir şekilde gerçekleşmesini sağlar.

3. Güvenlik ve Hata Yönetimi

ISO/TR 9968:2023, BMS'lerin güvenlik odaklı bir yaklaşım benimsemesini zorunlu kılar. Özellikle şarj sırasında ortaya çıkabilecek hatalar, ciddi güvenlik risklerine yol açabilir. Örneğin:

  • Aşırı akım veya gerilim, bataryanın hasar görmesine neden olabilir.
  • Şarj kablosundaki bir kopma veya kısa devre, yangın riski oluşturabilir.

BMS, bu tür hataları algılayıp anında müdahale edebilmeli ve gerekirse şarj işlemini durdurmalıdır. ISO/TR 9968:2023, bu tür senaryolar için detaylı güvenlik protokolleri tanımlar.

4. Sıcaklık ve Enerji Yönetimi

Şarj sırasında bataryaların sıcaklığı artabilir ve bu durum, bataryanın ömrünü kısaltabilir veya güvenlik riskleri yaratabilir. ISO/TR 9968:2023, BMS'lerin sıcaklık yönetimini optimize etmesini ve şarj hızını buna göre ayarlamasını önerir. Ayrıca, enerji verimliliği açısından da BMS'lerin şarj sırasında kayıpları minimize etmesi beklenir.


ISO/TR 9968:2023'e Uyum Sağlamanın Avantajları

ISO/TR 9968:2023'e uyumlu bir BMS tasarlamak, birçok avantaj sağlar:

  1. Daha Güvenli Şarj Süreçleri:
    Standarda uygun BMS'ler, şarj sırasında ortaya çıkabilecek riskleri minimize eder ve kullanıcılar için daha güvenli bir deneyim sunar.
  2. Geniş Uyumluluk:
    Farklı şarj istasyonlarıyla uyumlu çalışan BMS'ler, kullanıcıların şarj altyapısından bağımsız olarak sorunsuz bir şekilde şarj yapmasını sağlar.
  3. Verimli Enerji Kullanımı:
    ISO/TR 9968:2023, BMS'lerin enerji tüketimini optimize etmesini teşvik eder. Bu da bataryanın ömrünü uzatır ve çevresel etkileri azaltır.
  4. Global Pazarlara Erişim:
    ISO/TR 9968:2023 gibi uluslararası standartlara uyumlu ürünler, global pazarlarda daha kolay kabul görür ve rekabet avantajı sağlar.

Gelecekteki Gelişmeler

ISO/TR 9968:2023, elektrikli araçların şarj sistemleri ve BMS'ler için bir başlangıç noktası olarak görülmelidir. Gelecekte, bu standart daha da genişletilebilir ve yeni teknolojilerle entegre edilebilir. Örneğin:

  • Yapay Zeka ve Makine Öğrenimi: BMS'ler, şarj süreçlerini daha iyi tahmin edebilmek ve optimize edebilmek için yapay zeka algoritmaları kullanabilir.
  • Kablosuz Şarj Teknolojileri: Kablosuz şarj sistemlerinin yaygınlaşmasıyla birlikte, BMS'lerin bu teknolojilere uyum sağlaması gerekecektir.
  • Gerçek Zamanlı İzleme ve Raporlama: ISO/TR 9968:2023, BMS'lerin gerçek zamanlı veri paylaşımını teşvik eder. Bu, sürücülerin ve operatörlerin bataryanın durumunu sürekli takip etmesini sağlar.

Sonuç

Elektrikli araçlar, modern ulaşımın geleceği için umut vaat ediyor. Ancak bu araçların güvenli, verimli ve uyumlu bir şekilde çalışması, yalnızca güçlü bataryalara değil, aynı zamanda bu bataryaları yöneten BMS'lere de bağlıdır. ISO/TR 9968:2023, BMS'lerin tasarım, geliştirme ve uygulama süreçlerinde rehberlik edici bir rol oynar. Bu standart, elektrikli araçların şarj süreçlerini optimize ederken, güvenlik, uyumluluk ve performans açısından da yüksek standartlar belirler.

Üniversite öğrencileri ve yeni mezunlar için, otomotiv sektöründe kariyer yapmayı düşünenler, ISO/TR 9968:2023 gibi standartları anlamak, bu alanda fark yaratmanın ilk adımı olacaktır. BMS'ler, elektrikli araçların kalbinde atarken, ISO/TR 9968:2023 ise bu kalbin düzenli ve güvenli bir şekilde atmasını sağlayan kilit bir unsurdur.

 

1 Mart 2025 Cumartesi

STM32 HAL Kullanırken Performans Optimizasyonu: Kesme ve DMA İpuçları

STM32 HAL Kullanırken Performans Optimizasyonu: Kesme ve DMA İpuçları

STM32 mikrodenetleyicileri, özellikle gömülü sistemler ve zaman kritikli uygulamalar için oldukça popülerdir. Ancak, yazılım tarafında performans optimizasyonu yapmak, donanımın tüm potansiyelini verimli bir şekilde kullanabilmek için kritik önem taşır. Bu yazıda, STM32 HAL (Hardware Abstraction Layer) kütüphanesini kullanarak performansı artırmanıza yardımcı olacak iki önemli konuyu ele alacağız: Kesme ve DMA (Direct Memory Access).

1. Kesme (Interrupt) ile Hızlı Tepki

Kesme, STM32 gibi mikrodenetleyicilerde, belirli bir olay gerçekleştiğinde programın normal akışından çıkıp, hemen o olaya tepki vermesini sağlar. Bu özellik, özellikle zaman kritik uygulamalarda oldukça faydalıdır. Örneğin, bir sensörden gelen veriyi hızlıca okumak veya dış bir butona basıldığında kullanıcıya tepki vermek için kesme kullanabilirsiniz.

Kesme Kullanmanın Avantajları:

  • Hızlı Tepki: Kesme kullanarak, sürekli olarak bir işlem yapmayı beklemek yerine, bir olay gerçekleştiğinde hemen müdahale edebilirsiniz. Bu, zaman kazandırır.
  • Verimli Zaman Kullanımı: Mikrodenetleyici başka işlemlerle meşgulken, kesmeler sayesinde sadece gerekli olduğunda işlem yapılır. Bu, CPU’nun verimli kullanılmasını sağlar.

Kesme Performansı İçin İpuçları:

  • Kesme Önceliği Ayarı: STM32, çoklu kesme kaynakları destekler ve her bir kesmeye bir öncelik verebilirsiniz. Kesme önceliği ayarlayarak, en önemli olayların ön planda işlenmesini sağlayabilirsiniz. Bu, kritik uygulamalarda kesme sırasının doğru yönetilmesini sağlar.

  • Kesme Fonksiyonlarını Kısa Tutun: Kesme fonksiyonları kısa olmalıdır. Kesme fonksiyonları sırasında, mikrodenetleyici başka kesmeleri almaz ve bu da sistemin yanıt süresini olumsuz etkiler. Yalnızca gerekli işlemleri yapın ve büyük hesaplamaları ana program akışına bırakın.

2. DMA (Direct Memory Access) ile Verimli Veri Transferi

DMA, mikrodenetleyicinin CPU’sunu devre dışı bırakarak, verileri bir bellek biriminden diğerine hızlı bir şekilde aktarır. Bu özellik, özellikle yüksek hızda veri transferi yapmanız gerektiğinde faydalıdır. Örneğin, ADC (Analog to Digital Converter) ile veri okuma veya UART üzerinden gelen veriyi hafızaya kaydetme gibi işlemler için DMA kullanmak verimliliği artırır.

DMA Kullanmanın Avantajları:

  • CPU Yükünü Azaltır: CPU, veri transferini kontrol etmez, bu da diğer işlemler için daha fazla işlem gücü bırakır.
  • Hızlı Veri Transferi: CPU’dan bağımsız olarak, veri transferi çok daha hızlı yapılır. Bu, özellikle büyük veri setleriyle çalışırken oldukça önemlidir.

DMA Performansı İçin İpuçları:

  • DMA ile Kesme Kullanımı: DMA ile veri transferi sırasında kesme kullanarak, transfer tamamlandığında işlem yapabilirsiniz. Bu, veri transferi bitmeden önce başka bir işlem başlatmanın önüne geçer.

  • Veri Boyutunu Yönetme: DMA işlemleri genellikle büyük veri blokları üzerinde daha etkilidir. Küçük veri transferleri için DMA yerine doğrudan işlemler yapmak daha verimli olabilir. Gereksiz veri transferlerini önlemek için veri boyutlarını optimize edin.

  • DMA Kanal Yapılandırması: STM32, birden fazla DMA kanalını aynı anda kullanabilir. Bu kanalların doğru yapılandırılması, veri transferinin en verimli şekilde yapılmasını sağlar. DMA kanalındaki kaynak ve hedef adreslerini doğru belirlemek çok önemlidir.

3. Kesme ve DMA Birlikte Kullanımı

Kesme ve DMA birlikte kullanıldığında, çok daha verimli ve hızlı sistemler oluşturabilirsiniz. Örneğin, ADC ile sürekli veri okurken, DMA ile verileri hafızaya aktarabilir ve her yeni veri bloğu geldiğinde bir kesme ile işlem yapabilirsiniz. Bu sayede, hem hızlı veri transferi hem de hızlı işlem yapma imkanı elde edersiniz.

Kesme ve DMA’yı Birlikte Kullanırken Dikkat Edilmesi Gerekenler:

  • Kesme ve DMA Zamanlamasını Yönetme: Kesme ve DMA arasında zamanlama çatışmaları olabilir. DMA ile veri aktarımı bittiğinde bir kesme gerçekleşeceği için, kesme sırasında DMA işlemlerini engellemeyen bir yapı kurmak önemlidir.
  • Kesme İzinlerini Yönetme: DMA kesme işlemi sırasında, başka bir kesmenin engellenmemesi için doğru kesme izinlerini yönetmek gerekir. Örneğin, DMA kesmesinin aktif olduğu zamanlarda, düşük öncelikli kesmeleri geçici olarak devre dışı bırakmak verimliliği artırır.

Sonuç

Kesme ve DMA, STM32 mikrodenetleyicilerinin performansını önemli ölçüde artıran iki güçlü özelliktir. Doğru kullanıldığında, bu iki özellik, zaman ve kaynak verimliliğini optimize eder, CPU yükünü azaltır ve tepki sürelerini hızlandırır. STM32 HAL kütüphanesi, bu özellikleri kullanmayı kolaylaştırır, ancak yine de performans için dikkatli bir yapılandırma gereklidir. Bu yazıda verdiğimiz ipuçları, projelerinizde daha verimli ve hızlı sistemler kurmanıza yardımcı olacaktır.

Unutmayın, her zaman yazılımın yanı sıra donanımı da doğru şekilde yapılandırmak gerekir. Performans optimizasyonu, sistemin tüm bileşenlerinin uyumlu bir şekilde çalışmasıyla mümkündür.

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.

24 Şubat 2025 Pazartesi

Elektrikli Araçlarda BMS'lerin Functional Safety (ISO 26262) Perspektifinden İncelenmesi

Elektrikli araçlar, otomotiv endüstrisinin en hızlı gelişen alanlarından biridir. Bu araçların güvenliği ve performansı, sadece mekanik veya elektriksel bileşenlerle değil, aynı zamanda yazılım ve sistem entegrasyonuyla da doğrudan ilişkilidir. Özellikle Batarya Yönetim Sistemleri (BMS), elektrikli araçların kalbinde yer alan kritik bir bileşendir. Ancak bu kadar önemli bir sistemin güvenilir olması, yalnızca teknik özelliklerle sınırlı değildir. Functional Safety (İşlevsel Güvenlik) standartları, özellikle ISO 26262 çerçevesinde, BMS'lerin tasarımından uygulamasına kadar her aşamasında güvenlik odaklı bir yaklaşım benimsemeyi gerektirir.

Functional Safety Nedir?

Functional Safety, bir sistemin veya bileşenin, beklenmedik durumlar karşısında insan hayatını koruyacak şekilde tasarlanması ve çalıştırılması anlamına gelir. Otomotiv sektöründe, bu konsept ISO 26262 standardıyla formalize edilmiştir. ISO 26262, elektrikli ve elektronik sistemlerin tüm yaşam döngüsü boyunca güvenlik risklerini azaltmayı hedefler. Elektrikli araçlarda kullanılan BMS'ler de bu standardın kapsamındadır.

BMS ve Functional Safety İlişkisi

BMS, bir elektrikli aracın bataryasını izleyen, kontrol eden ve koruyan bir sistemdir. Ancak bu süreçte ortaya çıkabilecek hatalar, ciddi güvenlik risklerine yol açabilir. Örneğin, bir BMS'nin yanlış veri toplaması veya yanlış karar vermesi, bataryanın aşırı ısınmasına, yangına veya patlamasına neden olabilir. İşte burada Functional Safety devreye girer. ISO 26262, BMS'lerin tasarımında aşağıdaki prensipleri ön planda tutar:

  1. Risk Analizi ve Tehlike Değerlendirmesi (HARA):
    BMS'lerin geliştirilmesinin ilk adımı, potansiyel tehlikeleri belirlemek ve bu tehlikelerin sonuçlarını analiz etmektir. HARA (Hazard Analysis and Risk Assessment), BMS'nin ne tür hatalara maruz kalabileceği ve bu hataların yol açabileceği riskleri değerlendiren bir süreçtir. Örneğin, bir hücrenin aşırı şarj olması, araçta yangın riski oluşturabilir. Bu tür senaryolar, HARA ile tanımlanır ve gerekli önlemler alınır.
  2. ASIL Seviyeleri:
    ISO 26262, her bir sistemin veya bileşenin güvenlik seviyesini belirlemek için ASIL (Automotive Safety Integrity Level) kavramını kullanır. ASIL, A'dan D'ye kadar dört seviyeye ayrılır ve D en yüksek güvenlik seviyesini ifade eder. BMS'ler genellikle yüksek ASIL seviyelerinde (örneğin ASIL C veya D) değerlendirilir, çünkü bataryaların hataları ciddi güvenlik risklerine yol açabilir. Yüksek ASIL seviyeleri, daha sıkı testler, doğrulama ve onaylama süreçlerini gerektirir.
  3. Redundancy (Yedeklilik):
    BMS'lerde yedeklilik, bir bileşenin veya sistemin arızalanması durumunda alternatif bir yol sunarak işlevselliği sürdürmesini sağlar. Örneğin, bir sensörün verileri yanlışsa, BMS bu durumu algılayıp alternatif sensörlerden veya algoritmalarla tahmin edilen değerlerden faydalanabilir. Yedeklilik, özellikle yüksek ASIL seviyelerinde zorunlu bir gerekliliktir.
  4. Fail-Safe ve Fail-Operational Tasarım:
    BMS'ler, hata durumlarında "fail-safe" (güvenli şekilde kapanma) veya "fail-operational" (hata sonrası sınırlı işlevsellikle çalışmaya devam etme) modlarına geçebilmelidir. Örneğin, bir çarpışma durumunda BMS, bataryayı anında devre dışı bırakarak (fail-safe) yangın riskini azaltabilir. Alternatif olarak, küçük bir arıza durumunda BMS, kısıtlı kapasitede de olsa bataryayı yönetmeye devam edebilir (fail-operational).
  5. Doğrulama ve Onaylama (Verification & Validation):
    ISO 26262, BMS'lerin hem yazılım hem de donanım düzeyinde kapsamlı testlere tabi tutulmasını gerektirir. Doğrulama (verification), sistemin tasarımının doğru olduğunu kanıtlamayı; onaylama (validation), sistemin gerçek dünyada beklendiği gibi çalıştığını göstermeyi hedefler. BMS'ler için bu süreçler, simülasyonlar, laboratuvar testleri ve saha denemeleri gibi yöntemlerle gerçekleştirilir.

BMS Geliştirme Sürecinde Functional Safety Adımları

  1. Kavramsal Tasarım:
    İlk adım, BMS'nin ne tür işlevler gerçekleştireceğini ve bu işlevlerin güvenlik açısından ne anlama geldiğini belirlemektir. Bu aşamada, tehlike senaryoları ve ASIL seviyeleri tanımlanır.
  2. Sistem ve Yazılım Mimarisi:
    BMS'in mimarisi, güvenlik gereksinimlerini karşılayacak şekilde tasarlanır. Örneğin, yazılım kodlarının hata ayıklama yetenekleri ve donanımın yedeklilik özellikleri bu aşamada belirlenir.
  3. Test ve Simülasyon:
    BMS, hem normal koşullarda hem de hata senaryolarında test edilir. Simülasyonlar, bataryanın aşırı ısınma, aşırı şarj veya kısa devre gibi durumlarda nasıl tepki vereceğini gösterir.
  4. Üretim ve Bakım:
    Üretim sürecinde de güvenlik ön plandadır. Ayrıca, araç servislerinde BMS'in periyodik olarak kontrol edilmesi ve güncellenmesi, uzun vadeli güvenliği sağlar.

Gelecekteki Gelişmeler

ISO 26262, sürekli olarak güncellenen bir standarttır ve gelecekte BMS'ler için daha da kapsamlı güvenlik gereksinimleri getirebilir. Yapay zeka ve makine öğrenimi gibi teknolojiler, BMS'lerin hata tespit ve müdahale yeteneklerini artırabilir. Ayrıca, bataryaların geri dönüşüm süreçlerinde de Functional Safety perspektifi önem kazanabilir.

Sonuç

Elektrikli araçlar, sürdürülebilir ulaşımın geleceğini şekillendiriyor. Ancak bu araçların güvenliği, yalnızca güçlü motorlar veya aerodinamik tasarımlarla sağlanamaz. BMS'ler, elektrikli araçların kalbinde yer alan kritik bir bileşendir ve bu bileşenin güvenliği, ISO 26262 gibi standartlarla güvence altına alınmalıdır. Functional Safety, BMS'lerin yalnızca teknik özelliklerini değil, aynı zamanda insanların hayatını koruma potansiyelini de vurgular. Üniversite öğrencileri ve yeni mezunlar için, otomotiv sektöründe kariyer yapmayı düşünenler, Functional Safety ve BMS gibi temel konuları anlamak, bu alanda fark yaratmanın ilk adımı olacaktır.

BMS'ler, modern ulaşımın kalbinde atarken, Functional Safety ise bu kalbin düzenli ve güvenli bir şekilde atmasını sağlayan kilit bir unsurdur.


 

21 Şubat 2025 Cuma

BMS Nedir? (Battery Management System)

Elektrikli Araçlarda Batarya Yönetim Sistemleri: Temel Bilgiler

Elektrikli araçlar (EV) günümüzde sürdürülebilir ulaşımın en önemli parçalarından biri haline geldi. Fosil yakıtlara olan bağımlılığı azaltmak ve çevresel etkileri en aza indirmek amacıyla geliştirilen bu araçların kalbi, enerji depolama sistemleridir. Bu sistemlerin merkezinde ise bataryalar yer alır. Ancak bir elektrikli aracın performansını, güvenliğini ve ömrünü belirleyen tek şey bataryanın kendisi değildir. Asıl kilit rolü oynayan, Batarya Yönetim Sistemi (BMS) adı verilen teknolojiktir.

Batarya Yönetim Sistemi Nedir?

Basitçe ifade edecek olursak, Batarya Yönetim Sistemi (BMS), bir elektrikli aracın bataryasını izleyen, kontrol eden ve koruyan bir yazılım-donanım kombinasyonudur. BMS, bataryanın her bir hücresini sürekli olarak izler ve onun sağlıklı bir şekilde çalışmasını sağlar. Elektrikli araçlarda genellikle lityum-iyon bataryalar kullanılır ve bu tür bataryalar hassas bileşenlerdir. Lityum-iyon bataryalar aşırı ısınma, aşırı şarj veya düşük şarj gibi durumlarda zarar görebilir ya da tehlikeli olabilir. İşte burada devreye BMS girer.

BMS'in Temel Görevleri

  1. Gerilim İzleme:
    Bir elektrikli aracın bataryası genellikle yüzlerce hücreden oluşur. Her bir hücrenin gerilimi, bataryanın toplam performansını etkileyebilir. BMS, her bir hücrenin gerilimini sürekli izler ve dengesizlikler olduğunda müdahale eder. Örneğin, bazı hücreler fazla şarj olmuşsa, BMS bu hücrelerin şarjını düşürerek tüm bataryayı dengeler.
  2. Sıcaklık Kontrolü:
    Aşırı sıcaklık, bataryalar için büyük bir tehdittir. Lityum-iyon bataryalar genellikle 15°C ile 45°C arasında en iyi performans gösterir. BMS, bataryanın sıcaklığını sürekli ölçer ve gerekirse soğutma sistemini aktive eder. Ayrıca, bataryanın soğuk ortamlarda çalışmasını sağlamak için ısıtma sistemlerini de yönetebilir.
  3. Şarj ve Deşarj Yönetimi:
    BMS, bataryanın ne kadar şarj olduğunu ve ne kadar enerji harcadığını takip eder. Bu sayede, bataryanın aşırı şarj olmasını veya tamamen boşalmasını engeller. Özellikle aşırı şarj, bataryanın ömrünü kısaltabilir ve güvenlik riski oluşturabilir. BMS, şarj sırasında uygun akım ve gerilim değerlerini ayarlayarak bataryanın uzun ömürlü olmasını sağlar.
  4. Güvenlik ve Koruma:
    Elektrikli araçlarda güvenlik her zaman ön plandadır. BMS, bataryanın kısa devre yapmasını, aşırı akım çekmesini veya fiziksel hasar görmesini engellemek için çeşitli koruma mekanizmaları içerir. Örneğin, bir çarpışma durumunda BMS, bataryayı anında devre dışı bırakarak yangın riskini azaltabilir.
  5. Veri Kaydı ve İletişim:
    Modern BMS'ler, bataryanın durumuyla ilgili verileri kaydeder ve bu verileri aracın ana bilgisayar sistemine iletir. Böylece sürücüler, aracın ne kadar şarj kaldığını, tahmini menzili ve bataryanın genel sağlık durumunu görebilir. Ayrıca, bu veriler servislerde bakım ve onarım işlemleri için de kullanılır.

Neden BMS Kritik Öneme Sahiptir?

BMS olmadan bir elektrikli aracın güvenli ve verimli bir şekilde çalışması mümkün değildir. Bataryalar, hem pahalı hem de karmaşık bileşenlerdir. Yanlış kullanıldıklarında hem araç sahiplerine maliyet çıkarabilir hem de ciddi güvenlik riskleri yaratabilir. BMS sayesinde:

  • Bataryanın ömrü uzar.
  • Aracın performansı optimize edilir.
  • Güvenlik riskleri minimize edilir.
  • Sürüş deneyimi daha sorunsuz hale gelir.

Gelecekteki Gelişmeler

Teknoloji hızla ilerledikçe BMS'ler de daha akıllı hale geliyor. Yapay zeka ve makine öğrenimi gibi teknolojiler, BMS'lerin bataryaların davranışlarını daha iyi tahmin etmesini sağlıyor. Bu sayede, bataryaların ömrü daha da uzatılabilecek ve elektrikli araçların menzilleri artırılabilecek. Ayrıca, gelecekteki BMS'ler, bataryaların yeniden kullanılabilirliğini ve geri dönüşüm süreçlerini de optimize edebilir.

Sonuç

Elektrikli araçlar, modern ulaşımın geleceği için umut vaat ediyor. Ancak bu araçların başarılı olması, yalnızca güçlü motorlar veya aerodinamik tasarımlarla mümkün değil. Bataryaların sağlığı ve performansı, elektrikli araçların kalbinde atar. Batarya Yönetim Sistemleri (BMS), bu kalbin düzenli atmasını sağlayan kilit bir teknolojidir. Üniversite öğrencileri ve yeni mezunlar için, elektrikli araç endüstrisinde kariyer yapmayı düşünenler, BMS gibi temel bileşenleri anlamak, bu alanda fark yaratmanın ilk adımı olacaktır.

Elektrikli araçlar dünyasına adım atmak isteyen herkes için, BMS sadece bir teknoloji değil, aynı zamanda sürdürülebilirliğin ve yenilikçiliğin sembolüdür.

 

5 Ocak 2025 Pazar

STM32 Mikrodenetleyicilerde HR Timer Kullanımı ve Avantajları #STM32Tips

STM32 mikrodenetleyiciler, geniş özellik yelpazesiyle hem basit uygulamalar hem de endüstriyel seviyede karmaşık projeler için ideal çözümler sunar. Bu özellikler arasında yer alan HR (High-Resolution) Timerlar, özellikle yüksek hassasiyet gerektiren uygulamalarda öne çıkar. Bu yazıda, HR timerların işlevleri, avantajları ve kullanım alanları hakkında bilgi edineceksiniz.

HR Timer Nedir?

HR timer, geleneksel timer birimlerine kıyasla çok daha yüksek çözünürlükte zamanlama ve sinyal oluşturma yeteneği sunan bir bileşendir. Standart timerlar genellikle mikrodenetleyicinin saat frekansı ile sınırlıyken, HR timerlar ek interpolasyon teknikleri kullanarak daha hassas kontrol sağlar.

HR Timerların Özellikleri

  • Yüksek çözünürlük: Nano saniye seviyesinde hassas PWM (Pulse Width Modulation) çıkışı.
  • Esnek PWM yapılandırması: Çeşitli sinyal frekanslarında ve genişliklerinde hassas sinyal üretimi.
  • Senkronizasyon yetenekleri: Birden fazla timer birimi ile senkronize çalışarak karmaşık kontrol döngüleri oluşturma.
  • Geniş uygulama desteği: Motor kontrolü, güç elektroniği ve hassas veri toplama sistemlerinde kullanıma uygun.

Kullanım Alanları

  1. Motor Kontrolü: FOC (Field Oriented Control) algoritmaları gibi hassas kontrol tekniklerinde HR timerlar kritik bir rol oynar.
  2. Güç Elektroniği: Anahtarlamalı güç kaynaklarında veya inverter tasarımlarında hassas zamanlama sağlanır.
  3. Hassas Sensör Kontrolü: Lidar ve benzeri uygulamalarda yüksek çözünürlüklü zamanlama gereksinimleri karşılanır.
  4. Ses İşleme ve Modülasyon: Audio DAC kontrolü ve yüksek kaliteli modülasyon işlemlerinde kullanılır.

STM32 Ailesinde HR Timerlar

HR timerlar genellikle STM32'nin STM32G4 ve STM32H7 serisi gibi performans odaklı modellerinde bulunur. Bu serilerdeki HR timerlar, mikrodenetleyicilerin DSP ve motor kontrol özellikleriyle entegre çalışarak yüksek hassasiyetli uygulamalara imkan tanır.

HR Timer Kullanımı

HR timerları kullanmak için STM32CubeIDE gibi geliştirme araçları tercih edilir. STM32CubeMX yardımıyla timer yapılandırması yapılabilir. Örneğin:

  • PWM modunun seçimi.
  • Timer frekansı ve periyodunun ayarlanması.
  • HR timer interpolasyon modunun aktif edilmesi.

Sonuç

STM32 mikrodenetleyicilerde HR timerlar, hassasiyetin ön planda olduğu projelerde önemli avantajlar sunar. Motor kontrolünden güç elektroniğine kadar geniş bir uygulama yelpazesinde kullanılabilen bu timerlar, tasarımcılara zamanlama ve sinyal oluşturma konusunda büyük esneklik sağlar.

13 Aralık 2024 Cuma

Transistörlü Röle Sürme Devresinde Diyot Kullanımının Önemi

Transistörlü Röle Sürme Devresinde Diyot Kullanımının Önemi

Elektronik devrelerde diyotların farklı görevleri bulunur. Bu yazıda, bir transistör aracılığıyla sürülen bir röle devresindeki diyotun neden kritik bir bileşen olduğunu inceleyeceğiz.

Devre Tasarımına Genel Bakış

Görseldeki devre, bir transistörün yardımıyla bir rölenin kontrol edilmesini sağlamaktadır. Devredeki temel bileşenler şunlardır:

Transistör: Giriş sinyaline göre iletime geçerek rölenin enerjilenmesini sağlar.

Röle: Bobini üzerinden akım geçtiğinde elektromanyetik alan oluşturarak mekanik anahtarının konumunu değiştirir.

Diyot: Röle bobini ile paralel bağlanmış olan bu diyot, devrede bir nevi koruma görevi üretir.

Diyelim ki giriş sinyali transistörü iletime soktu ve rölenin bobini üzerinden akım akmaya başladı. Bu durumda röle mekanik anahtarını kapatır ve bağlı bulunduğu yüklenin çalışmasını sağlar. Ancak, transistör kesime geçip akım akışı aniden kesildiğinde diyotun önemi ortaya çıkar.

Diyotun Koruma Mekanizması

Bir röle bobini, elektromanyetik indürens temelinde çalışr. Bobin üzerinden geçen akım kesildiğinde, bu akımın hızla sona ermesi bobin içerisinde bir öz indürens voltajı oluşturur. Bu voltaj genellikle çok yüksek olabilir (yüzlerce volt seviyesine ulaşabilir) ve devrenin diğer bileşenlerine zarar verebilir.

Diyot, bu noktada koruyucu bir unsur olarak devreye girer. Diyotun röle bobinine paralel bağlı olması, öz indürens sonucu oluşan bu ters yönlü voltajı şu sekilde bastırır:

  • Röle bobini akımını kesmeye çalıştığında, bobin uçlarında yüksek bir gerilim oluşur.
  • Diyot, ters gerilimi kendi üzerinden ileterek bobinde oluşan enerjiyi çözer.
  • Bu sayede transistör, yüksek voltaj seviyesine (spike) maruz kalmaz ve zarar görmekten korunur.

Diyot Olmasaydı Ne Olurdu?

Diyotun bulunmadığı durumlarda, bobin içerisinde oluşan öz indürens voltajı transistörün bacaklarına zarar verebilir. Bu, transistörün yanmasına ya da kalıcı hasarlara yol açabilir. Ayrıca devrenin genel çalışma kararlılığı ciddi anlamda bozulabilir.

Zener Diyotun Rolü

Bu devrede ayrıca bir zener diyot kullanılmış. Zener diyot, belirli bir eşik voltajı aştığında iletime geçerek gerilimi sınırlar. Röle bobini üzerinde oluşan gerilimı kontrol altında tutarak devrede ekstra bir koruma katmanı sağlar.

Sonuç

Diyotlar, basit görünüşlerine rağmen elektronik devrelerde çok kritik bir rol oynar. Görseldeki devrede kullanılan diyot, transistörü ve diğer bileşenleri koruyarak devrenin uzun ömürlü ve güvenilir olmasını sağlar. Bu tür koruma önlemleri, özellikle elektromekanik bileşenlerle çalışan devrelerde vazgeçilmezdir.

Kaynaklar:

  1. https://www.learningaboutelectronics.com/Articles/Relay-driver-circuit.php

25 Ağustos 2024 Pazar

STM32 HAL Kütüphanesinde Başlangıçtan Sonra IO Pinin Yönünü/Direction Değiştirme #STM32Tips

STM32 HAL kütüphanesinde, başlangıç sonrasında bir GPIO pininin yönünü kolayca değiştirebilecek bir fonksiyon doğrudan sağlanmamaktadır. Bu eksiklik, kullanıcıların kendi özel fonksiyonlarını geliştirmelerini gerektirmektedir. Bu bağlamda, GPIO pinlerinin yönünü dinamik olarak değiştirebilmek için aşağıda yer alan örnek fonksiyonu kullanabilirsiniz.

Fonksiyon içerisinde görebileceğiniz gibi pull up/pull down ve bir kaç diğer parametre şu an parametrik değildir. Eğer ihtiyaç duyarsanız onu da parametrik hale getirebilirsiniz.


31 Mayıs 2024 Cuma

Diyot Tipleri, Kullanım Alanları

Bu yazıda diyot tipleri ve ana kullanım alanları listelenmiştir.

  • P-N Junction-General Purpose Diode: Akımın tek yönde iletilmesini sağlar. İletim yönünde üzerine ~0.7V gerilim düşer. Genellikle doğrultucu olarak kullanılır. Aynı zamanda devre güç girişlerinde ters kutuplamadan/polariteden korunmak için de kullanılır.


  • Schottky Diode: Genel kullanım diyot ile benzer özelliklerdedir. Farklı kılan kısmı İletim yönünde üzerine daha düşük gerilim düşer. Bu sayede yüksek hızlı anahtarlama devrelerinde hızlı geri toparlama özelliği sayesinde sıklıkla kullanılır. Bu uygulamalarda üzerinde harcanan güç daha düşük olduğu için verimi daha yüksektir.

  • Zener Diyot: Belirli bir ters gerilimde iletime geçer ve gerilimi sabitlemeye yarar. Bu özelliği sayesinde gerilim regülatör devrelerinde, referans gerilim üreteçlerinde ve aşırı gerilim koruma devrelerinde kullanılır.

  • Transient Voltage Suppression Diode (TVS): Ani ve yüksek gerilim yükselmelerine karşı koruma sağlar. Elektronik cihazları yıldırım düşmesi, elektrostatik deşarj veya endüktif yüklerin sebep olduğu ani gerilim yükselmelerinden korur.


  • Light-Emitting Diode (LED): İleri yönde akım geçtiğinde ışık yayan yarı iletken diyottur. Farklı yarı iletken malzemeler kullanılarak farklı dalga boylarında (renklerde) ışık üretebilir. Aydınlatma, gösterge, sinyalizasyon ve haberleşme gibi birçok alanda kullanılır.


  • Fotodiyot: Üzerine düşen ışık miktarına bağlı olarak akım üreten diyottur. Işığı elektrik sinyaline dönüştürdüğü için ışık sensörleri, otomatik aydınlatma sistemleri, kamera pozometreleri ve tıbbi görüntüleme cihazlarında kullanılır.


  • Varaktör Diyot (Varikap): Uygulanan ters gerilime bağlı olarak kapasitans değeri değişen diyottur. Bu özelliği sayesinde radyo ve televizyon alıcılarında frekans ayarlama, osilatör devrelerinde frekans kontrolü ve parametrik yükselteçlerde kullanılır.


  • Tünel Diyot: Kuantum tünelleme etkisiyle çalışan özel bir diyot türüdür. Çok hızlı anahtarlama özelliği sayesinde yüksek frekanslı osilatör ve yükselteç devrelerinde kullanılır.


  • Lazer Diyot: Uyarılmış ışık emisyonu ile ışık üreten özel bir diyot türüdür. Ürettiği ışık, tek renkli, tutarlı ve yönlüdür. Optik fiber iletişim sistemleri, barkod okuyucular, lazer yazıcılar, lazer işaretleyiciler ve tıp alanında kullanılır.



Kaynaklar

  • https://www.globalspec.com/learnmore/semiconductors/discrete/diodes/general_purpose_diodes
  • https://www.build-electronic-circuits.com/schottky-diode/
  • https://www.build-electronic-circuits.com/zener-diode/
  • https://uk.rs-online.com/web/content/discovery/ideas-and-advice/tvs-diodes-guide
  • https://www.electrical4u.com/led-or-light-emitting-diode/
  • https://elektrikbilim.com/1009-fotodiyotlar.html
  • https://diyot.net/diyot-cesitleri-1/
  • https://www.derstagram.com/tunnel-diyot-nedir-nasil-calisir/
  • https://tekfaz.com/lazer-diyot-nedir-yapisi-ve-calisma-prensibi.html

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

6 Mart 2024 Çarşamba

POWERB Alkaline LR03 AAA 1.5 Volt Pil Değerlendirmesi @250mA

Bu yazıda testimizi 250 mA seviyesinde gerçekleştirdik. 250 mA sabit akımda voltaj grafiği 800 mV'u yaklaşık 2,4 saatte kesiyor. Bu durumda POWERB Alkaline LR03 AAA pilin kapasitesi 2,4 h*250 mA hesabından 600 mAh olarak bulunur.

Test düzeneği ve ölçüm ile ilgili konulara buradaki yazıdan ulaşabilirsiniz.









Label order: Row ID | Time Stamp (Millisecond) | Voltage (mV) | Current (mA) | Set Current (mA)

Veri seti

Pil Kıyaslama Yazıları

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

Duracell Alkaline LR14 1.5 Volt Pil Değerlendirmesi @250mA

Bu yazıda testimizi 250 mA seviyesinde gerçekleştirdik. 250 mA sabit akımda voltaj grafiği 800 mV'u yaklaşık 19,8 saatte kesiyor. Bu durumda Duracell Alkaline LR14 pilin kapasitesi 19,8 h*250 mA hesabından 4950 mAh olarak bulunur.

Test düzeneği ve ölçüm ile ilgili konulara buradaki yazıdan ulaşabilirsiniz.









Label order: Row ID | Time Stamp (Millisecond) | Voltage (mV) | Current (mA) | Set Current (mA)

Veri seti

Pil Kıyaslama Yazıları

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

20 Şubat 2024 Salı

Panasonic General Purpose Zinc Carbon R6BE AA 1.5 Volt Pil Değerlendirmesi @250mA

Bu yazıda testimizi 250 mA seviyesinde gerçekleştirdik. 250 mA sabit akımda voltaj grafiği 800 mV'u yaklaşık 1,4 saatte kesiyor. Bu durumda Panasonic General Purpose Zinc Carbon R6BE AA pilin kapasitesi 1,4 h*250 mA hesabından 350 mAh olarak bulunur.

Test düzeneği ve ölçüm ile ilgili konulara buradaki yazıdan ulaşabilirsiniz.







Label order: Row ID | Time Stamp (Millisecond) | Voltage (mV) | Current (mA) | Set Current (mA)

Veri seti

Pil Kıyaslama Yazıları


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)

3 Ocak 2024 Çarşamba

Panasonic Alkaline Power LR6 AA 1.5 Volt Pil Değerlendirmesi @500mA

Bu yazıda testimizi 500 mA seviyesinde gerçekleştirdik. 250 mA standardına göre yapılmadığı için katalog değeri olan kapasite değeri değildir ancak 500 mA sabit akımda Panasonic Alkaline Power LR6 AA pilin kapasitesi 1050 mAh'dir. 250 mA için daha yüksek olması gerekmektedir. İlgili grafikler ve veri setleri aşağıdadır.

Test düzeneği ve ölçüm ile ilgili konulara buradaki yazıdan ulaşabilirsiniz.




Label order: Row ID | Time Stamp (Millisecond) | Voltage (mV) | Current (mA) | Set Current (mA)

Veri seti

Pil Kıyaslama Yazıları



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ı ...