elektrik port üyelik servisleri elektrik port üyelik servisleri

Mikrodenetleyiciler Nasıl Çalışır? |
2. Bölüm

Günümüzde her tür makine ve cihazın içinde görebileceğimiz, her geçen gün hayatımızı kolaylaştırmaya devam eden gömülü sistemlerin temelini oluşturan mikrodenetleyiciler nasıl çalışır? Yazı dizimizin bu bölümünde mikrodenetleyicilerin temel kavramlarını inceleyerek işlevlerini ve çalışma prensiplerini anlamaya çalışacağız.



A- A+
21.01.2015 tarihli yazı 7126 kez okunmuştur.
Yazımızın birinci bölümünde mikroişlemci ve mikrodenetleyici kavramlarını ve aralarındaki farkı incelemiştik



Mikrodenetleyici Kavramları

Mikrodenetleyicileri öğrenmek istiyorsanız öncelikle bazı kavramları bilmeniz gerekiyor. Bu kavramların çoğunu öğrenme süreciniz boyunca sık sık duyacaksınız. Bunlardan en önemlilerini aşağıda açıkladık.



8051 Mikrodenetleyici Blok Diyagramı

 
►İlginizi Çekebilir: Mikrodenetleyiciler PIC Ailesi


►CPU: Bu birim bir mikroişlemciden oluşur. Komutların okunarak verilerin işlendiği çevre birimlerinin yönetildiği merkezi birimdir. Mikrodenetleyicinin merkezi işlem birimi olan CPU tek bir çip olarak üretirse mikroişlemci olarak adlandırılır. Bugün bilgisayarlarımızda kullandığımız işlemciler CPU biriminden oluşur.

►RAM: Mikroişlemcinin işlemler sırasında geçici olarak verileri hafızada tutmak için çok hızlı çalışan bir harici belleğe ihtiyaç duyar. Yani RAM (Random Access Memory) bilgisayarlarımızda olduğu gibi mikrodenetleyicilerde de geçici hafıza olarak görev yapar. Verilerin işlenmesi aşamasında geçici olarak tutulması gereken bilgiler bu hafıza biriminde depolanır işlem bittiğinde ya da güç kesildiğinde ise silinirler.

►Osilatör-Clock: Osilatör oluşturduğu clock sinyali ile mikrodenetleyicideki tüm işlemlerin senkron-eşzamanlı olarak yapılmasını sağlar. Clock(saat) sinyalini bir komutanın askerlerin uyum için yürümesi için verdiği sağ-sol komutuna benzetebiliriz. Her mikrodenetleyici birimi yaptığı işlemin her adımını saat darbesinin lojik 0 dan 1 e yükseldiği ya da 1 den 0 düştüğü sırada yapar. Bir 0 ve Bir 1 den oluşan süreye bir “cycle” yani bir çevrim denir. Bir komutun kaç saniye süreceği yine mikrodenetleyicinin mimarisine ve komutun türüne bağlıdır. Mikrodenetleyici komutlarına ve mikrodenetleyiciyi programlama konusuna yazı dizisinin ilerleyen bölümlerinde değineceğiz.

►Stack: Yığın bellek verilerin üst üste kaydedildiği, veri yazılırken en üste yazıldığı veri okunurken de sadece en üstteki verinin okunduğu adından da anlaşılacağı gibi verilerin yığın olarak tutulduğu bellek türüdür.

►Program Counter (PC): Mikrodenetleyici program hafızasında bulunan komutları satır satır sırayla işlediğini söylemiştik. Mikrodenetleyicinin hangi satırda bulunduğu bilgisi Program Counter da tutulur. Kesme geldiğinde Program Counter daki satır bilgisi stack (yığın bellek) a atılır. Kesme vektörünün sonuna geldiğinde stack teki programın son kaldığı satır bilgisi tekrar program counter a yüklenerek program kaldığı yerden devam eder.

►Interrupt(Kesme): Mikrodenetleyiciler hafızalarında yazılan programı satır satır okuyarak ilgili komutun gerektirdiği işlemleri gerçekleştirirler.  Programın akışına göre subroutine denilen alt programlara dallanabilirler. Fakat bazı durumlarda mikrodenetleyicinin program akışının dışına çıkması istenebilir. Bu durumlarda interruptlar devreye girer. Bir Interrupt subroutine den tamamen farklıdır.

