Komunikasi Paralel Port Komputer

  Komunikasi Paralel Port Komputer By Kustanto

Defnisi

  • • Komunikasi paralel adalah komunikasi yang mengirimkan

    data secara bersamaan. Pada penggunaan komunikasi paralel semua bit dikirim secara bersamaan pada waktu yang sama. Oleh karena itu pada komunikasi ini kita membutuhkan banyak kabel.
  • kelemahankomunikasi paralel akibat banyaknya kabel

    yang dibutuhkan, dan panjang kabel ini tidak boleh lebih

    dari 20 m, untuk menjaga keaslian data.
  • Kelebihan komunikasi paralel adalah lebih cepat dan kapasitas yang dibawa juga banyak serta pemrograman yang lebih mudah.

Komunikasi Paralel

  • Komunikasi paralel yang digunakan adalah komunikasi paralel lewatkabel data untuk printer (saat mengeluarkan data).
  • • Pada keadaan normal (tidak aktif) tegangan pada

    pin-pin ini adalah 0 volt, namun bila kita beri high, maka tegangannya akan berubah menjadi 5 volt.

DB 25

  Pada port paralel ada 3 jalur data, yaitu :  Jalur kontrol Memiliki arah bidirectional

  Jalur status

   Memiliki satu arah, yaitu arah input.

  Jalur data

   Memiliki 2 arah. Dapat juga berfungsi sebagai pengirim Address dan data, masing-masing 8 bit, dimana keduanya melakukan transfer data dengan protokolhandshaking serta diakses dengan register yang berbeda.

  DB 25

  • Bila kita menggunakan jalur LPT1 maka alamat yang ditentukan oleh PC adalah:

Fungsi Pin DB- 25

  Port paralel dapat mentransmisi 8 bit data dalam sekali detak. Tata-letak dari ke-dua puluh lima pin (DB 25) parallel

printer port, diperlihatkan dalamGambar.

  Untuk kirim data biner 8 bit ke por,

dapat diperintah denganmenggunakan

program C, VB, Delphi, Java dsb. Misalnya, untuk xxxxxxxxxxxxxxxx pertama

datanyaadalah 1 hex (biner; 0000001),

sedangkan data biner 10000000 (80 hex

/ 128dec) digunakan untuk menyalakan

LED kedelapan

Experiment

  Microcontroll er (AT89S52)

  Sinkronisas i signal AC Bufer current & voltage

  Beba n Catu 220 Volt Tampilan software sistem dari PC

  Pengantarmukaan Periferal Komputer Antarmuka Kanal serial lebih kompleks/sulit dibandingkan dengan antarmuka melalui kanal, karcna:

  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;

  

Kelebihan serial vs Paralel

  

1. Kabel untuk komunikasi serial bisa lebih panjang dibandingkan

dengan paralel;

data-data dalam komunikasi serial dikirim-kan untuk logika '1'

sebagaitegangan -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;

hanya 3 kabel untuk konfgurasi null modem, yaitu TXD (saluran kirim),

RXD(saluran terima)

dan Ground, 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 menggunakan teknologi infra merah untuk komunikasi data;

dalam hal ini pengiriman datanya dilakukan secara serial. IrDA-

