Senin, 31 Oktober 2011
di
22.00
|
jika kita berbicara kontrol robot line follower dengan PID maka bukanlah kontrol PID yang sebenarnya… sebab (kata dosenku) pada robot line follower elemen ukur (sensor) tidak terdapat pada plant (motor penggerak) dari robot, yang serharusnya ialah sensor terdapat di plant(motor penggerak), dengan contoh tachometer sebagai sensor pada motor, encoder atau yang laennya yang terletak pada plant. sedangkan pada robot line follower sensor berupa pendeteksi garis (tidak terletak pada plant) dan dari hasil kondisi garis tersebut barulah dikontrol ke motor (plant), namun walaupun begitu kontrol PID masih dapat diterapkan untuk mengendalikan robot line follower.
Blok aksi kontrol PID:
Formula matematis dari PID: Dari formula tersebut dapat dirumuskan menjadi pen-digitalization PID dengan berbagai metode, kalo di kul dengan cara transformasi Z, ZOH, bilinier transformartion, Eulers method.. wah susah pokoknya…. Sehingga diperoleh bentuk digital diskritnya menjadi persamaan dibawah ini….
Bentuk kontroler PID diskrit:
Nach…jika kita terapkan dalam bahasa pemrograman menjadi….

Dimana; Ts ialah time sampling, error ialah nilai kesalahan dan last_error ialah nilai error sebelumnya.
Berikut ilustrasi penerapan kontrol PID pada robot line follower:

