2009-10-13 34 views
11

Tôi nên tiếp cận cách triển khai trình điều khiển thiết bị USB cho Windows như thế nào? Tôi nên xem xét các phiên bản cửa sổ khác nhau như thế nào: ví dụ: - Windows XP - Windows Vista - Windows 7Làm cách nào để triển khai trình điều khiển thiết bị USB cho Windows?

Có giải pháp nguồn mở nào có thể được sử dụng làm điểm xuất phát không? Tôi là một tổng newbie để phát triển trình điều khiển cửa sổ.

Chúng tôi có một thiết bị nhúng với cổng thiết bị USB và chúng tôi muốn có độ trễ thấp từ mức ứng dụng đến thiết bị nhất có thể mà không bị mất dữ liệu. Dữ liệu thực tế được chuyển là dữ liệu ADC/DAC. Về cơ bản có rất nhiều dữ liệu mà chúng ta cần phải chuyển sang máy Windows càng nhanh càng tốt.

Trả lời

1

Bắt đầu ở đây: Windows Driver Kit Introduction

+0

với tổng số newbie tôi không có nghĩa là cấp độ của một newbie ;-) –

+0

Xin lỗi, tôi đã hoàn thành tổng số người mới quá theo nghĩa đen. Câu trả lời dưới đây là đặc biệt chi tiết cho một người ở cấp độ của bạn. –

12

Chúng ta cần biết thêm thông tin về thiết bị để chỉ cho bạn đi đúng hướng, nhưng đây là một vài bước để giúp bạn bắt đầu:

  • đăng ký với Microsoft Connect, do đó bạn có thể tải xuống Windows Driver Kit
  • đăng ký với osr-online vì bạn sẽ tìm thấy các bài viết tuyệt vời, nhiều thông tin và nhóm tin dành riêng cho trình điều khiển Windows - địa điểm này là một mỏ vàng
  • mua Developing Drivers with WDF, điều này sẽ giúp bạn hiểu về phát triển trình điều khiển trên Windows và cung cấp cho bạn nền tảng tốt để đọc các bài viết từ OSR và Microsoft
  • Hy vọng rằng bạn có thể sử dụng UMDF (trình điều khiển chế độ người dùng) vì bạn có thể sử dụng C++ và viết mã COM. Nếu bạn đang làm bất cứ điều gì với USB đòi hỏi không gian hạt nhân .... bạn đã có rất nhiều đọc và học tập để làm cho năm tiếp theo!

Để trả lời câu hỏi của bạn trên các phiên bản, Driver Kit có các công cụ giúp bạn quản lý việc tạo các trình điều khiển khác nhau. Nếu bạn viết một trình điều khiển tốt, nó sẽ chạy trên cả ba hệ điều hành mà không có vấn đề gì, và sự khác biệt sẽ nằm trong vùng cấu hình (không phải mã nhị phân). Bạn đang cố gắng viết loại trình điều khiển nào? Hệ thống tập tin? Máy nghe nhạc mp3? Máy ảnh? Modem?

Nếu bạn cuối cùng phải viết trình điều khiển chế độ hạt nhân, hãy cho tôi biết và tôi có thể chỉ cho bạn một số bài viết hay và những gì không.

Tôi cũng nên thêm số tiền đó cho khoảng 5.000 đô la Mỹ, bạn có thể mua giấy phép cho WinDriver, một công cụ làm mất tất cả những thứ khó khăn trong việc phát triển trình điều khiển. Bạn có thể sử dụng mã C + hoặc C# chế độ người dùng để giao tiếp với trình điều khiển của họ được tạo tùy chỉnh cho thiết bị của bạn. Đây là con đường để đi nếu bạn có một thời hạn chặt chẽ.

+0

Chúng tôi đã nhúng thiết bị với cổng thiết bị USB và chúng tôi muốn có thông tin liên lạc độ trễ thấp từ cấp ứng dụng cho thiết bị mà không bị mất thông lượng dữ liệu. –

+0

Độ trễ sẽ tùy thuộc nhiều vào bộ điều khiển USB của phần cứng. Nếu tôi là bạn tôi sẽ ném cùng một trình điều khiển UMDF (chế độ người dùng) thử nghiệm đầu tiên và xem liệu nó có đáp ứng nhu cầu thời gian chờ của bạn hay không. Quên về giao diện đẹp và những gì không, chỉ cần có được các chức năng I/O thực hiện và một ứng dụng thử nghiệm Win32 để đẩy và kéo dữ liệu. Với cuốn sách tôi đã đề cập ở trên, bạn sẽ có thể có một trình điều khiển cơ bản đã sẵn sàng trong khoảng một tuần. Ưu điểm của UMDF là nó khá dễ thực hiện và dễ debug khi bạn không cần trình gỡ rối hạt nhân. Bạn luôn có thể đi với KMDF nếu UMDF không cắt nó. –

1

Nếu bạn có một số hình thức kiểm soát phía thiết bị, hãy để nó triển khai giao diện mà Windows đã cung cấp trình điều khiển. Ví dụ. lớp USB HID (nghĩa đen là thiết bị đầu vào của con người, nhưng không phải là con người cũng không phải là đầu vào là bắt buộc) đã có trình điều khiển Windows, và có một API Win32 hợp lý trên đầu trang. Tuy nhiên, bạn sẽ không nhận được tốc độ dữ liệu ở bất cứ đâu gần 480 Mbps.

+0

Đồng ý, thực hiện HID ở phía thiết bị là cách tốt nhất để tránh phải phát triển một trình điều khiển ở phía Windows (hoặc các hệ điều hành khác). – kenny

2

Bạn có thể xem biến thể cửa sổ của libusb * here *. Có trình bao bọc cho nhiều ngôn ngữ lập trình trên trang web libusb chính thức và trên web.

+0

Lưu ý rằng libusb-win32 đã lỗi thời lâu để ủng hộ crossplatform [libusb] (http://libusb.info/). –

Các vấn đề liên quan