单片机USB设备登录编辑器
扫描二维码
随时随地手机看文章
在前几章中,用户已经知道如何在设各管理器中看到所有已经接上的usb设备的类型与格式。当然,用户也知道当这些设各被拔离,再重新接上后,不用再重新安装其驱动程序。那么pc主机为什么知道其已安装过,且了解其驱动程序是什么呢? 这个答案是因为这些设各已经完成了设各列举的步骤,pc主机已经知道其vid/pid码,且能依此找到相对的驱动程序,并已下载完毕。这个vid/pid码即放在设各所含有的设各描述符中。也称为操作系统中的机码。 在windows 98与windows me操作系统中,这些vid/pid码放置于hkey_local_machine\enum\usb与hkey_local_machine\system\currentcontrolset\services\class\usb。而在windows xp或2000的操作系统下,放的位置则为:hkey_local_machine\system\currentcontrolset\enum\usb。 因此,可以稍微做个区分,在windows 98与windows me以及windows xp与2000的操作系统版本对登录编辑器的处理方式是有若干不同的。 至于如何去查询这些vid/pid码呢?可由下列的步骤来取得(请在windows 98与windows me的操作系统下操作)。 ①如图1所示,执行windows应用程序“执行”,并输入regedit.exe命令或在windows的目录下,直接执行regedit.exe执行文件,进人“登录编辑器”窗口。 图1 执行登录编辑器的应用程序 ②然后依图2所示,进人usb的项目中,如箭头指示的方式。 ③图3显示了除根集线(root_hub)外,也显示了所有曾经安装过驱动程序的设备的vid/pid码。如图中说明了此pc主机已经设各列举了多少类型的usb外围设备。而用户是否发觉到每一个vid/pid码都是不同的呢? 这些不同的vid/pid码即决定了哪些驱动程序将会被加载。 除非用户已注册的项目删除掉,windows都会记得哪些驱动程序已加载过,且此设备再一次插人pc时,就不会再检测到有新的设备插入。也就是说,不论用户插拔这些外围设备多少次,都无须再重新安装其驱动程序了。 而每一个设备中,如图4所示,显示了一些相关的信息。 若要达到与完成这种登录的工作,用户就必须在设各一接上pc主机时,执行设备列举的工作。换句话说,当usb设各第一次连接到usb总线时,usb主机就会对此设各做出列举检测的动作。此时,主机会负责检测与设置所有连接至根集线器的设备,而识别与设置一个usb外围设各的程序,称之为设备列举,也就是将所有的外围设备一一识别并列举出来。 图2 “登录编辑器”窗口
图3 在pc主机下曾经安装过的各种vid/pid码图4 每一个vid/pid码中所列出此设备的相关信息 若以usb通信协议的观点来看,设备列举是通过一连串介于主机与设备之间的控制传输来辨识与设置一个刚接上的usb设各程序。而进一步地解释设各列举,也即是操作系统可以辨识一个新的硬件设备连接上总线,以及决定其特定的需求。此时,将会加载适当的驱动程序,并且给予新的硬件设备一个新的地址。每当甩户重新插拔设各或重新激活windows时,就会再一次地执行设各列举的步骤。 用户可以做个小实验,试着删减某个已经列举过的usb外围设各,然后再插拔看看。此时,用户会发现pc主机将会发现一个新硬件插入,并会要求请提供其驱动程序,用来重新安装新的驱动程序。也就是说,pc主机重新对此usb设各执行设备列举的步骤。在此,切勿删除根集线器或其驱动程序无法再取得的设各。 当然,如果说在驱动程序的安装过程中,出了问题或要删除某个usb设备,光是在设备管理器底下执行删除的动作是不够的。也就是说用户须在登录编辑器中,将已注册的usb外围设各的项目删除掉,才可达到完全删除的目的。 但在此须跟用户再次说明的是,以上的操作方式仅限于windows 98与me操作系统版本,在windows 2000与xp的环境下,是有所不同的。在这两种的操作环境下,不能在登录编辑器中任意地删除设备的vid/pid码。若要删除这个设备,它会发生一个警告信息,如图5所示。 那么到底如何才能删除这个设各呢?用户只能在设各管理器中,以右击所要删除的项目,然后在所弹出的选单中,选择“删除安装”的功能,才能达到删除设各功能的目的,如图6所示。图5 在windows 2000与xp下,删除vid/pid码所产生错误的画面
欲知详情,请下载word文档 下载文档