usb hid

Upload: rijool92

Post on 06-Mar-2016

7 views

Category:

Documents


0 download

DESCRIPTION

USB HID

TRANSCRIPT

Pada posting kali ini saya akan sedikit mengulas tentang Cara menerapkan USB HID pada mikrokontroler sebagai Keyboard dengan menghubungkannya dengan mikrokontroler . Umumnya utuk berkomunikasi antara mikrokontroler dengan PC atau perangkat lain biasanya kita menggunakan fasilitas I2C, SPI dan serial rs232 biasa dengan kecepatan yang lebih lambat dari USB dan Serial dari mikrokontroler tersebut harus dihubungkan dengan pasanganya pada komputer atau bisa menggunakan usb to serial konverter terlebih dahulu untuk menghubungkannya dengan port usb komputer, Namaun kali ini kita akan mencoba mengulas dimana Mikrokontroler dapat terhubung langsung dengan PC atau device lain melalu port USB langsung (tanpa USB to Serial Konverter) dengan menerapkan protocol USB HID. Mungkin sedikit review saya apa sebenernya USB HID itu dan seberapa pentingnya bagi aplikasi mikrokontroler.Pengertian USB HIDUSB seperti diketahui merupakan singkatan dari Universal Serial Bus yaitu suatu standar bus serial kecepatan tinggi untuk menghubungkan suatu perangkat dengan perangkat yang lain, seperti sekarang ini sebuah device selal memiliki PORT USB untuk menghubungkan device tersebut dengan device lain seperti pada Komputer, Laptop, Ponsel,dan banyak lagi yang lain.Terus USB HID (Human Interface Device) sendiri itu apa???. USB HID itu sendiri merupakan sebuah class perangkat USB yang menggambarkan perangkat antarmuka seperti keyboard, mouse, game kontroler, dll. Intinya USB HID class yaitu mendefiniskan perangkat atau device yang digunakan hampir di setiap komputer modern. Fungsi ini memungkinkan produsen perangkat keras untuk merancang produk pada spesifikasi USB HID class agar dapat bekerja atau berhubungan dengan perangkat lunak yang juga memenuhi spesifikasi ini.Jadi dengan menerapkan USB yang sesuai dengan spesifikasi HID ini sangat berguna jika kita mengembangkan aplikasi untuk OS Windows. Setiap perangkat vendor membutuhkahn driver kernel, namun perangkat HID TIDAK Membutuhkan itu, Ini beraarti bahwa kita tidak memerlukan sebuah Installer.So dengan mengaplikasikannya pada device tertentu dalam hal ini Mikrokontroler dengan mengikuti protocol USB HID Class (dalam program yang didownloadkan) maka port usb dari mikrokontroller kemudian dihubungkan dengan sebuah komputer atau laptop maka di komputernya tidak membutuhkan installer lagi dan hal ini berbeda jika tidak menggunakan usb class, setiap perangkat yang dihubungkan ke windows SELALU membutuhkan installer.Menerapkan USB HID pada Mikrokontroller sebagai keyboard (bagian II)

Dalam keluarga PIC, seri 18 diperuntukkan bagi kelas menengah, karena umumnya, seri ini memiliki fitur yang lebih kaya serta memori flash dan RAM yang lumayan besar (32kB dan 2kB), serta EEPROM 256 bytes.Untuk kecepatan, bisa didorong hingga 12 MIPS million instructions per seconds(48 MHz), sementara untuk penanganan masukan analog, disediakan ADC internal 10-bit sebanyak 13 kanal.PIC 18F4550memiliki fasilitas untuk antarmuka USB versi 2.0 kecepatan penuh. Artinya, untuk dukungan terhadap antarmuka USB, dapat ditangani oleh chip itu sendiri (melalui pin 23 dan 24) alias tidak perlu komponen khusus untuk kebutuhan tersebut. Dengan satufirmwaresaja, PIC 18F4550 dapat dikenal oleh komputer sebagai divais HID. Dengan demikian, divais bisa dikenal tanpa harus meng-install driver di sisi komputer. Fitur ini sangat menarik mengingat kebanyakan komputer terkini, terutama laptop, hanya menyediakan port USB untuk komunikasi dengan dunia luar.

2- Pengaturan dan konfigurasi jam:2.1-Pertanyaan sekarang adalah bagaimana mengkonfigurasi kecepatan transfer saya (rendah atau tinggi)?ANS: jika jam Anda adalah 6MHz >> Anda bekerja dengan kecepatan rendahjika jam Anda adalah 48MHz >> Anda bekerja dengan kecepatan tinggiMari kita asumsikan bahwa kita ingin berkomunikasi dengan kecepatan tinggisebenarnya jam 48MHz memiliki beberapa masalah:- Bising- Sangat mahalMicrochip membuat solusi >> PLL (Phase Locked Loop) rangkaian yang dapat mengkonversi jam 4MHz Anda ke jam 48MHz

