Tôi đang gặp khó khăn khi hiểu trình điều khiển thiết bị là cần thiết và khi nói chuyện trực tiếp với bộ điều khiển cổng thông qua bộ nối tiếp / song song / USB / vv do hệ điều hành cung cấp. người lái xe.
Ví dụ, Ví dụ 1 : hãy dùng OpenBCI , BCI phần cứng nguồn mở cho phép bạn đọc các bài đọc EEG + EKG ("sóng não"). Tai nghe OpenBCI gửi tín hiệu RF đến ổ USB được cắm vào máy của bạn và sau đó bạn có thể viết phần mềm của riêng mình để đọc dữ liệu đi vào cổng đó; do đó, cho phép bạn đọc sóng não của riêng bạn và giải thích dữ liệu sóng não ở lớp ứng dụng. Tuyệt đấy. Để đọc dữ liệu sóng não "truyền phát" của bạn, bạn không chỉ cần đọc từ cổng nối tiếp (sử dụng trình điều khiển nối tiếp do HĐH cung cấp), mà bạn cần diễn giải dữ liệu theo thông số kỹ thuật OpenBCI . Vì vậy, ngăn xếp trông như thế này:
Nhưng không nơi nào ở đây chúng ta có một "trình điều khiển thiết bị" dành riêng cho tai nghe OpenBCI. Chỉ cần trình điều khiển nối tiếp cần thiết để đọc byte dữ liệu từ đó, và sau đó bạn cần diễn giải ý nghĩa của các byte đó từ bên trong ứng dụng của bạn. Vì vậy, ví dụ, nếu tôi muốn một ứng dụng Java diễn giải dữ liệu sóng não, tôi có thể sử dụng JSerialComm để đọc dữ liệu từ cổng COM cục bộ của tôi (hoặc bất kỳ USB nào có trên hệ thống cục bộ). Sau đó, ứng dụng của tôi sẽ can thiệp vào dữ liệu đó theo thông số kỹ thuật được liệt kê ở trên.
Bây giờ, Ví dụ 2 : một webcam USB Logitech như thế này . Tại đây, bạn cần cài đặt trình điều khiển thiết bị của webcam trên máy của mình để có thể sử dụng nó. Tôi đang tự hỏi tại sao. Hãy giả vờ (chỉ cần nhấn nút " Tôi tin! " Trong giây lát) rằng sơ đồ chân cho webcam này thật đơn giản:
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
Đây là một thiết bị USB, giống như OpenBCI. Vậy tại sao tôi không thể viết một ứng dụng (bằng bất kỳ ngôn ngữ nào) cũng chỉ đọc / ghi trực tiếp vào cổng USB / nối tiếp (một lần nữa, có lẽ sử dụng JSerialComm hoặc tương tự)? Khi tôi muốn ứng dụng bắt đầu ghi dữ liệu video webcam, tôi gửi byte đến cổng nối tiếp ( một lần nữa qua JSerialComm, v.v.) để bật Pin # 3 cao / bật và sau đó bắt đầu đọc dữ liệu video từ Chân 4 và 5.
Tôi đoán tôi không hiểu tại sao OpenBCI không có hoặc không cần trình điều khiển thiết bị, trong khi webcam (hoặc bất kỳ thiết bị USB tiêu chuẩn nào khác như máy in, chuột, bàn phím, v.v.) thì không. Cảm ơn trước!