dari blok iliustrasi tersebut dapat q jelasin sebagai berikut:
S1,S2…,S8 merupakan sensor dengan pemberian bobot Present Value (PV) PV=0, PV=-1, PV= 1 dst….
Deviasi/simpangan antar variabel terukur (PV) dengan nilai acuan (SP) disebut error (galat)
Nach nilai error dari pembacaan sensor ini yang dijadikan aksi perhitungan kendali PID, lalu nilai perhitungan PID tersebut dijumlahkan dengan setpoint PWM untuk dijadikan sebagai nilai aktual PWM motor dari robot line follower, berikut formula perhitungan nilai PWM kiri dan kanan dari robotku:
untuk robot lf PID ini, ane menggunakan softwre simulasi proteus 7.8 yg bs di download di internet.ckckkckkc komponennya sebenarnya tidak berbeda dengan LF analog,cuma ada tambahan : 1. Sistem Minimum Mikrokontroller ATMega 32 2. 10 buah sensor garis ( 8 buah sensor tersusun secara array,dan 2 sensor di tengah) 3. Driver Motor 4. Motor Dc
Gambar Rangkaiannya :
Cara menjalankan PID nya yaitu : 1. Pertama kita set PID nya - Set Kp - Set Ki - Set Kd Tampilan di LCD pada saat ingin mengatur PID
Tampilan Saat nilai Kp,Ki,Kd untuk PID telah diatur
2. Set Kecepatan Motor Tampilan Pada LCD Saat Atur Kecepatan Motor
Tampilan LCD setelah Nilai Min dan Max kecepatan motor setelah kita atur
3. Set Warna Garis maksudnya garis yang kita telusuri atau hitam Tampilan LCD saat Set Garis
Tampilan LCD setelah kita menset garis hitam
4. Start Robot
Robot akan dijalankan
5. Motor pada robot akan berjalan sesuai PID yang diatur
Sekian Terima KAsih bagi yang pengen skematik n list progarmnya hbgi admin
Sebelum kita mengenal jauh tentang robot line follower , pasti kita orang2 awam bertanya " apakah robot line follower itu??" Ok,disini penulis menjelaskan, robot line follower adalah robot yang menelusuri garis hitam atau putih. Robot ini sering diperlombakan untuk robo race ataupun robo GP. Wah,bs juga dibilang seperti balapan F1,wkwkkwkkwkwkkwkkw.
Ok, Penulis akan mengajrkan tentang cara membuat robot analog. yang harus dipersiapkan pertama kali adalah :
1. Sensor Garis yaitu terdiri dari photo dioda dan led super bright
2. Motor DC 2 Buah untuk penggerak robot
3. Piringan CD untuk Body Robot
4. PCB boleh polos bagi yang bisa melarut ataupun PCB berlubang(matrix),cckkkckcc
5. Kabel
6. Driver Motor L293D
7. IC LM 324 sebagai komparator
8. Led 5 mm sebagai indikator sensor
9. Timah + Solder Tentunya
10. Eh ada yang ketinggalan ,bagi yang punya pacar, pasti sediain foto pacarnya
11. Pudding jg kali y,ckckckkckckc
A. Rangkaian Sensor
B. Rangkaian Keseluruhan
ni Hasil Videonya Gan :
Apa itu Nao? Bruno Maisonnier, CEO Nao Foundation mengungkapkan, "Nao bukan singkatan. Nao bisa berarti dekat dengan nanoteknologi yang kini jadi tren, bisa juga berarti otak atau terang."
Digolongkan sebagai robot humanoid, maka Nao mampu menunjukkan ekspresi kemanusiaannya. Misalnya, robot ini mampu menunjukkan emosi sederhana seperti yang ditunjukkan oleh anak berusia satu tahun.
Nao juga mampu mempertontonkan berbagai macam gerakan, seperti berjalan, menari, duduk, berdiri, menendang dan meraih objek tertentu. Selain itu, robot ini juga mampu menolehkan kepala ke arah seorang pembicara atau sumber suara.
Nao memiliki tinggi sekitar 58 cm dan berat 4.3 kg. Robot ini memiliki kemampuan autonomi selama 90 menit dengan gerakan jalan konstan serta bisa di-charge. Dikembangkan dalam sistem operasi Linux tetapi juga kompatibel untuk Windows dan Mac, robot ini dilengkapi dua kamera CMOS 640 x 480.
Saat dipertontonkan di acara pembukaan World Robotic Explorer di Thamrin City Jakarta, Nao diminta Maisonnier untuk membacakan sebuah dongeng. Maka, mulailah ia bicara, "once upon a time ... ", menceritakan dongeng dengan intonasi suara layaknya balita.
Dalam kesempatan itu, Maisonnier juga meminta Nao untuk mengirimkan sebuah pesan. Maka, Nao mulai mengerjakannya dengan berkata "ok", diam sejenak untuk memproses dan menyampaikan hasil kerjanya dengan berkata "your message has been sent", seperti teks yang tertulis setah mengirimkan email.
Nao memang dilengkapi dengan sistem komputer yang terintegrasi dan koneksi wifi sehingga mampu melakukan aktivitas di internet seperti download dan pengiriman pesan secara aman. Nao juga dilengkapi speech function sehingga bisa merespon secara verbal pesan, email, buku atau dokumen lain yang dikirimkan padanya.
Maisonnier juga mengatakan bahwa Nao merupakan partner yang baik dalam pendidikan. "Jika anda ingin menarik minat para siswa pada sains dan teknologi, maka robot seperti Nao adalah jawabannya. Robot ini bisa menjadi partner dala pendidikan" kata Maisonnier.
Nao adalah robot humanoid yang menggunakan programming yang cukup friendly yang bisa digunakan mulai dari kelas pemula hingga ahli. Memiliki software Choregraphe dan 3D Simulator, robot ini mampu membimbing siswa dan guru untu mempelajari robot sehingga menjadi cara yang menyenangkan untuk belajar sains dan teknologi.
Nao Foundation sendiri adalah bagian Aldebaran Robotics yang concern dalam bidang pendidikan. "Mulai tahun depan, kami berencana untuk mengembangkan buku teks yang mampu mengajak banyak murid untuk mendalami robotik," ungkap Maisonnier.
Maisonnier melanjutkan, "Kami juga memiliki beberapa program pengembangan bagi para guru dan dosen dari berbagai universitas." Salah satunya, bulan Februari 2011 ke depan, Nao Foundation akan mengadakan workshop yang diikuti oleh dosen-dosen.
Lewat Nao Foundation, Maisonnier berharap, "Kami butuh banyak peneliti untuk mengembangkan robot. Kami harap anak-anak sekarang banyak yang akan mendalami robotik sehingga bisa turut mengembangkannya."
Robot Nao kini dipakai sebagai robot model yang dipakai dalam World Robotic Olympiad, pertandingan robot sepakbola dunia yang digelar bersamaan dengan Piala Dunia menggantikan robot anjing Sony Aibo yang dihentikan pengembangannya.
Inspirasi membuat ini muncul, karena saat ini banyak sepeda motor yang dicuri oleh orang.itu disebabkan oleh keamanan(security) yang sangat kurang. Untuk itu,penulis disini mencoba membuat sebuah aplikasi hardware yang menggunakan microcontroller ATMega 16 untuk keamanan sepeda motor.
Ini Adalah Schematicnya:
Ini Adalah hasil Outputnya:
Penulis di bawah ini menggunakan simulasi dengan nama software Proteus 7.8 SP2 .Silahkan Saudara Download sendiri software tersebut di internet. Walaupun ini simulasi, tapi ini sama dengan alat yang sebenarnya.
Kemudian Untuk membuat Program, penulis menggunakan Software CV AVR.
Ini Adalah Listing Programnya:
/*****************************************************
This program was produced by the
CodeWizardAVR V2.04.4a Advanced
Automatic Program Generator
© Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 8/12/2011
Author : NeVaDa
Company : .
Comments:
Chip type : ATmega16
Program type : Application
AVR Core Clock frequency: 12.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*****************************************************/
#include <mega16.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x12 ;PORTD
#endasm
#include <lcd.h>
#include <delay.h>
#include <scanner.h>
#include <string.h>
#include <menu.h>
#include <about.h>
// Declare your global variables here
int i;
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out
// State7=P State6=P State5=P State4=P State3=1 State2=1 State1=1 State0=1
PORTA=0xFF;
DDRA=0x0F;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTC=0x00;
DDRC=0xFF;
// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTD=0x00;
DDRD=0xFF;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// LCD module initialization
lcd_init(16);
lcd_gotoxy(0,0);
lcd_putsf("Created By:");
lcd_gotoxy(0,1);
lcd_putsf("C.O Skyh4riez");
delay_ms(2000);
lcd_clear();
password();
lcd_gotoxy(0,1);
lcd_putchar('_');
for(i=8;i<16;i++)
opw[i]=space[0];
while (1)
{
// Place your code here
scanner();
password();
about();
if(mode==1)
menu();
};
}
Walaupun ini mungkin jadul, tp mungkin ini bisa menjadi inspirasi bagi saudara2 untuk mengembangkannya. Ini aja saya inpirasi membuat ini karena waktu saya kuliah, saya disuruh buat tugas ini, so tercipta deh alat ini.
untuk membuat ini yang perlu disiapkan adalah:
1. secangkir kopi hangat
2. Kipas Angin
3. Foto Sang Kekasih,hahahhaaahaha
Ini Adalah Scematicnya:
Ini Adalah Hasilnya:
Ini adalah source codenya:
/*****************************************************
This program was produced by the
CodeWizardAVR V2.04.4a Advanced
Automatic Program Generator
© Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 8/3/2011
Author :Hariez Luv Prily
Company : .
Comments:
Chip type : ATmega8535
Program type : Application
AVR Core Clock frequency: 12.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 128
*****************************************************/
#include <mega8535.h>
#include <stdio.h>
#include <delay.h>
// Declare your global variables here
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTA=0x00;
DDRA=0xFF;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTD=0x00;
DDRD=0xFF;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
while (1)
{
// Place your code here
PORTA=0x0C;
PORTC=0x01;
PORTD=0x51;
delay_ms(100);
PORTC=0x90;
PORTD=0x41;
delay_ms(100);
PORTC=0x80;
PORTD=0x31;
delay_ms(100);
PORTC=0x70;
PORTD=0x21;
delay_ms(100);
PORTC=0x60;
PORTD=0x11;
delay_ms(100);
PORTC=0x50;
PORTD=0x01;
delay_ms(100);
PORTC=0x40;
PORTD=0x90;
delay_ms(100);
PORTC=0x30;
PORTD=0x80;
delay_ms(100);
PORTC=0x20;
PORTD=0x70;
delay_ms(100);
PORTC=0x10;
PORTD=0x60;
delay_ms(100);
PORTC=0x00;
PORTD=0x50;
delay_ms(100);
PORTA=0x0A;
PORTC=0x30;
PORTD=0x40;
delay_ms(100);
PORTC=0x20;
PORTD=0x30;
delay_ms(100);
PORTC=0x10;
PORTD=0x20;
delay_ms(100);
PORTC=0x00;
PORTD=0x10;
delay_ms(100);
PORTA=0x21;
PORTC=0x01;
PORTD=0x51;
delay_ms(100);
PORTC=0x90;
PORTD=0x41;
delay_ms(100);
PORTC=0x80;
PORTD=0x31;
delay_ms(100);
PORTC=0x70;
PORTD=0x21;
delay_ms(100);
PORTC=0x60;
PORTD=0x11;
delay_ms(100);
PORTC=0x50;
PORTD=0x01;
delay_ms(100);
PORTC=0x40;
PORTD=0x90;
delay_ms(100);
PORTC=0x30;
PORTD=0x80;
delay_ms(100);
PORTC=0x20;
PORTD=0x70;
delay_ms(100);
PORTC=0x10;
PORTD=0x60;
delay_ms(100);
PORTC=0x00;
PORTD=0x50;
delay_ms(100);
PORTA=0x11;
PORTC=0x30;
PORTD=0x40;
delay_ms(100);
PORTC=0x20;
PORTD=0x30;
delay_ms(100);
PORTC=0x10;
PORTD=0x20;
delay_ms(100);
PORTC=0x00;
PORTD=0x10;
delay_ms(100);
};
}
Smoga Bermanfaat
Sekarang, akan ada segmen yang sangat kecil dari komunitas mobile yang tidak akan mendengar apa-apa tentang OS Android oleh Google. OS ini tampaknya memberikan banyak vendor proprietary membawa kabur uang mereka dan pemilik banyak melalui malam mereka tanpa tidur.Tapi apakah Anda tahu untuk apa android tergantung pada untuk kinerja yang baik terpisah dari kode yang kuat? Apa yang membuat berjalan begitu halus namun sangat cepat tanpa biaya Anda uang? Apa yang mendorong Android? Jawabannya adalah ARMS, Advanced RISC Machines, sebelumnya dikenal sebagai RISC Acorn Mesin.

