BAB 2 LANDASAN TEORI

advertisement
 BAB 2
LANDASAN TEORI
2.1. Field Programmable Gate Array (FPGA)
Field-Programmable Gate Array (FPGA) adalah komponen elektronika dan
semikonduktor yang mempunyai komponen gerbang terprogram (programmable logic)
dan sambungan terprogram. Komponen gerbang terprogram yang dimiliki meliputi jenis
gerbang logika biasa (AND, OR, XOR, NOT) maupun jenis fungsi matematis dan
kombinatorik yang lebih kompleks (decoder, adder, subtractor, multiplier, dan lain-lain).
Blok-blok komponen di dalam FPGA bisa juga mengandung elemen memori (register)
mulai dari flip-flop sampai pada RAM (Random Access Memory). FPGA merupakan
rangkaian kombinasional dan sekuensial yang dikombinasikan sedemikian rupa untuk
bisa diimplementasikan langsung pada silikon, merupakan salah satu bagian dari
Application-Specific Integrated Circuit (ASIC) yang memiliki kinerja tinggi tetapi
memiliki fungsi yang spesifik (special purpose). Fungsi yang spesifik berarti hasil
rangkaian yang dibuat hanya dapat melakukan satu proses khusus, contoh: jika
pengguna membuat rangkaian Full Adder, maka rangkaian ini hanya dapat melakukan
penjumlahan saja. Jadi FPGA merupakan perangkat keras yang dapat diprogram dengan
mengganti instruksi. Perancangan perangkat keras FPGA dilakukan dengan cara
mengatur koneksi antara ratusan ribu hingga jutaan transistor yang tersedia pada chip
sehingga terbentuk sebuah fungsi baru dalam suatu aplikasi baru.
Pengertian terprogram (programmable) dalam FPGA adalah mirip dengan
interkoneksi saklar dalam breadboard yang bisa diubah oleh pembuat rancangan. Dalam
6 7
FPGA, interkoneksi ini bisa diprogram kembali oleh pengguna maupun perancang di
dalam lab atau lapangan (field). Oleh karena itu jajaran gerbang logika (Gate Array) ini
disebut field-programmable. Jenis gerbang logika yang bisa diprogram meliputi semua
gerbang dasar untuk memenuhi kebutuhan yang manapun.
FPGA mempunyai kelebihan sebagai berikut:
o Dikonfigurasi oleh End User
o Tidak memerlukan proses pabrikasi
o Tersedia solusi yang mendukung chip customized Very Large Scale Integration
(VLSI)
o M ampu menimplementasikan logic circuit, instant manufacturring, very-low cost
prototype
o Pemrograman yang singkat untuk fungsi dan kemampuan yang setara dengan
ASIC
FPGA ini sendiri juga merupakan IC bertipe Hardware Definition Language (HDL)
yang mana pemakai dapat merancang hardware sesuai yang diinginkan di dalam IC
FPGA. Perkembangan FPGA pada saat ini berlangsung dengan cepat dan dewasa ini
terdapat bermacam-macam keluarga FPGA dengan kebutuhan perancangan dan
perangkat perancangan (design tools) yang berbeda. Xilinx merupakan salah satu
perusahaan yang memproduksi FPGA disamping perusahaan lain yang juga
memproduksi FPGA seperti ACTEL dan PLESSEY Semiconductor. Xilinx sendiri
memproduksi beberapa jenis FPGA yaitu VIRTEX, SPARTAN, XC3000, XC4000 dan
XC5000.
8
Gambar 2.1. Struktur programmable logic
Secara umum FPGA akan lebih lambat jika dibandingkan dengan jenis chip yang
lain seperti pada chip Application-Specific Integrated Circuit (ASIC). Hal ini karena
FPGA menggunakan power/ daya yang besar bentuk rancangan yang kompleks.
Beberapa kelebihan dari FPGA antara lain adalah harga yang murah, bisa diprogram
mengikuti kebutuhan, dan kemampuan untuk di program kembali untuk mengkoreksi
adanya bugs. Jenis FPGA dengan harga murah biasanya tidak bisa diprogram dan
dimodifikasi setelah proses rancangan dibuat (fixed-version). Chip FPGA yang lebih
kompleks dapat diperoleh dari jenis FPGA yang dikenal dengan ComplexProgrammable Logic Device (CPLD).
Dua vendor yang pertama merupakan pemain utama di pasar FPGA:
•
Xilinx yang punya nama besar dalam dunia FPGA, masih memimpin dalam
densitas dan teknologi.
•
Altera merupakan pemain kedua terkenal di dunia FPGA, terkenal dengan
namanya.
•
Lattice, Actel, Quicklogic adalah perusahaan-perusahaan yang lebih kecil dan
punya pasar khusus.
9
Ada 5 (lima) alasan menggunakan FPGA untuk aplikasi-aplikasi Pemrosesan
Sinyal Digital (PSD) yaitu:
1. Kemampuan untuk menangani beban komputasi yang begitu berat
FPGA membolehkan pengguna membangun suatu arsitektur paralel dengan
kemampuan laju pencuplikan sama dengan laju detak atau clock. Keuntungannya
adalah sebuah sistem dengan kemampuan bisa mencapai 500 M SPS (Million
Sampling per Second). Unjuk kerja seperti ini sangat ideal untuk membuat sebuah
sistem kanal tunggal dengan laju pencuplikan sangat cepat atau laju pencuplikan
rendah untuk ratusan kanal.
2. M enghilangkan tugas-tugas intensif dari prosesor Pengolahan Sinyal Digital dan
menyelamatkan siklus-siklus penting untuk implementasi fungsi-fungsi yang lain.
3. Kustomisasi arsitektur agar sesuai dengan algoritma ideal yang diinginkan
pengguna
Dengan FPGA, diperoleh sebuah larik MACs atau pengali untuk melakukan
implementasi arsitektur tap-tunggal atau -banyak. Kemampuan FPGA yang bisa
dikonfigurasi-ulang, artinya, sekali algoritmanya dikembangkan, arsitektur ideal
bisa dibuat untuk implementasi algoritma.
4. M engurangi biaya sistem
FPGA membolehkan komponen-komponen lain yang dibutuhkan di dalam sistem
dipadukan, sehingga bisa mengurangi biaya total sistem. M isalnya, penerimapengirim serial RapidIO, antarmuka PCI express, glue logic dan lain sebagainya
10
5. Efisiensi daya
Teknologi FPGA saat ini sudah didukung dengan low power technology, sehingga
pengguna tidak perlu khawatir dengan daya yang dibutuhkan, karena memang
sangat rendah.
2.2.1
Karakteristik FPGA
Karakteristik FPGA yang tidak dimiliki oleh PLD lain adalah gerbang
logika yang berjumlah antara puluhan ribu sampai jutaan gerbang logika. Sifat
pemrograman pada FPGA ada dua jenis yaitu:
•
Non-volatile
Pada jenis non-volatile data tidak akan hilang jika tegangan terputus, tetapi
jumlah pemrograman yang bisa ditangani lebih sedikit, dan pemrograman
relatif lebih lambat dibandingkan dengan jenis volatile. Contoh: ROM .
•
Volatile
Pada jenis volatile, data akan hilang jika tegangan terputus, tetapi jumlah
pemrograman yang bisa ditangani lebih banyak, dan pemrograman relatif lebih
cepat dibandingkan dengan jenis non-volatile. Oleh karena itu, untuk
menyimpan data pada FPGA jenis ini, digunakan external memory. Contoh:
RAM .
2.2.2
Arsitektur FPGA
FPGA terdiri dari Configurable Logic Blocks (CLB), Input / Output Blocks
(IOB), dan Programmable Switch Matrix (PSM). CLB merupakan blok untuk
membangun komponen-komponen combinational/ sequential. Untuk dapat
11
membentuk CLB dibutuhkan truth table dalam membangun jalur logika. IOB
merupakan blok yang digunakan untuk mengirimkan sinyal keluar dari chip dan
sekaligus membaca sinyal yang masuk ke dalam chip. PSM merupakan
penghubung yang bisa diatur sedemikian rupa untuk menghubungkan antar CLB
dan CLB dengan IOB secara horisontal maupun secara vertikal, serta dapat
mengeluarkan fan out (kemampuan untuk mengirimkan data ke banyak sumber
untuk dijadikan input sekaligus) untuk multiple output. Jadi, output dari CLB yang
satu dapat dihubungkan ke input CLB yang lain melalui multiple PSM. Arsitektur
FPGA pada dasarnya ditunjukkan seperti Gambar 2.2, tetapi masing-masing
vendor memiliki cara tersendiri dalam mengatur isi dari struktur masing-masing
blok.
Gambar 2.2. Arsitektur FPGA
Fungsi logika dan interkoneksi FPGA ditentukan oleh data yang tersimpan
pada sel memori statik internal. Ada beberapa cara untuk membuat data
konfigurasi ke dalam sel memori ini, baik yang dilakukan secara otomatis pada
12
waktu catu daya diberikan maupun dengan membaca konfigurasi data dari
eksternal Serial atau byte Paralel PROM (mode master) atau Data dapat dituliskan
pada FPGA dari eksternal device ( mode slave dan peripheral).
Proses pemrograman pada FPGA dapat dilihat pada Gambar 2.3.
Gambar 2.3. Diagram Alir Pemrograman pada FPGA
Berikut penjelasan dari masing-masing bagian flowchart di atas:
•
Design Entry
Pada bagian ini, pengguna memulai proses perancangan rangkaian logika yang
akan
diimplementasikan
dalam
Programmable Logic device.
Proses
perancangan ini dapat dikerjakan dalam dua cara yang berbeda, yaitu text entry
dan schematic entry.
Text entry,
pengguna harus
mengerti bahasa
pemrograman Hardware Definiton Language (HDL) seperti VHDL atau
Verilog.
13
Gambar 2.4. Text Entry yang menggunakan VHDL
Schematic entry merupakan cara menrancangan rangkaian logika berdasarkan
rancangan schematic.
Gambar 2.5. Schematic Entry
•
Functional Simulation
Tujuan dari functional simulation dalam design flow adalah memastikan bahwa
rancangan rangkaian logika yang dibuat bekerja sesuai dengan keinginan
pengguna. Proses ini disimulasikan dengan memberikan input waveforms dan
mengecek output untuk semua kemungkinan kombinasi input menggunakan
waveform editor.
14
Gambar 2.6. Contoh Functional Simulation
•
Synthesis
Pada proses ini, rangkaian logika yang dibuat akan dioptimasi dengan
meminimalkan jumlah penggunaan gerbang, mengganti elemen logika dengan
elemen logika lain yang mempunyai fungsi sama, tetapi lebih efisien dalam
penggunaan gerbang, serta mengeliminasi logika yang tidak diperlukan. Hasil
terakhir dari proses synthesis adalah netlist yang mendeskripsikan rangkaian
logika yang sudah dioptimasi. Netlist adalah daftar connection yang
mendeskripsikan komponen dan bagaimana komponen tersebut saling
tersambung.
•
Implementation
Proses ini meliputi mapping, placing, and routing rancangan sehingga
rancangan tersebut dapat diimplementasikan ke IC FPGA sesuai dengan
arsitektur dan konfigurasi pin IC FPGA tersebut.
15
•
Timing Simulation
Proses ini memverifikasi rangkaian tersebut bekerja dengan frekuensi yang
diinginkan dan tidak ada propagation delay atau permasalahan waktu lain yang
akan berpengaruh kepada sistem secara keseluruhan
•
Device Programming
Proses ini akan membuat bitstream yang merepresentasikan rancangan akhir
dan akan dikirim ke target device.
2.2.
Altium dan NanoBoard NB2-DS K01
M odul NanoBoard yang digunakan adalah NB2-DSK01 V1.2.42 yang memiliki
fitur sebagai berikut:
a) Main Board
•
USB 2.0
•
TFT layar sentuh
•
4 channel, 8-bit ADC dan 10-bit DAC, I2C kompatibel
•
Variasi saklar dan led untuk tujuan umum.
•
SD card reader
•
Stereo analog audio system with high-quality on-board amplifiers, mixer,
line in/out and stereo speakers
•
SPI Real-Time Clock with 3V batere cadangan
•
Konektor daya DC 5 Volt
•
Tombol Home/ Reset
16
•
Dual User Board JTAG headers for direct interaction dan development
on production board
Variasi dari standar komunikasi penghubung:
•
RS-232 serial
•
CAN
•
PS/2 mini-DIN
b) Peripheral Board
Audio/Video Peripheral Board (PB01)
• Composite and S-Video output and capture
• 24-bit VGA output
• High-performance I2S stereo audio codec
Interface Peripheral Board (PB02)
• Compact Flash
• SD card slot
• ATA hard-drive interfaces
Data Communications Peripheral Board (PB03)
• 10/100 Ethernet interface
• USB 2.0 interface
• 4MBits/sec IrDA
17
Gambar 2.7. M odul NanoBoardNB2-DSK01
Nanoboard NB2-DSK01 digunakan sebagai mikrokontroller yang bisa di program
sendiri dengan menggunakan software pendukung Altium Designer Summer 9. Software
Altium tersebut sudah dapat membuat suatu project berupa skematik dan embedded
code-nya. Selain itu, Altium ini pun dapat digunakan secara live (langsung) pada
Nanoboard sehingga bisa mencoba langsung project yang baru saja selesai dibuat.
Agar dapat membuat suatu project menggunakan Altium Designer tersebut,
terlebih dahulu mendaftarkan diri pada altium dan membeli licensing-nya. Setelah
memasukkan licensing pada software Altiumnya, proses pembuatan project dapat
langsung dimulai. Dengan tahapan sederhana sebagai berikut :
18
1. M embuat rancangan perangkat keras
a. M embuat dan menyimpan project baru
•
File >> New >> Design Workspace Æ empty workspace
•
File >> New >> Project >> FPGA project Æ create project
•
File >> New >> Schematic Æ create schematic document
•
Workspace button >> save all
Gambar 2.8. Tampilan ketika membuat project baru
b. Contohnya, bila ingin membuat skematik LED berjalan, tahapannya
adalah sebagai berikut :
•
Periksa dan yakinkan bahwa ada panel library
•
Tarik komponen dari library ke lembar kerja
19
o TSK3000A processor (FPGA Processors.IntLib)
o LED (FPGA NB2DSK01 Port-Plugin.IntLib)
o WB_PRTIO (FPGS Peripherals.IntLib)
•
Hubungkan dengan kabel port GPIO dengan TSK3000 menggunakan
Wishbone Interconnect
•
Hubungkan dengan kabel LED dengan I/O port
•
Hubungkan dengan kabel clock dan reset ke prosesor
•
Hubungkan sisi sebelah kanan prosesor
•
Tambahkan rangkaian soft-JTAG untuk mengatur dan debug project
dari komputer
•
Tunjuk semua komponen dan simpan project tersebut
20
Gambar 2.9. Skematik dengan TSK3000A
c. Atur project tersebut untuk Xillinx Spartan3 FPGA
d. Atur memory dan peripheral
2. M embuat software
a. M embuat dan menyimpan embedded project yang baru
•
File >> New >> Project >> Embedded Project
•
File >> New >> C Source document
•
Workspace button >> save all
21
Gambar 2.10. Contoh software yang dibuat
b. Atur embedded project
c. Tulis software-nya.
3. M embangun project
a. View >> Devices View
b. Pilih nama yang diberikan pada project yang telah dibuat
c. Klik tombol Program FPGA yang terletak pada sisi kanan Devices View
d. Setelah project tersebut dibangun dengan sukses, program tersebut
dimasukkan ke dalam FPGA pada Nanoboard, dan dialog hasil ringkasan
akan terbuka
22
Gambar 2.11. Tampilan ketika melakukan pemrograman
FPGA yang ada di dalam Nanoboard NB2-DSK01 memiliki processor cores yang
bisa dipilih sesuai kebutuhan. Beberapa jenis processor cores tersebut, antara lain:
•
TSK65 Æ microchip 165x family instruction set
•
TSK51/52 Æ 8051 instruction set
•
TSK80 Æ Z80 instruction set
•
PPC405A Æ embedded Power PC Core
•
TSK3000A Æ 32 bit RISC prosesor
2.2.1
TS K3000A
TSK3000A merupakan sebuah prosesor yang kompatibel dengan wishbone
dan menggunakan arsitektur Reduce Instruction Set Computer (RISC) 32-bit
dengan instruksi set yang singkat. Selain itu, TSK3000A tersebut menggunakan
bahasa C sebagai embedded tool-nya.
23
Gambar 2.12. Konfigurasi TSK3000A
TSK3000A telah secara khusus dirancang untuk menyederhanakan
pengembangan sistem 32-bit yang ditargetkan untuk implementasi FPGA dan
untuk memungkinkan migrasi sistem 8-bit yang sudah ada ke domain yang 32-bit
dengan relatif mudah dan resiko rendah. Akibatnya, komplikasi biasanya terkait
dengan rancangan sistem 32-bit, seperti manajemen memori yang kompleks, dapat
diminimalkan.
TSK3000A termasuk sebuah prosesor RISC yang klasik dan internal-nya
berdasarkan arsitektur Harvard, TSK3000A memiliki fitur struktur memori sangat
sederhana. Dengan penangangan interupsi yang canggih tersebut dapat dibuat
coding yang sederhana.
24
Tabel 2.1 Keterangan Konfigurasi TSK3000A
25
Pada TSK3000A menggunakan 32 bit alamat bus yang menyediakan ruang
alamat 4GByte. Ruang memori ini dibagi menjadi 3 area utama, yaitu:
•
M emori Internal
Internal tersebut terkandung di dalam inti prosesor yang dibangun oleh FPGA
berupa blok memori RAM yang dapat dibaca atau ditulis pada kedua sisi
secara bersamaan dalam siklus tunggal.
•
M emori eksternal
Wishbone prosesor memori eksternal digunakan oleh kedua sisi instruksi dan
data prosesor yang menyediakan akses untuk ke sebagian besar ruang alamat
prosesor.
26
•
Peripheral I/O
Wishbone prosesor peripheral I/O adalah satu master yang menangani I/O
dengan cara yang sangat mirip dengan memori eksternal. Port ini dapat
digunakan untuk berkomunikasi dengan perangkat slave.
Gambar 2.13. Organisasi M emori TSK3000A
27
2.2.2
OpenBus
Gambar 2.14. Contoh bentuk sistem OpenBus
OpenBus merupakan salah satu sistem yang terdapat pada Altium untuk
merancang prosesor. Sistem OpenBus ini dapat mengurangi kompleksitas,
sehingga rancangan prosesor pun lebih mudah dilakukan.
Dalam merancang prosesor dengan FPGA, biasanya dibagi menjadi dua
bagian. Bagian pertama atau main processor system merupakan bagian yang di
rancangan dengan sistem OpenBus. Bagian kedua atau interface security akan
ditambahkan setelah main processor selesai dibuat.
28
Gambar 2.15. Rancangan prosesor dengan FPGA
Sistem OpenBus terdiri dari blok-blok tertentu yang memilik peran masingmasing. Sistem ini dikenal dengan system building blocks, yang berarti OpenBus
dibuat dengan cara membangun atau membuat blok-blok tertentu. Blok-blok ini
dapat dibagi menjadi lima kategori, yaitu:
o
Konektor Æ bagian yang mengatur koneksi ke komponen atau device lain
o
Prosesor Æ bagian yang mengatur prosesor apa yang digunakan (32-bit
prosesor)
o
Processor wrappers Æ bagian prosesor yang memiliki ciri tersendiri yang
didukung oleh Altium Designer
o
M emori Æ bagian yang mengontrol memori
o
Periperal Æ bagian yang mengatur input output atau I/O yang digunakan
29
Gambar 2.16. System building blocks
Sistem blok dapat dirancang sesuai dengan yang diinginkan. Contohnya
bila ingin menggunakan prosesor TSK3000A seperti pada Gambar 2.17 dimana
blok prosesor TSK3000A tersebut dapat dihubungkan dengan blok-blok lainnya
sesuai dengan kebutuhan atau sesuai dengan yang diinginkan oleh designer.
30
Gambar 2.17. Sistem OpenBus dengan TSK3000A
Pada sistem OpenBus, ada 3 komponen dalam kategori diatas yang perlu
diatur konfigurasinya, yaitu :
o
Prosesor TSK3000A (mikroprosesor)
Cara mengatur konfigurasinya adalah dengan klik dua kali pada komponen
tersebut. Contohnya sebagai berikut :
Gambar 2.18. Cara konfigurasi prosesor dengan TSK3000A
31
o
Parallel port unit (input output)
Cara mengatur konfigurasinya adalah dengan klik dua kali pada komponen
tersebut. Contohnya sebagai berikut :
Gambar 2.19. Cara konfigurasi I/O
o
SRAM controller (memori)
Cara mengatur konfigurasinya adalah dengan klik dua kali pada komponen
tersebut. Contohnya sebagai berikut :
Gambar 2.20. Cara konfigurasi memori
32
Setelah diatur konfigurasi-konfigurasinya, sistem OpenBus tersebut dapat
dimasukkan ke dalam lembar kerja skematik untuk dihubungkan dengan
komponen-komponen yang bersangkutan. Caranya adalah pada lembar kerja
skematik pilih menu design, pilih create sheet symbol from sheet or HDL,
kemudian pilih file OpenBus yang telah dibuat. Sebuah simbol yang merupakan
gabungan dari blok-blok OpenBus yang telah dibuat akan muncul, lalu designer
cukup menambahkan komponen-komponen yang diperlukan.
Gambar 2.21. Rangkaian dengan menggunakan OpenBus
2.2.3. TS K3000A C Programming
TSK3000 dapat diprogram menggunakan C atau C++. Untuk memulai
memprogrom TSK3000A maka harus dibuat suatu Embedded Project yang akan
diintegrasikan dengan FPGA Project yang sudah dibuat sebelumnya. Tahapan
dalam membuat suatu embedded project sampai mengintegrasikannya adalah
sebagai berikut :
a.
Pertama-tama dibuat satu embedded project baru
File>>New>>Project>>Embedded Project
33
Gambar 2.22. M embuat Embedded Project
b.
Simpan embedded project yang baru saja dibuat
c.
Klik kanan pada embedded project yang baru dibuat >>
project >> C File
Gambar 2.23. M enambahkan File C
add new to
34
d.
Simpan file yang baru dibuat
e.
Pada bagian project di selebah kiri yang memuat project dan document yang
sedang di buat, klik structure editor
f.
Klik dan drag Embedded project yang dibuat menuju TSK3000A pada
FPGA Project yang ingin diberikan program
Gambar 2.24. M enggabungkan Embedded Project dengan FPGA Project
Saat semua tahap ini selesai dijalankan maka TSK3000A siap untuk
diprogram agar dapat berfungsi dengan baik. Untuk mempermudah pembuatan
program, maka Altium sudah dilengkapi dengan Software Platform Builder yang
digunakan untuk menyediakan driver apa saja yang akan digunakan dan membantu
dalam pengaturan peripheral yang digunakan. Pembuatan dan pengaturan software
platform adalah sebagai berikut :
a.
Klik kanan pada Embedded Project yang sudah dibuat, pilih Add new to
Project, pilih SwPlatform file
35
Gambar 2.25. M enambahkan SwPlatform file.
b.
Simpan SwPlatform yang sudah dibuat
c.
Buka dan tampilkan
d.
Untuk mempermudah membangun software, cukup klik tombol Add From
FPGA, tombol ini akan memasukkan driver-driver yang dibutuhkan
berdasarkan FPGA Project dimana Embedded Project berada
Gambar 2.26. M enambahkan driver
36
e.
Untuk driver secara detail bisa dimasukan dengan mengklik tombol Grow
Stack Up dan pilih sesuai yang diinginkan
Gambar 2.27. Contoh Grow Up Stack untuk I2C
f.
Pada window disamping stack-stack yang dibuat terdapat keterangan
mengenai setiap driver yang digunakan dan terdapat berbagai pilihan
pengaturan sesuai dengan keinginan
Gambar 2.28. Window untuk mengatur driver
37
Sesudah semua langkah diatas dilakukan, maka proses pembuatan program
bisa dimulai. Struktur program yang dibuat sama seperti pembuatan program biasa,
dimana diawali dengan memasukkan library yang digunakan. Contoh:
#include
#include
#include
#include
#include
#include
#include
<stdlib.h>
<stdio.h>
<time.h>
<string.h>
<timing.h>
<devices.h>
<math.h>
Untuk libraries yang akan dapat digunakan oleh TSK3000A dapat di lihat
di Altium Designer Summer 09\System\Tasking\c3000\include
Gambar 2.29. TSK3000A Library
Header file yang dimasukkan juga harus meliputi driver yang digunakan,
untuk driver setiap peripheral yang digunakan, dapat dilihat di Altium Designer
Summer 09\Library\Software Platform\platform\fpga\drivers. Contoh header
driver pada coding :
38
#include <drv_i2cm.h>
#include <drv_uart8.h>
#include <drv_ioport.h>
Gambar 2.30. Driver Library
Untuk mengetahui fungsi apa saja dan bagaimana penggunaannya, Altium
sudah menyediakan knowledge centre yang bisa digunakan untuk mencari
informasi. Untuk membuka knowledge centre cukup menekan F1 pada saat kursor
berada pada bagian yang ingin diketahui, misalkan driver yang digunakan.
39
Gambar 2.31. Knowledge Centre
Tahap berikutnya sesudah program selesai dibuat adalah tahap kompilasi
dan downloading ke NB2-DSK01. Untuk kompilasi klik open device view page
pada iconbar kemudian setelah window device terbuka, centang kotak live
disebelah kiri atas dan tunggu sampai komputer dan NB2-DKS01 tersambung.
Tahap berikutnya pilih project yang mau dimasukkan ke dalam NB2-DSK01.
Tahap berikutnya melakukan kompilasi dengan mengklik bagian compile, syntesis,
build dan program secara berurutan.
Gambar 2.32. Tahap Kompilasi
40
2.3. Global System for Mobile Communication (GSM)
Global System for Mobile Communication (GSM) adalah salah satu sarana
komunikasi yang banyak digunakan saat ini. GSM adalah generasi kedua yang
diciptakan, dimana GSM sudah menggunakan modulasi digital untuk pengolahan
sinyalnya. Teknologi GSM banyak diterapkan pada komunikasi bergerak, khususnya
telepon genggam. Teknologi ini memanfaatkan gelombang mikro dan pengiriman sinyal
yang dibagi berdasarkan waktu, sehingga sinyal informasi yang dikirim akan sampai
pada tujuan. GSM dijadikan standar global untuk komunikas i selular sekaligus sebagai
teknologi selular yang paling banyak digunakan orang di seluruh dunia, walaupun sudah
lebih cepat dari pendahulunya, transfer bit yang digunakan masih kecil, yaitu sekitar 9,6
Kbps. Bit rate ini hanya mampu untuk mengirimkan data yang kecil saja, misalkan SM S.
Awalnya GSM bekerja pada frekuensi 900 MHz, selanjutnya berkembang menjadi
frekuensi 1.800 M Hz.
Gambar 2.33. Perkembangan dunia GSM
Komunikasi GSM ditunjang oleh tiga buah komponen utama untuk berkomunikasi.
Pertama mobile station, komponen ini adalah yang dibawa oleh pengguna dan
41
digunakan untuk berkomunikasi. Mobile station ini harus dilengkapi oleh sebuah smart
card yang biasa disebut sebagai Subscriber Identifier Module (SIM).
Komponen kedua adalah Base Transceiver Station (BTS), yang berguna sebagai
penerima dan pemancar dari gelombang radio yang dikirimkan. Selain itu, sebuah BTS
juga harus mampu mengatur trafik yang masuk dan keluar dari BTS tersebut. Komponen
ketiga adalah Network Subsystem yang berguna untuk mengatur switching atau
pemilihan kanal sehingga pengguna dapat berkomunikasi dengan yang lain.
2.4. Short Message Service (SMS)
Short Message Service atau SM S merupakan layanan pesan singkat. Dimana
teknologi ini memungkinkan penggunanya melakukan pengiriman dan penerimaan
pesan antar telepon selular. Layanan ini diberikan oleh operator selular, dimana
pengguna bisa mengirimkan sebuah pesan singkat dengan batas tertentu. Umumnya satu
pesan SM S maksimal bisa memuat 140 bytes atau 1.120 bits, yang berarti satu SM S
terdiri dari 160 karakter.
Pada awalnya SM S merupakan bagian dalam Global System for Mobile
Communications (G SM ), tetapi kemudian terdapat pula pada teknologi CDM A dan
TDMA. GSM dan SM S memiliki standar sendiri yang awalnya dikembangkan oleh
European Telecomunications Standard Institute (ETSI). Sekarang yang bertanggung
jawab atas perkembangan dan maintenance GSM dan SM S ini adalah Third Generation
Partnership Project (3GPP).
42
Gambar 2.34. M ekanisme kerja pengriman pesan SM S
Secara garis besar, ketika seseorang mengirimkan SM S, maka data pesan SM S ini
akan dikirimkan dari pengirim ke menara Base Tranceiver Station (BTS) menuju ke
Short Message Service Center (SM SC) baru menuju BTS penerima. Sesampainya di
BTS penerima, BTS tersebut akan langsung mengirimkan ke ponsel penerima.
Berdasarkan operator selular yang digunakan, mekanisme pengiriman SM S bisa dibagi
menjadi:
43
•
Intra operator SM S
Pada mekanisme ini baik pengirim maupun penerima SM S menggunakan satu
operator selular yang sama. M ekanisme intra operator dintunjukkan Gambar 2.35.
Gambar 2.35. M ekanisme kerja pengriman pesan SM S Intra-operator
•
Inter operator SM S
Pada mekanisme ini pengirim dan penerima pesan SM S menggunakan operator
selular yang berbeda, sehingga mekanisme pengiriman SM S-nya sedikit berbeda.
Hal tersebut ditunjukkan gambar di bawah ini.
Gambar 2.36. M ekanisme kerja pengriman pesan SM S Inter-operator
44
•
International SM S
Seperti halnya Inter-operator, mekanisme ini menggunakan operator selular yang
berbeda untuk penerima dan pengirimnya. Tetapi bedanya operator selular yang
digunakan berada di negara yang berbeda. Dengan kata lain pengiriman pesan SM S
yang dilakukan merupakan SM S antara negara satu ke negara yang lain. Dengan
begitu, cara kerja mekanisme international SM S tidak jauh berbeda dengan
mekanisme Inter-operator.
2.5. Global Positioning System (GPS)
Komunikasi dengan menggunakan satelit sebenarnya merupakan stasiun relay
yang ditempatkan di atas bumi dengan tujuan menerima, memperkuat, dan meneruskan
sinyal analog yang diterima dan mengubahnya menjadi sinyal digital maupun frekuensi
radio.
Berdasarkan ketinggian dan bentuk perancangannya, satelit dibagi menjadi tiga
bagian besar, yaitu:
•
Geosynchronous Earth Orbit (GEO)
Satelit ini mengorbit pada ketinggian 35.786 kilometer dari permukaan
bumi. Geosynchronous dikenal juga dengan nama synchronous atau
geostationer (geostationary). Pergerakan satelit ini dirancang agar bisa
mengamati seluruh permukaan bumi.
45
Gambar 2.37. GEO
•
Medium Earth Orbit (MEO)
Satelit ini mengorbit dalam bentuk elips yang bergerak pada ketinggian
8.000 sampai 20.000 kilometer di atas permukaan bumi. Pergerakan satelit
ini dirancang agar bisa melewati kedua kutub bumi (kutub utara dan kutub
selatan), yang difungsikan sebagai satelit komunikasi.
Gambar 2.38. M EO
•
Low Earth Orbit(LEO)
Satelit ini mengorbit dalam bentuk lingkaran yang bergerak pada
ketinggian 500 sampai 2.000 kilometer. Periode perputaran satelit ini ,
kurang lebih 1 jam 30 menit. Pergerakan satelit ini dilakukan dengan
46
kecepatan yang tinggi agar bisa mengimbangi gaya sentripetal yang
menarik satelit ke bumi.
Gambar 2.39. LEO
Berdasarkan fungsinya, komunikasi satelit bisa dibagi menjadi tiga bagian besar,
yaitu:
•
Satelit cuaca
Satelit ini dirancang untuk keperluan penelitian meteorologi.
•
Satelit observasi bumi
Satelit ini lebih dikenal dengan Earth Satellite Observations, dimana satelit
ini dirancang untuk menyampaikan informasi kepada ilmuwan tentang halhal ekosistem di bumi.
•
Satelit navigasi
Satelit ini lebih dikenal dengan Navigation Satellites, yang akan digunakan
untuk menyampaikan posisi dan gerak dari objek yang ada di permukaan
bumi. Penentuan lokasi di bumi oleh satelit ini memiliki ketelitian tertentu.
47
Teknologi GPS merupakan salah satu aplikasi penggunaan satelit navigasi.
Teknologi ini dimulai pada tahun 1960 dan diprakarsai oleh Departemen Pertahanan
Amerika, dengan tujuan utamanya adalah untuk memudahkan tentara untuk mengetahui
posisinya, pada perkembangannya GPS dibuka kepada publik untuk digunakan secara
bebas. Ada banyak pengguna GPS dari kalangan sipil, pengoperasian dan kendali dari
teknologi ini tetapi teknologi ini tetap berada di bawah Departemen Pertahanan Amerika.
Untuk menentukan lokasi dengan GPS diperlukan signal dari 4 buah satelit dimana
3 signal untuk memberitahukan posisi dalam bentuk tiga dimensi (bujur, lintang dan
ketinggian) dan signal keempat untuk menunjukan waktu. Untuk menunjang komunikasi
GPS, terdapat 24 buah satelit yang akan melayani seluruh bumi. Kedua puluh empat
satelit ini beredar pada ketinggian sekitar 20.200 km dari permukaan laut dan memiliki
waktu revolusi terhadap bumi selama 12 jam. Dengan keadaan seperti ini, maka setiap
pengguna GPS akan tercangkupi oleh 8 buah satelit dari setiap titik dibumi.
Gambar 2.40. Peredaran satelit GPS di atas bumi
48
Setiap satelit GPS akan memancarkan tiga jenis data dalam sinyalnya. Pertama
adalah data yang berisi informasi waktu serta status dari satelit yang ada yang disebut
dengan almanac. Kedua adalah data yang berisi informasi orbital satelit-satelit GPS
tersebut yang mana dari data ini dapat memungkinkan receiver untuk menghitung
posisinya dari satelit, data ini disebut ephemeris. Data ketiga adalah sebuah kode C/A
(Coarse Acquitition) dimana kode ini akan dibangkitkan oleh receiver dan satelit untuk
dibandingkan dan hasilnya digunakan sebagai informasi posisi.
Data pada komunikasi GPS akan dikirimkan dalam bentuk frame, dimana setiap
frame akan berisi 1.500 bits dan setiap frame akan dibagi menjadi 5 subframe yang
masing-masing akan berisi 300 bits. Setiap frame akan dikirimkan setiap 30 detik.
Format datanya terlihat pada Gambar 2.41.
Gambar 2.41. GPS navigation data format
49
Secara mendasar, ada dua buah layanan GPS, pertama Precise Positioning Service
(PPS) dan Standard Positioning Service (SPS). PPS memiliki ketelitian yang lebih baik
dibandingkan dengan SPS, namun untuk menggunakan PPS harus di-autorized oleh
pihak tertentu. SPS merupakan service yang banyak digunakan oleh masyarakat secara
umum dan luas.
Untuk frekuensi yang digunakan juga dibagi menjadi dua, yaitu 1,575.42 MHz
yang biasa disebut sebagai L1 frequency dan digunakan pada layanan SPS serta
membawa signal mengenai lokasi. Frekuensi yang kedua adalah 1,227.60 M Hz yang
biasa disebut L2 frequency dan digunakan pada layanan PPS.
2.6. National Marine Electronics Association (NMEA)
Satelit GPS yang mencapai 24 buah tersebut, harus ditunjang dengan standarisasi
format bahasa yang digunakan. Standar bahasa atau format data ini telah diatur oleh
National Marine Electronics Association (NMEA). Untuk komunikasi GPS digunakan
NM EA 0183.
NM EA 0183 akan mengkombinasi spesifikasi data dan elektrikal antara marine
electronic (echo sounder, GPS receiver, autopilot) dan instrument yang lain. Standar ini
berkomunikasi satu sama lain melalui komunikasi serial dan menggunakan bahasa
komunikasi ASCII. Dimana data ASCII tersebut memperlihatkan data-data penting,
seperti: koordinat lintang (latitude), bujur (longitude), ketinggian (altitude), waktu
sekarang standar UTC (UTC time), kecepatan (speed over ground) dan data lainnya yang
tergabung dalam GPS receiver.
50
Tabel 2.2. NM EA 0183 Output M essages
Ketentuan-ketentuan dari paket data NM EA0183 antara lain:
•
Setiap paket data dimulai dengan tanda $ (dolar)
•
Lima karakter pertama setelah tanda $ menunjukkan tipe dari paket data tersebut
•
Semua field dipisah dengan tanda , (koma)
•
Field data yang paling akhir harus ditutup dengan tanda * (bintang)
•
dua digit checsum mengikuti tanda * tersebut
•
dilanjutkan dengan karakter carriage return dan line feed
Gambar 2.42. Contoh format paket data NM EA0183 untuk GPS
51
Tabel 2.3. Contoh format paket data untuk GPS (GGA)
2.7. GM862-GPS
GM 862-GPS merupakan komponen yang diproduksi oleh Telit. Pada penelitian ini,
GM 862-GPS digunakan untuk komunikasi yang akan dilakukan, yaitu sebagai reciever
sinyal GPS dan sebagai receiver sekaligus transmitter untuk sinyal GSM.
Peneliti memilih GM 862-GPS sebagai komponen yang digunakan karena GM 862GPS ini sudah mengintegrasikan modul GPS, GSM, dan GPRS didalam satu modul
sehingga bisa mengurangi biaya pembelian komponen serta untuk meminimalisasi
bentuk Mobile Scanner yang akan dihasilkan.
Spesifikasi dari GM 862-GPS ini antara lain:
1. Dimensi 43,9 x 43,9 x 6,9 mm
2. Berat 20 gram
52
3. Operasi kerja -40°C sampai +85°C
4. Tegangan operasi 3,4V-4,2V
5. M ampu mencakupi 4 frekuensi GSM yaitu 850/ 900/ 1800/ 1900 M Hz
6. GPRS class 10
7. 20 saluran GPS L1 1575.42 M hz
8. Output format dalam NMEA 0183
9. 50-pin Molex connextor
10. 13 I/O ports maximum
11. 50 ohm MM CX antena connector
12. on board sim card holder
Gambar 2.43. GM 862-GPS
Untuk mengakses dan memberikan perintah kepada module ini digunakan AT
command (ATTENTION Command) yang merupakan prefix yang digunakan untuk
menuliskan parameter perintah yang digunakan. AT command dapat digunakan dengan
menggunakan command line atau dimasukkan ke dalam paket data komunikasi. Berikut
adalah beberapa contoh command pada AT command
AT#SHDN Î digunakan untuk mematikan module
AT+ CGM R Î perintah ini akan mengembalikan versi software yang digunakan
53
AT+CGMM Î perintah ini akan mengembalikan tipe module Telit yang
digunakan
AT+IPR? Î digunakan untuk mengetahui baudrate dari serial port yang sedang
digunakan
AT+IPR=38400 Î digunakan untuk mengatur baudrate serial port agar bernilai
38400
54
Tabel 2.4. Koneksi pin GM 862GPS
55
2.8. Kompas Digital
Kompas adalah alat navigasi untuk menentukan arah berupa sebuah panah
penunjuk magnetis yang bebas menyelaraskan dirinya dengan medan magnet bumi
secara akurat. Kompas memberikan rujukan akan arah tertentu, seperti timur, utara,
selatan dan barat. Hal ini menyebabkan kompas sangat membantu dalam bidang
navigasi. Jika mempunyai alat dengan batang atau jarum magnetis yang bebas bergerak
56
untuk menunjukan arah utara magnetis dari magnetosfer sebuah planet, alat tersebut bisa
dikategorikan sebagai kompas.
Kompas dibedakan menjadi dua jenis, yaitu kompas analog dan kompas digital.
Kompas analog adalah kompas yang biasa dilihat dalam kehidupan sehari-hari. Yang
biasanya berbentuk bulat dengan terdapat jarum penunjuk ditengahnya. Contohnya
kompas yang dipakai ketika acara pramuka. Kompas digital merupakan kompas yang
telah menggunakan proses digitalisasi. Dengan kata lain cara kerja kompas ini
menggunakan komputerisasi. Pada alat ini digunakan jenis kompas digital.
Gambar 2.44. Kompas analog yang digunakan sebagai penunjuk arah
Kompas digital diciptakan dengan tujuan untuk melengkapi kebutuhan robotika
yang semakin canggih. Dimana dunia ini membutuhkan alat navigasi yang efektif dan
efisien. Ada dua cara untuk memperoleh informasi arah dari kompas digital, antara lain
dengan membaca sinyal Pulse Width Modulation (PWM) dan dengan membaca data
interface I2C. Sekarang ini sudah terdapat beberapa jenis kompas digital yang ada di
pasaran. Seperti CMPS03 dan HM C6343. Setiap jenis kompas digital ini memiliki
spesifikasi tertentu dan kelebihan serta kekurangan tersendiri.
HM C6343 adalah modul kompas yang meliputi firmware untuk komputasi dan
kalibrasi untuk magnetic distortions. HM C6343 ini memberikan informasi dengan cara
membaca data interface I2C. Kompas ini dilengkapi dengan 3-axis magentic sensor dam
57
3-axis accelerometer untuk tilt compensation. Selain itu, memiliki resolusi 0.10 dan
akurasi 20. Tilt compensation digunakan di atas kapal dengan ombak di laut, sehingga
arah ke titik tujuan masih dapat menuntun ke arah yang diinginkan untuk nelayan.
Gambar 2.45. SFE Compass Module with Tilt Compensation – HM C6343
Berikut merupakan tampak belakang dari HM C6343:
Gambar 2.46. HM C6343 tampak belakang
58
Tabel 2.5. Pin output dari HM C6343
Rangkaian dari HM C4363:
Gambar 2.47. Rangkaian pemakaian sederhana dari HM C6343
59
Pada kompas HM C6343 tersebut menggunakan komunikasi I2C. Terdapat dua
jalur komunikasi I2C. Pada HM C6343 pun memakai EEPROM sebagai sofwarenya.
Register-register dalam EEPROM adalah sebagai berikut:
Tabel 2.6. Register-register pada HMC6343
HM C6343 bekerja berdasarkan command atau perintah yang diberikan. Command
ini terdiri dari write command (0x32), command byte, argument binary MS byte,
argument binary LS byte, read command(0x33). Command byte yang ada pada
60
HM C6343 ada beberapa macam, dengan fungsinya masing-masing. Command byte ini
ditunjukkan pada Tabel 2.7.
Tabel 2.7. Beberapa command byte HM C6343
Pada waktu diinginkan membaca atau mengambil data heading (arah), pitch
(kemiringan naik atau turun) dan roll (kemiringan kiri atau kanan), maka digunakan
command byte 0x50, sehingga urutan perintah yang dikirimkan menjadi 0x32 0x50 0x33.
Data yang diterima akan terdiri dari dua byte, yaitu M SB dan LSB. Dimana byte ini akan
menunjukkan heading atau arahnya. Untuk mengetahui arah mata anginya, bisa dilihat
dari angka yang didapat. M isal untuk arah Utara berada di 00, Selatan berada di 1800 dan
seterusnya. Arah yang ditunjukkan dari 00 sampai dengan 3590 ini, pada HM C6343
dibaca dari 0 sampai dengan 3600. Jika data dari HM C6343 menyatakan 30, berarti arah
sebenarnya 30. Dalam penulisan byte, HM C6343 akan mengirimkan data 00000000
untuk M SB dan 00011110 untuk LSB. Dimana format data yang dikirimkan M SB
terlebih dahulu baru LSB.
61
2.9. Komunikasi Serial
Dalam melakukan pengiriman data, bisa dilakukan dengan menggunakan metode
komunikasi serial. Dimana komunikasi serial akan melakukan pengirim data satu bit
demi satu bit.
Gambar 2.48. Komunikasi serial
Pada komunikasi serial ini terdapat dua buah mode yang bisa digunakan, yaitu:
•
M ode sinkron
Pada
mode ini, transmisi dilakukan secara sinkron, dimana sinkronisasi
dilakukan oleh signal clock yang diberikan. Pada mode ini data dikirim dalam
jumlah yang besar, dimana setelah diinisiasi, data akan terus dikirim secara terus
menerus per-bit sampai selesai. Setelah data selesai baru pengiriman berakhir.
•
M ode asinkron
Pada mode ini, sebenarnya dilakukan secara sinkron juga, namun sinkronisasi
tidak dilakukan oleh signal clock, melainkan sinkronisasi dilakukan dengan
menggunakan start bit stop bit. Data yang akan dikirim dengan mode ini akan
dipecah menjadi paket-paket kecil, biasanya 8 bit dan ditambahkan dengan start bit
sebelum data dikirim dan stop bit setelah data dikirim. Untuk menjamin data
diterima dengan baik bisa ditambahkan dengan adanya parity bit. Parity bit adalah
sebuah metode error checking yang biasa digunakan dengan menambahkan satu
bit pada akhir data untuk membuat jumlah bit 1 pada data yang dikirim menjadi
62
ganjil atau genap. Untuk parity yang membuat jumlah bit 1 menjadi genap
biasanya disebut dengan even parity, sedangkan yang membuat bit satu dalam data
menjadi ganjil disebut odds parity.
Gambar 2.49. Parity bit
2.9.1
Komunkasi UART
Universal Asynchronous Receive Transmit (UART) merupakan suatu
standar internasional yang mengatur bagaimana transmisi secara serial dilakukan
antara receiver dan transmitter. UART ini digunakan pada metode komunikasi
serial secara asinkron.
Gambar 2.50. Format komunikasi serial dengan standar UART
Secara sederhana standar dalam UART akan mengirimkan start bit terlebih
dahulu untuk menandakan mulainya pengiriman data, kemudian diikuti oleh 5
sampai 8 bit data, dimulai dari least significant bit (LSB) sampai most significant
bit (M SB). Setelah itu ditutup dengan stop bit. Dalam konfigurasi UART data akan
diambil per byte kemudian dikirim satu persatu baru kemudian dirangkai ulan g
menjadi satu byte setelah sampai di tempat tujuan.
63
Komunikasi serial UART sering kali dihubungkan dengan connector DB-9,
tetapi pada kenyataannya komunikasi serial ini bisa dilakukan dengan
menggunakan connector DB 9 dan DB 25. Berikut adalah konfigurasi PIN yang
digunakan dalam UART baik dengan connector DB 9 ataupun DB 25.
Tabel 2.8. Pin yang ada pada DB 25 dan DB 9
Berikut ini adalah kegunaan setiap PIN pada komunikasi serial UART
1. DTR
DTR berfungsi sebagai indikator yang berguna untuk menunjukkan kapan
modem akan digunakan dan modem men-set DSR untuk mengidentifikasikan
bahwa modem sudah siap dan koneksi sudah tersambung.
2. RTS(Request To Send)
Berfungsi untuk men-set agar komputer dapat meminta persetujuan untuk
mengirim.
3.
TxD(Transmit Data)
Berfungsi untuk proses pengiriman data.
4. CTS(Clear To Send)
Berfungsi untuk menginformasikan kepada komputer bahwa modem sudah
siap untuk menerima dan mengirim lewat kabel telepon.
64
5. DSR(Data Set Ready)
Untuk mengidentifikasikan DTR, bila DTR dibuat drop oleh komputer maka
akan menyebabkan kebanyakan modem menjadi terputus. Setelah terputus
maka modem akan menyatakan bahwa DSR Low.
6. DCD(Data Carier Detect)
Pada modem, untuk mengaktifkan Jalur transmisi pada saluran komunikasi.
DCD akan aktif apabila modem mendeteksi adanya Carrier dalam jalur
transmisi pada ujung saluran komunikasi.
7. RI(Ring Indicator)
Pada modem, merupakan pendeteksi adanya sinyal telepon yang masuk pada
saluran modem. RI akan aktif apabila ada yang menggunakan jalur komunikasi
telepon.
8. RxD(Receive Data)
Berfungsi untuk menerima data.
9. Gnd
Untuk menyamakan referensi dari board dan dari PC sehingga tidak ada beda
tegangan dan nilai tegangannya sama.
65
Alat1 Alat2 Gambar 2.51. Konfigurasi pin untuk komunikasi UART
Untuk komunikasi UART bisa digunakan konfigurasi pin seperti gambar di
atas. Dimana hanya pin TxD dan RxD yang di cross. Ketika alat1 ingin
berkomunikasi maka ia akan mengirimkan sinyal DTR ke DTR alat2, alat2 ketika
sudah siap berkomunikasi akan mengirimkan sinyal DSR ke alat1. Alat1 akan
mengirimkan sinyal RTS yang mengindikasikan dia sudah siap mengirim data dan
meminta ijin untuk mengirim data, ketika device dua sudah siap dia akan memberi
tahu dengan mengirimkan sinyal CTS yang mengindikasikan data sudah siap
diterima. Alat1 akan mulai mengirim data dari pin TxD ke pin RxD jika semuanya
sudah selesai, begitu pula sebaliknya jika alat2 yang akan mengirim data.
Selain konfigurasi di atas, terdapat juga konfigurasi NULL modem dengan
dua tipe tanpa handshake dan dengan handshake. Dengan konfigurasi NULL
modem tandpa handshake, maka device pertama mengkonfirmasi sendiri ketika
bertanya kesiapan device kedua dalam menerima data.
66
Gambar 2.52. Konfigurasi NULL modem tanpa handshake
Gambar 2.53. Konfigurasi NULL modem dengan handshake
2.9.2
Komunikasi I2C
I2C merupakan protokol komunikasi serial sinkron dengan menggunakan 2
jalur bus dengan kecepatan yang cukup tinggi sehingga antara integrated circuit
(IC) yang satu dengan yang lainnya dapat berkomunikasi dengan baik. Dengan
memanfaatkan jalur bus dengan address yang bervariasi maka I2C mampu
mengalamati banyak device.
I2C terdiri dari beberapa bagian yaitu :
•
Transmitter : bagian yang berfungsi mengirimkan data ke Bus
•
Receiver : bagian yang menerima data dari Bus
67
•
Master : bagian yang melakukan transfer, membangkitkan / menghasilkan
Clock dan membatalkan transfer data contohnya mikrokontroller
•
Slave : bagian yang ditunjuk oleh master sebagai tempat yang dituju.
•
Multi-Master : lebih dari satu master dapat mengontrol Bus secara bergantian.
•
Arbitration : Prosedur yang menentukan atau membatasi Multi Master dan
membuat hanya satu dari dua master yang dapat mengatur Bus sehingga tidak
terjadi Corrrupt pada data.
•
Synchronization: prosedur yang mencocokkan antara Sinyal Clock dan
beberapa device.
Gambar 2.54. Konfigurasi I2C dengan lebih dari 2 device
Pada Gambar 2.54 komunikasi antara 2 mikrokontroller A dan
mikrokontroller B dan device-device lainnya (Gate Array, LCD Driver, ADC,
Static RAM/ EEPROM) dilakukan dengan menggunakan 2 jalur (SDA dan SCL).
SDA merupakan Serial Data Line yang merupakan
jalur untuk
mengirimkan data-data secara serial, sedangkan SCL merupakan Serial Clock Line
yang berfungsi untuk mengirimkan clock yang berfungsi untuk sinkronisasi dan
menandakan pengiriman paket-paket data. Berikut merupakan timing diagram dari
I2C (Gambar 2.55).
68
Gambar 2.55. Timing diagram dari I2C
Istilah-istilah yang digunakan dalam komunikasi dengan menggunakan
I2C, anatara lain:
• Start Condition : menentukan kapan data tersebut mulai dikirim
• Acknowledge : untuk memeriksa dan mencocokkan address yang akan diterima
oleh device slave dan menentukan bagian-bagian dari data yang dikirimkan dan
memilah-milah sehingga tidak terjadi kesimpang siuran antara address dan data
yang dikirimkan
• Stop Condition : kondisi yang menentukan suatu data selesai dikirim.
Komunikasi
antar
IC
dengan
menggunakan
metode
I2C
harus
memperhatikan beberapa hal antara lainnya pada awal SDA mengirimkan transisi
data dari high ke low (falling edge) sedangkan SCL harus berada pada kondisi
high. Kondisi ini menandakan mulainya pengiriman data (start condition).
69
Selanjutnya pengiriman address yang ditandakan dengan SCL yang akan
mengirimkan transisi data dari high ke low dan ke high lagi. Selanjutnya
pengiriman status untuk menulis atau membaca data yang ditandai dengan transisi
data SCL dari low ke high. Setelah mendapatkan acknowledge (ACK) dari IC
tujuan yang ditandai dengan satu clock penuh pada SCL, maka data akan dapat
dikirimkan menuju IC tujuan dengan transisi SCL dari low ke high (rising edge) ,
ACK dapat diartikan sebagai penanda ketika data berhasil diterima oleh IC tujuan.
Stop condition atau penanda bahwa semua data telah dikirimkan, ditandai dengan
perubahan SDA dari low ke high (rising edge) yang diikuti dengan logic high pada
SCL.
Gambar 2.56. Penjelasan tentang kondisi start dan stop
Berikut ini merupakan paket-paket data yang digunakan dalam komunikasi
I2C (Gambar 2.57)
70
Gambar 2.57. Paket data untuk melakukan penulisan menuju slave
Untuk melakukan penulisan dari master menuju ke slave device maka
beberapa paket data dibutuhkan untuk melakukan proses tersebut antara lainnya:
start bit, address, read atau write (R/W), ACK, Data yang hendak dikirimkan, ACK
dan pengiriman data yang selanjutnya, ACK dan stop bit. Untuk perintah R/W
master device harus menunggu ACK dari slave device yang menandakan bahwa
perintah R/W berhasil diterima dan dikonfirmasi. Demikian juga halnya untuk data
yang dikirimkan harus menunggu ACK dari slave device jika pengiriman berhasil
dilakukan maka ditandai dengan adanya ACK jika tidak master device harus
mengirimkan data tersebut kembali.
Gambar 2.58. Paket data untuk melakukan pembacaan dari slave
Untuk melakukan pembacaan yang harus dilakukan ialah mengganti
perintah untuk pembacaan (logic high) setelah data pertama didapatkan maka
master mengirimkan ACK ke slave device, untuk data yang selanjutnya yang
diterima, master tidak perlu mengirimkan ACK.
71
Gambar 2.59. Contoh format data address read/write pada IC PCF8574A
2.10. Liquid Crystal Display (LCD)
Liquid Crystal Display (LCD) sebagai salah satu media untuk menampilkan output.
LCD adalah suatu perangkat elektronik yang dirancang sedemikian rupa, sehingga dapat
menampilkan tulisan maupun gambar yang telah diprogram terlebih dahulu ke layar
LCD. Perangkat LCD dibuat dalam berbagai bentuk kemasan dan ukuran. Jenis LCD
pun sudah beraneka macam saat ini, seperti LCD dengan menggunakan teknologi OLED
sebagai layarnya.
Seperti LED, OLED merupakan komponen semikonduktor yang terdiri dari 100500 nanometer atau sekitar 200 kali lebih kecil dari rambut manusia. OLED terdiri dari
beberapa layer, yang ditunjukkan gambar di bawah ini.
72
Gambar 2.60. Struktur lapisan pada OLED
OLED bekerja seperti halnya LED biasa. Proses pada OLED biasanya dikenal
sebagai electrophosphorescene.
Gambar 2.61. Cara kerja OLED
73
Teknologi OLED memiliki beberapa tipe. Secara umum dibagi menjadi:
• Passive matrix OLED (PMOLED)
• Active matrix OLED (AMOLED)
Setiap jenis OLED ini memiliki beberapa perbedaan terutama di bagian
penyusunan lapisannya. Pada passive-matrix OLED atau PMOLED memiliki stips of
cathode, organic layers dan stips of anode, sedangkan active-matrix OLED atau
AMOLED memliki full layers of cathode, organic molecules dan anode. AMOLED
mengkonsumsi tenaga yang lebih kecil dari PM OLED. Hal ini disebabkan karena pada
AMOLED terdapat OLED matrix yang membutuhkan tenaga (power) yang kecil, tetapi
PMOLED mengkonsumsi tenaga baterai lebih kecil dari LCD pada umumnya.
Gambar 2.62. PMOLED dan AMOLED
μOLED-128-G1(GFX) merupakan smart OLED display module yang digunakan
pada alat ini. M odul ini memiliki 1.5” layar yang akan membantu menampilkan arah
kompas. Dengan menggunakan serial interface – UART, LCD jenis PMOLED ini bisa
74
diakses. M odul ini juga dilengkapi dengan micro-SD memory card adaptor yang dapat
menyimpan data hingga 2 Gigabyte.
Gambar 2.63. 1.5" Smart OLED Display Module
M odul ini menggunakan komunikasi serial dengan sistem UART, untuk itu pada
modul ini terdapat pin Tx dan Rx yang akan digunakan sebagai Transmit pin dan
Receive Pin. Komunikasi ini merupakan komunikasi full duplex 8 bit data pengiriman
dan penerimaan. Dengan format data: 8 bit data, no parity, dan satu stop bit. Selain itu
komunikasi ini menggunakan baud rate 300-256K baud.
Pada modul ini terdapat 2 buah pin GPIO atau General Purpose I/O interface.
Kedua pin ini akan memberikan kombinasi yang menyatakan application code atau
fungsi mana yang digunakan.
75
Tabel 2.9. GPIO function and features
Table 2.10. Pin output μOLED-128-G1(GFX)
2.11. 4DGL Workshop
4DGL Workshop merupakan salah satu software dari 4D-system yang bisa
digunakan dalam mengakses prosesor keluarga 4D. Sampai saat ini, keluaran terbarunya
adalah 4DGL-workshop3 IDE. Dimana software ini merupakan gabungan dari editor,
compiler, linker dan pengguna code downloader untuk mengembangkan aplikasi 4DGL
76
dan mengirim ke embedded target (prosesor 4D). Prosesor yang didukung software ini
antara lain: GOLDELOX-GFX2 dan PICASO-GFX.
Gambar 2.64. Tampilan 4DGL-Workshop IDE
Untuk memulai membuat program yang baru, pilih FileÆ New, kemudian pilih
platform atau tipe modul yang digunakan pada platform box. Setelah memilih platform,
pilihlah com port. Dimana com port ini dipilih sesuai dengan port mana yang
dihubungkan dengan modul. Lingkaran disebelah pemilihan port akan bewarna biru jika
sudah terhubung, kemudian penulisan code bisa dilakukan.
77
Jika ingin memasukkan code yang telah dibuat ke dalam modul, bisa memilih
Com’nLoad. Jika hanya ingin mengecek code yang telah dibuat bisa melakukan compile
terlebih dahulu dengan memilih compile.
Pada main menu bar terdapat beberapa menu yang bisa digunakan, antara lain:
• File Î menu yag berisi menu-menu fungsi untuk membuat file baru, membuka
atau menutup atau meyimpan file yag telah dibuat, dan keluar dari 4DGL
Workshop3
• Edit Î berisi menu-menu fungsi untuk undo, redo, cut, copy, paste, find, replace
maupun go to.
• Tools Î bersi menu-menu untuk membuka program lain dengan fungsi khusus
• Options Î untuk memilih reporting level dan melakukan perubahan pada font,
coloring, dan attributes
• About Î menampilkan versi dari Workshop3 yang digunakan
Didalam 4DGL Workshop3, terdapat auto completion yang akan menyempurnakan
fungsi yang digunakan jika hanya ingat bagian depannya saja. M isalnya menggunakan
fungsi gfx_OrbitInit, yang diingat hanya gfx_ nya saja, maka akan muncul kotak dialog
dengan pilihan fungsi yang bisa digunakan dengan awalan gfx_ . Box ini akan muncul
setelah menekan controlÆ space atau ^Space.
78
Gambar 2.65. Auto Completion
Selain itu terdapat parameter hints.yang akan menujukkan parameter yang bisa
digunakan ketika memakai fungsi tertentu.
Gambar 2.66. Parameter Hints
2.12.
Python
Python adalah bahasa pemrograman dinamis yang mendukung pemrograman
berorientasi obyek. Dimana Python bisa mendukung beberapa development tools dengan
standard libraries, seperti Telit GM 862-GPS. Python merupakan perangkat bebas atau
freeware, yang berarti diperoleh dan dipergunakan secara bebas, tidak ada batasan dalam
penyalinannya atau mendistribusikannya. Lengkap dengan source code-nya, debugger
dan profiler, antarmuka yang terkandung di dalamnya untuk pelayanan antarmuka,
fungsi sistem, GUI (antarmuka pengguna grafis), dan basis datanya.
79
Phyton dapat digunakan untuk berbagai keperluan pengembangan software dan
dapat digunakan dalam berbagai platform sistem operasi, seperti kebanyakan sistem
UNIX, PCs (DOS, Windows, OS/2), M acintosh, Palm, Symbian (untuk produk-produk
Nokia) dan lainnya.
Dalam melakukan pemrograman, Telit GM 862-GPS menggunakan Phyton versi
1.5.2+. GM 862-GPS berkomunikasi dengan Phyton melalui serial port. Dimana script
yang akan dibuat Python (file teks) akan disimpan pada non volatile memory (ROM ),
kemudian hasil pemrograman (execute) script yang dibuat akan disimpan pada RAM .
Gambar 2.67. Konfigurasi antara Python dan GM 862-GPS
Python script memiliki prioritas yang rendah dibandingkan dengan operasi
GSM /GPRS umumnya. Dengan kata lain, operasi lain akan tetap berjalan dengan
sendirinya tanpa harus bergantung dengan Python script.
Beberapa interaksi antara Python dan modul Telit antara lain:
•
MDM interface
Disini Python script akan melakukan komunikasi dengan internal modul GM 862GPS seperti pengiriman AT command, menerima respon, mengirim data dan
menerima data.
80
•
MDM 2 interface
MDM 2 merupakan komunikasi kedua antara Phyton dan internal modul Telit (AT
command).
•
SER interface
Komunikasi antara Python dan modul serial port ASC0. Biasanya digunakan untuk
mengirim AT commands ke modul Telit.
•
SER2 interface
Komunikasi antara Python dan internal modul serial port A SC1.
•
GPIO interface
Komunikasi antara Python dan internal modul bagian Genereal Purpose Input
Output (GPIO)
•
MOD interface
MOD merupakan sebuah kumpulan dari fungsi-fungsi yang dibutuhkan.
•
I2C interface
Disini Python bisa mengimplementasikan fungsi I2C bus Master. Selain itu Python
diperbolehkan membuat satu atau lebih I2C bus pada pin GPIO yang bisa
digunakan.
•
SPI interface
Seperti halnya dengan I2C, tetapi disini Python mengimplementasikan fungsi SPI
bus Master.
•
GPS interface
81
Komunikasi ini berhubungan antara Python dan modul internal yang mengontrol
GPS. Dengan kata lain, GPS bisa dikontrol tanpa harus menggunakan AT
commands melalui M DM .
Gambar 2.68. Interaksi antara Phyton dan Telit GM862-GPS
Download