Bab 1 Pendahuluan
1.1 Konsep Komunikasi serial pada Komputer
Komunikasi serial ialah
pengiriman data secara serial (data dikirim satu persatu secara berurutan),
sehingga komunikasi serial jauh lebih lambat daripada komunikasi paralel..
Serial port lebih sulit ditangani karena peralatan yang dihubungkan ke serial port harus
berkomunikasi dengan menggunakan transmisi serial, sedang data di computer
diolah secara paralel. Oleh karena itu data dari dan ke serial port harus
dikonversikan ke dan dari bentuk paralel untuk bisa digunakan. Menggunakan
hardware, hal ini bisa dilakukan oleh Universal Asyncronous Receiver
Transmimeter (UART),
kelemahannya kita butuh software yang menangani register UART yang cukup rumit
dibanding pada parallel port.Kelebihan dari komunikasi serial ialah panjang
kabel jauh dibanding paralel, karena serial port mengirimkan logika “1” dengan
kisaran tegangan –3 V hingga –25 V dan logika 0 sebagai +3 Volt hingga +25 V
sehingga kehilangan daya karena panjangnya kabel bukan masalah utama. Bandingkan
dengan port paralel yang menggunakan level TTL berkisar dari 0 V untuk logika 0
dan +5 Volt untuk logika 1. Berikut contoh bentuk sinyal komunikasi serial .
Umumnya sinyal serial diawali dengan start bit, data bit dan sebagai pengecekan
data menggunakan parity bit serta ditutup dengan 2 stop bit. Level tengangan -3
V hingga +3 V dianggap sebagai undetermined
region.

Gambar Bentuk sinyal serial
Komunikasi melalui serial port adalah asinkron, yakni sinyal detak tidak
dikirim bersama dengan data. Setiap word disinkronkan dengan start bit, dan
sebuah clock internal di kedua sisi menjaga bagian data saat pewaktuan (timing).
1.2 Definisi dan Pengenalan USB
Pengenalan
Pada suatu zaman dan hari di mana komputer pribadi
digunakan untuk suatu
banyak sekali aplikasi, banyak alat baru
sudah tumbuh karena IBM'S yang dikenal
dengan dua port serial pada komputer pribadi sekitar duapuluh tahun yang
lalu. Scanner,
portable harddisk, ZIP driver, dan force-feedback joysticks adalah hanya
beberapa contoh
alat yang muncul pada desktop. Walaupun usaha telah dibuat untuk
menyediakan empat
dari delapan port serial pada PC, tidak ada standard riil yang memperoleh
penerimaan
tersebar luas. SCSI nampak menjadi solusi terkemuka untuk banyak penjual
scanner dan
eksternal drive, bagaimanapun menghubungkan alat dan kartu adalah mahal dan
standard
yang kekurangan kesatuan haruslah lengkap. Oleh karena itu, banyak mulai
pekerjaan
pada spesifikasi untuk solusi saling behubungan, seperti IEEE 1394
(Firewire) dan USB.
Serial Universal Bus (USB) adalah solusi yang dipuji oleh tujuh para
pemimpin
industri telekomunikasi dan PC
Compaq, DEC, IBM, Intel, Microsoft, NEC dan
Northerm Telecom (sekarang, Nortel Jaringan). Meskipun demikian lebih
lambat
dibanding Firewire (IEEE 1394), USB
masih membuat suatu data tingkat 12 Mbps
(mega-bits per detik) dan mengijinkan kamu untuk menghubungkan sampai
kepada 127
alat ke PC yang dirancang untuk mendukung modem, keyboard, Mouse, 4x– 6x CD
ROM Drive, joysticks, tape/floppy/harddisk, scanner danPrinter. Sebagai
tambahan,
suatu gelombang yang baru seperti telepon, para pembicara digital, snapshot
digital dan
kamera gerakan, sarung tangan data dan digitizers akan mengambil keuntungan
dari ini
menggairahkan dan alat penghubung baru yang serbaguna
Konektor
USB (Tipe A dan B)
Konektor USB Tipe A
Definisi
Bus
Beruntut Semesta (USB) adalah standar bus
serial untuk perangkat penghubung, biasanya kepada komputer namun
juga digunakan di peralatan lainnya seperti konsol
permainan, ponsel dan PDA.Sistem
USB mempunyai desain yang asimetris, yang terdiri dari
pengontrol host
dan beberapa peralatan terhubung yang berbentuk pohon dengan
menggunakan peralatan hub yang khusus.Desain USB ditujukan untuk
menghilangkan perlunya penambahan expansion card ke ISA komputer
atau bus PCI, dan
memperbaiki kemampuan plug-and-play (pasang-dan-mainkan) dengan
memperbolehkan peralatan-peralatan ditukar atau ditambah ke sistem tanpa
perlu mereboot
komputer. Ketika USB dipasang, ia langsung dikenal sistem komputer dan memroses
device
driver yang diperlukan untuk menjalankannya.USB dapat menghubungkan
peralatan tambahan komputer seperti mouse, keyboard, pemindai gambar, kamera
digital, printer,
hard disk,
dan komponen networking. USB kini telah menjadi standar
bagi peralatan multimedia seperti pemindai gambar
dan kamera digital.Versi terbaru (hingga Januari 2005) USB adalah versi 2.0. Perbedaan paling mencolok antara versi baru dan lama adalah kecepatan transfer yang jauh meningkat. Kecepatan transfer data USB dibagi menjadi tiga, antara lain:
- High speed data dengan frekuensi clock 480.00Mb/s dan tolerasi pensinyalan data pada ± 500ppm.
- Full speed data dengan frekuensi clock 12.000Mb/s dan tolerasi pensinyalan data pada ±0.25% atau 2,500ppm.
- Low speed data dengan frekuensi clock 1.50Mb/s dan tolerasi pensinyalan data pada ±1.5% atau 15,000ppm.
1.3 Cara kerja USB
- Input yaitu peralatan yang menggunakan USB (Flashdisk, camera, joystick,dll)
- Interface yaitu Port antarmuka yang menghubungkan USB
- Chipset southbridge adalah I/O pengendali yang mengatur kecepatan transfer interface USB,Firewire,dll.
- Output berupa keluaran dari hasil pemprosesan(monitor,printer,dll)

