Desain dan Implementasi Encoder 2B1Q Berbasis FPGA 1
Sahbuddin Abdul Kadir 1 Teknik Elektro, Politekn ik Negeri Ujung Pandang
[email protected]
Abstrak Pada sistem komunikasi digital, data ditransmisikan dalam bentuk pulsa yang mempresentasikan b it “0” dan “1”. Jika informasi yang ditransmisikan masih dalam bentuk analog, terlebih dahulu diubah ke dalam bentuk digital. Proses pengubahan sinyal analog ke sinyal digital menggunakan beberapa bentuk pengkodean sinyal diantaranya yaitu NRZ, Bipolar-AMI, 2B1Q dan HDB3 sesuai dengan saluran yang akan dilaluinya. Pengkodean ini biasa disebut dengan penyandian saluran. Umumnya representasi sinyal digital menggunakan NRZ dengan dua level tegangan. Representasi bit 0 dan 1 pada jaringan komunikasi data menggunakan kabel tembaga memerlukan perhatian khusus yang berhubungan dengan sinyal. Salah satunya adalah atenuasi yang membuat sinyal melemah dengan bertambahnya jarak dan frekuensi yang semakin tinggi. Dengan demikian diperlukan suatu teknik penyandian yang bukan sekedar merepresentasikan informasi ke dalam bit 0 dan 1, tetapi memiliki kualifikasi yang berkaitan dengan karakteristik jarak dan frekuensi informasi. 2B1Q adalah suatu teknik pengkodean 2 (dua) biner yang direpresentasikan dalam 1 dari 4 level tegangan. Pola data yang terdiri dari 2 bit dikodekan menjadi sebuah elemen sinyal yang merupakan bagian dari empat level sinyal. Sehingga data terkirim dengan kecepatan 2 (dua) kali lebih cepat dibanding dengan pengkodean NRZ. Kata kunci: sinyal, jarak, frekuensi, 2B1Q
I. Pendahuluan Pada sistem komunikasi digital, data ditransmisikan dalam bentuk pulsa yang mempresentasikan bit “0” dan “1”. Jika informasi yang ditransmisikan masih dalam bentuk analog, terlebih dahulu diubah ke dalam bentuk digital. Proses pengubahan sinyal analog ke sinyal digital menggunakan beberapa bentuk pengkodean sinyal diantaranya yaitu NRZ, Bipolar-AMI, 2B1Q dan HDB3 sesuai dengan saluran yang akan dilaluinya. Pengkodean ini biasa disebut dengan penyandian saluran. Umumnya representasi sinyal digital menggunakan NRZ dengan dua level tegangan. Representasi bit 0 dan 1 pada jaringan komunikasi data menggunakan kabel tembaga memerlukan perhatian khusus yang berhubungan dengan sinyal. Salah satunya adalah atenuasi yang membuat sinyal melemah dengan bertambahnya jarak dan frekuensi yang semakin tinggi. Dengan demikian diperlukan suatu teknik penyandian yang bukan sekedar merepresentasikan informasi ke dalam bit 0 dan 1, tetapi memiliki kualifikasi yang berkaitan dengan karakteristik jarak dan frekuensi informasi. 2B1Q adalah suatu teknik pengkodean 2 (dua) biner yang direpresentasikan dalam 1 dari 4 level tegangan. Pola data yang terdiri dari 2 bit dikodekan menjadi sebuah elemen sinyal yang merupakan bagian dari empat
level sinyal. Sehingga data terkirim dengan kecepatan 2 (dua) kali lebih cepat dibanding dengan pengkodean NRZ. Pada penelitian ini didesain dan diimplementasikan penyandian saluran 2B1Q menggunakan metode sistem on chip dan diimplemntasikan pada FPGA sebagai modul pembelajaran pada Praktikum Saluran Transmisi dan Telekomunikasi Radio untuk mendemonstrasikan pengkodean data 2 bit menjadi satu elemen sinyal dari empat elemen sinyal yang berbeda. II. KAJIAN LITERATUR 2.1 Penyandian Saluran Penyandian saluran adalah pola pengkodean sinyal serial digital yang digunakan untuk mempertahankan reliabilitas dan integritas data. Line code yang digunakan ditentukan oleh penyedia layanan komunikasi data. Bentuk kode biner 1 dan 0 seperti pada sinyal PCM, dapat direpresentasikan dalam beberapa format sinyal serial digital yang disebut sebagai line-code sebagai berikut: 2.1.1 Unipolar Pengkodean saluran jenis polar tunggal atau unipolar adalah suatu pengkodean yang paling sederhana. Pengkodean unipolar hanya menggunakan sebuah level tegangan atau satu polaritas untuk menyatakan dua posisi bilangan biner yaitu 0V (bila tidak ada tegangan) dan +V untuk menyatakan data 1
biner 0 dan 1. Pengkodean unipolar mempunyai dua persoalan, yakni komponen DC dan sinkronisasi. Amplitudo rata-rata sinyal unipolar yang tidak nol disebut dengan komponen DC (frekuensi nol) [5]. Sinyal dengan komponen DC tidak dapat disalurkan ke media yang tidak dapat menangani komponen DC. Karena pada ujung-ujung penerima biasanya terpasang kapasitor kopling yang digunakan untuk menahan sinyal dc yang berakibat pada munculnya derau. Bila sinyal tidak bervariasi, maka penerima tidak dapat membedakan mana yang awal dan mana yang akhir dari tiap-tiap bit. Inilah masalah sinkronisasi dari pengkodean unipolar, yang memungkinkan aliran datanya terdiri dari deretan panjang logika 1 dan 0. Pengkodean digital menggunakan perubahan level tegangan untuk mengindikasikan adanya perubahan bit. Perubahan sinyal juga memberikan indikasi bahwa satu bit telah berakhir dan dimulai bit berikutnya.
menyatakan adanya perubahan data biner dari menuju logika 1. Artinya, setiap ada perubahan urutan data biner dari 0 ke 1 atau 1 ke 1, maka level tegangan akan berubah dari sebelumnya. 0
1
0
1
0
0
1
1
1
0
1
1
0
0
1 NRZ-L
NRZ-I
Gambar 2.5 Perbedaan NRZ-L dan NRZ-I Pengkodean saluran jenis Return to Zero (RZ) menggunakan level –V dan +V dengan transisi di pertengahan bit data biner. Data biner 0 dinyatakan dengan transisi dari level – V menuju 0V, sedangkan data biner 1 dinyatakan dengan transisi dari level 0V menuju +V. Contoh pengkodean saluran jenis RZ ditunjukkan pada gambar berikut ini (Gambar 2.3) v
0 v
0
1
0
0
1
1
1
0
0
t
Gambar 2.3 Return to Zero (RZ). t
Gambar 2.1 Unipolar 2.1.2 Polar Pengkodean polar menggunakan 2 (dua) buah level tegangan yaitu –V dan +V. Pengkodean saluran dalam kelompok polar, dibagi-bagi lagi menjadi bebrapa jenis yaitu: Non-Return to Zero (NRZ) Return to Zero (RZ) Manchester Differantial Manchester Jenis pengkodean polar menggunakan 2 (dua) buah level tegangan yaitu –V dan +V (tegangan positif dan negatif) untuk menyatakan data biner dengan nilai 0 dan 1. Pengkodean saluran jenis Non-Return to Zero (NRZ) dibedakan menjadi dua yaitu a. NRZ-L menggunakan level +V digunakan untuk menyatakan data biner 0, sedangkan level tegangan –V digunakan untuk menyatakan data biner 1 seperti yang ditunjukkan pada gambar 2.2. b. NRZ-I (Non-Return to Zero-Inverted) NRZ-I (Non-Return to Zero-Inverted) merepresentasikan level –V atau +V yang
Pengkodean Manchester menggunakan level tegangan –V dan +V dengan transisi ditengah-tengah bit data biner. Data biner 0 dinyatakan dengan transisi level tegangan dari +V menuju V, sedangkan data biner 1 dinyatakan dengan transisi level tegangan dari –V menuju +V. Zero is
One is
v
0
1
0
0
1
1
1
0 t
Gambar 2.4 Pengkodean Manchester. Pengkodean Differential Manchester digunakan pada jaringan token ring dan merupakan modifikasi pengkodean Manchester, dimana letak transisi level tegangan dari –V menuju +V atau sebaliknya yaitu +V menuju –V dipengaruhi oleh data biner. Data biner 0 ditampilkan dengan transisi level tegangan terletak di awal interval data bit, sedangkan data biner 1 dengan transisi level tegangan terletak ditengah interval bit dari data. Contoh pengkodean Differential Manchester ditunjukkan pada gambar 2.5. 2
v
0
1
0
0
1
1
1
0 t
Gambar 2.5 Differential Manchester. 2.1.3 Bipolar Jenis pengkodean bipolar yaitu pengkodean dengan menggunakan 3 (tiga) buah level tegangan, yaitu: -V, 0V, dan +V untuk menyatakan data biner. Bit “0” akan bernilai level tegangan nol dan bit “1” direpresentasikan dengan tegangan yang selalu berlawanan polaritas dari positif ke negatif atau sebaliknya dari negatif ke positif. Pengkodean jenis ini dapat ditemukan pada AMI dan 2B1Q. Bipolar Alternate Mark Inversion (AMI) adalah jenis pengkodean bipolar yang paling sederhana menggunakan level tegangan 0V untuk menyatakan bit 0, sedangkan bit 1 dinyatakan dengan level tegangan –V dan +V secara bergantian. Dengan kata lain, tegangan 0 direpresentasikan sebagai bit 0. Bit 1 adalah representasi oleh tegangan positif dan tegangan negatif secara bergantian. 0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
Gambar 2.6 Alternate Mark Inversion (AMI) Pengkodean 2BIQ digunakan untuk melakukan pengkodean dua data biner untuk dijadikan satu kuarter, pola data yang terdiri dari 2 bit dikodekan menjadi sebuah elemen sinyal yang merupakan bagian dari sinyal berlevel empat. Sedangkan data dikirim dengan kecepatan dua kali lebih cepat dibanding dengan pengkodean NRZ-L, dan pada bagian penerima memiliki empat threshold untuk melayani penerimaan data terkirim. Jika Data bit “00” dinyatakan dengan level tegangan -3 V, data bit “11” dinyatakan dengan level tegangan +1V , data bit“01” dinyatakan dengan level tegangan -1 V, data bit “10” dinyatakan dengan tegangan +3 V. Seperti diperlihatkan pada gambar berikut ini
Gambar 2.7 Data 2B1Q. 2.2 Field-Programmable Gate Array (FPGA) FPGA merupakan sebuah IC digital yang sering digunakan untuk mengimplementasikan rangkaian digital. FPGA berbentuk komponen elektronika dan semikonduktor yang terdiri dari komponen gerbang terprogram (programmable logic) dan sambungan terprogram (interkoneksi). Komponen gerbang terprogram terdiri atas gerbang logika biasa (AND, OR, NOT) maupun fungsi matematis dan kombinatorik yang lebih kompleks, seperti decoder, adder, subtractor dan multiplier. Selain itu, Blok-blok komponen di dalam FPGA juga terdapat elemen memori (register) mulai dari flip-flop sampai pada RAM. FPGA sangat sesuai untuk pemrosesan komputasi algoritma integrasi numerik. FPGA mempunyai koreksi error yang kecil dan merupakan teknologi yang bebas (technologyindependent) untuk diimplementasikan dalam berbagai algoritma. Kinerja aplikasi FPGA lebih cepat dibandingkan dengan aplikasi mikrokontroler, karena FPGA hanya mensintesis perangkat keras saja, sementara mikrokontroler mengeksekusi instruksi perangkat lunak yang digunakan untuk mengendalikan perangkat keras, sehingga waktu tunda yang diimplementasikan hanya waktu tunda perambatan saja.
Gambar 2.8 FPGA jenis Altera Cyclone De2.
3
Pengertian terprogram (programmable) pada FPGA adalah seperti interkoneksi saklar pada bread board yang bisa diubah sesuai kebutuhan pengguna. Interkoneksi ini bisa diprogram kembali oleh pengguna di lab atau lapangan (field). Oleh karena itu jajaran gerbang logika (Gate Array) ini disebut fieldprogrammable. III. METODE PENELITIAN Metode penelitian yang digunakan pada panelitian ini adalah desain dan implemntasi penyandian saluran 2B1Q. Desain dilakukan dengan bahasa pemrograman HDL verilog sedangkan implementasi menggunakan FPGA.
+3V. Sedangkan untuk mengembalikan sinyal informasi ke bentuk aslinya dibutuhkan perangkat decoder pada penerima. 3.4 Flowchart Encoder 2B1Q Desain encoder penyandian saluran 2B1Q dilakukan dengan coding HDL verilog. Desain dimulai dengan mendeteksi 2 bit data input lalu dikodekan dengan salah satu dari empat elemen sinyal yang sesuai dengan runtun 2 bit tersebut. Proses ini ditunjukkan dengan flowchart pada gambar 3.2. Start Input NRZ
NRZ
Detektor 2 Bit
Encoder 2 Bit
Pembangkit Polaritas 2B1Q
2B1Q
Deteksi 2 Bit Deteksi Bit l
Gambar 3.1. Diagram Blok Encoder 2B1Q 3.1 Detektor 2 Bit Data input yang masuk, sebelum sampai ke rangkaian coding 2 bit didelay 1 bit. Indikasi 2 bit secara bersamaan sebagai langkah awal untuk membuat lebar pulsa yang sesuai dengan algoritna kode 2B1Q. Delay 1 bit (selalu) digunakan untuk membaca bit 1 dan 2 secara bersamaan dan dikodekan untuk level tegangan yang sesuai runtun bit 1 dan 0. 3.2 Encoder 2 Bit Runtun bit yang terdeteksi akan dikodekan ke salah satu dari empat level tegangan. Data pada bit pertama mengindikasikan polaritas, jika bit pertama=1 maka polaritas sinyal positif (+). Sebaliknya jika bit pertama bernilai=0, maka polaritas sinyal negative (-). Sedangkan pada bit kedua mengindikasikan nilai level tegangan. Jika bit kedua berlogika 1 maka level tegangan 1V, dan level tegangan 3V untuk bit 0. Pada output encoder 2B1Q akan diperoleh gabungan dari bit 1 dan 2 data input. 3.3 Pembangkit Polaritas 2B1Q Pada bagian pembangkit sinyal 2B1Q digunakan 4 level tegangan. Polaritas dan level tegangan sesuai dengan runtun bit 0 dan 1 untuk setiap 2 bit data. Dimana, data “00” dinyatakan dengan level tegangan -3V, data “11” dinyatakan dengan level tegangan +1V, data “01” dinyatakan dengan level tegangan -1 V, data “10” dinyatakan dengan tegangan
Bit 0?
Polaritas -
Polaritas +
Deteksi Bit ll
Deteksi Bit ll
Bit 0?
Bit 0?
-3V
+3V
-1V
+1V
Penjumlah 2B1Q
Lanjut?
Start
Gambar 3.2 Flowchart Encoder 2B1Q 3.5 Integrasi FPGA Implementasi encoder panyandian saluran 2B1Q FPGA menggunakan program aplikasi quartus. Integrasi HDL verilog encoder 2B1Q dimulai dengan sintesis untuk mengetahui frekuensi clock maksimum yang dapat digunakan. Setelah itu, dilakukan konfigurasi pin untuk menyediakan port input dan output encoder 2B1Q. Port input menggunakan clock internal. Sedangkan data input menggunakan 8 switch pada board FPGA Altera DE2. Kemudian port output memamfaatkan General Port Input Output (GPIO) pada board FPGA. 4
Start Buat design di verilog Save Menentukan Device Kompilasi
Simulasi
Generate Waveform Simulaton
Konfigurasi Pin Download FPGA Stop
Gambar 3.3. Integrasi FPGA
IV. HASIL DAN PEMBAHASAN Hasil perancangan encoder penyandian 2B1Q diintegrasikan ke board FPGA menggunakan program aplikasi quartus. Integrasi dimulai dengan compile kode verilog penyandian 2B1Q untuk memeriksa jika terjadi kesalahan pemrograman. Setelah itu dilakukan simulasi untuk melihat keluaran hasil rancangan sudah sesuai dengan input yang diberikan. Sebelum diimplementasikan ke board FPGA, dilakukan konfigurasi pin sebagai port input dan output implementasi penyandian 2B1Q. Sehingga tersedia port untuk pengukuran dan pengujian.
4.1 2B1Q Dengan Satu Level Tegangan Pada rangkaian pembangkit sinyal 2B1Q, digunakan 4 level tegangan. Polaritas dan level tegangan sesuai dengan runtun dua bit data biner. Data “00” dinyatakan dengan level tegangan -3 V, data “11” dinyatakan dengan level tegangan +1V , data “01” dinyatakan dengan level tegangan -1 V, data “10” dinyatakan dengan tegangan +3 V. Data input 2B1Q 10101010 untuk satu level tegangan ditunjukkan pada gambar 4.2 dan 4.3. Kanal 1 pada gambar 4.2 menunjukkan sinyal input clock dan input NRZ pada kanal 2. Sedangkan pada kanal 1 pada gambar 4.3 adalah input NRZ dan output encoder 2B1Q pada kanal 2.
Gambar 4.2 Sinyal input clock dan NRZ
Start Buat design di verilog Save Menentukan Device Kompilasi
Simulasi
Generate Waveform Simulaton
Gambar 4.3 Input NRZ dan output 2B1Q Konfigurasi Pin Download FPGA Stop
Gambar 4.1 Integrasi FPGA
4.2 2B1Q Dengan Dua Level Tegangan Data input 2B1Q 11001100 untuk dua level tegangan ditunjukkan pada kanal 1 dan output encoder 2B1Q pada kanal 2 gambar 4.4.
5
level tegangan -1V, data “11” dinyatakan dengan level tegangan +1V yang dihasilkan merupakan nilai polaritasnya. 4.4 2B1Q Dengan Empat Level Tegangan Data input 2B1Q 10011110 untuk empat level tegangan ditunjukkan pada kanal 1 dan output encoder 2B1Q pada kanal 2 gambar 4.6.
Gambar 4.4 Input NRZ 11001100 dan output 2B1Q Hasil pengujian pada pembangkit polaritas 2B1Q menghasilkan sinyal dengan level tegangan V2. Sinyal ini merupakan sinyal 2B1Q dengan runtun bit „11‟ dan „00‟. Data output 2B1Q yang dihasilkan yaitu berupa sinyal dengan tegangan V2 dan V0 karena Data “11” dinyatakan dengan level tegangan +1V, data “00” dinyatakan dengan level tegangan -3V merupakan nilai polaritas yang dihasilkan. 4.3 2B1Q Dengan Tiga Level Tegangan Data input 2B1Q 10011110 untuk tiga level tegangan ditunjukkan pada kanal 1 dan output 2B1Q pada kanal 2 gambar 4.5
Gambar 4.5 Input NRZ 10011110 dan output 2B1Q Data input 2B1Q 10011110 untuk tiga level tegangan ditunjukkan pada gambar 4.5 Channel 1 merupakan input data 2B1Q (NRZ) dan channel 2 merupakan output 2B1Q. Hasil pengujian pada pembangkit polaritas 2B1Q menghasilkan sinyal dengan level tegangan V3, V1, dan V2 sinyal ini merupakan sinyal 2B1Q dengan runtun bit „10‟, „01‟, dan „11‟ Data output 2B1Q yang dihasilkan yaitu berupa sinyal dengan tegangan V3, V1, dan V2 karena Data “10” dinyatakan dengan level tegangan +3V, data “01” dinyatakan dengan
Gambar 4.6 Input NRZ 10011110 dan output 2B1Q Data input 2B1Q untuk tiga level tegangan ditunjukkan pada gambar 4.6 Channel 1 merupakan input NRZ data 2B1Q dan channel 2 merupakan output dari rangkaian pembangkit polaritas 2B1Q. Hasil pengujian pada pembangkit polaritas 2B1Q akan menghasilkan sinyal dengan level tegangan V3, V1, V2, dan V0 sinyal ini merupakan sinyal 2B1Q dengan runtun bit „10‟, „01‟, „11‟, dan „00‟. Data output 2B1Q yang dihasilkan yaitu berupa sinyal dengan tegangan V3, V1, V2, dan V0 karena Data “10” dinyatakan dengan level tegangan +3 V, data “01” dinyatakan dengan level tegangan -1V , data “11” dinyatakan dengan level tegangan +1 V, data “00” dinyatakan dengan tegangan -3 V. Data input NRZ 8 bit sebagai test-bench pada penelitian ini digunakan untuk memperlihatkan output pengujian encoder penyandian saluran 2B1Q pada FPGA. Karena encoder menggunakan 4 elemen sinyal yang berbeda untuk mengkodekan setiap 2 bit input, maka testbench divariasikan untuk 4 runtun bit yang berbeda. Sehingga setiap elemen sinyal dapat diamati pada output encoder 2B1Q. Hasil desain dan implementasi encoder penyandian saluran 2B1Q menggunakan FPGA dapat memnampilkan 4 elemen sinyal yang berbeda dengan level tegangan yang telah menunjukkan algoritma penyandian saluran 2B1Q. Tetapi masih memerlukan 6
perangkat tambahan untuk menampilkan tegangan -3V, -1V, +1V dan +3V. walaupun demikin encoder 2B1Q ini sudah dapat digunakan untuk mendemonstrasikan penyandian saluran 2B1Q untuk memperlihatkan empat elemen sinyal yang berbeda untuk setiap runtun 2 bit yang berbeda. V. KESIMPULAN Teknik pennyandian saluran 2 biner dengan 2B1Q yang merepresentasikan setiap 2 bit data input ke salah satu dari empat elemen sinyal membuat data terkirim dengan kecepatan 2 (dua) kali lebih cepat dibanding dengan pengkodean NRZ. Sehingga dapat mereduksi setengah dari bandwith. Sehingga dapat digunakan pada frekuensi rendah dan jarak yang lebih jauh sampai 5 KM menggunakan saluran kawat UTP. UCAPAN TERIMA KASIH Pada pelaksanaan penelitian ini penulis dibantu oleh rekan-rekan dosen mahasiswa Teknik Elektro Politeknik Negeri Ujung pandang. Oleh karena itu penulis mengucapkan terima kasih yang sebesarbesarnya semoga hasil penelitian ini dapat bermamfaat bagi kemajuan ilmu pengetahuan. REFERENSI 1. Ali, Imran and Ahmad, Ali. 2013. An Efficient FPGA Based HDB3 Decoding System Using, nternational Journal of Future Computer and Communication Vol. 2, No. 6. 2. Stalling, William. 1997. Data and Computer Communication. New Jersey: Prentice-Hall International, Inc. 3. Sandige, Ricards. 1990. Modern Digital Design. McGraw-Hill Publishing Company. 4. Stanley, William D. 1994, Operational Amplifier with Linier Integrated Circuit. McGraw-Hill. 5. Winch, Robert G. 1993. Telecommunication Transmission System. Singapura; McGraw-Hill, Inc. 6. Black Box Network Services. 2015. HDB3 Encoding http://www.blackbox.de/en-de/page/332/hdb3-encoding 7. Kadir, Sahbuddin Abdul. 2015. Rancang Bangun Penyandian Saluran HDB3 Berbasis FPGA. Seminar Nasional Teknik Elektro dan Informatika 7