前几天我在这里问过有关实现USB的问题。现在,如果可以的话,我想问几个问题,关于我不太了解的事情。
所以,首先,如果我是对的,Windows有USB接口的设备驱动程序,用于发送和接收通信的物理设备。但是这个驱动程序为系统(用户)提供了什么?我的意思是,制作了USB协议,因此其设备得到了解决。所以你先给地址设备而不是向它发送消息。
但是设备控制器(HW)及其驱动程序有多复杂?它是如此复杂以至于你只是发送设备地址和数据的芯片,并且它将外部数据写入并将数据写入某个内部寄存器以进行读取,或者直接将DMA传输到内存中?
或者,它的司机(SW)如何运作?它的驱动程序是否有一些高级函数,如send _data to _device?我内心希望有一种方法可以直接通过USB发送一些数据,也许可以通过调用USB驱动程序本身?是否有任何好的文章,你知道的教程,以真正解释所有这些逻辑是如何工作的?谢谢。
答案 0 :(得分:2)
USB协议栈有几层,非常复杂。你真的需要阅读一本关于USB的好书(例如USB Complete),以了解它们如何组合在一起。但最重要的是,您希望尽可能高的协议堆栈,理想情况下使用系统级API(例如,如果它是USB HID设备,那么就像对待任何其他HID设备一样,而不是将其视为USB设备 - 同样适用于大容量存储设备等。)