You are on page 1of 63

ELN 3104

MİKROİŞLEMCİLER
DERS NOTLARI
2019 – 2020
Bahar Dönemi

Bursa Uludağ Üniversitesi Mühendislik Fakültesi


Elektrik – Elektronik Mühendisliği Bölümü
1
ELN 3104 MİKROİŞLEMCİLER
Dersin Uygulaması: (Ders-Uygulama-Laboratuvar: 2-0-2 ) , AKTS: 6
Ders Konularının Planlanması : (Taslak)
• 1. Hafta: Mikroişlemci temel kavramları, hafıza ve giriş/çıkış birimleri
• 2. Hafta: Hafıza Temelleri ve Hafıza Sistem Tasarımı
• 3. Hafta: 8051 Mikrodenetleyici Mimarisi ve Çalışması
• 4. Hafta: 8051 Assembly Dili ve Komut Kümesi
• 5. Hafta: Komut Yapılarının İncelenmesi ve Program Geliştirme
• 6. Hafta: Uygulama Geliştirme : Zamanlayıcılar/Sayıcılar
• 7. Hafta: Uygulama Geliştirme : Kesmeler
• 8. Hafta: Uygulama Geliştirme : Seri Haberleşme
• 9. Hafta: Uygulama Geliştirme : Diğer Uygulamalar
• 10. Hafta: 8051 C Dili Programlamaya Giriş
• 11. Hafta: Uygulama Geliştirme : Zamanlayıcı/Sayıcı
• 12. Hafta: Uygulama Geliştirme : Kesmeler
• 13. Hafta: Uygulama Geliştirme : Seri Haberleşme
• 14. Hafta: Uygulama Geliştirme : Diğer Uygulamalar

2
ELN 3104 MİKROİŞLEMCİLER
Ders Kitabı ve Diğer Kaynaklar:
• H. Gümüşkaya. Mikroişlemciler ve 8051 Ailesi - Donanım,
Programlama ve Uygulamalar, 5. baskı, Alfa Yayınları, 2002.
• I.S. MacKenzie, R.C.W. Phan. The 8051 Microcontroller, 4th ed.,
Prentice Hall, 2007.
• M.A. Mazidi, J.G. Mazidi, R.D. McKinlay. The 8051 Microcontroller and
Embedded Systems Using Assembly and C, 2nd ed., Prentice Hall,
2006.
• D. İbrahim. Microcontroller Projects in C for the 8051, Newnes, 2000.
• A.T. Özcerit, M. Çakıroğlu, C. Bayılmış. C ile 8051 Mikrodenetleyici
Uygulamaları, 3. baskı, Papatya Yayıncılık, 2011.
• M.J. Pont. Patterns for Time-Triggered Embedded Systems: Building
Reliable Applications with the 8051 Family of Microcontrollers,
Addison-Wesley, 2001.
• S.P. Gimenez. 8051 Microcontrollers - Fundamental Concepts,
Hardware, Software and Applications in Electronics, Springer, 2019.
• ATMEL AT89S52 User Guide

3
Temel Bilgiler: Sayı Sistemleri
• Günlük hayatta aritmetik işlemlerde ondalık sayılar
kullanılır. (Decimal numbers)
– Burada 10 farklı sayı sembolü bulunur:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
• Bilgisayarlar ikili sayıları kullanır. (Binary numbers)
– İkili sayılar sadece 0 ve 1 sayılarını içerir.
– İkili sayılara genel olarak bit denir.
• Onaltılık (Hexadecimal) sayı sistemi ikili sayılarla
kolayca çalışabilmek için kullanılan bir sayı sistemidir.
– Burada 16 farklı sayı sembolü bulunur:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

4
Ondalık Sayıdan İkili Sayıya Çevirme
• Ondalık sayıyı ardarda 2 ile bölünür.
• Kalan sağ tarafa yazılır.
• Bölüm < 1 olana kadar bu işleme devam edilir.
• Kalanlar aşağıdan yukarıya doğru (ters sırada) okunup
soldan sağa yazılır.
Örnek: (25)10 ondalık sayısını ikili sayıya çeviriniz.
Bölüm Kalan
25/2 = 12 1 LSB (en küçük anlamlı bit)
12/2 = 6 0
6/2 = 3 0
3/2 = 1 1
1/2 => 0 1 MSB (en büyük anlamlı bit)
Sonuç olarak (25)10 = (11001)2 bulunur

