ARM M4 Nesil İşlemci ve Stellaris LM4F120H5QR programlama kartı

Slides:



Advertisements
Benzer bir sunumlar
Bilgi Teknolojisinin Temel Kavramları
Advertisements

ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama
ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama
BİLGİSAYAR DONANIM ELEMANLARI
BİLİŞİM TEKNOLOJİLERİ
BİLİŞİM TEKNOLOJİLERİ
Dijital Dünyada Yaşamak
BİLGİSAYAR NEDİR?.
Bilgi Teknolojisinin Temel Kavramları
BİLGİSAYAR SİSTEMİ.
Numbers of Opcodes Nihal Güngör.
Bölüm 1: Introductions (Tanıtım,Tanım)
BİLGİSAYAR DONANIMI SELİN POSBIYIK 9/H 551 SIDIKA RODOP ANADOLU LİSESİ
CPU (Merkezi İşlem Ünitesi)
CEIT 101 Teorik Emrah Soykan - Konu 2 -.
CEIT 101 Teorik Vasfi Tuğun - Konu 2 -.
BİLGİ TEKNOLOJİSİNİN TEMEL KAVRAMLARI
Donanımlar Uzm. Murat YAZICI.
66 CHAPTER SİSTEM UNITESİ. © 2005 The McGraw-Hill Companies, Inc. All Rights Reserved. 6-2 Sistem Üniteleri Mikro bilgisayarlar Masaüstü Dizüstü Tablet.
BİLGİSAYAR DONANIM ELEMANLARI
BİLGİSAYARIN MİMARİSİ, TEMEL BİLEŞENLERİ VE ÇALIŞMA MANTIĞI
Mikroişlemciler ve Mikrobilgisayarlar
DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ
DERS 5 PIC 16F84 PROGRAMLAMA.
Bilgisayar nedir? Bilgisayar; Zor ve karışık hesaplar yapabilen büyük miktarlardaki bilgileri depolama kapasitesine sahip otomatik bir cihazdır.
CPU.
BİLGİSAYAR SİSTEMLERİ
İŞLEMCİ MİMARİLERİ – Derya Işık
Bilişim Teknolojileri Öğretmeni İsmail ÖZTÜRK
DEPOLAMA.
DEPOLAMA.
DEPOLAMA.
DONANIM VE YAZILIM.
Bilgi Teknolojisinin Temel Kavramları
Hafta2 Bilgisayar Donanımı Dersi
ARM TABANLI İŞLEMCİLER
CCS C İLE PIC PROGRAMLAMA DERS-3-
DONANIM VE YAZILIM Hazırlayan: Ad Soyad.
Bilgi Teknolojisinin Temel Kavramları
BİLGİSAYAR MİMARİLERİ 2.Hafta: Bilgisayar Bileşenleri
ENDÜSTRİYEL GÖMÜLÜ BİLGİSAYAR SİSTEMLERİ
BİLİŞİM TEKNOLOJİSİNİN TEMELLERİ
Information Technology, the Internet, and You © 2013 The McGraw-Hill Companies, Inc. All rights reserved.Computing Essentials 2013.
VERİ ve BELLEK & DEĞİŞKENLERİN SAKLANMASI Asst.Prof.Dr.Misket YEKTAY Gizem AYIK.
BELLEKLER Bellekler, bilgi depolama üniteleridir. Bilgisayarlar her türlü bilgiyi (resim, ses, yazı gibi) ikilik sayılar ile kullanır ve saklar. Bir bilgi.
Bilgisayar Donanımı Dersi
Merkezi İşlem Birimi (CPU) Girilen bilgilerin işlendiği ve sonuçların üretildiği birimdir. Gelen bilgilerin hangi birime gideceğine işlemci karar verir.
İŞLEMCİLER İŞLEMCİLER.
DEPOLAMA.
BİLGİSAYAR NEDİR?.
Bilgisayar Donanımı Dersi
DERS 5 PIC 16F84 PROGRAMLAMA.
Mikrobilgisayar Tasarım Yapıları
Bilgisayar Donanım ve Sistem Yazılımı
Mikroişlemciler Giriş.
BİLGİSAYAR DONANIM ELEMANLARI * Fiziksel olarak bir bilgisayarı oluşturan tüm birimlerdir. * Donanım somut bir kavramdır. Bu nedenle donanımı, elle tutulur,
Mikroişlemcili Sistem Tasarımı
İşletim Sistemleri (Operating Systems)
Bilgisayar Mühendisliğine Giriş
Mikrobilgisayar Tasarım Yapıları
İşletim Sistemleri (Operating Systems)
BİLİŞİM TEKNOLOJİLERİ
BİLGİSAYAR MÜHENDİSLİĞİNE GİRİŞ
BİLGİSAYAR DONANIM ELEMANLARI * Fiziksel olarak bir bilgisayarı oluşturan tüm birimlerdir. * Fiziksel olarak bir bilgisayarı oluşturan tüm birimlerdir.
BİLGİSAYAR DONANIM ELEMANLARI * Fiziksel olarak bir bilgisayarı oluşturan tüm birimlerdir. * Fiziksel olarak bir bilgisayarı oluşturan tüm birimlerdir.
NİŞANTAŞI ÜNİVERSİTESİ
Bellekler.
ANAKARTLAR.
Bilgisayar Donanımı Dersi Bilgisayarın Mimarı Yapısı ve Çalışma Mantığı.
Sunum transkripti:

ARM M4 Nesil İşlemci ve Stellaris LM4F120H5QR programlama kartı Mikroişlemciler-II ARM M4 Nesil İşlemci ve Stellaris LM4F120H5QR programlama kartı

Gömülü sistemler Gömülü sistemler bir mikrobilgisayar sistemi olarak düşünülebilir. Burada bahsedilen üç terim açılırsa; Gömülü Mikro Bilgisayar

Gömülü sistemler Çekirdeğinde mikrodenetleyici bulunan ve diğer çevre birimleri ile donatılmış (sensörler, sürücüler vb.) olan her türlü elektronik cihaza uygulanabilen sistemlerdir. Genellikle, donanım ve mekanik parçalarını içeren bir tam donanımlı cihazın bir parçası olarak yerleştirilmiştir. Gömülü sistemler genel amaçlı bilgisayarlar şeklinde değil, özel tanımlanmış fonksiyon ve görevleri yerine getiren sistemlerdir. Günümüzde VLSI teknolojisinin gelişmesi ile gömülü sistemler son derece ucuz hale getirilmiş ve birçok elektronik cihazın kontrol edilmesinde kullanılmaktadırlar. NOT: Çok Geniş Ölçekli Tümleşim (VLSI-Very Large Scale Integration), binlerce transistörün tek bir yonga üzerinde birleştirilmesi ile Tümleşik Devrelerin oluşturulması işlemidir. 

Gömülü sistemler Gömülü sistemlerde ROM (read only memory) hafıza birimi olarak kullanılır. ROM’da yazılım ve sabit datalar saklanır. RAM (Random access memory)’de ise geçici bilgiler tutulur. Birçok mikrobilgisayar sisteminde ayrıca EEPROM gibi (electrically erasable programmable ROM) yapıları mevcuttur. (SAAT ÖRNEĞİ)– Kolumuzdaki digital saatler birer gömülü sistemdir. İçerisinde yer alan ROM’a saatin özellikleri kaydedilmiştir. Biz saatin pilini değiştirdiğimizde bu özellikler saklanır ve enerji yeniden geldiğinde işlemci bu verileri okuyabilir. ROM’lar fabrika çıkışında programlanırlar ve bir daha ROM’lara veri yazılamaz. Bunun dışında RAM’ler geçici verileri saklamak için uygundur. Ancak enerji gittiğinde bu veriler kaybolur. Bu nedenle ROM’Lar sabit hafıza, RAM’ler ise geçici hafıza olarak adlandırılırlar.

Gömülü sistemler Şekildeki gömülü sistem mikrodenetleyici ve elektriksel mekaniksel, kimyasal ve optik sensörleri beraber bulunan yapılardır. Bu ders boyunca anlatılacak olan LM4F serisi çekirdek (işlemci) ve RAM,ROM ve I/Oları barındıran yapılar yer almaktadır.

Gömülü sistemler Şekilde örnek bir gömülü sistemin yapısı verilmiştir. Şekilde görüldüğü gibi gömülü sistemde birden fazla mikrobilgisayar olabilir. Mikrodenetleyiciler diğer bir ifade ile içerisinde işlemci, RAM, ROM ve I/O’lar ile işbirliği içinde olan ve tek çipte yer alan mikrobilgisayarlar düşük maliyetleri ve küçük yapıları nedeni ile gömülü sistemlerde tercih edilirler.

Gömülü sistemler LM4F serisi işlemciler içerisinde birçok I/O (paralel ve seri port), zamanlayıcılar, DAC’lar, ADC’ler içerir. I/O’lar mikrodenetleyicilerin en önemli parçalarındandır çünkü istenen özellikler I/O’lar üzerinden sağlanır. I/O’lara yüklenen özellikler ile her gömülü sistem farklı bir karaktere sahip olur. Mikrodenetleyiciler çoğunlukla birbirleri ile haberleşmek zorundadırlar. Bunlar dışında, insanlar ile iletişim kuran sistemlere ise Human-Computer interface (HCI) veya man-machine interface (MMI) adı verilir.

Gömülü sistemler Multimetreler tipik birer gömülü sistemdir. Bu sistemin iki adet girişi ve bir adet çıkışı vardır. Girişler siyah,kırmızı problar ve seçme düğmesidir.. Çıkış ise LCD ekrandır.

Gömülü sistemler İçerisinde görülen siyah çip işlemcidir. Bunun haricinde resimde de görüldüğü gibi batarya, sigorta ve birkaç dirençten başka bir içeriği yoktur.

Gömülü sistemler Daha önce bahsedildiği gibi mikrobilgisayarlar bir bilgisayarın bütün özelliklerini içermezler. Bir çok gömülü sistemde klavye, grafik ekran veya harici disk bulunmaz. Gömülü sistemler bir amaca yönelik tasarlanırlar ve sadece gerekli olan minimum donanımı içerirler.

