CN101277361B - 多功能外围设备 - Google Patents
多功能外围设备 Download PDFInfo
- Publication number
- CN101277361B CN101277361B CN2008100874664A CN200810087466A CN101277361B CN 101277361 B CN101277361 B CN 101277361B CN 2008100874664 A CN2008100874664 A CN 2008100874664A CN 200810087466 A CN200810087466 A CN 200810087466A CN 101277361 B CN101277361 B CN 101277361B
- Authority
- CN
- China
- Prior art keywords
- data
- computer
- explorer
- function
- equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/387—Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/00127—Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
- H04N1/00204—Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/0008—Connection or combination of a still picture apparatus with another apparatus
- H04N2201/0034—Details of the connection, e.g. connector, interface
- H04N2201/0048—Type of connection
- H04N2201/0049—By wire, cable or the like
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/0077—Types of the still picture apparatus
- H04N2201/0094—Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Facsimiles In General (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
一种具有多个功能并且能够经由通用串行总线(USB)接口被连接到计算机的多功能设备,所述计算机在其上安装有将所述多功能设备识别为具有至少一个能够传送根据USB兼容系统的数据的逻辑单元的设备的操作系统(OS),所述至少一个逻辑单元中的至少一个是与所述多个功能中的两个或者更多个特定功能对应的复合逻辑单元。所述多功能设备包括:控制单元,当计算机已将带有实际数据段的输出数据传送到复合逻辑单元时,该控制单元基于在所述实际数据段中包括的唯一标准数据确定所传送的输出数据是用于控制该两个或者更多个特定功能中的哪一个,并且基于所述输出数据控制所确定的功能,作为控制所述功能的结果,所述控制单元在被传送到所述计算机的输入数据的实际数据段中存储唯一标准数据,所述唯一标准数据指示将从所述两个或者更多个特定功能中的哪一个传送所述输入数据,并且将该输入数据作为来自复合逻辑单元的数据传送到计算机。
Description
对相关申请的交叉引用
该申请要求于2007年3月28日提交的日本专利申请No.2007-84773的优先权。该优先权申请的全部内容通过引用而被结合于此。
技术领域
本发明涉及一种多功能外围设备和设备控制系统。
背景技术
能够经由USB(通用串行总线)接口连接到计算机等的多功能外围设备已被商业化生产。本领域公知的这种多功能外围设备的构造包括用于向多个功能传送数据的端点。
然而,随着功能数目增加,端点的数目也增加,致使硬件构造昂贵,从而增加了多功能外围设备的制造成本。因此,该构造对于提供低成本多功能外围设备存在困难。
为了解决该问题,日本未审定专利申请公开No.2001-222503和No.2005-175936已经提出了用于减少提供在多功能外围设备中的端点数目的技术。例如,在日本未审定专利申请公开No.2001-222503中的技术使得主机设备通过仿真从具有一个功能的设备断开并且连接到具有另一功能的设备的设备而能够经由相同端点选择性地接入(access)多个功能。
在日本未审定专利申请公开No.2005-175936中描述的技术减少了用于传送数据的端点的数目,所述传送数据是指通过使用与数据传送端点分开提供的控制端点来执行数据传送。
然而,利用在日本未审定专利申请公开No.2001-222503中公开的技术,每次使用多功能外围设备上的一个功能时,需在主机侧切换设备驱动(禁用未在使用的驱动并且装载和启用将要使用的驱动)。因此,需要大量时间用于切换设备驱动,并且不能同时使用两个或者更多功能。
进一步,使用日本未审定专利申请公开No.2001-222503中所公开的技术,当在多功能外围设备上操作一个功能时,直至第一功能的操作确实结束才能够切换到不同的功能。因此,难以确定用于控制该切换的适当时刻。
在公开于日本未审定专利申请公开No.2005-175936中的技术中,控制端点被用于数据传送。因此,当大量数据被传送时,该数据传送会干扰控制,使得难以迅速地执行所需控制。
因此,即使上述传统技术能够减少所需端点的数目,多功能外围设备也比较不容易被用户掌握使用并且可能干扰适当的控制。
发明内容
鉴于前述情况,本发明的目的在于提供一种能够减少端点数目而不降低用户友好性或者不干扰适当控制的多功能外围设备,以及一种用于控制该多功能外围设备的设备控制系统。
为了达到上述及其它的目的,本发明提供一种具有多个功能并且能够经由通用串行总线(USB)接口被连接到计算机的多功能设备,该计算机在其上安装有将多功能设备识别为具有至少一个能够传送根据USB兼容系统的数据的逻辑单元的设备的操作系统(OS),使得计算机能够通过与逻辑单元交换输入/输出数据而使用多功能设备的多个功能中的至少一个逻辑单元的,所述至少一个逻辑单元中的至少一个是与所述多个功能中的两个或者更多个特定功能对应的复合逻辑单元。多功能设备包括:控制单元,当计算机已将带有实际数据段的输出数据传送到复合逻辑单元时,控制单元基于在实际数据段中包括的唯一标准数据而确定所传送的输出数据是用于控制所述两个或者更多个特殊功能中的哪一个,并且基于该输出数据控制所确定的功能,通过控制该功能,控制单元在被传送到计算机的输入数据的实际数据段中存储唯一标准数据,该唯一标准数据指示将从所述两个或者更多个特殊功能中的哪一个传送输入数据,并且将该输入数据作为来自复合逻辑单元的数据传送给计算机。
根据另一方面,本发明提供一种设备控制系统,其包括:计算机;和具有多个功能的多功能设备,计算机和多功能设备经由通用串行总线(USB)接口相互连接。该计算机在其上安装有将多功能设备识别为具有至少一个能够传送根据USB兼容系统的数据的逻辑单元的设备的操作系统(OS),使得该计算机能够通过与逻辑单元交换输入/输出数据而使用多功能设备的多个功能中的至少一个的设备,所述至少一个逻辑单元中的至少一个是与多个功能中的两个或者更多个特定功能对应的复合逻辑单元。所述计算机包括计算机控制单元,该控制单元基于来自在计算机上工作的数据处理器的指令而控制多功能设备的两个或者更多个功能中的一个,在输出数据的实际数据段中存储用于控制两个或者更多个特定功能中的一个功能的唯一标准数据,并且将该输出数据传送到复合逻辑单元,当输入数据从多功能设备被传送到计算机时,该计算机控制单元基于在输入数据的实际数据段中包括的唯一标准数据而确定输入数据是从两个或者更多个特定功能中的哪一个传送的,并且将该输入数据传送到最初发出指示的数据处理器。多功能设备包括设备控制单元,当计算机已将带有实际数据段的数据传送到复合逻辑单元时,该设备控制单元基于在该实际数据段中包括的唯一标准数据而确定所传送的输出数据是用于控制两个或者更多个特殊功能中的哪一个的,并且基于该输出数据控制所确定的功能,通过控制该功能,设备控制单元在被传送到计算机的输入数据的实际数据段中存储唯一标准数据,该唯一标准数据指示将从两个或者更多个特定功能中的哪一个传送输入数据,并且将该输入数据作为来自复合逻辑单元的数据传送到计算机。
附图说明
在附图中:
图1是示出根据本发明第一实施例的总体设备控制系统的框图;
图2是示出根据第一实施例的多功能外围设备的内部结构的框图;
图3是更加详细地示出多功能外围设备的部分的内部结构的框图;
图4是示出根据第一实施例的PC的内部结构的框图;
图5是示出当在PC和多功能外围设备之间建立连接时交换的数据的解释性图表;
图6是更加详细地示出PC的部分的内部结构的框图;
图7是示出用于安装多功能外围设备软件的由PC执行的安装过程中的步骤的流程图;
图8是更加详细地示出安装过程的部分中的步骤的流程图;
图9是示出当PC通电时在PC上执行的过程中的步骤的流程图;
图10是示出用于装载静态驱动的在PC上执行的过程中的步骤的流程图;
图11是示出用于装载动态驱动的在PC上执行的过程中的步骤的流程图;
图12是示出用于启动自动启动程序的在PC上执行的过程中的步骤的流程图;
图13是示出由实现于PC上的资源管理器所执行的过程中的步骤的流程图;
图14是示出在PC上执行的ReadBuffer(读缓冲器)过程中的步骤的流程图;
图15是示出在PC上执行的WriteBuffer(写缓冲器)过程中的步骤的流程图;
图16是示出使用在多功能外围设备上实现的SCSI指令分析任务来执行的过程中的步骤的流程图;
图17是示出使用在多功能外围设备上实现的资源管理器任务来执行的过程中的步骤的流程图;
图18是示出用于安装多功能外围设备软件的由根据第二实施例的PC执行的安装过程中的步骤的流程图;
图19是示出由实现于根据第二实施例的PC上的资源管理器来执行的过程中的步骤的流程图;
图20是示出根据第三实施例的PC的内部结构的框图;
图21是示出根据第四实施例的PC的内部结构的框图。
具体实施方式
在下面的说明中,逻辑单元是被计算机的OS识别为能够根据USB兼容方法传送数据的数据传送对象的物理单元。
更具体地,计算机中的OS将具有单个功能的USB设备识别为单个传送对象。在该情形中,具有单个功能的USB设备被识别为具有一个逻辑单元的设备。
计算机的OS将具有多个功能的USB复合设备识别为与多个功能对应的多个数据传送对象。在该情形中,USB复合设备被识别为具有多个逻辑单元的设备。
另外,USB存储类设备可具有多个用于单个设备的逻辑单元编号(LUN),并且计算机的OS识别与多个LUN中的每个对应的每个单独的数据传送对象。在该情形中,具有多个LUN的USB存储设备被识别为具有多个逻辑单元的设备。
为了在计算机与用于具有单个功能的USB设备的逻辑单元之间实现数据传送,为每个逻辑单元配备输入端点和输出端点。相似地,为了在计算机与用于USB复合设备的逻辑单元之间实现数据传送,为每个逻辑单元配备输入端点和输出端点。相反地,为了在计算机与用于具有多个LUN的USB存储设备的逻辑单元之间实现数据传送,配备由多个逻辑单元共享的输入端点和输出端点。
在具有单个功能的USB设备和USB复合设备中,端点被用于单个逻辑单元。在具有多个LUN的USB存储设备中,端点被多个逻辑单元共享。然而,在所有类型的USB设备中,均存在用于单个逻辑单元的输入端点和输出端点。除输入和输出端点以外,还为USB设备配备单个控制端点。
下面,将参照附图描述本发明的实施例。
(1)第一实施例
设备控制系统的结构
图1是示出根据本发明第一实施例的设备控制系统的总体结构的框图。
该设备控制系统包括多功能外围设备11和个人计算机(PC)12。多功能外围设备11和PC 12均具有USB接口并且经由USB集线器13相互连接使得数据可在两者之间进行交换。例如,另一USB设备14也被连接到USB集线器13。多功能外围设备11具有CPU 11a。PC 12具有CPU 12a。
在本实施例中,多功能外围设备11是具有多个功能的设备,包括打印机功能、扫描仪功能、PC传真功能以及读卡器功能。可从PC 12控制这些功能。
多功能外围设备的内部结构
图2是示出多功能外围设备11的内部结构的框图。多功能外围设备11装备有构成USB接口的硬件,包括USB协议引擎101、控制电路103以及读卡器数据I/O电路105。USB协议引擎101根据USB通信协议控制在多功能外围设备11和PC 12之间的数据传送。
该硬件被配置为使得经由端点在PC 12与多功能外围设备11之间传送数据。更具体地,控制电路103通过控制传送端点(以下简称为EP0)从PC 12输入各种控制数据并且向PC 12输出各种控制数据(双向通信)。
另一方面,读卡器数据I/O电路105通过输入数据端点(以下简称为EP1)向PC 12传送输入数据,并且经由输出数据端点(以下简称为EP2)获取从PC 12传送的输出数据。
作为其软件功能中的一个,多功能外围设备11还设有SCSI指令分析任务111。当数据从读卡器数据I/O电路105传送到SCSI指令分析任务111时,SCSI指令分析任务111基于传送数据中包括的信息在LUN0侧和LUN1侧之间重定向数据。
当数据从LUN0侧或者LUN1侧被传送到SCSI指令分析任务111时,SCSI指令分析任务111将该数据传送到读卡器数据I/O电路105。
当将数据重定向到LUN0侧时,SCSI指令分析任务111向存储器插槽I/O控制任务121传送该数据。存储器插槽I/O控制任务121是用于控制第一存储器插槽131、第二存储器插槽132、第三存储器插槽133以及第四存储器插槽134的软件。
第一到第四存储器插槽131-134中的每个均是接受存储器卡的插槽并且每个插槽接受具有与其它插槽不同的标准的存储器卡。
在本实施例中,第一到第四存储器插槽131-134被配置为互斥(exclusive)使用。例如,当卡被插入第一存储器插槽131中时,其它插槽直至该存储器卡被移除时才可使用。
另一方面,当将数据转向到LUN1侧时,SCSI指令分析任务111将数据传送到资源管理器任务141。资源管理器任务141基于数据的真实数据段中包括的唯一标准数据依次将数据转向至打印机I/O任务151、扫描仪I/O任务153以及PC传真I/O任务155中的一个。
进一步,当打印机I/O任务151、扫描仪I/O任务153和PC传真I/O任务155中的一个将数据传送到资源管理器任务141时,该资源管理器任务141将数据中转到SCSI指令分析任务111。
打印机I/O任务151、扫描仪I/O任务153和PC传真I/O任务155分别经由打印机控制任务161、扫描仪控制任务163和调制解调器控制任务165而分别控制打印机硬件171、扫描仪硬件173和调制解调器硬件175。
PC 12的OS将多功能外围设备11中的受存储器插槽I/O控制任务121控制的结构识别为与LUN0对应的逻辑单元。进一步,PC 12的OS将受资源管理器任务141控制的结构识别为与LUN1对应的逻辑单元。
而且,受资源管理器任务141控制的结构与打印机功能、扫描仪功能和PC-功能对应。因此,与LUN1对应的逻辑单元等效于复合逻辑单元。
图3是更加详细地示出在打印机I/O任务151、扫描仪I/O任务153、PC传真I/O任务155和资源管理器任务141之间的数据传送路径的框图。
打印机I/O任务151、扫描仪I/O任务153和PC传真I/O任务155被配置成使得经由用于数据传送的共享存储器与资源管理器任务141交换各种数据。
更具体地,共享存储器包括由打印机I/O任务151、扫描仪I/O任务153和PC传真I/O任务155共享的控制区181。当在资源管理器任务141和打印机I/O任务151、扫描仪I/O任务153以及PC传真I/O任务155之间传送控制数据时,使用该控制区181。
共享存储器还包括与打印机I/O任务151对应的输出缓冲器182和输入缓冲器183。输出缓冲器182和输入缓冲器183被用于在打印机I/O任务151与资源管理器任务141之间传送数据。打印机I/O任务151还可直接将信号传送到资源管理器任务141。
共享存储器还包括与扫描仪I/O任务153对应的输出缓冲器184和输入缓冲器185。输出缓冲器184和输入缓冲器185被用于在扫描仪I/O任务153与资源管理器任务141之间传送数据。扫描仪I/O任务153还可直接将信号传送到资源管理器任务141。
共享存储器还包括与PC传真I/O任务155对应的输出缓冲器186和输入缓冲器187。输出缓冲器186和输入缓冲器187被用于在PC传真I/O任务155与资源管理器任务141之间传送数据。PC传真I/O任务155还可直接将信号传送到资源管理器任务141。
资源管理器任务141还可访问下一PC发送缓冲器191以读出或者写入数据。当该数据被预先从控制区181或者输入缓冲器183、185和187读出时,下一PC发送缓冲器191用作暂时存储在下一发送中被发送到PC 12的数据。
PC的内部结构
图4是示出PC 12的内部结构的框图。PC 12具有OS的标准功能,例如USB协议堆栈201、USB存储驱动203、SCSI指令处理器211和213、可移动磁盘驱动221和223以及文件系统231和233。
PC 12还具有与用作资源管理器241、打印机端口驱动251、扫描仪驱动253、COM端口驱动255和打印机驱动261的多功能外围设备11对应的专用软件。
PC 12还包括使用上述功能的应用软件,例如打印机应用软件271、扫描仪应用软件273以及PC传真应用软件275。
在本实施例中,在PC 12上安装的OS是Windows(注册商标)。因此,PC 12还包括作为与Windows绑定的软件的Explorer 277。然而,除了Windows之外的OS可被安装在PC 12上,如果该OS可执行相同功能。
PC 12还包括与USB设备14对应的另一USB设备驱动281。
使用该构造,当启动PC 12时,USB协议堆栈201开始运行,并且此后,周期性地监视USB设备是否连接到PC 12,如图5中所示。
因为当多功能外围设备11连接到PC 12时,多功能外围设备11向PC 12返回响应,所以USB协议堆栈201向多功能外围设备11发出对于设备类型作出响应的请求。当收到该请求时,多功能外围设备11返回指示该多功能外围设备11是USB存储类型设备的响应(具体地,例如,配置在多功能外围设备11中提供的CPU 11a以返回该响应,)。因此,PC 12装载USB存储驱动203使得USB存储驱动203在后台运行。
当被启动时,USB存储驱动203向多功能外围设备11发出关于最大LUN的请求。当收到该请求时,多功能外围设备11返回最大LUN(在本示例中为LUN1)。因此,PC 12生成与LUN0和LUN1对应的两个SCSI指令处理器211和213。SCSI指令处理器211和213用作用于经由USB存储驱动203向多功能外围设备11传送SCSI指令的端口。
当被生成时,SCSI指令处理器211向逻辑单元LUN0发出SCSI指令“查询”。一收到该查询,多功能外围设备11就返回指示该设备类型是可移动磁盘的响应。因此,PC 12装载可移动磁盘驱动221。
以这种方式,与LUN0对应的逻辑单元被链接到文件系统231,并且因此,驱动盘符被分配给逻辑单元LUN0。此后,可通过指定该驱动盘符访问逻辑单元LUN0。多功能外围设备11被配置成使得与LUN0对应的逻辑单元受存储器插槽I/O控制任务121控制。
SCSI指令处理器213执行与SCSI指令处理器211相同的过程,即,向LUN1逻辑单元发出SCSI指令“查询”。一收到该查询,多功能外围设备11(更具体地,CPU 11a)就返回指示设备类型为可移动磁盘的响应。
这里,在多功能外围设备11中与LUN1对应的逻辑单元受到资源管理器任务141的控制。具体地,该逻辑单元与打印机功能、扫描仪功能和PC传真功能对应。
因此,当该结构不等效于可移动磁盘时,多功能外围设备11返回指示可移动磁盘的响应。结果,该逻辑单元仿真用于PC 12的OS的可移动磁盘。
因此,PC 12装载可移动磁盘驱动223,将LUN1逻辑单元链接到文件系统233。这使得驱动盘符被分配给LUN1逻辑单元。
然而,如上所述,因为与驱动盘符相关联的可移动磁盘是虚拟设备,所以等效于可移动磁盘的设备实际并不存在。因此,修改显示器设置使得在常规操作下不将这种伪可移动磁盘的存在显示给用户。
结果,虽然驱动盘符已经在内部被分配给伪可移动磁盘,但是该伪可移动磁盘被设为不显示,例如,即使当Explorer 277显示连接到PC 12的设备的列表时也不显示。
使用上述构造,能够使用分配给LUN0逻辑单元的驱动盘符访问安装在第一到第四存储器插槽131-134中的任何一个中的存储器卡。
例如,如果用户使用Explorer 277对安装在第一存储器插槽131中的存储器卡中的文件执行操作,Explorer 277经由文件系统231、可移动磁盘驱动221、SCSI指令处理器211、USB存储驱动203以及USB协议堆栈201向多功能外围设备11传送指令。
然后,多功能外围设备11经由USB协议堆栈201、USB存储驱动203、SCSI指令处理器211、可移动磁盘驱动221以及文件系统231返回响应给Explorer 277。
从打印机应用271输出的打印数据经由打印机驱动261和打印机端口驱动251被传送到资源管理器241。此外,从扫描仪应用273输出的扫描仪控制数据经由扫描仪驱动253被传送到资源管理器241,以及从PC传真应用275输出的PC传真数据经由COM端口驱动255被传送到资源管理器241。
资源管理器241在用作出厂数据而发送的数据的实际数据段中存储上述各种数据,使得多功能外围设备11的资源管理器任务141能够处理该数据。
通过向上述伪可移动磁盘发出写入该数据的指令,资源管理器241经由SCSI指令处理器213、USB存储驱动203和USB协议堆栈201将数据传送到多功能外围设备11。
在一些情形中,上述数据传送致使输入数据从多功能外围设备11被传送到PC 12。例如,当扫描仪控制数据被传送到多功能外围设备11时,扫描仪功能在多功能外围设备11上被激活,从而自多功能外围设备11侧传送扫描仪数据。
当此输入数据被传送到PC 12时,数据经由USB协议堆栈201、USB存储驱动203和SCSI指令处理器213而被导向资源管理器241。
资源管理器241从传送数据的实际数据段中提取出厂数据并且在确定适当目标之后,向打印机端口驱动251、扫描仪驱动253和COM端口驱动255中的一个中转该数据。
例如,当多功能外围设备11传送扫描仪数据时,该数据经由扫描仪驱动253被中转到扫描仪应用273。
如果被传送的数据为用于打印机功能的状态数据(例如与打印错误相关的数据),则资源管理器241经由打印机端口驱动251和打印机驱动261将该数据中转到打印机应用271。
如果被传送的数据是利用PC传真功能接收的传真接收数据,资源管理器241经由COM端口驱动255将该数据中转到PC传真应用275。
图6是详细示出资源管理器241与打印机端口驱动251、扫描仪驱动253和COM端口驱动255之间的数据传送路径的框图。
打印机端口驱动251、扫描仪驱动253和COM端口驱动255被配置以通过用于数据传送的共享存储器与资源管理器241交换各种数据。
更具体地,共享存储器包括由打印机端口驱动251、扫描仪驱动253和COM端口驱动255共享的控制区291。控制区291被用于在打印机端口驱动251、扫描仪驱动253和COM端口驱动255与资源管理器241之间传送控制数据。
该共享存储器还包括与打印机端口驱动251对应的输出缓冲器292和输入缓冲器293。该输出缓冲器292和输入缓冲器293被用于在打印机端口驱动251与资源管理器241之间传送数据。
共享存储器还包括与扫描仪驱动253对应的输出缓冲器294和输入缓冲器295。该输出缓冲器294和输入缓冲器295被用于在扫描仪驱动253与资源管理器241之间传送数据。
共享存储器还包括与COM端口驱动255对应的输出缓冲器296和输入缓冲器297。该输出缓冲器296和输入缓冲器297被用于在COM端口驱动255与资源管理器241之间传送数据。
使用具有上述构造的多功能外围设备11和PC 12,在资源管理器241与资源管理器任务141之间传送的数据具有基于SCSI标准的结构。
符合SCSI标准的数据结构能够保持上述出厂数据。出厂数据应该是配备在可被资源管理器241和资源管理器任务141识别的唯一标准中的数据。然而,OS等将不检测出厂数据的内容。
因此,在资源管理器241与资源管理器任务141之间交换的真实数据作为该出厂数据被传送,使得任意数据能够在符合SCSI标准的系统中交换。此外,因为USB标准为符合SCSI标准的系统规定交换数据的方法,如果能够在符合SCSI标准的系统中交换任意数据,则在符合USB标准的系统中能够类似地交换任意数据。
多功能外围设备软件的安装过程
下面,将参照图7和8中的流程图描述用于在PC 12上安装多功能外围设备软件以使得PC 12能够使用具有以上构造的多功能外围设备11的过程。由图1中所示的提供在PC 12中的CPU 12a来执行该过程。
在图7中所示的过程开始时,在S105中,PC 12运行安装程序。当用户执行规定操作时执行该过程,或者当CD-ROM或其它媒体被插入CD-ROM驱动等时可自动执行该过程。
在运行安装程序之后,在S110中,PC 12搜索多功能外围设备11的资源管理器驱动。参照图8,更详细地描述了该过程。
具体地,在图8的S205中,PC 12将可变CDRV初始设定为驱动盘符“A”以开始按照顺序搜索驱动盘符“A”到“Z”。在S210中,PC 12向驱动CDRV(例如,在执行S205之后即刻地,驱动“A”)发出SCSI指令“查询”。该指令被用于索引设备类型等。
如果对该指令的响应在S210中被正常地返回(S210:正常),则在S215中PC 12确定驱动CDRV是否是与目标多功能外围设备11对应的驱动,所述目标多功能外围设备11是由基于包括在该响应中的厂商名称和产品名称的程序定为目标的。
如果驱动CDRV是目标驱动(S215:目标驱动),则PC 12结束图8中的过程,因为与多功能外围设备11对应的驱动已被找到。
然而,如果驱动CDRV并不与多功能外围设备11(S215:非目标驱动)对应,或者如果在对S210中发出的指令的响应中返回错误(S210:错误),则PC 12前进到S220。在S220中,PC 12确定给可变CDRV设定的驱动盘符是否为“Z”。
如果可变CDRV未被设定为驱动盘符“Z”(S220:否),则在S225中,PC 12将可变CDRV设定为下一驱动的驱动盘符(例如,如果当前驱动盘符为“A”,则驱动“B”),并且返回到S210。
以这种方式,重复S210-S220中的过程直至给可变CDRV设定的驱动盘符为“Z”或者找到目标驱动盘符。如果在重复S210-S220中的过程时,PC 12在S215中确定目标驱动已被找到,则PC 12结束图8中的过程。
另一方面,如果给可变CDRV设定的驱动盘符为“Z”(S220:是),则已经对所有的驱动盘符“A”到“Z”执行了上述过程。在该情形中,没有找到与目标多功能外围设备11对应的驱动,且PC 12结束图8的过程。
在完成上述图8的过程之后,图7的S110中的过程结束。如果图7中的S110的过程中没有找到资源管理器驱动(S110:未找到),则在S115中,PC 12为用户显示对话框,该对话框消息为“请与多功能外围设备建立USB连接,等待一会,然后点击OK”的消息
在执行S115中的过程之后,PC 12等待用户输入。在该示例中,用户可以在显示于PC 12的显示器单元上的对话框中选择“OK”或者“取消”。例如,用户能够使用指向设备点击在显示器单元上显示的“OK”按钮或者“取消”按钮。
如果用户选择“取消”(S115:取消),则PC 12取消安装过程。然而,如果用户选择“OK”(S115:OK),则PC 12重复S110中的过程。
然而,如果在S110中找到了资源管理器驱动(S110:找到),则在S120中,PC 12隐藏以上找到的资源管理器驱动。这里,对于每个驱动名,将指示显示或者隐藏已被分配驱动盘符的设备的设置记录在OS的注册表中(由OS管理的存储区)。
因此,在S120中,PC 12将在S110中找到的资源管理器驱动的驱动盘符设定为目标并且修改注册表中的设置以隐藏该设备。
在S125中,PC 12安装资源管理器并且在INI文件中设定该多功能外围设备的型号名称。INI文件是存储与资源管理器相关的各种设置的文本文件。当执行在以后描述的过程时,资源管理器读出INI文件的内容。通过S125中的过程,在S210中获取的多功能外围设备的型号名称被存储于INI文件中。
在S130中,PC 12安装打印机驱动、打印机端口驱动、扫描仪驱动、COM端口驱动以及PC传真应用,并且随后结束用于安装多功能外围设备软件的过程。
通电时在PC上执行的示例过程
下面,将参照图9到12描述从PC被打开的时刻直至PC被关闭的时刻在PC(具体地,CPU 12a)上执行的示例过程。下列说明涵盖其中当多功能外围设备11的电源开关已被接通时接通PC 12的电源开关的情况。
当PC 12的电源开关接通时,首先在图9的S305中PC 12装载OS。在S310中,PC 12装载静态驱动。将参考图10更加详细描述S310的过程。
如图10所示,在S405中,PC 12的OS在参考注册表设置时顺次地装载静态驱动。随后,PC 12在S410中装载打印机驱动,在S415中装载打印机端口驱动,在S420中装载扫描仪驱动,并且在S425中装载COM端口驱动。在装载这些驱动之后,图10中的过程结束。
在完成图10中所示的过程之后,图9的S310中的过程结束。接下来,在S315中,PC 12装载动态驱动。将参照图11详细描述S315的过程。
具体地,在图11的S505中,PC 12的OS在参考硬件连接状态时顺次地装载动态驱动。在S510中,在USB协议堆栈201已经找到多功能外围设备11之后,PC 12查询多功能外围设备11的设备类型。
如果从多功能外围设备11对于该查询的响应指示多功能外围设备11是USB存储设备,则在S515中,PC 12装载USB存储驱动203。
由于通过S515的过程USB存储驱动203被置于工作状态中,所以在S520中USB存储驱动203关于LUN的编号查询多功能外围设备11。更具体地,在S520中,USB存储驱动203发出关于最大LUN的查询。
在本实施例的情形中,多功能外围设备11具有两个逻辑单元。由于一系列的编号被分配给具有为“0”的最小LUN的逻辑单元,所以多功能外围设备11返回“1”作为最大LUN。
PC 12基于“1”为最大LUN的响应而确定多功能外围设备11具有两个LUN。在该情形中,在S525中,PC 12为SCSI命令进程生成两个端口。通过S525的过程,配置SCSI指令处理器211和SCSI指令处理器213。
在SCSI指令处理器211和SCSI指令处理器213处于工作状态之后,在S530中,SCSI指令处理器211向逻辑单元LUN0发出“查询”。
响应该查询,在S535中,PC 12从逻辑单元LUN0接收响应“可移动磁盘”。这里,PC 12装载可移动磁盘驱动221并且将可移动磁盘驱动221链接到文件系统231,使得驱动盘符被分配给逻辑单元LUN0。驱动盘符显示在Explorer 277中。
在S540中,SCSI指令处理器213向逻辑单元LUN1发出查询。响应该查询,PC 12从LUN1逻辑单元接收指示设备类型为“可移动磁盘”的数据。
在多功能外围设备11中的逻辑单元LUN1实际上与多功能外围设备11的打印机功能、扫描仪功能和PC传真功能相对应,并且不用作等效于可移动磁盘的设备。然而,通过返回指示逻辑单元LUN1是可移动磁盘的响应,多功能外围设备11可使PC 12的OS将多功能外围设备11中的两个驱动识别为可移动磁盘。
当从逻辑单元LUN1接收到可移动磁盘响应时,在S545中,PC 12装载可移动磁盘驱动223并且将可移动磁盘驱动223链接到文件系统233,使得驱动盘符被分配给逻辑单元LUN1。
然而,分配给逻辑单元LUN1的驱动盘符与在上述S120中被给定隐藏设置的驱动对应。因此,在S545中,驱动盘符并不显示在Explorer277中,但是在内部被识别。
在完成在图11中所描述的用于装载动态驱动的过程之后,图9的S315中的过程结束。接下来,在S320中,PC 12装载服务过程(process),并且在S325中等待登录(login)数据。
具体地,PC 12在S325中等待,直至用户已经完成登录操作(S325:未登录)。在用户已经完成登录过程之后(S325:登录),在S330中,PC 12运行自动启动程序。下面参照图12更详细地描述S330中的过程。
具体地,在图12的S605中,PC 12的OS在索引(reference)在开始菜单中的“启动”(Start Up)中列出的程序时顺次地运行自动启动程序。在S610中,PC 12运行资源管理器241。稍后将更详细地描述在S610中运行资源管理器241之后,由资源管理器241执行的过程的细节。
通过在图12的过程中运行自动启动程序而完成图9中的S330之后,在S355中,PC 12进入正常(normal)状态。一旦PC 12已经达到该正常状态,用户能够预期使用打印机应用271、扫描仪应用273、PC传真应用275、Explorer 277等。
如果用户随后执行退出(log out)或者关闭PC 12的操作(S335:退出或者关闭),在S340中,PC 12首先停止自动和手动启动的所有程序,在退出操作(S340:退出)的情况下,返回到S325。
然而,在关闭操作(S340:关闭)的情况下,在S345中,PC 12卸载服务过程,在S350中卸载动态驱动,并且在S355中卸载静态驱动。最后,在S360中,PC 12卸载OS并且将关掉PC 12的电源。S345-S360中的过程按照与S305-S320中的过程相反的顺序卸载所有软件。
由资源管理器执行的过程
下面,将参照图13到15描述在S610中启动资源管理器241之后由资源管理器241所执行的过程。由图1中所示的在PC 12中提供的CPU 12a执行该过程。
在资源管理器241被启动之后,在S705中,资源管理器241(更准确地,PC 12执行过程以用作资源管理器241;然而,在该说明中使用资源管理器241)从INI文件读出目标多功能外围设备11的型号名称以及其它设置。在S705的过程中,资源管理器241读出在上述S125等中被存储在INI文件中的各种数据。
在S710中,资源管理器241搜索用于多功能外围设备11的资源管理器的驱动。由于该过程与以上参照图8所描述的过程相同,所以在这里将不对S710中的过程进行重复说明。
如果资源管理器驱动在S710中未被找到(S710:未找到),则在S715中,PC 12向用户显示对话框,该对话框消息为“请等待与多功能外围设备11建立USB连接,然后按OK”。
在S715中,PC 12等待用户输入。这里,用户能够执行操作以选择(点击)在PC 12的显示器单元上显示的对话框中的“OK”或者“取消”。
如果用户选择了“取消”(S715:取消),则由资源管理器241执行的过程结束。然而,如果用户选择了“OK”(S715:OK),则PC 12从S710重复该过程。
如果在S710中找到了资源管理器驱动(S710:找到),则在S720中,PC 12等待规定时间并且在S725中确定是否已经接收到结束请求。
如果未接收到结束请求(S725:否),则在S730中,资源管理器241执行S730的读缓冲器过程和S735中的写缓冲器过程并且随后返回到S720。因此,当未接收到结束请求时,资源管理器241重复地执行S720-S735中的过程。如果接收到结束请求(S725:是),则由资源管理器241执行的过程结束。
在S720-S735循环期间执行的S730的读缓冲器过程用于获取从多功能外围设备11传送到资源管理器241的输入数据。在相同循环期间执行的S735的写缓冲器过程用于从资源管理器241向多功能外围设备11发送输出数据。
读缓冲器过程
下面,将参照图14描述S730的读缓冲器过程。
在S805中,在读缓冲器过程开始时,资源管理器241向资源管理器驱动发出SCSI指令“读缓冲器”。在S810中,资源管理器241确定在S805中是否获取输入数据。
如果未获取输入数据(S810:否),则资源管理器241结束读缓冲器过程。然而,如果获取到输入数据(S810:是),在S815中,资源管理器241确定所接收到的数据包的类型。
多功能外围设备11响应“读缓冲器”指令而返回的输入数据的类型取决于多功能外围设备11的规格。在本实施例中,多功能外围设备11返回控制数据包、打印机数据包、扫描仪数据包和COM端口数据包中的一个。
指示所返回的这些数据包的类型的信息以及构成真实数据的信息是在实施例中具有唯一标准的数据。多功能外围设备11将唯一标准数据,如出厂数据,存储在具有符合SCSI标准的数据结构的数据包的实际数据段中,并且将这些数据包传送到PC 12。
因此,在S815中,资源管理器241从数据包中的实际数据段获取出厂数据,而该数据包是作为SCSI标准数据而获取的。基于出厂数据确定数据包类型是否为控制数据包、打印机数据包、扫描仪数据包或者COM端口数据包。
如果数据包为控制数据包(S815:控制数据包),在S820中,资源管理器241基于数据包数据修改控制区291(参见图6)并且随后结束读缓冲器过程。
如果数据包是打印机数据包(S815:打印机数据包),在S825中,资源管理器241将数据包的实际数据段添加到输入缓冲器293并且随后结束读缓冲器过程。如果输入缓冲器293此时已满,则在执行S825中的过程之前,资源管理器241等待直至输入缓冲器293被清空。
如果数据包是扫描仪数据包(S815:扫描仪数据包),在S830中,资源管理器241将数据包的实际数据段添加到输入缓冲器295并且随后结束读缓冲器过程。如果输入缓冲器295此时已满,则资源管理器241在执行S830中的过程之前等待直至输入缓冲器295被清空。
如果数据包为COM端口数据包(S815:COM端口数据包),在S835中,资源管理器241将数据包的实际数据段添加到输入缓冲器297并且随后结束读缓冲器。如果输入缓冲器297此时已满,则在执行S835中的过程之前,资源管理器241等待直至输入缓冲器297被清空。
写缓冲器过程
下面,将参照图15描述S735的写缓冲器过程。
在S905中,在写缓冲器过程开始时,资源管理器241确定控制区291是否包含被传送到多功能外围设备11的数据。
如果控制区291包含被传送的数据(S905:是),则在S910中资源管理器241基于被传送的数据生成控制数据包。在S915中,资源管理器241向资源管理器驱动发出SCSI指令“写缓冲器”并且随后结束写缓冲器过程。
多功能外围设备11的规格确定当写缓冲器指令已被发出时,多功能外围设备11如何处理从PC 12传送的输出数据。在本实施例的S910中,资源管理器241准备指示数据包为控制数据包的信息以及关于符合唯一标准的数据的信息,并且将该信息(指示数据包为控制数据包的信息和用作真实数据的信息)作为出厂数据存储在数据包的实际数据段中,该数据包被配置为具有符合SCSI标准的数据结构。在S915中,该数据从PC 12传送到多功能外围设备11。
然而,如果控制区291不包含被传送到多功能外围设备11的数据(S905:否),则在S920中,资源管理器241将用于选择处理目标的起始点设定到之前为其生成数据包的设备的下一设备。
当之前执行写缓冲器过程时,之前为其生成数据包的设备指示向其发送数据包的设备。在本实施例中,可被设定为发送目标的设备包括打印机、扫描仪和调制解调器(PC传真)。
更具体地,如果之前为其生成数据包的设备是打印机,则在S920中资源管理器241将跟随打印机之后的扫描仪设定为用于选择处理目标的起始点。如果之前为其生成数据包的设备是扫描仪,则在S920中资源管理器241将跟随扫描仪之后的调制解调器(PC传真)设定为用于选择处理目标的起始点。如果之前为其生成数据包的设备是调制解调器(PC传真),则在S920中资源管理器241将跟随调制解调器之后的打印机设定为用于选择处理目标的起始点。
在选择上述处理目标之后,在S925中资源管理器241确定被设定为处理目标(打印机、扫描仪或调制解调器)的设备是否处于溢出(flow-off)状态。
如果在该设备上的数据处理已经充分进行了,则资源管理器241确定被设定为处理目标的设备不处于溢出状态(S925:否)。在这种情况下,在S930中资源管理器241确定输出缓冲器是否包含数据。
具体地,如果被作为处理的目标的设备是打印机,则在S930中资源管理器241确定与打印机对应的输出缓冲器292是否包含数据。类似地,如果目标设备是扫描仪,则资源管理器241确定与扫描仪对应的输出缓冲器294是否包含数据,以及如果目标设备是调制解调器,则确定与调制解调器对应的输出缓冲器296是否包含数据。
如果对应的输出缓冲器包含数据(S930:是),则在S935中资源管理器241从输出缓冲器中提取数据并生成数据包。
正如在上述S910的过程中那样,在S935的过程中,资源管理器241准备指示数据包对应于哪个设备的信息和构成符合唯一标准的数据的信息。资源管理器241将该数据(指示数据包对应于哪个设备的信息以及构成真实数据的信息)作为出厂数据存储在数据包的实际数据段中,该数据包被配置为具有符合SCSI标准的数据结构。
在完成S935的过程之后,资源管理器241前进到上述S915。结果,PC 12将在S935中生成的数据传送到多功能外围设备11。
然而,如果在S930中输出缓冲器不包含数据(S930:否)或者如果在S925中设备处于溢出状态(S925:是),则资源管理器241前进到S940。
在S940中,资源管理器241确定用于可被选择为处理目标的所有设备的输出缓冲器是否在当前写缓冲器过程中已被检查。更具体地,在S940中资源管理器241确定是否已对可被设定为处理目标(打印机、扫描仪和调制解调器)的所有设备执行了一次自S925开始的过程。
如果余留有尚未对其执行自S925开始的过程的任何设备,则在S940中资源管理器241得到否的决定,并且如果已对所有设备都执行了一次自S925开始的过程,则得到是的决定。
如果有设备留待被处理(S940:否),则在S945中,资源管理器241选择下一设备作为处理目标并且返回到S925。如果所有设备已被处理(S940:是),则写缓冲器过程结束。
在上述写缓冲器过程中,在首先完成S905中的过程之后,资源管理器241执行S930中的过程。通过以这种顺序执行该过程,资源管理器241总是确定控制区291是否包含被传送到多功能外围设备11的数据。当这种数据不存在时,资源管理器241确定输出缓冲器292、294和296中的一个是否含有数据。
因此,如果控制区291包含被传送到多功能外围设备11的数据,则资源管理器241可将控制区291中的数据传送到多功能外围设备11,而与输出缓冲器292、294和296是否包含数据无关,由此将优先权给控制区291中所包含的数据。这样,控制数据可被快速地传送到多功能外围设备11而不被自输出缓冲器292、294和296进行的数据传送延迟,由此实现适当的控制。
使用SCSI指令分析任务执行的过程
下面,将参照图16描述由提供在多功能外围设备11中的SCSI指令分析任务111执行的过程。由图1中所示的设于多功能外围设备11中的CPU 11a执行该过程。
在S1005中,在该过程开始时,多功能外围设备11等待SCSI指令。当未从PC 12接收到SCSI指令时(S1005:否),多功能外围设备11重复地循环回到S1005。
当从PC 12传送SCSI指令时(S1005:是),在S1010中,多功能外围设备11确定在SCSI指令中规定的LUN是为“0”还是为“1”。如果LUN为“0”(S1010:LUN=0),则在S1015中,多功能外围设备11将SCSI指令重定向到存储器插槽I/O控制任务121,并且随后返回到S1005。
如果LUN为“1”(S1010:LUN=1),则在S1020中,多功能外围设备11将SCSI指令重定向到资源管理器任务141并且随后返回到S1005。
通过在上述SCSI指令分析任务111上执行的过程,多功能外围设备11可基于LUN将自PC 12传送的SCSI指令定向到存储器插槽I/O控制任务121或者资源管理器任务141。此后,在存储器插槽I/O控制任务121或者资源管理器任务141中执行数据处理。
在存储器插槽I/O控制任务121上执行的数据处理类似于由具有读卡器功能的本领域中公知的USB设备执行的过程。由于该过程并非不同于传统的过程,所以省去对该过程的说明。
在资源管理器任务141上执行的数据处理完全不同于具有读卡器功能的本领域中公知的USB设备执行的过程。具体地,多功能外围设备11执行过程以分析自资源管理器241传送的出厂数据,并且将该数据定向到打印机功能、扫描仪功能和PC传真功能中的一个。
具体地,多功能外围设备11强制PC 12的OS将多功能外围设备11中的读卡器设备识别为两个驱动并且基于LUN规定PC 12访问哪个驱动。然而,当规定LUN1时,不在资源管理器任务141中执行与由具有读卡器功能的USB设备所执行的过程等效的过程。
因此,将在下面更加详细地描述使用多功能外围设备11的资源管理器任务141来执行的过程。
利用资源管理器任务执行的过程
图17是示出在使用多功能外围设备11的资源管理器任务141(更具体地,图1中所示的CPU 11a)来执行的过程中的步骤的流程图。
在图17的S1105中的过程开始时,多功能外围设备11等待SCSI指令或信号。如果SCSI指令或信号两者均未到达(S1105:两者都不),则多功能外围设备11返回到S1105并且继续等待直至接收到SCSI指令或信号。
多功能外围设备11在该状态中等待,PC 12可向多功能外围设备11传送SCSI指令。例如当执行上述S915中的过程时,PC 12向多功能外围设备11的资源管理器驱动传送SCSI指令“写缓冲器”。
当接收到SCSI指令时(S1105:SCSI指令),在S1110中,多功能外围设备11确定SCSI指令为“读缓冲器”、或为“写缓冲器”或为另一指令。
由于当PC 12执行S915中的过程时SCSI指令为“写缓冲器”(S1110:写缓冲器),所以在S1115中多功能外围设备11确定数据包类型。
如果数据包为控制数据包(S1115:控制数据包),在S1120中多功能外围设备11根据数据包中的数据修改控制区181并且返回到S1105。注意到,在S1115的过程中资源管理器任务141基于数据包的实际数据段中的出厂数据来确定数据包为控制数据包。
然而,如果数据包为打印机数据包、扫描仪数据包或者COM端口数据包(S1115:打印机、扫描仪或COM端口),在S1125中,多功能外围设备11将数据包的实际数据段添加到规定设备的输出缓冲器。注意到,在S1115的过程中资源管理器任务141基于数据包的实际数据段中的出厂数据来确定该数据包对应于哪个设备。
更具体地,如果该数据包为打印机数据包,多功能外围设备11将数据包的实际数据段添加到打印机的输出缓冲器182。结果,输出数据经由输出缓冲器182被传送到打印机I/O任务151,被中转到打印机控制任务161,并且在打印机硬件171的控制下被处理。然而,由于该控制过程在本领域是公知的,所以省略对该过程的说明。
如果该数据包为扫描仪数据包,多功能外围设备11将数据包的实际数据段添加到输出缓冲器184。结果,输出数据经由输出缓冲器184被传送到扫描仪I/O任务153,被中转到扫描仪控制任务163,并且在扫描仪硬件173的控制下被处理。由于该控制过程与在本领域中公知的扫描仪的控制过程相同,所以省略对该过程的说明。
如果该数据包为COM端口数据包,多功能外围设备11将数据包的实际数据段添加到输出缓冲器186。结果,输出数据经由输出缓冲器186被传送到PC传真I/O任务155,被中转到调制解调器控制任务165,并且在调制解调器硬件175的控制下被处理。因为该控制过程与传统的FAX调制解调的相同,所以省略对该过程的说明。
因此,当输出数据自PC 12到达时,多功能外围设备11通过上述S1110-S1125中的过程执行打印机功能、扫描仪功能或者PC传真功能。在一些情形中,所执行的功能产生被传送到PC 12的输入数据。
作为一个具体示例,当从PC 12接收到使用扫描仪功能的指令时,多功能外围设备11执行扫描仪功能,产生作为被传送到PC 12的输入数据的扫描数据。用于PC 12的输入数据的其它示例包括使用PC传真功能接收到的接收数据,以及当在使用打印机功能时出现错误时产生的错误数据。
当产生该输入数据时,打印机I/O任务151、扫描仪I/O任务153或者PC传真I/O任务155在各自的输入缓冲器183、185和187中存储输入数据并且随后向资源管理器任务141发送信号。
当这种类型的信号被发送到资源管理器任务141时(S1105:信号),在S1130中,多功能外围设备11确定下一PC发送缓冲器191是否包含数据。
如果下一PC发送缓冲器191并不包含数据(S1130:否),则在S1135中该多功能外围设备11确定控制区181是否包含被传送到PC 12的数据。如果控制区181包含被传送到PC 12的数据(S1135:是),则在S1140中多功能外围设备11基于被传送的数据来产生控制数据包,并且在下一PC发送缓冲器191中存储该数据包。当产生该数据包时,在S1140的过程中,资源管理器任务141准备指示该数据包为控制数据包的信息以及用于符合唯一标准的数据的信息,并且将该信息(指示该数据包为控制数据包的信息和用于真实数据的信息)作为出厂数据存储在被配置为具有符合SCSI标准的数据结构的数据包的实际数据段中。随后,多功能外围设备11返回到S1105。
然而,如果控制区181不包含被传送到PC 12的数据(S1135:否),则在S1145中多功能外围设备11将用于选择处理目标的起始点设定到跟随在之前为其形成数据包的设备之后的设备。
之前为其形成数据包的设备是在之前自S1145执行的过程中被设定为处理目标的设备。在本实施例中,可被设定为处理目标的设备包括打印机、扫描仪和调制解调器(PC传真)。
例如,如果之前为其形成数据包的设备是打印机,在S1145中,多功能外围设备11将作为下一设备的扫描仪设定为用于选择处理目标的起始点。如果之前为其形成数据包的设备是扫描仪,在S1145中,多功能外围设备11将作为下一设备的调制解调器设定为用于选择处理目标的起始点。如果之前为其形成数据包的设备是调制解调器(PC传真),则在S1145中多功能外围设备11将作为下一设备的打印机设定为用于选择处理目标的起始点。
在S1145中选择处理目标之后,在S1150中,多功能外围设备11确定与被设定为处理目标的设备对应的输入缓冲器是否包含数据。例如,如果被设定为处理目标的设备是打印机,则多功能外围设备11确定输入缓冲器183是否包含数据,如果被设定为处理目标的设备是扫描仪,则确定输入缓冲器185是否包含数据,以及如果被设为处理目标的设备是调制解调器(PC传真),则确定输入缓冲器187是否包含数据。
如果与处理目标对应的输入缓冲器包含数据(S1150:是),则在S1155中多功能外围设备11自输入缓冲器提取数据,从该数据产生数据包,并且在下一PC发送缓冲器191中存储这些数据包。随后,多功能外围设备11返回到S1105。
在S1155的过程中,当产生数据包时,资源管理器任务141准备指示该数据包与哪个设备对应的信息以及构成符合唯一标准的真实数据的信息。资源管理器任务141将该数据(指示该数据包与哪个设备对应的信息以及构成该数据的信息)作为出厂数据存储在具有符合SCSI标准的数据结构的数据包的实际数据段中。
然而,如果与处理目标对应的输入缓冲器不包含数据(S1150:否),则在S1160中多功能外围设备11确定可被设定为处理目标的所有设备是否已经经历从S1145开始的过程。具体地,多功能外围设备11在S1160中确定是否已经对可被选择作为处理目标(打印机、扫描仪和调制解调器)的设备中的每个执行了一次自S1150开始的过程。
如果余留有尚未对其执行自S1150开始的过程的任何设备,则多功能外围设备11得到否的决定,并且如果已经对所有设备都执行一次了自S1150开始的过程,则得到是的决定。
如果并非所有设备均已被处理(S1160:否),则在S1165中多功能外围设备11选择下一设备作为处理目标并且返回到S1150。然而,如果所有设备已被处理(S1160:是),则多功能外围设备11返回到S1105。
如上所述,当信号被发送到资源管理器任务141时,多功能外围设备11通过执行自S1135开始的过程将数据存储在下一PC发送缓冲器191中。当PC 12执行上述S805中的过程时,存储在下一PC发送缓冲器191中的数据随后被传送到PC 12。
更具体地,当PC 12执行S805中的过程时,PC 12对资源管理器驱动发出SCSI指令“读缓冲器”并且向多功能外围设备11发送SCSI指令。
一接收到SCSI指令“读缓冲器”(S1110:读缓冲器),在S1170中多功能外围设备11就将下一PC发送缓冲器191的内容传送到PC 12并且随后清空下一PC发送缓冲器191,此时下一PC发送缓冲器191是空闲的(free)。随后,多功能外围设备11前进到1135。
在执行上述S1135中的过程之后,当前进到S1155时,多功能外围设备11自输入缓冲器提取数据,从所提取的数据形成数据包,并且在下一PC发送缓冲器191存储这些数据包。
如果当信号被发送到资源管理器任务141时下一PC发送缓冲器191包含数据(S1130:是),多功能外围设备11则不能存储来自下一PC发送缓冲器191中的输入缓冲器等的数据。在该情形中,多功能外围设备11返回到S1105,留下输入缓冲器中的输入数据等。
然而,在多功能外围设备11在S1170中向PC 12发送下一PC发送缓冲器191的内容并且清空PC发送缓冲器191之后,多功能外围设备11随后前进到上述的S1135。此时,当接收到信号时,将不能被存储在下一PC发送缓冲器191中的输入数据传送到下一PC发送缓冲器191。
进一步,从PC 12的资源管理器241传送到资源管理器任务141的所有SCSI指令为“读缓冲器”或“写缓冲器”指令,但是在一些情形中SCSI指令可以经由文件系统233或者可移动磁盘驱动223到达。
当接收到这种类型的SCSI指令时(S1110:其它),在S1175中多功能外围设备11返回指示其中从未安装媒体的驱动的响应,并且随后返回到S1105。
以这种方式,多功能外围设备11可只返回指示其中从未插入媒体的驱动的响应,而无需返回仿真写入媒体的请求或者从媒体读出的请求的更加复杂的响应。进一步,通过仿真其中从未插入媒体的状态,多功能外围设备11也不产生媒体更换状态,由此降低多功能外围设备11变为停滞于不可预测状态中的可能性。
在上述过程中,在S1135之后执行S1150。通过以这种顺序执行步骤,多功能外围设备11总是给予将控制区181中的数据传送到PC 12的优先权。如果该数据并不存在,则多功能外围设备11确定数据是否存储于输入缓冲器183、185和187中的一个中。
因此,如果控制区181包含被传送到PC 12的数据,则多功能外围设备11优先地将控制区181中的该数据传送到PC 12,而与输入缓冲器183、185和187是否包含数据无关。因此,多功能外围设备11可以向PC 12即时地传送控制数据,使得能够实现适当的控制而不影响何时从输入缓冲器183、185和187传送数据。
第一实施例的效果
使用上述第一实施例,多功能外围设备11强制PC 12的OS将打印机功能、扫描仪功能和PC传真功能全部识别为等效于USB存储设备的可移动磁盘的逻辑单元。
因此,可仅通过为逻辑单元准备一对(one each of)输入和输出端点而根据USB通信协议在PC 12和逻辑单元之间传送数据。而且,通过传送数据,PC 12能够使用打印机功能、扫描仪功能和PC传真功能。
因此,不像具有为打印机功能、扫描仪功能和PC传真功能中的每个配置的逻辑单元的USB复合设备那样,多功能外围设备11仅需为所有的这些功能准备一对输入端点和输出端点,由此减少所需端点的数目。
进一步,用于控制打印机功能、扫描仪功能和PC传真功能中的任一个的数据作为出厂数据被存储在可根据USB协议传送的数据的实际数据段中。因此,PC 12的OS可以随时访问与可移动磁盘对应的逻辑单元,而不要求其中在建立与另一USB设备的连接之前需要断开一个USB设备的虚拟条件。因此,PC 12的OS能够同时地使用多个功能而无需切换设备驱动的时间。
进一步,由于用于控制传送的端点(EP0)不被用于传送其它数据,所以即使当传送大量数据时所需的控制也可被快速地执行而不受其它数据传送的影响。
进一步,上述多功能外围设备11强制PC 12的OS将多功能外围设备11识别为具有多个LUN的USB设备,其中一个逻辑单元与打印机功能、扫描仪功能和PC传真功能对应,并且另一逻辑单元与读卡器功能对应。
因此,PC 12可通过标准OS设备驱动控制读卡器功能,而无需并入作为用于打印机功能、扫描仪功能和PC传真功能的逻辑单元的部分读卡器功能。而且,提供读卡器功能并不影响减少端点数目的最初目的,因为无需为读卡器功能增加端点数目。
资源管理器241被提供在OS与打印机端口驱动251之间,并且在两者之间执行数据传送。所以,可使打印机端口驱动251等效于用于控制单个打印功能的设备的设备驱动。资源管理器241被提供在OS与扫描仪驱动253之间,并且在两者执行数据传送。所以,可使扫描仪驱动253等效于用于控制单个扫描功能的设备的设备驱动。资源管理器241被设提供在OS与COM端口驱动255之间,并且在两者执行数据传送。所以,可使COM端口驱动255等效于用于控制单个PC传真功能的设备的设备驱动。因此,不必提供能够控制打印功能、扫描功能、PC传真功能的全部的专用设备驱动,由此降低研制该设备驱动的成本。
(2)第二实施例
下面,将描述本发明的第二实施例。由于第二实施例的结构仅部分地不同于上述第一实施例,所以下面的说明将主要侧重于与第一实施例的差别,而将省去共享结构的说明。
多功能外围设备软件的安装过程
下面,将参照图18中的流程图描述用于在根据第二实施例的PC12上安装多功能外围设备软件的过程。由PC 12执行替代图7中所示的过程的图18中所示的过程。
在下述图18的过程中,S1205-S1220与根据第一实施例的S105-S120相同并且在下面将仅被简要地描述。具体地,在S1205中,当图18中的过程开始时,PC 12运行安装程序。在S1210中,PC 12为多功能外围设备11搜索资源管理器驱动。在S1210中的过程的细节被示出在第一实施例中描述的图8中。因此,这里将省去对该过程的详细说明。
如果在S1210的过程中未找到资源管理器驱动(S1210:未找到),在S1215中,PC 12向用户显示对话框,该对话框消息为“请等待与多功能外围设备11建立USB连接,然后点击OK”。
如果此时用户选择“取消”(S1215:取消),则PC 12取消安装过程。然而,如果用户选择“OK”(S1215:OK),则PC 12重复自S1210开始的过程。
另一方面,如果在S1210中找到资源管理器驱动(S1210:找到),则在S1220中PC 12隐藏在S1210中找到的资源管理器驱动。
在S1225中,PC 12安装资源管理器并且将找到的资源管理器驱动设置在INI文件中。具体地,根据第二实施例的PC 12将用于可变CDRV具有的资源管理器驱动的驱动盘符存储在INI文件中(参见图8),而不是如在第一实施例中描述的那样将在S210中获取的多功能外围设备的型号名称存储在INI文件中(参见图8)。
在S1230中,PC 12安装打印机驱动、打印机端口驱动、扫描仪驱动、COM端口驱动以及PC传真应用,并且随后结束安装过程。在S1230中的过程与在第一实施例中描述的S130的过程相同。
由资源管理器执行的过程
下面,参照图19描述由第二实施例中的资源管理器241执行的过程。执行该过程以代替图13中所示的根据第一实施例的过程。
一旦资源管理器241被启动,在S1305中,资源管理器241从INI文件读出资源管理器驱动设置。在该过程中,资源管理器241读出在上述S1225等中存储在INI文件中的各种数据。
在S1310中,资源管理器241确认从INI文件读出的用于资源管理器驱动的驱动盘符所分配给的驱动是资源管理器驱动。
执行S1310中的过程以确保在INI文件中存储的驱动盘符匹配与该驱动盘符相匹配,因为有可能在产生INI文件之后修改了驱动盘符的分配。
如果与在INI文件中记录的驱动盘符对应的驱动不是资源管理器驱动(S1310:否),则在S1350中,PC 12向用户显示对话框,该对话框消息为“请等待与多功能外围设备11建立USB连接,然后点击OK”。
在S1315的过程中,PC 12等待用户输入。此时,用户可以在显示于PC 12的显示器单元上的对话框中执行操作以选择“OK”、“取消”或“重新扫描”。
如果用户点击“取消”(S1315:取消),则资源管理器241的过程结束。如果用户点击“OK”(S1315:OK),则PC 12返回到S1310的过程。如果用户选择“重新扫描”(S1315:重新扫描),则在S1320中资源管理器241再次搜索该多功能外围设备11的资源管理器驱动。
S1320中的过程与上述图8所示的过程相同,并且这里不再重复说明该过程。如果在S1320中不能找到资源管理器驱动(S1320:未找到),则PC 12返回到S1315并且再次等待用户输入。
然而,如果在S1320中找到资源管理器驱动(S1320:找到),则在S1325中,通过在INI文件中写入为该资源管理器驱动找到的新的驱动盘符,PC 12修改资源管理器驱动的设置。在完成S1325中的过程之后,PC 12返回到S1305并且作为资源管理器241从开始重复以上的过程。
当在执行上述S1305-S1325的过程时,在S1310中从INI文件读出的用于资源管理器驱动的驱动盘符与资源管理器对应时(S1310:是),则在S1330中PC 12等待规定的时间,并且在S1335中确定是否已经收到结束请求。
如果未收到结束请求(S1335:否),则资源管理器241执行S1340中的读缓冲器过程和S1345中的写缓冲器过程,并且随后返回到S1330。以此方式,当未接收到结束请求时,资源管理器241重复地执行S1330-S1345中的过程。
S1330-S1345的过程与根据第一实施例的图13中的S720-S735的过程相同。而且,S1340的过程与图14的过程相同,S1345的过程与图15的过程相同。因为这些过程与上述第一实施例中的那些过程相同,所以不再基于图14和15对第二实施例重复地进行详细说明。
第二实施例的效果
根据上述第二实施例的多功能外围设备11具有与根据第一实施例的多功能外围设备11相同的操作和效果。
另外,在上述第二实施例中,在S1225中,PC 12将资源管理器驱动的驱动盘符记录在INI文件中,并且随后在S1310中试图基于INI文件中所记录的驱动盘符而访问资源管理器驱动。
因此,当INI文件中所记录的驱动盘符实际上确实与分配给资源管理器驱动的驱动盘符相匹配时,PC 12能够比通过第一实施例的S710中的扫描过程更加快速地检测到资源管理器驱动。
进一步,如果由于某种原因PC 12不能在S1310中快速地确定正确的资源管理器驱动,则PC 12可以如第一实施例中所描述的那样在S1320中扫描资源管理器驱动。换言之,当INI文件中的驱动盘符是正确的时候第二实施例提高了处理速度,并且当INI文件中的驱动盘符不正确时第二实施例保持了可靠性。
第三实施例
在本发明的第三实施例中,PC的内部结构不同于第一实施例中所描述的结构。下面,将描述根据第三实施例的PC的内部结构。
PC的内部结构
图20是示出根据第三实施例的PC32的内部结构的框图。当多功能外围设备11为LUN1逻辑单元返回响应“可移动磁盘”时,根据上述第一实施例的PC 12装载可移动磁盘驱动223。然而,根据第三实施例的PC32在这一点上与第一实施例不同。
具体地,在第三实施例中,多功能外围设备11为LUN1逻辑单元返回响应“CD-ROM”。当接收到该响应时,PC32装载CD-ROM驱动225而非装载可移动磁盘驱动223。PC32将LUN1逻辑单元链接到文件系统235。结果驱动盘符被分配给LUN1逻辑单元。
使用该配置,PC32的OS将多功能外围设备11中的逻辑单元LUN1识别为等效于CD-ROM的设备。因此,无需为打印机功能、扫描仪功能和PC传真功能中的每个准备单独的端点,由此获得与第一实施例中的操作和效果相同的操作和效果。
进一步,在第三实施例中,根据不同于第一实施例的方法,可隐藏被PC32的OS识别为等效于CD-ROM的设备逻辑单元的存在性。
具体地,在第一实施例中,在S545中(图11),在PC 12将驱动盘符分配给被识别为可移动磁盘的设备之后,PC 12根据与该驱动盘符对应的显示设置而隐藏该驱动盘符,已经通过修改注册表内容在S120中设定了该隐藏过程。
然而,根据第三实施例的PC32可以仅通过取消在S120中的驱动盘符分配而隐藏被识别为CD-ROM设备的逻辑单元的存在性(图7)。
当删除驱动盘符分配时,PC32不再能够使用该驱动盘符访问LUN1逻辑单元。然而,因为PC32的OS将LUN1逻辑单元识别为等效于CD-ROM的设备,所以PC32能够访问LUN1逻辑单元而不使用驱动盘符。
更具体地,PC32能够通过向不同于驱动盘符的设备字符串发出指令而访问LUN1逻辑单元,例如“¥¥.¥cdrom1”or或者“¥¥.¥cdrom2”。因此,资源管理器241能够通过发出规定该设备字符串的SCSI指令而执行第一实施例中所描述的相同过程。
进一步,根据第一实施例的PC 12通过以驱动盘符“A”到“Z”作为目标而在图8的过程中扫描资源管理器驱动。然而,根据第三实施例的PC32仅需将搜索目标从驱动盘符修改为被设置成不同于驱动盘符的设备字符串,并且例如使用“¥¥.¥1”到“¥¥.¥cdrom16”来搜索资源管理器驱动。
虽然从“¥¥.¥cdrom1”到“¥¥.¥cdrom16”的16个设备字符串在该示例中被设为搜索目标,但是作为搜索目标的设备字符串的数目是任意的。
进一步,虽然在图18的S1225中驱动盘符被记录在INI文件中并被用于上述第二实施例中的图19的S1310中,但是在第三实施例中设备字符串被记录在INI文件中并且用于图19的S1310中。
第三实施例的效果
上述第三实施例获得与在第一和第二实施例中描述的那些操作和效果相同的操作和效果。具体地,多功能外围设备11强制PC32的OS将全部的打印机功能、扫描仪功能和PC传真功能识别为等效于USB存储设备的CD-ROM的逻辑单元。因此,不必为各个功能中的每个准备输入和输出端点,从而减少了所需端点的数目。第三实施例实现了与第一和第二实施例相同的优点。
不同于上述的第一和第二实施例,与打印机功能、扫描仪功能和PC传真功能对应的逻辑单元被识别为等效于CD-ROM的设备。因此,PC32能够通过删除驱动盘符分配而容易隐藏仿真用于OS的CD-ROM设备的这种设备的存在性。
(4)第四实施例
在本发明的第四实施例中,PC的内部结构不同于在第一和第三实施例中的那些。因此,将在下面描述根据第四实施例的PC的内部结构。
PC的内部结构
图21是示出根据第四实施例的PC42的内部结构的框图。在第四实施例中,多功能外围设备11为LUN1逻辑单元返回响应“硬盘”。当收到该响应时,PC42装载硬盘驱动227而非装载可移动磁盘驱动223。
进一步,当多功能外围设备11从PC42接收到关于LUN1逻辑单元的响应请求时,多功能外围设备11仿真响应“硬盘未被分区”。利用这种配置,PC42的OS能够将在提供在多功能外围设备11中的逻辑单元LUN1识别为等效于硬盘的设备。因此,不必为每个单独的打印机功能、扫描仪功能和PC传真功能准备端点,并且因此,第四实施例实现了与第一到第三实施中所描述的那些操作和效果相同的操作和效果。
进一步,由于PC42的OS并不向未被分区的硬盘分配驱动盘符。所以可隐藏驱动盘符的存在性。
第四实施例的效果
上述第四实施例具有与第一到第三实施例相同的操作和效果。具体地,多功能外围设备11强制PC42的OS将全部的打印机功能、扫描仪功能和PC传真功能都识别为等效于USB存储设备的硬盘的逻辑单元。因此,不必为每个单独的功能准备输入和输出端点,由此减少了所需端点的数目。
不同于上述第一到第三实施例,与打印机功能、扫描仪功能和PC传真功能对应的逻辑单元被识别为等效于未被分区的硬盘的设备。因为OS并不向这种设备分配驱动盘符,所以容易隐藏驱动盘符的存在性。
实施例的变型
虽然已经参考其实施例详细描述了本发明,但对于本领域技术人员而言明显的是,可在其中作出各种改变和修改而不背离本发明的精神。
例如,在第一实施例中,当试图从不同于资源管理器241的路径访问提供在多功能外围设备11中的LUN1逻辑单元时,在S1175中多功能外围设备11返回指示其中从未安装过媒体的驱动的响应。然而,多功能外围设备11也可返回指示其中总是安装媒体的驱动的响应。
因为在该情形中不产生媒体更换状态,所以仍然能够比当产生媒体更换状态时进一步降低不可预测事件的可能性。换言之,仿真其中从未插入过媒体的驱动以及仿真其中总是插入媒体的驱动均是不产生媒体更换状态的方法。
当在上述实施例中的多功能外围设备11是具有多个LUN的USB设备时,其可以任意地具有多个LUN。例如,虽然在该实施例中USB设备的具有读卡器功能的部分被识别为LUN0逻辑单元,但是当不需要读卡器功能时,多功能设备11可被配置为仅具有用作具有打印机功能、扫描仪功能和PC传真功能的USB设备的部分的单个逻辑单元。在该情形中,PC不需将USB设备识别为具有多个LUN。
进一步,在上述实施例中,多功能外围设备11用作USB存储类型设备以便强制PC的OS将多功能外围设备11识别为具有多个LUN的USB设备。然而,当它不必被识别为具有多个LUN的USB设备时,多功能外围设备11也可用作不同于USB存储类型设备的USB设备。
例如,多功能外围设备11可用作USB复合设备。在该情形中,端点被用于被识别为USB复合设备的多个功能中的每个。
然而,在该情形中如果被识别为USB复合设备的多个功能中的至少一个(更准确地,使用一组端点的一个功能)用作该实施例中所描述的复合逻辑单元,则能够使用单组端点控制多个功能。因此,可减少用于提供在多功能外围设备中的功能的端点总数。
在上述实施例中,与该单个复合逻辑单元对应的特定功能的数目为三(=打印功能、扫描仪功能和PC传真功能),但是可为大于1的任何数目。能够通过增加单个复合逻辑单元的特定功能的数目而减少用于多功能外围设备的端点数目。
在上述实施例中,与复合逻辑单元对应的USB设备仿真可移动磁盘、CD-ROM或者硬盘。然而,该多功能设备可被配置为仿真另一种USB设备,例如软盘或者磁光盘。
Claims (8)
1.一种具有多个功能并且能够经由通用串行总线(USB)接口被连接到计算机的多功能设备,所述计算机具有安装在其上的操作系统(OS),所述操作系统将所述多功能设备识别为具有能够传送根据USB兼容系统的数据的至少一个逻辑单元的设备,从而所述计算机能够通过与所述逻辑单元交换输入/输出数据而使用所述多功能设备的多个功能,所述至少一个逻辑单元中的至少一个是与所述多个功能中的两个或者更多个特定功能对应的复合逻辑单元,所述多功能设备包括:
控制单元,当计算机已经向复合逻辑单元传送具有实际数据段的输出数据时,所述控制单元基于在所述实际数据段中包括的唯一标准的数据确定所传送的输出数据是用于控制该两个或者更多个特定功能中的哪一个,并且基于所述输出数据控制所确定的功能,所述唯一标准的数据不同于逻辑单元编号(LUN),
所述控制单元将唯一标准的数据作为控制所述功能的结果存储在将被传送到计算机的输入数据的实际数据段中,所述唯一标准的数据指示将从所述两个或者更多个特定功能中的哪一个传送输入数据,并且将所述输入数据作为来自复合逻辑单元的数据传送到计算机。
2.根据权利要求1所述的多功能设备,其中所述两个或者更多个特定功能是选自打印机功能、扫描仪功能和PC传真功能中的两个或者更多个功能。
3.根据权利要求1所述的多功能设备,进一步包括响应单元,当与所述计算机建立连接时,如果从所述计算机接收到对于设备类别的请求,所述响应单元将指示USB存储类型的响应返回到所述计算机,
如果从所述计算机接收到对于所述复合逻辑单元的设备类型的请求,则所述响应单元返回指示可移动磁盘、CD-ROM或者硬盘的响应。
4.一种设备控制系统,包括:
计算机;和
具有多个功能的多功能设备,
所述计算机和所述多功能设备经由通用串行总线(USB)接口相互连接,所述计算机具有在其上安装的操作系统(OS),所述操作系统将所述多功能设备识别为具有能够传送根据USB兼容系统的数据的至少一个逻辑单元的设备,从而所述计算机能够通过与逻辑单元交换输入/输出数据而使用所述多功能设备的多个功能,所述至少一个逻辑单元中的至少一个是与所述多个功能中的两个或者更多个特定功能对应的复合逻辑单元,
所述计算机包括计算机控制单元,所述控制单元基于来自在所述计算机上工作的数据处理器的指令来控制所述多功能设备的两个或者更多个功能中的一个,在所述输出数据的实际数据段中存储用于控制所述两个或者更多个特殊功能中的一个的唯一标准的数据,并且将所述输出数据传送到所述复合逻辑单元,所述唯一标准的数据不同于逻辑单元编号(LUN),
当输入数据从所述多功能设备传送到所述计算机时,所述计算机控制单元基于在所述输入数据的实际数据段中包括的唯一标准的数据而确定所述输入数据是从所述两个或者更多个特定功能中的哪一个传送的,并且将所述输入数据传送到最初指示的数据处理器,
所述多功能设备包括设备控制单元,当计算机已经将具有实际数据段的输出数据传送到所述复合逻辑单元时,所述设备控制单元基于在所述实际数据段中包括的唯一标准的数据确定所传送的输出数据是用于控制所述两个或者更多个特定功能中的哪一个,并且基于所述输出数据控制所确定的功能,
所述设备控制单元将唯一标准的数据作为控制所述功能的结果存储在将被传送到计算机的输入数据的实际数据段中,所述唯一标准的数据指示将从所述两个或者更多个特定功能中的哪一个传送输入数据,并且将所述输入数据作为来自复合逻辑单元的数据传送到计算机。
5.根据权利要求4所述的设备控制系统,其中,所述多功能设备还包括响应单元,当与所述计算机建立连接时,如果从所述计算机接收到对于设备类别的请求,所述响应单元将指示USB存储类型的响应返回到所述计算机,
如果从所述计算机接收到对于所述复合逻辑单元的设备类型的请求,则所述响应单元返回指示可移动磁盘、CD-ROM或者硬盘的响应。
6.根据权利要求5所述的设备控制系统,其中当所述多功能设备返回指示所述复合逻辑单元的设备类型是等效于可移动磁盘的设备的响应时,所述计算机的OS将驱动盘符分配给所述可移动磁盘,并且其中所述计算机还包括显示设置修改单元,所述显示修改单元修改显示设置以防止在所述计算机的显示单元上显示存在与所述驱动盘符对应的设备。
7.根据权利要求5所述的设备控制系统,其中,当所述多功能设备返回指示所述复合逻辑单元的设备类型是等效于CD-ROM的设备的响应时,所述计算机的OS将驱动盘符分配给所述CD-ROM,其中所述计算机还包括删除驱动盘符分配的删除单元。
8.根据权利要求4所述的设备控制系统,其中所述计算机控制单元包括:
关于所述两个或者更多特殊功能设置的两个或者更多设备驱动;
在所述两个或者更多个设备驱动与OS之间传送数据的数据管理单元,
其中每个设备驱动,基于来自在所述计算机上工作的数据处理器用以控制所述多功能设备的所述两个或者更多个功能中的对应的一个的指令,产生用于控制所述两个或者更多个功能中的对应的一个的数据,并且将所述数据传送到所述数据管理单元,
所述数据管理单元,基于从每个设备驱动传送的数据,在所述输出数据的实际数据段中存储用于控制所述两个或者更多个特定功能中的对应的一个的唯一标准的数据,并且将所述输出数据传送到所述复合逻辑单元,
当输入数据从所述多功能设备传送到所述计算机时,所述数据单元基于在所述输入数据的实际数据段中包括的唯一标准的数据确定已经从所述两个或者更多个特定功能中的哪一个传送了所述输入数据,并且将所述输入数据传送到对应的设备驱动,所述设备驱动顺次将所述输入数据传送到最初指示的数据处理器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007-084773 | 2007-03-28 | ||
JP2007084773A JP4333765B2 (ja) | 2007-03-28 | 2007-03-28 | デバイス制御システム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101277361A CN101277361A (zh) | 2008-10-01 |
CN101277361B true CN101277361B (zh) | 2011-04-13 |
Family
ID=39793761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100874664A Expired - Fee Related CN101277361B (zh) | 2007-03-28 | 2008-03-28 | 多功能外围设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8156268B2 (zh) |
JP (1) | JP4333765B2 (zh) |
CN (1) | CN101277361B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4618021B2 (ja) * | 2005-07-06 | 2011-01-26 | 富士ゼロックス株式会社 | 画像読取装置、画像形成装置、画像処理システム、画像読取装置の記憶領域共有方法、画像処理システムの記憶領域共有方法 |
JP2010157819A (ja) * | 2008-12-26 | 2010-07-15 | Brother Ind Ltd | Usbデバイスのエンコード装置 |
JP4842353B2 (ja) * | 2009-08-24 | 2011-12-21 | 株式会社バッファロー | 外部記憶装置、コンピュータ装置の制御方法、外部記憶装置の制御方法、および、コンピュータプログラム |
JP5773595B2 (ja) * | 2010-08-19 | 2015-09-02 | キヤノン株式会社 | ジョブ処理デバイス、その制御方法、及びコンピュータプログラム |
JP2012070111A (ja) * | 2010-09-22 | 2012-04-05 | Fuji Xerox Co Ltd | 通信システム |
US8583847B2 (en) | 2010-12-09 | 2013-11-12 | Dell Products, Lp | System and method for dynamically detecting storage drive type |
JP6111782B2 (ja) * | 2013-03-27 | 2017-04-12 | セイコーエプソン株式会社 | 印刷装置 |
CN109002403A (zh) * | 2018-06-21 | 2018-12-14 | 深圳市炬力北方微电子有限公司 | Usb移动设备、移动设备识别系统及识别方法 |
CN110166558B (zh) * | 2019-05-24 | 2020-03-06 | 苏州浪潮智能科技有限公司 | 一种多控存储集群的通信方法、装置及设备 |
US11336592B2 (en) * | 2020-08-14 | 2022-05-17 | Google Llc | Flexible link level retry for shared memory switches |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5239632A (en) * | 1992-04-16 | 1993-08-24 | Hewlett-Packard Company | Device to translate logical unit number communications on one SCSI bus to ID communications on a subordinate SCSI bus |
CN1200512A (zh) * | 1997-02-13 | 1998-12-02 | 株式会社东芝 | 多功能外部设备控制器 |
JP2004005168A (ja) * | 2002-05-31 | 2004-01-08 | Sharp Corp | データ送信方法、通信システム、処理装置、コンピュータプログラム及び記録媒体 |
CN1542630A (zh) * | 2003-04-30 | 2004-11-03 | 日商.c原科技股份有限公司 | 通用串行总线存储装置和控制装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001222503A (ja) | 2000-02-08 | 2001-08-17 | Ricoh Co Ltd | 周辺機器制御システム |
TW518502B (en) * | 2001-07-13 | 2003-01-21 | Prolific Technology Inc | USB compound device and the realization method thereof |
JP3513147B2 (ja) | 2002-05-29 | 2004-03-31 | 株式会社ハギワラシスコム | Usbストレージデバイス及びその制御装置 |
JP3914949B2 (ja) | 2002-05-29 | 2007-05-16 | 株式会社ハギワラシスコム | Usbストレージデバイス、その制御装置及びその制御装置に実行させるためのプログラム |
JP4109983B2 (ja) | 2002-12-24 | 2008-07-02 | キヤノン株式会社 | 通信システム |
US7346714B2 (en) | 2002-09-05 | 2008-03-18 | Canon Kabushiki Kaisha | Notification of completion of communication with a plurality of data storage areas |
US20040064461A1 (en) * | 2002-10-01 | 2004-04-01 | Subramaniyam Pooni | Method and arrangement for dynamic detection of SCSI devices on linux host |
JP4023402B2 (ja) | 2003-06-27 | 2007-12-19 | ブラザー工業株式会社 | 周辺装置 |
US7526580B2 (en) | 2003-06-27 | 2009-04-28 | Brother Kogyo Kabushiki Kaisha | Peripheral device |
JP3906838B2 (ja) | 2003-12-11 | 2007-04-18 | 村田機械株式会社 | Usb対応型デジタル複合機 |
JP2006178704A (ja) | 2004-12-22 | 2006-07-06 | Seiko Epson Corp | 複数の機能を有する装置、及び当該装置と接続可能な上位装置 |
JP2006293777A (ja) | 2005-04-12 | 2006-10-26 | Canon Inc | インストールシステム、インストール方法、インストールプログラム、記憶媒体及び情報処理装置 |
EP1793565A1 (en) * | 2005-12-02 | 2007-06-06 | Seiko Epson Corporation | Network plug-and-play compliant network relay control |
JP4725397B2 (ja) | 2006-04-05 | 2011-07-13 | セイコーエプソン株式会社 | Usb複合デバイス,usb通信システム,及びusb通信方法 |
-
2007
- 2007-03-28 JP JP2007084773A patent/JP4333765B2/ja not_active Expired - Fee Related
-
2008
- 2008-03-25 US US12/055,309 patent/US8156268B2/en not_active Expired - Fee Related
- 2008-03-28 CN CN2008100874664A patent/CN101277361B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5239632A (en) * | 1992-04-16 | 1993-08-24 | Hewlett-Packard Company | Device to translate logical unit number communications on one SCSI bus to ID communications on a subordinate SCSI bus |
CN1200512A (zh) * | 1997-02-13 | 1998-12-02 | 株式会社东芝 | 多功能外部设备控制器 |
JP2004005168A (ja) * | 2002-05-31 | 2004-01-08 | Sharp Corp | データ送信方法、通信システム、処理装置、コンピュータプログラム及び記録媒体 |
CN1542630A (zh) * | 2003-04-30 | 2004-11-03 | 日商.c原科技股份有限公司 | 通用串行总线存储装置和控制装置 |
Non-Patent Citations (1)
Title |
---|
JP 2004005168 A,全文. |
Also Published As
Publication number | Publication date |
---|---|
JP4333765B2 (ja) | 2009-09-16 |
US8156268B2 (en) | 2012-04-10 |
US20080239358A1 (en) | 2008-10-02 |
CN101277361A (zh) | 2008-10-01 |
JP2008242975A (ja) | 2008-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101277361B (zh) | 多功能外围设备 | |
CN101277353B (zh) | 具有多个功能的多功能外围设备 | |
US10552208B2 (en) | Migrating a virtual machine that owns a resource such as a hardware device | |
CN101277362B (zh) | 多功能外围设备和设备控制系统 | |
US6742055B2 (en) | Data transmission system, data transmission terminal, controller and interface method | |
CN100485647C (zh) | 用于管理多个节点对多个共享存储单元的存取访问的方法和系统 | |
JPH0689253A (ja) | 汎用のオペレーティング・システム・インターフェースを有するデバイス・ドライバを含むデータ処理システム | |
JP2002222110A (ja) | ストレージシステム及び仮想プライベートボリューム制御方法 | |
US20100192214A1 (en) | Information processing apparatus, information processing method, and recording medium including computer program | |
US20070028207A1 (en) | Work Flow Management System, Work Flow Management Apparatus And Method | |
JP2001256170A (ja) | 周辺装置及びプリンタ | |
JP2002358167A5 (zh) | ||
US10817820B2 (en) | Facilitating provisioning in a mixed environment of locales | |
WO2011039887A1 (ja) | 計算機装置 | |
EP1033658B1 (en) | Communication apparatus with means for allocating alternate designation information to each function unit, and communication system with two such communication apparatus | |
CN101246459A (zh) | 状态处理系统、状态处理器以及状态显示方法 | |
WO2016179944A1 (zh) | 一种通信接口的功能复用方法及装置 | |
JP3630928B2 (ja) | 情報通信システム | |
CN114090180A (zh) | 基于pcie的卡上虚拟机系统 | |
CN108804068A (zh) | 音频装置重导向系统的客户端及相关音频装置重导向方法 | |
KR20060056650A (ko) | 소프트웨어를 분산 처리하기 위한 방법 및 시스템 | |
JPH11237996A (ja) | 計算機間のデータ連携方法 | |
JP2010157819A (ja) | Usbデバイスのエンコード装置 | |
JPH07114413B2 (ja) | メール受信方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110413 Termination date: 20200328 |