ce 5.0 USB驱动 默认EndPoint0

visualthinking 2009-12-08 04:19:06
CE 5.0 MFB200的USB驱动 MFB200(指纹识别仪 FujiStu)
已经完成了USBInstallDriver写入了正确的PID\VIP,USB_DRIVER_SETTINGS 由厂商指定的
在USBDeviceAttach里调用USBD函数(lpGetDeviceInfo(hDevice))的结果USB_DEVICE打印出来:

THIS LPCUSB_DEVICE :DescriptorType 1,USB_CONFIGURATION DESCRIPTOR type2, Number-interfaces in the active USB_CONFIGURATION 0x1,InterfacesDESCRIPTOR TYPE of the active USB_CONFIGURATION 0x4,type of EndPointDescriptor in the Interface 0x5,the address of the Endpoint 0x81

说明:Descriptor type为1,指的是USB_DEVICE_DESCRIPTOR;同样USB_CONFIGURATION_DESCRIPTOR为2,接口由厂商指定的只有1个,接口USB_INTERFACE_DESCRIPTOR 的type为4

下面单独打印出EndPoint的相关信息:

OTHER ENPOINT: LPENDPOINT[0] ENDPOINT DESCRIPTOR TYPE 0x5, THE ENDPOINT ADDRESS 0x81
OTHER ENPOINT: LPENDPOINT[1] ENDPOINT DESCRIPTOR TYPE 0x5, THE ENDPOINT ADDRESS 0x82

说明:USB_ENDPOINT_DESCRIPTOR 的type为5,两个EndPoint的address分别是0x81和0x82,我在USBVIEW下,看到了这两个EndPoint,一个是BULK传输的,一个是Interrupt的。
问题是:是否有一个默认的用来控制设备function register的EndPoint,datasheet上将这个端点命名为EndPoint0,随后才介绍我上面打印出来的两个端点,现在我的默认端点没有找到,是否影响后面对Function register的读写。

请各位做过类似USB DRIVER的大大帮我解释一下。
是否在传输时用LPISSUE_CONTROL_TRANSFER函数能够直接用到EndPoint0.谢谢
...全文
204 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
visualthinking 2009-12-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 oneonce 的回复:]
除了EP0以外的其他断点都只能仅作为输出或输入,不可能有双向之说,这是最基本的概念。

只有发送SETUP包和厂商请求调用IssueVendorTransfer时是使用EP0,数据传输一般是不会使用EP0的。
[/Quote]
谢谢,你的指点
我下面要做接口设置和数据传输了,也是你之前做过的的BULK传输,到时有问题,还望您不吝赐教
OneOnce 2009-12-09
  • 打赏
  • 举报
回复
除了EP0以外的其他断点都只能仅作为输出或输入,不可能有双向之说,这是最基本的概念。

只有发送SETUP包和厂商请求调用IssueVendorTransfer时是使用EP0,数据传输一般是不会使用EP0的。
huabinsir 2009-12-08
  • 打赏
  • 举报
回复
当做流驱动来用.
visualthinking 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 veabol 的回复:]
默认是endpoint0进入描述符等配置信息的传输的
[/Quote]
我觉得,您的答复是在肯定Endpoint 0就是用来控制Function register的,不知是否是用IssueVendorTransfer函数
visualthinking 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 oneonce 的回复:]
说实话我不太清楚你在问什么问题,有点晕,

如果你是在问怎么来使用哪个端点通讯那还好解决,LPISSUE_CONTROL_TRANSFER函数我没见过,再之从你的那些信息来看,你只有2个端点:0x81, 0x82,这两个端点都是输入端点,难道没有输出端点?

数据批量传输调用:IssueBulkTransfer
数据终端传输调用:IssueInterruptTransfer
[/Quote]
谢谢ONEONCE的回复,我也不清楚输出端点怎么找,USBVIEW(pc下的)中只显示了两个端点,就是0x81,0x82,我也是只找到了这两个端点,想到应该有一个双向端点,负责控制设备的function register
猜测是否是默认的端点Endpoint 0,在调用IssueVendorTransfer时使用默认Endpoint 0
博说医械研发 2009-12-08
  • 打赏
  • 举报
回复
默认是endpoint0进入描述符等配置信息的传输的
OneOnce 2009-12-08
  • 打赏
  • 举报
回复
说实话我不太清楚你在问什么问题,有点晕,

如果你是在问怎么来使用哪个端点通讯那还好解决,LPISSUE_CONTROL_TRANSFER函数我没见过,再之从你的那些信息来看,你只有2个端点:0x81, 0x82,这两个端点都是输入端点,难道没有输出端点?

数据批量传输调用:IssueBulkTransfer
数据终端传输调用:IssueInterruptTransfer
OneOnce 2009-12-08
  • 打赏
  • 举报
回复
说实话我不太清楚你在问什么问题,有点晕,

如果你是在问怎么来使用哪个端点通讯那还好解决,LPISSUE_CONTROL_TRANSFER函数我没见过,再之从你的那些信息来看,你至于哦2个端点:0x81, 0x82,这两个端点都是输入端点,难道没有输出端点?

数据批量传输调用:IssueBulkTransfer
数据终端传输调用:ISSUEInterruptTransfer

19,503

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