Endüstri- robot, üretim ile ilgili geniş çapta uygulama alanı İnsanlar Özellikle tıp elektroniği Arabalar Evler Cep telefonu veya diğer iletişim cihazları Tüketici elektroniği (oyuncak gibi..) Görüldüğü gibi gömülü sistemler bir çok alanda uygulanmaktadırlar. Mevcut 5 milyardan fazla çeşit gömülü sistem uygulaması mevcuttur. Askeriye

Uygulama alanları Şekil 1’de gösterilen Mars yüzeyindeki robottan tutunda cep telefonları, Şekil 2.’de görülen taşınabilir multimedya cihazlar gömülü sistemlere örnektir. Hatta Şekil 2’de gösterilen diş fırçası dahi bir gömülü sistemdir. Örneğin, elektronik diş fırçasındaki mikrodenetleyici ayarlanabilir hız kontrolü ve batarya durumunu gösteren uyarıları yapmaktadır. Evlerimizde ortalama olarak 50’den fazla gömülü sistem kullanmaktayız. Dünyada her bilgisayara karşılık, 100’den fazla gömülü sistem yer almaktadır. Özet olarak, mikrodenetleyici üretiminin temel sebebini gömülü sistemler oluşturmaktadırlar.

Gömülü sistemler Gömülü sistemler seçilirken öncelikle kullanılacak işlemci türü seçilir. Örneğin, ARM serisi işlemciler kullanılacaksa az sayıda spesifik işlemlerin yapılacağı uygulamalarda M serisi işlemciler seçilir. Bu işlemciler doğrudan programlanarak gömülü sistem oluşturulur. Ancak grafik işlemleri ve daha çok işlemin aynı anda gerçekleşeceği sistemler için A serisi işlemciler tercih edilir. Bu tür işlemcilerde öncelikle işletim sistemi üzerinde program geliştirilir daha sonra gömülü sistem platformuna taşınır.

3

Uçak ve Askeri Sistemler Uçak otopilotları, havacılık elektroniği ve navigasyon sistemleri, otomatik iniş sistemleri, motor kontrol Biomedikal Sistemler CAT tarama, Ultrason görüntüleme sistemleri, hasta monitörleri, kalp temposu ölçen sistemler Arabalar Motor kontrol, frenleme sistemleri, yol tutuş sistemleri, airbag sistemleri, ısıtma ve klima kontrolleri, GPS haritalama, uydu radio, yol bilgisayarı Haberleşme Haberleşme uyduları, ağ yönlendiricileri, anahtarlar, hublar Tüketici elektroniği TVler, fırınlar, bulaşık makinaları, DVD oynatıcılar, güvenlik sistemleri, çim sulama sistemleri, termostatlar, kamera sistemleri ve benzer araçlar Bilgisayar çevre donanımları Fare, klavye, yazıcı, tarayıcı, grafik kartı, modem, hard disk sürücüleri Elektronik enstrümasyon Veri aktarım kartları, osiloskoplar, voltmetreler, sinyal jeneratörleri, lojik analizörler Endüstriyel cihazlar Asansör kontrol sistemleri, izleme (surveillance) sistemler, robotlar, CNC makineleri, PLC’ler, endüstriyel otomasyon ve kontrol sistemleri Ofis Cihazları Faks makineleri, fotokopi makineleri, hesap makineleri, yazar kasalar Kişisel Cihazlar Cep telefonları, taşınabilir MP3 cihazlar, PDA’lar, video oynatıcılar, elektronik kol saatleri, dijital kameralar, oyun konsolları, GPS sistemleri Robotlar Endüstriyel robotlar, otonom araçlar, uzay keşif robotları Oyuncaklar “Aibo”, “Furby” ve “Elmo” gibi oyuncaklar

Gömülü sistemler Gömülü sistem tasarımında tasarımcının tasarım amaçlarını gerçekleştirmesi istenir. Gömülü sistemler güvenilir olmalıdırlar. Gömülü sistemler yazılımsal arıza vermemelidir ya da yeniden başlatılamazlar. Gömülü sistemlerdeki yazılımlar güncellenemez. Birçok cihazda performans ve güç kullanım kısıtları vardır. Gerçek-zaman kısıtlamaları birçok uygulamada öne çıkar ve birçok cihaz sınırlı hafıza ve işlemci gücüne sahiptir. Bunlara ek olarak, tüketici cihazları piyasaya hızlıca girerler ve birçok rakipleri vardır.

Gömülü sistemler Gömülü sistemlerdeki bir başka önemli nokta ise gerçek zaman kısıtlamalarıdır. Gerçek-zaman (real-time) uygulamalarda giriş-hesap-çıkış süreleri mevcuttur. Gerçek zaman çalışan bir sistemin en kötü şartlar altında vereceği bir cevap süresi vardır. Buna gecikme süresi denir. Gerçek-zaman sistemlerde gecikme (cevap) süresi uygulanacak sistem ve teknolojisine bağlı olarak standartlarda belirlenen aralıklarda olmalıdır aksi takdirde kontrol başarısız/standart dışı olur.

Gömülü sistemler Anlatılanları tanımlayan gerçek-zaman gömülü sistem için bir örnek olarak aracınızdaki airbag kontrolcüsü verilebilir. Airbag kontrol sistemindeki hareket sensörleri (ivme ölçerler) bir çarpışma algıladıklarında, kontrolcü sistemin 10 ms içinde airbagleri serbest bırakması gerekmektedir aksi takdirde kontrol başarısız olur. Yüksek hızlarda, kontrol sistemindeki herhangi bir gecikme 10 ms’den uzun sürerse sürücü airbagler açılmadan direksiyona çarpmış olur.

Gömülü Sistem Tasarımında göz önünde bulundurulması gerekenler Test : Çok önemlidir çünkü bir çok durumda insan hayatı buna bağlı olabilir. Karlılık (profit) : gömülü sistem tasarlanırken market payı düşünülmeli ve maliyet göz önünde bulundurulmalıdır. Boyut: Tasarlanacağınız gömülü sistemin uygulayacağınız yere göre boyutu son derece önemli olabilir. Örneğin kalp pili gibi… Zaman: Gömülü sistemlerin doğru zamanda, doğru bir şekilde cevap vermesi çok önemlidir.

Yeni nesil Gömülü Sistemlerde Kullanılan İşlemci türleri Yeni nesil gömülü sistemler üzerine çalışan tasarımcılar arasında yapılan yapılan yıllık araştırmalar ile hangi tip mikrodenetleyiciler üzerine en çok çalışıldığını ortaya çıkarmaktadır. Şekil’de gösterildiği gibi en çok tercih edilen işlemci türleri 32 bit olanlardır. VLSI teknolojisinin gelişmesi, yazılımcıları daha büyük ve güçlü işlemcilere doğru yönlendirmiştir. Gömülü sistemler üzerine yapılan uygulama ve yazılımlar her geçen gün kompleksleşmekte ve daha geniş hafıza alanlarına ihtiyaç duyulmaktadır. 32 bit işlemcilerin 64 bite göre daha çok kullanılmalarının kesin bir sebebi olmamakla birlikte en büyük sebebinin markette üretilen 32 bit işlemcilerin daha fazla olması düşünülebilir. Bu durum mimari kaynaklı olabilir veya bir market stratejisi olarak görülebilir.

Yeni nesil Gömülü Sistemlerde Kullanılan İşlemci türleri Şekil’e bakıldığında 32-bit ve 64-bit olarak satılan mikrodenetleyiciler arasında yeni nesil gömülü sistemlerde en büyük markete sahip olan mikrodenetleyici türlerinin ARM ve X86 olduğu görülmektedir. RISC mimarisine sahip olan diğer MIPS, SuperH ve PowerPC ise marketi paylaşan diğer işlemci türleridir. RISC mimarisine sahip olan ARM işlemci Advanced Ltd tarafından geliştirilen ve ismini de Advanced RISC Machines’in baş harflerinin kısaltmasından alan bir işlemci türüdür.

Yeni nesil Gömülü Sistemlerde Kullanılan İşlemci türleri Günümüzde ARM işlemciler 100’den fazla üretici firma tarafından üretilmektedirler. ARM işlemciler, cep telefonlarında, iPod Nano, kamera, HDTV’lerde ve bunun gibi birçok cihazda kullanılmaktadırlar. Düşük güç yönetimi sebebiyle, ARM işlemcilerinin %80’i cep telefonlarında ve düşük güçte çalışması gereken sistemlerde tercih edilmektedirler.

Yeni nesil Gömülü Sistemlerde tercih edilen programlama dili Şekil’de ise gömülü sistemler geliştirilirken en çok tercih edilen dillerin sıralaması yer almaktadır. Şekil göstermektedir ki C dili gömülü sistemlerdeki en çok tercih edilen dil olmuştur. Yazılımcıların 3’te biri ise gömülü sistem tasarımları hazırlarken halen assembly dilini tercih etmektedirler. Aynı zamanda assembly ve C dilleri beraber kullanıldığı hibrit programlama da günümüzde yaygın olarak kullanılmaktadır.

İşlemci Birimleri Çekirdek (Core): Komut çalıştırma işlemlerini yapan bölümdür. Çalıştırma birimi (execution unit) olarak da bilinir. Bu ünite komutları çalıştırır ve pipeline (iş hattı) denen yollarla beslenip tamsayıları kullanarak okuma, değiştirme ve komut çalıştırma işlemlerini yapar. Çekirdek içerisinde ALU, Genel amaçlı register, Durum registeri (Status Register-SR) ve Program sayacı (Program counter –PC) bulunmaktadır.

İşlemci Birimleri (CPU) Aritmetik Lojik Birimi (ALU-Aritmethic Logic Unit): İşlemci tarafından gerçekleştirilecek matematiksel ve mantıksal işlemlerin yapıldığı bölümdür. İşlemcinin en önemli kısmını oluşturur. Gelişmiş işlemcilerde noktadan sonraki sayılar için matematiksel işlem yapan FPU (Floating Point Unit–Kayan nokta ünitesi) birimi bulunmaktadır. Bu ünite tamsayı olmayan floating point (kayar nokta) hesaplamalarından sorumludur.

İşlemci Birimleri (CPU) Register ve counter (Kaydedici ve Sayaçlar): Programların gerektiği durumlarda mikrodenetleyicinin kullandığı dahili geçici hafızalara kaydedici (register) denir. Sayaçlar ise program adresi ve yığın adresi gibi bilgileri saklayan hafıza hücreleridir. Kaydedicilere yazmaçta denilmektedir. Yazmaçlar üzerinde işlem yapılacak verileri tutarlar.

İşlemci Birimleri (CPU) Program counter (PC) : Bu birim içinde çalıştırılacak bir sonraki komutun hafızadaki adresini bulundurur. Bu komutun çalıştırılma zamanı geldiğinde kontrol ünitesi komutu işlenmek üzere hafızadan alır ve işlemci üzerindeki Instruction Register (komut kaydedici) denen bölüme işlenmek üzere aktarır.

İşlemci Birimleri (CPU) Status register (SR) : Komut işlendikten sonra hesaplamayı yapan birim Status Register (SR) denen yazmacın değerini değiştirir, bu yazmaçta bir önceki işlemin sonucu saklıdır. Kontrol ünitesi bu yazmaçtaki değeri kullanarak sonuca göre gerekli komutları çalıştırabilir.

İşlemci Birimleri (Hafıza) Değişken Hafıza RAM- random Access memory (volatile memory):Hem okunabilir hem de yazılabilir hafıza olan RAM mikrodenetleyicilerde veri hafıza olarak kullanılır. RAM’lerin beslemeleri kesildiğinde içerdikleri veriler kaybolur, silinir Sabit Hafıza ROM- read only memory (non- volatile memory): Sadece okunabilir hafıza olan ROM mikrodenetleyicilerde program hafıza olarak kullanılır. ROM hafıza üretim esnasında programlanır (Factory Mask ROM) ve kullanıcı ROM’un içerdiği veriyi sadece okuyabilir, değiştiremez. ROM’lar kalıcı hafızalardır. EPROM (Erasable Programmable Read Only Memory): ROM’lardan farklı olarak EPROM’lar uygun programlama cihazları ile yeniden programlanabilir. EPROM’lar yeniden programlanmadan önce üzerlerinde bulunan küçük cam yüzey ultra-viole ışığa tutularak içeriklerinin silinmesi gereklidir. EEPROM (Electrically Erasable Programmable Read Only Memory): EPROM’lardan farklı olarak EEPROM’larda silme işlemi de elektriki olarak yapılır ve ardından uygun programlama cihazları ile yeniden programlanabilir. Ancak EEPROM’ların silme ve yazma işlemi yavaştır. EEPROM (Electrically Erasable Programmable Read Only Memory) :EPROM’lardan farklı olarak EEPROM’larda silme işlemi de elektriki olarak yapılır ve ardından uygun programlama cihazları ile yeniden programlanabilir. Ancak EEPROM’ların silme ve yazma işlemi yavaştır. FLASH : (Flash EEPROM) : EEPROM’ların silme ve yazma işlem hızının artırıldığı özel bir türüdür. Günümüzde tüm mikrodenetleyiciler program hafıza olarak Flash hafızaya sahiptirler.

İşlemci Birimleri (Hafıza) Mikrodenetleyiciler aynı aileden olsalar bile hafıza büyüklükleri, I/O modülleri ile farklılık gösterirler. M çekirdeğine ait LM ailesinin 180’den fazla üyesi vardır. Bunların bazıları aşağıdaki tabloda sıralanmıştır. İşlemci numarası RAM Flash I/O I/O modülleri LM3S811 8 64 32 PWM LM3S1968 256 52 LM3S2965 56 PWM,CAN LM3S3748 128 61 PWM,DMA,USB LM3S6965 42 PWM,Ethernet LM3S8962 PWM,CAN,Ethernet,IEEE1588 LM4F110B2QR 12 43 Floating point, CAN,DMA LM4F120H5QR Floating point, CAN,DMA,USB LM4F232H5QD 105 PWM, Floating point, CAN,DMA,US, CAN   KiB pinler

ARM LM4F120H5QR işlemci Hafıza Yapısı LM4F120 serisi işlemcide 32 bitlik adres satırı bulunmaktadır. Hafıza; başlangıç adresi 0x0000.000 bitiş adresi 0xFFFF.FFFF’dir. Her adres alanı 8 bit’lik (1 byte) bilgi taşımaktadır. Adres Alanı 0xFFFF.FFFF 8 Bit (Byte)

ARM LM4F120H5QR işlemci Hafıza Yapısı Hafıza haritasına bakıldığında I/O’ların aynı zamanda hafızada bir alana işaret ettiği görülür. Kullandığımız portlar aynı zamanda hafızanın belli bölgesini kaplamaktadırlar. Örneğin Port B’nin 4. bitine ulaşmak istediğimde hafızanın ilgili bölgesindeki biti değiştirerek de doğrudan ilgili pini değiştirmem mümkün olmaktadır. I/O bölgesi sadece pinleri değil diğer bilgileri de içermektedirler. PortB->4.bit

ARM LM4F120H5QR işlemci Hafıza Yapısı Hafıza haritasındaki son kısım NVIC gibi özel çevre birimlerinin okunduğu veri yolunda (PPB- private peripheral bus ) yer alan I/O’ları göstermektedir. Hafıza haritasına bakıldığında bazı bölgelerin boş bırakıldığı görülebilir. Bu bölgeler programlama yapılırken kullanılmaz ve kullanıldığında hatalara yol açar. Kod Sabit değerler Veri değişkenler stack Device register

İşlemci Birimleri (I/O) I/O Birimleri: İşlemcinin dış dünya ile iletişimini sağlayan yapılardır. Gelişmiş işlemci mimarilerine göre pin sayıları değişebilmektedir. I/O pinleri sadece giriş-çıkış olarak değil kesme, ADC, Timer, PWM gibi değişik özellikleri olan yapılardır. Yazılımcı isteğine göre gerekli ayarları yaparak kullanacağı pinin fonksiyonunu belirler.

Yandaki şekilde görüldüğü gibi Stellaris serisinin 6 adet grup portu bulunmaktadır. Bunlarında farklı sayıda pin sayıları vardır. Port C’nin PC.3,PC.2,PC.1 ve PC.0 pinlerine herhangi bir şey yazılmamalıdır çünkü bu pinler debug işlemi için ayrılmıştır. Burada üç tip I/O yapısı bulunmaktadır; Paralel: Aynı anda 6 bitin birden okunup yazılabildiği portlar. Seri: Her çevrimde 1 bit gönderilir. Bu I/O’lar iletişim için kullanılır. Analog: Bu I/O hem giriş hem çıkış için kullanılabilirler. Giriş olduğunda; ölçme gibi işlemlerde , çıkış olduğunda ise sinyal üretime gibi işlemlerde kullanılırlar. Zaman (Time): Önemli bir I/O yapısıdır. Zaman dışarıdan giriş olarak ölçülebileceği gibi, veya sinyal ve darbeler için çıkış olarak üretilebilir.

Mikrodenetleyici mimarisi Program ve Veri hafızaya erişim yapısına göre Von- Neumann Harvard

Mikrodenetleyici mimarisi (Von Neumann) Program kodlarının ve verilerin aynı hafıza bölgesinde tutulduğu Von-Neuman (Princeton Üniversitesinde geliştirilmiştir) mimarisinde komutlar (instructions) ve veriler tek bir “veri yolundan” (data bus) taşınır. Dolayısıyla işlemci herhangi bir anda ya veriye yada komuta erişebilir. Bu nedenle komut ve veri için ard arda iki ayrı fetch çevrimi yürütülecektir. Sonuç olarak bu durum işlemcinin çalışmasını yavaşlatacaktır. Bu mimari yapısı işlem yükünün yoğun olduğu sistemlerde/uygulamalarda dezavantaj oluşturur.

Mikrodenetleyici mimarisi (Harvard) Komut ve verilerin ayrı hafızalarda saklandığı Harvard mimarisine (Harvard Üniversitesinde geliştirilmiştir) sahip mikrodenetleyicilerde veri hattı ve komut hattı ayrıdır. Bu durum komut ve veri taşınmasının (fetch cycle) aynı anda gerçekleştirilebilmesinden dolayı Von-Neuman mimarisine oranla daha hızlı çalışmayı mümkün kılar. ARM ailesi Harvard mimarisine sahiptir. Bu derste anlatılacak LM4F120 ARM işlemcisinde kodların ve verilerin taşındığı 5 tane ayrı yol bulunmaktadır. Bunun anlamı 5 adet veri taşıma veya fetch işlemini aynı anda yapması anlamına gelir.

Mikrodenetleyici mimarisi (Fetch cycle) Fetch Cycle: (Gidip-getirme periyodu) Mikroprogramın birinci aşaması PC’nin işaret ettiği (reset sonrasında PC=0000h) adreste bulunan komutun (işlem kodu/opcode) okunması ve CPU’da komut saklayıcısına (IR) konmasıdır. Devamında PC değeri donanım tarafından otomatik olarak artırılır. Komut saklayıcısına gelen komut kod çözücü tarafından çözülerek yapılacak olan işlem belirlenir ve kontrol biriminin diğer birimlere uygun ve doğru sinyaller göndermesi sağlanır. 2 veya 3 Byte’lık komutlarda işlem kodu (Byte-1) alınır alınmaz komutun Byte-2 ve Byte-3 kısmı hafızadan alınmaktadır. Bu işlemlerin tümü “fetch cycle ” olarak adlandırılır.

İletişim Yolları (Bus) Yukarıda anlatıldığı gibi mikrodenetleyici temel olarak Merkezi işlem birimi (CPU), hafıza ve Giriş/Çıkış (I/O) birimlerinden oluşmaktadır. Bu birimler birbirlerine Şekil’de gösterildiği gibi yol (bus) adı verilen elektriksel iletkenlerle bağlıdırlar.

İletişim Yolları (Bus) Adres Yolu (Adress Bus): Adres yolu genel olarak mikrodenetleyici tarafından hafızadaki hangi adres veya hangi giriş-çıkışa erişileceğini belirtilmesi için kullanılır. İşlemcinin bilgi yazacağı veya okuyacağı her hafıza hücresinin ve çevre birimlerinin bir adresi vardır. İşlemci, bu adresleri bu birimlere ulaşmak için kullanır. Adresler, ikilik sayı gruplarından oluşur. Bir işlemcinin ulaşabileceği maksimum adres sayısı, adres yolundaki hat sayısı ile ilişkilidir. Adres yolunu çoğunlukla işlemci kullanır. Bu yüzden adres yolunun tek yönlü olduğu söylenebilir ama yeni teknolojilerde çift yönlüdür.

