selamat datang di dunia DREAM VS REAL

Sabtu, 27 November 2010

Mikrokomputer, Mikrokontroler, Mikroprosesor

1. MIKROKOMPUTER

Sistem Komputer yang kita ketahui dalam keseharian adalah yang terdapat pada PC. Suatu sistem komputer bekerja dengan ditandai adanya interaksi antara komputer dan peripheral (hadware-nya) dengan program dan sistem operasi (softwarenya).

Komputer (CPU) adalah “otak” dari sistem tersebut sedangkan peripheral menghubungkan “otak” tersebut dengan dunia luar. Kerja suatu sistem komputer dioperasikan oleh sistem operasi dan program.

Suatu sistem komputer terdiri atas tiga bagian utama:
1. CPU (Central Processing Unit)
CPU terdiri atas dua bagian yaitu:

1. CU (Control Unit) :
Ini adalah unit pengendali. Fungsi utama unit pengendali (CU) adalah mengambil, mengkode, dan melaksanakan instruksi sebuah program yang tersimpan dalam memori. Unit pengendali mengatur urutan operasi seluruh sistem. Unit ini juga menghasilkan dan mengatur sinyal pengendali yang diperlukan untuk menyerempakkan operasi, juga aliran dan instruksi program.
ALU (Arithmetic Logic Unit):
Unit ini berfungsi melaksanakan operasi aritmatik serta operasi-operasi logika.

2. Memory Unit (Unit Penyimpan)
Unit-unit ini mengandung program-program yang bersangkutan dan data yang sedang diolah.

3. I/O (Unit Pengontrol Masukan dan Pengeluaran)
Unit ini melakukan hubungan dengan peripheral.

Sistem Mikrokomputer

Bila sebuah komputer dibangun dalam sebuah PCB tunggal maka disebut minikomputer. Dan sebuah CPU yang dipakai dalam sebuah chip semikonduktor disebut mikroprosessor. Mikrokomputer sendiri adalah sebuah komputer yang dikonstruksi dari sebuah mikroprosesor dengan ditambahkan unit memori serta sistem I/O. Sistem mikrokomputer sama dengan yang terdapat pada sistem komputer. Untuk menanggulangi berbagai macam kerja yang harus dilakukan, biasanya diberikan “logika tambahan” atau rangkaian logika lain misalnya tri-state buffer, buffer, decoder, multiplexer.

Ciri utama sistem mikrokomputer : hubungan yang berbentuk “bus”. (Istilah bus diambil dari bahasa latin omnibus yang berarti kepada/untuk semua). Bus menunjukkan hubungan antara komponen-komponen secara elektris. Bus meneruskan data, alamat-alamat (address) atau sinyal pengontrol.

Bagian-Bagian Sistem Mikrokomputer

Di atas telah dijelaskan susunan sistem mikrokomputer. Sistem mikrokomputer terdiri dari bagian-bagian yang berfungsi sama penting.

1. CPU/Mikroprosesor

Mikroprosesor berfungsi sebagai unit pengolah utama (CPU). Unit ini terdiri dari sebuah kalkulator dan unit pengontrol (CU). Unit kalkulator dari mikroprosesor terdiri dari register atau daftar (sebuah memori sementara yang cepat dan kecil), ALU, register status (menunjukkan keadaan sesaat dari perhitungan) dan sebuah pengkode.

2. Memori
a. RAM (Random Access Memory)

RAM adalah unit memori yang dapat dibaca dan/atau ditulisi. Data dalam RAM bersifat volatile (akan hilang bila power mati). RAM hanya digunakan untuk menyimpan data sementara, yaitu data yang tidak begitu penting (tidak masalah bila hilang akibat aliran daya listrik terputus). Ada dua macam RAM yaitu RAM statik dan RAM dinamik. RAM statik adalah flipflop yang terdiri dari komponen seperti resistor, transistor, dioda dan sebagainya. Setiap 1 bit informasi tersimpan hingga sel “dialamatkan” dan “ditulis-hapuskan”. Keuntungan dari RAM statik adalah akses atau jalan masuk yang bebas ke setiap tempat penyimpanan yang diinginkan, dan karena itu kecepatan masuk ke dalam memori terhitung relatif tinggi. RAM dinamik menyimpan bit informasi sebagai muatan. Sel memori elementer dibuat dari kapasistansi gerbang-substrat transistor MOS. Keuntungan RAM dinamik adalah sel-sel memori yang lebih kecil sehingga memerlukan tempat yang sempit, sehingga kapasistas RAM dinamik menjadi lebih besar dibanding RAM statik. Kerugiannya adalah bertambahnya kerumitan pada papan memori, karena diperlukannya rangkaian untuk proses penyegaran (refresh). Proses penyegaran untuk kapasitor ini dilakukan setiap 1 atau 2 mili detik.

b. ROM (Read Only Memory)

ROM merupakan memori yang hanya dapat dibaca. Data tidak akan terhapus meskipun aliran listrik terputus (non-volatile). Karena sifatnya, program-program disimpan dalam ROM. Beberapa tipe ROM:
- ROM Murni : yaitu ROM yang sudah diprogram oleh pabrik atau dapat juga program yang diminta untuk diprogramkan ke ROM oleh pabrik.
- PROM (Programmable Random Access Memory) : ROM jenis ini dapat diprogram sendiri akan tetapi hanya sekali pakai (tidak dapat diprogram ulang).
- EPROM (Erasable Programmable Random Access Memory) : yaitu jenis ROM yang dapat diprogram dan diprogram ulang.


c. Input/Output (I/O)

Piranti Input/Output (I/O interface) dibutuhkan untuk menghubungkan piranti di luar sistem. I/O dapat menerima/memberi data dari/ke mikroprosesor. Untuk menghubungkan antara I/O interface dengan mikroprosesor dibutuhkan piranti address. Dua macam I/O interface yang dipakai yaitu: serial dan paralel. Piranti serial (UART/universal asynchronous receiver-transmitter) merupakan pengirim-penerima tunggal (tak serempak). UART mengubah masukan serial menjadi keluaran paralel dan mengubah masukan paralel menjadi keluaran serial. PIO (paralel input output) merupakan pengirim-penerima serempak. PIO dapat diprogram dan menyediakan perantara masukan dan keluaran dasar untuk data paralel 8 bit.

Sistem Bus

Bus menghubungkan semua komponen dalam unit mikrokomputer. Ada tiga tipe bus yaitu:
- Data Bus (bus-D) : bus dengan delapan penghantar, data dapat diteruskan dalam arah bolak-balik (lebar data 8 bit) yaitu dari mikroprosesor ke unit memori atau modul I/O dan sebaliknya.
- Control Bus (bus-C) : meneruskan sinyal-sinyal yang mengatur masa aktif modul mikrokomputer yang sesuai dengan yang diinginkan menurut kondisi kerja.
- Address Bus (bus-A) : meneruskan data alamat (misal alamat 16 bit), dari penyimpan atau dari saluran masukan/keluaran yang diaktifkan pada saat tertentu.
Hubungan dalam masing-masing bus berupa kabel paralel 8 bit (jalur) maupum 16 bit (jalur).


2. MIKROKONTROLER

Arsitektur mikrokontroler MCS-51 diotaki oleh CPU 8 bit yang terhubung melalui satu jalur bus dengan memori penyimpanan berupa RAM dan ROM serta jalur I/O berupa port bit I/O dan port serial. Selain itu terdapat fasilitas timer/counter internal dan jalur interface address dan data ke memori eksternal.

Blok sistem mikrokontroler MCS-51 adalah sebagai berikut.

Active Image

Salah satu tipe mikrokontroler arsitektur MCS-51 yang banyak digunakan saat ini adalah tipe Atmel 89S51. Tipe ini banyak digunakan karena memiliki fasilitas on-chip flash memory dan In System Programming. Berikut adalah feature-feature untuk mikrokontroler tipe 89S51 buatan Atmel.

  • 4K bytes Flash ROM
  • 128 bytes RAM
  • 4 port @ 8-bit I/O (Input/Output) port
  • 2 buah 16 bit timer
  • Interface komunikasi serial
  • 64K pengalamatan code (program) memori
  • 64K pengalamatan data memori
  • Prosesor Boolean (satu bit – satu bit)
  • 210 lokasi bit-addressable
  • Fasilitas In System Programming (ISP)


