BAB II TINJAUAN PUSTAKA
2.1
Jaringan Sensor Nirkabel Jaringan Sensor Nirkabel (JSN) atau Wireless Sensor Network (WSN)
merupakan teknologi jaringan yang digunakan untuk pertukaran data/informasi tanpa adanya infrastruktur komunikasi. Jaringan sensor nirkabel didasarkan pada sensor node dan sink. Karakteristik utama dari jaringan ini adalah node dengan sumber daya yang rendah. Node terdiri dari sensor, pengolahan data, dan komponen komunikasi yang dapat membantu pengguna untuk melakukan penelitian, pengamatan dan bereaksi terhadap peristiwa yang terjadi disekitar sensor node. Sensor node mendapatkan energi yang disuplai dari baterai kecil, oleh karena itu sensor node hanya dapat mentransmisikan bit yang terbatas pada masa aktifnya. Pada arsitektur jaringan sensor nirkabel, sensor node digunakan untuk mengumpulkan dan mentransmisikan data menuju sink dengan sistem komunikasi melalui satu atau lebih hop (multi-hop) yang letaknya tersebar. Arsitektur jaringan sensor nirkabel ditunjukkan pada gambar 2.1.
Sensor field
Sensor node User
Sink
Gambar 2.1 Arsitektur jaringan sensor nirkabel Sumber: Nasri, 2010
5
6
2.1.1 Komponen Sensor Node Nirkabel Sensor node nirkabel terdiri dari beberapa komponen sebagai berikut. (Nasri, 2010) 1.
Unit sensor, terdiri dari satu atau lebih sensor dan konverter analog-todigital untuk akuisisi data.
2.
Unit pengolahan, terdiri dari mikrokontroler dan memori untuk pengolahan data lokal.
3.
Sistem radio untuk komunikasi data wireless.
4.
Power supply. Sensor node juga memiliki komponen tambahan, seperti sistem pencarian
lokasi untuk menentukan posisi sensor node dan mobilizer (penggerak) untuk mengatur posisi dan konfigurasi sensor node. Komponen sensor node nirkabel ditunjukkan pada gambar 2.2.
Location Finding System Sensing Unit
Sensor
ADC
Mobilizer Processing Unit Processor (µos)
Transceiver
Storage
Battery Power Gene.
Gambar 2.2 Komponen sensor node nirkabel Sumber: Nasri, 2010
Pada jaringan multimedia nirkabel, sensor node dilengkapi dengan alat multimedia berupa kamera yang berukuran kecil, microphone, dan speaker. Jaringan ini memiliki kemampuan dalam mentransmisikan data multimedia yang berupa citra. Hal terpenting dalam pentransmisian citra dalam jaringan sensor nirkabel adalah sensor citra dan memori yang disediakan dalam pengolahan citra.
7
2.2
Standar IEEE 802.15.4/Zigbee Standar 802.15.4 atau dikenal juga dengan nama Zigbee merupakan standar
protokol yang menyediakan infrastruktur jaringan untuk aplikasi jaringan sensor nirkabel dengan data rate yang rendah dan beroperasi pada jarak yang dekat (Personal Area Network). Standar IEEE 802.15.4/Zigbee beroperasi pada tiga frekuensi band, yaitu 868 MHz, 915 MHz, dan 2,4 Ghz. Tabel 2.1 menunjukkan frekuensi band yang digunakan oleh standar 802.15.4/Zigbee. Tabel 2.1 Frekuensi band IEEE 802.15.4/Zigbee Spreading Parameters Frequency PHY Band Chip rate (MHz) Modulation (MHz) (kchip/s) 868/915 868/915 (optional) 868/915 (optional)
2450
Data Parameters Bit rate (kb/s)
Symbol rate (symbol/s)
Symbols
868 – 868,6 902 – 928 868 – 868,6 902 – 928
300 600 400 1600
BPSK BPSK ASK ASK
20 40 250 250
20 40 12,5 50
Binary Binary 20-bit PSSS 5-bit PSSS
868 – 868,6
400
O-QPSK
100
25
16-ary Orthogonal
902 – 928
1000
O-QPSK
250
62,5
2400 – 2483,5
2000
O-QPSK
250
62,5
16-ary Orthogonal 16-ary Orthogonal
Sumber: Farahani, 2008
Selain frekuensi band, terdapat juga beberapa karakteristik standar IEEE 802.15.4 pada Wireless Personal Area Network, yaitu sebagai berikut. 1.
Memiliki data rate 250 kbps.
2.
Terdapat kanal akses CSMA/CA.
3.
Konsumsi daya yang rendah. Dalam sebuah jaringan sensor nirkabel terdapat dua jenis perangkat yang
terdapat pada IEEE 802.15.4/Zigbee, yaitu full function device (FFD) dan reduced function device (RFD). Perangkat FFD dapat beroperasi dalam tiga mode yang disediakan, yaitu sebagai coordinator personal area network, coordinator, dan device. Perangkat FFD dapat berkomunikasi dengan RFD atau FFD lainnya, sedangkan perangkat RFD hanya dapat berkomunikasi kepada FFD. Gambar 2.3 merupakan penyebutan perangkat yang terdapat pada Zigbee dan IEEE 802.15.4.
8
Zigbee Coordinator (IEEE 802.15.4 PAN Coordinator) Zigbee Router (IEEE 802.15.4 Coordinator)
Zigbee Device Role
PAN Coordinator (FFD) IEEE 802.15.4 Device Role
Zigbee End Device (IEEE 802.15.4 Device)
Coordinator (FFD) Device (RFD atau FFD)
Gambar 2.3 Penyebutan perangkat pada standar IEEE 802.15.4 dan ZigBee Sumber: Farahani, 2008
2.2.1 Topologi Jaringan Topologi jaringan pada standar IEEE 802.15.4/Zigbee terdapat dua jenis, yaitu peer to peer dan star. Topologi star ditunjukkan oleh gambar 2.4. Pada topologi star, setiap perangkat pada jaringan dapat berkomunikasi hanya dengan koordinator PAN.
FFD atau RFD
P PAN Coordinator
P
(FFD)
Gambar 2.4 Topologi star Sumber: Farahani, 2008
Pada topologi peer to peer, setiap perangkat dapat berkomunikasi secara langsung dengan setiap perangkat lainnya jika perangkat tersebut memiliki letak yang saling berdekatan, sehingga komunikasi yang dibangun dapat berlangsung sukses. Namun, jika topologi peer to peer tersebut tidak memiliki batasan terhadap banyaknya perangkat, maka topologi tersebut dapat juga disebut topologi mesh, seperti yang terlihat pada gambar 2.5.
9
F
R RFD F
F R
FFD
F F
P PAN Coordinator
P
F
(FFD)
R Gambar 2.5 Topologi mesh Sumber: Farahani, 2008
Selain topologi mesh, terdapat bentuk lain dari topologi peer to peer, yaitu topologi tree. Topologi tree ditunjukkan pada gambar 2.6. Pada topologi tree, Zigbee coordinator membangun sebuah inisialisasi jaringan, Zigbee router membentuk cabang dan me-relay pesan, dan Zigbee end device bertindak sebagai daun-daun pohon dan tidak ikut serta dalam routing pesan. Zigbee router dapat terus tumbuh diluar jaringan awal yang dibentuk oleh Zigbee coordinator. R Zigbee end device
R
R R
R
R
R
Zigbee router
C C
Zigbee coordinator
R
R
R R
Gambar 2.6 Topologi tree Sumber: Farahani, 2008
2.2.2 Arsitektur dan Protokol IEEE 802.15.4/Zigbee Standar IEEE 802.15.4/Zigbee terdiri dari 4 layer. Spesifikasi 2 Layer teratas (Application dan Network) ditetapkan oleh Zigbee Alliance sebagai standar produksi dan spesifikasi 2 layer terbawah (Medium Access Control dan Physical) ditetapkan oleh standar IEEE 802.15.4-2006 untuk memastikan keberadaan Zigbee tanpa interferensi dari protokol wireless lainnya, misalnya WiFi. Gambar 2.7 menunjukkan arsitektur standar IEEE 802.15.4/Zigbee secara umum. (Farahani,
2008)
10
Application Layer (APL) Applicattion Objects
Zigbee device object
Defined by Zigbee standard
Application Support Sublayer (APS)
Security Service
Zigbee Wireless Networking
Network Layer (NWK) Defined by IEEE 802.15.4 standard
Medium Acces Control (MAC) Physical Layer (PHY)
Radio Transceiver
Gambar 2.7 Arsitektur standar IEEE 802.15.4/Zigbee Sumber: Farahani, 2008
2.2.2.1 Struktur Umum Paket Pada
standar
IEEE
802.15.4/Zigbee,
data
dan
perintah
yang
dikomunikasikan antara berbagai jenis perangkat berbentuk paket dan frame. Struktur umum dari paket dan frame masing-masing layer pada standar IEEE 802.15.4/Zigbee ditunjukkan pada gambar 2.8. AHR Auxilliary HDR
NHR MHR SHR PHR
APS Payload
MIC
APS Frame
NWK Payload MAC Payload
NWK Frame MFR
PHY Packet
PHY Payload
Transmitter First
MAC Frame
Transmitter Last
Gambar 2.8 Struktur paket IEEE 802.15.4/Zigbee Sumber: Farahani, 2008
PHY packet terdiri dari tiga komponen, yaitu sinkronisasi header (SHR) yang memungkinkan receiver untuk melakukan sinkronisasi dan dikunci ke dalam bit stream, PHY header (PHR) berisi informasi panjang frame, dan PHY payload
11
yang disediakan oleh lapisan atas dan meliputi data atau perintah untuk perangkat penerima. MAC frame terdiri dari tiga komponen, yaitu MAC header (MHR) yang berisi informasi addressing dan security, MAC payload yang memiliki variabel length size dan berisi perintah atau data, dan MAC footer (MFR) berisi 16 bit Frame Check Sequence (FCS) untuk verifikasi data. NWK frame terdiri dari dua komponen, yaitu NWK header (NHR) yang berisi network level addressing dan kontrol informasi, dan NWK payload yang disediakan oleh Application Support Sublayer (APS sublayer). APS frame terdiri dari empat komponen. Pertama, APS header (AHR) yang memiliki kontrol application layer dan informasi addressing. Kedua, Auxiliary frame header (auxiliary HDR) berisi mekanisme yang digunakan untuk menambah keamanan yang menuju frame dan kunci keamanan yang digunakan. Kunci keamanan ini dibagikan kepada perangkat-perangkat yang diberikan otoritas dan membantu untuk membuka informasi. Ketiga, APS Payload berisi data dan perintah. Keempat, message integrity code (MIC) yang merupakan fitur keamanan dalam frame APS yang digunakan untuk mendeteksi perubahan yang tidak sesuai dalam isi pesan. 2.2.2.2 PHY Layer Dalam arsitektur standar IEEE 802.15.4/Zigbee, lapisan terendah adalah protokol Physical Layer atau PHY. Lapisan PHY adalah lapisan yang paling dekat dengan hardware yang memiliki kontrol langsung dan komunikasi dengan radio transceiver. Lapisan PHY bertanggung jawab untuk mengaktifkan radio yang mentransmisikan atau menerima paket. Lapisan PHY juga memilih kanal frequency dan memastikan kanal tersebut saat tidak digunakan oleh perangkat pada jaringan lain. 2.2.2.3 MAC Layer Medium Access Control (MAC) layer menyediakan interface antara PHY layer dan NWK layer. MAC bertanggung jawab untuk menghasilkan beacon dan sinkronisasi perangkat. Lapisan MAC juga menyediakan asosiasi dan pemisahan
12
layanan. Standar IEEE 802.15.4/Zigbee mendefinisikan empat struktur frame MAC, yaitu sebagai berikut. (Farahani, 2008) 1.
Beacon Frame Beacon frame adalah frame terpendek yang dikirim oleh access point ke
station atau dari station ke station untuk mengatur sinkronisasi komunikasi. Beacon frame digunakan oleh coordinator untuk transmisi beacon dan juga digunakan untuk sinkronisasi semua perangkat yang terdapat dalam satu jaringan. Struktur dari beacon frame ditunjukkan pada gambar 2.9. Pada struktur tersebut terdapat layer terbawah, yaitu PHY layer. Seluruh MAC frame digunakan sebagai PHY payload dalam paket PHY dan isi PHY payload disebut PHY Service Data Unit (PSDU). MAC frames terdiri dari tiga bagian, yaitu MAC header (MHR), MAC payload, dan MAC footer (MFR). MHR terdiri dari empat bagian. Pertama, frame control berisi informasi yang mendefinisikan tipe frame, addressing fields, dan kontrol flags lainnya. Kedua, sequence number yang menentukan beacon sequence number (BSN). Ketiga, Addressing field menyediakan alamat sumber dan tujuan. Keempat, auxilliary security header yang bersifat opsional dan berisi informasi yang diperlukan untuk pengolahan keamanan. MAC payload terbagi juga menjadi empat bagian. Pertama, superframe yang merupakan frame yang dibatasi oleh dua frame beacon. Superframe opsional digunakan pada jaringan beacon-enabled dan membantu menentukan Guaranteed Time Slot (GTS). Kedua, GTS field bertanggungjawab menentukan apakah GTS digunakan untuk menerima atau mengirimkan data.
Frame Sequence Addresing Auxilliary Superframe GTS Pending Beacon FCS Number Field Security HDR Specification Field Addres Field Payload
MAC Layer Control
MHR
PHY Layer
MAC Payload
Preamble Frame Length/ SFD Sequence Reserved SHR
PSDU PHY Payload
PHR
Gambar 2.9 Struktur MAC beacon frame Sumber: Farahani, 2008
MFR
13
Ketiga, pending address filed berisi alamat perangkat yang memiliki data tertunda pada coordinator. Beacon frame tidak hanya digunakan untuk sinkronisasi perangkat dalam jaringan, tapi juga digunakan untuk mengetahui adanya data yang tertunda pada coordinator. Setiap kali perangkat menerima beacon, MAC payload akan memeriksa pending address field untuk melihat apakah terdapat data yang tertunda. Keempat, beacon payload merupakan field opsional yang dapat digunakan oleh lapisan NWK dan dikirim bersama dengan beacon frame. Bagian terakhir dari MAC frame, yaitu MFR. Pada MFR, receiver menggunakan frame check sequence (FCS) field untuk memeriksa setiap kesalahan dalam frame yang diterima. 2.
MAC Data Frame MAC data frame digunakan untuk mengirimkan data dan menerima
acknowledge frame yang sukses. Struktur MAC data frame ditunjukkan pada gambar 2.10. Data payload disediakan oleh NWK layer. Data pada MAC payload disebut sebagai MAC Service Data Unit (MSDU). Fields pada frame ini hampir sama dengan beacon frame kecuali superframe, GTS, dan pending address fields tidak terdapat pada MAC data frame. MAC data frame disebut juga MAC protokol data unit dan menjadi PHY payload.
MAC Layer
Frame Control
Sequence Addresing Auxilliary Data Payload FCS Number Field Security HDR MAC Payload MFR
MHR
PHY Layer
Preamble Sequence SHR
SFD
Frame Length/ Reserved
PSDU
PHR
PHY Payload
Gambar 2.10 Struktur MAC data frame Sumber: Farahani, 2008
3.
MAC Acknowledgment Frame Sama halnya dengan MAC data frame, acknowledgment frame digunakan
untuk mengirimkan data dan menerima acknowledge frame yang sukses. Acknowledgment Frame ditunjukkan pada gambar 2.11 yang merupakan format
14
MAC frame yang sederhana dan tidak membawa MAC payload apapun. Acknowledgment frame dikirim oleh satu perangkat ke perangkat lainnya untuk mengkonfirmasi paket yang sukses diterima.
Frame Control
MAC Layer
Sequence FCS Number
MHR
Preamble Sequence
PHY Layer
Frame Length/ Reserved
SFD
SHR
MFR
PSDU PHY Payload
PHR
Gambar 2.11 Struktur MAC acknowledge frame Sumber: Farahani, 2008
4.
MAC Command Frame MAC command frame bertanggung jawab untuk memberikan perintah
berupa penggabungan atau pemisahan dengan jaringan yang ditransmisikan menggunakan MAC command frame. Struktur MAC command frame ditunjukkan pada gambar 2.12. Command type bertugas untuk menentukan jenis perintah. Command payload berisi perintah itu sendiri. Seluruh MAC command frame ditempatkan pada PHY payload sebagai sebuah PSDU.
MAC Layer
Frame Control
Sequence Number
Addresing Field
Auxilliary Security HDR
MHR
PHY Layer
Preamble Sequence
SFD
SHR
Command Type MAC Payload
Frame Length/ Reserved
PSDU
PHR
PHY Payload
Command Payload
FCS MFR
Gambar 2.12 Struktur MAC command frame Sumber: Farahani, 2008
2.2.2.4 Networking Layer Networking Layer merupakan antarmuka antara MAC dan APL yang bertanggung jawab untuk mengelola pembentukan jaringan dan routing. Routing
15
adalah proses memilih jalur yang tepat dan selanjutnya pesan akan diteruskan ke perangkat tujuannya. Dalam jaringan nirkabel, PAN coordinator, dan coordinator bertanggung jawab untuk menemukan dan mengatur rute dalam jaringan. Sedangkan, device tidak dapat melakukan penjelajahan jalur. Layer NWK pada PAN coordinator bertanggung jawab untuk membuat jaringan baru dan memilih topologi jaringan (tree, star, atau mesh). PAN coordinator juga memberikan alamat NWK ke perangkat didalam jaringan. 2.2.2.5 Application Layer Appication Layer (APL) merupakan layer protokol teratas pada jaringan wireless IEEE 802.15.4/Zigbee dan sebagai host objek aplikasi. Objek aplikasi dikembangkan untuk menyesuaikan perangkat dalam berbagai aplikasi. Objek aplikasi mengontrol dan mengatur protokol layer pada perangkat Zigbee. Dalam satu perangkat bisa terdapat objek aplikasi hingga 240. Standar Zigbee menawarkan pilihan untuk menggunakan profile aplikasi dalam mengembangkan sebuah aplikasi. Profile aplikasi merupakan sekumpulan kesepakatan pada format pesan aplikasi yang spesifik
dan tindakan pengolahan. Penggunaan profile
aplikasi memungkinkan interoperabilitas antara produk yang dikembangkan oleh vendor yang berbeda untuk aplikasi tertentu. Jika dua vendor menggunakan profile aplikasi yang sama untuk mengembangkan produk mereka, produk dari salah satu vendor akan mampu berinteraksi dengan produk yang diproduksi oleh vendor lain, seolah-olah produk tersebut diproduksi oleh vendor yang sama. Application layer terdiri dari tiga bagian, antara lain: 1. Application Support (APS) sublayer, bertugas untu menyediakan antarmuka antara network layer dan application layer. 2. Zigbee Device Object (ZDO) adalah aplikasi yang menggunakan layanan NWK dan APS sublayer untuk implementasi perangkat pada salah satu dari tiga mode Zigbee, yaitu coordinator, router atau device. 3. Application framework merupakan lingkungan objek aplikasi. 2.2.2.6 IEEE 802.15.4/Zigbee CSMA/CA Standar IEEE 802.15.4/Zigbee menggunakan metode sederhana untuk mengijinkan beberapa perangkat menggunakan kanal frekuensi yang sama sebagai
16
media komunikasi. Metode akses yang digunakan adalah Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA). Pada CSMA/CA, setiap perangkat yang ingin melakukan transmisi akan mengirimkan clear channel assessment (CCA) untuk memastikan kanal transmisi tidak digunakan oleh perangkat lain untuk menghindari terjadinya collision/tubrukan. Selanjutnya, sinyal/informasi akan mulai dikirim oleh perangkat yang ingin melakukan transmisi. Jika kanal telah digunakan oleh salah satu perangkat, maka perangkat yang lain akan menunda dan menunggu untuk melakukan transmisi dengan periode yang acak. 2.2.2.7 Security Pada jaringan nirkabel, pesan yang dikirim dapat diterima oleh perangkat IEEE 802.15.4/Zigbee di dekatnya, termasuk juga perangkat lain/penyusup yang dapat memodifikasi dan mengirim ulang pesan tersebut. Untuk menghindari masalah ini, standar IEEE 802.15.4/Zigbee menggunakan protokol encryption. Konsep dari encryption, yaitu transmitter pesan menggunakan sebuah algoritma untuk mengenkripsi pesan sebelum melakukan transmisi dan hanya penerima yang dimaksud yang dapat mengembalikan pesan asli. Selain itu, standar IEEE 802.15.4/Zigbee
juga
menggunakan
device
authentication
dan
data
authentication. Device authentication adalah tindakan mengkonfirmasikan perangkat baru yang bergabung dengan jaringan. Sedangkan, pada data authentication penerima memverifikasi apakah data tersebut telah diubah atau berubah. 2.3
Linux Nama "Linux" mengacu pada nama kernel (kernel Linux) yang
dikembangkan dan didistribusikan melalui repositori utama dari berbagai situs mirror dan dirilis pada tahun 1991 oleh Linus Torvalds. Sistem dan library Linux umumnya berasal dari sistem GNU yang dirilis pada tahun 1983 oleh Richard Stallman. Linux merupakan sistem operasi yang diadopsi dari Unix dan tersedia secara bebas yang mendapat popularitas sebagai alternatif dari sistem operasi proprietary seperti Microsoft Windows.
17
Perkembangan Linux sangat didukung oleh lisensi yang digunakan Linux, yaitu GNU General Public License (GNU GPL). GNU GPL memungkinkan suatu aplikasi (termasuk sistem operasi) digunakan dan disebarluaskan secara bebas. Pengguna software berhak menerima kode asal (source code) dari aplikasi tersebut beserta semua hak yang diijinkan oleh penulis asli. Aplikasi tersebut dapat dimodifikasi maupun digunakan dalam aplikasi lain. Penulis asli hanya bertanggungjawab pada kode asli dan tidak bertanggungjawab terhadap implikasi perubahan yang dilakukan pada aplikasi tersebut. Penyebarluasan aplikasi yang telah diubah tetap mencantumkan penulis asli, source code, code perubahan yang ditambahkan dan penanggungjawab perubahan tersebut.
2.3.1 Real-Time Linux Real-time Linux dikembangkan oleh RTLinux project yang dirilis pada tahun 1996 oleh Michael Barabanov. Tujuan pengembangan Real Time Linux adalah untuk memberikan mekanisme waktu respon deterministik dibawah lingkungan Linux. Sehingga, diharapkan komputasi real-time harus memiliki respon yang cepat dan handal dalam menanggapi lingkungan sekitarnya. RTLinux saat ini mendukung berbagai jenis perangkat non-embedded, seperti sistem perdagangan saham real-time, dan banyak aplikasi “enterprise”. Contoh aplikasi real time pada Linux, yaitu RTAI, Kurt, dan Linux/RK yang dapat memberikan performa secara real-time di Linux. Disamping itu, beberapa project dikembangkan dengan menyisipkan sebuah kernel sekunder dibawah kernel Linux dan beberapa path dengan tujuan meningkatkan waktu respon kernel Linux.
2.3.2
Sistem Embedded Linux Embedded Linux secara khusus mengacu pada sebuah perangkat yang
tertanam sistem operasi Linux. Contoh perangkat embedded, yaitu mobile phone, PDA, media player, perangkat elektronik, perangkat jaringan, kontrol mesin, otomasi industri, perangkat navigasi, dan peralatan kedokteran. Untuk membangun sebuah sistem embedded Linux dapat digunakan source code kernel Linux yang sudah ada meskipun dalam pembangunannya mungkin akan
18
dilakukan konfigurasi berbagai fitur sesuai dengan fungsi yang akan dijalankan kernel. Sebuah sistem embedded Linux memiliki komponen perangkat lunak sebagai berikut. (Sally, 2010) 1. Boot loader Boot loader bertanggungjawab untuk mendapatkan inisialisasi prosesor, memuat sistem operasi dan menjalankan sistem operasi. Boot loader merupakan perangkat lunak yang pertama berjalan pada saat startup sistem yang kemudian dilanjutkan dengan berjalannya kernel. Contoh dari bootloader, yaitu Linux Loader (LILO), Grand Unified Bootloader (GRUB), loadlin, coreboot, uboot dan redboot. 2. Kernel Kernel Linux menyediakan berbagai fasilitas inti sistem yang diperlukan untuk berbagai jenis sistem berbasis Linux agar dapat beroperasi dengan benar. Kernel Linux memiliki beberapa fitur, diantaranya: menangani hardware serta penyediaan berbagai abstraksi fundamental, memuat driver, memori virtual, task (proses), socket, file dan sejenisnya. Kernel menggunakan skema penomoran untuk mengidentifikasi rilis. Dua angka pertama menunjuk versi dan angka ketiga menunjuk rilis. Sebagai contoh, Linux 2.4.20, nomor versinya adalah 2.4 dan angka rilisnya adalah 20. Pada sistem embedded biasanya digunakan versi kernel Linux yang terbaru. 3. Root filesystem Root filesystem adalah cara merepresentasikan sekumpulan direktori secara hirarki yang merupakan bagian dari direktori [/] dan berisi program yang dijalankan oleh kernel. Setiap direktori yang terdapat pada root filesystem dapat berisi direktori lain atau files. 4. Aplikasi Aplikasi merupakan program yang berjalan pada perangkat.
Keempat komponen tersebut saling berkaitan satu sama lain untuk menciptakan sebuah sistem. Selain keempat komponen tersebut, diperlukan juga
19
tools pengembangan, seperti cross-compiler untuk membangun sebuah sistem embedded Linux. Cross compiler merupakan bagian dari lingkungan pengembangan. Cross compiler dapat menghasilkan kode yang berjalan pada prosesor atau sistem operasi yang berbeda. Pada linux, cross sompiler disebut juga sebagai tool chain karena tools tersebut bekerja sama untuk menghasilkan sebuah proses, seperti compiler, assembler dan linker. Contoh cross compiler, yaitu GNU Compiler Collection (GCC). GCC digunakan dan diinstalasi pada host dan dikonfigurasi menggunakan GNU C standard Library atau yang dikenal dengan sebutan glibc.
2.3.2.1 Arsitektur Sistem Embedded Linux Arsitektur umum sistem embedded Linux terdiri dari berbagai komponen, yaitu hardware, kernel Linux, libraries, dan aplikasi. Arsitektur sistem embedded Linux memungkinkan untuk mengatur setiap komponen, memahami interaksi antara komponen dan juga menentukan cara terbaik untuk melakukan perakitan. Arsitektur umum sistem embedded Linux dapat dilihat pada gambar 2.13. (Yaghmour, 2008) Pada arsitektur paling bawah terdapat hardware. Hardware harus memenuhi beberapa karakteristik untuk menjalankan sistem Linux, yaitu sebagai berikut. a.
CPU 32 bit yang memiliki memory management unit (MMU).
b.
RAM yang cukup harus tersedia untuk mengakomodasi sistem.
c.
Kemampuan I/O disesuaikan dengan pengembangan pada target dengan fasilitas debugging yang sesuai.
d.
Kernel harus mampu memuat root filesystem melalui beberapa bentuk penyimpanan permanen atau diakses melalui jaringan.
20
Applications Libraries Linux Kernel High-level abstractions
Filesystem
Network Protocol
Low-level interface
Hardware
Gambar 2.13 Arsitektur umum sistem embedded Linux Sumber: Yaghmour, 2008
Komponen berikutnya adalah inti sistem operasi yang disebut kernel. Kernel bertugas mengelola hardware secara koheren serta menyediakan abstraksi umum high-level ke user-level software (seperti POSIX API). Kernel menyediakan dua kategori layanan berlapis dan juga menyediakan fungsi-fungsi yang dibutuhkan oleh aplikasi, yaitu low-level interface dan high-level interface. Low-level interface, khusus untuk konfigurasi hardware yang berjalan dan menyediakan kontrol langsung dari sumber hardware menggunakan API hardwareindependent. Layanan low-level menangani operasi CPU yang spesifik, operasi arsitektur memori yang spesifik, dan interface dasar untuk perangkat. Selanjutnya, diabstraksikan ke level code yang lebih tinggi melalui fungsi header, macro, dan wrapper. Diatas layanan low-level terdapat higher-level yang menyediakan abstraksi umum untuk semua sistem Unix, termasuk proses, file, socket, dan sinyal. Antara dua level abtraksi (low-level dan higher-level), terkadang kernel memerlukan komponen interpretasi untuk memahami dan berinteraksi dengan struktur data yang datang atau meninggalkan perangkat tertentu. Contoh komponen yang diperlukan kernel untuk melakukan tugas tersebut adalah filesystem dan protokol jaringan. Isu kompatibilitas merupakan hal yang penting, sering terjadi suatu filesystem tidak kompatibel terhadap hardware yang digunakan. Untuk
21
mengakomodasi filesystem yang sebelumnya dengan filesystem yang baru atau dalam pengembangan, kernel memiliki sejumlah mesin filesystem yang dapat mengenali struktur disk tertentu dan mengambil atau menambah file dan direktori dari struktur ini. Semua mesin menyediakan API yang sama untuk layer teratas dari kernel melalui Linux Virtual File System (VFS), sehingga akses ke berbagai filesystem menjadi identik meskipun akses layanan ke layer terbawah bervariasi sesuai struktur dari filesystem. API yang sama diberikan kepada lapisan filesystem virtual dari kernel, misalnya filesystem FAT dan filesystem ext3, tetapi pengoperasian filesystem dilakukan pada perangkat block driver yang berbeda sesuai struktur masing-masing filesystem untuk menyimpan data pada disk. Satu buah root filesystem diperlukan untuk operasi normal. Dari filesystem ini, kernel akan memuat aplikasi yang pertama untuk menjalankan sistem. Root filesystem disimpan dan dioperasikan pada perangkat penyimpanan atau dimuat ke dalam RAM selama proses startup sistem dan dioperasikan dari RAM. Komponen berikutnya adalah aplikasi, yaitu program yang berjalan pada sistem operasi. Contoh komponen pendukung aplikasi adalah perangkat disk. Perangkat
disk
merupakan
media
penyimpanan
utama
untuk
data
terkomputerisasi. Perangkat disk dan semua jenis perangkat penyimpanan lainnya, memiliki stuktur kecil didalamnya. Konten yang terdapat dalam perangkat tersebut dialamatkan oleh sektor referensi sesuai silinder pada disk tertentu, namun level organisasi ini tidak cukup memadai untuk mengakomodasi setiap perubahan konten dari file dan direktori. Akses file-level dicapai menggunakan organisasi khusus dari data yang terdapat pada disk, dimana file dan direktori informasi disimpan dalam mode tertentu, sehingga dapat dikenali ketika dibaca. Aplikasi mengandalkan libraries dan sistem daemon khusus untuk menyediakan API dan layanan yang berinteraksi dengan kernel untuk memperoleh fungsi yang diinginkan. Library utama yang digunakan oleh aplikasi Linux adalah GNU C library, yaitu glibc. Pada sistem embedded Linux, penggantian library dapat digunakan untuk mengkompensasi kekurangan utama GNU C library. Selain C library, terdapat libraries lain, seperti Qt, XML atau MD5 yang menyediakan berbagai utilitas dan fungsi API yang menyediakan
22
segala macam keperluan. Libraries biasanya berhubungan secara dinamik dengan aplikasi, artinya libraries bukan bagian dari aplikasi tapi libraries akan dimuat ke dalam
aplikasi
memori
ketika
startup
aplikasi
berlangsung.
Hal
ini
memungkinkan banyak aplikasi menggunakan libraries yang sama dan masingmasing aplikasi memiliki salinannya masing-masing. C libraries terdapat pada filesystem yang hanya dimuat sekali pada sistem RAM, dan salinan yang sama biasanya dibagikan untuk seluruh aplikasi yang menggunakan library ini.
2.3.2.2 Kriteria Sistem Embedded Linux Dalam sistem embedded Linux terdapat beberapa kriteria yang akan memberikan informasi aktual mengenai struktur dari sistem, yaitu size, time constraints, network ability, dan user interaction. (Yaghmour, 2008) 2.3.2.2.1 Size Size dari sistem embedded Linux ditentukan oleh sejumlah faktor yang berbeda. Ukuran fisik dari sistem embedded sangat penting dan berpengaruh terhadap kemampuan hardware dari sistem tersebut, dimana ukuran fisik akan menentukan kecepatan CPU, ukuran RAM, dan ukuran penyimpanan permanen. Terdapat tiga kategori ukuran yang dikenal untuk sistem embedded, yaitu kecil, menengah, dan besar seperti yang ditunjukkan pada tabel 2.2. Tabel 2.2 Kategori ukuran embedded system Kategori ROM RAM Kecil 4 MB 8-16 MB Menengah 32 MB 64-128 MB Besar
> 32 MB
> 128 MB
Contoh Perangkat PDA, MP3 Player Switch telekomunikasi dan simulator penerbangan
Pertama, sistem kategori kecil ditandai dengan CPU yang memiliki tenaga yang rendah dengan ROM 4 MB dan dengan RAM 8-16 MB. Untuk membangun perangkat dengan kategori kecil diperlukan usaha yang cukup keras karena ruang memori yang dimiliki sangat kecil. Kedua, sistem kategori menengah ditandai dengan CPU bertenaga menengah yang memiliki ROM sekitar 32 MB dengan RAM 64-128 MB. Sebagian besar perangkat yang dibangun menggunakan Linux merupakan sistem menengah. Contoh perangkat sistem menengah, yaitu PDA,
23
MP3 player, sistem hiburan, dan perangkat jaringan. Jenis perangkat dengan ukuran menengah memiliki tenaga dan ruang penyimpanan yang cukup untuk menangani berbagai tugas/proses yang kecil atau dapat juga melayani tujuan tunggal yang membutuhkan banyak memori. Ketiga, sistem kategori besar ditandai dengan CPU yang kuat atau kumpulan CPU yang dikombinasikan dengan RAM dalam jumlah yang besar dan penyimpanan yang permanen. Biasanya, sistem ini digunakan dalam lingkungan yang memerlukan perhitungan yang besar untuk melaksanakan tugas-tugas tertentu. Contoh penggunaan sistem kategori besar, yaitu pada switch telekomunikasi yang besar dan simulator penerbangan. 2.3.2.2.2 Time Constrain Terdapat dua jenis batas waktu dalam sistem embedded, yaitu stringent dan mild. 1. Stringent time constrain, memiliki arti, sistem akan bereaksi dalam batas waktu yang telah ditetapkan. Sebagai contoh, sistem audio streaming, perangkat MP3 player dan handphone akan memenuhi syarat untuk memiliki batas waktu yang ketat, karena setiap data yang terpotong/tertinggal biasanya dianggap mengganggu oleh pengguna dan kegagalan untuk mentransmisikan sinyal ke menara selular dalam waktu tertentu akan berakibat pada pemutusan tiba-tiba komunikasi yang sedang berlangsung. Sistem seperti ini tidak bisa menunggu dan memiliki persyaratan waktu yang merupakan sistem hard real-time. 2. Mild time constrain memiliki persyaratan yang bervariasi, tetapi secara umum berlaku untuk sistem dengan waktu yang ditentukan dan bersifat tidak segera. Contoh, jika teller otomatis membutuhkan waktu 10 detik lagi dari waktu yang ditetapkan untuk menyelesaikan transaksi, umumnya hal tersebut tidaklah menjadi masalah. Hal yang sama berlaku juga pada PDA yang mengambil sejumlah detik untuk memulai membuka aplikasi. Waktu tambahan dapat membuat sistem tampak lambat, namun tidak akan mempengaruhi hasil akhir.
24
2.4.2.2.3 Networkability Networkability adalah kemampuan terhubung ke jaringan. Dengan kemampuan ini, interaksi dengan perangkat bisa dilakukan secara remote. Salah satu faktor Linux digunakan sebagai embedded OS, karena Linux menyediakan jaringan yang handal. Kebanyakan perangkat Linux memiliki satu atau banyak bentuk dari kemampuan jaringan, baik itu menggunakan kabel atau wireless. Contoh, Nokia N800 dan Internet Tablet Nokia merupakan sebagian kecil dari perangkat yang menggunakan embedded Linux yang dilengkapi dengan jaringan wireless 802.11g. 2.4.2.2.4 User Interaction Tingkat interaksi pengguna sangat bervariasi dari satu sistem ke sistem lain. Beberapa sistem, seperti PDA dan perangkat Internet Tablet Nokia memiliki interaksi yang berpusat pada pengguna. Sementara perangkat lain, seperti sistem kontrol proses industri yang mungkin hanya memiliki LED dan tombol untuk interaksi. Disamping itu, ada juga sistem yang tidak memiliki antarmuka. Contohnya, beberapa komponen sistem autopilot pesawat yang mengambil alih kendali sayap, tetapi pergerakan sayap pesawat tidak memiliki interaksi langsung dengan pilot manusia.
2.3.2.3 Jenis Host Host merupakan perangkat yang digunakan untuk pembangunan sebuah sistem embedded. Beberapa jenis host yang dapat digunakan, yaitu sebagai berikut.(Yaghmour, 2008) 2.3.2.3.1 Linux Workstation Linux merupakan jenis host yang umum digunakan untuk sistem embedded Linux. Linux dapat digunakan dan berjalan pada berbagai jenis hardware, misalnya PC dan laptop, sehingga pengguna dapat menggunakan PC atau laptop seperti sebuah sistem. Adapun distribusi Linux yang dapat digunakan pada host system, yaitu Debian GNU/Linux, Fedora, Red Hat Enterprise Linux (RHEL), Ubuntu Linux, OpenSuse, Slackware, dan lain-lain.
25
2.3.2.3.2 UNIX Workstation UNIX adalah sebuah sistem operasi komputer yang diawali dari Project Multiplexed Information and Computing Service (Multics) pada tahun 1965 yang dilakukan American Telephone and Telegraph (AT&T), General Electric (GE), dan Institut Teknologi Massachusetts (MIT). UNIX didesain sebagai sistem operasi yang portable, multi-tasking dan multi-user. UNIX adalah salah satu sistem operasi yang digunakan pada komputer pribadi, server dan jaringan. Sistem operasi UNIX dikenal karena fitur yang ringan dan kemampuan untuk mengintegrasikan sistem operasi lain. Contoh UNIX workstation antara lain: Digital Unix, AIX, SCO Unix, Dynix, IRIX, SunOS, Solaris, Open Solaris, dan lain-lain. 2.3.2.3.3 Windows Workstation Pada awal 1990-an, pengembangan sistem embedded bergeser ke arah Microsoft Windows workstation. Pergeseran ini disebabkan oleh pertumbuhan alat pengembangan yang tersedia dan muncul ketika terjadi peningkatan permintaan pasar untuk embedded project. Pada
awalnya
terdapat
masalah
utama
yang
muncul
ketika
menggunakan Windows sebagai pengembangan program pada platform embedded Linux, yaitu kurangnya pengembangan GNU toolchain. Namun, permasalahan tersebut dapat diatasi sejak dikembangkannya Cygwin environment oleh Red Hat. Cygwin merupakan GNU toolchain yang kompatibel dengan Windows. Sebagai contoh, basis Xilinx yang dibangun berdasarkan modifikasi Cygwin (sebelumnya Xygwin) yang memungkinkan untuk menghasilkan tools untuk kedua sistem Linux dan Windows. Contoh Windows workstation antara lain: Windows 95, ME, XP, Vista dan Windows 7. 2.3.2.4 Konfigurasi Pembangunan Host/Target Terdapat tiga konfigurasi pembangunan host/target yang tersedia untuk pengembangan sistem embedded Linux, yaitu linked setup, removable storage setup, dan standalone setup. Konfigurasi atau setup dapat memiliki lebih dari satu kategori atau bahkan dapat berubah dari waktu ke waktu tergantung pada kebutuhan dan metodelogi pengembangan. (Yaghmour, 2008)
26
2.3.2.4.1 Linked Setup Pada konfigurasi linked setup, target (perangkat yang akan dijadikan sistem embedded) dan host (perangkat yang digunakan untuk mengembangkan sistem embedded) secara permanen dihubungkan bersama menggunakan kabel fisik. Hal utama dari konfigurasi ini adalah tidak adanya hardware storage, karena transfer langsung dilakukan antara target dan host yang dilakukan melalui link tersebut. Konfigurasi dari linked setup dapat dilihat pada gambar 2.14. Host memiliki cross-platform development environment, yaitu suatu software pengembangan yang memerlukan compiler, linker, interpreter, intergrated development environmet (IDE) dan beberapa tools lainnya. Tools sistem embedded dapat diperoleh dengan mengunduh source code yang tersedia dari internet dan membangunnya sendiri, atau bisa juga mendapatkan versi binary yang sudah dikompile dari orang lain, perusahaan atau project. Sedangkan, target memiliki bootloader, functional kernel dan root filesystem.
Host
Target
* Cross-platform development environment
* Bootloader * Kernel * Root filesystem
Gambar 2.14 Konfigurasi linked setup Sumber: Yaghmour, 2008
Linked setup berupa link fisik adalah link yang umum digunakan untuk keperluan debugging. Link lain yang biasanya digunakan untuk debugging adalah link ethernet dan RS232. Link ethernet digunakan untuk mengunduh kernel, root filesystem, dan beberapa tools lainnya. Keunggulan penggunaan ethernet adalah kecepatan transfer data antara host dan target. Sedangkan, link RS232 digunakan untuk proses debugging.
27
2.3.2.4.2 Removable Storage Setup Dalam removable setup, tidak ada link fisik yang langsung terhubung antara host dan target, namun dihubungkan oleh storage device. Perangkat storage ditulis oleh host, selanjutnya ditransfer ke target dan digunakan untuk menjalankan perangkat. Proses transfer dari host ke target pada removable setup ditunjukkan pada gambar 2.15.
Host * Cross-platform development environment
Target
* Bootloader * Secondary Bootloader * Kernel * Root filesystem
Gambar 2.15 Konfigurasi removable storage setup Sumber: Yaghmour, 2008
Sama halnya dengan linked setup, host memiliki cross-platform development environment dan target hanya memiliki sebuah bootloader. Sedangkan, komponen lainnya tersimpan pada perangkat removable storage, seperti perangkat CompactFlash, IDE, MMC card, atau beberapa jenis perangkat lainnya yang dapat dilepas (termasuk floppy dan CD/DVD ROM) yang diprogram pada host dan dimuat oleh bootloader yang terdapat pada target. Dalam perkembangan, target memiliki sebuah socket sebagai ganti dari flashchip permanen. Dengan adanya socket, flashchip dapat dengan mudah dimasukkan atau dikeluarkan. Selanjutnya, chip akan diprogram oleh flash programmer pada host dan dimasukkan kedalam socket pada target. Konfigurasi removable setup digunakan untuk menghindari/mengurangi memindahkan perangkat penyimpanan antara target dan host setiap kali perubahan harus dibuat untuk kernel ataupun root filesystem.
28
2.3.2.4.3 Standalone Setup Pada standalone setup, target berupa sistem pengembangan mandiri dan memiliki software yang diperlukan untuk boot, operasi, dan pengembangan software tambahan. Konfigurasi standalone setup tidak memerlukan crossplatform dan transfer program antara target dan host karena semua tools pengembangan terdapat dan berjalan pada lingkungan target. Konfigurasi standalone setup dapat dilihat pada gambar 2.16.
Target * Bootloader * Kernel * Full root filesystem * Native development environment
Gambar 2.16 Konfigurasi standalone setup Sumber: Yaghmour, 2008
2.3.2.5 Konfigurasi Debug Host/Target Pada dasarnya, terdapat tiga jenis interfaces yang digunakan pengembang untuk menghubungkan target dan host untuk proses debug, seperti link serial, interfaces jaringan, dan hardware khusus untuk debug. Setiap interface untuk proses debug memiliki kelebihan dan aplikasi masing-masing. Penggunaan serial link merupakan cara yang paling mudah digunakan untuk proses debug target dari host. Serial link yang digunakan, yaitu konektor DB-9. Walaupun mudah digunakan, serial link juga memilki kekurangan, yaitu kecepatan yang terbatas dan tidak memungkinkan melakukan debug sistem dan berinteraksi dengan sistem menggunakan terminal emulator secara bersamaan jika hanya terdapat satu port serial pada sistem embedded. Penggunaan networking interfaces, seperti TCP/IP over ethernet, menyediakan bandwitdh yang jauh lebih tinggi dibandingkan serial link. Selain itu, target dan host dapat menggunakan banyak jaringan koneksi melalui link jaringan fisik yang sama. Dengan cara ini, interaksi antara host dan target dapat
29
terus berlangsung selama melakukan proses debug aplikasi pada target. Proses debug juga dapat dilakukan pada network link saat melakukan interaksi dengan target menggunakan terminal emulator pada port serial sistem embedded. Namun, penggunaan networking interfaces terkadang dapat menyebabkan adanya networking stack (jaringan yang menumpuk). Networking stack yang terjadi pada kernel Linux menyebabkan proses debug kernel diri sendiri pada networking link tidak dapat dengan mudah dilakukan. Disisi lain, penggunaan interface serial link dan networking interfaces untuk melakukan proses debug membutuhkan beberapa software yang dapat mengenali hardware I/O pada target. Pada beberapa kasus, saat menghubungkan Linux dengan board baru atau saat melakukan debugging kernel, software yang diperlukan tidak ditemukan. Pada kasus ini, perlu menggunakan interface debugging yang menyediakan hardware yang langsung mengontrol software, yaitu dengan menggunakan interface BDM atau JTAG. Interface ini bergantung pada fungsi BDM atau JTAG yang tertanam pada CPU. Kontrol penuh untuk melakukan proses debugging dapat dilakukan dengan menghubungkan debugger khusus (contoh BDI2000) ke JTAG atau pin BDM yang terdapat pada CPU. Penggunaan interface BDM atau JTAG diperlukan untuk mengatasi masalah yang tidak dapat dilakukan oleh serial link ataupun network link terutama jika melakukan porting platform hardware yang baru. Perangkat debugger BDM dan JTAG harus dapat menangani pengembangan standar GNU toolchain dan file binary yang dihasilkan.
2.3.2.6 Tipe Konfigurasi Boot Tipe konfigurasi boot yang dipillih akan berpengaruh terhadap bootloader, konfigurasi, dan tipe software dan hardware yang digunakan pada host. Apabila terdapat konfigurasi boot jaringan, maka host harus menyediakan beberapa jenis layanan jaringan yang ditujukan ke target. Langkah pertama yang perlu dilakukan untuk merancang sistem adalah mengidentifikasi konfigurasi boot yang sering digunakan dan dilanjutkan dengan pengembangan dan produk akhir. Langkah
30
selanjutnya adalah memilih bootloader atau satu set bootloader yang akan melayani berbagai jenis setup boot yang telah diidentifkasikan. CPU yang menggunakan sistem embedded mengambil intsruksi pertama pada alamat preassigned yang ditentukan oleh manufaktur masing-masing. Setiap sistem dibangun menggunakan CPU yang memiliki perangkat penyimpanan pada lokasi tersebut. Umumnya, perangkat penyimpanan yang digunakan adalah ROM atau chips flash. Software pada perangkat penyimpanan bertanggung jawab untuk bootstrapping sistem. Bootstrap pada sebuah sistem embedded Linux mempunyai tiga pengaturan berbeda yaitu, yaitu solid-stage storage media, disk setup, dan network setup. Setiap setup memiliki konfigurasi dan kegunaan yang khusus. 2.3.2.6.1 Solid-State Storage Media Solid-state storage media bertugas untuk memuat bootloader awal, mengkonfigurasi parameter, kernel dan root filesystem, sesuai kemampuan yang disediakan oleh bootloader. Konfigurasi bootloader dikategorikan menjadi empat kriteria, yaitu penggunaan flash memory, penggunaan RAM, kemudahan dalam upgrade, dan bootup time. Gambar 2.17 menunjukkan tata ruang yang paling umum dari solid-state storage media. Boot parameters
Kernel
Root filesystem
Bootloader
Gambar 2.17 Tata ruang perangkat solid-state storage Sumber: Yaghmour, 2008
Media penyimpanan boot pada awalnya diprogram menggunakan perangkat programmer atau CPU yang terintegrasi dengan kemampuan debug seperti JTAG atau BDM. Jika perangkat tersebut menggunakan subsistem Linux Memory technology for device (MTD), maka perangkat dapat diprogram berkalikali. Sistem juga memiliki software sehingga pengguna dapat memperbarui perangkat penyimpanan.
31
2.3.2.6.2 Disk Kernel dan root filesystem pada embedded Linux berada pada perangkat disk. Inisialisasi bootloader memuat bootloader skunder dari disk atau menjalankan kernel langsung dari disk. Salah satu filesystem pada disk kemudian digunakan sebagai root filesystem. Konfigurasi ini dapat digunakan jika melakukan pengembangan sistem embedded menggunakan harddisk ataupun compactflash. 2.3.2.6.3 Jaringan Dalam konfigurasi jaringan, baik root filesystem ataupun kernel dan root filesystem dapat dimuat melalui link. Dalam kasus pertama, kernel berada pada solid state storage media atau disk, dan root filesystem di-mount melalui NFS. Pada kasus kedua, hanya bootloader yang berada pada media penyimpanan lokal. Kernel kemudian diunduh melalui TFTP dan root filesystem di-mount melalui NFS. Untuk menemukan server TFTP secara otomastis, bootloader juga menggunakan BOOT/DHCP. Dalam kasus ini target tidak memerlukan pengaturan IP addreses untuk menemukan TFTP server atau NFS server.
2.3.2.7 Distribusi Open Source Embedded Linux Prinsip dasar distribusi open source, yaitu membangun kernel dan kumpulan paket menurut spesifikasi ke dalam kumpulan binary yang sesuai untuk pengembangan. Beberapa distribusi open source embedded linux yang sering digunakan, antara lain (Sally, 2010): 1. Linux Target Image Builder (LTIB) LTIB merupakan user interface yang digunakan untuk mengkonfigurasi kernel.
LTIB
bertugas
untuk
memverifikasi
lingkungan
dan
memberitahukan tindakan korektif sebelum memulai proses pembangunan sistem. LTIB merupakan sistem berbasis RPM, yang menggunakan sumber file RPM untuk membangun dan mengintegrasikan paket kedalam LTIB.
32
2. Buildroot Buildroot adalah sebuah projek yang dapat membantu untuk membangun dan mengkonfigurasi lingkungan pengembangan, seperti kernel, root filesystem dan toolchains dengan menggunakan uClibc, BusyBox, C Library, dan tools dasar root filesystem. 3. OpenEmbedded Projek OpenEmbedded merupakan infrastruktur pembangunan dari Sharp Zaurus yang berjalan pada komputer dengan sistem operasi Linux. OpenEmbedded menggunakan sistem Bitbake untuk menggambarkan patch paket dan hubungannya. Sistem Bitbake merupakan infrastuktur pembangunan untuk metadata yang disediakan oleh OpenEmbedded. OpenEmbedded bertugas membangun/mengkonfigurasi kernel, toolchain, dan rootfilesystem. Software Bitbake memiliki recipes yang digunakan untuk mengunduh dan cross-build paket yang digunakan untuk membangun
perangkat
lunak
lainnya.
Software
OpenEmbedded
membangun beberapa komponen, antara lain: a.
Distribution Distribution berisi daftar paket untuk root filesystem dan kernel yang akan digunakan untuk membangun.
Distribution
juga berisi
pengaturan untuk root filesystem. b.
Machine Machine menggambarkan data distribusi hardware yang berjalan, contohnya ukuran partisi flash. Machine juga memiliki sekumpulan paket yang saling terkait.
c.
Paket recipes Bagian metadata dari OpenEmbedded adalah library dari bitbake recipes. Sebuah recipes digunakan untuk menentukan tempat mengunduh paket, patch yang digunakan, serta waktu dan cara instalasi paket ke dalam root filesystem target.
33
2.3.2.8 Keunggulan Linux Linux memiliki beberapa keunggulan dibandingkan sistem operasi yang lain, sehingga Linux dipilih dan digunakan sebagai embedded OS. Berikut beberapa keunggulan yang dimiliki Linux. (Yaghmour, 2008) 2.3.2.8.1 Kualitas dan kehandalan kode Kualitas dan kehandalan adalah ukuran subjektif dari tingkat kepastian dalam kode yang meliputi kernel dan aplikasi yang diberikan oleh distribusi. Terdapat beberapa jenis kode yang secara umum dapat dijelaskan oleh programmer, diantaranya (Yaghmour, 2008): 1.
Kemudahan memperbaiki Karena sifatnya open source, maka kode dapat dibaca dan diperbaiki dengan mudah oleh siapa saja yang telah memahami konsep embedded Linux.
2.
Extensibility Kemudahan dalam menambahkan fitur pada suatu kode.
3.
Configurability Dapat memilih fitur kode yang akan menjadi bagian dari aplikasi akhir.
Karakteristik yang diharapkan dari kode yang handal, sebagai berikut. 1.
Predictability Setelah program dijalankan, perilaku program seharusnya sesuai dengan urutan kerja dan harus pasti. Setiap mesin internal akan selalu menerapkan sifat kemungkinan dalam fungsinya, termasuk menangani adanya error.
2.
Error recovery Saat terjadi masalah, program diharapkan dapat mengambil langkahlangkah untuk memulihkannya dari masalah dan memberikan peringatan kepada pihak yang berwenang, biasanya pihak yang dimaksud adalah sistem administrator yang memberikan pesan diagnosa.
3.
Longevity Program diharapkan dapat berjalan dalam jangka waktu yang lama dan akan memelihara integritasnya tanpa melihat situasi yang dihadapi.
34
2.3.2.8.2 Ketersediaan kode Ketersediaan kode berkaitan dengan fakta bahwa source code Linux dan semua perangkat tersedia tanpa pembatasan akses. Komponen linux yang paling penting (termasuk kernel) didistribusikan dibawah GNU General Public License (GPL). Beberapa lisensi, contohnya lisensi BSD, mengijinkan redistribusi binari tanpa kode sumber asli atau redistribusi binari berdasarkan sumber yang diubah tanpa memerlukan publikasi modifikasi. 2.3.2.8.3 Perangkat keras yang mendukung Sejumlah driver disediakan oleh komunitas Linux, diperlukan keyakinan untuk menggunakan komponen hardware tanpa takut suatu hari nanti vendor bersangkutan akan menghentikan produknya. Perangkat keras yang mendukung juga berarti bahwa Linux berjalan pada lusinan arsitektur hardware yang berbeda. 2.3.2.8.4 Ketersediaan tools Berbagai tools yang tersedia untuk sistem Linux membuat Linux sangat fleksibel, karena tools yang tersedia untuk Linux dapat dibuat oleh siapa saja, disebarluaskan melalui media internet, dan dapat dengan mudah diunduh dan digunakan pada sistem Linux yang dimiliki. 2.3.2.8.5 Dukungan masyarakat Dukungan masyarakat adalah salah satu kekuatan terbesar Linux. Dukungan masyarakat dapat dilihat pada daftar pengembangan dan mailing list yang disediakan untuk komunitas pengguna Linux. Tingkat keahlian pada komunitas ini sering jauh melebihi pengguna OS lain. 2.3.2.8.6 Lisensi Lisensi memungkinkan programer untuk dapat melakukan hal yang diimpikan dengan software yang memiliki hak paten dengan menggunakan Linux. Pada intinya, dapat menggunakan, memodifikasi dan mendistribusikan ulang software dengan pembatasan dari Linux (GPL, LGPL, BSD, MPL, dll) dan tidak berarti kehilangan atas hak cipta dan paten yang terkandung dalam software yang dihasilkan.
35
2.3.2.8.7 Kebebasan vendor Kebebasan vendor, berarti tidak perlu bergantung pada setiap vendor tunggal untuk mendapatkan atau menggunakan Linux. Namun, beberapa vendor menyediakan software tambahan yang tidak open source dan kemungkinan tidak kompatibel dengan layanan untuk jenis software dari vendor lainnya. 2.3.2.8.8 Biaya Biaya Linux adalah hasil dari lisensi open source dan berbeda dengan embedded OS umumnya. Ada tiga komponen biaya software dalam membangun sistem embedded umumnya, yaitu setup pengembangan awal yang meliputi lisensi pengembangan dari vendor, biaya perangkat tambahan, dan biaya royalti jika seseorang menyebarkan sistem vendor bersangkutan.
2.3.2.9 Metodologi Desain dan Implementasi Merancang dan menerapkan sistem embedded Linux dapat dilakukan dengan cara yang sudah ditetapkan. Adapun langkah-langkah untuk membangun sebuah embedded Linux adalah sebagai berikut. 2.3.2.9.1 Membuat target sistem Linux Target
sistem
menggabungkan
Linux
komponen
dibuat
sistem
dengan
yang
mengkonfigurasikan
sesuai
secara
dan
bersama-sama.
Pemrograman dan pengembangan adalah subjek yang terpisah. Ada empat langkah utama untuk menciptakan sebuah sistem target Linux, antara lain (Yaghmour, 2008): 1.
Menentukan komponen sistem.
2.
Konfigurasi dan membangun kernel.
3.
Membangun root filesystem.
4.
Mengatur software dan konfigurasi boot.
2.3.2.9.2 Setting-Up dan penggunaan alat pengembangan Pengembangan perangkat lunak untuk sistem embedded berbeda dengan pengembangan perangkat lunak untuk lingkungan workstation atau server. Ada dua aspek untuk setup ini, yaitu pengembangan dan debugging. Tahap awal,
36
melakukan konfigurasi host/target. Pada tahap ini, pengembang mengembangkan software pada host dan diunduh sampai ke target untuk pengujian. Sebelum pengujian kode pada sistem target dilakukan, perlu ditetapkan koneksi host/target. Hal ini dilakukan agar pengembang dapat berinteraksi dengan sistem target untuk memperoleh verifikasi apakah aplikasi yang dikembangkan berfungsi sesuai dengan yang diinginkan. Aplikasi biasanya tidak dapat dijalankan pada hardware yang kosong, hardware target harus sudah memiliki fungsional sistem embedded Linux. Setup memerlukan kompilasi aplikasi target dan libraries. Hal ini dicapai dengan mengkonfigurasi atau membangun berbagai compiler dan utilitas biner untuk pembangunan silang. Utilitas dapat membangun aplikasi untuk target dan pembangunan setup target digunakan untuk pengembangan lebih lanjut. Untuk mempermudah pengembangan setup target dapat digunakan Integrated Development Environment (IDE) dan tools lain, seperti CVS, Subversion dan Git. Konfigurasi/setup pengembangan selalu diperlukan untuk debugging dan memuat software. 2.3.2.9.3 Pengembangan embedded Linux Salah satu keuntungan utama menggunakan Linux sebagai embedded OS adalah kode yang dikembangkan akan berjalan identik pada embedded target dan pada workstation. Kode workstation Linux dapat digunakan untuk membangun dan menjalankan sistem yang sama pada sistem embedded Linux. 2.3.2.9.4 Jaringan Jaringan memungkinkan sistem embedded untuk berinteraksi dan dapat diakses oleh dunia luar. Dalam lingkungan embedded Linux, perlu memilih hardware jaringan, protokol jaringan, dan layanan yang memberikan penawaran biaya untuk keamanan jaringan. Hal ini meliputi konfigurasi dan penggunaan layanan jaringan seperti HTTP, Telnet, SSH, dan SNMP. Salah satu aspek yang menarik dalam sistem networkenabled embedded adalah kemungkinan remote update, yaitu fasilitas untuk memperbarui sistem melalui link jaringan tanpa interferensi.
37
2.4
Platform Jaringan Sensor Nirkabel Platform jaringan sensor nirkabel merupakan suatu perangkat komunikasi
yang dapat digunakan untuk melakukan transfer data tanpa infrastuktur komunikasi, menggunakan daya rendah, dan terdiri dari sensor node yang dapat saling berkomunikasi. Saat ini terdapat banyak platform JSN yang dikembangkan, beberapa diantaranya, yaitu IMote2, MICAz, TelosB, Iris dan masih banyak lagi. Berikut ini akan dijelaskan mengenai masing-masing platform JSN tersebut. 2.4.1 IntelMote Generasi Kedua (IMote2) IntelMote2 (IMote2) merupakan salah satu platform JSN generasi kedua yang mempunyai kemampuan multimedia. IMote2 terdiri dari radio board, scalar sensor board, multimedia sensor board, battery board, dan interface board. Perangkat ini diciptakan menggunakan XScale PXA271 CPU berdaya rendah dan juga terintegrasi dengan standar radio 802.15.4/zigbee. Desainnya sesuai dengan interface konektor untuk penambahan board disisi atas dan bawah. Konektor atas menyediakan satu set standar I/O sinyal untuk board standar. Konektor bawah menyediakan interface tambahan dengan kecepatan tinggi untuk aplikasi I/O tertentu. Board baterai berfungsi untuk menyalurkan daya sistem yang dapat dihubungkan ke kedua sisi. Board IMote2 ditunjukkan gambar 2.18. (www.xbow.com)
Gambar 2.18 Board IMote2
2.4.1.1 Radio board (IPR2400) Radio board (IPR2400) merupakan node platform JSN generasi kedua berkecepatan tinggi dan mampu melakukan pemrosesan sinyal untuk aplikasi visual. Radio board didesain menggunakan Processor Intel XScale PXA271 dan
38
beroperasi pada level tegangan 0,85 volt dengan frekuensi kerja rendah (13-416 MHz) sehingga mempunyai kemampuan bekerja pada daya rendah. Board ini mempunyai memori SDRAM 32 MB dan flash memori 32 MB. Komunikasi nirkabelnya menggunakan radio 802.15.4 (CC2420) dengan antena yang sudah terintegrasi pada board-nya. Selain itu, CC2420 dapat mendukung data rate 250 kbps dengan 16 channel pada pita frekuensi 2,4 GHz. Pada IO-nya terdapat, GPIO, 2x SPI, 3x UART, PC, SDIO, USB host, USB Client, Speaker, Camera. Board ini didesain untuk sistem operasi Intel Platform X, SOS, dan TinyOS. Radio board platform IMote2 ditunjukkan pada gambar 2.19. 802.15.4 Radio
32 MB Flash
Xscale CPU Core
32 MB Flash
IO
256kB SRAM
GPIO 2x SPI 3x UART PC SDIO USB host USB Client AC 97 Camera PS
Xscale DSP Power Management
Power Management
Gambar 2.19 IMote2 radio board
2.4.1.2 Scalar sensor board (ITS400) Scalar sensor board terdiri dari sensor temperature, humadity, dan 3 buah ADC. Sensor ini berfungsi sebagai sensor penginderaan, baik terhadap suhu dan kelembaban. Gambar 2.20 menunjukkan scalar sensor board pada platform IMote2.
Gambar 2.20 Scalar sensor board
39
2.4.1.3 Multimedia sensor board (IMB400) Multimedia Sensor board (IMB400) adalah board yang terdiri dari miniatur speaker dan line output, color image dan video camerachip, OmniVision OV7670, audio capture dan playback CODEC, WM8940, Onboard Microphone and Line Input, dan sensor gerak Pasif Infra Red (PIR). Board ini berfungsi untuk mengcapture citra/gambar. Gambar 2.21 menunjukkan Multimedia Sensor board yang terdapat pada platform IMote2.
Gambar 2.21 Multimedia sensor board
2.4.1.4 Interface board (IIB400) Interface board (IIB400) adalah board yang berfungsi sebagai antarmuka untuk transfer, debug, atau flashing pada radio board dari suatu komputer host melalui kabel mini USB. Gambar 2.22 menunjukkan interface board yang terdapat pada platform IMote2.
Gambar 2.22 Interface board
2.4.1.5 Battery board Battery board merupakan board yang terdiri dari 3 baterai AAA dan berfungsi sebagai catu daya dari platform ini. Gambar 2.23 menunjukkan battery board pada platform IMote2.
40
Gambar 2.23 Battery board
Ada beberapa cara yang dapat digunakan sebagai sumber catu daya, diantaranya: 1. Menggunakan baterai primer Baterai ini biasanya dipasang langsung pada board MEMSIC battery IMote2, baik pada konektor dasar atau tambahan. 2. Menggunakan baterai isi ulang Baterai ini memerlukan konfigurasi board khusus yang terpasang, baik pada konektor dasar atau tambahan. IMote2 ini dilengkapi dengan pengisi daya untuk Li-Ion atau baterai Li-Poly. 3. Menggunakan USB IMote2 digunakan melalui on-boardmini-B USB konektor. Cara ini juga dapat digunakan untuk mengisi baterai isi ulang yang terpasang.
2.4.2 MICAz (MPR2400) MICAz merupakan platform JSN yang menggunakan pita frekuensi 2,4 GHz. Pada radio board-nya,
MICAZ menggunakan mikrokontroler Atmel
Atmega128L yang merupakan mikrokontroler dengan daya rendah. Board MPR2400 ini memiliki memori flash internal, menggunakan standar radio 802.15.4/zigbee dan memiliki hardware security (AES-128). Pada IO-nya, mendukung input analog, digital I/O, I2C, SPI dan UART interfaces. Sedangkan, interface board yang digunakan, yaitu MIB520CA, dimana interface ini dapat digunakan oleh platform JSN lainnya, seperti IRIS. Pada MIB520CA interface board terdapat port USB yang dapat digunakan untuk melakukan pemrograman dan melakukan transmisi data. Radio board MICAz dan MIB520CA interfaces
41
board, masing-masing dapat dilihat pada gambar 2.24 dan 2.25 dibawah ini. (www.xbow.com)
Gambar 2.24 Radio board MICAz
Gambar 2.25 Interface board MIB520CA
2.4.3 IRIS (XM2110CB) IRIS merupakan platform JSN yang menggunakan frekuensi 2,4 GHz dan radio board-nya menggunakan standar radio IEEE 802.15.4. Platform ini dapat digunakan pada luar ruangan dengan jarak maksimum, yaitu 500 meter dalam kondisi
line-of-sight
dan
tanpa
penguat.
Platform
IRIS
menggunakan
mikrokontroler Atmel Atmega1281 yang merupakan mikrokontroler dengan daya rendah dan memiliki flash memori internal. Pada IO-nya, mendukung input analog, digital I/O, I2C, SPI dan UART interfaces. Sedangkan, untuk interface board-nya dapat menggunakan interface board yang sama seperti platform MICAz, yaitu MIB520CA. Platform IRIS dapat dilihat pada gambar 2.26 dibawah ini. (www.Memsic.com)
(a)
(b)
Gambar 2.26 Platform IRIS (a) tampak atas dan (b) tampak bawah
2.4.4
TelosB (TPR2420) Platform JSN TelosB juga menggunakan frekuensi 2,4 GHz, menggunakan
standar radio IEEE 802.15.4 dan memiliki data rate 250 kbps. Platform TelosB ini dikembangkan dan diperkenalkan oleh University of California, Berkeley (UC Barkeley). TelosB menggunakan proccessor yang terintregasi (TI MSP430
42
mikrokontoler) yang meliputi USB programming, PCB antena, sensor interface, memiliki memori flash sebesar 1 MB, serta memiliki data rate 250 kbps. Sebagai catu daya, TelosB menggunakan baterai tipe AA. Platform TelosB dapat dilihat pada gambar 2.27 dibawah ini. (www.xbow.com)
Gambar 2.27 Platform TelosB
2.4.5 Perbandingan Spesifikasi Platform Jaringan Sensor Nirkabel Setiap platform JSN memiliki spesifikasi yang berbeda antara satu platform dengan platform lainnya, baik itu dari microprosessor yang digunakan, besarnya memori, besarnya RAM dan masih banyak lagi. Pada tabel 2.3 dibawah ini menunjukkan beberapa perbedaan spesifikasi yang dimiliki oleh platform IMote2, MICAz, IRIS, dan TelosB. Tabel 2.3 Perbandingan spesifikasi platform jaringan sensor nirkabel Microprocessor Data Rate (kbps) Program Flash (bytes) RAM (bytes) Nonvolatile storage (bytes) Size (mm) Battery
2.5
IMote2 Xscale PXA271 250
MICAz ATmega128L 250
IRIS ATmega1281 250
TelosB TI MSP430 250
32 M
128 K
128 K
48 K
4K
8K
10 K
512 K
512 K
1024 K
58x32x7 2 x AA
58x32x7 2 x AA
65x31x6 2 x AA
256 K + 32 M external 32 M (program flash) 48x36x7 3x AAA
Pengertian Tegangan, Arus dan Daya
2.5.1 Pengertian Tegangan Tegangan atau disebut juga beda potensial dan dalam bahasa Inggris disebut voltage adalah kerja yang dilakukan untuk menggerakkan satu muatan (sebesar satu coulomb) pada elemen atau komponen dari satu terminal/kutub ke
43
terminal/kutub lainnya, atau pada kedua terminal/kutub akan mempunyai beda potensial jika menggerakkan/memindahkan muatan sebesar satu coulomb dari satu terminal ke terminal lainnya. Keterkaitan antara kerja yang dilakukan merupakan energi yang dikeluarkan, sehingga pengertian diatas dapat dipersingkat bahwa tegangan adalah perubahan energi per satuan muatan. Dalam bentuk diferensial, tegangan dapat ditulis seperti persamaan 2.1 berikut. (Sudirham, 2010)
𝑣=
𝑑𝑤 𝑑𝑞
........................................................... (2.1)
Keterangan:
𝑣 = tegangan, satuannya volt. 𝑑𝑤 = perubahan energi. 𝑑𝑞 = jumlah muatan.
2.5.2 Pengertian Arus Arus merupakan perubahan muatan terhadap waktu atau muatan yang mengalir dalam satuan waktu dengan simbol i, atau dengan kata lain arus adalah muatan yang bergerak. Dalam bentuk differensial, arus dapat ditulis seperti persamaan 2.2 berikut. (Sudirham, 2010)
𝑖=
𝑑𝑞 𝑑𝑡
............................................................. (2.2)
Keterangan:
𝑖 = arus, satuannya ampere. 𝑑𝑡 = waktu.
Dalam teori rangkaian, arus merupakan pergerakan muatan positif. Ketika terjadi beda potensial pada suatu elemen atau komponen, maka akan muncul arus, dimana arah arus positif mengalir dari potensial tinggi ke potensial rendah dan arah arus negatif mengalir sebaliknya.
44
Adapun macam-macam arus, dapat dijelaskan sebagai berikut. 1. Arus searah (Direct Current/DC) Arus DC adalah arus yang mempunyai nilai tetap atau konstan terhadap satuan waktu. Contoh grafik arus searah dapat dilihat pada gambar 2.28 dibawah.
Gambar 2.28 Contoh grafik arus searah
2. Arus bolak-balik (Alternating Current/AC) Arus AC adalah arus yang mempunyai nilai yang berubah terhadap satuan waktu dengan karakteristik akan selalu berulang untuk perioda waktu tertentu (mempunyai perioda waktu: T). Contoh grafik arus bolak-balik dapat dilihat pada gambar 2.29 dibawah.
Gambar 2.29 Contoh grafik arus bolak-balik
2.5.3 Pengertian Daya Daya dinyatakan dengan simbol p, didefinisikan sebagai laju perubahan energi. Secara matematis daya dapat dilihat pada persamaan 2.3 berikut. (Sudirham, 2010) 𝑑𝑤
𝑑𝑤
𝑑𝑞
𝑝 = ( 𝑑𝑞 ) = ( 𝑑𝑞 ) ( 𝑑𝑡 ) = 𝑣𝑖 ........................... (2.3) Keterangan:
𝑝 = daya, satuannya watt.
45
2.6
Pengertian Received Signal Strength Indicator (RSSI) Received signal strength indicator (RSSI) merupakan indikator yang
digunakan untuk mengetahui kuat sinyal yang diterima oleh suatu perangkat nirkabel. Pada platform IMote2, chipshet CC2420 yang digunakan sudah mempunyai built-in indikator RSSI. Pada chipshet CC2420 nilai RSSI dibaca dalam bentuk hexadesimal, yang selanjutnya dikonversikan ke dalam bentuk dBm (decibel per miliwatt). Secara teori, frekuensi chip CC2420 mempunyai nilai RSSI antara -46 dBm dan -100 dBm. (Silva, 2008) Standar nilai RSSI setiap platform berbeda-beda, sesuai dengan chipset yang diproduksi oleh masing-masing vendor. Salah satu contoh perbandingan nilai RSSI antara chipset CC2420, chipset Atheros dan chipset Cisco dapat dilihat pada tabel 2.4. (Bardwell, 2004) Tabel 2.4 Perbandingan standar nilai RSSI pada 3 jenis chipset RSSI (dBm) pada Chipset CC2420
Chipset Atheros
Chipset Cisco
-46 hingga -100
-35 hingga -95
-10 hingga -96
Pada tabel 2.4 diatas, terlihat rentang nilai RSSI dari masing-masing chipset menggunakan tanda negatif (-), dimana, tanda negatif (-) tersebut menyatakan bahwa sinyal yang dikirim lebih kecil dari 1 mW atau dibawah 0 dBm. Dimana, 1 mW sama dengan 0 dBm.