2010-06-16 25 views
1

的問題,我在這裏詢問了有關實現USB的問題。現在,如果我願意,我想問幾個更多的問題,關於我不太明白的事情。因此,首先,如果我是正確的,Windows具有用於USB接口的設備驅動程序,用於發送和接收通信的物理設備。但是這個驅動提供給系統(用戶)的是什麼?我的意思是,USB協議是爲了讓它的設備得到滿足。所以你第一次地址設備比發送消息。前幾天我還問了一些關於USB

但是設備控制器(HW)及其驅動程序有多複雜?它是如此的複雜,它只是一個芯片,您只需發送設備地址和數據,它將寫出數據並將數據寫入某個內部寄存器以便讀取,或直接通過DMA傳送至內存?

或者,它的驅動程序(SW)是如何工作的?它的驅動程序是否具有一些高級功能,如發送_data到_device?在某種程度上我希望有一種方法可以通過USB直接發送一些數據,也許通過調用USB驅動程序本身?有沒有什麼好的文章,你知道如何真正解釋所有這些邏輯的工作原理?謝謝。

回答

2

USB協議棧有幾個層,並且相當複雜。你真的需要閱讀一本關於USB的好書(例如USB Complete)以瞭解它是如何融合在一起的。儘管如此,最重要的是您希望儘可能地使用協議棧,理想情況下使用系統級API(例如,如果它是USB HID設備,那麼就像對待其他任何HID設備一樣對待它,而不是像它一樣一個USB設備 - 同樣用於大容量存儲設備等)。

+0

哇,這看起來很複雜。所以,基本上一些功能是純軟件,一些是硬件。但是你知道,每天都有很多新的USB設備,所以在你的應用中使用USB真的太複雜了。 – 2010-06-16 20:59:29

+0

如果(a)您的設備適合現有USB設備*類別之一併且(b)您有驅動程序,則它並不複雜。例如。如果它只是另一個USB鼠標或磁盤驅動器,那麼它只需要很少的努力就可以。如果它是USB氣墊船,那麼你將有一些工作要做。 – 2010-06-16 21:31:35

+0

好吧,不要笑,但它實際上是USB車,USB將僅用於預啓動設置。 – 2010-06-18 19:45:11