MEMORY MAP MIKROKONTROLER MCS-51

Active Image


PENJELASAN FUNGSI PIN MIKROKONTROLER MCS-51

IC mikrokontroler dikemas (packaging) dalam bentuk yang berbeda. Namun pada dasarnya fungsi kaki yang ada pada IC memiliki persamaan. Gambar salah satu bentuk IC seri mikrokontroler MCS-51 dapat dilihat berikut.

Active Image

Berikut adalah penjelasan fungsi tiap kaki yang biasa ada pada seri mikrokontroler MCS-51.

A. Port 0
Merupakan dual-purpose port (port yang memiliki dua kegunaan). Pada desain yang minimum (sederhana) digunakan sebagai port I/O (Input/Output). Pada desain lebih lanjut pada perancangan dengan memori eksternal digunakan sebagai data dan address yang di-multiplex. Port 0 terdapat pada pin 32-39.

B. Port 1
Merupakan port yang hanya berfungsi sebagai port I/O, kecuali pada IC 89S52 yang menggunakan P1.0 dan P1.1 sebagai input eksternal untuk timer ketiga (T3). Port 1 terdapat pada pin 1-8.

C. Port 2
Merupakan dual-purpose port. Pada desain minimum digunakan sebagai port I/O. Pada desain lebih lanjut digunakan sebagai high byte dari address. Port 2 terdapat pada pin 21-28.

D. Port 3
Merupakan dual-purpose port. Selain sebagai port I/O juga mempunyai fungsi khusus yang ditunjukkan pada tabel berikut.

PIN

FUNGSI KHUSUS

P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7

RXD ( serial input port )
TXD ( serial output port )
_INT0 ( external interrupt 0 )
_INT1 ( external interrupt 1 )
T0 ( timer 0 external input )
T1 ( timer 1 external input )
_WR ( external data memory write strobe )
_RD ( external data memory read strobe )



E. PSEN (Program Store Enable)
PSEN adalah kontrol sinyal yang mengijinkan untuk mengakses program (code) memori eksternal. Pin ini dihubungkan ke pin OE (Output Enable) dari EPROM. Sinyal PSEN akan 0 pada tahap fetch (penjemputan) instruksi. PSEN akan selalu bernilai 0 pada pembacaan program memori internal. PSEN terdapat pada pin 29.

F. ALE (Address Latch Enable)
ALE digunakan untuk men-demultiplex address dan data bus. Ketika menggunakan program memori eksternal port 0 akan berfungsi sebagai address dan data bus. Pada setengah paruh pertama memory cycle ALE akan bernilai 1 sehingga mengijinkan penulisan alamat pada register eksternal dan pada setengah paruh berikutnya akan bernilai satu sehingga port 0 dapat digunakan sebagai data bus. ALE terdapat pada pin 30.

G. EA (External Access)
Jika EA diberi masukan 1 maka mikrokontroler menjalankan program memori internal saja. Jika EA diberi masukan 0 (ground) maka mikrokontroler hanya akan menjalankan program memori eksternal (PSEN akan bernilai 0). EA terdapat pada pin 31.

H. RST (Reset)
RST pada pin 9 merupakan pin reset. Jika pada pin ini diberi masukan 1 selama minimal 2 machine cycle maka system akan di-reset dan register-register internal akan berisi nilai default tertentu dan program kembali mengeksekusi dari alamat paling awal.

I. On-Chip Oscillator
Mikrokontroler MCS-51 telah memiliki on-chip oscillator yang dapat bekerja jika di-drive menggunakan kristal. Tambahan kapasitor diperlukan untuk menstabilkan sistem. Nilai kristal yang biasa digunakan pada 89S51/89S52 adalah sekitar 12 MHz, dan maksimum sampai 24 MHz. On-chip oscillator tidak hanya dapat di-drive dengan menggunakan kristal, tapi juga dapat digunakan TTL oscillator.