Sejarah
Mesin ARM memiliki sejarah hidup sampai harapan pengembang mereka, langsung dari mesin ARM pertama yang pernah dikembangkan. Semuanya dimulai pada 1980-an ketika Acorn Computers Ltd, didorong oleh keberhasilan platform mereka BBC Mikro ingin bergerak dari prosesor CMOS sederhana untuk sesuatu yang lebih kuat, sesuatu yang bisa berdiri kuat terhadap mesin IBM meluncurkan pada tahun 1981.Solusi yang tersedia di pasar seperti Motorola 68000 tidak cukup kuat untuk menangani grafis dan GUI hanya menyisakan satu pilihan dengan perusahaan, membuat prosesor mereka sendiri.
Terinspirasi oleh pembuatan prosesor 32 bit oleh beberapa mahasiswa di Berkeley dan satu orang pusat desain Barat Design Center, Phoenix, Steve Furber dan Sophie Wilson dari Acorn Ltd berangkat untuk membuat prosesor mereka sendiri. Sophie mengembangkan set instruksi dan simulasi itu di Dasar BBC yang meyakinkan banyak di perusahaan itu bukan hanya sesuatu yang setengah hati ditembak ditujukan dalam kegelapan. Dengan dukungan dan izin dari kemudian CEO Hermann Hauser, proyek ARM secara resmi melepas pada tahun 1983 dengan VLSI Teknologi sebagai mitra silikon mereka, untuk menghasilkan prosesor ARM dengan latency serendah bahwa dari 6502. Inti ARM pertama dijuluki sebagai ARM1 disampaikan oleh VLSI Technology di 1985. Prosesor yang digunakan dalam hubungannya dengan BBC Micro membantu dalam pengembangan generasi berikutnya disebut ARM2. 1987 melihat rilis ARM Archimedes.
Acorn melayang sebuah perusahaan baru Advanced RISC Machines Ltd semata-mata didedikasikan untuk pengembangan ARM inti. Pada tahun 1992, Acorn memenangkan penghargaan Queen untuk Teknologi untuk ARM. Apple dan ARM berkolaborasi untuk mengembangkan ARM6 core yang Apple Newton PDA didasarkan. Kemudian, teknologi itu juga ditransfer ke Intel melalui penyelesaian gugatan. Intel lanjut dimodifikasi dan dikembangkan sendiri kinerja tinggi garis XScale, sekarang dijual ke Marvell. ARM Inc terlibat dengan core berkembang terutama ketika pemegang lisensi yang membuat mikrokontroler dan prosesor, sedang yang paling populer mesin ARM7TDMI. Beberapa lisensi yang menonjol dari mesin ARM Alcatel Lucent, Apple, Atmel, Cirrus Logic, Freescale, Desember, Intel, LG, Marvell, Microsoft, Nvidia, Qualcomm, Samsung, Sharp, ST mikroelektronika, Symbios Logika, Texas Instruments, VLSI Teknologi, Yamaha , Zilabs dll
Arsitektur ARM