Gambar 1.3 Flowchart Cara Kerja dari USB

Beberapa keistimewaan USB

· Lebih dari 127 perangkat dapat tersambung ke komputer secara langsung
maupun menggunakan hub USB
· Kabel USB yang digunakan secara langsung bisa mencapai 5 meter. Sedangkan
jika menggunakan perangkat hub bisa mencapai 30 meter.
· Perangkat USB bersifat ‘hot swappable’ artinya perangkat keras yang
sudah menggunakan port USB bersifat plug and play
Bab II Pembahasan
2.1 Tatap muka secara fisik
USB memindahkan isyarat dan kuasa atas suatu four-wire
kabel, yang
ditunjukkan di dalam
Gambar 6.2. Pemberian isyarat terjadi atas dua kawat pada atas
masing-masing
point-to-point segmen.
Ada tiga data menilai:
• USB pemberian isyarat bit tingkat tarip
kecepatan tinggi adalah 480 Mb/S.
• USB kecepatan penuh pemberian isyarat bit
tingkat tarip adalah 12 Mb/S.
• Suatu kemampuan terbatas kecepatan rendah
pemberian isyarat gaya adalah
juga digambarkan pada 1.5
Mb/S.

Gambar 2.1 USB kabel
USB 2.0 kontrol host dan pusat kegiatan menyediakan
kemampuan sedemikian sehingga
kecepatan penuh dan
kecepatan rendah data dapat dipancarkan
pada kecepatan tinggi
antara control host dan
pusat kegiatan, tetapi dipancarkan antara pusat kegiatan dan alat
pada kecepatan penuh atau
kecepatan rendah. Kemampuan memperkecil dampak ini yang Aplikasi Antarmuka Komputer 7 kecepatan penuh dan kecepatan rendah alat
mempunyai atas luas bidang yang tersedia untuk alat kecepatan tinggi.
Kecepatan rendah gaya dikenalkan mendukung suatu jumlah terbatas low-
bandwidth alat, seperti
mouse, sebab penggunaan yang umum akan menurunkan pangkat
bus pemanfaatan Jam
dipancarkan, disandikan bersama dengan data diferensial. Jam yang
menyandi rencana adalah
NRZI dengan pemuatan bit untuk memastikan transisi cukup.
Suatu SYNC bidang
mendahului masing-masing paket untuk mengijinkan receiver(s)
untuk mensinkronkan jam
kesembuhan bit mereka.
Menerapkan Sudut
pandang
USB menyediakan jasa komunikasi antara suatu host dan
memasang USB alat.
Bagaimanapun, yang
memandang suatu pemakai akhir memberikan dalam memasang
satu atau lebih USB alat
kepada suatu host, seperti di Gambar 6.3, kenyataannya sedikit
lebih rumit untuk
menerapkan dibanding yang ditandai oleh
figur itu. Pandangan yang
berbeda menyangkut sistem
diperlukan untuk menjelaskan USB kebutuhan spesifik dari
perspektif dari yang berbeda
implementers.

