Optimasi Parallax PropellerTM P8X32A Untuk Jaringan Sensor Nirkabel Multihop Ayu Megah Kenanga Sari#1,Taufiqurrahman#2, Wahjoe Tjatur Sesulihatien #3 #
Jurusan Teknik Elektronika, Politeknik Elektronika Negeri Surabaya Kampus ITS Sukolilo, Surabaya 60111, INDONESIA Tel: +62 (31) 594 7280; Fax: +62 (31) 594 6114 1
[email protected] 2
[email protected] 3
[email protected]
Abstrak— Sebuah jaringan sensor nirkabel saat ini
semakin menuntut adanya sebuah perangkat mikroserver dengan ukuran kecil namun memiliki kemampuan yang besar. Ukuran ini berpengaruh terhadap medan yang dimotoring oleh jaringan sensor. Tentunya dengan ukuran yang kecil ini diharapkan mikroserver dapat bekerja secara efisien. Optimasi Parallax PropellerTM P8X32A Untuk Jaringan Sensor Nirkabel Multihop menawarkan sebuah mikrokontroller kecil dengan kemampuan yang besar. Yaitu Parallax PropellerTM P8X32A, yang nantinya akan lebih sering disebut dengan Propeller saja, memiliki delapan inti prosessor (cog) yang dapat bekerja secara individu dalam waktu yang hampir bersamaan (parallel processing / multitasking). Propeller selain dimanfaatkan sebagai mikroserver dalam sebuah jaringan sensor, juga lebih dikembangkan kearah embedded PC. Propeller demo board yang digunakan telah dilengkapi dengan beberapa I/O khusus selain 8 pin I/O bebas. Dengan kelebihannya ini Propeller diharapkan mampu menggantikan PC sebagai media pemproses data, penyimpan data dan visualisasi data.
pemproses data dari semua node sensor dalam sebuah jaringan. Parallax PropellerTM P8X32A adalah sebuah mikrokontroller dengan delapan inti prosessor dalam satu chip berukuran 1 cm x 1 cm yang memiliki kemampuan memproses data secara secara cepat dalam sebuah sistem embedded [5][8]. Kecepatan dalam memproses ini juga didukung dengan kemampuan mengerjakan beberapa pekerjaan dengan waktu yang hampir bersamaan atau yang biasa disebut multitask. Multitask jelas dapat lebih mudah diterapkan dan dilakukan oleh delapan inti prosessor yang disediakan. 2. MEKANISME KERJA SISTEM ”Optimasi Parallax PropellerTM P8X32A Untuk Jaringan Sensor Nirkabel Multihop” ini merupakan pengembangan paralel processing untuk jaringan sensor nirkabel menggunakan mikrokontroller PropellerTM P8X32A.
Kata kunci : Propeller, jaringan sensor nirkabel, parallel processing, multitasking, X-Bee, SD card, VGA. 1. PENDAHULUAN Suatu jaringan sensor terbentuk dari kumpulan node sensor yang sangat banyak dan tersebar tidak beraturan dalam suatu area yang disebut sensor field. Dimana sensor – sensor tersebut akan saling berkomunikasi secara nirkabel. Data-data tiap node sensor selain disimpan secara mandiri pada setiap node juga dikumpulkan dan simpan pada sebuah perangkat khusus yang selain berfungsi sebagai penyimpan juga sebagai alat pemroses data. Umumnya perangkat khusus ini adalah sebuah komputer. Maraknya perangkat keras dengan ukuran kecil namun memiliki kemampuan yang lebih dalam perkembangan teknologi saat ini menarik jika diterapkan pada perangkat
Gambar 1. Rancangan sistem ”Optimasi Parallax PropellerTM P8X32A Untuk Jaringan Sensor Nirkabel Multihop”
Dalam sistem ini PropellerTM P8X32A difungsikan sebagai pengganti PC atau laptop yang umumnya digunakan dalam pemprosesan data pada jaringan sensor nirkabel. Fungsi utama yang ditonjolkan adalah sebagai penyimpan data keseluruhan dari semua node dalam sebuah jaringan sensor dan pemvisualisasian lokasi node pada monitor.
Dan semua proses dari permintaan data ke sebuah jaringan sensor, komunikasi nirkabel, pemprosesan data, penyimpanan data dan pemvisualisasian data dilakukan secara paralel (multitask). Multitask dengan banyak task dapat dilakukan oleh PropellerTM P8X32A, yang memiliki delapan inti (cog) yang masing-masing memiliki prosessor, RAM 512x32 bit (2Kb), 2 counter modul dengan PLL, sebuah video generator, I/O output register, I/O direction register dan beberapa register lain. Sehingga proses keseluruhan dapat dilakukan lebih cepat dan lebih efektif. Pertama PropellerTM P8X32A akan meminta data pada jaringan sensor secara nirkabel dengan mengirimkan karakter “R” kepada sink jaringan sensor. Sink pada jaringan sensor akan merespon balik dengan mengirimkan paket data berisi data dari node-node dalam jaringan sensor.
Gambar 3. Rancangan perangkat keras tambahan pada PropellerTM P8X32A demo board
Adapter SD card berfungsi sebagai penghubung antara PropellerTM P8X32A dengan SD card. Pin SD card yang digunakan adalah DO (data out), DI (data in), CS (chip select), CLK (clock), VDD (sumber tegangan 3,3 V) dan GND/VSS (ground).
Start
Inisialisasi X-Bee, SD card dan VGA pada PropellerTM P8X32A
Membangun GUI pada VGA, menjalankan driver VGA
X-Bee pada PropellerTM P8X32A menerima paket data dari masing-masing node dalam jaringan sensor
X-Bee pada PropellerTM P8X32A meminta data pada jaringan sensor Delay untuk permintaan berikutnya
PropellerTM P8X32A memproses tiap paket data yang diterima
Gambar 4. Hasil jadi adapter SD card PropellerTM P8X32A menampilkan posisi tiaptiap node dalam jaringan sensor pada sebuah monitor VGA
PropellerTM P8X32A menyimpan data hasil pemprosesan pada SD card
Adapter X-Bee Pro berfungsi sebagai penghubung pinpin pada X-Bee Pro dengan pin-pin I/O pada PropellerTM P8X32A demo board. Pin-pin X-Bee yang dihubungkan adalah pin DO (data out), DI (data in), VCC dan GND.
Stop
Gambar 2. Diagram alir sistem secara umum
Data dari node-node ini yang akan diproses oleh PropellerTM P8X32A menjadi data-data sensor yang ada di tiap node dan data posisi dari node. Data-data tiap node ini akan disimpan dalam sebuah media penyimpanan. Dan posisi node akan diinformasikan secara visual. PropellerTM P8X32A demo board yang digunakan belum memiliki built-in adapter SD card dan X-Bee Pro, untuk itu diperlukan tambahan perangkat keras untuk dapat mengakses SD card dan X-Bee Pro. Adapter SD card dan X-Bee Pro ini kemudian dihubungkan dengan PropellerTM P8X32A demo board melalui pin I/O yang disediakan.
Gambar 5. (a) Hasil jadi adapter X-Bee Pro; (b) Adapter dengan X-Bee Pro yang sudah terpasang
Protokol data yang saling dikirimkan secara nirkabel dalam sistim ini dirancang dan dibuat dengan mode API. Mode API ini mengubah nilai data sebenarnya menjadi bentuk hexa 2 byte untuk setiap nilai ASCII per karakter. Mode API mempunyai beberapa kelebihan dibanding dengan mode transparent (AT Command). Yaitu, keterangan alamat tujuan atau alamat pengirim ada menjadi satu dalam paket data. Selain itu terdapat checksum untuk
memeriksa kebenaran data yang diterima. Nilai checksum ini merupakan nilai dua digit terakhir dari hasil pengurangan $FF dengan jumlah dari nilai byte ID API hingga byte data terakhir. Selain itu dengan mode API paket data akan dienkripsikan dengan algoritma AES 128 secara otomatis saat dikirimkan dan didekripsikan juga dengan algoritma yang sama secara otomatis saat paket data diterima. Ini dapat dilakukan dengan mengaktifkan register EE pada XBee Pro dan mengatur nilai register KY dengan nilai yang sama untuk semua device yang berkomunikasi. Paket data yang dikirimkan PropellerTM P8X32A untuk meminta data pada jaringan sensor hanya berisi karakter “R”. Berikut adalah format protokol paket data dari PropellerTM P8X32A ke sink jaringan sensor, a
b
c
Frame API
“R”
Frame API
Paket data ini dikirimkan secara broadcast ke semua node yang berada dalam jaringan sensor. Namun hanya sink-lah yang mampu mengenali paket permintaan data ini dan kemudian memberikan respon balik kepada PropellerTM P8X32A. Sink yang menerima paket berisi permintaan data ini kemudian akan mengirimkan data terbaru dari node-node sensor yang dimilikinya oleh jaringan beserta info posisi node tersebut. Berikut adalah format protokol paket data dari sink ke PropellerTM P8X32A yang berisi data sensor dan informasi posisi, k
l
m
Frame API
Data
Frame API
Komunikasi nirkabel yang dirancang adalah komunikasi dua arah antara PropellerTM P8X32A dengan sink pada jaringan sensor. PropellerTM P8X32A akan meminta data kepada setiap node pada jaringan sensor (broadcast).
Gambar 6. Konfigurasi hardware untuk pengujian komunikasi nirkabel
Pada pengujian, setiap karakter yang dituliskan pada textbox X-CTU berhasil dikembalikkan oleh X-Bee Pro pada Propeller demo board. Namun saat nilai PAN ID pada salah satu X-Bee Pro diubah, tidak ada karakter yang dikembalikkan saat dituliskan kata “tes!”. Begitu juga saat nilai PAN ID kembali sama namun channel yang diubah.
Gambar 7. Hasil loop back yang berhasil
Gambar 8. Hasil loop back yang gagal
Nilai prosentase sebesar 100% didapatkan untuk semua nilai baudrate yang diujikan dengan jarak ± 3 Meter, ± 6 Meter dan ± 9 Meter. Pada jarak ± 10 Meter di nilai baudrate 115200, telah hilang sebanyak 9 data (0,9%). Delay 100 ms yang diberikan tidak mampu menekan jumlah data yang hilang.
3. HASIL PENGUJIAN SISTEM A. Pengujian Adapter X-Bee Pro Dan Komunikasi Nirkabel Pengujian ini dilakukan pada adapter X-Bee Pro. Pengujian dilakukan untuk mengetahui kinerja adapter XBee Pro yang telah dirancang dan dibuat. Pada pengujian ini diperlukan sebuah X-Bee Pro USB adapter sebagai simulasi node jaringan sensor, sehingga dapat diketahui kemampuan komunikasi nirkabel antara Propeller dengan node jaringan sensor. Gambar 9. Grafik hubungan prosentase penerimaan data X-Bee Pro dengan jarak berdasarkan nilai baudrate
Dari grafik dapat diketahui bahwa X-Bee Pro mampu bekerja di semua nilai baudrate yang disediakan. X-Bee Pro memberikan delapan pilihan baudrate, yaitu 1200, 2400,
4800, 9600, 19200, 38400, 57600 dan 115200. Dalam pengujian ini hanya menggunakan baudrate antara 9600 hingga 115200, yaitu nilai baudrate yang umumnya digunakan untuk komunikasi data. Untuk jarak yang jauh lebih baik menggunakan repeater untuk meminimalisir data yang hilang, terutama untuk baudrate tinggi.
pengirim
penerima
Gambar 13. Hasil penerimaan paket API dalam modus non API
Gambar 10. Konfigurasi hardware untuk pengujian pengiriman dan penerimaan paket data modus API
Dalam modus API data sebenarnya yang akan dikirim akan ditambahi dengan informasi panjang data, alamat penerima, jenis data dan checking error. Data dan informasi-informasi itu disusun dalam satu paket data. Demikian juga pada paket data yang diterima, jika diterima dalam modus API maka akan ada informasi pengirim data, level RSSI saat transmisi, jenis data dan checking error. Hal ini dapat dilihat saat pengujian pengiriman paket data dalam modus API namun pada sisi penerima tidak dalam modus API. Maka hanya ada isi dari data tanpa ada informasi tambahan. Gambar 4.13.
Pengiriman secara broadcast adalah pengiriman data untuk semua alamat yang ada dalam satu jaringan. Sedangkan pengiriman secara eksplisit adalah pengiriman hanya untuk alamat yang disebutkan. Untuk mengenkripsi data dengan alasan keamanan pada komunikasi nirkabel dapat memanfaatkan fitur bawaan dari X-Bee Pro. Yaitu dengan memberikan nilai 1 pada register EE (AES Encryption Enable). Dan menentukan nilai KY (AES Encryption Key). Saat dua X-Bee Pro yang sama-sama mempunyai nilai EE=1 berkomunikasi. Data yang diterima sama sekali tidak berbeda dengan komunikasi dua X-Bee Pro dengan EE=0. Namun saat kedua X-Bee Pro yang berkomunikasi memiliki nilai EE yang berbeda, data tidak dapat diterima.
pengirim
penerima
Gambar 14. Hasil pengujian untuk nilai EE=1 dan nilai KY yang sama pada pengirim dan penerima
pengirim
penerima
Gambar 11. Hasil pengujian untuk alamat broadcast
Data yang dikirim
Data yang diterima Gambar 12. Hasil pengiriman data dari X-Bee Pro USB
pengirim pengirim
penerima penerima
Gambar 15. Hasil pengujian untuk nilai EE=1 pada pengirim dan EE=0 pada penerima
Ini berarti harus ada kesepakatan antara dua perangkat yang akan berkomunikasi nirkabel, apakah data dienkripsi atau tidak. Jika data yang dikirim adalah data yang telah dienkripsi, maka pada sisi penerima dibutuhkan pendekripsi untuk menerjemahkan data. Maka semua perangkat yang berkomunikasi harus memiliki nilai EE yang sama. Enkripsi dan dekripsi ini bersifat tidak terlihat. Data yang diterima dan ditampilkan pada X-CTU adalah data hasil dekripsi, sehingga tampak seperti data tanpa enkripsi.
B.
Pengujian Adapter SD Card Dan Mekanisme Penyimpanan Data Pengujian terhadap kinerja adapter SD card bertujuan untuk mengetahui apakah adapter mampu membuat SD card terdeksi oleh mikrokontroller Propeller. Selain itu juga dilakukan pengujian algoritma terhadap mekanisme penyimpanan data.
Pada gambar 18., terlihat bahwa ketika data selesai dituliskan maka program sd.spin akan langsung menampilkan hasil pembagian data dengan pemisah tanda koma “,” dan spasi. Hasil pembagian inilah yang akan dituliskan pada SD card.
Gambar 16. Konfigurasi pengujian
Dari hasil pengujian, yang terlihat pada Parallax Serial terminal (Gambar 17.) bahwa SD card berhasil terdeteksi. Saat SD card berhasil terdeteksi ini, program tes.spin otomatis melanjutkan ke pengujian kecepatan baca dan tulis pada SD card yang digunakan. Hasil kecepatan baca dan tulis ini bergantung pada nilai kapasitas SD card yang digunakan. Nilai kapasitas SD card yang digunakan pada pengujian ini sebesar 2 Gb, dan nilai kecepatan baca berkisar antara 1842 ms hingga 2301 ms untuk berbagai format. Dan nilai kecepatan tulis berkisar antara 2091 ms hingga 2481 ms untuk berbagai format.
Gambar 18. Tampilan pada Parallax Serial terminal
Keterangan “ud” di bawah hasil pembagian data adalah indikator bahwa data telah berhasil dituliskan pada SD card. Hasil pembagian data ini akan disimpan dalam sebuah file .txt bernamaWSN. Penentuan nama file ini ada dalam program sd.spin.
Gambar 19. Data pada WSN.txt
WSN.txt ini dapat dilihat melalui program Ms. Exel dengan cara import data (get external data from text). Pada Ms. Exel ini data dapat lebih mudah diamati, dianalisa maupun diolah lebih lanjut.
Gambar 20. Hasil import data pada Ms. Exel
C.
Gambar 17. Hasil pengujian kecepatan baca dan tulis SD card
Pengujian Visualisasi Pada Monitor VGA Pengujian ini bertujuan untuk mengetahui hasil dari algoritma penggambaran area lingkup jaringan sensor yang berbentuk lingkaran. Penggambaran area lingkup jaringan sensor berhasil dilakukan pada monitor dengan ukuran 800 x 600 pixel. Pada ukuran resolusi ini akan dihasilkan sebuah tampilan monitor dengan ukuran 100 x 50 karakter. VGA driver yang digunakan juga memberikan kemudahan dalam pewarnaan latar belakang dan warna dari
karakter. Pada pengujian ini menggunakan orchid theme, yaitu warna putih pada karakter dan ungu pada latar belakang (white on purple background).
3 4 5 6 7
Gambar 21. Hasil pengujian pada monitor VGA
Mouse cursor yang dihasilkan telah berhasil mempresentasikan posisi dari mouse dan mampu bergerak mengikuti pergerakan mouse. D.
Pengujian Paralel Processing pada Propeller Bertujuan untuk mengetahui kemampuan Propeller melakukan parallel processing. Dan untuk mengetahui nilai execution time dalam melakukan tugas berdasarkan perhitungan counter system. Dengan memberikan perintah time:= -cnt pada awal program untuk mengambil nilai counter system di awal. Dan perintah time+=cnt-544 di akhir program untuk mengetahui jumlah counter system yang dibutuhkan untuk mengeksekusi program dari awal hingga akhir. Nilai counter system ini yang nantinya digunakan untuk menghitung execution time yang dibutuhkan untuk menjalankan program. Nilai execution time di dapat dari persamaan berikut
8
permintaan data pertama ke permintaan berikutnya (ada delay 30 detik) dari data masuk sampai parsing data mounting sd card dari parsing hingga ditulis ke sd card vga dari konfigurasi sampai bikin gui dari parsing sampai tampilan k monitor Integrasi keseluruhan dengan data sumber simulasi
563304736
7.041309
11905072
0.148813
1399808
0.017498
1391200
0.01739
240163216
3.00204
818664634
10.23331
Program yang bekerja secara seri akan melakukan tugas secara berurutan. Hanya mengerjakan satu tugas dalam satu waktu. Sedang program yang bekerja secara parallel akan melakukan beberapa tugas dalam waktu yang hampir bersamaan. Untuk membandingkan kecepatan waktu dalam memproses antara pemprosesan secara parallel dengan seri adalah dengan menjumlahkan hasil waktu dari no 1 hingga 7 (kecuali no 2) untuk hasil pemprosesan secara seri dan membandingkannya dengan no 8 yaitu hasil pemprosesan secara parallel. Seri = 6.717341 + 7.041309 + 0.148813 + 0.017498 + 0.01739 + 3.00204 = 16,9286428 s Parallel = 10,23331 s
Xtal yang digunakan sebesar 5 MHz dengan pengali 16 (sub bab 2.3.1), akan didapatkan frekuensi sebesar 80 MHz. Maka,
Table 1. Nilai execution time untuk tiap task
No 1
2
Task dari konfigurasi hingga mengirimkan permintaan data pertama kali dari pengiriman
Counter system 537387280
Execution time (s) 6.717341
1894782272
23.68478
Terbukti bahwa parallel processing lebih cepat dalam memproses karena mampu mengerjakan beberapa tugas sekaligus dalam waktu hampir bersamaan. Ini merupakan salah satu keunggulan dari mikrokontroller Propeller. 4. KESIMPULAN Setelah melakukan tahap perancangan dan pembuatan sistem yang kemudian dilanjutkan dengan tahap pengujian dan analisa maka dapat diambil kesimpulan sebagai berikut : a. Adapter X-Bee Pro dan adapter SD card yang telah dirancang dan dibuat mampu bekerja dengan baik. Adapter X-Bee Pro mampu bekerja dengan Propeller untuk berkomunikasi nirkabel dua arah. Adapter SD card mampu membuat SD card terdeteksi oleh
b.
c.
d.
e.
f.
Propeller sehingga Propeller dapat membaca dan menulis ke dalam SD card. Komunikasi nirkabel dua arah antara Propeller dengan Sink pada jaringan sensor dengan metode pengalamatan 16 bit dan dengan menggunakan modus API dapat berjalan dengan baik. Penggunaan metode enkripsi data AES 128 dengan mengaktifkan fungsi Encryption Enable (EE) pada X-Bee Pro mampu menjaga keamanan data selama komunikasi. Mekanisme penyimpanan data, termasuk di dalamnya pembagian (parsing) data dan penulisan data ke dalam SD card telah berhasil dilakukan dengan baik. Mekanisme pemvisualisasian data posisi pada monitor VGA memanfaatkan I/O VGA out pada Propeller demo board berhasil dilakukan. Visualisasi terus ter-update setiap ada data yang diterima. Parallel processing berhasil dilakukan pada Propeller.
DAFTAR PUSTAKA [1] Anonim, Jaringan Sensor Nirkabel. 2008. Diakses 19 Juli 2011, dari Digilib ITB. http://digilib.itb.ac.id/gdl.php?mod=browse&op=re ad&id=jbptitbpp-gdl-adamaliyya-3120. [2] Alasiry, Ali Husein. Pendeteksian dan Perbaikan Kesalahan (2). modul kuliah jaringan sensor : Teknik Elektronika Politeknik Elektronika Negeri Surabaya – ITS; 2008 [3] Faharani, shanin. Zigbee wireless networks and transceivers. Newnes; 2008. [4] laziovic. Frame Ethernet. 2011 diakses 26 September 2011, http://laziovic.blogspot.com/2011/05/frameethernet.html [5] PropellerTM P8X32A Manual Book. Parallax Inc; 2007. [6] http://www.gadgetgangster.com/tutorials, diakses pada 28 Juli 2011. [7] iva Ram Murthy, B. S. Manoj. Ad Hoc Wireless Networks : Architectures and Protocols. Pearson Education Inc, Prentice Hall PTR; 2004 [8] PropellerTM P8X32A Datasheet Rev 1.4. Parallax Inc; 2011. [9] XBee™ & XBee-PRO™ OEM RF Modules – product manual v1.0. MaxStream, Inc; 2005 [10] XBee™ / XBee-PRO™ ZB RF Modules. Digi International, Inc; 2010 [11] Hebel, Martin. Bricker, George. Getting started with xbee rf modules, a tutorial for BASIC stamp and propeller microcontrollers V1.0. parallax inc; 2010 [12] Rokicki, Tomas; Dummer, Jonathan. Documentation : implementation of FAT16 and FAT32 filesystems on SD, SDHC, and MMC for the Parallax Propeller chip; 2009.
[13] AN006 FAT16/FAT32 Full File System Driver Documentation v1.0. Parallax Semiconductor; 2011 [14] http://en.wikipedia.org/wiki/Parallel_Processing, diakses pada 23 oktober 2011 [15] Announcing the Advanced Encryption Standard (AES). Federal information processing standards publication 197; 2001. [16] Hermawan, Hendhi. Penerapan teknologi wireless rf dan sms gateway pada sistem monitoring pemakaian air pdam skala rumah tangga yang terintegrasi database via internet (sistem komunikasi). Proyek Akhir : Teknik Elektronika Politeknik Elektronika Negeri Surabaya – ITS; 2009. [17] arrosyid, moch harun. Implementasi Wireless Sensor Network Untuk Monitoring Parameter Energi Listrik Sebagai Peningkatan Layanan Bagi Penyedia Energi Listrik. Proyek Akhir : Teknik Elektronika Politeknik Elektronika Negeri Surabaya – ITS; 2009. [18] Kim, Sunghun; Jeon, Hyoungsuk; Lee, Hyuckjae; Ma, Joong Soo. Robust Transmission Power and Position Estimation in Cognitive Radio. Paper : School of Engineering Information and Communications University Korea. [19] Propeller Quick Reference v1.7 . Parallax Inc; 2011. [20] http://www.obex.parallax.com/, diakses pada 28 Juli 2011.