ARM 490T struktur inti
Mesin ARM memiliki sedikit Reduced Instruction Set Computer 32 (RISC) Arsitektur Beban Store. Kesederhanaan relatif mesin ARM untuk aplikasi daya rendah seperti ponsel, tertanam dan aplikasi mikrokontroler dan mikroprosesor kecil membuat mereka pilihan yang menguntungkan bagi produsen untuk bank di. Manipulasi langsung dari memori tidak mungkin dalam arsitektur ini dan dilakukan melalui penggunaan register.Set instruksi menawarkan varietas bersyarat dan lain dari operasi dengan fokus utama adalah pada pengurangan jumlah siklus per instruksi yang menampilkan sebagian besar siklus operasi tunggal.
Semua petunjuk di ISA ARM bersyarat dengan instruksi eksekusi normal juga disertai dengan kondisi AL. Ada 14 kondisi yang tersedia tidak termasuk AL. Set instruksi tambahan bulu banyak topi sebagai dan ketika generasi tumbuh. Jumlah transistor juga telah meningkat secara substansial dari 30000 di ARM2 menjadi sekitar 26 juta pada ARM Cortex-A9. Arsitektur Thumb tambahan dikembangkan untuk mendukung 16-bit model instruksi pada mesin-mesin lain 32 bit ARM. Tidak peduli keuntungan tambahan kepadatan kode yang meningkat sekitar 65% dari kode ARM asli, ini mengakibatkan penurunan kinerja sedikit di mesin ARM. Penurunan ini diimbangi dengan Thumb 2 yang merupakan perpanjangan besar atas ISA Thumb.
Dalam Thumb 2, compiler secara otomatis memilih campuran 16 bit dan 32 bit instruksi.Perlu dicatat bahwa hanya instruksi set perubahan dari 32 bit ke 16 bit, inti terus beroperasi pada 32 bit. Evolusi ARM v7 core melihat perkembangan Lingkungan Jempol Eksekusi (Thumb-EE) yang dinamis dengan coding yang ditawarkan saat kompilasi kode sebelum atau selama eksekusi itu sendiri. Fitur lain praktis adalah pada dasarnya Instruction Set berjalan pada platform yang sama. Satu set Instruksi, untuk mengeksekusi kode Java di ARMS dikembangkan segera dan bernama Jazelle. Ketiga set Instruksi sekarang tiga negara pada inti ARM dan bergeser dari satu negara ke yang lain, arahan seperti ARM, THUMBX dan THUMB diberikan kepada assembler.Evolusi arsitektur ARM ditunjukkan pada gambar di bawah ini:

