makalah embedded
DESCRIPTION
embeddedTRANSCRIPT
![Page 1: Makalah Embedded](https://reader036.vdocument.in/reader036/viewer/2022082320/5695d3a21a28ab9b029ea4f7/html5/thumbnails/1.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022082320/5695d3a21a28ab9b029ea4f7/html5/thumbnails/2.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022082320/5695d3a21a28ab9b029ea4f7/html5/thumbnails/3.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022082320/5695d3a21a28ab9b029ea4f7/html5/thumbnails/4.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022082320/5695d3a21a28ab9b029ea4f7/html5/thumbnails/5.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022082320/5695d3a21a28ab9b029ea4f7/html5/thumbnails/6.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022082320/5695d3a21a28ab9b029ea4f7/html5/thumbnails/7.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022082320/5695d3a21a28ab9b029ea4f7/html5/thumbnails/8.jpg)
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