Saya mengalami kesulitan memahami kapan driver perangkat diperlukan, dan kapan boleh berbicara langsung ke pengontrol port melalui serial / paralel / USB / yang disediakan OS. sopir.
Sebagai contoh, Contoh 1 : mari kita ambil OpenBCI , BCI perangkat keras sumber terbuka yang memungkinkan Anda membaca bacaan EEG + EKG ("gelombang otak"). Headset OpenBCI mengirimkan sinyal RF ke drive USB yang terhubung ke mesin Anda, dan kemudian Anda dapat menulis perangkat lunak Anda sendiri untuk membaca data yang masuk ke port itu; dengan demikian, memungkinkan Anda untuk membaca gelombang otak Anda sendiri dan menafsirkan data gelombang otak pada lapisan aplikasi. Cukup keren. Untuk membaca data gelombang otak "streaming" Anda, Anda tidak hanya perlu membaca dari port serial Anda (menggunakan driver serial yang disediakan oleh OS), tetapi Anda perlu menafsirkan data sesuai dengan spesifikasi OpenBCI . Jadi tumpukan terlihat seperti ini:
Tapi tidak ada tempat di sini kita memiliki "driver perangkat" khusus untuk headset OpenBCI. Hanya driver serial yang diperlukan untuk membaca byte data, dan kemudian Anda perlu menafsirkan apa arti byte tersebut dari dalam aplikasi Anda. Jadi misalnya, jika saya ingin aplikasi Java untuk menginterpretasikan data gelombang otak, saya mungkin menggunakan JSerialComm untuk membaca data dari port COM lokal saya (atau apa pun USB pada sistem lokal). Maka akan tergantung pada aplikasi saya untuk memadukan data tersebut sesuai dengan spesifikasi yang tercantum di atas.
Sekarang, Contoh 2 : webcam USB Logitech seperti ini . Di sini, Anda perlu menginstal driver perangkat webcam pada mesin Anda sehingga Anda dapat menggunakannya. Saya bertanya-tanya mengapa. Mari kita berpura-pura (cukup tekan tombol " Saya percaya! " Sejenak) bahwa pinout untuk webcam ini sangat sederhana:
PIN # Meaning
===================
1 Power
2 Ground
3 Send data (if 1 then the camera will start "streaming" its video data over data pins)
4 Data pin 1
5 Data pin 2
Ini adalah perangkat USB, sama seperti OpenBCI. Jadi mengapa saya tidak bisa menulis aplikasi (dalam bahasa apa pun) yang juga hanya membaca / menulis langsung ke port USB / serial (sekali lagi, mungkin menggunakan JSerialComm atau yang serupa)? Ketika saya ingin aplikasi mulai menangkap data video webcam, saya mengirim byte ke port serial ( lagi melalui JSerialComm, dll.) Yang mengaktifkan Pin # 3 high / on, dan yang kemudian mulai membaca data video dari Pin 4 dan 5.
Saya kira saya tidak mengerti mengapa OpenBCI tidak memiliki atau membutuhkan driver perangkat, sedangkan webcam (atau perangkat USB standar lainnya seperti printer, mouse, keyboard, dll.). Terima kasih sebelumnya!