İletişim Yolları (Bus) Veri Yolu (Data Bus): Veri yolu ana hafızadan veya giriş-çıkışlardan bilgi alımı veya bilgi gönderimi için kullanılır. İşlemci, hafıza elemanları ve çevresel birimlerle çift yönlü veri akışını sağlar.Birbirine paralel iletken hat sayısı veri yolunun kaç bitlik olduğunu gösterir. Örneğin, iletken hat sayısı 64 olan veri yolu 64 bitliktir. Yüksek bit sayısına sahip veri yolları olması sistemin daha hızlı çalışması anlamına gelir.

İletişim Yolları (Bus) Kontrol Yolu (Control Bus): İşlemcinin diğer birimleri yönetmek ve senkronizasyon (eş zamanlama) sağlamak amacı ile kullandığı sinyallerin gönderildiği yoldur. Burada bellek okuma-yazma sinyalleri, kesme sinyalleri ve clock (saat) sinyalleri iletilir.

Mikrodenetleyici mimarisi (ARM)

ARM işlemci mimarisindeki yollar ICode Yolu (bus): ROM’dan işlemci kodunu (opcode) alır. DCode yolu (bus): ROM’dan veriyi okur. Sistem yolu: RAM’den veya I/O’lardan veri okuma/yazma yapar ve RAM’den işlemci kodunu alır. PPB (Private Peripheral Bus) :Harici çevre birimlerinden (NVIC gibi) veri okuma/yazma işlemini yapar. AHB (Advanced High Performance Bus): Yüksek hızlı I/O’lardan ve paralel portlardan veri okuma/yazma işlemi yapar.

Mikrodenetleyici mimarisi (ARM) Şekil mikrodenetleyici tabanlı ARM çekirdek mimarisinin basitleştirilmiş blok diyagramını göstermektedir. Veri ve kod yollarını (bus) ayırdığı için M çekirdek mimarisi Harvard mimarisine göre oluşturulmuştur. Flash ROM’dan kodlar önbelleğe ICode yolunu (bus) kullanarak aktarılırlar. Veriler ise hafıza ve I/O birimleri ile iletişimi sistem yolu üzerinden yaparlar. M4 çekirdeğinde USB gibi yüksek hızdaki birimler için ikincil bir I/O yolu vardır. Donanımsal olarak tetiklenen (triggered) yazılımsal fonksiyonlardan oluşan Saklı Vektörel Kesme Kontrol (Nested Vectored Interrupt Control- NVIC) birimi kesmeleri yönetir. NVIC birimi gibi dahili çevrebirimleri çevre birimi yolu (peripheral bus- PPB) üzerinden doğrudan işlemci ile haberleşirler. İşlemci ile sağlanan bu özel yol ile kesme servis rutinin çok daha çabuk gerçekleşmesini sağlayarak, kesme gecikmelerini önler.

Mikrodenetleyici mimarisi (ARM) Veri ve kod bellekleri 32-bit uzunluktan oluşmasına rağmen, her 8 bit alana sahiptir. Böylece hafıza ve I/O portları byte adreslenebilirdir. İşlemci 8 bit, 16 bit veya 32 bit olarak yazma ve okuma işlemi yapabilir.   ARM işlemcilerde; Halfword: 16 bits (iki byte) Word: 32 bits (4 byte) Doubleword: 64 bits (8 byte)  

Mikrodenetleyicide kod işleme yöntemine göre mimariler CISC: Kompleks komutlara, yani bir seferde birden fazla işlemi yerine getirebilen komutlara sahip işlemci mimarisidir. RISC: Her seferinde tek bir işlem gerçekleştiren basit ve hızlı komutlara sahip işlemci mimarisidir.

Mikrodenetleyicide kod işleme yöntemine göre mimariler Bu mimari türü kısaca ISA ( Instruction set Architecture ) olarak bilinir. ISA aslında bir standarttır. Örneğin bir arabanın daha arabayı görmeden direksiyonu, tekerleri, fren ve gaz pedalı, farları gibi özelliklerinin olacağını önceden bilirsiniz çünkü bunlar arabalar için standart özelliklerdir. ISA’larda bu anlatılan gibi kod işleme ile ilgili standartları barındırır.

ISA ISA’lar aşağıda belirtilen durumları ayarlamak zorundadırlar; Kod desteği :mul, mov gibi Veri tipleri :char, integer, floating point gibi) Kaydediciler (registers): genel amaçlı veya özel amaçlı kaydediciler Eğer assembly ile programlanılıyorsa adresleme modları Hafıza erişimi: hafıza büyüklüğü, RAM, ROM gibi…

Bazı popüler ISA’lar x86 : Masaüstü, Bilgisayar ARM : Cep telefonu PowerPC : Otomobil Endüstrisi SPARC : Server Makineleri

ARM işlemci ailesi Bu ders boyunca ARM M çekirdek serisi işlemcileri hakkında bilgi verilecektir. Mimari ve programlama hakkında bilgiler verildikten sonra örnek uygulamalar ile gömülü sistem tasarımına giriş yapılacaktır.

