ARM ĐŞLEMCĐLĐ DENEY KARTI TASARIMI DESIGNING DEVELOPMENT KIT WITH ARM MICROPROCESSOR Öğr. Gör. Ahmet ALBAYRAK, Sinop Üniversitesi Ayancık Meslek Yüksekokulu, Sinop Öğr. Gör. Đsmail MERSĐNKAYA, Sinop Üniversitesi Ayancık Meslek Yüksekokulu, Sinop ABSTRACT The development kits are generally used to make different experiments to utilize the knowledge given in theory courses in practice. A development kit has been designed to use in experiments by Ayancık Vocational High School in Sinop University. The microprocessor on this kit can be programmed with either of software development platforms Keil uvision, TrueStudio and Ewarm. The designed development kit contains ARM Cortex M4 32 bit microprocessor. ÖZET Geliştirme kartları genel olarak; uygulama ağırlıklı derslerde, teorik olarak verilen bilginin uygulanarak pekiştirilebilmesi için üzerinde farklı deneylerin yapılmasında kullanılmaktadır. Sinop Üniversitesi Ayancık Meslek Yüksekokulu nda uygulamalı derslerde deney amacı ile kullanılmak üzere geliştirme kartı tasarlanmıştır. Bu kart üzerindeki işlemci Keil uvision, TrueStudio ve Ewarm yazılım geliştirme platformlarından herhangi biriyle programlanabilir. Tasarlanan geliştirme kartı ARM Cortex M4 32 bit işlemci barındırmaktadır. 1
1- GĐRĐŞ Günümüzde ARM (Advanced Risc Machine) işlemciler cep telefonları, medya oynatıcılar, oyun üniteleri gibi enerji tasarrufunun önemli olduğu uygulamalarda özellikle tercih edilmektedir. ARM işlemciler genel olarak Risc (Reduced Instruction Set Computers) mimarisine sahip komut kümesini kullanmaktadır. Komutlar daha az olduğundan yapılmak istenen iş daha kısa sürede tamamlanır. Diğer işlemcilere nazaran ARM işlemciler genel olarak Harvard mimarisine sahiptir. Harvard mimarisi kodların ve verilerin ayrı belleklerde saklandığı yapı olarak ifade edilir. ARM işlemciler bugün 32 bit olarak üretilmektedir. Đşlenecek komutların 16 bitlik ya da 32 bitlik olmasına bağlı olarak Thumb adı verilen mimari çalışmaktadır. Thumb mimarisi 8 bitlik, 16 bitlik işlemlerde devreye girerek 32 bitlik kaydedicilerin kullanılması engellenir. Bu da tabi ki enerji tasarrufu sağlamaktadır[1]. Elektronik dizayn sektöründeki hızlı gelişmeler ile entegre devreler daha geniş çaplı, minyatür ve yüksek hızlı olarak gelişme göstermektedir. Yüksek hızda dijital sistem çağının gereği olarak artık sinyal bütünlüğü (Signal Integrity) ve elektromanyetik uyum (Electromagnetic Compatibility) konuları göz ardı edilmemelidir. Yapılan bir çalışmada SI ve EMC nin temel teorilerine dayanarak Altium Designer 6 da simülasyon yapılmış ve istenen sonuçları verdiği görülmüştür[2]. Gömülü sistem, bir ya da birkaç atanmış görevi yerine getirmek üzere tasarlanmış özel bir bilgisayar sistemidir. Gömülü işlemci olarak STM32F103CB kullanılan bir çalışmada sıcaklığa bağlı olarak gerçekleşen eğim ölçülmüştür. Đvme sensörünün çıkışının filtrelenmesi ile okunan eğim değerine göre pozisyon belirlenmiştir[3]. Günümüzde mikrodenetleyici sistemler hemen her alanda kullanılmaktadır. ARM işlemcili mikrodenetleyiciler çeşitli firma isimleri ile piyasaya sürülmektedir. NXP(Next expreience) fiması tarafından üretilen LPC1768 ARM işlemcili mikrodenetleyici ile bulanık mantık tabanlı pozisyon kontrolü yapılan otomatik test yatağı yapılmıştır[4]. ARM işlemcili mikrodenetleyiciler endüstriyel uygulamalarda denetleyici olarak kullanılmaktadır. MCB2300 Keil bordu ile DC motor kontrolü yapmak için PID (Proportional Integrated Derivated) denetimli hassas hız kontrolü yapılmıştır[5]. Altium Designer profesyonel bir baskı devre çizim ve elektronik devre şeması düzenleme programıdır. Bu program ile elektronik devre şemalarını çizebilir, PSpice tabanlı modelleri kullanarak simulasyon yapabilir, tek ve çok katlı baskı devreler çizilebilmektedir. Gömülü sistemler üzerinde programlama kullanılan programlama dillerinden en etkili olanı ve en çok kullanılanı C dir. C dili hem assembly gibi donanıma yakın hem de üst seviye dillerin özelliklerine sahip bir dil olduğundan gömülü sistemlerin programlanmasında vazgeçilmez bir programlama aracıdır. Otomobillerde alanındaki standart işletim sistemi olan Autosar için yazılım geliştirilen bir uygulamada C dili kullanılmıştır[6]. 2- MATERYAL ve METOT Geliştirme kartı ile yapılan uygulamalar alan öğrencilerinin bilişsel süreçlerinde işlemci, komut yazımı ve yazılan komutların çalıştırılması konularının daha etkin ve verimli kazanılmasına yöneliktir. Bu kart Sinop Üniversitesi Ayancık Meslek Yüksekokulu nda C programlama dili temelli derslerde öğrencilerin teorik olarak öğrendiklerini örnek uygulamalarla pekiştirmek için geliştirilmiştir. 2
Tasarlanan geliştirme kartı Altium Designer 10 da çift katmanlı olarak tasarlanmıştır. Simulasyon üzerinde kodlar denenmiştir. Kartın üzerinde kendi besleme ünitesi, USB (Evrensel Seri Veriyolu) veri haberleşme portu, ARM işlemci üzerinde bulunan her bir 16 bitlik portların kullanımını sağlayan 5 adet I/O (Giriş/Çıkış) bağdaştırıcısı (A, B, C, D, E), VGA (Video Grafik Dizisi) portu, butonlar, Grafik LCD (Sıvı Kristal Gösterge) ve alfanumerik LCD bağlantıları bulunmaktadır. Ayrıca portları aktif veya pasif olarak konumlarını değiştirebilmek amacı ile DIP-switch kullanılmıştır. Kart üzerinde yüzey montaj led ve dirençler bulunmaktadır. Geliştirme kartı üzerinde ARM Cortex-M4 32 bit işlemci bulunmaktadır. Đşlemcinin kayan noktalı sayılarla işlemleri daha doğru ve hızlı yapması için FPU (Floating Point Unit) ünitesi bulunmaktadır. 1 MB Flash belleğe sahiptir. 168 Mhz çalışma frekansına sahiptir. Dijital sinyal işleme özelliğine sahip işlemci DSP (Digital Signal Processing) uygulamalarında rahatlıkla kullanılabilir. Her bir ünite için kodlar Keil uvision yazılım platformunda yazılmış ve geliştirme kartı denenmiştir. Geliştirilen deney kartı 26x 21,5 cm ebatlarındadır. Şekil 1 de ARM geliştirme kartının blok diyagramı verilmektedir. Şekil 1. ARM Geliştirme Kartı Blok Diyagramı. Blok diyagram üzerinde her birim ayrı ayrı belirtilmektedir. Kartın kendisine ait besleme devresi 5V DC gerilim için oluşturulmuştur. Bu devre, programlamadan sonra ARM Cortex in USB ile PC bağlantısının kesilmesi durumunda haricen 9V-12V DC gerilim ile çalıştırılabilmesini sağlamaktadır. Kart üzerinde bulunan diğer bir birim B-Type USB bağlantı soketidir. Bu bağlantı soketi, ARM Cortex in E14 ve E15 uçlarına bağlanmıştır. PC üzerinde oluşturulacak bir yazılım ile USB bağlantılı uygulamaların yapılmasına olanak sağlamaktadır. Geliştirme kartı ARM Cortex için soket barındırmaktadır. Bu soket yardımı ile ARM Cortex takılıp çıkarılabilmektedir. 3
MKT2012,Proje Tabanlı Mekatronik Eğitim Çalıştayı, 25-27 Mayıs 2012, Çankırı-Ilgaz, TÜRKĐYE Kartın tasarımında görsel grafik uygulamalarının yapılabilmesi için 1 adet Grafik LCD ve 1 adet Numerik LCD bağlantısı mevcuttur. Bu bağlantılar sayesinde farklı birçok LCD uygulamasının yapılmasına olanak sağlamaktadır. 16 adet buton ile LCD uygulamalarında ve diğer uygulamalarda farklı çalışmalar yapmak mümkündür. Deney kartı üzerinde bağlantı noktalarının öncesinde SMD led ve dirençler yerleştirilmiştir. Bu sayede istenilen led diyot uygulamaları yapılabilmektedir. Ayrıca ledler iptal edilerek her bir bağlantı ucu daha farklı uygulamalarda kullanılabilmektedir. Şekil 2. Arm Geliştirme Kartı. Kartın üzerinde 1 adet VGA bağlantı noktası eklenmiştir. VGA bağlantı noktası, tasarımın kolay ve amaca uygun kullanılabilirliği için Cortex in A0 ile A9 bağlantı uçları ile ilişkilendirilmiştir. Uygulamaların çeşitliliği ve tasarımın görünümü açısından her bir bağlantı noktası, LCD, VGA ve USB bağlantı noktalarından önce dip-switch (dip anahtarı) kullanılmıştır. Bu dip anahtarları sayesinde istenilen bağlantı noktası ile istenilen uygulamanın yapılması daha kullanılabilir olmaktadır. Deney kartının üzerine ayrıca pull-up ve pull-down bağlantı uçları da eklenmiştir. Bu uçların değiştirilmesi ile buton uygulamalarında yükselen kenar veya düşen kenar tetiklemeli işlemler, jumper (atlama) soketleri ile kolaylıkla yapılabilmektedir. 4
Örnek bir uygulama olan led-blinking (durum tersleme) uygulamasının pseudo kodları şöyledir; main() { while(1) { GPIOB->OBR= 0x00000000; bekle(); GPIOB->OBR= 0x0000F000; bekle(); } } void bekle() { for(int i=0;i<0x50000;i++); } 3- SONUÇ Uygulamalı derslerde öğrencilerin teorik bilgilerini pekiştirmek ve bilgilerin kalıcılığını sağlamak için bu deney kartı kullanılabilir. ARM işlemcilerle ilgili uygulamalar dünyada oldukça yaygın hale gelmiştir. Ülkemizde de enerji tasarrufu konuları önem kazanmakta ve daha az enerji ile daha yüksek performansa yönelik çalışmalar yapılmaktadır. Tasarlanan geliştirme kartı ARM işlemcili sistem uygulamalarında ve C programlama dili temelli gömülü sistem uygulamalarında da kullanılabilir. Dokunmatik panel (Touch Screen), GSM (Mobil Đletişim için Küresel Sistem) modülü, GPS (Küresel Konumlama Sistemi) modülü, Micro SD card socket (MiniSD hafıza kartı yuvası), Ethernet Port, Ses/Mikrofon giriş/çıkışları ve ivme sensörünün de eklenmesi ile geliştirme kartı farklı alanlardaki uygulamalarda da kullanılabilir. ARM geliştirme kartı, yeni nesil bir işlemcinin kolay ve hızlı bir şekilde öğrenilerek yeni uygulamaların geliştirilmesini sağlamak üzere tasarlanmıştır. Tasarlanan kart temel düzeydeki gömülü sistem uygulamalarını desteklemektedir. Đleri düzey uygulamalar için de ARM Cortex geliştirme kartı tasarlanabilir. KAYNAKÇA [1] Tangaraj S., Gummadi S. ve Radhakrishnan S, Enhancement in ARM Code Optimization for Memory Constrained Embedded Systems, Advanced Computing and Communications, 483-486, 2006. [2] Cheng Y.Q., Zhu M ve W. Ge., Signal Integrity Simulation Design of Image Processor PCB Combined with Electromagnetic Compatibility Analyses Based on Altium Designer 6, 4th Industrial Electronics and Applications Conference, 2009. [3] Lijie Z., Li C. ve Shaozhong L., Development of a tilt mesaurement system based on Mems sensor and Cortex-M3, 10th Electronic Measurement ve Instrument Conference, 2011. 5
[4] F. Hanzic ve safaric R., ARM-Cortex Microcontroller fuzzy position control on an automatic door test-bed, 19th International Robotics in Alpe-Adria-Danube Region, 2010. [5] Pal T., Shekhar C. ve Dutt Sharma H., Design and Implementation of Embedded Speed Controller on ARM for Micromanufacturing Applications, Advanced in Computing, Control ve Telecommunication Technologies, 2009. [6] Popa M., Popa S. A., Slavici T ve Silaghe L., On the Implementation of the OSEK/VDX Operating System on advanced Microcontrollers, International Conference Computers as an Tool, 2007. 6