5
Ondalık Sayıdan İkili Sayıya Çevirme
• Ondalık sayıyı ikili sayıya çevirmek için ağırlık kavramından
faydalanılabilir.
Örnek: (39)10 sayısını ikili sayıya çeviriniz.
1x25 + 0x24 + 0x23 + 1x22 + 1x21 + 1x20 = 39
1 0 0 1 1 1
Sonuçta (39)10 = (100111)2 olarak bulunur.

İkili Sayıdan Ondalık Sayıya Çevirme


• Her bit kendi ağırlığı ile çarpılır.
• Ondalık sayıyı elde etmek için bunlar birbiri ile toplanır.
Örnek: (11001)2 sayısını ondalık sayıya çeviriniz.
Ağırlık: 24 23 22 21 20
Hane: 1 1 0 0 1
Toplam: 16 + 8 + 0 + 0 + 1 = (25)10 olur.
6
Onaltılık (Hexadecimal) Sayı Sistemi
• Onaltılık (Hexadecimal) sayı sistemi
ikili sayılarla kolayca çalışabilmek
için kullanılan bir sayı sistemidir.

Örnek: 100010010110 ikili sayısı


yerine 896H onaltılık eşdeğerini
kullanmak daha kolaydır.

1000 = 8
1001 = 9
0110 = 6  896H

Sonuç: (1000 1001 0110)2 = 896H

7
Onaltılık ve İkili Sayıları Birbirine Çevirme
• İkili sayıyı onaltılık sayıya çevirmek için:
İkili sayı sağdan başlayarak 4 bitlik gruplara ayrılır,
her 4 bitlik ikili sayıya ait onaltılık (hex) karşılığı yazılır.

Örnek: 100111110101 ikili sayısının onaltılık karşılığını yazınız.


1001 1111 0101
Sonuç = 9 F 5

• Onaltılık sayıdan ikili sayıya çevirmek için:


Her onaltılık sayı hanesinin karşılığına ikili sayı karşılığı yazılır.

Örnek: 29BH sayısını ikili sayıya çeviriniz.


2 9 B
Sonuç = 0010 1001 1011

8
Ondalık Sayıdan Onaltılık Sayıya Çevirme
• Önce ondalık sayı ikili sayıya, sonra onaltılık sayıya çevrilir.
Örnek 1: (45)10 sayısını onaltılık sayıya çeviriniz
32 16 8 4 2 1
1 0 1 1 0 1  32 + 8 + 4 + 1 = 45
(45)10 = ( 0010 1101 )2 = (2D)16
Örnek 2: (629)10 sayısını onaltılık sayıya çeviriniz.
512 256 128 64 32 16 8 4 2 1
1 0 0 1 1 1 0 1 0 1  512+ 64+32+16+4+1 = 629
(629)10 = ( 0010 0111 0101 )2 =(275)16
• 16’ya bölme metodu: Doğrudan ondalık sayıdan onaltılık sayıya çevirmek
için art arda 16’ya bölme işlemi yapılırken kalanlar sağ tarafa yazılır. Bu
işlem bölüm<16 oluncaya kadar devam eder.
Örnek 1: 45/16 = 2 kalan 13  (45)10 = (2D)16
Örnek 2: 629/16 = 39 kalan 5
39/16 = 2 kalan 7  (629)10 = (275)16

9
Onaltılık Sayıdan Ondalık Sayıya Çevirme
• Onaltılık sayıdan ikili sayıya ve sonra ondalık sayıya çevirilir.
• Doğrudan onaltılık sayıdan ondalık sayıya çevirmek için bütün haneler
ağırlıkları ile çarpılıp toplanır.
Örnek:
Dolaylı Yöntem:
(6B2)16 = ( 0110 1011 0010 )2
1024 512 256 128 64 32 16 8 4 2 1
1 1 0 1 0 1 1 0 0 1 0
Sonuç = 1024 + 512 + 128 + 32 + 16 + 2 = (1714)10

Doğrudan Yöntem:
6 B 2
162 161 160
6x162 + 11x161 + 2x160 = (1714)10

10
Onaltılık Sayılarla Toplama ve Çıkarma
• Toplama işleminde en küçük anlamlı haneden başlanır.
• Hane toplamının sonucu 16 dan az ise değer doğrudan ilgili hanesine yazılır.
• Eğer sonuç 16 dan büyükse sonuçtan 16 çıkarılır, kalan ilgili haneye yazılır
ve bir sonraki haneye 1 elde (carry) eklenir.
Örnek: (23D9)16 + (94BE)16 toplamını hesaplayınız.
23D9 LSD : 9 + 14 =23 23 − 16 = 7 + elde
+94BE 1 + 13 + 11 = 25 25 − 16 = 9 + elde
B897 1+3+4=8
MSD: 2 + 9 = B
• Çıkarma işleminde çıkartılan hane rakamı eksilen rakamdan büyük ise
önceki haneden 1 ödünç (borrow) alınır.
Örnek: 59F – 2B8 çıkartma işlemini yapınız.
59F LSD: 15 – 8 = 7
− 2B8 9 + 16 – 11 = 14 = E16
2E7 5–1–2=2

