DESAIN ANTAR MUKA USB (UNIVERSAL SERIAL BUS) KELAS HID (Human Interface Decive)
DESAIN ANTAR MUKA USB (UNIVERSAL SERIAL BUS)
KELAS HID (Human Interface Decive)
Trisno Yuwono Putro
Jurusan Teknik Elektro,Politeknik Negeri bandung trisno.yuwono@yahoo.com
Abstrak
Dewasa ini, sebagaian besar komputer modern dan laptop hanya menyediakan terminal USB (Universal
Serial Bus ) untuk keperluan akses devais input/output eksternal. Fenomena ini memaksa para perancang dan
pengembang full-custom devais input/output selalu berbasis pada teknik antar muka USB. Sistem USB terdiri atas pengontrol (PC host) dan beberapa Devais input/output.
Penelitian ini bertujuan untuk merancang dan membuat sebuah devais input/output USB kelas HID (Human
Interface Decive ). Untuk perancangan dimulai dengan mengkaji protokol USB versi 1.1 dan 2.0 sebagai dasar
dalam perancangan perangkat lunak pada sisi Devais (firmware) dan perangkat lunak pada sisi host. Di dalam perancangan ini devais input/output USB dilengkapi dengan terminal analog dan digital yang dapat diakes dan dikontrol oleh host, serta dikenali sebagai USB Human Interface Device (HID). Sebagai rangkaian pengontrol dipilih Microcontroller PIC18F4550.
Pengujian hasil rancangan dilakukan menggunakan perangkat lunak USBTrace . Hasil pengujian menunjukkan bahwa kecepatan transaksi yang dicapai adalah 12 Mbps (full-speed). Penentuan kecepatan transaksi full-speed dapat dipilih melalui Compiler MikroC pada menu Project, Edit Project, dengan ketentuan Project Setting dipilih clock MCU 48 Mhz dan kristal yang terpasang secara hardware 8 Mhz.
Kata kunci : antarmuka , USB, HID
1. PENDAHULUAN interface secara langsung ke bus USB dengan Dewasa ini, sebagian besar komputer modern memanfaatkan transveiver internal.
dan laptop hanya menyediakan terminal USB USB 1.1 dapat mendukung kecepatan (Universal Serial Bus) untuk keparluan akses transaksi bawah 1.5Mbs (low speed) dan atas Devais input/output eksternal. Fenomena ini
12Mbs (full-speed). Skema transaksi low-speed memaksa para perancang dan pengembang full- ditunjukkan dalam Gambar 1. Transaksi data dapat
custom Devais input/output selalu berbasis pada mencapai ke seluruh devais yang terpasang, baik
[2]teknik antar muka USB . USB adalah standar bus devais low-speed maupun devais full-speed. Devais serial sebagai perangkat penghubung antara full-speed dapat melakukan transaksi low-speed. komputer dengan peripheral eksternal. Kelebihan utama antar muka USB adalah hot plugable, yang berarti Devais USB dapat di plug sementara PC dalam kondisi running dan mengkonfigurasi secara
[1]
otomatis . Penelitian ini bertujuan untuk merancang dan membuat devais input/output USB kelas HID yang dilengkapi dengan akses peripheral digital dan analog, serta merancang firmware dan
descriptor pada Devais dengan kecepatan transaksi 12 Mbps (Full-speed).
Transaksi melaui USB ini dikontrol oleh
microcontroller , microcontroller yang dipilih
adalah Microchip PIC18F4550. Pemilihan
Microcontroller ini di dasarkan pada kekhususan
fiturnya untuk menangani antar muka USB, karena Gambar 1. Transaksi Devais Low-speed
Microcontroller ini memiliki USB Serial Interface
Sumber: Don Anderson, 2001
[5] Engine (SIE) . SIE kompatibel dengan transaksi low-speed dan full-speed yang memungkinkan
komunikasi dengan USB host v 1.1. SIE dapat di
Gambar 4. Interface USB 1.1 Kecepatan devais ditentukan dengan observasi
Gambar 2. Transaksi Devais Full-speed jalur data mana yang dihubungkan ke resistor pull- Sumber: Don Anderson, 2001 up seperti ditunjukkan dalam Gambar 4.
Kerangka penelitian ditunjukkan dalam Skema transaksi Full-speed ditunjukkan dalam Gambar 5.
Gambar 2. Transaksi data hanya dapat dilakukan pada devais full-speed, karena devais low-speed tidak dapat melakukan transaksi full-speed.
Semua devais USB mempunyai hirarki
descriptor yang menguraikan berbagai fitur dari
devais. Descriptor USB yang paling umum adalah:
- Device descriptors
- Configuration descriptors
- HID descriptors
- Endpoint descriptors
Herarki struktur descriptor ditunjukkan di dalam Gambar 3.
Gambar 3. Herarki Descriptor Sumber: Dogan Ibrahim, 2005
Gambar 5. Kerangka Penelitian Penambahan setiap devais I/O USB-HID dilakukan dengan penambahan address pada
Penelitian dilakukan dengan metode Endpoint descriptor . eksperimen di dalam Lab Microprocessor, dengan diawali studi literatur lebih dahulu untuk
Untuk deteksi kecepatan pada bus full-speed , mempersiapkan penelitian ini. resistor dihubungkan dari D+ ke 3,3V, dan pada bus low-speed, resistor dihubungkan dari D- ke
2. PERANCANGAN DAN IMPLEMENTASI
3,3V. Ketika tidak ada devais yang disambungkan,
host akan melihat kedua jalur data dalam keadaan
A. Perancangan Hardware
rendah (single ended reveiver) seperti ditunjukkan Rangkaian devais input/output USB-HID dalam Gambar 4. ditunjukkan dalam Gambar 6. Hardware terdiri atas dua blok, controller dan peripheral I/O. Peripheral merupakan contoh bentuk aplikasi pada saat pengujian, disini sebagai peripheral ditambahkan yang dihasilkan ditunjukkan dalam Gambar 8. input analog berupa sensor suhu LM35. Controller Dalam aplikasi ini firmware selalu membaca sensor merupakan pengontrol antar muka USB antara LM35 dan mengkonversikannya dalam bentuk devais dengan host PC. digital serta memprosesnya menjadi suhu untuk dikirimkan ke host via port USB.
Gambar 8. Form Pembacaan Suhu Gambar 6. Rangkaian Devais Input/Output USB Flowchart firmware ditunjukkan dalam Gambar 9.
B. Perancangan Software
Software dalam sistem ini terdiri atas dua
bagian, firmware dalam Microcontroller dan software dalam host PC.
1. Firmware dalam Microcontroller
Firmware dibangun menggunakan compiler
MikroC pro 3.2. Ada dua bagian firmware,
descriptor dan program aplikasi. Setiap program
aplikasi harus menyertakan program descriptor pada saat melakukan kompilasi. Konsep penalaran dalam perancangan firmware ditunjukkan dalam Gambar 7.
Gambar 9. Diagram Alir Firmware Aplikasi Input Analog
Gambar 7. Diagram Alir Firmware
b. Descriptor
a. Firmware Aplikasi Sensor Suhu
Setiap program aplikasi harus disertakan Di dalam aplikasi ini dirancang sebuah program descriptor. Descriptor adalah bagian
firmware yang disertai descriptor sedemikian rupa firmware yang menguraikan berbagai fitur dari
sehingga terjadi satu arah input. Data yang dibaca devais, misalnya: ID pabrik pembuat, versi devais, oleh host berupa tegangan analog yang berasal dari versi USB yang mendukung, daya yang sebuah sensor suhu LM35. Bentuk form transaksi dibutuhkan, jumlah dan tipe endpoint dan sebagainya. MikroC menyediakan tools terminal EasyHID dirancang bekerja dengan USB 1.1, dan HID yang di dalamnya memuat form untuk tidak dibutuhkan pengembangan driver. Utility ini membuat descriptor seperti ditunjukkan dalam membangkitkan template code untuk Visual Gambar 10. BASIC, Visual C++, atau Borland Delphi, untuk keperluan aplikasi interfacing USB-HID.Di dalam penelitian ini dipilih Visual BASIC. Profil
EasyHID ditunjukkan dalam Gambar 11. Untuk
membangkitkan template Visual BASIC seperti dalam Gambar 12 click Next Gambar 11 hingga
finish . Template Visual BASIC yang di bangkitkan
oleh EasyHID kemudian dikembangkan sesuai aplikasi yang diinginkan.
3. PENGUJIAN DAN SIMULASI
Pengujian hasil perancangan dan implementasi devais Input/Out USB-HID bertujuan untuk mengetahui unjuk kerja dan performa hasil perancangan.
A. Pengujian Descriptor
Pengujian firmware descriptor merupakan pengujian tahap awal. Jika devais USB telah diisi
` descriptor dan di plug ke port USB host, maka oleh
Gambar 10. Form Pembentukan Descriptor
Windows dikenali dengan tampilan berturut-turut seperti ditunjukkan dalam Gambar 13.
2. Perancangan Software pada Host
Software pada host PC dibangun
menggunakan Visual BASIC v6.0. Penggunaan program Visual BASIC di dalam rancangan ini berbasis pada USB utility, EasyHID USB Wizard yang dikembangkan oleh Mecanique.
Gambar 13. Pengenalan Widows Pada Devais Gambar 11. Profil EasyHID
Gambar 13 menunjukkan keberhasilan pemrogra- man descriptor, karena devais telah berhasil dikenali oleh Windows dan di konfigurasi.
B. Pengujian Aplikasi Input Analog
Pengujian dilakukan dengan melakukan pembacaan sensor LM35 secara terus-menerus Gambar 12. Template Visual BASIC seperti ditunjukkan dalam Gambar
8. Hasil pencatatan transaksi oleh USB-Trace ditunjukkan dalam Tabel 1. Hasil pencatatan oleh USBTrace yang ditunjukkan dalam Tabel 1 memperlihatkan bahwa data 4 byte pertama dalam bentuk Hex merupakan data suhu yang dikonversikan ke Ascii. Data ini juga
Tabel 1. Hasil Pencatatan Pembacaan Suhu oleh ditunjukan pada hasil capture USBtrace pada
USBTrace.
Gambar 14 kolom buffer snippet. Hasil-hasil pembacaan di atas menunjukan bahwa transaksi oleh USBTrace bekerja dengan baik.
Gambar 14. Hasil Capture Pembacaan Suhu Oleh USBTrace
C. Pengujian Descriptor dan Speed Ada satu hal penting di dalam pengujian Di dalam proses Enumerasi disebutkan bahwa Descriptor yaitu mengetahui kecepatan transaksi.
pada saat devais USB-HID di plug pada port USB Kecepatan transaksi menunjukkan performa dari
host , maka pertama kali host melakukan reset pada devais USB-HID yang dirancang. Dalam Tabel 2
devais USB-HID. Kemudian devais USB-HID ditunjukkan bahwa “Low-speed = TRUE” yang secara berturut mengirimkan transaksi Descriptor berarti bahwa pencapai kecepatan transaksi low- nya ke host PC. Seluruh peristiwa ini juga di speed 1,5 Mbps. Sedangkan di dalam Tabel 3
capture dan dicatat oleh USBTrace. Sebagian hasil ditunjukkan bahwa “Low-speed” = FALSE” yang
ditunjukkan dalam Tabel 2 dan Tabel 3. Pengujian berarti pencapaian kecepatan transaksi full-speed dilakukan dua kali, pada transaksi low-speed dan
12 Mbps. transaksi full-speed sesuai dengan batas bawah dan atas kecepatan transaksi USB-HID. port 2 : USB Human Interface Device
Tabel 2. Hasil Pencatatan Transaksi Descriptor Low-Speed Oleh USBTrace
Parameter Value
Hardware ID USB\Vid_1234&Pid_0001&Rev_0001 Setup Class HIDClass
{745A17A0-74D3-11D0-B6FE- Class GUID
00A0C90F57DA} PDO Name \Device\USBPDO-6
Service Name HidUSB
Parameter Value Connection Information
Connectionindex 0x2 CurrentConfigirationValue 0x1
LowSpeed TRUE DevicelsHub TRUE
DeviceAddress 0x1
port 2 : USB Human Interface Device
Tabel 3. Hasil Pencatatan Transaksi Descriptor Full-Speed Oleh USBTrace
Parameter Value
Hardware ID USB\Vid_1234&Pid_0001&Rev_0001 Setup Class HIDClass
{745A17A0-74D3-11D0-B6FE- Class GUID
00A0C90F57DA} PDO Name \Device\USBPDO-6
Service Name HidUSB
Parameter Value Connection Information
Connectionindex 0x2 CurrentConfigirationValue 0x1
LowSpeed FALSE DevicelsHub FALSE
DeviceAddress 0x1 maupun full-speed dengan mengaktifkan fungsi resistor internal pull-ups sebesar 1,5 K Ohm. Berdasarkan kajian di atas maka semua uji coba berhasil dengan baik termasuk interface internal.
Interface internal didalam microcontroller
PIC18F4550 dengan diagram yang ditunjukan pada Gambar 15 diaktifkan dengan perangkat lunak (program) untuk mengontrol transaksi low-speed
Gambar 15. Diagram Blok PIC18F4550 Sumber: Microchip, 2004
4. KESIMPULAN
Dari hasil pengujian dan analisis dapat disimpulkan hal-hal sebagai berikut: a. Menurut hasil pengukuran yang dilakukan menggunakan USBTrace, devais Input/Output
USB-HID hasil rancangan dapat beroperasi pada USB 1.1 dengan kecepatan transaksi maksimal
12 Mbps (full-speed), dengan memasang kristal eksternal 8 MHz pada microcontrollernya.
b. Program Descriptor harus disertakan dalam setiap program aplikasi.
c. Program yang dibangun pada host PC untuk menangani transaksi USB, harus dibangun lewat
template yang dibangkitkan oleh Easy-HID
DAFTAR PUSTAKA
[2] Chih-Yuan Huang, Tei-Wei Kuo, dan Ai-Chun Pang, 2004. QoS Support for USB 2.0 Periodic
Journal IEEE 1052-8725/04 [3] Hyde,J., 2001. USB Design by Example A
Practical Guide to Building I/O Devices , Intel University Press.
[4] Ibrahim,Dogan, 2005. Advance PIC
Micocontroller Projects in C (From USB to ZIGBEE with The PIC 18F Series) .Newnes.
[5] Microchip, 2004. High-Performance Enhanced
Flash USB Microcontrollers with nanoWatt Technology , PIC18F4550,Michrochip.
[6] Mikroelektronika, 2006, MikroC User’s Manual
[1] Anderson, D., 2001. USB System Architecture (USB 2.0) , Mind Share Inc.
and Sporadic Device Request . International