J. Koneksi Power
Mikrokontroler biasanya beroperasi pada tegangan 3.3 volt atau 5 volt (tergantung serinya). Pin Vcc terdapat pada pin 40 sedangkan Vss (ground) terdapat pada pin 20.


3. MIKROPROSESOR

Sejak Intel mengeluarkan seri 4004 sekitar tahun 1970 dikenal ada dua jenis arsitektur mikroprosesor dilihat dari cara penggunaan memorinya. Jauh sebelum ini, pada tahun 1944 Howard Aiken dari Harvard University bekerja sama dengan engineer IBM membuat mesin electromechanical yang terbuat dari banyak sekali transistor tabung dan relay. Mesin ini dikenal sebagai komputer pertama di dunia yang diberi nama Harvard Mark I. Belakangan baru diketahui bahwa sebelumnya pada tahun 1941 Konrad Zuse dari Jerman sudah membuat mesin yang dapat diprogram dan bekerja dengan sistem biner. Namun karena Jerman kala itu terisolasi saat perang dunia ke-II, Harvard Mark I diyakini sebagai komputer pertama yang memakai prinsip digital.

Mesin Harvard ini tidak lain adalah mesin kalkulator yang dikendalikan oleh pita kertas yang berisi instruksi. Waktu itu belum terpikirkan konsep komputer yang memakai memori. Hanya sebelumnya Alan Turing seorang ahli matematika Inggris pada tahun 1939 mengemukanan konsep mesin universal (universal machine). Hampir satu dekade kemudian pada tahun 1945, Dr. John von Neumann ahli matematika yang lahir di Budapest Hongaria, membuat tulisan mengenai konsep komputer yang menurutnya penting untuk menyimpan instruksi dan data pada memori. Sehingga mesin komputer ini dapat bekerja untuk berbagai keperluan.

Dari dulu hingga saat ini konsep dasar dari komputer yang dikendalikan oleh program sekuensial masih sama, yaitu terdiri dari CPU, Memori dan I/O (input-output). CPU (Central Processing Unit) sendiri terdiri dari blok unit control dan ALU (Aritmathic Logic Unit). Konsep dasarnya semua sama, tetapi kemudian adalah bagaimana implementasi dan realisasinya. Desainer dan pabrik mikroprosesor membuatnya dengan arsitektur yang berbeda-beda.

Sebagai pionir era komputer digital, nama Harvard dan Von Neumann diadopsi untuk menggambarkan dua tipe arsitektur mikroprosesor. Kedua arsitektur itu berbeda pada cara penempatan memorinya dan dikenal dengan sebutan arsitektur Harvard dan arsitektur Von Neumann.

Arsitektur Von Neumann adalah arsitektur komputer yang menempatkan program (ROM=Read Only Memory) dan data (RAM=Random Access Memory) dalam peta memori yang sama. Arsitektur ini memiliki address dan data bus tunggal untuk mengalamati program (instruksi) dan data. Contoh dari mikrokontroler yang memakai arsitektur Von Neumann adalah keluarga 68HC05 dan 68HC11 dari Motorola.

Sebaliknya, arsitektur Harvard memiliki dua memori yang terpisah satu untuk program (ROM) dan satu untuk data (RAM). Intel 80C51, keluarga Microchip PIC16XX, Philips P87CLXX dan Atmel AT89LSXX adalah contoh dari mikroprosesor yang mengadopsi arsitektur Harvard. Kedua jenis arsitektur ini masing-masing memiliki keungulan tetapi juga ada kelemahannya.

Dengan arsitektur Von Neuman prosesor tidak perlu membedakan program dan data. Prosesor tipe ini tidak memerlukan control bus tambahan berupa pin I/O khusus untuk membedakan program dan data. Karena kemudahan ini, tidak terlalu sulit bagi prosesor yang berarsitektur Von Neumann untuk menambahan peripheral eksternal seperti A/D converter, LCD, EEPROM dan devais I/O lainnya. Biasanya devais eksternal ini sudah ada di dalam satu chips, sehingga prosesor seperti ini sering disebut dengan nama mikrokontroler (microcontroller).

