luckyrex
驱动小牛
驱动小牛
  • 注册日期2002-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分185分
  • 威望20点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
阅读:2277回复:12

如何开启一个endpoint做等时传输?

楼主#
更多 发布于:2002-04-11 14:54
小弟正在做一个关于数码相机的驱动,相机上除了标准端口0
以外还有一个端口1,是IN的,只接受数据,做等时传输,端口
地址0x81.

我现在的问题是,应该在什么地方以及如何打开这个pipe1
并且让它做等时传输?

我是用DDK写的,不过我看了一下DS中相关的例子,觉得里面
对Interface和pipe的初始化,数据的发送什么的很清楚,
比如pipe.reset(), pipe.submit()等等,相比之下DDK中
好象结构就没这么清晰.

小弟做驱动时间不长,对驱动中如何初始化,选择interface,
pipe以及如何打开这个pipe做数据读写概念比较模糊,在加上
老板现在催得急,请各位一定指点指点,帮小弟一把.如果有
帮助,一定给分!
luckyrex
驱动小牛
驱动小牛
  • 注册日期2002-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分185分
  • 威望20点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-04-11 19:10
luckyrex
驱动小牛
驱动小牛
  • 注册日期2002-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分185分
  • 威望20点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-04-11 19:11
没有人回答吗?急呀,帮帮忙
yy1125322
驱动牛犊
驱动牛犊
  • 注册日期2002-03-06
  • 最后登录2004-10-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-04-12 18:27
关注!
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-04-13 14:50
你的情况是比较老的,功能单一的数码相机的配置,它们一般只有一个ISO IN端口(Default除外),通过Alternative Interface 配置选择带宽的设置。而且在接上设备时其缺省配置一般是0带宽(ISO包大小为0)。
你的问题应该如此处理:
1、配置设备时会得到设备的Interface配置,包括Alternative Interface;
2、在要进行ISO传输前,要通过选择不同的Alternative Interface获得不同的带宽。
3、发送同步传输的URB。
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
luckyrex
驱动小牛
驱动小牛
  • 注册日期2002-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分185分
  • 威望20点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-04-13 15:56
谢谢tigerzd!不过你能不能讲讲如何把一个PIPE打开(这里
应该是pipe0吧),然后让它做等时传输?

在DS中有类似pipe->IsocTransfer的函数(具体形式记不清了),
一看就知道是干什么的,在DDK中是在什么地方?在什么函数
里面?

还有一个问题,我现在参考的是DDK中的isousb例程,这里面
的irp,usb的传送、同步等机制及其相关函数是不是不用改
直接就可以拿来用了?

最后一个问题,如何给分? :)
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-04-13 16:37
其实用到的函数比较多,你可以参看DDK\\SRC\\USB\\ISOUSB的例子,你的问题在其中有比较完整的解决方法,只需加上选择替换配置的代码(如果有的话)。我估计你只需修改其INF文件的VID和PID就可以完成你的设备的配置。
在你的发起贴子(第一贴)有加分的选项。
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
luckyrex
驱动小牛
驱动小牛
  • 注册日期2002-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分185分
  • 威望20点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-04-13 16:56
我看的就是 DDK\\SRC\\USB\\ISOUSB 呀,就是有地方不明白才
来问的。

我不明白的地方就是,在这个例子里是什么地方选择pipe,打开
它,并且做等时传输的。还有,这个例子里面的irp、usb处理、
发送、循环、同步是不是直接就可以拿来用了?如果需要修改,
应该改什么地方?
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-04-13 17:07
你的设备配置完成了吗?
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
luckyrex
驱动小牛
驱动小牛
  • 注册日期2002-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分185分
  • 威望20点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-04-13 19:15
完成了,而且可以从中得到不少参数,比如bcdDevice等等,
wolflee
驱动牛犊
驱动牛犊
  • 注册日期2002-01-04
  • 最后登录2012-06-21
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-04-13 21:38
一般的USB数码相机的驱动都会包含两个部分,一个是摄像的video capture部分,另一个是获取相片的Bulk USB部分。

看了你的帖子,觉得你应当是在做Video Capture部分,有关USB的Video Captur是归类于kernel streaming,你应当看的DDK source code是videocap下的usbintel部分。

http://devicedriver.126.com

Driver Developer www.soforge.com
luckyrex
驱动小牛
驱动小牛
  • 注册日期2002-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分185分
  • 威望20点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-04-14 14:13
wolflee,你说得很对,我现在就是在做摄像的 Vedio Capture
部分,而且的确发现应该在usbintel和usbcamd的基础上写
程序。但是开始没有人指点,走了弯路,一直在isousb中下工夫。

现在的问题在于,我对usbintel和usbcamd也不熟,而且现在时间
紧迫,不知道再从isousb中改过来还来不来得及。:(

你有没有这方面的经验?小弟有些地方想请教请教!
wolflee
驱动牛犊
驱动牛犊
  • 注册日期2002-01-04
  • 最后登录2012-06-21
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-04-14 16:55
来不来得及你也要用Video capture来实现,没有其他得路可走。
我只能给你大致的一个方向,具体的东西还得靠你自己来做,usbintel和usbcamd的source code不太好看,你可以用你的device一边试一边修改,softice这时会派上用场,它有助于你了解整个的流程。
Driver Developer www.soforge.com
游客

返回顶部