Para nomenklatur ARMS didasarkan pada jenis dan fitur yang digunakan di dalamnya.Misalnya di ARM7TDMI, berdiri ‘T’ untuk Thumb, ‘D’ dan ‘aku’ bersama-sama terdiri pada fasilitas debugging chip dan ‘M’ menandakan dukungan untuk multiplier ditingkatkan dan dukungan untuk 64-bit hasil. ARMx7z seperti ARM1176JZ-S menunjukkan AXI bus, cache dipetakan secara fisik dan MMU, memiliki versi arsitektur 6Z. Dengan cara ini, ada konvensi penamaan untuk perangkat ARM.
Arsitektur ARM digunakan berbagai tahap pipelining untuk meningkatkan aliran instruksi untuk prosesor. Hal ini memungkinkan beberapa operasi yang akan dilakukan secara bersamaan yang dinyatakan akan dilakukan serial. Sebagai contoh, ARM7TDMI digunakan 3 tahapan, ARM9TDMI menggunakan 5 tahapan dan ARM10TDMI menggunakan 6 tahap pipa untuk mempercepat pengiriman dan cepat clocking. Core sampai ARM7 diikuti arsitektur Von Neumann jenis yang pada dasarnya adalah arsitektur memori dipetakan. ARM9 dan penerusnya bergeser ke Arsitektur Harvard yang adalah port dipetakan. Mereka juga menyediakan lingkungan debug kuat seperti Logika ICE Embedded yang menghubungkan dengan dunia luar melalui Port Akses Test atau standar IEEE 1149,1 koneksi JTAG. Ini membantu memperpendek siklus pengembangan.
ARM Register
Secara umum ARMS memiliki 37 register diatur dalam bank sebagian tumpang tindih, dengan bank mendaftar terpisah untuk setiap mode prosesor yang cepat sehingga memberikan konteks switching untuk operasi khusus. Berbagai modus di ARM dapat diringkas pada gambar di bawah.

