makalah embedded

11
Sistem Embedded “Implementation Microntroller and CCDPP” OLEH Herni Yanti 09121001007 Puspita Indah Sari S. 09121001013 Pia Ardhya Garini 09121001036 M. Agus Wahyudi 09121001031 Ahmad Syarifudin 09121001068 Apriadi 09121001038 Adhi Kurniawan 09121001053 Sistem Komputer Fakultas Ilmu Komputer

Upload: adhi-xmyth-therev-sevenfoldism

Post on 01-Feb-2016

261 views

Category:

Documents


5 download

DESCRIPTION

embedded

TRANSCRIPT

Page 1: Makalah Embedded

Sistem Embedded

“Implementation Microntroller and CCDPP”

OLEH

Herni Yanti 09121001007

Puspita Indah Sari S. 09121001013

Pia Ardhya Garini 09121001036

M. Agus Wahyudi 09121001031

Ahmad Syarifudin 09121001068

Apriadi 09121001038

Adhi Kurniawan 09121001053

Sistem Komputer

Fakultas Ilmu Komputer

Universitas Sriwijaya

Inderalaya

2015/2016

Page 2: Makalah Embedded

Implementation Microntroller and CCDPP

Salah satu metode untuk meningkatkan kinerja adalah untuk

mengimplementasikan fungsi menggunakan custom single-purpose processor.

Biasanya, kami menolak merancang prosessor custom single-purpose karena

mereka dapat meningkatkan biaya NRE dan waktu ke pasar. Namun, fungsi

CCDPP adalah kandidat utama untuk implementasi tersebut - tidak hanya

mengambil banyak siklus mikrokontroler, tapi tampaknya sederhana untuk

menerapkan prosesor single-purpose. Tidak ada aritmatika yang rumit, sehingga

datapath akan sangat sederhana, dan controller tidak akan terlihat seperti memiliki

banyak keadaan yang baik, karena sebagian besar siklus berasal dari perulangan

literasi 64 x 64 - ini mungkin akan menerjemahkan untuk beberapa counter

sederhana.

Dengan demikian, kita memutuskan untuk menggunakan mikrokontroller

8051 ditambah dengan prosesor single-purpose CCDPP. Kita juga menerapkan

UART sederhana untuk fungsi transmit-serial. Juga akan menambahkan

EEPROM untuk memori program dan RAM untuk memori data. Perhatikan

bahwa CCDPP dan UART prosesor dapat diterapkan dengan mencari komponen

standar untuk masing-masing, tetapi mereka adalah komponen sederhana, jadi

sebagai gantinya mari kita menerapkannya sebagai kustom. CCDPP

mengimplementasikan operasi zero-bias dan berinteraksi dengan chip CCD yang

sebenarnya, yang berada di IC. Sisa fungsionalitas akan diterapkan dalam

software pada mikrokontroler.

2

Diagram Blok Intel 8051 processor core

ALU

Instruction Decoder

128RAM

4K ROMController

Ke Bus Memori Eksternal

Gambar 1.11 Diagram Blok 8051

Page 3: Makalah Embedded

Kita mulai dengan mikrokontroler. Implementasi disintesis dari

mikrokontroler ini, ditangkap di tingkat perpindahan (RTL) dan ditulis dalam

VHDL, tersedia bagi kita untuk integrasi ke seluruh sistem. Sebuah diagram blok

dari komponen utama dari 8051 diberikan pada gambar 1.1. Controller mengambil

instruksi dari memori program yang read-only dan men-decode mereka

menggunakan komponen decoder. Komponen ALU digunakan untuk benar-benar

melaksanakan operasi aritmatika seperti penjumlahan, perkalian, dan pembagian.

Sumber dan tujuan dari operasi ini adalah register yang berada di RAM prosesor

internal. Perintah pergerakan data spesial digunakan untuk memuat dan

menyimpan data dari memori eksternal melalui bus memori eksternal. Sebuah C

compiler / linker digunakan untuk mengkompilasi program C untuk eksekusi

pada processor. ROM yang dihasilkan menggunakan program khusus yang

bertuliskan output dari C compiler / linker dan output deskripsi VHDL dari ROM.

Gambar 1.2. UART sebagai FSMD

UART sederhana prosesor single-tujuan. perilakunya digambarkan pada

Gambar 1.2. sebagai sebuah mesin kondisi-terbatas dengan data (FSMD).

Biasanya, UART dalam keadaan siaga. Ketika dipanggil, ia transisi ke kondisi

awal, di mana ia mengirimkan 0 yang menunjukkan awal transmisi byte.

Kemudian transisi ke kondisi berhenti, di mana ia akan mengirimkan 8 bit dari

byte yang dikirim. Kemudian, ia beralih kembali ke keadaan idle, siap untuk

mengulangi proses ketika dipanggil lagi. Karena UART adalah memori yang

3

Page 4: Makalah Embedded

