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