控制通用序列总线装置 的操作模式的方法与相关装置 【技术领域】
本发明涉及一种通用序列总线(universal serial bus,USB)装置,特别涉及一种控制通用序列总线装置的操作模式的方法与相关装置。
背景技术
通用序列总线(universal serial bus,USB)的标准近年来已广被计算机界所接受,事实上差不多所有的个人计算机上都至少配备一个通用序列总线连接端口(port),甚至有些打印机、输入外部设备(inputperipherals)、或网络连结器(network linker)等仅配备通用序列总线连接端口。此外,具有多功能的通用序列总线也相继问世。
通用序列总线为需要经由计算机主机来控制的一种从属装置(slavedevice),当使用者将一通用序列总线连接至一台计算机主机后,该台计算机主机会检测该新装置,在检测过后计算机主机首先要做的就是传送一装置描述命令(device descriptor command)至该通用序列总线,而该新装置(也就是该通用序列总线)则将其持有的装置描述传回到计算机主机端以确实告诉计算机主机它到底是什么东西,然后计算机主机方才知道要用何种驱动装置与通讯协定来使用它。有一些基本装置,例如键盘或是储存装置,个人计算机中已有内建于操作系统的驱动装置,然而其它的装置则需要制造厂商提供相关的专业化驱动软件。
请参考图1,图1为已知具有多功能的通用序列总线10的方块图。为便于解释,假设通用序列总线10为连结两台计算机主机的一网络连结器(network linker),该两台计算机主机可利用通用序列总线10传递信息。通用序列总线10仅具有单一操作模式,而该单一操作模式具有两种功能(function,或称为设定configuration),记载于其装置描述(devicedescriptor)中。该装置描述载明通用序列总线10能同时支持两种功能,因此也就同时需要两种驱动程序。例如,A功能为一连结功能,用于连结两台计算机主机作为数据交换之用;而B功能则为一储存功能,用于一计算机主机将数据储存于通用序列总线10中,任何一种功能都是被计算机中适当的驱动程序与指令所控制,当然该二计算机主机都必需配备符合通用序列总线10的驱动程序才能顺利使用通用序列总线10。该驱动程序是储存于光盘(CD)或磁盘(floppy disk)中,并且在该二计算机主机与通用序列总线10连接之前就已安装在该二计算机主机上了。
通用序列总线10包含一第一连接端口12与一第二连接端口16,该二连接端口均为典型的阳(male)通用序列总线连接端口(male USB port),且分别位于通用序列总线10的两端,并且分别连接至该二计算机主机的阴(female)通用序列总线连接端口(female USB port)上。该二连接端口均内含用来处理通用序列总线10的输出入信号地电路。因为通用序列总线10有二种独立的功能(连接、储存),所以通用序列总线10的两端也必需分别具有两个先进先出(first in firs tout,FIFO)的寄存器,也就是第一连接端口12连接至二先进先出寄存器14a、14b,而第二连接端口16则连接至另外两个先进先出寄存器18a、18b。该四个先进先出寄存器14a、14b、18a、18b都连接至一控制电路20上,用来交替地在控制电路20与该二连接端口间传送数据,但在操作时究竟使用那一个先进先出寄存器则取决于通用序列总线10正在执行何种功能。控制电路20包含所有通用序列总线10执行前两项功能所需的所有电子元件、芯片、与相关组件。
另一先前技术的实施例则披露在美国专利6,141,719中,其发明人为Rafferty等。Rafferty等人披露如何将多个通用序列总线连接至一台计算机主机上,以及经过一切换过程(switching process)所启动(activate)的通用序列总线。然而,该切换过程仍必需经由使用者控制,并且该切换机制尚需要额外的硬件设备来完成,也就是说,需要额外的花费。由于仅能通过连接或不连接计算机主机来改变通用序列总线的操作模式,以致于该通用序列总线仅具启动的(active)、或闲置的(inactive)两种操作模式。
先前技术中所提到的具有多功能的通用序列总线装置使用起来很不方便,即便是该通用序列总线装置中仅有一种功能是必需的,其仍需配备两组驱动装置,并且先前技术中的通用序列总线装置还潜藏了一些昂贵且可能没有用的装置,例如先进先出寄存器等,当只需要通用序列总线装置完成一种功能时,该先进先出寄存器就派不上用处了。
【发明内容】
本发明的目的在提供一种能控制通用序列总线装置的操作模式的方法,以解决已知技术所无法解决的问题。
根据本发明,一通用序列总线装置包含有至少一通用序列总线连接端口、一检测电路、与一控制电路,该通用序列总线装置的电源可来自一计算机主机或一个别的电源供应器。该通用序列总线装置至少有两操作模式并且以现行的操作模式数据回应计算机主机所发出的取得描述命令。而控制电路与检测电路用来改变该通用序列总线装置的操作模式,再运用一重新设定功能,才完成所有模式改变的动作。
【附图说明】
图1为已知具有多功能的通用序列总线的方块图。
图2为本发明具有多重功能的通用序列总线装置的方块图。
图3包含本发明的通用序列总线连接端口阴端子的透视图与一阳通用序列总线装置连接端口。
图4为本发明通用序列总线装置通过其内的阳通用序列总线装置连接端口与图3中的端子连接的方块图。
图5为一通用序列总线装置与另一刚好可插入该通用序列总线装置的端子。
图示的符号说明
10 30 60 70 90 多功能的通用序列总线
14A 14B 18A 18B 34 38 62 先进先出寄存器
12 32 第一连接端口 16 36 第二连接端口
20 66 控制电路 40 64 检测电路
42a A控制模式 42b B 操作模式
50 80 端子 52 82 外壳
54舌状物 56 84电力接点
66c C操作模式 66d D操作模式
68 外接电源供应器 92 标准的B型装置连接端口
100a 100b 计算机主机
【具体实施方式】
本发明的最佳实施例提供一种能切换通用序列总线(USB)装置的操作模式的方法,虽然本实施例中仅用以下两个不同的通用序列总线装置分别说明,但本发明的方法可应用在任何其它种类的通用序列总线装置。
请参考图2,图2为本发明具有多重功能的通用序列总线装置30的方块图,请注意通用序列总线装置30仅仅为USB装置,而并非通用序列总线主机(host)或是集线器(hub)。通用序列总线装置30包含一第一连接端口32与一第二连接端口36,用来连接一台或两台计算机主机,该二连接端口32、36均为标准的阳通用序列总线A型装置插头(standard male USB typeA device plug)。连接端口32、36分别包含四个标准的通用序列总线连接点(contact),分别为总线电源(bus power,VBUS)点、D+信号接点、D-信号接点、与接地(GND)接点。连接端口32、36分别通过先进先出寄存器34、38与一控制电路42相连,通用序列总线装置30的两种操作模式均由控制电路42所决定。连接端口32、36也同时连接到一检测电路(detectioncircuit)40,该检测电路40藉着量测连接端口32、36的vbus电压,就可知道有多少连接端口是连接着像个人计算机这类能供应电源给通用序列总线装置30内元件的装置,并且检测电路40也会将这相关的信息传给控制电路42。为了说明起见,假定通用序列总线装置30以一高速计算机主机对计算机主机的网络连结器(high-speed host-to-host network linker),其内含一储存装置,并且其所需的电源是由外接的计算机主机所提供的。也就是说,A操作模式42a使得通用序列总线装置30作为一储存装置(例如一闪速存储器),而B操作模式42b则可使得通用序列总线装置30作为主机间的连结装置。特别需要注意的是A操作模式42a与B操作模式42b均提供独立且完整的功能,以致于它们可视为两个同在一壳体内的通用序列总线装置。然而本发明的通用序列总线装置30并不仅限上述两种功能的组合,例如,扫描器/存储器装置组合,或是扫描器/主机对主机组合等,该二操作模式究竟为何功能要视设计而定,但它们必需是独立的,为了配合由主机100a、100b所发出的装置描述命令中的询问/回答通讯协定(query-response protocol),因此每一操作模式42a、42b皆需在主机100a、100b有一相对应的驱动程序。
通用序列总线规格(最新的版本为USB2.0版)规定了当通用序列总线装置30连接到一主机后所必需要遵守的一些事,以下为相关规定的简单说明。当通用序列总线装置30的第一连接块32连接至主机计算机100a时,第一连接端口上的D+信号线的电位会被通用序列总线装置30由接地状态拉至高电位状态。请注意,不同的传输速度(connection speed)对应不同的连接过程,对高速传输(high/full)的装置而言,是D+信号线的电位被一提升电阻(pull-up resistor)所拉高,但对低速传输的装置来说,则是D-信号线的电位被一提升电阻所拉高。当D+信号线的电位改变被主机计算机100a检测到时,主机计算机100a就知道有一装置连上了,而通用序列总线装置30在此同时也从主机计算机100a接收到总线电源(一般为5伏特),并且利用这电源将D+信号线的电位拉高,这些都是已知的技术,在此重复只是为了方便以下的说明起见。
除了通用序列总线装置30规格上所载明的事项外,本发明的通用序列总线装置30当连接上主机计算机100a时,还会将总线电源传送至检测电路40,接着检测电路40判定只有一台开机的主机计算机100a正连接至通用序列总线装置30,也正是这台计算机100a,一台处于开机状态且正连接至通用序列总线装置30的第一连接端口32的通用序列总线元件(USBcomponent),才是真正提供通用序列总线装置30运作时所需电力的来源。
当计算机100a连接上通用序列总线装置30后,计算机100a就预备识别通用序列总线装置30,并且藉着传送取得描述命令(get descriptorcommand)给通用序列总线装置30,来为其载入适合的驱动程序。于此同时,检测电路40也已通知控制电路42只有一台计算机连上线,于是控制电路42就决定通用序列总线装置30只作用于A操作模式42a,也就是储存模式。通用序列总线装置30就以对应于A操作模式42a的装置描述(devicedescriptor)以设定描述(configuration descriptor)回应计算机100a所发出的取得描述命令。在上述的整个过程中,B操作模式完全不会被使用到。计算机100a根据通用序列总线装置30所传来的装置描述与设定描述来寻找一适合通用序列总线装置30的驱动程序,万一找不到时,计算机100a立刻通知使用者供应一适合的驱动程序给通用序列总线装置30。大部分新的操作系统皆内建有通用序列总线储存装置驱动程序,只有一些老的操作系统,例如视窗98/95,没有内建此类的驱动程序。至此,具多功能的通用序列总线装置30已连上一台计算机100a,并且像个典型的仅具单一储存功能的通用序列总线装置。
当想要将通用序列总线装置30切换至B操作模式42b,也就是计算机对计算机网络连结模式时,使用者仅需将第二连接端口36连接至另一具有通用序列总线连接端口的计算机即可,在本例中其为第二计算机100b。第二计算机100b执行与第一计算机100a之前做过的相同的通用序列总线初始化过程(也就是传送取得描述命令,再经由检测电路判别等等),然而这一次检测电路40却是通过位于第二连接端口36上的另一总线电压VBUS,检测得知有两计算机100a、100b已连接在通用序列总线装置30上了,此时控制电路42将操作模式由原本的A操作模式42a切换至B操作模式42b,因而也改变了通用序列总线装置30的功能。
通用序列总线装置30操作模式的改变最后仍需经过通用序列总线功能重新设定(USB function reset)的程序后才算全部完成,之所以需要通用序列总线功能重新设定是在于,根据通用序列总线通讯的本质,第一计算机100a并无法检测到操作模式是否已改变,因为任何一台计算机仅会在刚连接到通用序列总线装置30时询问通用序列总线装置30的相关功能,所以当通用序列总线装置30连接了另一台计算机且改变其操作模式时,第一计算机100a并不会知道,它还以为通用序列总线装置30仍旧沿续A操作模式。通用序列总线装置30的功能重新设定可被其内的一控制单元(control unit)藉着暂时停止拉高D+信号线的电位而完成,亦即不连接(disconnection)D+信号线的程序。请注意高速传输装置的不连接程序包含不连接该D+提升电阻,其更进一步包含将一45欧姆的电阻移离D+信号线与D-信号线。而不连接低速传输装置则包含不连接D-提升电阻。实际上,连接/不连接的动作是通用序列总线装置30专门为了第一计算机100a所作的,而此刻仍连着通用序列总线装置30的第一计算机100a解读该重新设定的意义为,第一计算机100a正连接一不知名的新装置(它不知道该新装置依旧是通用序列总线装置30)。
在通用序列总线装置30完成与计算机100a连接/不连接的操作之后,计算机100a、100b分别与先前一样传送取得描述命令至通用序列总线装置30。然而这一次,通用序列总线装置30只传回关于B操作模式42b的装置描述与设定描述,而A操作模式既不会提到也不会用到。与先前一样,计算机100a、100b寻找或是立刻通知使用者根据B操作模式42b安装适合通用序列总线装置30的驱动程序。此时,具有多功能的通用序列总线装置30现在已连接至两台计算机并像典型的具有主机对主机网络连结的单一功能的通用序列总线装置。
而通用序列总线装置30其它的操作模式可通过特别设计的通用序列总线连接端口端子(USB port terminator)来附加上去。请参考图3,图3包含本发明的通用序列总线连接端口阴端子(cap terminator)50的透视图与一阳通用序列总线装置连接端口(male USB device port)60。端子50包含一外壳52,其内设有一舌状物54,二者都是由非导电材料所制成,如热塑性塑胶(thermoplastics)PBT或PET等。舌状物54上为电力接点56,其可为镀金的铜质通用序列总线等级的导体,接点56的尺寸与位置是当端子50与通用序列总线装置连接端口60以机械的方式啮合时,正好将通用序列总线装置连接端口60的D+信号线、D-信号线、与地线连在一起。当然,设计端子50的外壳52与舌状物54需特别注意的是,当端子50插入通用序列总线装置连接端口60时,不可将通用序列总线装置连接端口60的总线电源VBUS与地线GND短路。
图4为本发明通用序列总线装置70通过其内的阳通用序列总线装置连接端口60与端子50连接的方块图。通用序列总线装置70还包含一先进先出寄存器62、一检测电路64、与一控制电路66,这些元件的连接方式与图2所示通用序列总线装置30中的元件的连接方式相同,如图所示,接点56本质上是用来将通用序列总线装置连接端口60的D+信号线与D-信号线接地。
假定通用序列总线装置70为一台需外界供给电源的喷墨打印机(inkjet printer),该喷墨打印机具有一阳通用序列总线连接端口,用来连接一计算机,该喷墨打印机具有两种操作模式,一C操作模式66c(正常打印模式)与一D操作模式66d(测试模式)。图4中还显示一外接电源供应器(external power supply)68,其是连接在通用序列总线装置70,用来提供通用序列总线装置70运作时所需的电力。
通常打印机70(也就上述的通用序列总线装置70)在制造后、出厂前会先进行测试的程序,首先,将端子50连接上打印机70,并将外接电源供应器68的电源开启,打印机70内的检测电路64此时并不会检测通用序列总线连接端口60的总线电源的电压,反而是通知控制电路66打印机70并未连接至一计算机,接着打印机70产生一短的拉升(short pull-high)脉冲至D+信号线与D-信号线,检测电路64就检测到该二信号线并未接地,随即控制电路66将打印机70设定为D操作模式66d,也就是测试模式,此时打印机70就被可测试人员(test operator)测试,并于此同时将该打印机的原始设定(default setting)设定在此打印机70中。另一方面,如果端子50在开机后并没有插在打印机70的通用序列总线连接端口60上,此时检测电路64就检测到D+信号线与D-信号线并未接地,控制电路66就相应地将打印机70切换成C操作模式66c并将其处于待机状态,以等待进一步连接至计算机。在此例子中,端子50是被用来将打印机70切换至D操作模式66d,其非为使用者而设计,纯粹是为了制造与测试的目的而存在。
需特别注意的是当端子50将D+信号线与D-信号线接地时,通用序列总线装置70也可为一高速、全速(full-speed)、或低速传输的装置。当使用在高速或全速传输的装置时,端子50可设计成只将D+信号线接地,但当用于低速传输的装置时,端子50可设计成只将D-信号线接地。
端子50的设计概念也可扩大为不仅仅是用来将信号线接地,例如一多用途端子还可提供在通用序列总线装置连接端口的各连接线间电阻或其他可量测的电力特性的元件。此外,该多用途端子可根据特定的程序从一个或多个通用序列总线连接端口上连接或移除以实现特定的功用。或者是,该端子也能是插头型式(plug type)的连结器,用来连接一阴通用序列总线装置连接端口(female USB device port)。请参考图5,图5为一通用序列总线装置90与另一刚好可插入该通用序列总线装置90的端子80,其中通用序列总线装置90包含一标准的B型装置连接端口92(standard type Bdevice port)。同样地,该端子80包含一非导电本体(body)82,外壳以金属包覆,壳体82内有一凹洞,其内设有一电接点84,电接点84的尺寸与位置是当端子80与B型装置连接端口92以机械的方式啮合时,正好将B型装置连接端口60的D+信号线、D-信号线、与地线连在一起。与先前所提到的端子50相同,也不能以不同的方向将端子80与B型装置连接端口啮合,同时啮合后也不能影响B型装置连接端口92的总线电源。以上这些可能的端子变化只是造就它来完成它的主要目的,也就是改变通用序列总线装置的操作模式。
先前提到的两个关于通用序列总线装置的例子只是为了清楚说明起见,并非仅局限在这两个例子。例如,端子尚可应用在计算机对计算机/储存装置的组合上用来使得测试模式更容易完成,当仅测试储存装置时,该端子又可同时保护未使用的通用序列总线连接端口免于灰尘或脏东西的侵害。本发明亦可藉着应用刚刚提到的检测方法与藉着不同的计算机、端子、与通用序列总线装置中未连接的连接端口共同完成更多的操作模式。
一般说来,多功能的通用序列总线装置可包含任意数量的通用序列总线装置连接端口,并且藉由计算机或被个别的电源供应器供应电源。每一连接端口的状态均可被检测电路根据总线电源VBUS、D+、D-信号线的状态所决定。每一连接端口均可连接至计算机、端子、或根据连接端口的设定状况而不接任何东西。根据连接端口的状态,通用序列总线装置中的控制电路控制通用序列总线装置的操作模式,在经过功能重新设定的动作之后,该操作模式的切换才算完成。本发明在本质上提供一可切换模式的多功能通用序列总线装置,致使每一台计算机视该多功能通用序列总线装置的每一操作模式为一特有的单功能通用序列总线装置。
相较于已知的技术,本发明的通用序列总线装置根据其上的连接端口是否连接于计算机、端子、或根本未接来自动改变操作模式,所以本发明的操作模式对使用者而言很方便,还因为本发明的通用序列总线装置较先前技术需要较少的先进先出寄存器,所以成本亦会降低。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求书所做的均等变化与修饰,皆应属本发明权利要求的涵盖范围。