dipetakan ke ruang alamat memori prosesor, UART dipanggil ketika prosesor

mengeksekusi perintah menyimpan dengan register enable UART sebagai lokasi

memori target. Tentu saja, UART terus memantau alamat-bus, dan ketika

mendeteksi alamat register enable, itu akan menangkap data pada data-bus dan

memulai proses transmis. Perhatikan bahwa kita akan menggunakan I / O

memori-mapped untuk komunikasi antara ruang alamat prosesor 8051 adalah

sebesar 16 bit, kita menggunakan alamat memori yang lebih rendah, yang dimulai

dari 0 dan naik, untuk RAM dan alamat memori atas, dan kami menggunakan

mereka mulai di 65,535 dan turun untuk I / O perangkat mapped-memori.

Gambar 1.3. Single-purpose processor CCDPP sebagai FSMD

CCDPP adalah salah satu Processor single-purpose yang telah

diimplementasikan dalam perangkat keras. FSMD dari CCDPP digambarkan pada

gambar 1.3. Processor single-purpose CCDPP memiliki buffer, berlabel B, dan

tiga variabel yang disebut R, C, dan Bias. Variabel R dan C digunakan sebagai

indeks baris dan kolom. Variabel Bias memegang error Zero-bias untuk masing-

masing baris selagi baris diproses. FSMD bekerja sebagai berikut. Setelah

dipanggil, ia transisi ke kondisi GetRow dimana ia membaca dari CCD aktual

deretan lengkap termasuk dua piksel terakhir yang dihitamkan. Kemudian, FSMD

transisi ke kondisi ComputeBias dimana ia menghitung bias baris saat ini dan

4

FixBias:B[R][C]=B[R][C]-Bias

 

NextRow:R++C=0

ComputeBias:Bias=(B[R][11] +

B[R][10]) / 2C=0

GetRow:B[R][C]=Pxl

C=C+1 

Idle:R=0C=0

C < 66

R < 64

invoked

C = 66R = 64

C < 64

C = 64

Page 5: Makalah Embedded

menyimpannya ke dalam variabel Bias. Dalam kondisi berikutnya, disebut

FixBias, FSMD mengurangkan jauh bias dari setiap elemen dalam baris itu.

Dalam keadaan berikutnya, disebut NextRow, indeks baris bertambah dan proses

mengulang, membaca baris berikutnya, atau berhenti ketika seluruh data/gambar

diproses. Kami berasumsi bahwa, seperti dengan UART, processor single-purpose

ini terhubung ke bus memori prosessor 8051 dengan isi buffer internal dipetakan

ke alamat memori atas prosesor.

Kami sekarang memiliki semua komponen dari sistem-on-a-chip kami dan

siap untuk menghubungkan hal-hal bersama-sama membentuk kamera digital kita.

Ini dicapai melalui bus memori 8051 ini, seperti yang dinyatakan sebelumnya.

Bus memori 8051 menggunakan protokol read dan write sederhana dan terdiri

dari 8-bit data bus, 16-bit address-bus, kontrol sinyal read dan kontrol-sinyal

write. Sebuah memori bekerja sebagai berikut. Prosesor menempatkan alamat

memori pada alamat-bus, yang menegaskan sinyal kontrol read untuk satu waktu-

siklus dan membaca data dari data-bus satu waktu-siklus kemudian. Perangkat

yang sedang dibaca, baik RAM atau salah satu dari mapped memori prosesor

single-purpose, ketika mendeteksi bahwa sinyal kontrol read menegaskan, dan

setelah memeriksa isi dari alamat-bus, menempatkan dan menahan data yang

diminta pada data-bus untuk tepat satu waktu siklus. Sebuah operasi write bekerja

dengan cara yang sama. Prosesor menempatkan memori dan data pada alamat dan

data-bus, masing-masing. Kemudian, menegaskan sinyal kontrol penulis untuk

tepat satu waktu siklus. Perangkat yang sedang ditulis, ketika mendeteksi bahwa

sinyal write kontrol menegaskan, dan setelah memeriksa isi dari alamat-bus,

membaca dan menyimpan data dari data-bus.

Gambar 1.4. Menulis ulang modul UART untuk memanfaatkan hardware UART

5

static unsigned char xdata U_TX_REG _at_ 65535;static unsigned char xdata U_STAT_REG _at_ 65534;void UARTInitialize(void) {}void UARTSend(unsigned char d) { while( U_STAT_REG == 1 ) { /* busy wait */ } U_TX_REG = d;}

Page 6: Makalah Embedded

Sekarang kita memiliki porsi hardware desain yang kita terapkan, kita

perlu menulis perangkat lunak untuk menyelesaikan proyek. Untungnya,

spesifikasi desain kami akan menyediakan sebagian besar kode yang kita

butuhkan. Bahkan, kami akan mempertahankan struktur kode yang sama. Satu-

