Hazırlayan: Salih AKARSU – Altera DE2-70 Gelistirme kartı, µClinux vb. konularında detaylı bilgi ve sd kart içindeki jpeg resimlerin okunarak görüntülenmesi hakkında uygulama, kaynak kodları bulunuyor fpga hakkında Türkçe çok faydalı bir kaynak. Emeği geçen kişilere teşekkürler
SD KARTDAKİ JPEG RESİMLERİN FPGA KULLANILARAK OKUNMASI VE EKRANDA GÖSTERiLMESİ
Gömülü sistem çözümlerinin gelismesiyle birlikte, FPGA ve gömülü işletim sistemlerine yönelik talep artmıstır. Bu sayede µClinux gibi gömülü işletim sistemleri daha popüler olmaya başlamıstır. Bu projede Altera DE2-70 FPGA bordunda, Nios II softcore işlemcisi ile birlikte µClinux işletim sistemi kullanılarak SD-kart’ ta bulunan JPEG uzantılı resim dosyalarının monitörde slayt olarak gösterilmesi amaçlanmıstır. FPGA bordunun programlanması için Altera Quartus II programı ve işletim sistemi olarak açık kaynak µClinux işletim sistemi kullanılmıştır.
Bu projede SD-kart’ ta bulunan JPEG uzantılı resim dosyalarının FPGA ile okunarak VGA ekranda görüntülenmesi amaçlanmıstır. Altera DE2-70 eğitim bordu kullanılarak Nios II soft CPU tasarımı yapılmıstır. Tasarlanan soft CPU µClinux işletim sistemi kullanılarak kontrol edilmektedir. Nios II işlemcisine özgü µClinux kernel çekirdeği derlenerek SD-kart’ ta bulunan JPEG formatınındaki resimler monitörde slayt şeklinde görüntülenmektedir.
İlerleyen bölümlerde tüm yapılan işlemler ve gerekli programlar aşama aşama anlatılıp incelenecektir. Dlk olarak soft CPU’ lardan bahsedilecek ve Altera DE2-70 eğitim bordu tanıtılacaktır. Ardından bu proje için gerekli soft CPU tasarımı yapılacak ve gerekli çevre birimleri eklenecektir. Bunun ardından ise Nios II soft CPU için µClinux kernel derlenmesi yanı sıra bazı uygulama ve sürücülerin sisteme entegre edilemesi gösterilecektir. Son olarak JPEG slayt gösterimi için gerekli C programı yazımı ve gerekli düzeltmeler yapılarak proje son bulacaktır. Sekil 1.1’ de projenin blok diyagramı verilmistir.
Sekil 1.1 Projenin blok diyagramı
Softcore işlemci : Bir softcore işlemci çekirdeği bütünüyle lojik sentezleme sonucu olusturulur. Verilog, VHDL ve bunun gibi donanım tanımlama dilleriyle yazılarak oluşturulan lojik işlemci blokları, sentezlenerek donanıma yüklernir hale gelirler [1]. Netlist ve benzeri işlemlerden geçirilen logic bloklar FPGA, CPLD gibi donanımlara özel bağlantı ve yazılımlar aracılığıyla yüklenilerek çalıştırılabilirler. Softcore işlemcilerin avantajlarından bazıları [1]:
· Diğer üreticilerin FPGA’ lerine kolayca adepte edilebilirler.
· Çok esnektirler ve genisletilebilirler.
· Kabiliyetleri gerçek kosullar altında kolayca test edilebilir.
µClinux Gömülü işletim Sistemi
Aslında µClinux balangıcta bellek yönetim birimsiz işlemciler için tasarlanmıs linux 2.0 çekirdeğinin bir türeviydi. Bugün ise µClinux bir işletim sistemi içerdiği gibi aynı zamanda linux 2.0, 2.4, 2.6 çekirdeklerini, kullanıcı uygulamalarını ve kütüphanelerinide içermektedir
Altera DE2-70 Gelistirme ve Eğitim Bordu
Sekil 2.2 Altera DE2-70 bordunu göstermektedir. Sekilde tüm bağlantı birimleri, anahtarlar, ledler ve diğer I/O’ lar gösterilmektedir
DE2-70 bordu basit projelerden çok daha kapsamlı projeleri bile gerçeklenelebilir kılacak bir çok özellikle donatılmıştır
DE2-70 bordunda bulunan donanımsal özellikler
· Altera Cyclone® II 2C70 FPGA aygıtı
· Altera seri kurulum aygıtı- EPCS16
· 2-Mbyte SSRAM
· 2 adet 32-Mbyte SDRAM
· 8-Mbyte Flash hafıza
· SD-kart soketi
· 4 pushbutton anahtar
· 18 toggle anahtar
· 18 kırmızı LED
· 9 yesil LED
· 50-MHz osilatör ve 28.63-MHz osilatör
. 24-bit CD kalitesinde ses kodlayıcı line-in, line-out, ve microphone-in girişleri
· VGA DAC (10-bit yüksek hızlı üçlü DAC) , VGA-çıkıs konnektörü
· 2 TV kod çözücü (NTSC/PAL/SECAM), TV-in konnektörü
· 10/100 Ethernet kontrolör ve konnektör
· USB Host/Slave kontrolör ile USB A tipi ve B tipi konnektör
· RS-232 alıcı-verici ve 9-bacak konnektör
· PS/2 fare/klavye konnektörü
· IrDA alıcı-verici
· 1 SMA konnektörü
· 2 adet 40-bacak diyot ile korumalı genişleme yuvası
Bu donanım özelliklerine ek olarak , DE2-70 bordu çesitli bilesenlere erismek için bir denetim masası kolaylığı ve standart I/O arabirimleri için yazılım desteğine sahiptir. Ayrıca, DE2-70 bordunun gelismis kapasitesinin çoğunun gösterildiği demo projelerde sunulmaktadır. DE2-70 bordunun kullanımı ve proje uygulamaları için ”Quartus II” yazılımı da bulunmaktadır. Bu yazılımın “ Web Edition “ sürümü lisansız olarak kullanılabilmektedir.
Nios II işlemci sistemi, mikrokontrolöre veya tek çip bilgisayara denktir. Tek bir yongada CPU, bellek ve çevre birimlerinin birlesiminden olusur [4]. Nios II işlemci sistemi terimi, Nios II çekirdeği, on-chip çevre birimleri seti, on-chip bellek ve off-chip bellek arayüzlerinin tek bir Altera yongası üzerine yerlestirilmesini kastetmektedir [4]. UART, SDRAM kontrolör, DMA kontrolör, eternet arayüzü ve bunların dısında daha birçok I/O aygıtı kullanarak birbinden farklı mikrokontrolör sistem tasarlanmasına izin verir. Harvard mimarisine sahiptir, komut ve data hattı birbirinden ayrıdır
Nios II Sistem Tasarımı
Bu bölümde minimum konfigürasyona sahip bir Nios II sistemi tasarlanacaktır. Tasarıma geçmeden önce kisisel bilgisayarımızda Altera dizayn programlarının yüklü olması gerekmektedir. Bu programlar Altera’ nın sitesinden ücretsiz olarak bilgisayara indirilmis ve kurulmustur .
· Quartus II Web Edition yazılımı (projede 8.1 versiyonu kullanılmıştır),
· Nios II Embedded Design Suite (projede 8.1 versiyonu kullanılmıştır),
· Altera DE2-70 CD,
Nios II sistemi olustururken Altera’ nın Quartus II Web Edition yazılımı içerisinde entegre olarak sunulan “ SOPC Builder ” tasarım ortamı kullanılmıştır.
Nios II Linux Araçlarının Yüklenmesi
Bu bölümde Nios II sistemine kernel ve dosya sistemi derlemesi için gerekli yazılımın kurulumu anlatılmaktadır. Kullanılacak olan Nios II linux yazılımı Linux işletim sistemi altında çalısmaktadır. Bu yüzden “ Linux “ yüklü bir bilgasayara ihtiyaç duyulmaktadır. Bunun dısında diğer bir yol ise “ Windows “ işletim sistemi üzerinde sanal makine olusturarak bu işlem gerçeklenebilir. Daha hızlı ve esnek bir çözüm olduğu için sanal makine kullanarak Nios II linux araçları yüklenilmistir.
Bunun için ilk olarak “ Windows Xp “ yüklü bilgisayara “ VirtualBox “ isimli sanal makine programı kurulacaktır ve sanal makine üzerinede “ Ubuntu 8.04 Linux “ işletim sistemi yüklenecektir. Dlk olarak www.virtualbox.org adresinden “ VirtualBox “ programının son sürümünün indirilmesi gerekmektedir.
µClinux Kernel Derleme
Bu bölümde daha önce tasarlanılmış Nios II sistem için µClinux kernel derleme işlemi anlatılacaktır. Kernel derleme işlemi SOPC builder aşaması esnasında olusturulan ptf dosyasına göre yapılmaktadır. Bu yüzden “ Windows ” ortamındaki proje klasörünün içerisinden “ DE2_70_SOPC.ptf ” dosyasının bir kopyası “ Linux “ ortamına tasınmıstır. Bu işlem bir flash bellek veya VirtualBox paylasılan klasörler yöntemi ile yapılabilir. Aksi taktirde sanal makine üzerindeki işletim sisteminden bilgisayarın kendi dosya sistemine erisim mümkün olmamaktadır. Bununla ilgili ayrıntılı bilgiyi “ VirtualBox “ yardım sekmesinden bulmak mümkündür. Linux ortamında terminal penceresine girerek Nios II sistem araçlarının bulunduğu klasöre “cd ~/nios2-linux” komutu ile giriş yapılmıstır.Sonrasında “cd µClinux-dist ” klasörüne giriş yapılmıstır.
GENEL BİLGİLER
Softcore İşlemci, µClinux Gömülü Dsletim Sistemi
DE2-70 bordu blok diyagramı, Nios II Softcore İşlemcisi
Altera DE2-70 Gelistirme ve Eğitim Bordu
NIOS II SDSTEM TASARIMI VE µCLDNUX KERNEL DERLEM
Nios II Sistem Tasarımı
Nios II Linux Araçlarının Yüklenmesi
µClinux Kernel Derleme
Olusturulan Sistemlerin Bord Üzerine Yüklenmesi
JPEG SLAYT PROJESİ
Yeni bileşenlerin Tasarıma Eklenmesi
VGA bileşen, SPI bileşen
Nios II sisteminin derlenmesi
Yeni bileşen Sürücülerinin Kernele Eklenmesi
Kernel Ayarlarının Uyarlanması
VGA sürücüsü, SPI sürücüsü
Uygulama ve Kütüphane Ayarlarının Uyarlanması
Uygulamanın Çalıstırılması
Nxview Programı Düzenlemesi
Projenin blok diyagramı
Softcore işlemciler
Altera DE2-70 bord
DE2-70 bord blok diyagram
Nios II işlemci çekirdeği blok diyagramı
Nios II sistem yapısı için bir örnek
SOPC Builder arayüzü
SOPC Builder toolbar butonları
DE2_70_NIOS_HOST_MOUSE_VGASOPC tasarımı
Saat tablosu
SOPC builder tasarımı son hali
Saat tablosu son hali
Nios II more CPU settings penceresi
System generation penceresi
Quartus II ortamı
Quartus II derleme butonları
Pin planner penceresi
VirtualBox görünümü
VirtualBox üzerinde ubuntu görünümü
Menuconfig penceresi
Vendor/Product Selection penceresi
Kernel/Library/Defaults Selection penceresi
CPU ve bellek seçimi
Nios II command shell penceresi
FPGA bordunun programlanması
zImage yüklemesi
Çalısır haldeki nios ıı sistem
VGA Controller bileşeni
VGA Controller ayarları
VGA bileşen bağlantısı
SPI bileşen ,SPI ayarları
SPI bileşen bağlantısı
SPI bileşen isimlendirilmesi
Kernel/Library/Defaults selection penceresi
Linux Kernel Configuration penceresi
Character Devices penceresi
Graphics Support penceresi
Input Device Support penceresi
SPI Support penceresi
MMC/SD cart support penceresi
File systems penceresi
µClinux Distribution configuration penceresi
Microwindows penceresi
Settings penceresi
Display/Mouse config penceresi
Keyboard penceresi
Install these applications penceresi
Boot işlemi
Çalışan sistemin görüntüsü
yukarıda özetler verildi;
Şifre-Pass: 320volt.com
Yayım tarihi: 2009/07/15 Etiketler: Altera de2-70, altera fpga, fpga, fpga programlama, Nios, µClinux
Eline sağlık kardeşim… Paylaşımın için teşekkür ederim
Elinize sağlık böyle çalışmaları daha sık görmek isteriz 🙂
Çok güzel bir anlatım olmuş emekleriniz için çok teşekkürler.
Başarılarınızın devamını dilerim.