Gömülü Sistemler
Tarihçe 1943-1946 yıllarında Mauchly ve Eckert tarafından ilk modern bilgisayar ENIAC ismiyle yapılmıştır. 17468 elektronik tüp, 1500 röle, 30 ton ağırlık, 0.2ms toplama ve 2.8ms çarpma zamanlıdır.
Tarihçe 1948 yılında tranzistörün keşfiyle elektronik alanında yeni bir çağ başlamıştır. 1971 yılında Intel, 2300 tranzistör içeren 4-bitlik 4004 serisi işlemcisini duyurmuştur. Aynı yıl Intel PASCAL programlama dilini duyurmuştur. 1975 yılında MOTOROLA MCS 6800, Intel 8085 işlemcilerini duyurdu.
Günümüz Intel Core i7-3770 22nm teknolojisi 1.4 Milyar tranzistör Intel Core i7-4930 22nm teknolojisi 1.86 Milyar tranzistör A11 Bionic 10nm teknolojisi 4.3 Milyar tranzistör
Mikroişlemciler Merkezi İşlem Birimi (CPU) temel matematiksel işlemleri ve karşılaştırma işlemlerini yapmak üzere geliştirilmişlerdir. Kişisel bilgisayarlarda (PC Personel Computer) kullanıldıkları gibi, sanayi ve ev aletleri gibi bir çok uygulamada da kullanılabilir. Ancak mikroişlemciler tek başına çalışamazlar, ek donanımlara ihtiyaç duyarlar 1. Giriş Birimi 2. Çıkış Birimi 3. Hafıza
Mikrodenetleyici Öte yandan, mikrodenetleyici hepsini içinde barındıracak şekilde tasarlanmıştır. Başka harici bileşene ihtiyaç duymaz çünkü çevre birimlere ait gerekli tüm devreleri içinde barındırır. Bu bir cihaz tasarlamak için gereken yerden ve zamandan kazandırır
Farklar Elektronikle uğraşmaya yeni başlayanlar genellikle mikro denetleyicinin mikroişlemci ile aynı olduğunu düşünürler. Bu yanlış bir düşüncedir, iki yapı birçok açıdan birbirlerinden farklıdırlar. Mikro denetleyici lehine olan ilk ve en önemli fark işlevselliktir. Mikroişlemcinin kullanabilmesi için bellek başta olmak üzere diğer bileşenlerin eklenmesi gerekir. Mikroişlemci güçlü bir hesaplama makinesi olsa bile çevre çevreyle iletişim kurmaz. Mikroişlemcinin çevresel çevreyle iletişim kurabilmesi için özel devrelerin kullanılması gerekir. Bu durum geçmişten günümüze geçerliliğini korumaktadır.
Mikrodenetleyicilerin Yapabilecekleri Otomobil Hava Yastıkları Uzaktan Kumanda Aletleri Beyaz Eşya Bilgisayar Cep Telefonları Motor Kontrolü Güvenlik Sistemleri v.s.
İşlemci Tasarımı Genel anlamda 2 çeşit tasarımdan bahsedebilir; 1.Donanım Açısından a)van Neuman b)harvard 2.Yazılım Açısından a)cisc b)risc
Donanım Açısından İşlemci Tasarımı a) Van Neuman Program ve veriler için aynı hafıza kullanılır İşlemci tasarımı basittir Komutların çalıştırılması birden fazla saat sinyali alabilir b) Harvard Program ve veriler 2 ayrı hafızada saklanır Komutların işleyişi bazı özel komutlar dışında 1 saat sinyali alır
Yazılım Açısından İşlemci Tasarımı a) CISC (Complex Instruction Set Computers) Her aritmetik, lojik, ve kontrol işlemi için ayrı, bir veya birden fazla komut bulunur. Bu yüzden komut sayısı çok fazladır Komutları ezberlemesi güçtür, ancak kompleks problemler daha kolay çözülebilir Bir komutun işlenmesi birden fazla saat sinyali alabilir b) RISC (Reduced Instructıon Set Computers) Bu tasarımda ancak yetecek sayıda komutu içeren bir ana komut seti bulunur Kompleks işlemler için ayrıca fonksiyon veya makroların yazılması gerekir. Bir komutun işlenmesi (genel anlamda) bir saat sinyali alır
Bellek Birimi Bellek, mikro denetleyicinin veri depolama için kullanılan bir parçasıdır. Bunu açıklamanın en kolay yolu, birçok çekmeceye sahip bir dosyalama dolabı. Bu çekmeceler, çekmecenin önündeki etiketi okuyarak içindekilerin kolayca bulunabileceği şekilde açıkça işaretlenmiştir. Benzer şekilde, her bellek adresi bir bellek konumuna karşılık gelir. Herhangi bir konumun içeriklerine adresleme yoluyla erişilebilir ve okunabilir. Bellek yazılabilir veya okunabilir. Mikrodenetleyici içinde birkaç bellek türü vardır:
Bellekler
Read Only Memory(ROM) Salt okunur bellek (ROM), çalıştırılan programı kalıcı olarak kaydetmek için kullanılır. Yazılabilecek program boyutu, bu belleğin boyutuna bağlıdır. Günümüzün mikro denetleyicileri genellikle 16-bit adresleme kullanmaktadır; bu da 64 Kb'a kadar, yani 65535 belleğin adresini adresleyebileceği anlamına gelmektedir. Bir acemi olarak programınız nadiren yüzlerce komut sınırını aşacaktır. Üretilen çeşitli ROM türleri vardır.
Masked Rom(MROM) Maskeli ROM, içeriği imalatçı tarafından programlanan bir çeşit ROM'dur. 'Maskeli' terimi, çiplerin fotolitografi işleminden önce gizlendiği üretim sürecinden gelir. Büyük ölçekli bir üretim söz konusu olduğunda, fiyatı çok düşüktür.
One Time Programmable Rom(OPTROM) Bir kere programlanabilir ROM, adının belirttiği gibi yalnızca bir kez yazılabilen ROM tipidir. Yazma sonrasında bir hata tespit edilirse, yapabileceğiniz tek şey, doğru programı başka bir çipe yazmaktır.
UV Erasable Programmable Rom (UV EPROM) Bu belleğin hem üretim sürecini hem de özellikleri OTP ROM ile tamamen aynıdır. Bununla birlikte, bu bellekli mikro denetleyicinin paketi, üst tarafında tanınabilir bir 'pencere' içermektedir. Verilerin güçlü ultraviyole ışık altında silinmesini sağlar. Birkaç dakika sonra yeni bir program yazmak mümkündür. Bu pencerenin üretimi karmaşıktır; bu da normal olarak fiyatı etkiler. Bizim açımızdan ne yazık ki negatif...
Flash Memory Bu tip bellek, 80'li yıllarda INTEL laboratuvarlarında keşfedildi ve UV EPROM'un varisi olarak tanıtıldı. EPROM ların aksine, mikrodenetleyicilerin UV ışınlarına ihtiyaç olmadan elektriksel olarak silinip programlanabilmelerini sağlar Hafıza defalarca programlanabilir Programlama zamanı kısadır Bu sayede mikrodenetleyiciler gerektiğinde bulundukları mainboard üzerinden çıkarılmadan programlanabilir
Random Access Memory(RAM) Güç kaynağı kapandığında RAM in içeriği silinir. Mikrodenetleyici çalışırken oluşturulan ve kullanılan geçici veriler ve geçici sonuçların depolanması için kullanılır. Örneğin, program toplama işlemi yaparken, gündelik hayatta ki "toplam" kelimesini temsil eden bir register olması gerekir. Bu nedenle, RAM registerlarından birine "toplam" denir ve toplama sonuçlarının saklanması için kullanılır.
Elektriksel Yazılıp Silinebilen Rom(EEPROM) EEPROM içeriği çalışma sırasında değiştirilebilir (RAM'e benzer şekilde), ancak güç kaybından sonra da kalıcı olarak kaydedilir (ROM'a benzer). Buna göre, EEPROM sık sık kaydedilmesi gereken, çalışma sırasında üretilen değerleri saklamak için kullanılır. Örneğin, bir elektronik kilit veya alarm tasarlarsanız, kullanıcının şifre oluşturmasına ve girmesine izin vermek harika olur, ancak güç kaynağı her kesildiğinde kaybolursa yararsız olur. İdeal çözüm, gömülü EEPROM'lu bir mikro denetleyici.
Mikro Denetleyici Birimleri Mikrodenetleyici içinde bir mikroişlemcinin bulunduğu ve buna ek olarak, hafıza, giriş/çıkış, zamanlayıcı, seri komünikasyon, A/D, v.b. gibi özelliklerin bulunduğu yonga ya denir. Endüstri ağırlıklı işlerde, çok az bağlantı ve destekleyici eleman yardımıyla kullanılırlar Mikrodenetleticiler yapilari geregi mikroislemcilere gore daha dusuk hizlarda calisan(mhz v.s. GHz) ancak onlara kiyasla cok daha fazla ozelligi ayni yonga icinde toplamis araclardir.
Zamanlayıcı ve Sayıcılar Mikrodenetleyici osilatörü çalışması için kuvars kristali kullanır. En basit çözüm olmasa da, onu kullanmak için pek çok neden var. Bu titreşimin frekansı tam olarak tanımlanmış ve çok kararlıdır, böylece ürettiği darbeler her zaman aynı genişlikte ve bu da zaman ölçümleri için onları ideal hale getiriyor. Bu osilatörler kuvartz saatlerde de kullanılır. İki olay arasındaki zamanı ölçmek gerekiyorsa, osilatör tarafından üretilen darbeleri saymak yeterlidir. Bu tam da zamanlayıcının ne iş yaptığını açıklar.
Analog/Dijital Çeviriciler Harici sinyaller genelde mikro denetleyicilerin anladığı (bir ve sıfırlar) sinyallerden esasen farklıdır ve bu nedenle mikro denetleyici için anlaşılabilir değerlere dönüştürülmelidir. Bir analog dijital önüştürücü, sürekli sinyalleri dijital sayılara dönüştüren bir elektronik devredir. Başka bir deyişle, bu devre bir analog değeri bir ikili sayıya çevirir ve sonraki işlem için CPU'ya iletir. Bu nedenle bu modül giriş gerilimi ölçümü için kullanılır. Ölçüm sonucu, daha sonra programda kullanılan ve işlenen bir sayıdır (dijital bir değerdir).
Yaygın Kullanılan Mikrodenetleyiciler Firma:Arduino Model:Uno 8-bit 16Mhz Çalışma frekansı 32K flash bellek, 2Kbyte RAM Fiyat:Klon-20TL (Orj-22$)
Yaygın Kullanılan Mikrodenetleyiciler Firma:Microchip Model:PIC16F877A 8-bit 20Mhz Çalışma frekansı 8K flash bellek, 368byte RAM Fiyat:16TL(2.4$)
Yaygın Kullanılan Mikrodenetleyiciler Firma:ST Microelectronics Model:stm32f103c8t6 Çekirdek:ARM 32bit Cortex-M3 CPU Hata ayıklama modu:swd 72Mhz Çalışma frekansı 64K flash bellek, 20K SRAM Yerleşik Mini USB arabirimi Fiyat=23TL(1.63$)
C Programlama Dili 1970'lerin başında Ken Thompson ve Dennis Ritchie tarafından UNIX İşletim Sistemi için 1972 yılında geliştirilmiş bir C programlama dili, günümüzde neredeyse tüm işletim sistemlerinde kullanılmaktadır. Dünya'nın en çok kullanılan sistem programlama dilidir.
Programlama Dillerinin Seviyeleri Bir programlama dili ya insan yada makine anlayışına yakındır. İnsan anlayışına daha yakın programlara dillerine Yüksek Seviyeli programlama dilleri, Makineye yakın olanlara ise düşük seviyeli programla dilleri denir. Yüksek Seviye Programlama ile yazılan projelerin Source Kodları kısa, Derlenmiş halleri ise uzun olur,çalışma hızları ise yavaştır. Derleyicinin hata tespit,düzeltme özellikleri gelişmiştir. Alçak Seviye Programlama ile yazılan projelerin Source Kodları uzun, Derlenmiş halleri ise kısadır,çalışma hızları ise en yüksek seviyededir. Hata düzeltme düşüktür.
Alt seviye programlama dilleri: Makine koduna oldukca yakın programlama dilleridir. Makina hakimiyeti oldukca gelişmiştir.bu programlama dillerini bilen kişilerin mikro işlemciler hakkında bilgi sahibi olması gereklidir.(assembly programlama dili gibi) Orta seviye programlama dilleri: Oldukça esnek olan bu diller hem üst hem alt seviye programlama yapabilirler. Alt seviye dillere oranla biraz daha anlaşılırdır. (C programlama dili gibi.) Üst seviye programlama dilleri: Olay tabanlı programlama dilleri olarak da adlandırılırlar yalnız bu programlama dilleri sadece belirli fonksiyonlar etrafında çalışırlar ve programlama hakimeyitini azaltırlar. En hızlı ve en etkili programlama dilleri bu kategoridedir. (visual basic gibi) Diğer programlama dillerine kıyasla daha kolay öğrenildiği ve uygulandığı için yeni başlayanlara en uygun diller üst seviye programlama dilleridir.