代码之家  ›  专栏  ›  技术社区  ›  B.Gen.Jack.O.Neill

还有一些关于USB的问题

  •  1
  • B.Gen.Jack.O.Neill  · 技术社区  · 15 年前

    几天前我问过这里关于实现USB的问题。现在,如果可以的话,我想再问几个问题,关于我不太明白的事情。

    因此,首先,如果我是对的,Windows有USB接口的设备驱动程序,用于发送和接收通信的物理设备。但是这个驱动程序为系统(用户)提供了什么?我的意思是,USB协议是这样的,它的设备被处理了。所以,你首先访问设备,而不是发送消息给它。

    但是设备控制器(HW)及其驱动程序有多复杂?它是如此复杂以致于它是一个芯片,你只需发送设备地址和数据,它将输出的数据写入某个内部寄存器进行读取,或者直接通过DMA将数据写入内存?

    或者,它的驱动程序(sw)是如何工作的?它的驱动程序是否具有一些高级功能,如向设备发送数据?因为我有点内部希望有一种方法直接通过USB发送一些数据,也许是通过调用USB驱动程序本身?有没有好的文章,教程,你知道要真正解释所有这些逻辑是如何工作的?谢谢。

    1 回复  |  直到 15 年前
        1
  •  2
  •   Paul R    15 年前

    USB协议栈有几个层,非常复杂。你真的需要在USB上读一本好书(例如 USB Complete )了解这一切是如何结合在一起的。不过,最重要的是,您希望尽可能地提高协议栈的高度,理想情况下使用系统级API(例如,如果它是USB HID设备,那么只需将其视为任何其他HID设备,而不是将其视为USB设备(如大容量存储设备等)。