ARM işlemci tarihi Acorn Computers Ltd tarafından geliştirme projesi olarak ARM dizaynı 1983 yılında başladı. Roger Wilson ve Steve Furber liderliğinde takım, ARM1 isimli geliştirilmiş örneğini Nisan 1985'de ve takip eden yılda ilk gerçek ürün olan ARM2'yi tamamladı. ARM2'nin göze çarpan özellikleri, 32-bit veri yolu, 26-bit adres alanı, 64 Mega bayt adres alanı ve 16 adet 32-bitlik kaydedicilerdi. Bu kaydedicilerden bir tanesi program sayacı olarak kullanıldı. Bu sayacın en fazla 6 bit'i ve en az 2 bit'i işlemci durum göstergesini tutmaktaydı. 30,000 transistor ile yeryüzündeki en basit kullanışlı 32-bit mikrodenetleyicisi ARM2 işlemcisidir. Bu basitliğin çoğu mikro kod bulundurmamasından ve günümüzün çoğu işlemcisinde olduğu gibi önbellek içermemesidir. Bu basitlik Intel 80286 işlemcisinden hem daha iyi performans gösterirken hem de daha az güç kullanımı sağlıyordu. ARM3, performansı daha fazla arttırmasını sağlayan 4KB önbellek ile geliştirildi. ARM6'nın ilk modeli 1991 yılında piyasaya sürüldü ve Apple, kendi Apple Newton PDA'ları için temel olarak ARM6-tabanlı ARM 610'nu kullandı. 1994 yılında, Acorn kendi RISC PC bilgisayarlarında ana CPU olarak ARM6- tabanlı ARM 610'nu kullandı.

ARM işlemci tarihi ARM mimarisi (orijinal adı Acorn RISC Machine) pek çok gömülü tasarımda kullanılan 32-bit RISC işlemci mimarisidir. Güç tasarruf özelliklerinden dolayı, ARM işlemciler mobil elektronik gibi düşük güç tüketiminin kritik bir parametre olduğu pazarda en fazla tercih edilen CPU' dur.

ARM işlemci ailesi

ARM işlemci ailesi ARM ailesinin uygulama alanlarına göre avantajları: ARM A-Çekirdeki ailesi: Kullanım alanları: Bu işlemci çekirdeği grafik yönünün güçlü olması ve düşük güç tüketimi sebebiyle daha çok akıllı telefonlarda tercih edilir. Mobil bilgi işlem, tüketici elektroniği, netbooklar ve server’lar diğer kullanıldığı alanlardır. ARM R-Çekirdeki ailesi: Kullanım alanları: Gömülü sistemlerde gerçek zamanda sinyal işleme, dijital kameralar, sabit disklerde kullanılırlar. ARM M-Çekirdeki ailesi: Kullanım alanları: Motor ve endüstriyel kontrol uygulamalarında ve flaş disklerde kullanılırlar.

ARM M-çekirdek ailesinin avantajları ve üstünlükleri   Enerji verimliliği Düşük güç tüketimi Uyku modu desteği Uyandırma (wake-up) kesme kontrolü Yüksek Performans 32 bit RISC mimarisi Yüksek verimlilikte işlemci çekirdeği Entegre Kesme Kontrolü (NVIC) Azaltılmış sistem maliyeti Thumb-2 kod yoğunluğu Optimize edilmiş alan tasarımı

Kaydediciler LM4F120H5QR işlemci serilerinde 15 adet register bulunmaktadır. Bunun 12 tanesi genel amaçlı register’lardır. (GP-General Purpose) 3 adet özel amaçlı register bulunmaktadır. 32 Bit

Kaydediciler Kaydediciler işlemci içerisindeki yüksek-hızdaki saklama alanlarıdır. Şekil ‘de R0’dan R12’ye kadar hem veri ve adres bilgilerini içeren genel amaçlı kaydediciler bulunmaktadır. R13 kaydedicisi (Stack Pointer-SP yığın işaretçisi olarak da bilinir) yığının başının adresini tutar. R14 kaydedicisi (Link Register-LR- olarak da bilinir) alt programların döneceği adresi işaret eder. LR aynı zamanda kesme durumu gibi özel durumlarda da farklı şekilde kullanılabilir. R15 (Program Counter-Program Sayacı- PC) hafızadan koşturulacak komutun program hafızadaki adresini gösterir ve ilgili kod işlendikten sonra PC’nin değeri bir artırılır. ADUC841 mmarisinde link register bulunmamaktadır. Bunun yerine alt programa dallanırken adres bilgisi stack pointer’da saklanır.

Kaydediciler Bahsedilen register’ların haricinde program status register bulunmaktadır. Bu kaydedicinin özellikle son 4 biti önemlidir. Bu kaydedicide en son yapılan aritmetik işlemin sonucu hakkında bilgiler tutulur. N biti aritmetik veya lojik işlemler sonucunda sonucun negatif olup olmadığını gösterir. Benzer olarak Z biti sonuç sıfır ise birlenir. C biti işaretsiz bir taşma olduğunda “1” olur. V biti işaretli bir taşma olduğunda “1” olur.