Gambar 2.2 Simple USB
Host/device view
Beberapa penting corak
dan konsep harus didukung untuk menyediakan pemakai akhir
dengan operasi yang dapat
dipercaya menuntut dari today’s komputer pribadi. USB
diperkenalkan di dalam
suatu pertunjukan layered untuk menenangkan penjelasan dan
mengijinkan implementers
USB produk tertentu untuk memusatkan pada detil
berhubungan dengan produk
mereka.
Gambar 2.3 USB
Implementation Areas 

Gambar 2.3 adalah suatu
ikhtisar yang lebih dalam USB, mengidentifikasi lapisan
berbeda dari sistem yang nantinya diuraikan secara lebih
detil dalam sisa spesifikasi.
Khususnya, ada empat
fokus area implementasi:
1. • USB Phisik Alat: Suatu potongan perangkat
keras pada akhir dari suatu USB
kabel yang melaksanakan
beberapa akhir bermanfaat pemakai berfungsi.
2. • Perangkat lunak Klien: Perangkat lunak yang
melaksanakan pada host, sesuai
dengan suatu USB alat.
Klien ini perangkat lunak secara khas disediakan bersama
dengan sistem operasi
atau disajikan bersama dengan USB alat.
3. • USB Perangkat lunak Sistem: Perangkat lunak
yang mendukung USB dalam
sistem operasi tertentu .
USB Perangkat lunak Sistem secara khas disediakan
bersama dengan sistem
operasi, bebas dari USB tertentu perangkat lunak klien
atau alat.
4. • USB Host control Perangkat keras dan lunak yang mengijinkan USB alat
menjadi hubungan dengan
suatu Host.
2.2 Konektor A dan konektor B
Konektor USB hanya ada 2 macam, yakni konektor type A dan
konektor type B seperti terlihat dalam
Gambar. Konektor type A
dipakai untuk menghubungkan kabel USB ke terminal USB yang
ada pada bagian belakang
komputer produksi berapa tahun terakhir ini. Konektor type B dipakai untuk
menghubungkan kabel USB ke terminal USB yang ada pada peralatan, untuk
peralatan USB yang sederhana, misalnya mouse, biasanya tidak pakai konektor B,
untuk menghemat beaya kabel langsung dihubungkan ke bagian dalam mouse.

