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

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




23 Aralık 2023 Cumartesi

CAN Bus Temelleri ve Bir Mesajının Yapısı

CAN (Controller Area Network) Bus Robert Bosch GmbH tarafından oluşturulmuştur. 1986'da RB GmbH tarafından SAE'de yayınlanmıştır. Takip eden yıllarda CAN Bus'ın farklı versiyonları yayınlanmıştır ve ISO tarafından standardize edilmiştir. CAN Bus günümüzde içten yanmalı ve elektrikli bir çok araç tipinde aktif olarak kullanılan ve temel kontrol yetenekleri dolayısı ile sıklıkla tercih edilen bir haberleşme protokolüdür.

CAN Bus, mesaj tabanlı bir haberleşme protokolüdür. Hat üzerinde bulunan bütün noktalar hatta veri basabilir ve veriyi okuyabilir. Fiziksel olarak CANH, CANL şeklinde isimlendirilen iki fiziksel hat üzerinden iletilir. Fiziksel hat üzerinde bulunan voltaj farkı üzerinden çalışır.

CAN Bus ile haberleşen bir ağın fiziksel bağlantısı aşağıdaki gibidir. Bir hat boyunca bir çok sistem bağlanabilir. Her bir sistem ağa mesaj gönderebilir ve okuyabilir.

CAN Bus'a bağlantı için transreceiver yapılarına ihtiyaç duyulur. Mikrodenetleyiciler ile CANH, CANL hatları arasında aşağıdaki gibi transreceiver yapıları kullanılır. Mikrodenetleyiciler tarafında Rx, Tx hatları ile iletişim kurulur.

Aşağıda verilen görselde CANH, CANL hatlarındaki değişim ve bu değişimin CAN Rx ucundaki karşılığını gözlemleyebilirsiniz. CANH, CANL aynı seviyede iken CAN Rx 1'dir. Aksi durumda CAN Rx 0 olur. 0 değeri CAN Bus için baskın bit olarak ifade edilir.

Bir önceki görsel üzerinden CAN Bus mesajını inceleyecek olursak;

  • Start of frame: Bir CAN Bus mesajı 0 biti ile başlar.
  • ID-Arbitration: Takip eden bitler mesaj ID sini ifade eder. Mesaj ID'si aynı zamanda paketin önceliğini de ifade eder. Örneğin aynı anda iki sistem hatta veri basmak isterse CAN Bus'ın önceliklendirme yapısına göre değerlendirilir. Çok basitçe ifade etmek gerekirse Veri gönderimi başladığı anda bir mesajın ID'si ne kadar 0 ile başlarsa o kadar baskındır. Görseldeki sıraya göre "00001xx" ve "00100xx" başlayan iki mesaj paketi gelirken birinci paket önceliklendirilir ve ikinci paketi gönderen sistem gönderimi durdurur.
  • RTR: Remote transmission request olarak geçer. Bir mesaj paketini başka bir sistemden talep etmek için kullanılır.
  • Control: Bu kısımda mesaj ile ilgili ek bilgiler yer alır.
    • IDE: ID Extend olarak geçer. 1 olması durumunda 18 bitlik daha ID kısmı aktif olur. Mesaj paketi toplamda 29 bitle ifade edilir.
    • DLC: Data length code olarak geçer. Mesaj paketinin kaç byte olduğunu ifade eder.
  • Data: Veri aktarma kısmıdır. Kullanıcının iletmek istediği veri tam olarak buradadır.
  • CRC: Veri paketinin doğruluğunu teyit etmek için kullanılır.
  • ACK: Gönderilen paketin en azından bir sistem tarafından alındığını ifade eder. Bu kısım Herhangi bir alıcı sistem üzerinden sürülür. Eğer CAN Bus üzerinde başka bir sistem yoksa bu bit 0 olmaz ve gönderici mesajın iletilemediğini anlar.
  • End of frame: Mesaj paketi sonunda 7 bit 1 gönderilir.

.

20 Nisan 2023 Perşembe

Otomotivde Pasif ve Aktif Emniyet Kavramları (Active Safety/Passive Safety)

