Transcript 1. Hafta

Mikrodenetleyiciler
Ders Notu
Yrd.Doç.Dr. Kadir VARDAR
Mikrodenetleyiciler
1
Dersin İşlenişi ve Değerlendirme
Sınavlar, Ödevler ve Projeler
Ara Sınav
Final
Ödev (Zorunlu)
Proje (İsteğe Bağlı)
%35
%50
%15
%20 (Bonus)
Zorunlu Ödev
Derste İşlenen Uygulamalara benzer, EasyPIC4 setinde test edilecek
bir konuda öğrencinin tercihine bırakılmış bir proje.
Rapor: Max. 3 sayfa, kapak olmayacak, Öğrenci Adı, Numarası, Proje
Kaynak Kodu ve Amacı , Isis simülayon ekranı.
Uygulama: Yazılmış uygulamalar Öğretim Elemanı gözetiminde
Laboratuarda öğrenci tarafından yüklenip test edilecektir.
Mikrodenetleyiciler
2
İçerik
 Gömülü (Embedded) Sistemlere Giriş
 Mikroişlemcilerin Temel Prensipleri ve
Mimarileri
 PIC Mikrodenetleyiciler ve Yapıları
 Programlama ve ASSEMBLY Dili
 PIC 16F877 ile Assembly Uygulamaları
 MikroC C derleyici ve Uygulamaları
 Arm Mikrodenetleyiciler
 DSP Sayısal Kontrol Denetleyici
Uygulamaları
Mikrodenetleyiciler
3
GÖMÜLÜ SİSTEMLERE GİRİŞ
(INTRODUCTION OF EMBEDDED SYSTEMS)
1.Hafta
Mikrodenetleyiciler
4
Gömülü Sistemler
(Embedded Systems)
Gömülü sistem, bilgisayarlı bir kontrol
donanımı ve yazılımı içeren özel amaçlı bir
sistemdir. Genel maksatlı, örneğin kişisel
bilgisayar gibi bir bilgisayardan farklı
olarak, gömülü bir sistem kendisi için
önceden özel olarak tanımlanmış görevleri
yerine getirir.
Gömülü sistemlerdeki yazılımlar, donanım
kısıtlarına rağmen genelde gerçek-zamanlı
(real-time) çalışırlar.
Mikrodenetleyiciler
5
Gömülü Sistem Uygulamaları
• Banka ATM’ leri
• Uçuş kontrol donanım/yazılımı ve uçak ve
füzelerdeki diğer tümleşik sistemlerden
oluşan havacılık elektroniği modülleri
• Cep telefonları
• Router gibi bilgisayar ağ ekipmanları
• Bilgisayar yazıcıları
• Fotokopi makineleri
• Termostat, klima ve güvenlik izleme
sistemleri gibi ev otomasyonu ürünleri
• Hesap makineleri
• Mikro dalga fırınlar, çamaşır makinesi,
televizyon setleri
• DVD oynatıcı/kaydedici gibi ev elektroniği
ürünleri
• Tıbbi ekipmanlar
• Endüstriyel otomasyon ve izleme için PLC’
ler
Mikrodenetleyiciler
6
Gömülü İşletim Sistemleri
1. ECos
2. FreeRTOS
3. Gömülü Linux
4. JavaOS
5. LynxOS
6. Mobilinux
7. Nucleus RTOS
8. Palm OS
9. Prex
10. Micrium OS
11. Windows CE
12. Windows XP Embedded
Mikrodenetleyiciler
7
Programlanabilir Gömülü Sistemler Elemanları
•
•
•
•
Mikroişlemciler
Mikrodenetleyiciler
Dijital Sinyal İşlemcileri
Programlanabilir Lojik Aygıtlar,
PLD,CPLD ve FPGA
Mikrodenetleyiciler
8
Mikroişlemci ve Mikroişlemci Sistemi
Mikrodenetleyiciler
9
PC Anakart Form Faktörleri
Mikrodenetleyiciler
Tip ve Boyut (mm)
WTX
AT
Baby-AT
BTX
ATX
EATX (Extended)
LPX
microBTX
NLX
Ultra ATX
microATX
DTX
FlexATX
Mini-DTX
EBX
microATX (min.)
Mini-ITX
EPIC (Express)
Mini ATX
ESM
Nano-ITX
COM Express
ESMexpress
ETX/XTX
Pico-ITX
PC/104 (-Plus)
ESMini
Qseven
mobile-ITX
CoreExpress
(356×425)
(350×305)
(330×216)
(325×266)
(305×244)
(305×330)
(330×229)
(264×267)
(254×228)
(244×367)
(244×244)
(244×203)
(229×191)
(203×170)
(203×146)
(171×171)
(170×170)
(165×115)
(150×150)
(149×71)
(120×120)
(125×95)
(125×95)
(114×95)
(100×72)
(96×90)
(95×55)
(70×70)
(60×60)
(58×65)
10
Mikrodenetleyiciler
11
Mikrodenetleyiciler
Mikrodenetleyiciler
12
Mikrodenetleyiciler





















ARM core processors (many vendors)
ARM Cortex-M cores are specifically targeted towards microcontroller applications
Atmel AVR (8-bit), AVR32 (32-bit), and AT91SAM (32-bit)
Cypress Semiconductor's M8C Core used in their PSoC (Programmable System-on-Chip)
Freescale ColdFire (32-bit) and S08 (8-bit)
Freescale 68HC11 (8-bit)
Intel 8051
Infineon: 8, 16, 32 (ARM based Cortex M4F), 32 Tricore Bit microcontrollers[9]
MIPS
Microchip Technology PIC, (8-bit PIC16, PIC18, 16-bit dsPIC33 / PIC24), (32-bit PIC32)
NXP Semiconductors LPC1000, LPC2000, LPC3000, LPC4000 (32-bit), LPC900, LPC700
(8-bit)
Parallax Propeller
PowerPC ISE
Rabbit 2000 (8-bit)
Renesas Microcontrollers
32bit microcontrollers: RX, V850, SuperH, R32C, H8SX
16bit Microcontrollers: RL78, H8, M16C, R8C, 78K0R
8bit Microcontrollers: 78K0
Silicon Laboratories Pipelined 8-bit 8051 Microcontrollers and mixed-signal ARM-based
32-bit microcontrollers
STMicroelectronics STM8 (8-bit), ST10 (16-bit) and STM32 (32-bit)
Texas Instruments TI MSP430 (16-bit) C2000 (32-bit)
Toshiba TLCS-870 (8-bit/16-bit).
Mikrodenetleyiciler
13
Örnek bazı DSP türleri
Firma
DSP
Clock Hızı
(MHz)
Flash (kB)
PWM kanalları, hızı
(duty cycle)
Microchip
dsPIC30F
30
6–144
4–8 (16 bits, 1 or 16.5 ns
depending on part)
dsPIC33F
40
12–256
up 18 PWM (16 bits, 12.5
ns)
dsPIC33E
70
64-512
up 16 PWM (16 bits, 8.32
ns)
TMS320F28x
60–150
32–512
16 PWM (13 bits, 150 ps)
TMS320LF240x
40
16–64
7–16 PWM (11 bits, 150 ps)
MC56F83x
60
48–280
12 PWM (15 bits, 10 ns)
MC56F80x
32
12–64
5–6 PWM (15 bits, 10 ns)
MC56F81x
40
40–572
12 PWM (15 bits, 10 ns)
Texas Instruments
Freescale
Mikrodenetleyiciler
14
PLD, CPLD ve FPGA
Mikrodenetleyiciler
Seri ve Paralel programlama
15
MİKROİŞLEMCİ
MİMARİLERİ VE
TEMEL PRENSİBLERİ
2.Hafta
Mikrodenetleyiciler
16
Genel Şema
Mikrodenetleyiciler
17
Temel Birimler
Giriş / Çıkış (Input / Output) : Sayısal, analog ve özel fonksiyonlardan
oluşur ve mikroişlemcinin dış dünya ile haberleşmesini sağlar.
CPU (Central Processing Unit – Merkezi İşlem Birimi) : Sistemin en
temel işlevi ve organizatörüdür. Bilgisayarın beyni olarak
adlandırılır.Komutları yürütmek, hesapları yapmak ve verileri koordine
etmek için 4, 8, 16, 32 ve 64 bitlik sözcük uzunluklarında çalışır.
Hafıza : RAM, ROM, PROM, EPROM, EEPROM veya bunların herhangi bir
birleşimi olabilir. Bu birim, program ve veri depolamak için kullanılır.
Osilatör : Veri ve komutların CPU 'ya alınmasında, yürütülmesinde, kayıt
edilmesinde, sonuçların hesaplanmasında ve çıktıların ilgili birimlere
gönderilmesinde gerekli olan saat darbelerini üretmektir.
Mikrodenetleyiciler
18
Temel Birimler
Zamanlama ve Denetim Birimi: Bu kısım sitemin tüm işleyişinden ve
işlemin zamanında yapılmasından sorumlu olan birimdir. Bu birim bellekte
program bölümünde bulunan komut kodunun alınıp getirilmesi, kodunun
çözülmesi, ALU tarafından işlenip, sonucun alınıp belleğe yüklenmesi için
gerekli olan denetim sinyalleri üretir.
İletişim yolları: Mikroişlemci mimarisine girmese de işlemciyle ayrılmaz bir
parça oluşturan iletişim yolları kendi aralarında üçe ayrılır.
Adres yolu (Address Bus); komut veya verinin bellekte bulunduğu
adresten alınıp getirilmesi veya adres bilgisinin saklandığı yoldur.
Veri yolu (Data Bus); ise işlemciden belleğe veya Giriş/Çıkış birimlerine veri
yollamada yada tersi işlemlerde kullanılır.
Kontrol yolu ise sisteme bağlı birimlerin denetlenmesini sağlayan özel
sinyallerin oluşturduğu bir yapıya sahiptir.
Mikrodenetleyiciler
19
Veri Yolları
Mikrodenetleyiciler
20
Kaydediciler (Register)
Flip-floplardan oluşan birimlerdir. Kaydediciler genel amaçlı ve özel amaçlı
olmak üzere iki grupta incelenmektedir.
Genel amaçlı kaydediciler grubuna A, B ve X gibi kaydediciler girer.
Özel amaçlı kaydediciler ise;
PC (Program Counter, Program Sayacı), anlık icra edilen komutun adresi
bu kaydedicide tutulur.
SP (Stack Pointer- Yığın İşaretçisi)
ve Flags (Bayraklar)
verilebilir.
Bunların dışında işlemcide programcıya görünmeyen kaydediciler vardır. Bu
kaydedicileri alt düzey program yazan programcıların mutlaka bilmesi
gerekir. Bunlar;
IR(Instruction Register-Komut kaydedicisi),
MAR (Memory Address Register- Bellek adres kaydedicisi),
MBR (Memory Buffer Register- Bellek veri kaydedicisi),
DAR(Data Address Register- Veri adres kaydedicisi)
ve DR (Data register- Veri kaydedicisi) olarak ele alınabilir.
Mikrodenetleyiciler
21
Aritmetik Lojik Birim (ALU)
Aritmetik ve Mantık Birimi:
ALU mikroişlemcilerde aritmetiksel
ve mantıksal işlemlerinin yapıldığı
en önemli birimdir.
Aritmetiksel işlemler denilince akla
başta toplama, çıkarma, çarpma ve
bölme gelir. Komutlarla birlikte bu
işlemleri, mantık kapıları, bu
kapıların oluşturduğu toplayıcılar,
çıkarıcılar ve flipfloplar
gerçekleştirir.
Mantıksal işlemlere de AND, OR,
EXOR ve NOT gibi işlemleri örnek
verebiliriz.
Mikrodenetleyiciler
22
Bayraklar (Flags)
Aritmetik ve Mantık Birimi:
ALU içerisinde gerçekleştirilmiş
olan işlemin sonucuna ait bilgileri
içerir.
Eğer işlem sonucu Sıfır ise Zero
bayrağı lojik 1 olur.
Toplama veya çıkarma işlemi
sonucunda elde veya borç durumu
oluşmussa Carry bayrağı lojik1 olur.
Mikrodenetleyiciler
23
7-SEGMENT DISPLAY
Mikrodenetleyiciler
24
16 bit Mimari
Mikrodenetleyiciler
25
32 bit Mimari
Mikrodenetleyiciler
26
Von Neuman Mimarisi
Bu mimaride veri ve komutlar bellekten tek bir yoldan
mikroişlemciye getirilerek işlenmektedir.
Program ve veri aynı bellekte bulunduğundan, komut ve
veri gerekli olduğunda aynı iletişim yolunu kullanmaktadır.
Bu durumda, komut için bir algetir saykılı, sonra veri için
diğer bir algetir saykılı gerekmektedir.
Mikrodenetleyiciler
27
Harvard Mimarisi
Harvard mimarili bilgisayar sistemlerinde veri ve komutların ayrı ayrı belleklerde
tutulur. Buna göre, veri ve komut aktarımında iletişim yolları da bir birinden
bağımsız yapıda bulunmaktadırlar.
Komutla birlikte veri aynı saykıl da farklı iletişim yolundan ilgili belleklerden
alınıp işlemciye getirilebilir. Getirilen komut işlenip ilgili verisi veri belleğinden
alınırken sıradaki komut, komut belleğinden alınıp getirilebilir. Bu önden alıp
getirme işlemi, dallanma haricinde hızı iki katına çıkarabilmektedir.
Mikrodenetleyiciler
28
CISC (Complex Instruction Set
Computer) Mimarisi
Bu mimari, programlanması kolay ve etkin
bellek kullanımı sağlayan tasarım felsefesinin
bir ürünüdür. İşlemci üzerinde performans
düşüklüğü ve işlemcinin karmaşık bir hale
gelmesine neden olsa da yazılımı
basitleştirmektedir.
Bu mimarinin en önemli iki özelliği, değişken
uzunluktaki komutlar diğeri ise karmaşık
komutlardır.
Değişken ve karmaşık uzunluktaki komutlar
bellek tasarrufu sağlar.
Karmaşık komutlar birden fazla komutu tek bir
hale getirirler. Karmaşık komutlar aynı
zamanda karmaşık bir mimariyi de oluşturur.
Mikrodenetleyiciler
29
RISC (Reduced Instruction Set
Computer) Mimarisi
RISC mimarisinin en önemli özelliği
küçültülen komut kümesi ve azaltılan
adresleme modları sayısıdır. Bunun
yanında aşağıdaki özelliklere sahiptir.
• Bir çevrimlik zamanda komut
işleyebilme
• Aynı uzunluk ve sabit formatta komut
kümesine sahip olma
• Ana belleğe sadece “load” ve “store”
komutlarıyla erişim; operasyonların
sadece kaydedici
• üzerinde yapılması
• Yüksek seviyeli dilleri destekleme
• Çok sayıda kaydediciye sahip olması
Mikrodenetleyiciler
30
Komut Biçimleri
Mikrodenetleyiciler
31
Fetch-Execute
Mikrodenetleyiciler
32
Adresleme Modları
1- Anında Adresleme (Immediate Addressing)
Opcode+Operand(Verinin kendisi)
2- Mutlak Adresleme (Absolute Addressing)
Operand taki bilgi, verinin bulunduğu kaydedicinin adıdır.
3- Doğrudan Adresleme (Direct Addressing)
Opcode+Operand(Verinin adresi)
4- Dolaylı Adresleme (Indirect Addressing)
Opcode+Operand(Bu adreste verinin adresi bulunur)
5- Sıralı Adresleme (Indexed)
Sıralama kaydedicinde veri dizisinin ilk elemanın adresi bulunur. Bu adres
baz alınarak diğer verilere erişilir.
6- Bağıl Adresleme (Relative)
Dallanma komutlarında, gidilecek yerin PC de adresten ne kadar uzakta
olduğunu gösterir.
Mikrodenetleyiciler
33
Bellek Organizasyonu
Mikrodenetleyiciler
34
Bellek Genişletme (Enine)
64Kx4 bit ile 64Kx8bit ROM elde etme
Mikrodenetleyiciler
35
Bellek Genişletme (Boyuna)
1Mx8 bit ile 2Mx8bit ROM elde etme
Mikrodenetleyiciler
36