Dalam acuan baku
ditentukan pesayaratan yang sangat ketat untuk kabel USB, tidak sembarang kabel
bisa dipakai, lebih-lebih untuk USB dengan kecepatan transfer data penuh sampai
1.2 Mega bps. Sehingga kabel USB selalu dijual dalam bentuk sudah jadi, ujung
yang satu terpasang konektor type A dan ujung satunya terpasang konektor type
B, tidak ada yang menjual konektor USB secara lepas! Pada komputer, biasanya
terdapat dua buah terminal untuk konektor type A, jadi dengan
mudah bisa dipasangkan 2
buah peralatan USB. Perusahaan pembuatan mother board ada yang
membuat terminal USB
tambahan, bisa dibeli jika ingin menambahkan lebih dari 2 peralatan USB.
Terminal USB pada
komputer dinamakan sebagai ‘Root Hub’
2.3 Contoh penggunaan peralatan USB (metode
perancangan)
Untuk membuat suatu
peralatan yang dapat berkomunikasi dengan protokol USB tidak perlu harus
mengetahui secara rinci protokol USB. Bahkan kadang tidak perlu pengetahuan
tentang USB protokol sama sekali. Pengetahuan tentang USB protokol hanya
diperlukan untuk mengetahui spesifikasi yang dibutuhkan untuk alat kita. Pada
kenyataannya untuk mengimplemetasikan USB protokol di FPGA ataupun perangkat
bantu lain sangat tidak efisien dan banyak waktu terbuang untuk merancangnya.
Menggunakan kontroler USB sangat lebih
dianjurkan dalam membuat alat yang dapat berkomunikasi melalui protokol ini.
Kontroler USB mempunyai banyak macam bentuk, dari microcontroller berbasis 8051
yang mempunyai input output USB secara langsung sampai pengubah protocol dari
serial seperti I2C bus ke USB.USB controller biasanya dijual dengan disertai berbagai fasilitas yang mempermudah pengembangan alat, diantaranya manual yang lengkap, driver untuk windows XP, contoh code aplikasi untuk mengakses USB, contoh code untuk USB controller, dan skema rangkaian elektronikanya.
Dalam sisi pengembangan software aplikasi dalam personal computer, komunikasi antar hardware di dalam perangkat keras USB tidak terlalu diperhatikan karena Windows ataupun sistem operasi lain yang akan mengurusnya. Pengembang perangkat lunak hanya memberikan data yang akan dikirim ke alat USB di buffer penyimpan dan membaca data dari alat USB dari buffer pembaca. Untuk driver pun kadang-kadang Windows sudah menyediakannya, kecuali untuk peralatan yang mempunyai spesifikasi khusus kita harus membuatnya sendiri.
2.4 Komunikasi data USB (Metode pengiriman)
Komunikasi USB dikatakan sebagai sistem master tunggal, artinya semua aktivitas komunikasi data diawali oleh komputer. Data yang dikirim melalui saluran USB, merupakan data sebanyak 8 byte sampai 256 byte yang dikemas menjadi paket-paket data untuk satu kali pengiriman. Komputer yang aktip minta data dari peralatan dan peralatan wajib memberi data ke komputer. Pengiriman data terjadi dalam kerangka waktu tiap 1 mili- detik sekali, dalam kerangka waktu tersebut komputer bisa berhubungan dengan beberapa peralatanan secara bergantian. Perlatanan yang berkecepatan rendah, mengirim data dengan kecepatan 1.5 Mega bit per detik, atau setiap bit dikirim dalam waktu 666.7 nano-detik. Sedangkan peralatan dengan kecepatan penuh mengirim data dengan kecepatan 12 Mega bit per detik, atau waktu pengiriman data 1 bit adalah 88.3 nano-detik. Kecepatan tersebut ditentukan oleh komputer, sedangkan semua peralatan harus menyesuaikan kecepatan tersebut. Pengiriman data ini dilakukan secara asinkron, dengan demikian peralatan USB yang terpasang masing-masing harus membangkitkan sendiri clock untuk penerimaan data.
2.5
Level Tegangan



2.6 Timing Diagram

2.7
USB interface dan mikrokontroller
- USB to Microcontroller UART Interface Circuit
UART



Implementation USB into microcontroller:
IgorPlug-USB (AVR)