11
Kodlama Sistemleri – ASCII Kodu
• ASCII (aski diye okunur) kodu
– 0 ila 9 sayılarına
– İngilizce alfabenin büyük ve küçük harflerine
– Birçok kontrol kodu ve noktalama işaretlerine
karşılık gelen ikili sayı dizisinden oluşan bir karakter tablosu
veya listesidir.
• ASCII sistemi her sembol için 7 bitlik bir ikili sayı dizisi kullanır.
Hex Sembol Hex Sembol
41 A 61 a
Seçilmiş 42 B 62 b
ASCII 43 C 63 c
kodları … … … …
59 Y 79 y
5A Z 7A z

12
Mikroişlemcili Sistemlerin Temel Kavramları
• Mikroişlemcili Sistem: Mikroişlemci, ROM, RAM ve giriş/çıkış birimlerinden
oluşan adreslenebilir saklayıcılar topluluğuna mikroişlemcili sistem denir.
• İç saklayıcılar: Mikroişlemcinin içinde yer alan saklayıcılardır.
• Dış saklayıcılar: Mikroişlemcinin dışında yer alan ROM, RAM ve giriş/çıkış
birimleridir.
• Sistem Yolu: Bir mikroişlemcili sistemin değişik alt birimlerinde bulunan
saklayıcılar, adres yolu, veri yolu ve kontrol yolunu içeren bir sistem yolu
(system bus) ile birbirine bağlıdır.

13
Mikroişlemcili Sistemlerin Temel Kavramları
• Adres Yolu (Address Bus)
– Bellek veya G/Ç birimlerinin mikroişlemci tarafından tanınabilmesi için
bunlara bir adres atanmalıdır.
• Belirli bir birim için atanan adres tek (bir tane) olmalıdır
• CPU adres yoluna adresi yazar ve kod çözücü istenilen birimi bulur
• Veri Yolu (Data Bus)
– CPU, veri yolunu kullanarak bellek ve G/Ç birimlerinden veri alışverişi
yapar
• Kontrol Yolu (Control Bus)
– CPU birimlerle veri alışverişi yaparken yazma veya okuma işlemlerine
ait işaretleri kontrol yolu üzerinden iletir

14
Mikroişlemcili Sistemlerin Temel Kavramları
Mikroişlemci Tabanlı Bir Sistem:

• Mikroişlemci: kullanıldığı sistemdeki bütün işlerden sorumlu olan merkezi


işlem birimidir. (CPU: Central Processing Unit)
• Bulunduğu sistemdeki cihazların çalışmasını kontrol eder ve sisteme
aritmetik/lojik işlem yapma kapasitesi sağlar.
• Hafıza ve giriş/çıkış birimleri ile arasında sürekli veri transferi yapar ve çevre
birimlerin hizmet istek sinyallerine cevap verir.
• Üç temel görevi vardır: 1) Hafızadan komut okuma, 2) Komutun kodunu
çözme, 3) komutun işlevini yerine getirme.
15
Mikroişlemcili Sistemlerin Temel Kavramları
8085A Tabanlı Örnek Bir Mikroişlemcili Sistem:

16
Mikroişlemcili Sistemlerin Temel Kavramları
Mikroişlemcili Sistem Yolunda Bulunan Tipik Sinyaller:
İsim Görev Uzunluk (Bit) Yön (mikroişlemciye göre)
A31 – A0 Adres yolu 16, 20, 24, 32, 36 Çıkış
D63 – D0 Veri yolu 8, 16, 32, 64 İki yönlü
RD Genel okuma sinyali 1 Çıkış
WR Genel yazma sinyali 1 Çıkış
IO/M Durum (giriş/çıkış veya hafızaya erişim) 1 Çıkış
MEMR Hafızadan okuma sinyali 1 Çıkış
MEMW Hafızaya yazma sinyali 1 Çıkış
IOR Giriş biriminden okuma sinyali 1 Çıkış
IOW Çıkış birimine yazma sinyali 1 Çıkış
RESET Sistem sıfırlama 1 Çıkış