Setiap mendaftar adalah 32 bit dalam ukuran. Register yang dibagi menjadi:
General Purpose Register 30: Hanya 15 GPR terlihat satu waktu tergantung pada modus operasi dan nomor R0-R12, Stack Pointer dan Daftar Link. Sementara stack pointer pada dasarnya digunakan oleh compliers seperti C / C + +, gunakan sebagai setiap GPR lain usang. Link register alamat toko kembali dalam subrutin atau pengecualian tergantung pada mode operasi.
Program Counter: Banyak alamat tujuan pada operasi percabangan dan dapat disetel secara manual saat melakukan panggilan subrutin.
Status Aplikasi Program Pendaftaran: Ini berisi salinan bendera dari ALU untuk memeriksa apakah instruksi bersyarat dieksekusi.
Status Sekarang Program Pendaftaran: Ini memegang berbagai informasi APSR, modus prosesor saat ini, bendera interupsi, bit eksekusi negara dll
Status Program Tersimpan Pendaftaran: Dalam kasus pengecualian terdeteksi, register ini memegang nilai-nilai CPSR tersebut.

ARM dan set instruksi Thumb dapat secara luas diklasifikasikan ke dalam kelompok-kelompok fungsional berikut.
1. Instruksi percabangan dan Pengendalian: Petunjuk seperti panggilan subrutin, perulangan dan mengubah negara antara ARM dan jatuh Thumb bawah kategori instruksi.
2. Daftar instruksi Load dan Store: Memuat nilai-nilai dari register tunggal untuk dan dari memori yang tercakup dalam jenis instruksi. Nilai-nilai mungkin 32 bit kata, 16-bit kata atau setengah nilai unsigned 8 bit.
3. Beberapa Daftar Instruksi Load dan Toko: Memfasilitasi gerakan ke sana kemari antara isi dari register ganda, digunakan dalam operasi blok dan operasi stack.
4. Petunjuk Pengolahan Data: Operasi seperti penambahan, pengurangan atau bitwise logika pada isi dari register yang dilakukan oleh jenis instruksi.
5. Status Daftar Instruksi akses: Instruksi ini terutama memindahkan isi antara register status dan GPR.
6. Coprocessor Petunjuk: ini memberikan kerangka umum untuk memperluas arsitektur ARM.
Siapapun dengan pengetahuan sebelumnya dari arsitektur mikroprosesor dasar akan mengenali kemiripan antara berbagai klasifikasi dan juga set instruksi. Namun ada beberapa fitur yang tidak dapat disesuaikan oleh pengguna dirinya dalam ARMS dan pekerjaan yang tersisa untuk compiler itu sendiri. Dengan evolusi mesin Cortex, prosesor sekarang telah dibagi menjadi 3 profil berdasarkan jenis aplikasi mereka menangani:
1. Profil aplikasi: Ini adalah aplikasi prosesor khusus seperti Cortex-A8 yang fitur Memori dukungan manajemen (MMU) dan kinerja tinggi pada daya rendah.
2. Real-time Profil: Dibuat untuk prosesor real time seperti Cortex-R4 yang memiliki memori yang dilindungi (MPU), dan latency rendah diperlukan untuk aplikasi real time.
3. Profil Mikrokontroler: Perangkat ini dimaksudkan untuk perangkat mobile seperti Cortex-M3. Perilaku diprediksi merupakan prioritas utama dengan menghitung gerbang rendah dan menemukan digunakan dalam aplikasi tertentu tertanam.
Dimulai dengan ARMS lama bekerja pada kecepatan siklus lambat, mesin-mesin telah akhirnya berkembang menjadi mesin kinerja tinggi menawarkan kinerja baterai yang lebih baik dan konsumsi daya yang lebih kecil. Suatu bagan singkat dari keluarga arsitektur beberapa ditampilkan di bawah.