Programın alt programa dallanması gereken yerler program yazılırken belirlenir. Fakat kesme program dışında bir dış uyarıcı ile gerçekleşir. Bu dış uyarıcı seri haberleşme biriminden gelen bir veri, timer ın dolmasıyla oluşan bir sinyal, ya da bir sensörün bağlı olduğu pine gelen 5v (lojik 1) olabilir. Kesme sinyali geldiğinde program kesme vektörüne dallanarak burada bulunan komutları işlemeye başlar.

Bunu gerçek hayattan verilebilecek bir örnek ile anlamaya çalışalım. Örneğin yemek yapıyoruz ve yemek 15 dakikada pişecek. Mikrodenetleyici mantığıyla düşünürsek 15 dakikanın dolduğunu anlayabilmemiz için bir “while” döngüsünde olduğu gibi sürekli saate bakarak 15 dakikanın geçip geçmediğini anlamamız gerekir. Böylece 15 dakika dolduğunda yemeği ocaktan alıp başka bir işe başlayabiliriz. Fakat bu yöntemle 15 dakika boyunca başka bir iş yapmamız mümkün olmaz ya da verimli bir şekilde çalışamayız.


►İlginizi Çekebilir: PIC İle Takometre | Kendimiz Yapalım


Ama yemeği ocağa koyduktan sonra çalar saati kurar ve yemeği ocaktan almak için çalar saatin çalmasını beklersek bu geçen 15 dakikayı diğer işlerimizi yapmak için kullanabiliriz. Interrupt a tam olarak bu işe yarar. Interrupt sayesinde bir pine gelen verinin 1 olup olmadığını timerın dolup dolmadığını ya da haberleşme birimine verinin gelip gelmediğini sürekli kontrol etmek zorunda kalmayız. Bu bize büyük kolaylık sağlar.

Kesme geldiğinde mikrodenetleyici “Program Counter(PC)” da tuttuğu hangi satırda kaldığı bilgisini “stack” denilen yığın belleğe geçici olarak atar ve kesmenin yönlendirdiği satıra gider kesme programı bittiğinde stack e dönüp hangi satırda kaldığı bilgisini alır ve PC ye yazarak kaldığı yerden devam eder.

►Program Hafızası: Bu birime çeşitli dillerde yazdığımız kodların derlenerek makine diline çevrilmiş hali tutulur. CPU bu birimden satır satır program komutlarını okuyarak işlemi gerçekleştirir ve bir sonraki satıra geçer. En son hangi satırın okunduğu bilgisi PC(Program Counter) adlı saklayıcıda tutulur.

►Adres: Hafıza biriminin verinin okunacağı yada yazılacağı satırını ifade eder.

►Adres Yolu: Adres yolu verinin gideceği adres bilgisini taşır.

►Veri Yolu: Mikrodenetleyicinin birimleri arasında veri ve güç transfer etmeye yaran bağlantılardır. Veri yolu genişliği mikrodenetleyicinin bir seferde transfer edebileceği bit sayısını ifade eder. 8 bitlik bir veri yolu bir seferde 8 bit transfer edebilir. Mikrodenetleyicinin her biriminin bir adr

►I/O Port: Mikrodenetleyicinin dışarıya açılan kapısıdır. Pinler aracılığı ile gelen verileri tutar ve mikrodenetleyiciden dışarıya veri ya da güç gönderilmesini sağlar.

►8 Bit- 16 Bit - 32 Bit: Kişisel bilgisayarlarımız için de sıklıkla duyduğumuz “x Bit” ifadesi mikroişlemci ya da mikrodenetleyicinin bir çevrim yani bir saat darbesi süresinde işleyebileceği veri miktarını ifade eder. 16 bitlik bir veriyi 8 bitlik mikrodenetleyici 2 çevrimde işleyebilirken 16 bitlik işlemci bir çevrimde işler.


3. Bölümde: Mikrodenetleyici birimleri 


Sorularınız ve önerileriniz için yorum bölümünü kullanabilirsiniz...

 

Mustafa Alper Balım Mustafa Alper Balım Yazar Hakkında Tüm yazıları Mesaj gönder Yazdır



ANKET
Endüstri 4.0 için En Hazır Sektör Hangisidir

Sonuçlar