Senin, 03 Oktober 2011

Akroma Ardi


AKROMA ARDI
0910633028
Interface serial RS232
DEFINISI :
RS-232 adalah standar komunikasi serial yang didefinisikan sebagai antarmuka antara perangkat terminal data (data terminal equipment atau DTE) dan perangkat komunikasi data (data communications equipment atau DCE) menggunakan pertukaran data biner secara serial. Di dalam definisi tersebut, DTE adalah perangkat komputer dan DCE sebagai modem walaupun pada kenyataannya tidak semua produk antarmuka adalah DCE yang sesungguhnya. Komunikasi RS-232 diperkenalkan pada 1962 dan pada tahun 1997, Electronic Industries Association mempublikasikan tiga modifikasi pada standar RS-232 dan menamainya menjadi EIA-232.[1]  Pada saat itu RS-232 lahir karena muncul dari ide-ide pada sebuah komite (Electronic Industries Association-EIA) yang mengembangkan sebuah interface untuk pertukaran data digital antara komputer mainframe yang sebagai pusatnya dengan komputer lain, tetapi perangkat ini dihubungkan dengan jaringan telepon sehingga dibutuhkan modem untuk menerjemahkan sinyal tersebut. Dan muncul RS-232 yang dianggap dapat diandalkan dalam melakukan komunikasi data (pertukaran data). [3]
Standar RS-232 mendefinisikan kecepatan 256 kbps atau lebih rendah dengan jarak kurang dari 15 meter, namun belakangan ini sering ditemukan jalur kecepatan tinggi pada komputer pribadi dan dengan kabel berkualitas tinggi, jarak maksimum juga ditingkatkan secara signifikan. Dengan susunan pin khusus yang disebut null modem cable, standar RS-232 dapat juga digunakan untuk komunikasi data antara dua komputer secara langsung.[1]














Gambar 1. Kabel serial RS-232
Sebuah port RS-232 pernah menjadi fitur standar dari komputer pribadi untuk koneksi ke modem, printer, mouse, penyimpanan data, un-interruptible daya listrik, dan perangkat periferal lainnya. Namun, kecepatan transmisinya terbatas, ayunan tegangan yang relatif besar, dan konektor standar yang besar, sehingga termotivasi untuk pengembangan universal serial bus (USB) untuk menggantikan RS-232. Banyak komputer pribadi modern tidak memiliki port RS-232 dan harus menggunakan konverter eksternal untuk terhubung ke peripheral yang lebih tua. Beberapa perangkat RS-232 masih ditemukan terutama di mesin-mesin industri atau instrumen ilmiah.[2]

KONEKTOR :


Gambar 2. Skema Komunikasi Data