17
Mikroişlemcili Sistemlerin Temel Kavramları
Mikroişlemcili Veri Yolu Hakkında:
• CPU ne kadar çok veri yoluna sahip olursa o kadar verimli
çalışır
– Veri yolunu geniş otoyollara benzetebilirsiniz
• Çok veri yolu demek daha pahalı mikroişlemci demektir
– CPU içindeki veri yollarının ortalama genişliği 8 ile 64 bit
arasında değişir
• Veri yolları iki yönlüdür
– Ayni yoldan veri hem gönderilip hem de alınabilir
• Mikroişlemcinin işlem gücü yolların genişliği ile ilişkilidir.
– 16 bit veri yoluna sahip bir mikroişlemci 8 bit veri yoluna
sahip işlemciden ayni süre içinde çok daha fazla işlem
yapabilir
18
Mikroişlemcili Sistemlerin Temel Kavramları
Mikroişlemcili Adres Yolu Hakkında:
• Adres yolu genişledikçe daha fazla bellek alanı adreslenebilir.
Bu da daha fazla çevre biriminin adreslenebilmesi demektir
• CPU nun veri alışverişinde bulunabileceği bellek alanının sayısı
2n olur. Burada n sayısı adres hatlarının (iletkenlerinin) sayısıdır
– 16 adres ve 8 veri hattı olan mikroişlemci (8085, 8051)
216 = 65536 = 64 KB adreslenebilir belleğe sahiptir
– Mikroişlemciler genel olarak bayt adreslenebilir
olduğundan her veri alanı en fazla 1 bayt veri içerir
• Adres yolu tek yönlüdür, sadece çevre biriminin adresi işaret
edilir.

19
Mikroişlemcili Sistemlerin Temel Kavramları
• Veri büyüklüğüne ilişkin tanımlar
– Bit: Bir ikili rakama (hanesine) verilen ad, 0 veya 1 değerini alabilir.
– Bayt (Byte): 8 bitten oluşur
– Yarım bayt (Nibble) : 4 bitten oluşur
– Kelime(Word): İki bayttır, 16 bit içerir

• Bir bilgisayar belleğinin büyüklüğünü göstermek üzere


kullanılan birimler
– Kilobayt (KB): 210 bayt, 1024 bayt
– Megabayt (MB): 220 bayt, 1.048.576 bayt
– Gigabayt (GB): 230 bayt, 1.073.741.824 bayt
– Terabayt (TB): 240 bayt, 1.099.511.627.776 bayt

20
Mikroişlemcili Sistemlerin Temel Kavramları
Hafıza Birimleri RAM ve ROM Hakkında:
RAM ve ROM birimleri, mikroişlemcili sistemin çalışması için gereken verileri
ve programları tutan adreslenebilir saklayıcılar topluluğudur. Bu birimler,
sistem yoluna adres, veri, kontrol sinyalleri ve hafıza kod çözücü devreler ile
bağlıdır.
– RAM (Random Access Memory) Rastgele ulaşılabilir bellek,
mikroişlemci çalışırken gerekli olan anlık verileri saklar
• Enerji kesilince veriler kaybolur

– ROM (Read Only Memory) Salt okunabilir bellek, mikroişlemci


çalışırken gerekli olan program kodları ve değişmeyen veriler burada
saklanır
• Kullanım esnasında kayıtlı veriler değiştirilemez ve enerji
kesildiğinde bu veriler kaybolmaz (Nonvolatile)

21
Mikroişlemcili Sistemlerin Temel Kavramları
Giriş Cihazı (Input Device) :
• Bir mikroişlemcili sisteme veri üreten veya dış verileri ortak sistem yoluna
aktaran harici çevre birimine giriş cihazı denir.
• Giriş cihazı, çok çeşitli elektronik cihazları içerebilir. Basit bir 3-durumlu
buffer veya programlanabilir çevre arabirimleri giriş cihazı olabilir.
• Bir giriş cihazının üretmiş olduğu veri, bir Latch’ta geçici olarak saklanır.
Eğer giriş cihazı dahili Latch yapısına sahipse, giriş cihazının çıkışları
doğrudan 3-durumlu buffer’a bağlanır.
• Bir giriş cihazının çıkışları, ancak 3-durumlu buffer üzerinden sistem veri
yoluna bağlanabilir. Bu buffer, giriş cihazı seçme darbesi ile aktif olur. Bu
darbe RD, IO/M ve yeterli sayıdaki adres hattının bir kod çözücüde
kodunun çözülmesiyle üretilir.
Giriş Portu (Input Port):
• 3-durumlu buffer tek başına veya ona ait bir saklayıcı (latch) ile beraber bir
giriş portu olarak adlandırılır.
• İçinde 8 tane 8-bit saklayıcı ve 8 tane 3-durumlu buffer içeren 74x574 ve
74x573 entegreleri mikroişlemcili sistemlerde basit giriş portları
oluşturmak için sıklıkla kullanılır.
22
Mikroişlemcili Sistemlerin Temel Kavramları
Giriş Portu (Input Port):

