阅读:1690回复:11
USB与相机通信的问题
我想编个程序实现USB口控制相机拍摄的功能,虽然也看了一些相关的书籍,但总是不得要领。我并不需要编USB的驱动程序,只想通过USB口向相机写一些控制命令。也就是诸如ReadFile,WriteFile。但我不知道如何获得USB的句柄和通道,不知道是否还得用SDK,DDK编程。已经差不多半个月了,那位大侠发发慈悲,救救我吧,实在是没辙了!如果有直切要害的书籍资料或者源码也行啊..............
|
|
沙发#
发布于:2003-07-05 17:44
楼主和我做的事情有些相像,我是想和USB打印机通讯。
我用USB HOUND监测打印机和PC机通讯的数据,VENDOR命令也知道一些,枚举也没问题,其实还有个很繁琐的事:就是它在VENDOR命令中的数据不但有一定的格式,它实际上还有个协议和命令在数据里,如PCL3打印命令等,它传输过程也有个协议,有些认证和校验的过程,如果没有相关的SPECIFICATION,根本就没法做!!!! 事实证明,需要做设备的厂家提供帮助,否则,就犹如破解一个程序那么复杂。 |
|
板凳#
发布于:2003-07-05 16:31
谢谢hustdj大侠,讲的够明白,谢谢!
|
|
地板#
发布于:2003-07-05 09:49
重写驱动没什么意义,而且会很复杂,一般不太可能,没有源程序也改不了驱动。楼上说得有道理,从相机插入usb口开始,再启动软件,监视来回命令交互,可以大致猜出工作流程。当然这期间可能会比较复杂,如果命令参数实在搞不清楚那就比较困难了。
|
|
地下室#
发布于:2003-07-04 11:32
vendor命令当然是在firmware中。
以一个用USB接口的相机为例。 如果主机端要通过USB让相机执行特殊的操作,它可通过 USB的控制传输来实现。 在USB中,控制传输是有特别规定的,它自己指定了12个 基本的控制传输请求。 如果要实现自己的控制传输,也就要构造自己的Vendor命令。 方法是在bmRequestType field中,设定相应的值。并把 相应的操作写人固件。(USB Specification 2.0 ,P248) 这样主机端也就可以发送这个Vendor命令来让USB设备执行 相应的操作。 所以,第一件事就是要知道这个相机的固件,从而知道 我们可以通过USB接口向相机发送什么样的命令。 如果你是做数码相机,并让数码相机有这个功能, 那么你的任务就是编写这么一个Vendor命令的 程序。剩下的事就是在主机中发送这个命令。 如果你是从市场上选一个数码相机,让它实现这个功能。 那么就让相机通过USB与主机相连时,如果相机相应给的 软件中,能软件实现相机拍摄,那么就可以判断这个命令是 通过USB传过去的,而这个USB的命令最有可能的就是一个 Vendor命令。你的任务就是就是找出这个Vendor命令。 |
|
5楼#
发布于:2003-07-04 08:45
其实国外已经有相应的软件了,只是它实现的一些功能不能满足我工作中的需要,我是想自己编一个,具体的通信标准我这里是有的,但就是不知道该怎么用,我自己一直是用VC编程,但从未编过驱动程序等,有好多地方不明白,还希望大家帮忙啊。
|
|
6楼#
发布于:2003-07-03 19:23
hustdj 大侠:
向你请教一个问题,vendor命令是不是在firmware中?我有些不太明白的是,这vendor命令一般是怎么实现的,是不是要构造一个vendor‘s URB,可是当这个URB传给总线驱动(他应该只认识标准的URB吧),他怎么识别这个URB呢,我知道我理解一定有误,还望大侠给予指教。谢谢! |
|
7楼#
发布于:2003-07-03 16:14
如果相机通过USB连上电脑以后,电脑可以软件实现相机的自动
拍摄,那么,一定可以实现。 这里一定有一些Vendor的命令,可以通过USB接口传过去。 如果不能软件实现相机拍摄,那么这个相机只有一些普通 的数据传送的命令,这个项目无法实现。 |
|
8楼#
发布于:2003-07-03 15:58
我认为还要知道相机固件的细节,如接口命令的格式,要不然即使枚举了,也不能和pc机通讯。
|
|
9楼#
发布于:2003-07-03 14:57
感觉无从下手,关注。
|
|
10楼#
发布于:2003-07-03 13:04
其实是USB的通信问题,相机连到USB后确实有个移动盘符出现,但我需要向相机写一些命令,我现在就是不知道改往哪个地方写,不知道USB的GUID
|
|
11楼#
发布于:2003-07-03 12:21
我想编个程序实现USB口控制相机拍摄的功能,虽然也看了一些相关的书籍,但总是不得要领。我并不需要编USB的驱动程序,只想通过USB口向相机写一些控制命令。也就是诸如ReadFile,WriteFile。但我不知道如何获得USB的句柄和通道,不知道是否还得用SDK,DDK编程。已经差不多半个月了,那位大侠发发慈悲,救救我吧,实在是没辙了!如果有直切要害的书籍资料或者源码也行啊.............. 这个好像不太容易实现吧? 每个相机生产厂家应该都会有自己的接口,好像没有统一的标准。 首先相机连接到USB口,操作系统会识别为移动 存储设备,你利用标准的读写文件的请求就可以了。 |
|