外围设备与操作系统的连接的制作方法

文档序号:6568662阅读:758来源:国知局
专利名称:外围设备与操作系统的连接的制作方法
外围设备与操作系统的连接
背景技术
发明领域
本发明涉朋于将外围设备(peripheral device )与计^L相连接的J^以端口 。 更特别地,本发明涉及一种当外围设备与计算机断开连接时能够保持虚拟串行 端口的设备驱动 置。
背景信息
敏去以及一定禾號上在现在,夕卜围设备一直以^M31用"com端口"号指 定的硬件串行端口而与计算机相连接。4顿这些外围设备的软件应用M软件 设备驱动器来与这些外围设备进行通信。这些外围设备被称为"内置式(built in)",原因在于系统在运行的时候将不会对设备的插拔作出响应。
最近,已经通过USB (通用串行总线)硬件端口和与诸如Microsoft Corporation (微软公司)销售的WINDOWS 200(Fm禾卩WINDOWS XP^之类的 操作系统包含在一起的"即插即用(Plug-N-Play)"软件而引入了"可热插拔 (hot-pluggable)"设备。当可热插拔设备被连接到计算机时,操作系统内核 (kernel)会安装该设备所特有的设备驱动器(driver)。在这种情况下,驱动器就 起着与用户应用妊的^f以com端口的作用,就如同它是内置式装置中的硬件 com端口。
在计算机操作期间,如果该设备被从计算*,下(detach),那么计 1就 会使相关联的驱动器自身从计算机中移除,并且这移除了由该驱动 供的虚 拟com端口功能。这可能会导致故障,原因在于一些应用需要com端口连接,
即^吏相应的设备已经被拆下也需要。

发明内容
本发明大体上涉及将设备驱动 分成两部分。一部分,可以称作com接 口部分",向相关联的应用提供'com"接口;另一部分,可以称^'驱动器端口", 提供与外围设备的通信。这两部分相SI信,并皿^ffl驱动器的用户应用而 言,它们表现为典型的设备驱动器。com接口部分执行附加功能,如在这M^f描述的其他软件模Wl行的那样。
当外围设备,颇入USB端口中时,它被操作系统检测到,该操作系统与该 外围设备进行通信来获取信息,所述信息在为该设备选择设备驱动器和在把该 驱动器加载到计算机存储器中的过程中舰。如以前那样,与外围设备进行通
信的用户应用被通知,并且该应用和外围设备之间的通信M:驱动器。该过程 对计^^几操作系统是比较常见的。
然而,当可热插拔的外围设备在计穀几操作期间被拔出时,本发明提供的
设备驱动器则起到不同的作用。特别地,像以前,操作系统检测(sense)外围 设备的拆除。然后,它命令设备驱动器移除其本身。在本发明之前,设备驱动 器释放它的存储器空间,并从而移除与应用通信的com端口。除非写入或者重 新写入应用来处理com端口的移除,否则就会产生故障。
然而,这里描述的设备驱动器仅仅通过移除与被拆除的设备通信的那部分 来作为响应。它不释放包含com端口的存储器空间。因此,应用倉,继续与驱
动器进4 ffl信,如同外围设备没有被拔出来一样。当然,这将不会延伸到外围 设备本身,因此就如同设备发生了故障一样来操作。可替换地,驱动器育,被 配置成向应用提供,合该特定应用的响应。 附图简要说明
以下发明描述的内,及以下附图,分别是


图1是包括在典型的现有狱的USB端口装置中的软件的框亂
图2是与本发明相结合的典型USB端口,的框图。
说明性实施例的详细描述
以下描述特别涉及Microsoft Corpomtion的操作系统。对于那些编写与操作 系统内核相联系的软件的A^说,这些系统是公知的。除掉本发明所提供的那 些模i央之外,在这里所涉及的各种软件模i央都已经被Microsoft Coiporation公开。
图1示出了用于在一方面的应用和被插入到USB 13中的USB多功能设备 12之间进4预信的现有技术體,所述应用例如是GPS地图应用10A、同步应 用10B和拨号网络实用禾聘(utility) 10C。应用10A与设备U的GPS接收器 功能(function)进《彌信以在计^t几显示器上提供各种地图功能。应用10B被 用于使计算机中的数据与设备(未示出)相同步,所述设备例如M人数字助 理(PDA)。拨号网络实用禾,10C与设备12的调制解调器功能进^ffi信。应用通过win32comAPI (应用程序接口) 14与操作系统内核(未示出) 相联系。API 14又与设备驱动器16A、 16B禾卩16C通信,这些驱动器对于应用 而言起着;^以com端口的作用。通信路^ia^且合(composite) USB总线驱动 器18以及ffli!USB驱动器接口 (USBDI) 20来完成,所i^且合USB总线驱动 器18包括用于iSA和输出的数据的驱动器栈(未示出)。
可替换地,可以用分离的物理USB端口,用IW入到这些端口中的掛共相 应功能的设备来配置外围设备装置(arrangement),而不是4顿单个多功能USB 设备来配置外围设备^g。
当系统被开启或者重新启动时,USBDI20为USB设备检查外围总线13。 它对它所发现的设备进行询问并把它们标识给内核。接着内核将相关的驱动器 (例如驱动器16A、 16B和16C)加载到存储器中并向API 14掛共这些驱动器的 地址。然后,应用就能够与相应的外围功能进^1信。
在计^m操作期间设备12的拆除被USBDI20检测到,USBDI20向内核通 知该拆除。然后内核向设备驱动器16A, 16B和16C发信号以通知释放它们的 存储器空间,从而移除驱动器。如上所讨论的那样,这可能会导致计^t几故障。
在图2中示出了本发明,各种部件与图1所示的系统中采用同样附图标记 的部件提供相同功能。然而,当系统被初始化时,即被开启或者重新启动时, 主驱动器22也被加载到工作存储器中。特别地,与在现有技术的體中一样, ^^外围设备都具有ID号码,所述ID号码是当该外围设备被检测至附系统从 该设备获得的。这个号码通常被操作系统^ffi来为该设备选择和加载适当的驱 动器到工作存储器中。在图2所示的装置中,为可以傲照本发明而连接的^ 外围设备,在启动时加载独立的主驱动器。在启动时旨主驱动 被加载到 存储器中,然后,它向内核登记连接通知,所述雜通知涉及具有与该主驱动 器相关联的ID的外围设备。
因此,主驱动器22登记与外围设储关的通知,所紛卜围设备的ID就是 多功能设备12的ID。当系统启动时,设备12被检测到,主驱动器22通过^Z1 功能驱动器16A、 16B和16C来口向应作为结果的通知。功能驱动器又向内核登 记与外围设备12的连接或者断开有关的通知。
根据本发明,旨功能驱动器16的功能被有效地分为两个模块com端口 接口部分16^等,它与相关联的应用通信并朋作鹏用的com端口;和驱动器部分16A2等,它提供到外围设备的鹏(link)(在多功會紗卜部设备情况下的 外围功能)。与现有S^置中一样,功能驱动器向内核登记设备特定的通知。
imt也,驱动器部分16i和162在物SLL被隨^^虫块。因此,如上结合 图1所描述的男,,内核将驱动器加载到工作存储器中。然而,如果外围设备 被拔出并且内核于是命令驱动器移除它自身,则com端口部分16^例如通过有 效i^人驱动部分16A2断开其自身来作出响应。因此,舰驱动器的应用10A仍 旧将極用接口部分16A!中查找相关的com端口。因而,繊用不会穀拼围 设备的拆除的干扰。如上所述,该应用当然将不能与外围设备进^S信。然而, 接口 l&提供对来自用户应用的通信的适当响应,诸如以避免因缺少必要的com 端口而可能发生的故障。
如果外围设备被拆除后又再次被插A^者以其他方式被替换,则相应的功 能驱动器16接收事件的通知,并且作为响应,重新将其自身连接到先前断开连 接的驱动器部分162从而使得相应的应用會辦与重新连接的设备进4fffi信。
因而,己经描述了供可热插拔设备使用的功能驱动器装置,即使在相应的 外围设备已经被拔出之后,所述功能驱动器^S也可以,(accommodate)需 要接入com端口的用户应用。特别地,本发明把向应用提供com端口接口的功 能驱动器部分保持在存储器中,从而阻止了可能因相应的com端口的移除而导 致的故障。
权利要求
1. 一种用于在用户应用和外围设备功能之间通信的驱动器系统,所述系统包括(A)主驱动器,用来(1)接收与外围设备有关的可用性通知,和(2)为外围设备安装功能驱动器,(B)所述功能驱动器具有(1)应用接口部分和外围接口部分,接口部分与用户应用通信并为应用提供com端口,和(2)外围接口部分在应用接口端口和与应用相关联的外围功能之间进行通信,(C)应用接口部分接收外围设备的拆除的通知,并且作为响应,把它自身与外围接口部分之间的连接断开,由此与被拆除的外围设备通信的应用仍然被提供以com端口,所述com端口为来自应用的通信提供适当的响应。
全文摘要
一种用于安装功能驱动器的装置使用为每个外围设备加载的主驱动器,所述功能驱动器提供计算机应用和各种外围设备之间的通信。主驱动器接收各外围设备的连接的通知,并及时地加载合适的功能驱动器。每个功能驱动器都具有(1)与应用进行通信的接口部分和(2)与关联于该应用的外围设备进行通信的外围部分。当设备被断开连接时,相关联的功能驱动器被通知,并且作为响应,驱动器停止它的外围部分的操作而保持它的接口部分的操作。
文档编号G06F9/445GK101292224SQ200680030560
公开日2008年10月22日 申请日期2006年8月14日 优先权日2005年8月23日
发明者S·G·小斯卡菲迪 申请人:摩尔电脑顾问公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1