23
Mikroişlemcili Sistemlerin Temel Kavramları
Çıkış Cihazı (Output Device):
• Bir mikroişlemciden almış olduğu veriyi dış dünyaya ileten birim çıkış cihazı
(output device) olarak adlandırılır.
Çıkış Portu (Output Port):
• Mikroişlemcili sistemden çıkış yapılacak veri bir saklayıcıya (latch’a)
yerleştirilir. Bu saklayıcı çıkış portu (output port) olarak adlandırılır.
• Bir çıkış cihazı seçme darbesi WR, IO/M ve yeterli sayıdaki adres hattının
bir kod çözücüde kodunun çözülmesiyle üretilir.
• Çıkış bufferları topraklanan 74x574 ve 74x573 entegreleri mikroişlemcili
sistemlerde basit çıkış portları oluşturmak için sıklıkla kullanılır.
Özetle:
Temel bir giriş portu olarak bir saklayıcı (latch veya Flip-Flop) ve 3-durumlu
buffer kullanılır, veri tutturmaya gerek yok ise sadece ve 3-durumlu buffer
kullanılır, temel bir çıkış portu olarak ise sadece bir saklayıcı (latch veya Flip-
Flop) kullanılır.

24
Mikroişlemcili Sistemlerin Temel Kavramları
Çıkış Portu (Output Port):

25
Mikroişlemcili Sistemlerin Temel Kavramları
D-tipi Flip-Flop ve Latch:

(a) Pozitif (yükselen) kenar tetiklemeli D-tipi Flip-Flop


(b) Negatif (düşen) kenar tetiklemeli D-tipi Flip-Flop
(c) Pozitif seviye tetiklemeli D-tipi Flip-Flop (Latch)
(d) Negatif seviye tetiklemeli D-tipi Flip-Flop (Latch)
3-Durumlu Buffer (tampon):

26
Mikroişlemcili Sistemlerin Temel Kavramları
Cihaz Seçme Lojiği: Kod çözücü devreler

74HC30: 8-girişli NAND kapısı


27
Mikroişlemcili Sistemlerin Temel Kavramları
Cihaz seçme lojiği ve bir giriş portunun seçilmesi

28
Mikroişlemcili Sistemlerin Temel Kavramları
Cihaz seçme lojiği ve bir çıkış portunun seçilmesi

29
Mikroişlemcili Sistemlerde Hafıza (Bellek)
Hafıza Birimleri RAM ve ROM Hakkında:
RAM ve ROM birimleri, mikroişlemcili sistemin çalışması için gereken verileri
ve programları tutan adreslenebilir saklayıcılar topluluğudur. Bu birimler,
sistem yoluna adres, veri, kontrol sinyalleri ve hafıza kod çözücü devreler ile
bağlıdır.
– ROM (Read Only Memory) Salt okunabilir hafıza:
Mikroişlemci çalışırken gerekli olan program kodları ve değişmeyen
(sabit) veriler burada saklanır.
• Kullanım esnasında kayıtlı veriler değiştirilemez ve enerji
kesildiğinde bu veriler kaybolmaz (Nonvolatile)

– RAM (Random Access Memory) Rastgele Ulaşılabilir Hafıza, veya


RWM (Read Write Memory) Okunabilir-Yazılabilir Hafıza:
Mikroişlemci çalışırken gerekli olan anlık verileri saklar
• Enerji kesilince veriler kaybolur

1
Temel Hafıza Kavramları
D-tipi Flip-Flop ve 1-bit Saklayıcı:
Bir sayısal sistemin saklayabileceği en küçük bilgi birimi lojik 1 veya lojik 0
değerine sahip ikili (binary) bilgi, veya 1-bit’tir. Bu 1-bit veri, 1-bit saklayıcı
olarak kullanılan flip-flop’ta saklanır. Bir flip-flop, genel bir hafıza hücresidir ve
enerjisi kesilmediği sürece veya dış sinyaller ile durumu değiştirilmediği sürece
lojik durumunu sürekli korur. En basit flip-flop tipi D-tipi flip-flop’tur.

