Komunikasi serial membutuhkan port sebagai saluran data. Berikut tampilan port serial
DB9 yang umum digunakan sebagai port serial
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. Umumnyua COM1 berada dialamat 3F8H, sedangkan COM2 dialamat
2F8H.
int main(void)
{
int in, out, status, DONE = FALSE;
bioscom(0, SETTINGS, COM1);//3 parameter dari bioscom
cprintf("Komunikasi serial menggunakan BIOSCOM, tekan [ESC] untuk keluar \n");
while (!DONE)
{
status = bioscom(3, 0, COM1);
if (status & DATA_READY)
if ((out = bioscom(2, 0, COM1) & 0x7F) != 0)
putch(out);
if (kbhit())
{
if ((in = getch()) == '\x1B')
DONE = TRUE;
bioscom(1, in, COM1);
}
}
return 0;
}
Jika Anda ingin membuat aplikasi menggunakan bahasa Visual Basic .NET, menggunakan kelas Rs232,
berikut contohnya :
Try
‘gunakan fungsi Read()
moRS232.Read(CInt(txtBytes2Read.Text))
txtRx.Text = moRS232.InputStreamString
txtRx.ForeColor = Color.Black
txtRx.BackColor = Color.White
'// Fills listbox with hex values
Dim aBytes As Byte() = moRS232.InputStream
Dim iPnt As Int32
For iPnt = 0 To aBytes.Length - 1
lbHex.Items.Add(iPnt.ToString & ControlChars.Tab & String.Format("0x{0}",
aBytes(iPnt).ToString("X")))
Next
Catch Ex As Exception
txtRx.BackColor = Color.Red
txtRx.ForeColor = Color.White
txtRx.Text = "Terjadi error " & Ex.Message & " data fetched: " &
moRS232.InputStreamString
End Try
Kita juga dapat menggunakan komponen yang sudah dibuat oleh suatu perusahaan,
misalnya PortController.Net yang terdapat pada CD Program, sehingga pemrograman
menjadi lebih mudah seperti contoh mebuka dan menulis ke suatu port serial berikut :
Jika hanya menggunakan bahasa Visual Basic 6, tempelkan kontrol MSComm1, dan
masukkan kode untuk menset MSComm1 dimana memperoleh input dari suatu combobox
berikut :
MsComm1.commPort=cmbPort.ListIndex +1
MsComm1.Settings=cmbbitspersecond.text
MSComm1.Handshaking=cmbFlowControl.LinstIndex
Interfacing Port Paralel
Pengenalan Port Paralel
Port paralel ialah port data di komputer untuk mentransmisi 8 bit data dalam sekali
detak. Standar port paralel yang baru ialah IEEE 1284 dimana dikeluarkan tahun
1994. Standar ini mendefinisikan 5 mode operasi sebagai berikut :
1. Mode kompatibilitas
2. mode nibble
3. mode byte
4. mode EPP (enhanced parallel port)
5. mode ECP (Extended capability port)
Tujuan dari standar yang baru tersebut ialah untuk mendesain driver dan peralatan
yang baru yang kompatibel dengan peralatan lainnya serta standar paralel port
sebelumnya (SPP) yangn diluncurkan tahun 1981. Mode Compatibilitas, nibble dan
byte digunakan sebagai standar perangkat keras yang tersedia di port paralel orisinal
dimana EPP dan ECP membutuhkan tambahan hardware dimana dapat berjalan
dengan kecepatan yang lebih tinggi. Mode kompatibilitas atau (“Mode Centronics” )
hanya dapat mengirimkan data pada arah maju pada kecepatan 50 KBytes per detik
hingga 150 KBytes per detik. Untuk menerima data, anda harus mengubah mode
menjadi mode nibble atau byte. Mode nibble dapat menerima 4 bit (nibble) pada
arah yang mundur, misalnya dari alat ke computer. Mode byte menggunakan fitur bi-
directional parallel untuk menerima 1 byte (8 bit) data pada arah mundur. IRQ
(Interrupt Request ) pada port paralel biasanya pada IRQ5 atau IRQ7.
Port paralel Extend dan Enhanced menggunakan hardware tambahan untuk
membangkitkan dan mengatur handshaking. Untuk mengeluarkan 1 byte ke printer
menggunakan mode kompatibilitas, software harus :
1. menulis byte ke data port
2. cek untuk melihat apakah printer sibuk, jika sibuk, ia tidak akan menerima
data, sehingga data yang telah ditulis akan hilang.
3. buat strobe (pin 1) rendah. Ini memberitahukan printer bahwa data yang
benar telah berada di line data
4. buat strobe tinggi lagi setelah menunggu sekitar 5 mikrodetik setelah
membuat strobe low.
Hal ini membatasi kecepatan data. Sedangkan EPP dan ECP mengizinkan hardware
mengecek jika printer sibuk dan mengeluarkan sinyal strobe atau handshaking
lainnya. Ini berate hanya 1 instruksi I/O yang harus dilakukan yang akan
meningkatkan kecepatan Port ECP juga mempunyai kelebihan menggunakan saluran
DMA dan buffer FIFO, jadi data dapat digeser tanpa menggunakan instruksi I/O.
Protokol EPP mempunyai 4 macam siklus transfer data yang berbeda yaitu :
1. Siklus baca data (Data read)
2. Siklus baca alamat (Address Read)
3. Siklus tulis data (data write)
4. siklus tulis alamat (address write)
Untuk mengeluluarkan data di port parallel, anda gunakan fungsi outport (8 bit ) dan
outportb(16 bit) sebagai berikut :
Gambar berikut contoh penggunakan port paralel untuk mengendalikan 5 buah 7 segment
menggunakan IC 74LS244 dan 75492, anda juga dapat kembangkan menggunakan dot
matrix 5x7. Perlu diketahui bahwa port control di port paralel menggunakan jenis open
kolektor, dimana jika diukur dnegan voltmeter, maka output port control akan selalu
bernilai tinggi (5V). Yang dibutuhkan di sini ialah kecerdikan anda di dalam membuat
program , jika dilihat dari gambar, 7 segment membutuhkan 7 input yang berasal dari
74LS244. Sedangkan untuk memilih 7 segment mana yang aktif Anda cukup
memberikan pulsa ke pin IC 75492 yang sesuai.
Alamat port paralel umumnya 378H, Jika anda menggunakan bahasa Pascal untuk
mengeluarkan data ke port paralel berikut contoh kodenya :
Prosedure lampu_hidup_naik;
Begin
I:=1;
repeat
Port[$378]:=I;
I:=I*2;
until I>255;
End;
Jika anda ingin menggunakan bahasa C, akan lebih baik alamat port anda
definisikan sebagai berikut
int Read_Input()
{
int Byte;
Byte=inportb(0x378);
return Byte;
}
void main (void)
{
int PP_Input;
clrscr();
PP_Input = Read_Input();
printf("%d",PP_Input);
getch();}
Ketika BIOS mengeset alamat ke peralatan printer Anda, ia menyimpan alamat
pada lokasi tertentu di memory, seperti pada Tabel 9.3. Alamat 0000:040E pada
BIOS Data Area mungkin digunakan sebagai Extended Bios Data Area di PS/2
dan BIOS yang lebih baru .
Tabel Alamat LPT di BIOS Data Area
Tabel diatas menampilkan alamat dimana kita dapat mencari alamat port
printer pada BIOS Data Area. Tiap alamat membutuhkan 2 byte. Kode berikut
ialah contoh program pencarian alamat port printer di komputer Anda.
Untuk mendeteksi alamat port printer apa saja yang telah diset pada port parallel,
gunakan perintah debug sebagai berikut :
Dari gambar diatas terlihat LPT1 diset dialamat 378H dan ada alamat lainnya yang
telah diset juga.
Contoh aplikasi berikut akan mengukur suhu melalui port parallel dan sensor DS1722. Pin
SERMODE ialah Serial interface mode, sedangkan CE ialah Chip Enable seperti
penjelasan pada Tabel
No.
Nama Pin Keterangan
Pin
7 SERMODE Serial Interface Mode
2 CE Chip Enable
3 SCLK Serial Clock
5 SDO Serial Data Out
6 SDI Serial Data In
8 VDDA Analog supply voltage
Gambar Rangkaian sensor temperatur
Terlihat pada gambar, yang dibutuhkan hanya sinyal SCK, SDI dan SD0 untuk
mengirim data ke port parallel. An3315.pdf merupakan tutorial menulis program
bahasa C untuk 2 wire di port parallel.
void dodelay(long);
void outportd(unsigned char);
int dport,sport;
void main(void)
{
unsigned char LSB,transfer(unsigned char,unsigned char);
char MSB; /* note this is signed */
void outportd(unsigned char outbyte);
int i,j,it;
float T;
Pada program diatas, program melakukan pendeteksian Port LPT1, lalu melakukan
inisialisasi DS1722 untuk membaca temperatur dan dikirim ke port LPTI1 dengan
delay tertentu.
Ada 3 modus operasi pada PIO 8255 yang dapat dipilih melalui software yaitu :
Mode 0 : basic input/output
Mode 1 : strobed input/output
Mode 2: bidirectional bus
Jika reset input mendapat input high, semua port akan diset ke mode input dimana
semua 24 jalur ditahan pada logika 1 oleh bus internal. PPI 8255 dapat dibuat
sebagai antarmuka DAC atau ADC. Untuk mencoba DAC yang terprogram paling
mudah menggunakan PPI 8255 dalam mode 0. Langkah-langkah:
Pasang Card PPI 8255 ISA, anda juga dapat menggunakan Card PPI 8255
berbasiskan PCI
Hubungkan DAC ke port A
Hubungkan keluaran DAC ke Osiloskop
Buat program berikut :
Program diatas akan membangkitkan sinyal sinus karena terdapat pembangkitan nilai
sinus pada rumus Vout =5.0 +5.0* sin ((3.14*a)/180)). Alamat yang digunakan ialah
300H, yang merupakan alamat standar port ISA untuk eksperimen.
Private Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Integer)
As Integer
Private Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer,
ByVal Value As Integer)
Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long)
Mengenal USB
USB ialah port yang sangat diandalkan saat ini dengan bentuknya yang kecil dan
kecepatan datanya yang tinggi. Anda dapat menghubungkan hingga 127 produk usb
dalam 1 komputer. USB versi 1.1 mendukung 2 kecepatan yaitu mode kecepatan penuh
12Mbits/s dan kecepatan rendah 1.5 Mbits/s. USB 2.0 mempunyai kecepatan 480Mbits/s
yang dikenal sebagai mode kecepatan tinggi.
Saat ini transfer data menggunakan port USB sudah semakin marak, port USB menjadi
pilihan utama karena ukuran yang ringkas dan kecepatan transfer data yang cukup
besar. Sebagai perbandingan, Bus PCI saat ini mendukung transfer data hingga 132
MB/s, dimana AGP (pada 66MHz) mendukung hingga 533 MB/s. AGP dapat melakukan
ini karena kemampuannya untuk mentransfer data pada ujung naik dan turun detak
66MHz.
Ada dua macam konektor USB : konektor A untuk hubungan ke host dan konektor B
untuk hubungan ke peranti USB . Secara fisik dapat dibedakan dengan mudah untuk
menghindari kesalahan pemasangan.
Fungsi USB
Suatu piranti USB dapat dikatakan sebagai sebuah alat transceiver( pengirim sekaligus
penerima ) Baik host maupun USB itu sendiri. Sebuah istilah baru di perkenalkan,
yakni USB function yang maksudnya adalah peralatan USB yang memilki kemampuan
khusus. Seperti printer, scanner, modem, dan lain-lainnya.
Data dikirim secara serial, maka piranti USB harus mampu menangani gelombang
kontinyu. Gelombang ini di hubungkan langsung ke pin data USB dari sebuah sumber
tegangan dengan impedansi output 39. Sumber tegangan rangkaian terbuka untuk
keperluan ini ada pada kemungkinan terburuk dari adanya overshoot dan undershoot.
Pada koneksi USB dengan kecepatan 12 MHz digunakan kabel twisted-pair yang
terlindung dengan impedansi 90 kurang lebih 15% dan delay maksimumnya
26ns.Sedang impedansi pada drivernya harus antara 28 hingga 44. Jika di ukur, arus
yang masuk dan keluar piranti USB V1.1 tidak boleh melebihi 10,71 VOH mA. Tegangan
logika yang di masukan ke D+ dan D- tidak boleh melebihi 0.3 VOH untuk logika rendah
dan juga harus turun sebesar 0.7 VOH untuk logika tinggi.
Karena ada piranti USB yang berkomunikasi pada kecepatan rendah 1.5 MHz, maka
kombinasi kabel dan piranti USB harus mengandung kapasitas tunggal dengan nilai
200pF hingga 450pF di pin D+ dan D-. Perambatan delay pada kabel kecepatan rendah
harus kurang dari 18 ns. Data sinyal yang naik turun diukur dari 10% hingga 90% dari
sinyal,dengan toleransi 10%. Waktu untuk ini dari 4ns hingga 20ns, tergantung kecepatan
USB yang digunakan.
Sudah saatnya anda membangun aplikasi menggunakan port USB. Jika anda
ingin membangun sistem elektronika berbasis port USB, dapat menggunakan
chip FTDI atau modul FTDI, antara lain :
FT2232C , IC USB UART/FIFO
FT2232L -
Selain dapat membeli chip tersebut, kita dapat juga membeli modul-modul DIP
menggunakan chip FTDI, antara lain DLP-2232M, yaitu modul
menggunakan FT2232C3rd generation Dual USB UART/FIFO
Gambar DLP-2232M
Versi lainnya seperti DLP-USB245M ialah modul ekonomis menggunakan chip
FT245BM sebagai USB FIFO. Modul ini memiliki chip pendukung antara lain 93C46
EEPROM untuk kustomisasi OEM. Beberapa chip dan model lainnya dapat anda miliki
dari produk FTDI.
Gambar DLP-USB245M
Demikianlah penjabaran dari sistem bus dan penerapannya. Semoga Anda dapat
mengembangkan berbagai aplikasi yang berhubungan dengan Bus Komputer.
LATIHAN :
1. Buat rangkaian pengendali relay dari port paralel dan PPI 8255 menggunakan
transistor 2N3904 dan 2N3053. Input berlogika tinggi dari keluaran port paralel
akan mengaktifkan transistor 2N3904 dan arus diperkuat oleh 2N3053.
Rangkaiannya sebagai berikut: