Optimasi Parallax Propeller
TM
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 inisemakin 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.
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
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.
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.
Start
X-Bee pada PropellerTM P8X32A menerima paket data
dari masing-masing node dalam jaringan sensor
PropellerTM P8X32A memproses tiap paket data yang diterima
Stop
X-Bee pada PropellerTM P8X32A
meminta data pada jaringan sensor
Delay untuk permintaan berikutnya Inisialisasi X-Bee, SD
card dan VGA pada PropellerTM P8X32A Membangun GUI pada VGA, menjalankan driver VGA PropellerTM P8X32A menyimpan data hasil pemprosesan pada SD card PropellerTM P8X32A menampilkan posisi tiap-tiap node dalam jaringan sensor pada sebuah
monitor VGA
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 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).
Gambar 4. Hasil jadi adapter SD card
Adapter X-Bee Pro berfungsi sebagai penghubung pin-pin pada X-Bee Pro dengan pin-pin-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.
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 X-Bee 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). 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 X-Bee 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 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.
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.
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.
Gambar 11. Hasil pengujian untuk alamat broadcast
Gambar 12. Hasil pengiriman data dari X-Bee Pro USB
Gambar 13. Hasil penerimaan paket API dalam modus non API
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.
Gambar 14. Hasil pengujian untuk nilai EE=1 dan nilai KY yang sama pada pengirim dan 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.
X-CTU
pengirim penerima pengirim penerima pengirim penerima pengirim penerima pengirim penerima Data yang diterima Data yang dikirimB. 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.
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 17. Hasil pengujian kecepatan baca dan tulis SD card
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 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. 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
karakter. Pada pengujian ini menggunakan orchid theme, yaitu warna putih pada karakter dan ungu pada latar belakang (white on purple background).
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
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 Task Counter
system Execution time (s)
1 dari konfigurasi hingga mengirimkan permintaan data pertama kali 537387280 6.717341 2 dari pengiriman 1894782272 23.68478 permintaan data pertama ke permintaan berikutnya (ada delay 30 detik)
3 dari data masuk sampai parsing data 563304736 7.041309 4 mounting sd card 11905072 0.148813 5 dari parsing hingga ditulis ke sd card 1399808 0.017498 6 vga dari konfigurasi sampai bikin gui
1391200 0.01739 7 dari parsing sampai tampilan k monitor 240163216 3.00204 8 Integrasi keseluruhan dengan data sumber simulasi 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
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
Propeller sehingga Propeller dapat membaca dan menulis ke dalam SD card.
b. 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.
c. Penggunaan metode enkripsi data AES 128 dengan mengaktifkan fungsi Encryption Enable (EE) pada X-Bee Pro mampu menjaga keamanan data selama komunikasi.
d. Mekanisme penyimpanan data, termasuk di dalamnya pembagian (parsing) data dan penulisan data ke dalam SD card telah berhasil dilakukan dengan baik.
e. 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. f. 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/frame-ethernet.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.