Otomotiv sektörü, araçların güvenliği ve emniyeti için sürekli olarak çalışmaktadır. Bu çalışmalar sonucunda otomotiv sektöründe Pasif ve Aktif Emniyet kavramları ortaya çıkmıştır.

Pasif Emniyet, araç kazası durumunda oluşabilecek zararları en aza indirmeyi amaçlayan bir sistemdir. Aktif Emniyet ise, araç kazasını önlemeyi amaçlayan bir sistemdir.

Pasif Emniyet Sistemleri, araç kazası durumunda yolcuların zarar görme riskini en aza indirmek için tasarlanmıştır. Bu sistemler, araç içi ve dışı güvenlik sistemlerini içerir. Örneğin, araç içi emniyet sistemleri arasında; kemerler, hava yastıkları, koltuk başlıkları, koltuk kemeri hatırlatıcıları, çocuk koltukları ve emniyet kafesleri gibi sistemler bulunur. Araç dışı emniyet sistemleri arasında ise; çarpışma anında aracın enerjisini emen ve yavaşlatan kasa yapısı, kaporta ve önemli parçaların çarpışma sonrası deformasyonu sonucunda yolcuların zarar görmesini önleyen sistemler yer alır.

Aktif Emniyet Sistemleri, araç sürüşü esnasında kazaları önlemek için tasarlanmıştır. Bu sistemler arasında, ABS (Anti-Blokaj Fren Sistemi), ESP (Elektronik Stabilite Programı), akıllı hız kontrolü, şerit takip sistemi, park asistanı ve uzaktan kumandalı acil durum freni gibi sistemler bulunur.

Günümüzde, otomotiv sektörü sürekli olarak Pasif ve Aktif Emniyet sistemlerini geliştirmektedir. Bu sistemler, araçların güvenliği ve emniyeti için çok önemlidir.



3 Ağustos 2022 Çarşamba

Otomotivde ECU Nedir?

Electronic Control Unit/Elektronik Kontrol Ünitesi (ECU) araçlar üzerindeki çeşitli görevleri/fonksiyonları gerçekleştirmek üzere geliştirilmiş sistemlerdir. ECU genel bir isimlendirmedir. VCU, BMS, BCM gibi ünitelerin elektronik kontrol birimleri de ECU olarak anılır.

Araç üzerindeki ECU'lar görevlerine göre farklı tip, özellik ve boyutlarda olabilir. Örneğin bir VCU genel olarak yatay ve ince bir metal yuvaya sığarken, EDS/MCU/Inverter gibi güç süren sistemler daha hacimli ve geniş soğutucu bloklu yuvalara ihtiyaç duyar.

Örnek Bir VCU Görseli


Örnek Bir EDS/MCU/Inverter Görseli


Günümüzde araçlar 100 civarında farklı ECU içerebilir. Örneğin 4 kapı camı elektrikli bir araçta sadece bu camların aç/kapa fonksiyonundan sorumlu 4 farklı motor ve bu motorları süren ECU'lar vardır. Bu ECU'lar tek bir ana fonksiyonu (cam aç/kapat) gerçekleştirse bile araç networkü ile haberleşen akıllı sistemlerdir. Araç networkü üzerinde bir fonksiyon bir veya birden fazla elemanın entegrasyonu ile gerçekleşebilir. İlgili sistemler her zaman birbiri ile konuşarak senkron bir şekilde çalışacak topolojide tasarlanır.

Her ECU genel olarak kendisinden sorumlu bir işlemci barındırır. Bu işlemciler çoğunlukla otomotiv sektörü için özelleşmiş, kendi üzerinde 12 V regülatörü, haberleşme alıcı/vericileri gibi önemli yapıları entegre edilmiş bir şekilde barındırırlar. Böylece birim maliyet, yer kaplama, hata yapma gibi konularda avantaj sağlanır.

Referanslar:

  1.  https://www.aptiv.com/en/insights/article/what-is-an-electronic-control-unit
  2. https://www.bosch-mobility-solutions.com/en/solutions/vehicle-computer/vehicle-control-unit/
  3. https://automotivepowertraintechnologyinternational.com/news/electric-powertrain-technologies/mclaren-applied-targets-automotive-with-800v-sic-inverter.html



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