satunya hal yang perlu dilakukan adalah untuk merancang UART dan prosesor

kustom single-purpose CCDPP. Semua yang perlu kita lakukan adalah mengganti

kode dalam prosedur ini dengan tugas memori ke perangkat keras masing-masing.

Contoh. Kode untuk modul ini diberikan pada Gambar 1.4. Kami telah

menetapkan dua variabel, U_TX_REG, dan U_STAT_REG. Ada dua kata kunci

yang digunakan dalam mendefinisikan dua variabel ini bahwa Anda mungkin

tidak mengenalinya. Yang pertama, yang disebut xdata, memerintahkan compiler

untuk menempatkan variabel-variabel ini dalam memori eksternal. Dalam kata

lain, compiler akan menghasilkan kode yang akan memuat dan menyimpan

variabel-variabel tersebut di atas bus memori eksternal dari prosesor. Kata kunci

kedua memungkinkan kita untuk mendeklarasikan variabel sehingga ketika

membaca atau menulis akan menyebabkan operasi yang akan dilakukan di bus.

Sekarang, yang harus kita lakukan untuk mengirim byte menggunakan UART

kami dengan prosesor single-purpose, adalah menulis byte yang akan dikirim ke

U_TX_REG yang menyebabkan ia dipanggil. Tapi karena prosesor kami mungkin

jauh lebih cepat dari UART, kita harus terlebih dahulu memastikan bahwa UART

adalah dalam keadaan siaga nya. Hal ini dilakukan dengan loop sementara.

Setelah dirancang UART, sehingga kami dapat memeriksa sibuk atau tidaknya,

kita bisa busy-wait sampai menjadi siaga sebelum mengirim byte data berikutnya.

Pelaksanaan modul CCDPP juga sama dimodifikasi untuk memanfaatkan prosesor

single-purpose CCDPP. Sisa dari modul tidak tersentuh.

Sekarang kita dapat men-compile dan menghubungkan semua modul

perangkat lunak dan mendapatkan eksekusi akhir program. Executable program

ini kemudian diterjemahkan ke dalam representasi VHDL dari ROM

menggunakan generator ROM. Sebuah simulator VHDL mengambil masukan file

VHDL, membuat sistem, dan mensimulasikan pelaksanaan fungsi IC terakhir

dengan menafsirkan deskripsi. Dengan simulasi, kita dapat belajar desain secara

fungsional. Selain itu, kami juga dapat mengukur jumlah waktu, atau waktu-

6

Page 7: Makalah Embedded

siklus, yang dibutuhkan untuk memproses satu gambar. Gambar 1.5 (a)

menunjukkan bagaimana setelah simulasi model VHDL, kita mendapatkan waktu

eksekusi. Gambar 1.5 (b) menunjukkan bagaimana kita mensintesis model VHDL

tingkat tinggi dan memperoleh gambaran tingkat gerbang sirkuit yang sesuai.

Kemudian kita mensimulasikan model tingkat gerbang untuk memperoleh data

yang diperlukan untuk menghitung konsumsi daya dari sirkuit. Gambar 1.5 (c)

menunjukkan bagaimana dengan menambahkan jumlah gerbang, kita memperoleh

total luas chip.

Gambar 1.5. Mendapatkan desain metrik yang menarik, (a) Kinerja, (b) Power, (c) Area

Setelah puas bahwa fungsi desain benar, kita dapat menggunakan alat

mensintesis untuk menerjemahkan file VHDL ke keadaan logika interkoneksi.

Sebuah alat sintesis seperti compiler untuk prosesor single-purpose. Ia membaca

file VHDL dan menerjemahkannya ke deskripsi gate-level yang sesuai. Pada

tahap ini, gerbang ini dapat dikirim ke sebuah perusahaan fabrikasi IC untuk

membuat IC chip. Tapi yang kita tertarik adalah menghitung jumlah gerbang

untuk mendapatkan ide seberapa besar desainnya. Untuk mendapatkan konsumsi

daya, metrik kedua, kita mensimulasikan deskripsi gate-level kamera digital dan

melacak jumlah waktu gerbang yang beralih dari nol ke satu dan dari satu ke nol.

Kita sekarang dapat menganalisis implementasi pertama menggunakan

pendekatan yang diuraikan dalam gambar 1.5. Menggunakan simulasi, kita telah

7

Chip area

(c)

Power equation

Gate level simulator

Sum gates

gatesgatesgates

Synthesis tool

Execution time

(a)

VHDLVHDLVHDL

VHDL simulator

Power

(b)

Page 8: Makalah Embedded

mengukur total waktu eksekusi untuk memproses satu gambar menjadi 9,1 detik.

Konsumsi daya diukur menjadi 0.033 watt. Konsumsi energi adalah 9,1 detik x

0.033 Watt = 0,30 Joule. Area ini diukur menjadi 98.000 gerbang.

8