Arsitektur Von Neumann

Keuntungan lain dengan arrrsitektur Von Neumann adalah pada fleksibilitas pengalamatan program dan data. Biasanya program selalu ada di ROM dan data selalu ada di RAM. Arsitektur Von Neumann memungkinkan prosesor untuk menjalankan program yang ada didalam memori data (RAM). Misalnya pada saat power on, dibuat program inisialisasi yang mengisi byte di dalam RAM. Data di dalam RAM ini pada gilirannya nanti akan dijalankan sebagai program. Sebaliknya data juga dapat disimpan di dalam memori program (ROM). Contohnya adalah data look-up-table yang ditaruh di ROM. Data ini ditempatkan di ROM agar tidak hilang pada saat catu daya mati. Pada mikroprosesor Von Neumann, instruksi yang membaca data look-up-table atau program pengambilan data di ROM, adalah instruksi pengalamatan biasa. Sebagai contoh, pada mikrokontroler 8bit Motorola 68HC11 program itu ditulis dengan :

LDAA $4000 ; A <-- $4000

Program ini adalah instruksi untuk mengisi accumulator A dengan data yang ada di alamat 4000 (ROM).

Instruksi tersebut singkat hanya perlu satu baris saja. Pada prinsipnya, kode biner yang ada di ROM atau di RAM bisa berupa program dan bisa juga berupa data.

Arsitektur Von Neumann bukan tidak punya kelemahan, diantaranya adalah bus tunggalnya itu sendiri. Sehingga instruksi untuk mengakses program dan data harus dijalankan secara sekuensial dan tidak bisa dilakukan overlaping untuk menjalankan dua isntruksi yang berurutan. Selain itu bandwidth program harus sama dengan banwitdh data. Jika memori data adalah 8 bits maka program juga harus 8 bits. Satu instruksi biasanya terdiri dari opcode (instruksinya sendiri) dan diikuti dengan operand (alamat atau data). Karena memori program terbatas hanya 8 bits, maka instruksi yang panjang harus dilakukan dengan 2 atau 3 bytes. Misalnya byte pertama adalah opcode dan byte berikutnya adalah operand. Secara umum prosesor Von Neumann membutuhkan jumlah clock CPI (Clock per Instruction) yang relatif lebih banyak dan walhasil eksekusi instruksi dapat menjadi relatif lebih lama.

Arsitektur Harvard

Pada mikroprosesor yang berarsitektur Harvard, overlaping pada saat menjalankan instruksi bisa terjadi. Satu instruksi biasanya dieksekusi dengan urutan fetch (membaca instruksi ), decode (pengalamatan), read (membaca data), execute (eksekusi) dan write (penulisan data) jika perlu. Secara garis besar ada dua hal yang dilakukan prosesor yaitu fetching atau membaca perintah yang ada di memori program (ROM) dan kemudian diikuti oleh executing berupa read/write dari/ke memori data (RAM). Karena pengalamatan ROM dan RAM yang terpisah, ini memungkinkan CPU untuk melakukan overlaping pada saat menjalankan instruksi. Dengan cara ini dua instruksi yang beurutan dapat dijalankan pada saat yang hampir bersamaan. Yaitu, pada saat CPU melakukan tahap executing instruksi yang pertama, CPU sudah dapat menjalankan fetching instruksi yang ke-dua dan seterusnya. Ini yang disebut dengan sistem pipeline, sehingga program keseluruhan dapat dijalankan relatif lebih cepat.

prinsip pipeline

Pada arsitektur Harvard, lebar bit memori program tidak mesti sama dengan lebar memori data. Misalnya pada keluarga PICXX dari Microchip, ada yang memiliki memori program dengan lebar 12,14 atau 16 bits, sedangkan lebar data-nya tetap 8 bits. Karena bandwith memori program yang besar (16 bits), opcode dan operand dapat dijadikan satu dalam satu word instruksi saja. Tujuannya adalah supaya instruksi dapat dilakukan dengan lebih singkat dan cepat.

