具有自动切换能力的通用串行总线共享切换器的制作方法

文档序号:6578076阅读:189来源:国知局
专利名称:具有自动切换能力的通用串行总线共享切换器的制作方法
技术领域
本发明有关一种通用串行总线(USB)共享切换器,尤其是有关于拥有自动切换能 力的USB共享切换器。
背景技术
共享切换器可以将数台计算机连接以共享一台或多台外围设备,例如打印机、扫 描仪、数据存储装置等。多台计算机可以同时利用该共享切换器分享上述的外围设备。通 用串行总线(Universal Serial Bus ;USB)共享切换器使用USB通信协议来作为计算机及 外围设备之间的通信协议。在传统的USB共享切换器上,必须经由手动按共享切换器上的 按钮或从计算机发出指令给共享切换器来进行切换动作。USB共享切换器经由USB线来连 接计算机与外围装置,经由分享切换器传输USB格式的数据而无须改变其格式。
可共享打印机的另一形式的装置为打印机服务器。典型来说,计算机通过网络,比 如,以太网连接到打印机服务器,且打印机服务器经由电线,比如,USB线连接到打印机。引 表机服务器处理在网络上从计算机收到的分组数据并且为打印机将其转化为USB数据。

发明内容
本发明提供共享切换器及其操作方法,该共享切换器可以是通用串行总线 (Universal Serial Bus ;USB)切换器,计算机及外围设备经由USB通信协议进行通信。
本发明公开了一种共享切换器,用以将计算机外围设备与多个计算机连接,包括 下列多个计算机端切换器、集线器装置、多个装置控制器及控制器端切换器。每个切换器 耦接到该所对应的计算机。集线器装置包含连接到计算机端切换器的上数据流连接端点, 第一下数据流连接端点,耦接到计算机外围设备,及第二下数据流连接端点。每个装置控制 器耦接到对应的计算机端切换器,其中每个计算机端切换器将对应计算机的连接切换到对 应的装置控制器或集线器装置的上数据流连接端点。控制器端切换器,耦接到装置控制器 及集线器装置的第二下数据流连接端点,使得集线器装置的第二下数据流连接端点可以耦 接到装置控制器。 依据本发明的一个方面,提供了连接端口监测程序,应用于计算机外围设备共享 系统,计算机外围设备共享系统包括如权利要求1所述的共享切换器、计算机外围设备以 及连接到共享切换器的多个计算机,外围设备为打印机,连接端口监测程序安装在每一计 算机上,包括下列第一程序代码及第二程序代码。第一程序代码为当连接端口监测程序从 计算机上的排存服务程序收到排存服务指令后,自动传输切换请求给共享切换器。第二程 序代码为当检测到打印机已连接之后,使计算机监测该打印机的打印机连接状态及对打印 机启动排存服务。 依据本发明的一个方面,提供了一种实施于共享切换器及计算机的方法,应用于 计算机外围设备共享系统,计算机外围设备共享系统包括共享切换器、外围设备以及耦接 到共享切换器的多个计算机,上述方法包括下列步骤在共享切换器上的步骤(a)将目前
4所选择的计算机连接到外围装置;(b)接收来自计算机的多个切换请求指令;(c)将切换请 求指令放入队列;(d)判断目前选定的计算机传输到外围设备的数据传输是否完成;及(e) 如果判断目前所选定的计算机的数据传输已完成,从队列撷取第二切换请求指令,并且根 据第二切换请求指令将下一台选择到的计算机连接到外围设备。
前述为示例性及解释性的描述,并不用以限定本发明。