Sebenarnya PLL ini mengkonversi jam 4 MHz untuk 96 MHz jam, dan kemudian Anda dapat membaginya dengan 2 untuk mendapatkan 48MHz Anda

1- Seperti yang saya katakan sebelum rangkaian PLL kami harus mengambil jam 4MHztapi bagaimana jika jam saya adalah 20 MHz ?!Jadi, Anda harus memastikan bahwa Anda PLL Prescaler Seleksi >> Divide oleh 5 sebagai 20/5 = 4MHz!untuk 8MHz Anda harus mengambil PLL Prescaler >> Divide oleh 2 dan seterusnya2- Sebagai rangkaian PLL kami menghasilkan 96MHz kita harus membaginya dengan 2 jadi pastikan bahwa Anda Sistem Jam Postscaler Seleksi >> 96 MHz PLL Src: / 2 dan pastikan bahwa Anda USB Jam Seleksi >> sumber jam USB berasal dari 96 MHz PLL membagi dengan 23- Anda Frekuensi MCU Oscillator adalah 20MHz dan mengedit Oscillator Seleksi untuk menjadi osilator HS (HS)4- Pastikan bahwa Anda USB Voltage Regulator Diaktifkan apa Regulator Voltage USB ?!Ini adalah regulator 3,3 tegangan dibangun di PIC Anda dan itu sangat penting untuk komunikasi USB Anda sehingga Anda harus mengaktifkan PIC Anda untuk menghasilkan 3,3 v atau untuk memasok sendiri eksternal tapi berhati-hati, setelah Anda diaktifkan PIC Anda untuk menghasilkan 3,3 v Anda harus meletakkan topi. Menghubungkan pin Vusb ke tanah (topi ini. Nilai adalah 220-470 nf)

3- Descriptor File:3.1- Apa file descriptor?File ini sangat penting untuk membuat PIC Anda yang ditetapkan untuk PC Andapertanyaannya adalah, bagaimana PC saya dapat mengenali untuk PIC saya ??!jawabannya adalah bahwa PIC Anda mendukung protokol HID protokol ini memungkinkan PC Anda untuk mengambil beberapa informasi dari merancang Anda dan kemudian akan ditetapkan untuk PC y'ourinformasi seperti ID Vendor, ID Produk, nama Industri, ....dan tidak perlu untuk driver apapun (seperti USB optical mouse Anda, tidak perlu driver apapun)** CATATAN: untuk berkomunikasi dengan perangkat multi slave tidak tergantung pada alamat setiap perangkat, mengapa !!Karena dalam setiap kali Anda akan menghubungkan perangkat budak ke PC perangkat slave Anda akan mengambil alamat acak!Jadi, informasi tetap untuk perangkat >> VID dan PID perangkatjadi, yang lebih memilih untuk berkomunikasi dengan perangkat budak Anda sesuai dengan vids relatif kecil dan PID tidak sesuai dengan deferentalamat

4.1- HID _Enable:Prototipe: void HID_Enable (char * readbuff, char * writebuff);Keterangan: Memungkinkan komunikasi USB HID.Parameter: readbuff: Baca Buffer. writebuff: Menulis Buffer.Pengembalian Tidak ada.Membutuhkan Tidak ada.Contoh HID_Enable (& readbuff, & writebuff);Catatan Fungsi ini harus dipanggil sebelum menggunakan rutinitas lain dari USB HID Perpustakaan.

4.2- HID_Read:Prototipe Char HID_Read (void);Keterangan Menerima pesan dari host dan menyimpannya di Baca Buffer.Parameter ada.Pengembalian Jika pembacaan data yang telah gagal, fungsi mengembalikan 0. Jika tidak, ia mengembalikan jumlah karakterditerima dari tuan rumah.Membutuhkan USB HID harus diaktifkan sebelum menggunakan fungsi ini.Misalnya // coba lagi sampai suksessementara (HID_Read ()!;

4.3- HID_Write:Prototipe Char HID_Write (char * writebuff, char len);Keterangan Fungsi mengirimkan data dari Write Buffer writebuff untuk menjadi tuan rumah.Parameter writebuff: Menulis Buffer, parameter yang sama seperti yang digunakan dalam inisialisasi len: menentukan panjang data yang akan ditransmisikan.Pengembalian Jika transmisi data telah gagal, fungsi mengembalikan 0. Jika tidak, ia mengembalikan jumlahbyte ditransmisikan.Membutuhkan USB HID harus diaktifkan sebelum menggunakan fungsi ini.Misalnya // coba lagi sampai suksessementara (HID_Write (& writebuff, 64)!;

