Haberler

Gömülü Sistemler ve Gömülü Bilgisayarlar Hakkında Her Şey: İhtiyacınız Olacak Kullanışlı Bir Kılavuz

Gömülü sistemlere yeni başlıyorsanız, muhtemelen birçok terim, bileşen ve işlevle ilgili kafanız karışmış durumda. Bu nedenle, her şeyi daha iyi anlamanızı sağlamak için, umarız bu bilgi notunu oluşturduk!

Gömülü Sistemler ve Gömülü Bilgisayarlar Hakkında: İhtiyacınız Olan Kullanışlı Bilgi Notu

Elbette, her şeyde olduğu gibi, daha karmaşık bölümlere geçmeden önce temel kavramlarla başlayalım.

Gömülü Sistemler Nedir?

Ref: Wikipedia

Gömülü sistem, sadece bir sistemi ifade etmez, aynı zamanda onu programlamanızı sağlayan hem donanım hem de yazılım kombinasyonudur. Bu nedenle, daha büyük bir sistem içinde belirli bir işlev veya işlevler için kullanılabilir. Raspberry Pi ve Arduino gibi bazı popüler örnekler bulunmaktadır.

Daha önce belirtildiği gibi, gömülü sistem bir donanım ve yazılım kombinasyonudur. Bu nedenle, bunlarla ilgili her şeyi sonraki bölümde ele alacağız. Ama önce, bir gömülü sistemin yapısına ve temel bileşenlerine bakalım:

Gömülü Sistemlerde Temel Bileşenler

  • Güç Kaynağı: Güç olmadan hiçbir sistemin çalışamayacağı aşikardır.
  • İşlemci: Gömülü sistemin performansını belirleyen faktördür, 8-bitten 32-bite kadar değişir.
  • Hafıza: Salt okunur bellek (ROM) ve Rastgele Erişimli Bellek (RAM) içerir.
  • Zamanlayıcı: Tüm zamanlama ve sayma işlevlerini sağlar, bu işlevleri değiştirmek için programlama yapılabilir.
  • İletişim Portları: Sistemin diğer gömülü sistemlerle iletişim kurmasını sağlayan arayüzdür, örneğin UART, USB, Ethernet vb.
  • Giriş ve Çıkış (I/O): Klavye, fare ve anahtarlar gibi çeşitli cihazları sürmek/arayüz oluşturmak için kullanılır.

Portlar hakkında daha fazla bilgi edinmek isterseniz, bu kılavuza göz atın! Bilgisayar Portları: Türler, İşlevler ve Karşılaştırma

Gömülü Sistem Mimarisi

Ref: Tutorial and example

Yukarıda gömülü sistemin temel yapısı yer almakta, ana bileşenler aşağıdaki gibidir:

  • Sensor: Fiziksel bir miktarı ölçer ve elektrik sinyaline dönüştürür, ardından bunu hafızada saklar.
  • Analogdan Dijitale Dönüştürücü (ADC): Sensör tarafından gönderilen analog sinyali dijital sinyale dönüştürür.
  • İşlemci & ASIC: Verileri değerlendirir, çıktıyı ölçer ve ardından hafızada saklar.
  • Dijitaldan Analoğa Dönüştürücü (DAC): İşlemci tarafından verilen dijital verileri analog verilere dönüştürür.
  • Aktüatör: DAC tarafından verilen çıktıyı gerçek çıktıyla karşılaştırır ve ardından tam çıktıyı girer.

Gömülü Sistem Türleri

Ref: guru99

Üç ana gömülü sistem türü vardır:

  • Küçük ölçekli: 8 veya 16 bit mikrodenetleyici ile tasarlanmış, pil ile çalışabilen sistemlerdir.
  • Orta ölçekli: 16 veya 32 bit mikrodenetleyicilerle tasarlanmış, yazılım ve donanım karmaşıklıkları sunar. Geliştirme için C veya Java vb. kullanılır.
  • Gelişmiş: Genellikle birçok yazılım ve donanım karmaşıklığına sahiptir, bu nedenle işlemciler gerektirir. Diğer bileşenler veya yazılım ve donanım, geliştirme sürecinin sonraki aşamalarında birleştirilebilir.

