Anda di halaman 1dari 46

Komunikasi Paralel Port

Komputer
By
Kustanto
Definisi
• 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

Catu 220 Volt

Microcontroller Buffer current Beban


(AT89S52) & voltage

Sinkronisasi
signal AC
Tampilan software sistem dari PC
KONSEP KOMUNIKASI SERIAL

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 konfigurasi 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
(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 IC mikrokontroler akan
mengurangi jumlah pin keluaran, sehingga hanya dibutuhkan 2 pin
utama TxD dan RxD (di luar acuan ground).
TINJAUAN PERANGKAT KERAS
Spesifikasi 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 didefinisikan
(undefined);
• 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

• Konfigurasi 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 digunakankonfigurasi 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).
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 menggunakan modem 28,8K atau 36,6K, maka artinya kecepatan


ini mengacu pada Iaju kecepatan DCE ke DCE.

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 datanya
bisa mencapai 230.400 bps.
Kontrol Aliran (Flow Control)
Jika Iaju kecepatan DTE ke DCE lebih cepat dibandingkan dengan DCE ke
DCE, lambat-laun akan menyebabkan kehilangan data (terjadi buffer
overflow),
dengan demikian dibutuhkan kontrol aliran baik secara perangkat lunak
maupun perangkat keras.

Kontrol aliran melalui perangkat lunak yang biasa digunakan adalah


Xon/Xoff, yaitu dengan cara mengirimkan karakter Xon (ascii 17) dan Xoff
(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 Xoff 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 (buffer), 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.

2. Komunikasi asinkron tidak memerlukan sinyal clock


sebagai sinkronisasi. 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 Significant 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 
• 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);
• }
Lanjutan
• void loop()
• {
• if (Serial.available()&gt;)
• {
• int bacadata = Serial.read();
• if (bacadata =='a') {databaca=1;}
• if (bacadata =='b') {databaca=2;}
• if (bacadata =='c') {databaca=3;}
•  
• if(databaca==1)
• running: //LED akan berjalan pada mode running
• {
• digitalWrite(lamp1, HIGH);
• delay(250);
• digitalWrite(lamp1, LOW);
• delay(250);
• digitalWrite(lamp2, HIGH);
• delay(250);
• digitalWrite(lamp2, LOW);
• delay(250);
• digitalWrite(lamp3, HIGH);
• delay(250);
• digitalWrite(lamp3, LOW);
• delay(250);
• Serial.println("LED mode running");
• loop();
• goto running;
• }
Lanjutan
• if(databaca==2)
• flipflop: // LED akan berjalan pada mode flip flop
• {
• digitalWrite(lamp1, LOW);
• digitalWrite(lamp2, LOW);
• digitalWrite(lamp3, LOW);
• delay(500);
• digitalWrite(lamp1, HIGH);
• digitalWrite(lamp2, HIGH);
• digitalWrite(lamp3, HIGH);
• delay(500);
• Serial.println("LED mode flip flop");
• loop();
• goto flipflop;
• }
•  
• if(databaca==3)
• modeoff: // Semua LED akan off
• {
• digitalWrite(lamp1,LOW);
• digitalWrite(lamp2,LOW);
• digitalWrite(lamp3,LOW);
• delay(1000);
• Serial.println("LED mode off");
• loop();
• goto modeoff; }
• }
• }
Hasil pada serial monitor

Anda mungkin juga menyukai