打印

usb接口的刷卡器

[复制链接]
1696|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
happy_10|  楼主 | 2011-4-23 09:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在打算对一个usb接口的刷卡器,进行开发。我用DDK写了一个上位程序,这个上位程序可以获得设备的VendorId\ProductId,但是不能对设备进行readFile/writefile,听别人说对于标准的键盘、刷卡器,是系统独占的,不能通过readFile/writefile进行读写。请问在设计设备的时候,怎么才能设计成不是系统独占的
沙发
冰清玉洁| | 2011-4-23 09:17 | 只看该作者
好像不能直接控制

使用特权

评论回复
板凳
wenfen| | 2011-4-23 09:20 | 只看该作者
智能找到相应的驱动盘,然后想普通硬盘一样读文件写文件就可以了。

使用特权

评论回复
地板
zhuhuis| | 2011-4-23 09:31 | 只看该作者
你的USB client端使用的是什么控制芯片,一般都有配套的Windows下的驱动——譬如Cypress提供了一个cyusb.sys驱动和一个cyapi的库,这样你就可以访问设备了

使用特权

评论回复
5
wenfen| | 2011-4-23 14:22 | 只看该作者
如果没有像CyApi这样的库,你可以直接向驱动发送IOControl Code来访问设备

使用特权

评论回复
6
tian111| | 2011-4-23 14:37 | 只看该作者
其实CyApi就是这么做的,只不过把复杂的发送ioctl code的代码封装起来了,使得更加简便易用

使用特权

评论回复
7
wenfen| | 2011-4-23 14:44 | 只看该作者
usb端需要有一个firmware来响应host端的命令

使用特权

评论回复
8
happy_10|  楼主 | 2011-4-23 14:50 | 只看该作者
楼上能举个例子吗?

使用特权

评论回复
9
wenfen| | 2011-4-23 14:58 | 只看该作者
以cypress为例,它的usb client controller,一般都是51系列单片机,你可以使用Keil C这样的工具来写firmware。

使用特权

评论回复
10
tian111| | 2011-4-23 15:05 | 只看该作者
对,host端和client端都做好了才算是一个完整的usb开发。

使用特权

评论回复
11
wenfen| | 2011-4-23 15:21 | 只看该作者
对于标准设备,比如HID设备,windows是提供了驱动,这种设备使用起来就很简单了。

使用特权

评论回复
12
zhuhuis| | 2011-4-23 15:31 | 只看该作者
在驱动程序中定义CTL_CODE:
#define MYUSB_IOCTL_READ CTL_CODE(FILE_DEVICE_UNKNOWN, 0x800, METHOD_BUFFERED, FILE_READ_DATA)
#define MYUSB_IOCTL_WRITE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x801, METHOD_BUFFERED, FILE_WRITE_DATA)
来访问!

使用特权

评论回复
13
happy_10|  楼主 | 2011-4-23 15:42 | 只看该作者
好吧~~~

使用特权

评论回复
14
icecut| | 2011-4-24 09:55 | 只看该作者
呵呵.ddk的读写是你自己实现的.

建议你用libusb,直接端pipe读写

使用特权

评论回复
15
happy_10|  楼主 | 2011-4-24 23:47 | 只看该作者
好的,多谢楼上,可惜结贴了,不能给你分了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

744

主题

7973

帖子

6

粉丝