Para ARM9 bekerja pada 130-220 MHz jam biasanya, yang tumbuh 225-333MHz di ARM10, 412 MHz di ARM11, 600MHz di ARM Cortex A8 dan 1 GHz di garis ARM Cortex A9 arsitektur. Setiap lompatan generasi ini ditandai dengan peningkatan kinerja drastis seperti lompatan generasi dalam mesin Pentium.
Skenario saat ini & Masa Depan
ARM telah menemukan penerimaan luas di kalangan produsen perangkat mobile dengan lebih dari 98 perangkat% dikapalkan memiliki setidaknya satu inti ARM.Setidaknya 90% dari 32 bit prosesor tertanam berdasarkan ARM. Mereka menemukan digunakan dalam banyak aplikasi mulai dari elektronik konsumen seperti PDA, ponsel dll dan tangan memegang konsol game untuk solusi jaringan seperti router. ARM mikrokontroler berbasis disesuaikan dikembangkan oleh pemegang lisensi seperti Atmel AT91CAP9 menemukan digunakan dalam perangkat DSP seperti di FPGA.Prosesor ARM menawarkan MIPS terbaik per watt, MIPS per Dolar dan terbaik kepadatan kode di industri dengan ukuran mati terkecil dengan prosesor RISC kontemporer.
Aplikasi dalam robotika seperti Speedcuber ARM Rubik mendapatkan popularitas.Dengan meningkatnya popularitas ponsel pintar seperti meningkatkan penetrasi pasar mereka, inti ARM mendapatkan popularitas lebih dengan raksasa seperti Google, HTC, Nokia, Adobe, Acer, Nvidia, Motorola, LG dan banyak orang lain mengatur semua untuk membakukan prosesor ARM untuk sistem operasi Android. Lebih dari 1,15 miliar chip ARM telah ditempatkan di tablet dan ponsel pintar. Dual core seperti LG Optimus 2X sudah mulai menggunakan terbaru dalam core Cortex baris untuk memberikan performa lebih dalam kebutuhan ruang berkurang. Microsoft baru-baru ini mengkonfirmasi bahwa versi berikutnya dari jendela akan memiliki dukungan ARM arsitektur. Sumber mengklaim bahwa Apple sedang dalam proses menggantikan prosesor Atom dengan core ARM. Dengan setiap tonggak bahwa prosesor ARM mencapai, mereka sedang diadu melawan platform x86. Dengan pertumbuhan yang luar biasa dalam pangsa pasar dan popularitas ARMS selama rentang waktu yang sangat singkat, arsitektur ARM tampaknya menjadi usaha yang sangat menjanjikan untuk saat ini dan masa depan. ARMS telah pasti menyediakan senjata kuat untuk produk-produk kami yang canggih digital dan mimpi untuk membuat mereka tersedia untuk publik pada harga yang terjangkau.
referensi :http://codingjuve.wordpress.com/2011/07/19/arm-advanced-risc-machines-processors-apa-itu/
Hmmm, Pertama kali saya mengoprek ARM ini, waduh bikin kepala saya pusing banget alias tak mudeng ane,wkkwkwkkwkw. Tp karena kegigihan saya mempelajari ini n bertanya2 pada forum, lama kelamaan jadi enak n terasa lebih mudah oprek ARM ini. Mungkin bagi newbie, mungkin terasa susah banget dalam coding programnya.
Yang harus disiapkan:
1. Software Keil Vision 4
2. Proteus 7.8 SP 2
3. Secangkir Teh Es
4. Bagi yang punya pacar, lihat foto pacarnya.suit2
Ini adalah scematicnya:
Ini Adalah Hasilnya:
Source codenya:
#include <LPC213x.H>
/* LPC21xx definitions */
#define LED0 (1<<8)
#define LED1 (1<<9)
#define LED2 (1<<10)
#define LED3 (1<<11)
#define LED4 (1<<12)
#define LED5 (1<<13)
#define LED6 (1<<14)
#define LED7 (1<<15)
#define DIR_LED (LED0)
void sabanta (void) { /* wait function */
int d;
for (d = 0; d < 1000000; d++); /* only to delay for LED flashes */
}
int main(void)
{
unsigned int i,y;
IODIR0 = 0x0000FF00;
while(1)
{
for (i = 1<<8; i < 1<<15; i <<= 1) {
IOSET0 = i;
sabanta();
IOCLR0 = i;
}
for (i = 1<<15; i > 1<<8; i >>= 1) {
IOSET0 = i;
sabanta();
IOCLR0 = i;
}
for(y=0;y<5;y++)
{
IOSET0 = IODIR0;
sabanta();
IOCLR0 = IODIR0;
sabanta();
}
for(y=0;y<5;y++)
{
IOSET0 = 0x0000F000;
sabanta();
IOCLR0 = 0x0000F000;
sabanta();
}
};
}
|
MARVEL and SPIDER-MAN: TM & 2007 Marvel Characters, Inc. Motion Picture © 2007 Columbia Pictures Industries, Inc. All Rights Reserved. 2007 Sony Pictures Digital Inc. All rights reserved. blogger template by blog forum.
|