Gömülü Sistem Donanımı

  • Mikroişlemci
  • Mikrodenetleyici
  • Alan Programlanabilir Kapı Dizisi

Mikroişlemci

Bir mikroişlemci veya mikroişlem birimi (MPU), bir tek çipli yarı iletken olup, bir CPU işlevini içerir. 64-bit mikroişlemci ayrıca Hızlandırılmış İşlem Birimi (APU) olarak da adlandırılır ve CPU ile GPU’yu birleştirir.

Ref: Wikipedia

Ana Bileşenler:

Ref: BCA Study
  • ALU (Aritmetik ve Mantıksal Birim): Giriş cihazından veya hafızadan alınan veriler üzerinde aritmetik ve mantıksal işlemler gerçekleştirir.
  • Kayıtlar: Harflerle tanımlanan kayıtlar ve toplayıcı içerir.
  • Kontrol: Cihaz içindeki talimatları ve veri akışını kontrol eder.

Mikrodenetleyici

Bir mikrodenetleyici (MCU), belirli bir görevi yerine getirmek için tasarlanmış bir tek entegre devre (IC) dir. Bazen daha yüksek kaliteli MCU’larda, bunun yerine bir Sistem Üzerinde Çip (SoC) kullanılır.

Ref: x-engineer

Ana bileşenler:

  • CPU (Merkezi İşlem Birimi): Aritmetik Mantık Birimi (ALU) ve Kontrol Birimi (CU) içerir.
  • Hafıza: Salt okunur bellek (ROM) ve Rastgele Erişimli Bellek (RAM) içerir.
  • I/O Portları: Klavye, fare ve anahtarlar gibi çeşitli cihazları sürmek/arayüz oluşturmak için kullanılır.

Alan Programlanabilir Kapı Dizisi

Alan Programlanabilir Kapı Dizisi veya daha iyi bilinen adıyla FPGA, uygulama spesifik yarı iletken cihazlardır ve farklı kullanımlar için yeniden programlanması gerekir, programlanabilir mantık bileşenleri ve bağlantılar içerir. Temelde, Uygulamaya Özel Entegre Devrelerin (ASIC) prototip versiyonlarıdır, ancak daha ucuz ve daha esnektir.

Ref:Wikipedia

Ana bileşenler:

  • Yapılandırılabilir Mantık Blokları (CLB): Transistör çiftleri gibi birçok diğer bileşenden oluşan mantık fonksiyonlarını uygular.
  • Programlanabilir Bağlantılar: CLB’ler için yönlendirme uygular, çünkü çok fazla kablolama vardır.
  • Programlanabilir G/Ç Blokları: Harici bileşenlerle bağlantı sağlar, temelde bir giriş-çıkıştır.

Gömülü Sistem Yazılımı

Donanımdan bahsetmişken, gömülü bir sistemde yazılım kısmını kesinlikle atlayamayız! Yazılımınızı oluşturmak için gereken temel bileşenlere bakalım:

  • Gömülü İşletim Sistemi (OS)
  • Programlama Dilleri
  • Yazılım Geliştirme Araçları

Gömülü İşletim Sistemi

Her gömülü sistemin kesinlikle bir işletim sistemi olacaktır. Donanım ile son kullanıcı arasında bir arayüz görevi gören önemli bir sistem yazılımıdır. Ancak gömülü işletim sistemi belirli bir amaç için tasarlanmıştır. ThreadX ve IOS gibi birkaç örnek bulunmaktadır.

Ref: Wikipedia

Kernel Nedir?