1 (spesifkasi 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 IC mikrokontroler akan mengurangi jumlah pin keluaran, sehingga hanya dibutuhkan 2 pin utama TxD dan RxD (di luar acuan ground).

  

KERAS

Spesifkasi Perangkat Keras Piranti-piranti yang menggunakan komunikasi serial meliputi:

  • DTE = Data Terminal Equipment,

  yaitu komputer itu sendiri;

  • DCE = Data Communication

  Equipment, misalnya modem, plotter dan lain-lain; parameter yang ditetapkan EIA (Electronics Industry

  Association) antara lain:

  • Sebuah 'spasi' (logika 0) antara tegangan +3 s/d
    • 25 volt;

  • Sebuah 'tanda' (logika 1) antara tegangan -3 s/d - 25 volt;
  • Daerah tegangan antara +3 s/d -3 volt tidak didefnisikan (undefned);
  • Tegangan rangkaian terbuka tidak boleh lebih dari 25 volt (dengan acuan ground)',
  • Arus hubung-singkat rangkaian tidak boleh lebih dari 500 mA. Sebuah penggerak (driver) harus

  mampu menangani arus ini tanpa mengalami kerusakan.

PORT SERIAL

  • PORT

  Port adalah konektor, biasanya terdapat pada

  bagian belakang chasing komputer yang menghubungkan sistem komputer dengan device eksternal (contoh : printer, modem, joystick dan sebagainya)

  • PORT SERIAL

  Terdiri dari 9 atau 25 pin Biasanya digunakan untuk koneksi mouse atau modem. Port ini diberi nama COM1, COM2, dan seterusnya.port serial hanya dapat menerima atau membaca data satu persatu dalam ukuran 1 bit melalui satu kabel tunggal. Port serial lebih cocok untuk peralatan yang tidak banyak melakukan perpindahan data. Port serial popular digunakan oleh mouse dan keyboard.

Konfigurasi Null Modem • Konfgurasi Null Modem digunakan untuk menghubungkan dua DTE

  • • Dalamhal ini hanya dibutuhkan tiga kabel antar DTE, yaitu TxD, RxD

    dan Gnd.
  • Cara kerjanya cukup mudah: yaitu bagaimana membuat komputer agar mengira dia berkomunikasi dengan modem (DCE) bukan dengan komputer Lainnya.

  • pengujian port serial bisa digunakankonfgurasi

  Loopback Plug

  • • Jika anda memasang plug ini pada komputer dengan

    perangkat lunak terminal (misalnya Hyperterminal pada Sistem Operasi Windows), maka apa yang Anda ketikkan akan dimunculkan lagi (echoing).

  Jika menggunakan modem 28,8K atau 36,6K, maka artinya kecepatan ini mengacu pada Iaju kecepatan DCE ke DCE.

  

Laju Kecepatan DTE/DCE

Laju kecepatan pengiriman data yang sering dibicarakan adalah

  • • Iaju kecepatan DTE ke DCE (antara PC dan modem atau disebut

    juga sebagai Iaju kecepatan terminal (terminal speed))
  • Iaju kecepatan DCE ke DCE (antar modem yang berkomunikasi

    atau disebut juga sebagai Iaju kecepatan jalur (line speed)).

  Jika digunakan UART 16550a, maka Iaju kecepatan maksimumnya adalah 115.200 bps, sedangkan kebanyakan perangkat lunak yang digunakan saat ini digunakan untuk mengatur Iaju kecepatan DTE kc DCE.

  Banyak modem saat ini beredar di pasaran dilengkapi dengan fasilitas kompresi- dekompresi data. Biasanya rasionya sekitar 1:4 (untuk berkas

teks), dengan demikian jika dilakukan transfer

data dengan Iaju 28,8K (DCE ke DCE), maka artinya modem tersebut mengirimkan data dengan Iaju 115,2Kbps (DTE ke DCE).

  Hal ini yang menyebabkan Iaju DTE ke DCE bisa lebih besar dari DCE ke DCE.

  Namun ada juga modem yang bisa melakukan kompresi hingga rasionya

mencapai 1:8, sehingga kecepatan

Iaju DTE ke DCE bisa mencapai 168.800 bps (modem <--> UART).

  Jika digunakan 16550a, yang kecepatannya maksimum hanya 115.200 bps, akan sia-sia saja, sehingga sebaiknya digunakan UART

16550c yang kecepatan pengiriman

Kontrol Aliran (Flow Control)

  

Jika Iaju kecepatan DTE ke DCE lebih cepat dibandingkan dengan

DCE ke DCE, lambat-laun akan menyebabkan kehilangan data

(terjadi bufer overfow),

dengan demikian dibutuhkan kontrol aliran baik secara perangkat

lunak maupun perangkat keras.

  Kontrol aliran melalui perangkat lunak yang biasa digunakan adalah Xon/Xof, yaitu dengan cara mengirimkan karakter Xon

  (ascii 17) dan Xof (ascii 19) yang masing-masing membutuhkan panjang data terkirim total 10 bit, sehingga

akibatnya akan memperlambat laju kecepatan, namun dari sisi

perangkat keras tidak menambah jumlah kabel serial.

  

Karakter Xon digunakan sebagai tanda bahwa modem siap untuk

menerima data berikutnya, Karakter Xof digunakan sebagai sinyal untuk menghentikan pengiriman data dari komputer.

  Lanjutan Flow Control Sedangkan kontrol aliran melalui perangkat keras menggunakan sinyal RTS (Request To

  Send) dan CTS (Clear To Send) , sehingga dalam hal ini perlu ditambahkan dua kabel lagi namun dari sisi perangkat lunak tidak dibutuhkan tambahan bit, sehingga tidak akan menurunkan laju kecepatan.

  Pada saat komputer ingin mengirimkan data

maka akan diaktifkan sinyal RTS, jika modem

masih memiliki ruang penyimpan sementara

(bufer), maka modem akan mengirimkan jawaban berupa sinyal CTS.

Teknik Komunikasi Serial

  1. Komunikasi data serial secara sinkron adalah merupakan bentuk komunikasi data serial yang memerlukan sinyal clock untuk sinkronisasi di mana sinyal clock tersebut akan tersulut pada setiap bit pengiriman data.

  Pengiriman data pada komunikasi serial dilakukan mulai dari start bit yaitu bit yang

paling rendah (LSB) hingga stop bit yaitu

bit yang paling tinggi (MSB).

  secara umum bentuk gelombang informasi untuk komunukasi serial terlihat seperti gambar diatas format 8N1, yaitu 8-bit data, tanpa parity, 1 stop bit.

  Pada keadaan idle atau menganggur, jalur RS-232 ditandai dengan mark state atau Logika HIGH.

  Pengiriman data diawali dengan start bit yang berlogika 0 atau LOW, berikutnya data dikirimkan bit demi bit mulai dari LSB (Least Signifcant Bit) atau bit ke-0.

  Pengiriman setiap byte diakhiri dengan stop bit yang berlogika HIGH.

  

Gambar diatas memperlihatkan kondisi LOW setelah stop

bit, ini adalah start bit yang menandakan data berikutnya akan dikirimkan. Jika tidak ada lagi data yang ingin dikirim, maka jalur transmisi ini akan dibiarkan dalam keadaan HIGH.

  ‘Break Signal’, yaitu keadaan LOW yang lamanya cukup untuk mengirimkan 8-bit data.

  

Data yang dikirimkan dengan cara seperti pada gambar

dia atas ini disebut data yang terbingkai ( to be framed ) oleh start dan stop bit.

  Jika stop bit dalam keadaan LOW, berarti telah terjadi framing error . Biasanya hal ini terjadi karena perbedaan kecepatan komunikasi antara pengirim dengan penerima.

  • End of

    Session

  Komunikasi serial Arduino 

  • adalah

  Komunikasi antara Arduino Uno dan Komputer dapat dilakukan melalui

port USB. Dalam hal ini, Arduino Uno

tidak hanya bisa mengolah data dari

pin I/O secara independ.

  • • Tetapi dapat juga dikomunikasikan dengan komputer untuk ditampilkan

    hasil dari pengolahan datanya sehingga komunikasi yang dilakukan bersifat dua arah.
  • • Pada Arduino IDE menyesuaikan fasilitas untuk melakukan komunikasi

    dua arah tersebut melalui serial monitor.
  • Dengan menggunakan fasilitas ini, dapat dikirimkan data ke Arduino Uno dan sebaliknya dapat membaca kiriman dari arduino uno.
  • Tentu saja, hal ini memungkinkan dapat mengontrol Arduino Uno melalui komputer dan memantau sesuatu yang sedang terjadi di Arduino Uno.
  • Sebagai contoh, saat mengirimkan isyarat untuk menghidupkan lampu

    atau memantau suhu yang terdeteksi oleh sensor suhu di Serial Monitor.

  Jenis command komukasi serial

Arduino :

  • Serial.begin() : untuk menentukan kecepatan pengiriman dan penerimaan data melalui port serial. Kecepatan yang umum digunakan

    adalah 9600 bit per detik (9600 bps). Namun, kecepatan hingga 115.200

    didukung oleh Arduino Uno. Contoh yang sering digunakan yaitu Serial.begin(9600).
  • Serial.end() : digunakan untuk menghentikan program akan perintah komunikasi serial.
  • Serial.available () : berguna untuk menghasilkan jumlah byte di port serial yang belum terbaca. Jika port serial dalam keadaan kosong, maka fungsi ini dapat menghasilkan nilai nol.
  • Serial.read() : berguna untuk membaca satu byte data yang terdapat di port serial. Setelah pemanggilan Serial.read(), jumlah data di port serial berkurang satu.
  • Serial.print(data) : berfungsi untuk mengirimkan data ke port serial.

  Apabila argumen format disertakan, data yang dikirim akan menyesuaikan dengan format tersebut. Dalam hal ini, format yang digunakan bisa berupa.

  • Serial.flush() : berfungsi sebagai untuk pengosongan data pembacaan yang ditaruh pada buffer.
  • Serial.parseFloat() : berfungsi untuk bilangan titik mengambang atau real.
  • Serial.println(data) : memiliki fungsi yang hampir sama dengan serial print, yang memberi efek perpindahan baris berikutnya.
  • Serial.parseln() : untuk menghasilkan nilai bulat.

Contoh konversi data pada komunikasi serial arduino

  • Serial.print(65); //hasil nilai tertampil 65

    Serial.print(65,DEC); //(format desimal atau basis 10) hasil nilai

  • tertampil 65
  • Serial.print(65, HEX); //(format hexadesimal atau basis 16) hasil

    nilai tertampil 41
  • Serial.print(65, OCT); //(format oktal atau basis 8) hasil nilai tertampil 101
  • Serial.print(65, BIN); //(format biner atau basis 2) hasil nilai tertampil 1000001

  Bahan yang perlu dipersiapkan antara lain :

  • Komputer + Software IDE Arduino • Arduino uno

Koding Pemrograman

  • void setup(){
  • Serial.begin(9600);
  • }
  •  
  • void loop(){
  • while(Serial.available() !=){
  • char data = Serial.read();
  • //kirim ke port serial
  • Serial.print("Karakter :");
  • Serial.print(data);
  • Serial.print(", ASCII :");
  • Serial.print(data,DEC);
  • Serial.print(", Oktal :");
  • Serial.print(data, OCT);
  • Serial.print(", Heksa :");
  • Serial.print(data, HEX);
  • Serial.print(", Biner :");
  • Serial.println(data, BIN); //untuk baris pembacaan berikutnya
  • delay(20); // waktu tunda untuk menyiapkan pembacaan berikutnya
  • }}
  •  

  

Berikut hasil pembacaan seperti gambar dibawah ini, dengan mengetikan kata

“nyebarilmu.com”.

  Hasil dari serial monitor

  Komunikasi serial Arduino 

Bahan yang perlu dipersiapkan antara lain :

  • Arduino Uno • LED (4 pcs)
  • Resistor (4 pcs)
  • Breadboard • Kabel jumper
  • • Komputer + Software IDE Arduino

    • Skema rangkaian

  Skema rangkaian

Pemrogramannya

  • int lamp1 = 11;
  • int lamp2 = 12;
  • int lamp3 = 13;
  • int databaca;
  •  
  • void setup() {
  • pinMode(lamp1, OUTPUT);
  • pinMode(lamp2, OUTPUT);
  • pinMode(lamp3, OUTPUT);
  • Serial.begin(9600);
  • }

  • • { • void loop()

  Lanjutan

  • • if (bacadata =='a') {databaca=1;} • int bacadata = Serial.read(); • { • if (Serial.available()>) • if(databaca==1) •   • if (bacadata =='c') {databaca=3;} • if (bacadata =='b') {databaca=2;} • digitalWrite(lamp1, HIGH); • { • running: //LED akan berjalan pada mode running • delay(250); • delay(250); • digitalWrite(lamp2, HIGH); • delay(250); • digitalWrite(lamp1, LOW); • delay(250); • digitalWrite(lamp3, HIGH); • delay(250); • digitalWrite(lamp2, LOW); • loop(); • Serial.println("LED mode running"); • delay(250); • digitalWrite(lamp3, LOW); • } • goto running;
    • • flipflop: // LED akan berjalan pada mode flip flop • if(databaca==2)

      Lanjutan

    • • digitalWrite(lamp3, LOW); • digitalWrite(lamp2, LOW); • digitalWrite(lamp1, LOW); • { • digitalWrite(lamp3, HIGH); • digitalWrite(lamp2, HIGH); • digitalWrite(lamp1, HIGH); • delay(500); • loop(); • Serial.println("LED mode flip flop"); • delay(500); • goto flipflop; • modeof: // Semua LED akan of • if(databaca==3) •   • } • digitalWrite(lamp3,LOW); • digitalWrite(lamp2,LOW); • digitalWrite(lamp1,LOW); • { • goto modeof; } • loop(); • Serial.println("LED mode of"); • delay(1000); • } • }
    • Hasil pada serial monitor