Bu yazının konusu 8051 mikrodenetleyiciler ile ilgili olacaktır. Mikrodenetleyicinin genel yapısı, mimarisi, çevre birimleri anlatılacaktır.
Mikrodenetleyiciler, mikroişlemcilerde bulunan ROM, RAM, G/Ç portları, seri portlar, zamanlayıcılar, kesmeler vs. gibi birçok çevre birimini tek çip olarak bünyesinde bulunduran elektronik kontrol aygıtlarıdır. Mikrodenetleyiciler, üzerinde çalışan uygulamaların içine gömüldüğü FLASH veya ROM hafıza birimleri bulundururlar. Çevremizde bulunan birçok elektronik cihaz (örneğin çamaşır makinesi, mikrodalga fırınlar, televizyonlar vs) ve endüstriyel cihazlar içinde mikrodenetleyiciler bulunur.
Mikrodenetleyiciler üzerlerinde yüklü olan özel amaçlı gömülü yazılımı işletirler ve tek bir işi tam olarak yapmak üzere programlanırlar. Örneğin analog girişinden aldığı değeri UART arabiriminden göndermek, SPI birimine bağlı sensörden gelen ısı verisine bağlı olarak GPIO portuna bağlı röleleri tetiklemek, I2C birimine bağlı ısı sensöründen gelen veriye göre GPIO birimindeki I/O portlarına sinyal göndermek suretiyle bağlı elektronik birimlere komuta etmek vs. gibi.
8051’in Kısa Tarihi
İlk mikroişlemci 4004, Intel tarafından icat edildi. Bunu aynı şirket tarafından geliştirilen 8085 ve 8086 mikroişlemcileri takip etti. 1981’de Intel, 8051 adında 8 bitlik mikrodenetleyisini duyurdu. 8051, MCS-51 ailesine ait ilk mikrodenetleyicidir. İlk olarak N-tipi Metal Oksit-Yarı İletken (NMOS) teknolojisi kullanılarak geliştirildi. Daha sonra NMOS’tan daha az güç tüketen ve pille çalışan uygulamalar için daha uyumlu olan Tamamlayıcı Metal Oksit Yarı İletken (CMOS) teknolojisi ile geliştirilen 8051, isimlerinde 80C51 örneğindeki gibi bir C harfi ile tanımlanmaya başladı.
128 bayt RAM, 4K bayt on-chip ROM, iki adet zamanlayıcı, bir seri bağlantı noktası ve 8 -bit genişliğinde 4 adet port ile hepsi tek bir çipin içindeydi. Yaygın ve popüler hale geldiğinde Intel, diğer üreticilerin mikrodenetleyicinin 8051 ile uyumlu farklı çeşitlerini yapmasına ve pazarlamasına izin verdi. Bu, 8051’in bir türü için yazılan programın, diğer türlerinde de çalışacağı anlamına geliyordu. Bu durum, farklı hızlara ve yonga üzerinde RAM miktarlarına sahip farklı versiyonların ortaya çıkmasını sağladı.
Mikrodenetleyiciler, bit işleme yeteneklerine göre sınıflandırılırlar. Örneğin 8 bitlik mikro denetleyici, 8 bitlik verileri okuyabileceği, yazabileceği ve işleyebileceği anlamına gelir. Bu değer aslında, mikrodenetleyicinin veri yolu boyutunu belirtir. Bu anlamda 8051 denetleyicileri de 8-bitlik denetleyicilerdir. Günümüzde mikrodenetleyiciler, AVR ve PIC gibi çok daha küçük, ucuz ve güçlü özelliklerle tasarlanabiliyorlar.
Yukarıdaki şekilde görülebileceği üzere, mikroişlemciler veri depolama için harici RAM, program saklama için BIOS ROM, G/Ç portu için PPI 8255, zamanlayıcı için 8253 ve seri iletişim için USART gibi harici çevre birimlerine ihtiyaç duyar. Tüm bu çevre birimleri, birçok uygulama için hazır genel amaçlı bir kontrol birimi oluşturmak için birbirleriyle entegre edilmiştir.
Mikrodenetleyicide ise yukarıdaki şekilde görüleceği üzere tüm bellek ve giriş/çıkış portları çip üzerinde mevcuttur. Mikro denetleyicileri de popüler hale getiren işte bu özellikleridir. Daha sonra birçok yarı iletken üretici şirket farklı özelliklere sahip mikrodenetleyiciler geliştirdi.
8051 Mikrodenetleyici Ailesinin Üyeleri
- 8052 mikro denetleyici – 8052, 8051 mikro denetleyicinin tüm standart özelliklerinin yanı sıra ekstra 128 bayt RAM ve ekstra bir zamanlayıcıya sahiptir. Ayrıca 4K bayt yerine 8K bayt çip üzerinde program ROM’una sahiptir.
- 8031 mikro denetleyici – 8051 ailesinin bir başka üyesidir. Bu yonga, yonga üzerinde ROM’a sahip olmadığı için genellikle ROM içermeyen 8051 olarak adlandırılır. Kullanmak için çalıştırılacak programı içeren harici bir ROM eklenmelidir. Bu program 64K bayta kadar büyük olabilir. Ancak 8031’e harici ROM ekleme sürecinde 4 porttan 2’sini işgal eder. Bu sorunu çözmek için 8031’e harici bir I/O eklenebilir.
Farklı üreticiler tarafından üretilen 8051 Mikrodenetleyicilerden bazıları şunlardır: Atmel (AT89C51, AT89S51), Phillips (S87C654), STC Micro (STC89C52), Infineon (SAB-C515, XC800), Siemens (SAB-C501), Silicon Labs (C8051) , NXP (NXP700, NXP900) vb.
Aşağıdaki tabloda, yarı iletken üretici şirketler tarafından geliştirilen çeşitli popüler 8051 ailesi üyelerinin özellikleri karşılaştırmalı olarak verilmiştir.
8051 Mikrodenetleyicinin Özellikleri
- 4KB bayt çip üzerinde program belleği (ROM)
- 128 bayt çip üzerinde veri belleği (RAM)
- Dört yazmaç bankası
- 128 adet kullanıcı tanımlı yazılım bayrağı
- 8 bit çift yönlü veri yolu
- 16 bit tek yönlü adres veriyolu
- Üç dahili ve iki harici kesme
- Dört adet 8 bit IO portu (short modelde iki adet 8 bit IO port sahiptir)
- 16 bit program sayacı ve veri göstericisi
- 8051 mikrodenetleyicileri ayrıca UART, ADC, Op-amp, vb. gibi özel çevre birimlerine de sahip olabilirler
8051 Mimarisi
Yukarıdaki mimari gösterimden de görülebileceği üzere 8051 üzerinde TIMER0 ve TIMER1 olmak üzere 2 adet sayıcı/zamanlayıcı, aynı zamanda harici bellek bağlantısı da sağlayan (P0, P1, P2, P3 olmak üzere) 4 adet GPIO portu, bir adet UART, INT0 ve INT1 olmak üzere 2 adet harici kesme girişi mevcuttur.
CPU (Central Processing Unit)
8051 mikrodenetleyicide, tüm aritmetik ve mantıksal işlemlerin gerçekleştirildiği ALU (Aritmetik Mantık Birimi) olarak da adlandırılan merkezi işlem birimi bulunmaktadır.
RAM (Random Access Memory)
- 8051 mikrodenetleyici, veri depolama için 128 baytlık RAM’e sahiptir.
- RAM belleği geçici bir bellek türüdür. Cihazın gücü kapatıldığında RAM’de tutulan veriler kaybolur.
- Çalışma zamanı boyunca verileri geçici olarak saklamak için kullanılır.
- RAM, bir yazmaç bankı, bir yığın ve bazı özel fonksiyon yazmaçları (SFR’ler) ile geçici veri depolama alanlarından oluşur.
ROM (Read-Only Memory)
- 8051’de, program depolaması için 4KB ROM mevcuttur.
- Geçici Olmayan (kalıcı depolama sağlayan) bir bellek türüdür. Elektrik kesintisi durumunda bile bu hafızada bulunan veriler tutulur.
- 8051 mikrodenetleyiciler, 16 bitlik adresleme yapar. Bu, 2 ^ 16 bellek konumuna erişebileceği ve büyük uygulamalarda 64 KB program belleğine kadar harici olarak arabirim oluşturabileceğimiz anlamına gelir.
8051 Mikrodenetleyici Ailesinin Üyeleri tablosundan da görülebileceği gibi RAM ve ROM için belirtilen boyutlar üreticilere ve üretilen modellere göre değişmektedir.
Zamanlayıcılar ve Sayıcılar
- Mikrodenetleyici 8051’de iki T0 ve T1 zamanlayıcı pimi vardır.
- Bu zamanlayıcılarla, zamanlayıcı modunda belli süreli zaman gecikmesi oluşturulabilir.
- Sayaç modunda harici darbeler veya olaylar sayılabilir.
- T0 (TH0 ve TL0) ve T1 (TH1 ve TL1) olarak iki adet 16-bit zamanlayıcı yazmacı mevcuttur, ör. T0’ı yüklemek istiyorsak, TH0’da Yüksek 8 bit ve TL0’da Alt 8 bit yükleyebiliriz
- TMOD ve TCON yazmaçları, mod seçimi ve zamanlayıcının çalışmasını kontrol etmek için kullanılır.
Kesmeler
- Kesmeler her mikroişlemci ve mikrodenetleyicide bulunan ve birden fazla işin bir arada yapılmasını sağlayan özel fonksiyonlardır.
- Kesmeler, dahili veya harici kaynaklardan gelebilir.
- Mikrodenetleyicide bir kesme olayı meydana geldiğinde, yürütmekte olduğu programı durdurur ve kesme olayının gösterdiği rutine dallanarak bu rutini işletir.
- Kesme işleyici rutinleri, her kesme olayı olduktan sonra çağrılır. Bu rutinlere Kesme Hizmeti Rutini (ISR) denir ve özel bellek konumunda bulunur.
- INT0 ve INT1 pinleri harici kesmeleri almak için kullanılır.
Osilatör (XTAL)
- 8051 mikrodenetleyicinin işlemci ve baud hızına saat sinyali sağlamak için kullanılır.
- 4 MHz ile 30 MHz arasında değişen frekansta kristaller kullanıyoruz. Seri iletişimde 9600 baud hızı için gerekli olan 11.0592 MHz frekansı kullanılır.
I/O Portları
- 8051’de P0, P1, P2, P3 olmak üzere dört adet Giriş / çıkış portu vardır.
- Her port 8 bit genişliğindedir ve SFR’leri ne(P0, P1, P2, P3) bit düzeyinde erişilebilir durumdadır, yani denetleyicinin her bir bitine bağımsız olarak erişilebilir.
- Bazı bağlantı noktalarının pinlerinde iki işlev vardır:
- P0 portunun I/O pinleri, harici bellek erişim işleminde kullanılan ALE sinyali ve mandalı ile çözülen 8 bitlik bir veri yolu ve düşük sıralı adres yolu (AD0-AD7) ile çoklanır.
- P2 portunun I/O pinleri, kalan yüksek sıralı adres yolu (A8-A15) ile çoklanır.
- P1 portunun I/O pinleri genel amaçlı I/O pinleri olarak kullanılır. Her pin zaten dahili olarak pullup dirençlerine sahip olduğundan harici pullup gerektirmez.
- P3 portu I/O pinlerinin de ayrıca iki işlevi vardır:
- P3.0 – RXD – Seri veri alımı.
- P3.1 – TXD – Seri veri iletimi.
- P3.2 – INT0 – Harici Kesme 0.
- P3.3 – INT1 – Harici Kesme 1.
- P3.4 – T0 – Sayıcı 0 için saat girişi.
- P3.5 – T1 – Sayıcı 1 için saat girişi.
- P3.6 – WR – Harici belleğe yazmak için sinyal girişi.
- P3.7 – RD – Harici bellekten okumak için sinyal girişi.
- P0 ve P2 pinleri, harici bellek erişim işleminde I/O pinleri olarak kullanılamaz.
Seri İletişim bağlantı noktası
- 8051 mikrodenetleyici, SBUF yazmacı aracılığıyla seri olarak veri iletmek ve almak için kullanılan TXD ve RXD olmak üzere iki adet seri iletişim pinine sahiptir.
- SCON yazmacı seri haberleşme işlemlerini kontrol etmek için kullanılır.
Kaynaklar:
- Introduction to 8051 Controller, URL: https://www.electronicwings.com/8051/introduction-to-8051-controller
- Embedded Systems – 8051 Microcontroller – Tutorialspoint, URL: https://www.tutorialspoint.com/embedded_systems/es_microcontroller.htm
- 8051 Microcontroller Introduction, Basics and Features, URL: https://www.electronicshub.org/8051-microcontroller-introduction/
İlk Yorumu Siz Yapın