2
Temel Hafıza Kavramları
D-tipi Flip-Flop ve Latch:

(a) Pozitif (yükselen) kenar tetiklemeli D-tipi Flip-Flop


(b) Negatif (düşen) kenar tetiklemeli D-tipi Flip-Flop
(c) Pozitif seviye tetiklemeli D-tipi Flip-Flop (Latch)
(d) Negatif seviye tetiklemeli D-tipi Flip-Flop (Latch)

3
m-bit Saklayıcı: (m-bit hafıza)

4
Ortak Yol Oluşturma Problemi
3-Durumlu Buffer (tampon):

Bir lojik cihazı, ortak bir yola bağlamak için, bu cihazın çıkışında bir 3-durumlu buffer
kullanmak gerekir. Bir 3-durumlu buffer, 3 çıkış durumuna sahiptir. Bu durumlardan ikisi
lojik 0 ve lojik 1’dir. Buffer kontrol girişi ile aktiflendiğinde (enabled), çıkışı lojik 1 veya
lojik 0’dır. Yani çıkış empedansı düşük olur ve buffer, çıkışta bağlı olduğu devrelere ya
kaynak olur, ya da kendisi akım çeker. Buffer pasiflendiğinde (disabled) oluşan üçüncü
durum, klasik bir lojik seviye çıkışı olmayıp yüksek empedans (high empedance)
durumuna karşı gelir. Bu yüksek empedans durumu çıkışa bağlı herhangi bir devreyi
sürmeye veya yüklemeye engel olur. Böylece, 3-durumlu bir cihaz pasiflendiğinde,
fiziksel olarak bağlı olduğu lojik devrelerden elektriksel olarak ayrılır.

5
3-Durumlu Çıkışlara sahip m-bit Saklayıcı:

6
3-Durumlu Çıkışlara sahip 8-bit Saklayıcı:

3-durumlu çıkışlara sahip 8-bit (octal) saklayıcıların blok şema gösterimi


(a) 3-durumlu çıkışlara sahip pozitif (yükselen) kenar tetiklemeli D-tipi flip
flop örneği: 74x374 ve 74x574
(b) 3-durumlu çıkışlara sahip pozitif (yükselen) kenar tetiklemeli D-tipi flip
flop (D-tipi Latch) örneği: 74x373 ve 74x573

7
Saklayıcılar Arası Tek Yönlü Veri Transferi:

8
Saklayıcılar Arası Tek Yönlü Veri Transferi:
Adres kod çözümü (address decoding) mantık devresi

74x139: Dual 2x4 Decoder


9
Saklayıcılar Arası Tek Yönlü Veri Transferi:
Soldaki saklayıcılardan sağdakilere peş peşe iki veri transferinin zamanlama diyagramı

10
Saklayıcılar Arası İki Yönlü Veri Transferi:

11
Saklayıcılar Arası İki Yönlü Veri Transferi:
Adres kod çözümü (address decoding) mantık devresi

74x138: 3x8 Decoder


12
4x3 Bit Hafızanın Lojik Diyagramı:

13
İki Yönlü Veri Yoluna Sahip 3-Bit Hafıza Hücresi

14
4x3 Bit Hafızanın Gösterimi:

15
Hafızanın Kapasiteleri ve Adresleme için Gerekli Bit Uzunlukları:
Hafıza Kapasitesi Kelime Sayısı Adresleme için Gerekli Bit Sayısı
1K 1024 10-bit
2K 2048 11-bit
4K 4096 12-bit
8K 8192 13-bit
16K 16384 14-bit
32K 32768 15-bit
64K 65536 16-bit
128K 2 x 64K 17-bit
256K 4 x 64K 18-bit
512K 8 x 64K 19-bit
1M 1024 x 1024 (16 x 64K) 20-bit
16M 16 x 1M 24-bit
1G 1024 x 1024 x 1024 30-bit
4G 4 x 1G 32-bit
1T 1024 x 1024 x 1024 x 1024 40-bit
16
Statik RAM (SRAM) – İç Yapısı
Doğrusal Seçimli (Linear Selection) SRAM:

• Bir satır uzunluğu, bir kelimedeki bit sayısına (B) eşittir.


