阅读:1964回复:11
标准端点描述符的端口号
//标准1.1定义bEndpointAddress(端点)中第7为1就是入端点,0为出端点。因为0X80为1000 0000,并且问此入和出是相对设备来说,还是主机;
|
|
|
沙发#
发布于:2002-10-10 17:32
相对于主机而言!
|
|
|
板凳#
发布于:2002-10-10 18:32
也就是说,入端点,其实,是数据从设备发往主机经过的端点了。
|
|
|
地板#
发布于:2002-10-10 19:41
对!
|
|
|
地下室#
发布于:2002-10-10 19:58
struct usb_endpoint_descriptor *epread, *epwrite; usb_sndbulkpipe(dev, epwrite->bEndpointAddress) //usb_sndbulkpipe(dev,endpoint) usb_rcvbulkpipe(dev, epread->bEndpointAddress) 问题一: endpoint资料上写应该是端口号为1-15。可是上面两个值的值一个为0x81,一个为0x2;(从设备中读出是这样的数字) |
|
|
5楼#
发布于:2002-10-22 16:17
第七位指定方向,这是明显的告诉你,0x81 endpoint is bulk in pipe(read), 0x02 is bulk out pipe(write). 接收数据要用bulk in pipe, 发送数据要用bulk out pipe. |
|
6楼#
发布于:2002-10-22 17:28
现在,问题是,我提交了URB给内核,提交成功的,可是内核发数据给硬件就不行啦,总是超时,并提示,设备居然找不到。
|
|
|
7楼#
发布于:2002-10-22 17:50
\"两个值的值一个为0x81,一个为0x2\"
我有一个疑问,在驱动中设置的usb的EP地址,0x81的各位表示甚麽?他要发给硬件吗? |
|
8楼#
发布于:2002-10-22 18:12
最高位表示方向.其他位表示是哪一个endpoint.
如0x81,0x01分别表示endpoint 1的in/out管道. |
|
9楼#
发布于:2002-10-22 18:54
这个标准里将到端点描述符的时候很清楚,比如0x81表示,读端口1、0x02--》表示写端口2。主要看取硬件的端口描述符。
|
|
|
10楼#
发布于:2002-10-22 18:58
问控制传输的端点是0还是0x03;
|
|
|
11楼#
发布于:2002-10-23 08:51
endpoint 0
|
|