图1为依据本发明的第一实施例的包含共享切换器的系统框图。 图2依据本发明的第一实施例,举例说明共享切换器的操作。 图3为举例说明连接于图1的共享切换器上的计算机程序的操作程序c 图4为依据本发明的第二实施例的包含共享切换器的系统框图。 图5依据本发明的第二实施例,举例说明共享切换器的操作。 图6为依据本发明的第三实施例的包含共享切换器的系统框图。 图7为举例说明在图1、4及6的共享切换器上的主控制器操作程序。 10、40、60共享切换器 12、42、62计算机端切换器 14、44、64USB装置控制器 16USB集线器(USB hub) 18、48控制器端切换器 20计算机 20A、20B USB端口监测程序 30打印机 46、66USB忙碌(busy)检测线路 49、69共同连接线
具体实施例方式
下述将示例本发明的实施例,但是本发明的技术、系统及操作结构可以多样化的 形式及模式实施,其中部分可与下述公开的实施例相异。因此,下述特定的结构与功能仅为 象征性的并不用以限定本发明。 本发明提供一种具有自动切换能力的通用串行总线(Universal SerialBus ;USB) 共享切换器,该共享切换器使得多个计算机可以很方便地共享USB打印机。计算机及打印 机都经由USB线连接到该共享切换器,该共享切换器可直接以USB的格式传递数据而不 需作数据转换。该自动切换功能是由共享切换器上的硬件和固件及计算机上的驱动软件 (driver software)所共同完成的。 图1所示的打印机共享系统依据本发明的第一具体实施例,打印机共享系统包含 共享切换器IO。如图中所示,该共享切换器10耦接(couple)到打印机30及多个计算机 20,而图中的实施例中以四部计算机20(PC-1到PC-4)来举例说明。 共享切换器10包括连接到计算机20的多个计算机端切换器(computer-side switch) 12及连接到该计算机端切换器12的多个USB装置控制器(USB device controller) 14,而图1中的实施例以四个计算机端切换器12(SW_1到SW-4)及四个USB装 置控制器14(Contr-l到Contr-4)来举例说明。 共享切换器10中也包含USB集线器(USB hub) 16,计算机端切换器12也连接到同 一集线器16的上数据流连接端口 (upstream port),因此计算机端切换器12就可以将其对 应的计算机20的连接切换到该USB集线器16或对应的USB装置控制器14。
共享切换器10中另包含控制器端切换器18 (controller-side switch),该控制 器端切换器18连接到每个USB装置控制器14的另一端及集线器16的第一下数据流连接 端口 (downstream port),因此该控制器端切换器18可以将集线器16切换到USB装置控制 器14中的任何一台。 打印机30连接到集线器16的第二下数据流连接端口。 USB装置控制器14可以是低速的装置控制器,在某些应用上其可以是通用串行总
线人机接口装置(Human Interface Device ;HID)等级的装置控制器,因此计算机20可以
直接利用其预设HID驱动软件(HID driver)跟USB装置控制器14进行通信。 USB装置控制器14之间是彼此耦接的且利用主从模式(master-slavemodel)来
进行彼此的通信,因此这些USB装置控制器中有一个为主(master)装置控制器,其余为从
(slave)装置控制器。为了让图1不至于太挤,因此并未画出USB装置控制器14之间的连接线。 —个或多个USB装置控制器14被编程以控制计算机端切换器12及控制器端切换 器18的切换操作。原则上USB装置控制器14之一,例如主控制器(master controller), 可以控制所有切换器12及18的操作,然而实际上因为控制器的管脚的数目是有限的,因此 控制器可以控制的切换器也是有限的,尤其是当使用价格不贵的USB装置控制器芯片时。 因此需要主控制器及一个或多个从控制器一起合作来控制切换器12及18。以此着眼,当本 说明书或权利要求中提到"装置控制器"控制切换器的切换时,不是代表所有的装置控制器 都涉入其中。经由控制排线在控制器14与其控制的切换器12及18之间传递控制信号,为 了避免图1过于拥挤,并未画出该控制线。 每一部计算机20都加载USB连接端口监测程序20A。该程序20A与计算机20的 排存服务(spooler service)及共享切换器10协力配合完成打印机30的打印数据的排存 服务(spooling of print data),此部分将在后续有更详尽的描述。 图2是以特定例子描述共享切换器10的操作。在此例子中,第四台计算机PC-4 目前连接到打印机30,而且排存服务(Simultaneous PeripheralOperation 0n-Line ; Spooling)打印数据到打印机30(步骤21),第四台计算机PC-4可视为目前选定的计算机。 在此时,对应于第四台计算机PC-4的计算机端切换器SW-4切换到集线器16。经由集线器 16及切换器SW-4,可以在第四台计算机PC-4及打印机30之间传递数据。其它的计算机端 切换器12 (SW-l、SW-2及SW-3)则被分别切换到其所对应的控制器14 (Contr-l、Contr-2及 Contr-3)。控制器端切换器18在此时则被切换到计算机PC_4所对应的控制器Control-4。 因此计算机PC-4经由对应的计算机端切换器12、USB集线器16及控制器端切换器18连接 到所对应的控制器14,而切换器10未切换选择到的计算机PC-l、PC-2及PC-3则经由计算 机端切换器12连接到所对应的控制器14。因此每一计算机20都能与其对应的控制器14 进行通信。 当第四台计算机完成打印数据的排存服务(spooling print data)时,它经由第 四计算机端切换器SW-4、USB集线器16及控制器端切换器18发出排存服务完成(spooling finished)命令给对应的控制器Contr-4 (步骤S22)。控制器Contr-4将此排存服务完成 (spooling finished)指令传送到主控制器(在本实施例中假设此时主控制器为第一控 制器Contr-l)。该主控制器内含队列(queue),用于存放从各个计算机20所传递过来的请求切换指令。该主控制器在接收到来自第四台计算机的排存服务完成指令(spooling finishedcommand)后,主控制器从队列(queue)中撷取一第二请求切换指令(步骤S23)。 如果队列(queue)是空的,主控制器会等待计算机所传递过来的第二请求切换指令而且将 其放入队列。 在这个例子当中,假设在队列中的第二请求切换指令是来自于第一台计算机 PC-1 (视为下一个选定的计算机)的。主控制器和从控制器14(在主控制器的指令之下) 控制切换器的切换功能,将打印机30从目前选定的计算机PC-4切换到下一选定的计算机 PC-l。 此时,第四个计算机端切换器SW-4被控制而将第四台计算机PC-4从USB集线器 16切换到第四个USB控制器Contr-4 (步骤S24)。控制第一计算机端切换器SW_1切换到 集线器16(步骤S25),而控制控制器端切换器18切换至第一控制器Contr-l,即对应到下 一个选定计算机的控制器。步骤S24到S26的先后顺序并不重要。第二及第三计算机端切 换器SW-2及SW-3在此期间并无需执行切换动作,因其切换状态并无改变。
经过上述切换动作后,第二个选定的计算机PC-l经由其对应的计算机端切换器 SW-1及USB集线器16连接到打印机30。第二个选定的计算机PC-1也经由其对应的计算 机端切换器SW-1、USB集线器16及控制器端切换器18连接到其对应的控制器Contr-l。而 此时没有被共享切换器10选定的计算机20(PC-2、 PC-3及PC-4)则经由计算机端切换器 12(SW-2、SW-3及SW-4)连接到其对应的控制器14 (Contr-2、Contr-3及Contr-4)。第二个 选定连接到打印机30的计算机PC-1即可进行打印动作(步骤S27)。当计算机PC-1打印 完成之后,可以对之后的切换需求重复类似上述动作。 在上述例子中,主控制器是USB装置控制器14的其中之一,在另一实施例中,主控 制器也可以是独立的控制器(非四个USB装置控制器14的其中之一 ),而四个USB装置控 制器14为从控制器。此外,四个USB装置控制器14也可以整单芯片(例如用ASIC、 FPGA 等)的方式完成,该芯片包含上述描述的功能。实际上的实施方式并不重要,只要有四个 USB装置控制器对应到四台计算机PC-1至PC-4即可。 图3说明在计算机20上的USB连接端口监测程序20A的执行过程。在Windows 打印架构中,USB连接端口监测程序20A是介于排存服务(spooler)及USB驱动程序堆栈 (USB Driver Stack)之间的,此两者都由Windows系统所提供。例如,USB连接端口监测程 序20A可以取代Windows系统所提供的USB连接端口监测程序(Usbmon. dll)。
如图3所示,当USB连接端口监测程序20A从排存服务接收到一个排存服务请求 (spooling request)时(步骤S31) ,USB连接端口监测程序传送切换请求指令到共享切换 器10(步骤S32)。该切换请求是程序自动产生的,无需通知计算机使用者来发出该切换指 令,计算机使用者只须发出打印指令即可。就如之前所提到的,共享切换器10内含一队列 (queue),用于存放从各个计算机20所传递过来的请求切换指令,且自动执行切换动作,在 适当时机执行切换操作将打印机30从一台计算机20切换到另外一台计算机20。因此在 传送切换请求后,连接端口监测程序20A监测共享切换器10的连接状态,来确认共享切换 器10是否将此台特定计算机连接到打印机30 (步骤S33)。例如,连接端口监测程序20A可 监测计算机的装置占据状态,其中"占据"状态代表已建立对打印机的联机。当该监测程序 20A的监测结果是尚未连接到打印机时(在步骤S34中"否"),监测状态会一直持续下去直
7到监测到共享切换器10将该计算机20连接到打印机30 (在步骤S34中"是")。
如果判断已经建立连接(在步骤S34中"是"),该连接端口监测程序20A送出"锁 住"指令给共享切换器IO,然后经由切换器10送回响应确认切换锁住状态(步骤S35)。步 骤S35是选择性步骤,因为共享切换器10可以设计成将在切换后自动锁住连接,而仅在收 到来自目前选定的计算机的排存服务完成指令后解除锁定。接下来连接端口监测程序20A 通知排存服务开始排存服务数据(步骤S36),排存服务的过程是以连续不断的方式实行的 (步骤S37)。更具体地说,该连接端口监测程序20A从排存服务接收打印数据,然后经过共 享切换器10将其传送给打印机30,并接收打印机状态信息并通过共享切换器10将其传送 给排存服务。在完成排存服务打印(spooling print)后,连接端口监测程序20A从排存服 务得到通知,然后将排存服务完成指令传送给共享切换器10(步骤S38)。
如同之前所提到的,一旦打印机30被切换到计算机20的其中一台(称为目前选 定的计算机),共享切换器IO不会切换到其它台计算机,除非从目前所选定的计算机收到 排存服务完成指令。在完成步骤S24到S26 (图2)的切换动作之后,如果共享切换器10从 连接端口监测程序20A收到锁住指令(参照图3中的S35步骤),共享切换器10也会送回 锁住确认指令给连接端口监测程序20A。这保证了在一些异常状况发生时(例如打印机 卡纸、缺纸等)可以完成排存服务。 如先前已提到的,计算机20使用预设USB HID等级装置驱动软件与共享切换器10 的USB装置控制器14进行通信。因此,除了以上连接端口监测程序20A以外,计算机20并 不需要再安装其它特殊的应用程序。 如图4所示,其是依据本发明的共享切换器的第二具体实施例。共享切换器40耦 接到打印机30及多个计算机20 (此实施例中以四部计算机PC-1到PC-4来举例说明)。共 享切换器40具有耦接到计算机20的多个计算机端切换器42 (computer-side switch)(此 实施例中以四个切换器SW-1到SW-4来举例说明)及多个USB装置控制器44(USB device controller)(此实施例中以3个装置控制器:Contr-l到Contr-3来举例说明)。也就是 说USB装置控制器44的个数小于计算机端切换器42的个数(该计算机端切换器的个数 被记为"N")。在此实施例中,该三个USB装置控制器44经由对应的三个控制器端切换器 (controller-side switch) 48 (SW-5至SW-7)耦接到四个计算机端切换器42的其中三个, 并使该三个USB装置控制器44可被切换至四个计算机端切换器42中的任意三个。具体 地说,第一控制器端切换器SW-5可以将第一控制器Contro-1切换连接到第一计算机端切 换器SW-1或下一个计算机端切换器SW-2,第二控制器端切换器SW-6可以将第二控制器 Contro-2切换连接到第二计算机端切换器SW_2或下一个计算机端切换器SW_3,以此类推。
每一个计算机端切换器42也经由共同连接线49耦接到打印机30,因此计算机端 切换器42可使对应的计算机20切换到打印机30或是控制器端切换器48的其中之一。
如同第一实施例一样,USB装置控制器44可以是USB HID等级的装置控制器,计 算机20可以直接利用其预设HID驱动软件与USB装置控制器44通信。该多个USB装置控 制器44之间利用主从模式(master-slave model)来进行彼此的通信,为了让图4不至于 太乱,并未画出该多个USB装置控制器44之间的连接线。这些主、从USB装置控制器44控 制计算机端切换器42及控制器端切换器48的切换操作。而且,为了让图4不至于太乱,并 未画出这些USB装置控制器44与它们的控制的切换器之间的连接线。
共享切换器40也包含一 USB忙碌(USB busy)检测线路46,其经由一条共同连接 线49耦接于计算机端切换器42及打印机30之间。该USB忙碌(USB busy)检测线路46 检测共同连接线49上的信号以得知该信号线是否处于忙碌状态(数据传输),即,是否计算 机20目前正对打印机30传送排存服务数据。该USB忙碌检测线路46根据检测结果,经由 一条控制线(未绘于图4中)传送信号到控制器44之一 (例如主USB装置控制器)。
每一台计算机20安装一特殊的USB连接端口监测程序20B,该程序与计算机的 排存服务(spooler service)及共享切换器40合作完成对打印机30的排存打印数据 (spooling of print data),此部分的细节后续再详述。 图5试举一例说明图4的共享切换器40的操作原理。在此例子中,第四台计算机 PC-4目前连接到打印机30,而且对打印机30传送排存打印数据(步骤S51)。在此时,对应 于第四台计算机的计算机端切换器SW-4经由共享接线49切换到打印机30。可经由第四 计算机端切换器SW-4在第四台计算机PC-4及打印机30之间传递数据。其它三个计算机 端切换器42 (SW-1、 SW-2及SW-3)则被切换到其它三个控制器端切换器48 (SW_5、 SW-6及 SW-7)。该三个控制器端切换器48将未被选择到的计算机(PC-l、PC-2及PC-3)切换为连 接到USB装置控制器44。而在此例子中,第一控制器端切换器SW-5将第一控制器Contr-l 切换到第一计算机端切换器SW-1 ,第二控制器端切换器SW-6将第二控制器Contr-2切换到 第二计算机端切换器SW-2,第三控制器端切换器SW-7将第三控制器Contr-3切换到第三计 算机端切换器SW-3。因此,三个未被选择到的计算机20(PC-1、 PC-2及PC-3)连接到三个 控制器44(Contr-l、 Contr-2及Contr-3),并且可以与对应的控制器44进行指令通信。
当某台计算机正在排存打印数据时,共享切换器40会持续判断是否完成排存服 务(步骤S52)。在图4的具体实施例中,目前选定的计算机20(在此例中为PC-4)在对打 印机30传送排存服务数据时并未连接到任何USB装置控制器44。因此,目前选定的计算 机PC-4无法传递排存服务完成指令给共享切换器40。所以排存服务是否完成的决定是由 USB忙碌检测线路46自己执行或其与主控制器44共同执行的。 为了保证排存服务不会被过早打断,共享切换器40实施一种延迟机制,以致必须 检测到共同连接线49在一段预定时间内无动作,共享切换器40才能切换到另外一台计算 机。在一实施例中,该忙碌检测线路46传送忙碌与否的信号给主控制器44,例如每当共同 连接线49从忙碌变成不忙碌或其相反状况时,忙碌检测线路46传送一新的信号给主控制 器44。根据此信号,主控制器44使用定时器来监测共同连接线49已处于不忙碌状态多长 时间,并决定在不忙碌状态中预定时间之后排存服务已经完成。在另外一种实施例中,USB 忙碌检测线路46拥有一定时器,可以决定共同连接线49已处于不忙碌状态多长时间,并在 共同连接线49处于不忙碌状态一段预定时间之后,传输一排存服务完成指令给主控制器 44。 主控制器44包括队列(queue),用于存放从各个计算机20所传递过来的请求切换 指令。在主控制器确认目前选定的计算机已完成排存服务后,主控制器从队列中撷取第二 请求切换指令(步骤S53)。如果队列是空的,主控制器会等待从计算机所传递过来的第二 请求切换指令而且将其放入队列。在这个例子当中,假设在队列中的第二请求切换指令来 自于第一台计算机PC-1 (视为下一个要切换的计算机)。主控制器和从控制器44(在主控 制器的指令之下)实施适当的控制功能以将打印机30从目前的计算机PC-4切换到下一部计算机PC-1。 在本例中,此时,第四个计算机端切换器SW-4在控制之下将第四台计算机PC-4切 换到第三个控制器端切换器SW_7(也就是,第四台计算机PC-4不再连接到打印机30)(步 骤S54)。控制第一计算机端切换器SW-1以将第一台计算机PC-1切换到打印机30(步骤 S55)。而且,第三控制器端切换器SW-7被控制以切换到第四计算机端切换器SW-4,第二控 制器端切换器SW-6被控制以切换到第三计算机端切换器SW-3,并且第一控制器端切换器 SW-5被控制以切换到第二计算机端切换器SW-2(步骤S56)。切换步骤S54至S56的次序 并非固定的。而第二、第三计算机端切换器SW-2、SW-3无须执行任何动作,因为它们的切换 状态并无改变。 经过上述切换操作后,第二个被选定的计算机PC-1经由其对应的计算机端切 换器SW-1连接到打印机30,而此时没有被选定的计算机20(PC-2、 PC-3及PC_4)则经 由对应的计算机端切换器42(SW-2、 SW-3及SW-4)及控制器端切换器48连接到控制器 44(Contr-2、 Contr-3及Contr-4)。第二个选定的计算机PC-1即可进行打印动作(步骤 S57)。当计算机PC-l打印完成之后,可以重复类似上述程序以响应第二切换需求指令。
在图4所示的第二实施例中,由装载于计算机20中的USB连接端口监测程序20B 执行的程序类似于在图1所示的第一具体实施例中的连接端口监测程序20A与图3所示的 程序,其中一些不一样的地方则解释于下。 第一个不同点是在步骤S33,连接端口监测程序20B经由轮询(polling)HID(控制 器44)来确认HID连接是否丧失以决定打印机连接状态。如果HID丧失连接则代表打印机 的连接已经建立。第二个不同点是连接端口监测程序20B并没有执行步骤S35的操作(送 出锁住指令及确认锁住状态)。第三个不同点是连接端口监测程序20B并没有执行步骤S38 的操作(送出一排存服务完成指令给USB共享切换器)。原因如前所述,USB共享切换器40 是由USB忙碌检测线路46来决定计算机的排存服务是否完成。 如前所述,一旦打印机30切换到特定计算机20 (目前选定的),共享切换器40不 会将打印机切换到其它计算机,除非USB忙碌检测线路46或主控制器确认排存服务动作已 完成。因此一般而言目前选定的计算机的排存服务是不会被中断的,虽然并非百分之百防 止中断排存服务。 在图四的共享切换器40中,如果计算机20经由对应的计算机端切换器42连接到 打印机,该计算机不会连接到控制器44。控制器44的数目可以比计算机端切换器42的数 目少一个,因此节省成本。三个控制器端切换器48可以使得不管哪一台计算机20都可切 换到打印机,而其它三个计算机端切换器42可以连接到三个控制器44。
图6显示第二实施例的变型。共享切换器60中包含同样数量的控制器64、计算 机端切换器62及计算机20。每一个控制器64直接连接到对应的计算机端切换器62,图4 中的控制器端切换器48则是不必要的。在此架构之下,如果控制器64所对应的计算机20 连接到打印机30,该控制器64不会有任何动作。在图6中的USB忙碌检测线路66和主控 制器44的操作与图4的实施例中的USB忙碌检测线路46和主控制器44的操作相同。
计算机端切换器62的切换操作类似于图四的计算机端切换器42的操作。图4的 连接端口监测程序20B也可用在该实施例中。 图7总结在共享切换器10/40/60的主控制器14/44/64的信号通信及切换程序。虽然并未画在图1、4及6中,可在切换器的外壳选择性地提供一个或多个按钮。当主控制 器收到切换请求指令时(步骤S71),它会判断该切换请求指令来自于共享切换器的按钮或 是来自于计算机20 (步骤S72,为一选择性步骤)。如果该切换请求指令是来自按钮,只有 当打印机不被其它计算机锁定的情况下,该共享切换器10/40/60才会启始切换动作,否则 该切换请求指令将会被忽略且不作处理(步骤S76)。如果该切换请求不是来自于按钮(步 骤S72中的"否"),该切换请求命令会被放入队列(步骤S73)。主控制器然后监测是否有 计算机20正在打印并确认打印何时完成(步骤S74)。如前所述,这个步骤在图1、图4及 图6的实施例中是有差别的。当打印已完成时,主控制器从队列的开头撷取切换请求指令, 并启动切换动作将第二个选定的计算机20切换到打印机30 (步骤S75)。
使用此处所述的共享切换器,在计算机的软件和共享切换器的硬件/固件彼此配 合下,此系统将可以完成全自动的切换和打印。只要将USB连接端口监测程序安装在计算 机上,使用者将可以执行打印动作而无须去执行另外的切换步骤。共享切换器的主控制器 建立一切换请求指令的队列,以先到先服务的基本原则进行处理。而且在图1的实施例中, 共享切换器的固件可以执行切换且锁住功能而无任何延迟。
打印机30可为任何形式的打印机,例如喷墨或激光打印机。 虽然上述实施例中的共享切换器是使用USB协议的,其它协议例如IEEE1394也可 用于其与计算机及打印机的接口 ,只要对计算机和打印机使用同一种协议即可,因此共享 切换器无须在计算机及打印机之间作数据格式转换的动作。 虽然在上述实施例中是使用打印机为例子,该共享切换器也可使用其它外围设备 如存储设备、扫描机等。 至于上述使用的名词"排存服务(spooling)"或"打印(printing)",可以用更通
用的词"数据传输(data transfer)"来取代。例如"排存服务完成(spooling finished)"
指令可以被更广泛地称为"数据传输完成(data transferfinished)"。在使用其它外围设
备的情况下,也许需要修正计算机中的驱动程序来与该共享切换器协同运作。 本发明虽以较佳实例描述如上,然其并非用以限定本发明的精神与发明实体仅限
于上述实施例。所以,在不脱离本发明的精神与范围内所作的修改均应被包含在所附权利
要求内。
权利要求
一种共享切换器,用以将计算机外围设备与多个计算机连接,包括下列多个计算机端切换器,每个计算机端切换器耦接到所对应的计算机;集线器装置,包含连接到所述多个计算机端切换器的上数据流连接端点,第一下数据流连接端点,耦接到所述计算机外围设备,及第二下数据流连接端点;多个装置控制器,每个装置控制器耦接到对应的计算机端切换器,其中每个计算机端切换器将对应计算机的连接切换到对应的装置控制器或集线器装置的上数据流连接端点;及控制器端切换器,耦接到所述多个装置控制器及所述集线器装置的所述第二下数据流连接端点,使得所述集线器装置的第二下数据流连接端点可以耦接到装置控制器。
2. 如权利要求1所述的共享切换器,其中,所述计算机端切换器在这些计算机及所述 集线器间传递数据而无须作数据格式的转换。
3. 如权利要求1所述的共享切换器,其中,所述装置控制器控制所述计算机端切换器 及所述控制器端切换器的切换,使得选定的计算机所对应的所述计算机端切换器切换至所 述集线器装置,而其它计算机端切换器切换至与它们对应的装置控制器,并且所述控制器 端切换器切换至与所述选定计算机对应的装置控制器,因此所述选定的计算机经由所述对 应的计算机端切换器及所述集线器装置连接到所述计算机外围设备。
4. 如权利要求1所述的共享切换器,其中所述多个装置控制器之一为主装置控制器, 而其它装置控制器为多个从装置控制器,这些从装置控制器被所述主装置控制器所控制。
5. 如权利要求4所述的共享切换器,其中这些从装置控制器从它们对应的计算机接收请求切换指令及数据传输完成指令, 然后将这些指令传送给所述主装置控制器,其中所述主装置控制器内有队列,所述队列存储来自所述对应计算机或来自装置控制 器的多个请求切换指令,及其中当所述主装置控制器从其对应的计算机或从这些从装置控制器之一接收到数据 传输完成指令时,所述主装置控制器从所述队列中撷取第二请求切换指令,并启动这些计 算机端切换器及所述控制器端切换器的切换,使得下一个计算机得以连接到外围设备。
6. 如权利要求5所述的共享切换器,其中,所述主装置控制器只有在接收到数据完成 指令后才会启动这些计算机端切换器及所述控制器端切换器的切换。
7. 如权利要求1所述的共享切换器,其中,更包含共同连接线,其耦接到所述外围设备 及所述计算机端切换器;及忙碌检测线路,其耦接到所述共同连接线,检测所述共同连接线 的忙碌状态,并且产生代表检测结果的信号,并传输代表所述检测结果的信号到所述主装 置控制器。
8. —种连接端口监测程序,应用于计算机外围设备共享系统,所述计算机外围设备共 享系统包括如权利要求1所述的共享切换器、计算机外围设备以及连接到所述共享切换器 的多个计算机,所述外围设备为打印机,所述连接端口监测程序被安装在每一计算机上,包 括下列第一程序代码,当所述连接端口监测程序从所述计算机上的排存服务程序收到排存服务指令后,自动传输切换请求给所述共享切换器;及第二程序代码,当检测到打印机已连接之后,使所述计算机监测所述打印机的打印机 连接状态及对打印机启动排存服务。
9. 一种实施于共享切换器及计算机的方法,应用于计算机外围设备共享系统,所述计 算机外围设备共享系统包括共享切换器、外围设备以及耦接到所述共享切换器的多个计算 机,所述方法包括下列步骤在所述共享切换器上的步骤(a) 将目前所选择的计算机连接到所述外围装置;(b) 接收来自这些计算机的多个切换请求指令; (C)将这些切换请求指令放入队列;(d) 判断目前选定的计算机传输到所述外围设备的数据传输是否完成;及(e) 如果判断目前所选定的计算机的数据传输已完成,从所述队列撷取第二切换请求 指令,并且根据所述第二切换请求指令将下一台选择到的计算机连接到所述外围设备。
10. 如权利要求9所述的方法,其更包含下列步骤 在每一计算机上的步骤(f) 当所述计算机上的程序要求传输数据到所述外围设备或从所述外围设备传入数据 时,自动传递切换请求指令给所述共享切换器;(g) 监测所述外围设备的连接状态;及(h) 在确认已经连接上所述外围设备之后,对所述外围设备传入/输出数据。
全文摘要
一种具有自动切换功能的USB共享切换器,及用于其的连接端口监测程序及方法,使得多个计算机可以共享通用串行总线(USB)打印机。共享切换器在计算机及打印机间传输USB数据而无需改变数据格式。在实施例中,该共享切换器包含对应于该多个计算机的多个USB装置控制器,且共享切换器使用多个切换器及USB集线器。因此每一计算机都可以连接到其对应的装置控制器,而目前所连接到打印机的计算机在打印时也可与其对应的控制器通信。目前所连接到打印机的计算机在排存服务完成后可以送出一排存服务完成指令给其对应的控制器。在接收到排存服务完成指令后,该共享切换器将打印机自动切换到下一计算机。
文档编号G06F13/40GK101739377SQ200910138038
公开日2010年6月16日 申请日期2009年5月4日 优先权日2008年11月11日
发明者严雄 申请人:宏正自动科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1