• Bir sütun uzunluğu, hafızada yer alan kelime sayısına (W) eşittir.
• Kelime seçimi için W kelime içinden 1 tane kelime seçen bir kod çözücü kullanılır.
• Kod çözücünün çıkışı, hafıza dizisi içinden sadece bir tane kelime seçer.
• Çok sayıda kelime için geniş tümdevre alanı kapsayan büyük bir kod çözücü devre
gerektirir. Az sayıda kelimeye sahip hafızalar için bu yapı uygundur fakat büyük
hafızalar için uygun değildir.
17
Statik RAM (SRAM) – İç Yapısı
İki Seviyeli Kod Çözümü (Two Level Decoding)

• İki kod çözücü gerekir: Biri fiziksel kelime seçen satır kod çözücü, diğeri sütün kod
çözücüdür. Sütun kod çözücü, seçili fiziksel kelimeden lojik kelimeyi seçen çoktan
seçicilerdir (multiplexer).
• Bir fiziksel kelime S tane segmente (lojik kelimeye) ayrılır. Satır kod çözücü ile seçili
BxS uzunluğuna sahip bir fiziksel kelime içinden B-bit’lik bir kelimeyi alabilmek için B
tane S-içinden-1-tane seçen çoktan seçici (mux) kullanılır.
18
Statik RAM (SRAM) – Dış Yapısı
Bir hafıza cihazının dış yapısı dendiği zaman, tümdevre uçlarının lojik gösterimi
kastedilir. Statik RAM’lar yaygın olarak 1, 4 ve 8 bit kelime uzunluklarına
sahiptir. 8-bit veri yoluna sahip mikroişlemcili sistemlerde genellikle bir hafıza
modülü yeterlidir. 8-bit’ten daha uzun veri yoluna sahip olan ve büyük
kapasitelerde hafıza gerektiren ileri uygulamalarda, gerekli kelime ve bit
sayısını sağlamak için hafıza modüllerinin birleştirilmesi gerekir.
Bazı SRAM Örnekleri:
Hafıza Kapasite Uç Sayısı Kontrol Hatları I/O Tipi
2115A 1K x 1-bit 16 CS , WE Ayrı
2147H 4K x 1-bit 18 CS , WE Ayrı
51C67 16K x 1-bit 20 CS , WE Ayrı
2114A 1K x 4-bit 18 CS , WE Ortak
6168 4K x 4-bit 20 CS , WE Ortak
6116 2K x 8-bit 24 CS , WE , OE Ortak
6264 8K x 8-bit 28 CS , WE , OE Ortak
62128 16K x 8-bit 28 CS , WE , OE Ortak
62256 32K x 8-bit 28 CS , WE , OE Ortak
19
Statik RAM (SRAM) – Dış Yapısı

• SRAM girişlerine adres, veri ve kontrol sinyalleri uygulanır. Ayrıca, güç ve


toprak bağlantılarına da ihtiyaç vardır. Önceki sayfada verilen tablodaki
hafızaların çalışma gerilimi +5V’tur.
• Yukarıdaki şekilde tipik bir SRAM hafızanın blok diyagram gösterimi
verilmiştir. Burada n-tane adres hattı, A0’dan An-1’e kadar olan sinyalleri
gösterir. Bu girişlerin, hafıza modülü içinde seçmiş olduğu bir kelime
üzerinde okuma veya yazma işlemi yapılır.
20
Statik RAM (SRAM) – Zamanlama
SRAM Hafızadan Okuma İşlemi:
1. Hafıza adres girişlerine bir adres uygulanır.
2. CS girişine lojik 0 uygulanarak SRAM seçilir.
3. Seçilen hafıza hücresinin içeriği, erişim zamanına (access time) eşit bir
süre sonra, veri çıkışlarında gözükür.
4. Adres hatları, diğer bir hafıza hücresini okumak veya yazmak için
değiştirilebilir.

Bu adımların zamanlama diyagramı ile gösterimi aşağıdaki gibidir.

21
Statik RAM (SRAM) – Zamanlama
SRAM Hafızaya Yazma İşlemi:
1. Hafıza adres girişlerine bir adres uygulanır.
2. CS girişine lojik 0 uygulanarak SRAM seçilir.
3. Hafızaya yazılacak veri, hafızanın veri girişlerine uygulanır.
4. WE girişine lojik 0 uygulanır.
5. Adres hatları, diğer bir hafıza hücresini okumak veya yazmak için
değiştirilebilir.

Bu adımların zamanlama diyagramı ile gösterimi aşağıdaki gibidir.

22
EPROM – Program Hafızası
Aşağıda 16Kx8 kapasiteli bir EPROM’un devre içerisinde çalışması sırasındaki
bağlantıları görülmektedir.

27128A EPROM’un (a) devre içinde çalışması (b) EPROM programlayıcıda


programlanması durumunda çalışması.