Kernel’in tek ve yegane görevi, donanım ile yazılım arasında köprü olmaktır; bu da iletişimi mümkün kılar. Ayrıca bir işletim sisteminin temel bileşenidir.

Ref: guru99

Programlama Dilleri

Programlama dilleri, programcıların gömülü sisteme talimat vermesine olanak tanır. Gömülü sistemin anladığı dil ‘ikili’ olarak da bilinirken, programlama dilini ikiliye çevirme işlemine ‘derleme’ denir. C, C++ ve Python gibi birkaç yaygın dil bulunmaktadır.

‘Merhaba, dünya!’ diyen C programlama kodunun iskeleti şu şekilde görünür:

#include 
int main()
{
printf("Hello, World!");
return 0;
}

C ve C++ en popüler dillerden bazıları olduğundan, kullanabileceğiniz bazı temel kodlar burada:

Ref: Pinterest

Yazılım Geliştirme Araçları

Bir işletim sistemi ve programlama dili seçtikten sonra, kodunuzu yazmak için bazı araçlar kullanmanız gerekecek! İşte karşılaşacağınız veya ihtiyaç duyacağınız bireysel araçlar:

  • Montajcı (asm): Yazılan kodu ikiliye çeviren bir program.
  • Derleyici: Yüksek seviyeli programlama kodunu, makinenin anlayabileceği düşük seviyeli programlama koduna çeviren bir program.
  • Hata Ayıklayıcı: Hataları test etmek ve ortadan kaldırmak için kullanılan bir program; programcıların sorunu tespit edip çözmesine olanak tanır.
  • Metin Düzenleyici: C ve C++’ta kaynak kodu yazmak için kullanılır ve bunu bir metin dosyasına kaydeder.
  • Emülatör: Programcıların bir sistemi simüle etmesine ve kodun gerçek zamanlı bir ortamda nasıl çalışacağını görmesine olanak tanır.
  • Bağlayıcı: Adından da anlaşılacağı gibi, kodları ve modülleri bir araya getirip bir program oluşturur.

Entegre Geliştirme Ortamı (IDE)

IDE’yi duymuş olabilirsiniz, çünkü bu, programcıların yazılım geliştirmek için yaygın olarak kullandığı bir yazılımdır; dolayısıyla yukarıda bahsettiğimiz tüm araçları bir araya getirir. Ancak IDE genellikle bir metin düzenleyici, bir derleyici, bir bağlayıcı ve bir hata ayıklayıcı içerir.

Ref: slideshare

Özet

Ve gömülü sistemler hakkında söyleyeceklerimiz bu kadar! Gömülü sistem donanımını ve yazılımını ayrı ayrı ele aldık ve her birinin içindekileri inceledik. Gömülü sistemi daha iyi anlayabilmenizi umuyoruz. Bu konu hakkında daha derinlemesine bilgiye ihtiyacınız olursa, aşağıdaki bağlantılara göz atın!

Önerilen Okumalar

Raspberry Pi Alternatifleri: 2020’deki En İyi 17 Tek Kart Bilgisayar – Kendinize bir gömülü sistem almak mı istiyorsunuz? En iyi tek kart bilgisayarların bir listesini derledik!

IoT ve Giyilebilirler için En İyi Arduino Kartları ve Mikrodenetleyiciler (MCU) – Gömülü sistemlerin bir başka derlemesi, ancak bu sefer mikrodenetleyiciler üzerine!

ArduPy vs CircuitPython – MicroPython Mikrodenetleyici Programlama için Hangisi Daha İyi? – Hangisinin daha iyi olduğunu mu merak ediyorsunuz? Sizin için daha iyi yazılım uygulamasını karşılaştıracağız!

2020’de Hangi Raspberry Pi Programlama Dilini Kullanmalısınız? Karşılaştırma Rehberi – Raspi hayranı mısınız? Bunun için en iyi programlama dili için bu kılavuza göz atın!

Leave a Reply

Your email address will not be published. Required fields are marked *