Kedua hal di atas inilah yang membuat prosesor ber-arsitektur Harvard bisa memiliki CPI yang kecil. PICXX dari Microchip dikenal sebagai mikroprosesor yang memiliki 1 siklus mesin (machine cycle) untuk tiap instruksinya, kecuali instruksi percabangan.

Dari segi kapasitas memori, tentu arsitektur Harvard memberi keuntungan. Karena memori program dan data yang terpisah, maka kavling total memori program dan data dapat menjadi lebih banyak. Mikrokontroler 8bit Motorola 68HC05 memiliki peta memori 64K yang dipakai bersama oleh RAM dan ROM. Oleh sebab itu pengalamatan ROM dan RAM hanya dapat mencapai 64K dan tidak lebih. Sedangkan pada mikrokontroler Intel keluarga 80C51 misalnya, memori program (ROM) dan memori data (RAM) masing-masing bisa mencapai 64K.

Tetapi ada juga kekurangannya, arsitektur Harvard tidak memungkinkan untuk menempatkan data pada ROM. Kedengarannya aneh, tetapi arsitektur ini memang tidak memungkinkan untuk mengakses data yang ada di ROM. Namun hal ini bisa diatasi dengan cara membuat instruksi dan mekanisme khusus untuk pengalamatan data di ROM. Mikroprosesor yang memiliki instruksi seperti ini biasanya disebut ber-arsitektur Modified Harvard. Instruksi yang seperti ini dapat ditemukan pada keluarga MCS-51 termasuk Intel 80C51, P87CLXX dari Philips dan Atmel AT89LSXX. Tetapi instruksi itu keseluruhannya menjadi program yang lebih panjang seperti contoh program dengan 80C51 berikut ini.

MOV DPTR,#4000 ;DPTR = $4000

CLR A ;@A = 0

MOVC A,@A+DPTR ;A <-- (DPTR+@A)

Urutan program di atas adalah :

1. load/isi data pointer dengan #4000

2. set accumulator A = 0 sebagai offset

3. load/isi accumulator A dengan data di alamat 4000+offset

Bandingkan dengan instruksi 68HC11 yang cukup dengan satu instruksi LDAA $4000.

Seperti yang dikemukan pada tulisan ini, Arsitektur Harvard dan Von Neuman keduanya memiliki kelebihan sekaligus juga kekurangan. Dalam memilih prosesor tentu saja tidak hanya dengan mempertimbangkan arsitekturnya. Motorola dengan varian singlechip-nya ada yang dilengkapi dengan konventer A/D dan D/A, PWM control, port I/O, EEPROM dan sebagainya. Tetapi tidak ketinggalan juga keluarga Intel 80C51 dan klonnya, memperkenalkan bus serial I2C yang sangat praktis untuk penambahan devais eksternal. Intel based MCS-51 adalah arsitektur yang paling banyak diadopsi misalnya oleh Philips dan Atmel, sehingga kompatibilitas diantaranya semakin besar.

Karena desain arsitektur yang demikian, jumlah siklus mesin (machine cycle) per instruksi keluarga 68HC05/11 relatif lebih banyak dari keluarga 80C31/51. Misalnya instruksi 68HC05 Motorola untuk program percabangan, seperti contoh dibawah ini diselesaikan dengan 6 siklus mesin.

Motorola 68HC05/11 :

DECX

BNE LOOP

Intel 80C31/51 :

DJNZ R0,LOOP

Dibandingkan dengan 80C51 Intel, instruksi yang sama dapat diselesaikan dengan 2 siklus mesin saja.

Namun demikian satu siklus instruksi, kecepatannya ditentukan juga oleh peran kristal/osilator. Satu siklus mesin mikrokontroler Motorola adalah frekuensi kristal dibagi 4 sedangkan untuk Intel dibagi 12. Sehingga jika menggunakan kristal yang sesuai, program percabangan itu dapat diselesaikan oleh kedua contoh mikrokontroler di atas dalam waktu yang relatif sama.


DAFTAR PUSTAKA :


http://rosyid-op-amp.blogspot.com/