RS-232 perangkat dapat diklasifikasikan sebagai Data Terminal Equipment (DTE) atau Data Communication Equipment (DCE), yang arti pada setiap perangkat yang kabelnya akan mengirim dan menerima sinyalnya masing-masing. Biasanya pada kabel tersebut terdapat 25 pin konektor (ada juga yang 9 pin konektor). Sesuai dengan standar, terminal dan komputer memiliki konektor laki-laki dengan fungsi pin DTE, dan modem memiliki konektor perempuan dengan fungsi pin DCE.[2]
Konektor port serial terdiri dari 2 jenis, yaitu konektor 25 pin (DB25 dan 9 pin (DB9) yang berpasangan (jantan dan betina). Bentuk dari konektor DB-25 sama persis dengan port paralel. Umumnya COM1 berada dialamat 3F8H, sedangkan COM2 dialamat 2F8H.[7] Pada komputer IBM PC Compatibel biasanya kita dapat menemukan dua konektor DB 9 yang bisanya dinamakan COM1 dan COM2.


MALE
FEMALE
RS232 DB25 pinout
RS232 DB25 pinout
 
RS232 DB9 pinout
RS232 DB9 pinout

DEC MMJ pinout

DEC MMJ pinout















 





    
Gambar 3. Kabel serial RS-232 (Male dan Female) [4]









                                                   Gambar 4. Konektor DB25 dan DB9 [8]


Tabel dari fungsi pin dan sinyal pada RS-232 dengan konektor DB25. [2]
Konfigurasi pin dan nama sinyal konektor serial DB 9 :

 









Keterangan mengenai fungsi saluran RS232 pada konektor DB9 adalah sebagai berikut:
o   Receive Line signal detect, dengan saluran ini DCE memberitahukan ke DTE bahwa pada terminal masukkan ada data masuk.
o   Receive Data, digunakan DTE menerima data dari DCE.
o   Transmit Data, digunakan DTE mengirimkan data ke DCE.
o   Data Terminal Ready, pada saluran ini DTE memberitahukan kesiapan terminalnya.
o   Signal Ground, saluran ground.-Ring Indicator, pada saluran ini DCE memberitahukan ke DTE bahwa sebuah stasiun menghendaki berhubungan dengannya.
o   Clear To Send, dengan saluran ini DCE memberitahukan bahwa DTE boleh mulai mengirim data.
o   Request To Send, dengan saluran ini DCE diminta mengirim data oleh DTE.
o   DCE Ready, sinyal aktif pada saluran ini menunjukkan bahwa DCE sudah siap [6]
CONTOH PENGGUNAAN RS-232 :
Antarmuka Kanal serial lebih kompleks/sulit dibandingkan dengan antarmuka melalui kanal paralel, hal ini disebabkan karena:
1.      Dari Segi perangkat keras: adanya proses konversi data pararel menjadi serial atau sebaliknya menggunakan piranti tambahan yang disebut UART (Universal Asynchronous Receiver/Transmitter)
2.      Dari Segi perangkat lunak: lebih banyak register yang digunakan atau terlibat;

Namun di sisi lain antarmuka kanal serial menawarkan berapa kelebihan dibandingkan secara paralel, antara lain:
1.      Kabel untuk komunikasi serial bisa lebih panjang dibandingkan dengan paralel; data-data dalam komunikasi serial dikirim-kan untuk logika ’1′ sebagai tegangan -3 s/d -25 volt dan untuk logika ’0′ sebagai tegangan +3 s/d +25 volt, dengan demikian tegangan dalam komunikasi serial memiliki ayunan tegangan maksimum 50 volt, sedangkan pada komunikasi paralel hanya 5 volt. Hal ini menyebabkan gangguan pada kabel-kabel panjang lebih mudah diatasi dibandingkan pada paralel
2.      Jumlah kabel serial lebih sedikit; Anda bisa menghubungkan dua perangkat komputer yang berjauhan dengan hanya 3 kabel untuk konfigurasi null modem, yaitu TXD (saluran kirim), RXD(saluran terima) dan Ground, bayangkan jika digunakan teknik paralel akan terdapat 20 – 25 kabel! Namun pada masing-masing komputer dengan komunikasi serial harus dibayar “biaya” antarmuka serial yang agak lebih mahal
3.      Banyaknya piranti saat ini (palmtop, organizer, hand-phone dan lainlain) menggunakan teknologi infra merah untuk komunikasi data; dalam hal ini pengiriman datanya dilakukan secara serial. IrDA-1 (spesifikasi infra merah pertama) mampu mengirimkan data dengan laju 115,2 kbps dan dibantu dengan piranti UART, hanya panjang pulsa berkurang menjadi 3/16 dari standar RS-232 untuk menghemat daya
4.      Untuk teknologi embedded system, banyak mikrokontroler yang dilengkapi dengan komunikasi serial (baik seri RISC maupun CISC) atau Serial Communication Interface (SCI); dengan adanya SCI yang terpadu pada 1C mikrokontroler akan mengurangi jumlah pin keluaran,  sehingga hanya dibutuhkan 2 pin utama TxD dan RxD (di luar acuan ground).[5]
Dari kelebihan di atas banyak perangkat yang menggunakan port RS-232, contohnya saja monitor, GP balances, printer, scanner dll.
modem wavecom dengan port RS-232                                  monitor LCD dengan port RS-232

                                              
 


  





 GP balances dengan port RS-232                                  VGA card dengan port RS-232                                                                                                                                                                                    
Gambar 5. Contoh penggunaan RS-232
METODE PENGIRIMAN :
Komunikasi Data UART
Ada 2 macam cara komunikasi data serial yaitu Sinkron dan Asinkron. Pada komunikasi data serial sinkron, clock dikirimkan bersama sama dengan data serial,  tetapi clock tersebut dibangkitkan sendiri – sendiri baik pada sisi pengirim maupun  penerima. Sedangkan pada komunikasi serial asinkron tidak diperlukan clock karena data  dikirimkan dengan kecepatan tertentu yang sama baik pada pengirim / penerima. RS232 metode komunikasi asinkron seri. Kata seri berarti, bahwa informasi yang dikirim satu bit pada suatu waktu.
Pada IBM PC kompatibel port serialnya termasuk jenis asinkron. Komunikasi data serial ini dikerjakan oleh UART (Universal Asynchronous Receiver Transmitter). IC UART dibuat khusus untuk mengubah data parallel menjadi data serial dan menerima data serial yang kemudian dirubah lagi menjadi data parallel.IC UART 8250 merupakan salah satunya. Selain berbentuk IC mandiri berbagai macam mikrokontroller juga ada yang dilengkapi dengan UART, misalnya AT89S51/52/53 atau PIC16F877.
Pada UART, kecepatan pengiriman data ( atau yang sering disebut dengan Baud Rate ) dan fase clock pada sisi transmitter dan sisi receiver harus sinkron. Untuk itu diperlukan sinkronisasi antara Transmitter dan Receiver. Hal ini dilakukan oleh bit “Start” dan bit “Stop”. Ketika saluran transmisi dalam keadaan idle, output UART adalah dalam keadaan logika “1”.
Ketika Transmitter ingin mengirimkan data, output UART akan diset dulu ke logika “0” untuk waktu satu bit. Sinyal ini pada receiver akan dikenali sebagai sinyal “Start” yang digunakan untuk menyinkronkan fase clocknya sehingga sinkron dengan fase clock transmitter. Selanjutnya data akan dikirimkan secara serial dari bit yang paling rendah (bit0) sampai bit tertinggi.Selanjutnya akan dikirimkan sinyal “Stop” sebagai akhir dari pengiriman data serial.
Sebagai contoh misalnya akan dikirimkan data huruf “A” dalam format ASCII (atau sama dengan 41 heksa atau 0100 0001.
                                          Pengiriman hufur “A” tanpa bit paritas
Kecepatan transmisi (baud rate) dapat dipilih bebas dalam rentang tertentu.Baud rate yang umum dipakai adalah 110, 135, 150, 300, 600, 1200, 2400, dan 9600 (bit/perdertik).Dalam komunikasi data serial, baud rate dari kedua alat yang berhubungan harus diatur pada kecepatan yang sama. Selanjutnya harus ditentukan panjang data (6,7 atau 8 bit), paritas (genap, ganjil, atau tanpa paritas), dan jumlah bit “Stop” (1, 1 ½ , atau 2 bit).
Untuk dapat menggunakan port serial harus diketahui dahulu alamat dari port serial tersebut. Biasanya tersedia dua port serial pada CPU, yaitu COM1 dan COM2. Base Address COM1 biasanya 1016 (3F8h) dan COM2 biasanya 760 (2F8h). Alamat tersebut adalah alamat yang biasa digunakan, tergantung komputer yang digunakan.Tepatnya kita bisa melihat pada peta memori tempat menyimpan alamat tersebut, yaitu memori 0000.0400h untuk COM1 dan 0000.0402h untuk COM2.[7]
LEVEL TEGANGAN :
Gambar 6. Grafik level tegangan [4]
Spesifikasi elektronik dari serial port RS232 merujuk pada Electronic Industry Association (EIA) :
1.      “Space” (logika 0) ialah tegangan antara + 3 hingga +25 V.
2.      “Mark” (logika 1) ialah tegangan antara –3 hingga –25 V.
3.      Daerah antara + 3V hingga –3V tidak didefinisikan /tidak terpakai
4.      Tegangan open circuit tidak boleh melebihi 25 V.
5.      Arus hubungan singkat tidak boleh melebihi 500 mA.[7]

Gambar 7. Diagram level tegangan RS-232 pada osiloskop [2]
MODE HANDSHAKING :
            Hardware PC biasa mungkin bisa bekerja hanya dengan Tx (Transmitter), Rx (Receiver) dan pentanahan yang terhubung. Driver pada software akan menunggu untuk sebuah handshaking agar berada pada level yang benar. Tergantung pada keadaan sinyalnya sendiri mungkin bisa bekerja atau juga tidak. Solusi yang dapat dilakukan adalah menyimpul balik jalur handshake bila tidak digunakan.


Gambar 8. Contoh penyimpulan handshake
Ketika jalur handshake disimpul, RTS output dari PC langsung mengaktifkan CTS input, sehingga PC dengan efektif mengendalikan handshaking nya sendiri.[8]
     
                           







 Gambar 9. Contoh penyimpulan pada RS-232 DB9 dan DB25
            Menghubungkan 2 perangkat serial secara bersamaan melibatkan penghubungan Rx pada satu perangkat dan Tx pada perangkat lainnya. Diagram di bawah ini menunjukkan bagaimana cara menghubungkan 2 PC secara bersamaan tanpa handshaking.


Gambar 10. Menghubungkan 2 PC tanpa handshaking dengan RS-232 
Ketika diperlukan handshaking, umumnya RTS dari satu perangkat terhubung ke CTS yang lain, dan sebaliknya, dan juga DSR dari satu perangkat terhubung ke DTR perangkat lain, dan sebaliknya. Persyaratan khusus untuk peralatan yang berbeda mungkin berbeda.[8]
Gambar 11. Menghubungkan 2 PC dengan handshaking pada RS-232
CONTOH PROGRAM DALAM BAHASA C/C++ :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace SerialPort{
    public partial class Form1 : Form    {  
      // Add this variable 
        string RxString;

        public Form1() 
       {  
          InitializeComponent(); 
       }

        private void buttonStart_Click(object sender, EventArgs e)   
     {      
            serialPort1.PortName = "COM1";
            serialPort1.BaudRate = 9600;

            serialPort1.Open();  
          if (serialPort1.IsOpen) 
           {             
   buttonStart.Enabled = false;
                buttonStop.Enabled = true;
                textBox1.ReadOnly = false;
            }  
      }

        private void buttonStop_Click(object sender, EventArgs e)
        {           
               if (serialPort1.IsOpen)       
            {   
                serialPort1.Close();
                buttonStart.Enabled = true;
                buttonStop.Enabled = false;
                textBox1.ReadOnly = true; 
            }

        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)        
         { 
           if (serialPort1.IsOpen) serialPort1.Close();  
         }

        private void DisplayText(object sender, EventArgs e)  
      {            textBox1.AppendText(RxString);        }

        private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) 
       {   
            RxString = serialPort1.ReadExisting();
            this.Invoke(new EventHandler(DisplayText)); 
       }

        private void buttonSend_Click(object sender, EventArgs e)  
      {

            // If the port is closed, don't try to send a character. 
           if (!serialPort1.IsOpen) 
           {   
                  textBox1.Text = "port closed";
                  return; 
           }

            serialPort1.Write(textBox2.Text); 
            textBox1.Text = "terkirim";  
        }
    }
}
 [9]



Referensi :








Tidak ada komentar:

Posting Komentar