EPROM sadece okunabilir bir hafıza olduğu için WE girişi yoktur. CE girişi
SRAM’da bulunan CS girişiyle aynı göreve sahiptir. OE girişi ise EPROM’un
3-durumlu çıkış buffer’larını kontrol etmek için kullanılır.
23
EPROM – Program Hafızası
Bazı EPROM Örnekleri:
Hafıza Kapasite Uç Sayısı Kontrol Hatları I/O Tipi
2716 2K x 8 24 CS , OE Ortak
2732A 4K x 8 24 CS , OE Ortak
2764A 8K x 8 28 CS , OE Ortak
27128A 16K x 8 28 CS , OE Ortak
27256 32K x 8 28 CS , OE Ortak
27512 64K x 8 28 CS , OE Ortak

24
Hafıza Sistem Tasarımı
Hafıza Adres Alanı: Bir mikroişlemcinin sağladığı adres bitlerinin sayısı,
işlemcinin doğrudan adresleyebileceği hafıza hücresinin sayısını (alanını) verir.
Hafıza Adres Haritası: Bir mikroişlemciye ait hafıza adres alanının bir şekil
üzerinde gösterilmesine hafıza adres haritası (memory map) denir.
Bir çok 8-bitlik mikroişlemci 16-bit adres hattına sahip olup hafıza adres alanı
aşağıdaki şekildeki gibidir. Bu alan 64Kbyte olup, 0000H adresinden başlayıp
FFFFH adresinde biter.

25
Hafıza Sistem Tasarımı
Hafıza adres tasarımının adımları:
1. Uygulama için gerekli ROM ve RAM miktarı yaklaşık olarak belirlenir.
2. Her hafıza çeşidi için, mikroişlemcinin hafıza alanı göz önüne alınarak,
hafıza alanı belirlenir ve ilk hafıza haritası çizilir.
3. Kullanılacak hafıza birimleri seçilir.
4. Gereken kelime sayısı ve kelime uzunluğunu verecek şekilde hafıza
birimleri birleştirilerek detaylı hafıza haritası çizilir.
5. Adres ve kontrol sinyallerinin kodunu çözecek lojik devre, yani hafıza kod
çözücü (memory decoder) tasarlanır.
6. Eğer gerekiyorsa, sinyal güçlendirme için buffer kullanılır.
7. Hafıza birimleri ile mikroişlemcinin hızları göz önüne alınır. İşlemciye göre
hafıza birimleri yavaş ise, işlemciye bekletme durum (wait state) lojiği
eklenir.

26
Hafıza Sistem Tasarımı
Bir mikroişlemcili sistemde 4 farklı veri transferi yapılır. İntel işlemcilerine ait
üç temel kontrol sinyali RD, WR, ve IO/M kullanılarak yapılan bu veri
transferleri aşağıdaki tabloda verilmiştir.

Veri Transferi RD WR IO/ Çevrim Açıklama


µI ← Ha za 0 1 0 MEMR Hafızadan Okuma
µI → Ha za 1 0 0 MEMW Hafızaya Yazma
µI ← IO 0 1 1 IOR Giriş Biriminden Okuma
µI → IO 1 0 1 IOW Çıkış Birimine Yazma

Örneğin 8085A mikroişlemcisinin sistem yolunda aşağıdaki sinyaller bulunur:

• 16-bit adres yolu: A15 – A0


• 8-bit veri yolu: D7 – D0
• Kontrol sinyalleri: RD, WR, ve IO/M

27
Hafıza Sistem Tasarımı
Örnek-1: 8085A mikroişlemcisine ait bir hafıza sisteminde 4Kx8 EPROM ve
2Kx8 RAM bulunmaktadır. Bu sisteme ait hafıza sistem tasarımını yapınız.

Çözüm: Bu hafızalardan EPROM, mikroişlemcinin hafıza haritasında 0000H


adresinden başlayacaktır. EPROM’un bitiş adresinden hemen sonra RAM
gelecektir. Bu durumda hafıza haritası aşağıdaki gibi olur.

28
Hafıza Sistem Tasarımı
Örnek-1: Adres bit haritası

29
Hafıza Sistem Tasarımı
Örnek-1: Tam kod çözümü yapılmış hafıza sistemi lojik tasarımı

30
Hafıza Sistem Tasarımı
Örnek-2:

31
Hafıza Sistem Tasarımı
Örnek-2:

32
Hafıza Sistem Tasarımı
Örnek-3:

33
Hafıza Sistem Tasarımı
Örnek-3:

34

You might also like