2.8
Source Code
main.c
#include
"xparameters.h"
#include
"xbasic_types.h"
#include
"xio.h"
#define
ADDR_CM 0x01800000 //
XIO_Out
#define
ADDR_FIFO_RD 0x01800004 // XIO_In
#define ADDR_FIFO_WR
0x01800008 // X_IO_Out
#define
ADDR_SIG_INTERRUPT 0x01800010
#define
ADDR_READ_INTERRUPT 0x01800014
#define
ADDR_EMPTY_FLAG 0x01800018
#define
DESC_LENGTH 0x42
#define
BASE_ADDR 0x01800000
#define
TEMP1 0x01800004
#define
TEMP2 0x01800000
#define
TEMP3 0x01800008
Xuint8
short_descriptor[6]= {
180,
4,
2,
16,
1,
0
};
Xuint8
descriptor[66] = {
//
Descriptor for USB Remote Control - values written in integer format
// Philip
Li
// Device Descriptor (ALL in INTEGER FORMAT)
18, //descriptor length
01, //descriptor type
00,02, //specification version BCD
00, //device class
00, //device subclass
00, //protocol
64, //max packet size for EP0
64,
64, //VID Vendor ID
64,
64, //PID Product ID
64,
64, //Device ID
00, //Manucfacturer String Index
00, //Product String Index
01, //Number of configurations
//
DeviceQualDscr
10, //descriptor length
06, //descriptor type
00,02, //BCD
00, //device class
00, //device subclass
1800, //device sub-sub-class
64, //max packet size
01, //number of configuration
00, //reserved
//HighSpeedConfigDscr
9, //Dscr length
02, //Dscr
type
46,00, //total data length ( 46 bytes)
1, //number of interfaces
1,
//configuration number
0, //configuration string
160, //attibutes self powered, no remote
wakeup 10100000
50, //power requirement (50mA)
//Interface
Descriptor
9, //Dscr length
04, //Dscr type
00, //#index of interface
00, //alternate setting
02, //num of endpoints
03, //interface class (HID)
00, //interface subclass
01, //interface sub-subclass
(ProtocolCcode,0-None,1-Keyboard,2-
Mouse)
00, //interface dscr string index
//Class
Descriptor (HID interface)
9, //Dscr
length
33, //Dscr type - HID 0x21
00,01, //HID spec release number
00, //hardware target country
01, //number of HID class dscr to follow
34, //Descriptor type 0x22 ???
//total
length of report descriptor
//
Endpoint Descriptor EP2
07, // Dscr length
05, // Dscr type
02, // Endpoint number and direction
03, // Endpoint type 0000 0011 - OUT interrupt transfer
(Read
p.113
USBComplete)
00, // Max packet size LSB 512bytes
02, // Max packet size MSB (0x0200)
01, // polling interval maximum latency
p.114 USBComplete
//
Endpoint Descriptor EP6
07, // Dscr length
05, // Dscr type
134, // Endpoint number and direction
03, // Endpoint type 1000 0110 -IN interrupt transfer (Read
p.113
USBComplete)
00, // Max packet size LSB 512bytes
02, // Max packet size MSB (0x0200)
01 // polling interval maximum latency
p.114 USBComplete
};
// USB
address is from 0000 0001 1000 0000 to 0000 0001 1000 0111
int main()
{
// variables for reading DSCR
file
19 //variables
int ready=0;
int i;
Xuint32 incoming_byte;
Xuint32 incoming_byte1;
Xuint32 incoming_byte2;
Xuint32 incoming_byte3;
Xuint32 incoming_byte4;
Xuint32 incoming_byte5;
Xuint32 incoming_byte6;
Xuint8 incoming_byte8;
Xuint8 incoming_byte7;
Xuint8 outgoing_byte;
// write register 0x1
outgoing_byte = 0x5;
write_register(0x01, outgoing_byte);
print("write 0xf2 to
register0x07\r\n");
outgoing_byte = 0xf2; // 11110010
write_register(0x06, outgoing_byte);
print("finish writing\r\n");
for(i=0; i<1000; i++){}
incoming_byte7 = read_register(0x07);
print("\r\n");
print("read from the register and
the byte is \r\n");
putnum(incoming_byte6);
print("write the descriptor
now\r\n");
write_descriptor2();
}
Xuint8
read_register ( Xuint8 regaddress ){
int ready = 0;
Xuint32 incoming;
low_level_command_write(0xC0 +
regaddress);
while( ready == 0){
XIo_In32(ADDR_CM);
incoming = XIo_In32(ADDR_SIG_INTERRUPT);
print("\r\n");
print("addr_sig_interrupt is \r\n");
putnum(incoming);
if (incoming != 0x0)ready =1;
};
incoming = XIo_In32(ADDR_READ_INTERRUPT);
print("incoming\r\n");
putnum(incoming);
return incoming;
}
20
void
write_register (Xuint8 regaddress, Xuint8 data){
low_level_command_write(0x80 +
regaddress); // command address byte
low_level_command_write(0xF &
(data>>4)); // command data byte one
low_level_command_write(0xF &
data); // command data byte two
}
void
low_level_command_write(Xuint8 data){
Xuint32 outgoing_byte;
outgoing_byte = (0xFF & data);
putnum(outgoing_byte);
print("\r\n");
// XIo_In32(ADDR_CM);
XIo_Out32(ADDR_CM, outgoing_byte);
}
void
write_descriptor2(){
Xuint8 lengthOfRegister = 0x06; //
Descriptor length = 6
int i;
low_level_command_write(0x80 + 0x30);
// command address byte 0x30 is
the Desc
RAM
low_level_command_write(lengthOfRegister);
low_level_command_write(0);
for ( i = 0; i <6 ; i ++){
low_level_command_write(short_descriptor[i]);
}
}
void
write_descriptor(){
Xuint8 lengthOfRegister = 0x42; //
Descriptor length = 66
int i;
low_level_command_write(0x80 + 0x30);
// command address byte 0x30 is
the Desc
RAM
low_level_command_write(lengthOfRegister);
low_level_command_write(0);
for ( i = 0; i <66 ; i ++){
low_level_command_write(descriptor[i]);
}
}
pb_usb_
v2_1_0.mpd
###################################################################
##
##
Microprocessor Peripheral Definition
##
###################################################################
BEGIN
opb_usb, IPTYPE = PERIPHERAL, EDIF=TRUE
BUS_INTERFACE
BUS = SOPB, BUS_STD = OPB, BUS_TYPE = SLAVE
##
Generics for VHDL
PARAMETER
c_baseaddr =
0xFFFFFFFF, DT = std_logic_vector, MIN_SIZE
= 0xFF
PARAMETER
c_highaddr =
0x00000000, DT = std_logic_vector
PARAMETER
c_opb_awidth =
32, DT = integer
PARAMETER
c_opb_dwidth =
32, DT = integer
## Ports
PORT
opb_abus =
OPB_ABus, DIR =
IN, VEC = [0:(c_opb_awidth-1)],
BUS = SOPB
PORT
opb_be =
OPB_BE, DIR
= IN, VEC = [0:((c_opb_dwidth/8)-
1)], BUS =
SOPB
PORT
opb_clk =
"", DIR =
IN, BUS =
SOPB
PORT
opb_dbus =
OPB_DBus, DIR =
IN, VEC = [0:(c_opb_dwidth-1)],
BUS = SOPB
PORT
opb_rnw =
OPB_RNW, DIR
= IN,
BUS = SOPB
PORT
opb_rst =
OPB_Rst, DIR
=
IN,
BUS = SOPB
PORT
opb_select =
OPB_select, DIR =
IN,
BUS = SOPB
PORT
opb_seqaddr = OPB_seqAddr, DIR =
IN,
BUS = SOPB
PORT
sln_dbus =
Sl_DBus, DIR
= OUT, VEC = [0:(c_opb_dwidth-1)],
BUS = SOPB
PORT
sln_errack =
Sl_errAck, DIR =
OUT,
BUS = SOPB
PORT
sln_retry =
Sl_retry, DIR =
OUT,
BUS = SOPB
PORT
sln_toutsup = Sl_toutSup, DIR
=
OUT,
BUS = SOPB
PORT
sln_xferack = Sl_xferAck, DIR
=
OUT,
BUS = SOPB
# User
Ports
PORT
PB_D = "",
DIR = INOUT, VEC = [0:15], 3STATE=FALSE,
IOB_STATE=BUF
PORT
PB_A =
"", DIR =
OUT, VEC = [0:2], 3STATE=FALSE,
IOB_STATE=BUF
PORT
PB_OE =
"", DIR =
OUT
PORT
PB_SLRD =
"", DIR =
OUT
PORT
PB_SLWR =
"", DIR =
OUT
31PORT PB_PKTEND = "", DIR = OUT
PORT
USB_IFCLK =
"", DIR =
OUT
PORT
USB_CS =
"", DIR =
OUT
PORT
USB_FLAGA =
"", DIR =
IN
PORT
USB_FLAGB =
"", DIR =
IN
PORT
USB_FLAGC =
"", DIR =
IN
PORT
USB_READY =
"", DIR =
IN
PORT
USB_INT =
"", DIR =
IN
PORT
BUTTON_S1 =
"", DIR =
IN
PORT
BUTTON_S2 =
"", DIR =
IN
PORT
BUTTON_S4 =
"", DIR =
IN
END
Referensi
:
www.cs.columbia.edu/~sedwards/classes/2005/4840/.../USBMedia.pdf
2.9 Karakteristik Rangkaian



Bab III Kesimpulan
Sejak komputer pribadi telah meningkatkan dari suatu alat bisnis kecil kepada
suatu peralatan informasi
umum didalam rumah tangga yang modern, permintaan
menempatkan pada hal
tersebut dalam kaitan dengan usabilas juga telah mengubah. Para
pemakai adalah lebih
sedikit bersikap toleran ke permasalahan dengan susunan dan
instalasi. USB hanya saja
langkah yang lain semakin dekat untuk
membuat komputer
pribadi rumah tangga
peralatan yang terakhir yang akan menjawab panggilan dan buatan
kopi.
Play Now (New York) - MapYRO
BalasHapusPlay Now (New York) | 논산 출장안마 656 Casino St, New York, United States - Find out 영천 출장샵 what's popular at nearby restaurants, bars 진주 출장안마 and other popular 군산 출장마사지 attractions 평택 출장샵 near