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