而usb_endpoint_maxp函数就是通过端点描述符的wMaxPacketSize成员获取最大包大小: /** * usb_endpoint_maxp - get endpoint's max packet size * @epd: endpoint to be checked * * Returns @epd's max packet bits [10:0]*/staticinlineintusb_endpoint_maxp(conststructusb_endpoint_descriptor *epd...
其中也申请和初始化usb数据传输相关的资源,有管道,端点,urb等。 pipe = usb_rcvintpipe(hdev, endpoint->bEndpointAddress); maxp = usb_maxpacket(hdev, pipe, usb_pipeout(pipe)); maxp = usb_maxpacket(hdev, pipe, usb_pipeout(pipe)); maxp = sizeof(*hub->buffer); hub->urb = usb_alloc...
不同的是,设备描述符中的 bDeviceClass / bDeviceSubClass / bDeviceProtocol 作用域为整个USB设备,接口描述符中的值作用域仅为接口及下级的端点描述符。 bNumEndpoints 接口下端点的数量。当接口只使用端点0进行通信时,bNumEndpoints 填写为 0。 iInterface 描述接口信息的字符串描述符索引。 主机通过此索引值来...
对于SuperSpeed 常时等时传输,USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR (的某些值请参阅 Usbspec.h) 非常重要。 USB 驱动程序堆栈使用这些值来计算总线间隔内的最大字节数。 终结点配套描述符的等时常量.Mult字段。 在 SuperSpeed 等时常量传输中, (与高速设备) 的附加事务称为突发事务。Mult值指示终结点支...
usb端点(endpoint)知识详解 stsw-stm32121库中:把数据copy到对应端点的发送缓冲区后,使能发送状态编码STAT_TX=VALID,这时候usb的该端点就可以发送数据了--->即先调用usb_sil.c中的USB_SIL_Write(),然后调用SetEPRxValid(uint8_t bEpNum)函数。或者
如果方向为 out,则USB_ENDPOINT_DIRECTION_OUT(PipeId)宏将返回TRUE。 应用程序使用PipeId值来标识在调用 WinUSB 函数时用于数据传输的管道,例如WinUsb_ReadPipe(本主题的“问题 I/O 请求”部分中所述),因此示例存储所有三个 PipeId值供以后使用。 以下示例代码获取由 WinUSB 接口句柄指定的设备速度。
端点(Endpoint) :每个接口可以有多个端点。USB主机和设备就是通过端点进行数据交互的。每个端点地址对应一个方向,例如端点2-IN,端点2-OUT,这两个含义完全不同。 一个具体的端点只能属于四种传输模式中的一种,四种传输模式可以参考上一篇文章USB (4) -- USB传输类型,通常把工作在什么模式下的端点就叫做什么端点,比...
06-28 12:55:36.964 D/UsbHostManager( 1580): UsbEndpoint[mAddress=131,mAttributes=5,mMaxPacketSize=1024,mInterval=1 publicstaticfinalintUSB_DIR_OUT=ServiceProtoEnums.USB_ENDPOINT_DIR_OUT;// 0publicstaticfinalintUSB_DIR_IN=ServiceProtoEnums.USB_ENDPOINT_DIR_IN;// 0x80 ...
表1 缺省USB端点(Endpoint) Endpoint Type ALTErnate Setting 0 1 2 MaxPacket Size(bytes) 0 CTL 0 64 64 1IN INT 0 16 64 2IN BULK 0 64 64 2OUT BULK 0 64 64 4IN BULK 0 64 64 4OUT BULK 0 64 64 6IN BULK 0 64 64 6OUT BULK 0 64 64 ...
struct usb_endpoint_descriptor *endpoint; struct usb_mouse *mouse; int pipe, maxp; char path[64]; interface = intf->cur_altsetting; /* 以下是网络的一段对cur_altsettin的解释,下面就借花献佛。usb 设备有一个configuration 的概念,表示配置,一个设备可以有多个配置,但只能同时激活一个,如:一些设备...