Komunikasi Paralel Port
Komputer
By
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
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
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
DB 25
•
Bila kita menggunakan jalur LPT1
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
Experiment
Microcontroll er
(AT89S52)
Sinkronisas i signal AC
Bufer
current & voltage
Beba n
KONSEP KOMUNIKASI
SERIAL
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);
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)
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
TINJAUAN PERANGKAT
KERAS
Spesifkasi Perangkat Keras
Piranti-piranti yang menggunakan
komunikasi serial meliputi:
• DTE = Data Terminal Equipment,
yaitu komputer itu sendiri;
• DCE = Data Communication
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
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
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
• pengujian port serial bisa digunakankonfgurasi
Loopback Plug
• Jika anda memasang plug ini pada komputer dengan
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
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
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,
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,
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
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
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.
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
•
End of
•
Komunikasi serial
Arduino
adalah
Komunikasi antara Arduino Uno dan
Komputer dapat dilakukan melalui
• 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.
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.
•
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.
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
Bahan yang perlu dipersiapkan antara lain :
•
Komputer + Software IDE Arduino
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”.
Bahan yang perlu
dipersiapkan antara lain :
•
Arduino Uno
•
LED (4 pcs)
•
Resistor (4 pcs)
•
Breadboard
•
Kabel jumper
•
Komputer + Software IDE Arduino
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()>)
• {
• 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)
• modeof: // Semua LED akan of
• {
• digitalWrite(lamp1,LOW);
• digitalWrite(lamp2,LOW);
• digitalWrite(lamp3,LOW);
• delay(1000);
• Serial.println("LED mode of");
• loop();
• goto modeof; }
• }