4.4-HID_Disable:Prototipe kekosongan HID_Disable (void);Deskripsi Menonaktifkan komunikasi USB HID.Parameter ada.Pengembalian Tidak ada.Membutuhkan USB HID harus diaktifkan sebelum menggunakan fungsi ini.Contoh HID_Disable ();4.5- HID_USB_Interrupt_ProcPrototipe kekosongan USB_Interrupt_Proc (void);Deskripsi rutin ini digunakan untuk melayani berbagai acara USB bus. Harus disebut dalam USB interupsi rutin.Parameter ada.Pengembalian Tidak ada.Membutuhkan Tidak ada.Contoh kekosongan interrupt (){USB_Interrupt_Proc ();}** CATATAN: Fungsi ini sangat penting untuk acara USB bus, tanpa itu tidak ada akan bekerja dengan Anda

MotorTahap penentuan urutanFase gelombang urutan menentukan jenis metode drive yang digunakan untuk mengontrol motor stepper. Umumnya, bentuk gelombang ini digunakan untuk menggerakkan tahap tinggi pengemudi listrik saat ini untuk memberikan dorongan yang diperlukan saat ini untuk kumparan motor stepper.Gambar 10, Gambar 12 dan Gambar 14 menunjukkan bentuk gelombang untuk gelombang drive, dua-tahap dan format setengah langkah.Karena semua sinyal di setiap jenis metode drive dalam hubungan didefinisikan dengan satu sama lain, adalah mungkin untuk menghasilkan mereka menggunakan logika standar.Bagi kebanyakan motor stepper yang mempekerjakan rotor magnet permanen torsi berguna dicapai untuk kecepatan di bawah 1000 langkah per detik. Mengemudi steppers di lebih tinggi hasil kecepatan berkurang torsi. Oleh karena itu, pulsa langkah berada di kisaran milidetik.

3.2 Gelombang drive (1 phase on) Dalam Gelombang drive hanya satu gulungan diberi energi pada waktu tertentu.Keuntungan dari mode gelombang drive kesederhanaannya. Kerugian dari mode gelombang drive yang di motor luka unipolar hanya 25% dan di motor bipolar hanya 50% dari total gulungan motor digunakan pada waktu tertentu. Ini berarti bahwa output torsi maksimum dari motor tidak tersedia.

Karena hanya satu gulungan diberi energi, memegang torsi dan bekerja torsi berkurang sebesar 30%. Hal ini dapat, dalam batas-batas, dikompensasi dengan meningkatkan tegangan suplai. Keuntungan dari bentuk drive efisiensi yang lebih tinggi, tetapi pada biaya dikurangi akurasi Step

3.3 penuh Step dua fase Drive Dalam metode penuh langkah kedua fase drive, dua gulungan yang diberi energi pada waktu tertentu.Dalam kasus langkah penuh drive, output torsi motor luka unipolar lebih rendah dari motor bipolar (untuk motor dengan parameter gulungan yang sama) karena motor unipolar hanya menggunakan 50% dari yang tersedia berkelok-kelok, sedangkan motor bipolar menggunakan seluruh yang gulungan.

3.4 Setengah langkah drive (1 dan 2 fase pada)'Setengah Step Drive' menggabungkan kedua gelombang dan dua fase langkah penuh (1 dan 2 fase pada) mode drive. Hal ini menyebabkan gerakan angular yang setengah dari mereka di 1- atau 2-fase-on mode drive. Setengah loncatan dapat mengurangi fenomena disebut sebagai resonansi yang dapat dialami dalam 1- atau 2- fase-on mode drive.

Sesuai namanya, dalam mode ini adalah mungkin untuk Step motor di urutan setengah langkah, sehingga menghasilkan setengah langkah, misalnya 3,75 langkah dari 7,5 bermotor. Kelemahan yang mungkin untuk beberapa aplikasi adalah bahwa holding torsi bergantian kuat dan lemah pada langkah bermotor berturut-turut. Hal ini karena pada langkah penuh hanya satu fase gulungan diberi energi, sedangkan pada setengah-langkah dua gulungan stator diberi energi. Juga, karena jalur arus dan fluks berbeda pada langkah alternatif, akurasi akan lebih buruk daripada melangkah ketika penuh.

2.3 Prinsip operasiBiasanya, kumparan stator dipasangkan untuk membentuk dua kumparan seperti yang ditunjukkan pada Gambar 5. Daya diterapkan untuk dua kumparan. Dua cangkir stator terbentuk sekitar masing-masing kumparan ini, dengan pasangan tiang mekanis diimbangi oleh 1/2 dari lapangan tiang, menjadi utara bergantian berenergi dan kutub selatan magnet. Antara dua pasang stator coil-offset 1/4 dari lapangan tiang. Rotor magnet permanen memiliki jumlah yang sama dari pasangan tiang sebagai bagian stator coil. Interaksi antara rotor dan stator (kutub berlawanan menarik dan seperti tiang memukul mundur) menyebabkan rotor bergerak 1/4 dari lapangan tiang per gulungan perubahan polaritas.