阅读:1921回复:7
初学有点不明白:D12共有三个端点,但每个端点都可以输入和输出,那么在电脑端的接口描述符中究竟有几个pipe?
我使用bulkusb.sys驱动程序,假如我想对第三个端点进行读写(如果按三个端点计算),那么我的CreateFile的文件名中应该添加pipe4和pipe5呢还是pipe3呢?
|
|
最新喜欢:![]() |
沙发#
发布于:2003-07-10 17:39
文件名应该是设备接口名,而不是 pipexxx
具体是那个pipe,你可以通过察看 pipe 的 endpoint 地址来看。第三个端口一般来说地址是 0x3(out) or 0x83(in) |
|
|
板凳#
发布于:2003-07-10 17:46
究竟有几个pipe,这要根据从usb设备读取底描述符得知
至于要向某个端点读写数据也要根据端点描述符进行 因为端点支持哪一种传输方式也是在描述符中规定的 |
|
|
地板#
发布于:2003-07-10 18:14
我知道,我所说的pipe04及pipe05这些其实在驱动程序中支持的,它们被附加至设备名的后面,所以才有此说。
我现在搞不清的就是:端点3可以输入也可以输出,在周立功所写的书上已经将此端点分为端点索引4和5,我现在搞不清在电脑读出接口描述符后,此端点在描述符中究竟占有几个管道?是两个还是一个? |
|
地下室#
发布于:2003-07-11 09:10
再顶
|
|
5楼#
发布于:2003-07-11 13:11
你可以看你的endpoint 描述符呀,里面有关端点3的描述符是几个,如果一个是03,一个是83,那就说明端点3有两个,一个是in,一个是out,分别占用不同的fifo地址,如果在一个interface里只有一个03或者只有一个83,那就说明端点3只有一个,既可以配置成in也可以位out,但同一个interface里只能配置为其中之一。
|
|
6楼#
发布于:2003-07-11 14:38
噢,我终于明白了。看了在固件端的端点描述符后就知道了。
jinghuiren兄,谢谢你的回答。对了,d12有三个端点。端点0用作控制端点(输入及输出),1和2用作传输用(分别有输入及输出)。那么在返回给pc机的接口描述符中,端点0存在吗?也就是说在 USBD_INTERFACE_INFORMATION 结构中的Pipes[0]及Pipes[1]对应于端点0还是端点1? 不好意思,硬件由他人开发,我只好先写通讯动态库部分。感谢大家的热心帮助。 |
|
7楼#
发布于:2003-10-21 10:14
控制端点0在描述符中是没有的,因此USBD_INTERFACE_INFORMATION 的pipe信息里也没有端点0的内容,里面的pipe[0]对应的是你设备描述符中的第一个端点信息,例如:如果你在固件方的描述符中第一个端点是1in,那么pipe[0]对应的就是1in的信息。
|
|