Chinaunix首页 | 论坛 | 博客
  • 博客访问: 592930
  • 博文数量: 126
  • 博客积分: 4379
  • 博客等级: 上校
  • 技术积分: 2110
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-06 22:35
文章分类

全部博文(126)

文章存档

2012年(5)

2011年(3)

2010年(2)

2009年(116)

分类: LINUX

2009-03-26 20:59:38

1.Q:usb驱动的安装与卸载
有个问题想请大家帮个忙:
我对一个下位机的usb端口实现了bulk传输模式,编写了相应的infsys文件
.
并且安装,运行
.
现在的问题
:
我对这个驱动进行了修改,要从新安装这个驱动程序
.
我在c盘删除了相应的infsys文件,但是没有把硬件重新插入pc机的时候,系统还是找到了以前的那个驱动程序
.
请问我该怎么办才可以把驱动从新安装上?谢谢大家了

A:1。在你驱动卸载后,再插上设备,还会发前的驱动文件:只要你把设备驱动文件*.inf文件和驱动预安装文件*.oem删除就可以清除驱动安装记录了。
2.
提示没找到相应的硬件,可能是你inf文件里的设备id与真实设备的id不符。
注册表没清除干净

2.Q:d12的中断传输方式和批量传输方式
各位大侠:
请教D12的批量传输方式和中断传输方式在固件编程上有什么地方不同呢!
或者谁用过批量传输方式进行过数据的传输么,急切请教?

A:DEVICE来说批量传输方式和中断传输方式在固件编程上没什么不同,
不同点在HOST
HOST
先保证中断传输方式的收发,但中断传输方式的数据传输较慢。
比如低速USB设备:
HOST
保证每10ms收发一个中断传输方式包,但每10ms最多也就收发一个包。
反之,HOST不保证批量传输方式能准时收发。但是当USB总线很空时,批量传输方式是没有限速的

3.Q:为何usb 的驱动程序卸载不了???????
小妹最近要完成usb2.0接口的调试,用的是cy7c68013芯片,硬件部分已经做好了,固件部分由别人完成的,我负责pc机上的usb功能驱动。现在遇到了这样的问题,想请教各位大哥:
我用DriverWorks生成了一个usb驱动,pid/vid04b4/8613,同时想利用deviceIOControl实现应用程序与接口的通信。

我在控制面板的添加/删除硬件中添加了先添加了此驱动的inf 文件,并在注册表的local_machine\\system\\currentcontrolset\\control\\class中创建了一个设备类。(如武安河书中所说)
当插上了usb接口后可以认出设备,但现在的问题是打开cypresscontrol panel确认不了这个接口了,检测不到,也下载不了固件了,肯定是驱动装的冲突了吧。

我想卸掉原来装的那个驱动但怎么都卸不掉,删掉了注册表里相关的东西,但不能删掉enum/usb下的pid/vid 04b4/8613,当时卸载了,重新插上后又不行了,又认了

现在的问题就是我想卸掉原来不小心装的的驱动,请教各位如何才能卸载?
但这个驱动和ezusb有何不同?他们和固件之间是否存在一个装载顺序问题?

我是菜鸟,真心请教各位了谢谢

A:windows\\inf目录下的oem*.inf打开,找到,你的那个,因为系统会吧它改名为oem*.inf*是不确定的,然后把它删掉。要在没插硬件的时候。然后把windows\\system32\\drivers目录下你的的驱动程序也删掉,就行了,注册表不用管。

同意上面的说法,
为了可靠,你可以把INF文件中和你想卸载的驱动程序相关的。INFOEM*INFDERIVER下的驱动都删掉,也把注册表中的也删了。一定成功。

你可以先调试你的程序看到底调用了UNLOAD了没有?一般PNP硬件插入PC机,windows系统首先是在inf文件夹里搜索相应的.inf,所以你应当从控制面板里卸载driver,在把inf文件夹你的inf删除掉。

4.Q:d12suspend命令是干什么用的?
d12
中断后,第一个中断寄存器值是0xC0,分别是suspendbus reset
请问,接到这两个中断寄存器后,该做什么动作?
我怎么看到很多程序都没管啊?
谢谢。

A:器件挂起状态,高电平表示器件处于挂起状态,程序中不做什么处理,周立功的软件里就置了一个标志,很多都是一个空程序,不做处理

5.Q:枚举过程是怎样的?

A:1 第一次接收到主机的GetDescriptor请求中断响应,主机要求外设发送设备描述符,确定外设缺省管道控制端点的每次数据包大小。通过控制端点回送设备描述符,第一次只需要保证设备描述符中前8个字节发送正确。
2
主机发送SetAddree请求到USB 设备,给USB设备分配唯一的地址。这时外设被分配唯一地址,此时的USB设备成为被主机承认的合理外设,可以进行正常的数据传送。

3 外设再一次接收到GetDescriptor请求。主机分析描述符的信息。主机操作系统根据描述符信息寻找相应的设备驱动程序。
4
操作系统会继续发出GetConfiguration请求,读取设备的配置信息。要把外设的各个端点的配置情形回送到主机中。如果有多个配置信息,有多次请求发生。

5
在设备能通讯前,主机给外设一个SetConfiguration请求,主机根据整个系统的USB使用情况确认设备的哪一个配置有效,告诉其怎样工作,设备收到后调整有关配置,使设备能合理使用。

经过上面的调试后,USB外设可以发送和接收数据,设备如果不立即使用则会进入挂起状态,直到使用。

6.Q:关于D12SUSPEND引脚问题

想问一下对于D12来说SUSPEND引脚是输出还是输入,还有对应的状态是什么?
因为我看了周立功提供的程序,里面老是有D12SUSPD=0;sbit D12SUSPD=P3^3;硬件上SUSPEND接单片机的P3.3脚。不太明白这么做的目的。

谢谢指教。

A:D12suspend引脚是双向的,也就是说,即作输出也做输入。
比如说d12上电时,suspend为低,如果d12发现总线空闲,就会将suspend拉高,这种情况下的suspend便起到输出作用。

PDIUSBD12处于挂起模式时,内部寄存器不能被访问,如果需要对设备进行访问,将PDIUSBD12的挂起脚拉低唤醒设备然后进行访问,这种情况suspend作为输入用。

最关键的是要对d12操作前,suspend一定要拉低。

阅读(1611) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~