Seminar Nasional Sistem dan Informatika 2007; Bali, 16 November 2007
SNSI07-012
PERANCANGAN DAN IMPLEMENTASI PROTOKOL AX.25 (SIMPLIFIED) PADA MCS-51 Dwi Wahyu Prasetyo1, Sony Sumaryo IR.,MT.2, Ahmad Husni ST.3 Jurusan Teknik Elektro – Sekolah Tinggi Teknologi Telkom, Bandung1,2 Informatika LintasNusa, Bandung3
[email protected],
[email protected] ABSTRACT In Telecommunication technology communication accurs between different entities. An entity is an object capable of sending or receiving information. However, two entities cannot just send bitstream between each other. The entities must first agree on a protocol. A protocol defines what is communicated, how it is communicated and when it is communicated. One of many protocols that can be used is called AX.25. AX.25 stand for Amateur X.25. It is modified X,25 protocol with a deletion of Extended Address Field and an addition of Unnumbered Information. As a reference to the OSI layer, AX.25 works in the 2nd layer. Which is the Data Link Layer. This protocol is designed to work properly for a direct connection between Packet-Radio Amateur. In this research, AX.25 protocol is implemented in the software and of hardware systems based on microcontroller MCS-51. It uses PC hyperterminal as user interface. Design and implementation of AX.25 protocol is purposed for sending direct text format without the use of the 3rd layer protocol. Keywords: protocol, AX.25, MCS-51
1. Pendahuluan Dalam teknologi telekomunikasi, komunikasi dapat terjadi antar entitas pada sistem yang berbeda. Sebuah entitas adalah sesuatu yang mampu mengirim dan menerima informasi[1]. Akan tetapi antara dua entitas tidak bisa hanya langsung saling mengirim bitstream antara satu sama lain. Agar komunikasi terjadi (antara dua entitas atau lebih), maka harus memakai sebuah protokol yang disetujui bersama. Sebuah protokol mendefinisikan: Apa yang dikomunikasikan (what is communicated), bagaimana dikomunikasikan (how it is commmunicated), dan kapan dikomunikasikan (when it is communiacted). Yang menjadi pertanyaan bagaimana sebuah entitas dibentuk dan bagaimana mengimplementasikan sebuah protokol pada sebuah entitas sehingga komunikasi dan pertukaran informasi bisa terjadi. AX.25 adalah protokol layer 2 (merujuk pada OSI Layer Reference) yaitu Data Link Layer. Sebagai protokol layer 2 AX.25 bertanggungjawab untuk menbangun link connection, menyediakan prosedur logic untuk information transfer, dan link disconnection. Sehingga AX.25 cukup lengkap untuk dijadikan contoh implementasi sebuah protokol. Mikrokontroler adalah sebuah sistem kontrol yang bisa di program sesuai dengan kebutuhan. Mikrokontroler mempunyai port pengirim dan penerima data, Timer dan juga sistem interupsi. Sehingga memungkinkan untuk dibangun sebuah sistem entitas yang mengimplementasikan sebuah protokol seperti AX.25.
2. AX.25 Model 2.1 Model Protokol AX.25 AX. 25 adalah protokol yang menangani layer 2, dan dapat dimodelkan sebgai berikut:
Gambar 2.1 AX .25 Model Pada AX.25 dua layer yaitu Data Link Layer dan Physical Layer, secara lebih jauh bisa dibedakan menjadi beberapa Finite State Machine (FSM), diantaranya Physical, Link Multiplexer, Data Link, Segmenter, dan Management Data Link. 2.2 Struktur Frame Link Layer Radio Packet Transmission dikirimkan dalam bentuk blok data kecil, yang disebut frame. Ada tiga tipe umum dari AX.25 Frames, yaitu: a. Information frame (I frame) b. Supervisory frame (S frame) c. Unnumbered frame
62
Seminar Nasional Sistem dan Informatika 2007; Bali, 16 November 2007
SNSI07-012
Gambar 2. 2 Structure Frame AX.25 2.3 Spesifikasi protokol Protokol AX.25 mempunyai tiga kelas dasar hubungan pada level link-Layer yaitu LAP unbalanced (Primary-Master Operation), LAPB (Link Acces Procedure Balanced), dan Conectionless Operation.
3. Perancangan Dan Realisasi Sistem Pada Penelitian ini perancangan dan realisasi sistem terdiri dari 2 bagian yaitu perancangan dan realisasi perangkat keras (hardware) TNC dan perancangan dan realisasi perangkat lunak (software). Perangkat keras terdiri dari sistem mikrokontroler AT89S52 dan modem. Dan untuk perangkat lunak yaitu pembuatan program yang akan diisikan pada mikrokontroler. Spesifikasi sistem: Sistem harus dapat membangun suatu link connection, dapat melakukan information transfer, dapat memutuskan link connection, mampu menangani information ERROR (karena FCS error), dan mampu berhubungan secara interaktif dengan user melalui hyperterminal. Fitur sistem: Sistem terdiri dari Baudrate 1200 bps, baseband KISS mode only, dan dapat digunakan dengan FSK modem untuk aplikasi paket radio. 3.1 Perancangan dan Realisasi Perangkat Lunak (Software) Realisasi perangkat lunak menggunakan SDCC (Small Device C Compiler) sebagai kompiler. 3.1.1 Main Program Main program adalah program utama pada sistem software mikrokontroler. Program utama tidak boleh menghasilkan nilai balik atau berisi procedure yang mengakibatkan keluar dari sistem. Program utama ini memanggil semua procedure program anak, dan berupa while forever (looping terus-menerus), berikut program utama dari pengimplemetasian protokol AX.25 : main() { P1_4=1; while (1) {
/*start user interface*/ switch(label_init()) /*initiation*/ { case 1: setting_process();continue; /*setting address parameter*/ case 2: connection_process();break; //here connection process case 3: PutStr((unsigned char *)"Receiving Mode..." );//here direct 2 receive process default: break; /*end user interface*/ } PutASCIIs(buffer); P1_4=0; /*start protocol implementation*/ while(1) { /* Here frame scan*/ frame_scan(); if(FCScheck()) { /*we get the frame n chek the FCS*/ if(is2me()){ /*FCS is correct n check if the frame 4 us*/ ax25proc(dtbuf);/*Process through Protokol State machine*/ continue; /*continue 2 receive next frame*/ } else { continue;} } else { /*4 debugging purpose*/ } } }
63
Seminar Nasional Sistem dan Informatika 2007; Bali, 16 November 2007
SNSI07-012
3.1.2 Implementasi Protokol AX.25 Implementasi protokol AX.25 disesuaikan dengan Standard AX.25 TAPR V2.2 dengan beberapa pengecualian dan penyesuaian, termasuk format pengiriman bit secara serial (start-stop bit) berdasarkan kemampuan mikrokontroler menggunakan protokol KISS, tidak mengimplementasikan segmenter dan reasembler state machine, data link layer hanya diimplementasikan sebagian saja yang significant. 3.1.2.1 Pengiriman & Penerimaan Packet Frame Pengiriman packet frame dilakukan dengan menggunakan serial port mikrokontroler dengan metode KISS. Metode KISS bisa dijabarkan secara sederhana sebagai berikut: 1.
Pengiriman, Tambahkan C0 00 pada awal frame dan akhiri dengan C0 (hex). Setiap ditemui data C0, diganti dengan DB DC (hex). Setiap ditemui data DB, diganti dengan DB DC (hex).
2.
Penerimaan, Setiap frame diawali dengan C0 00 dan diakhiri dengan C0 (hex). Setiap ditemui data DB DC ganti dengan C0 (hex). Setiap ditemui data DB DD ganti dengan DB (hex).
Mengirim sebuah packet frame (baik itu S, I, atau UI frame) sama dengan mengirim karakter secara berurutan sesuai dengan format frame pada protokol AX.25. 3.1.2.2 Perhitungan FCS Sebelum packet frame dikirim dan setelah packet frame diterima, dilakukan perhitungan FCS (Frame Check Sequence). FCS dihitung berdasarkan perhitungan CRC-16 dengan rumus Polynomial 0x8408 = x16 + x15 + x10 + x3. Pada saat paket frame akan dikirim dilakukan perhitungan FCS dan hasilnya dikirim pada 2 karakter terakhir (lihat format frame AX.25). Dan saat paket frame diterima dilakukan perhitungan FCS ulang oleh terminal penerima dan hasilnya dicocokkan dengan 2 karakter terakhir dari paket frame yang diterima. Jika cocok/sama maka frame valid dan diproses lebih lanjut. 3.1.2.3 Protokol State Machine Inti dari protokol AX.25 adalah Data Link Layer state machine, yang bisa ditunjukkan dengan state diagram sebagai berikut:
DI SC _I NI T/ DI SC
C N O N N _I
DM
AB /S IT M
Gambar 3.1 Simplified AX.25 State Diagram (Simplified) Ada berbagai cara untuk mengimplementasikan state diagram seperti di atas. Cara yang paling mudah adalah seperti berikut: char *LAPBproc(char frme[40]) { switch(type){ /* Disini kita sudah menerima frame dan mengetahui type frame*/ case SABM: switch(state){ case DISCONNECTED : action1();/*action yang dilakukan*/ case TIMER_RECOV : action1();/*action yang dilakukan*/ break;
64
Seminar Nasional Sistem dan Informatika 2007; Bali, 16 November 2007
SNSI07-012
case AWAITING_CONN: action1();/*action yang dilakukan*/ break; case AWAITING_REL: action1();/*action yang dilakukan*/ break; } break; case UA
: switch(state){ case AWAITING_CONN : action1();/*action yang dilakukan*/ break; case AWAITING_REL : action1();/*action yang dilakukan*/ break; } break;
case DISC :
/*DST*/
switch(state){ case AWAITING_CONN : action1();/*action yang dilakukan*/ break; case AWAITING_REL :
3.2.3 User Interface Program user interface berfungsi sebagai penghubung dengan user melalui Hyperterminal. Bagian program ini adalah bagian yang pertama kali dijalankan ketika sistem pertama kali ‘ON’. User interface menyediakan 3 pilihan menu, yaitu: • • •
Setting MyCall Sign, untuk setting terminal address, dilakukan oleh fungsi setting_process(). Conection Initiate (MASTER), untuk memulai hubungan sebagai master dengan remote terminal, dilakukan oleh fungsi connection_process(). Receive Mode (SLAVE), untuk terminal berfungsi sebagai Slave, langsung pada protokol implementation.
Pada Menu Setting MyCall Sign, user mendefinisikan address terminal, agar bisa dihubungi dan memulai membangun hubungan. Pada Menu Conection Initiate (MASTER), user mendefinisikan address terminal tujuan dan langsung membangun hubungan terhadap remote terminal yang dituju, dengan mengirim paket frame SABM. Pada Menu Receive Mode (SLAVE), terminal akan berlaku pasif sebagai penerima dan merespon paket frame yang diterima. 3.3 Perancangan dan Realisasi Perangkat Keras Secara garis besar perangkat keras yang terlibat adalah seperti blok diagram di bawah ini:
Gambar 3. 2 Blok Diagram Perangkat Keras TNC Sistem MikrokontrolerAT89S52 berfungsi untuk menjalankan program protokol dan sekaligus program untuk user interface. HyperTerminal, berfungsi sebagai interface dengan user. Sistem Mikrokontroler AT89S52 Sistem Mikrokontroler AT89S52 adalah ‘sistem minimum’ yang bisa digunakan untuk aplikasi mikrokontroler disertai dengan komponen pendukung yang antara lain: MC74HC4052, sebagai analog switch berkecepatan tinggi untuk pengontrol data serial dari mikrokontroler akan disalurkan ke Modem atau Hyperterminal. MAX232, sebagai interface sinyal agar data serial dari mikrokontroler yang menuju Hyperterminal sesuai dengan level komunikasi RS232 yang biasa digunakan oleh port serial (COM) pada PC. 62256, merupakan external RAM dari sistem.
65
Seminar Nasional Sistem dan Informatika 2007; Bali, 16 November 2007
SNSI07-012
Gambar 3.3 Blok Diagram Sistem Mikrokontroler AT89S52
4. Pengujian Dan Analisa Sistem Pengujian dilakukan pada level hardware dan software. Pada level hardware setiap blok komponen sistem diuji fungsinya. Pada level software, fungsi-fungsi yang mengimplemantasikan protokol diuji pembagiannya secara terpisah untuk melokalisir apabila terjadi error. Selanjutnya pengujian sistem dilakukan secara terintegrasi. 4.1 Pengujian dan Analisa Sistem Mikrokontroler AT89S52 Pengujian mikrokontroler dilakukan dengan pengetesan port dan fitur yang digunakan pada implementasi protokol.
Gambar 4.1 Skema Pengujian Mikrokontroler 4.1.1 Test Port 1 Pengujian pada port 1 dilakukan dengan membuat program sederhana yang melakukan operasi output pada port 1. Port 1 dihubungkan dengan LED agar bisa dilihat hasilnya. 4.1.2 Test Serial Port Pengujian port serial dilakukan dengan membuat program sederhana yang mengirim dan menerima data ke hyperterminal. Sebelumnya port serial dihubungkan dengan IC RS232 agar level sinyal bisa diterima oleh hyperterminal lewat PC. PC dan mikrokontroler dihubungkan melalui port COM 1/2. Program pengujian menghasilkan tampilan text “hello” pada hyperterminal secara terus-menerus. 4.1.2 Test Timer Interupt Pengujian Timer Interupt dilakukan dengan membuat program sederhana yang akan memperlihatkan hasil yang sama denga pengujian port serial yaitu text “hello” pada hyperterminal. 4.2 Pengujian Multiplexer Pengujian multiplexer dilakukan dengan skema seperti pada Gambar 4.2, dengan control dilakukan oleh pin port P1_4 pada mikrokontroler.
Gambar 4. 2 Skema Pengujian Multiplexer Pada PC, COM 1 dan COM 2 dihubungkan dengan kedua IC RS232, kemudian dua hyperterminal dibuka sekaligus. Program sederhana disiapkan untuk mengirim data ke dua hyperterminal secara sekaligus lewat multiplexer MC74HC4052. 66
Seminar Nasional Sistem dan Informatika 2007; Bali, 16 November 2007
SNSI07-012
4.3 Pengujian Software Pengujian software program dilakukan secara bagian perbagian untuk melokalisir kesalahan. 4.3.1 Prosedur Pengiriman dan Penerimaan Frame dengan protokol KISS (layer 1) Pada level ini sistem hardware diasumsikan sudah final, sehingga pengujian dilakukan dengan skema sebagai berikut:
Gambar 4. 3 Skema Pengujian Level Software Kemudian pada kedua mikrokontroler dibuat program pengirim dan penerima protokol KISS. Program pengirim mengirim frame sesuai dengan protokol KISS yang telah dijelaskan sebelumnya. Frame yang dikirimkan ada pada variabel tampung 1 dan tampung 2. Program penerima menerima frame dan kemudian menampilkan pada hyperterminal dalam bentuk karakter HEX. Penerima diharapkan dapat menampilkan hasil sama dengan apa yang dikirim pada variabel tampung 1 dan tampung 2. 4.3.2 Prosedur Perhitungan FCS Pengujian Prosedur perhitungan FCS dilakukan dengan ber-referensi pada web FCS calculation yang dibangun oleh Sven Reifegerste. Web ini bisa didapat di internet dengan kata kunci “Sven Reifegerste+FCS”. Program sederhana dapat untuk melakukan penghitungan FCS pada mikrokontroler. Program di atas akan menghitung FCS data yang di-inputkan lewat hyperterminal kemudian akan menampilkan hasilnya dengan format HEX. Selanjutnya pada Web FCS calculation milik Sven Reifegerste diinputkan data yang sama. Bila menghasilkan hasil perhitungan yang sama maka program bisa dikatakann terimplementasi dengan benar.
5. Kesimpulan 1. 2. 3.
Protokol AX.25 diimplementasikan pada mikrokontroler AT89S52 dengan beberapa penyederhanaan tanpa merubah fungsi. Implementasi protokol layer 1 mengunakan protokol KISS disesuaikan dengan kemampuan mikrokontroler. Pada pengimplementasian protocol, ada 3 hal yang menjadi titik penting yang perlu diperhatikan yaitu struktur dan format data, arti representasi tiap bit/byte, dan timing (pewaktuan).
6. Saran 1. 2.
Perlu dicoba untuk memrogram ulang menggunakan compiler lain yang menyediakan object oriented programming, seperti Keil compiler. Sistem ini memungkinkan untuk diaplikasikan pada pengiriman data dengan kecepatan rendah melalui wireless, dengan penambahan blok RF.
Daftar Pustaka [1]
Leon-Garcia, Alberto. “Communication Network,Fundamental Concept and Key Architectures”. McGraw-Hill. 2004 [2] Beech, William A. “AX.25 Link Acces Procol v2.2”,TAPR. 1997. [3] Burn,Alan &Welling,Andi. “Real-Time System & Programming Languange”, Addison Werley 1997 [4] Haryanto,Bambang Ir,MT. ” Sistem Operasi lanjut”,Informatika Bandung.. 2003. [5] Forouzan, Behrouz. ”Data Communication and Networking”. McGraw-Hill. 2000. [6] 8052.com [7] Beach,Mike “An Introduction To The Use Of The Keil C51 Compiler On The 8051 Family”, Hitex.Ltd,UK, 2002 [8] Hansen,Jhon. “PIC-et Radio: How to Send AX.25 UI Frames Using Inexpensive PIC Microprocessors”. State University of New York. 1998 [9] Hansen,Jhon. “PIC-et Radio II: How to Receive AX.25 UI Frames Using Inexpensive PIC Microcontrollers”. State University of New York. 1998 [10] Hansen,Jhon. “TNC-X: An Expandable Microcontroller-Based Terminal Node Controller”. State University of New York. 1998 [11] Moore,Ralph “How to Use Real-Time Multitasking Kernels In Embedded Systems”. 2001.
67