通用串行总线复合装置及其实现方法

文档序号:7959611阅读:142来源:国知局
专利名称:通用串行总线复合装置及其实现方法
技术领域
本发明有关于一种通用串行总线(Universal Serial Bus,USB)复合装置,特别是有关于一种低生产成本与扩充性不受限制的USB复合装置及其实现方法。
背景技术
各种类型的通讯连接和通讯协定被用来串接在各元件间,让各个元件可以彼此互相通讯,通讯连接利用各种不同方法来控制指令和信息流向,例如,在一通讯连接中元件A可能当作一主元件而原件B为从元件,在这系统架构下,主元件会发一命令让从元件可进行通讯,若从元件没有接到这命令,即没有权力进行通讯,在这架构下,单一主元件控制整个系统指令和信息流向。另一种系统架构,没有主从元件之分,彼此均能发送指令和信息。
最近几年,制订一用来做通讯连接的特殊接口系统标准称为通用串行总线(Universal serial bus,USB),此种串行接口可以很简单的将各个周边设备串接到电脑系统,解决以往各种周边设备需以不同规格的接头来与电脑连接的困扰。一USB系统包括USB主机(Host)、USB装置(device)和USB总线互连(interconnect)所构成。其中USB主机部分负责指挥总线上数据传送时机及方向;USB装置分为两类,一是集线器装置(Hub),提供USB总线新连接点,一是功能装置(function),为提供系统服务的周边设备,例如,鼠标、键盘和打印机等等;USB总线的实际连结为一星状层次(tieredstar)结构,如图1所示,集线器为每一个星状连接的中心。
USB装置(集线器或功能装置)连上总线时,USB主机会指定一独一无二的地址给该装置,尔后USB主机会依此地址与该USB装置进行沟通,换言之每一个USB装置只会有一个地址。
USB装置中还包括终端(enddpoint)结构,每一个终端为USB装置里可唯一区分的部分,为USB主机和装置间数据传递时,于USB装置方面的数据输出或接收源。每一个USB装置可拥有一组终端,用于不同数据传输特性所需,可分为控制(control)、巨量数据(bulk)、中断(interrupt),和即时数据(isochronous)终端,除了控制终端为双向数据传递外,其余终端可进一步区分为输入或输出终端。
USB装置可拥有一组终端,不超过16个,作为实现装置功能之用,并给各个终端一唯一号码,称为终端号码。所以装置地址,终端号码和数据方向(输出或输入)的组合可使得每个终端在USB总线上得到唯一定址。
位于系统主机的装置驱动程序可通过系统提供的USB功能接口程序与USB装置沟通,执行该装置功能。亦即装置驱动程序和功能(function)是一一对应。每一个USB装置都需有一个对应功能程序于系统主机内,才能真正执行该装置所提供的功能于系统之中。为了提供USB“即插即用”的方便性,一些常用的功能的驱动软件已内建于操作系统中,当装置连上USB时,系统便可找到该内建软件,执行其功能,而无须另行安装软件,提高使用便利性。
基于实用性与成本考虑,常将多个USB功能整合在一起,例如键盘与鼠标合为一USB装置,称为多功能装置(Multi-function Device)。多功能装置常区分为组成装置(Composite Device)与复合装置(CompoundDevice)。
一常规组成装置20的内部构造图如图2所示,其内部结构基本上与一USB装置相同,具有一USB逻辑电路201(USB Logic)与一功能块202(Function Block)。其不同点在于,组成装置包含多个终端203,分别代表不同的功能。依据USB规格,一USB装置最多可具有16个终端,因此,一组成装置便可利用其中数个终端组成一功能,例如,将终端0和1组成一鼠标功能204,再利用其它数个终端构成另一功能,例如,终端0、2和3组成一键盘功能205。因此,以此设计方式,便可使一USB装置具有多种不同的功能。
然而,其缺点在于,此一组成装置在一USB系统中,对USB主机而言乃是属于一个USB装置,因此,此组成装置只会具有一个由USB主机所指定的地址(Address),亦即,其内建的多种功能是共用同一个USB地址与USB主机沟通。此方式与一般功能装置皆具有其独立的地址,并用以使USB主机识别其装置种类,进而载入其驱动程序的方法互异,因此,一组成装置将可能无法使用系统内建的标准驱动程序,而必须另行安装专为此项硬件装置所设计的驱动程序,方能使USB主机针对此组成装置的特定终端传送或接收数据。
此外,由于一USB装置最多只能具有16个终端,因此,一组成装置所能构成的功能数目,就显得相当有限。
请参见图3a及3b,图中所示为一键盘复合装置30,此种装置乃是属于另一种多功能装置,亦即,一常规复合装置。一复合装置代表一包含内置式集线器的功能装置,如图3a所示,此一常规复合装置从外表上看来是一个键盘装置,但是此一键盘复合装置30内部是由一键盘功能装置310以及一集线器装置320所构成(参见图3b)。因此,此一键盘复合装置30仍可提供多个USB连接端口304,305,使多个USB装置306,307可以通过此键盘复合装置30连接上USB总线。
在此常规复合装置中,键盘功能装置310与集线器装置320的电路系统,虽可制作于单一晶片上以节省制作成本,然而此二装置是分别为一独立的USB装置,各自具有一组USB装置的基本电路结构,亦即,各自具有一组USB逻辑电路311,321和功能块312,322。由于在复合装置中,其每一功能装置仍是属于一独立的USB装置,因此,每一功能装置皆具有其独立的USB地址,同时,USB主机亦可依其装置种类,载入系统内建的标准驱动程序,省去另行安装特定驱动程序的困扰。
然而,每一USB装置的逻辑电路(USB Logic)对一USB主机而言,皆代表一相同的USB接口,用以传输及接收消息,并进行信号格式的转换工作;而每一功能块则可代表每一装置内建的功能,如键盘、鼠标或硬盘等等。每一个USB装置的逻辑电路,基本上皆是相当类似的结构。
因此,复合装置的内建功能虽具有如一USB装置般可使用标准驱动程序的优点,然而,此类装置却明显具有多余电路的缺点。如图3b所示,此复合装置即具有二组USB逻辑电路。若是此一复合装置内欲再增加一功能装置,则此复合装置就会再增加一组USB逻辑电路。
综合以上所述,一常规组成装置(Composite Device)虽具有电路简化的优点,然其内建的功能却可能无法使用标准的驱动程序;而常规复合装置(Compound Device)的每一项内建功能,在使用上虽然皆具有如一般USB装置的便利性,然而此类装置却具有电路重复性与资源浪费的缺点。
发明概要因此,本发明的一主要目的是为提供一种复合装置,使多个功能装置得以通过同一组USB逻辑电路以连接至USB总线,其电路将如常规的组成装置般简明,但各个功能却可如常规复合装置般拥有独立性。
本发明的另一目的是为提供一种可规划的设计,让使用者依其不同应用及功能数目多寡来完成设计。
本发明的又一目的是为提供一种USB复合装置的实现方法,此装置不含内置式集线器,而以电路或软件来模拟集线器,使得一组独立的USB功能(元件)可通过共同的上行USB端口与主机相连,因而可在不影响装置功能、扩充性和即插即用的方便性下,达到降低生产成本的目的。
根据本发明,此一USB复合装置是包含一USB传输/接收器、一串行接口引擎(SIE)以及一电路系统,其中,此电路系统,其一端是连接至串行接口引擎,而其另一端则通过一微处理器或控制器连接至多个非USB接口,此一本身不具有如USB传输接收器及串行接口引擎的功能的电路系统,是用以储存并管理多个由一USB主机所指定的装置地址,并用以进行数据传输的工作。
此一电路系统包含一通用终端状态机制、一地址/终端管理机构以及一存储器模块,其中,此一地址/终端管理机构,是用以储存多个地址/终端设定,而本发明的USB复合装置,是通过此电路系统中的通用终端状态机制,依地址/终端管理机构所储存的各个终端的型式,执行USB规定的通信协定与USB主机沟通,而存储器模块,则用以缓冲传输中的数据。
此外,此电路系统中的地址/终端管理机构所储存的多个地址/终端设定中,是包含一组虚拟集线器的地址/终端设定,此组虚拟集线器的地址/终端设定,是用以作为此电路系统通过USB传输接收器、串行接口引擎以及一微处理机或控制器,执行集线器功能时所使用的地址/终端。
同时,本发明的USB复合装置的电路系统,还包含一终端变量缓冲器,用以储存多个终端的状态,其中,此终端变量缓冲器是由通用终端状态机制存取及更新。
而此电路系统的存储器模块则包含一数据缓冲区以及一存储器管理单元,其中,此一数据缓冲区,是用以缓冲传输中的数据;而一存储器管理单元,则是用以自数据缓冲区存取数据,此一存储器管理单元是包含一终端缓冲区设定机构,用以储存各个终端在该数据缓冲区中所配置的存储器数据,及其最大分组长度;以及一数据存取控制单元,此一数据存取控制单元是根据信号的终端号码,及终端缓冲区设定机构所给予的终端缓冲区配置,在数据缓冲区存取数据。
此外,本发明的USB复合装置的电路系统还包含一应用接口引擎,用以在该通用终端状态机制、该数据存取控制单元与此电路系统所连接的该多个非USB接口之间,传递信号及存取数据。
根据本发明,本发明亦提供了一种方法,使多个功能装置得以使用同一组终端号码连接至一USB主机,且各自具有独立的USB地址,此方法是包含下列步骤依序设定多个功能装置的物理终端及逻辑终端;储存此多个功能装置的物理终端设定;以一微处理机或控制器依序启动各个USB功能装置的地址/终端设定与USB主机沟通,再由USB主机指定一USB逻辑地址给各个功能装置;储存由USB主机指定的多个USB地址;将来自USB总线的每笔传输所指定的地址与所储存的多个USB逻辑地址进行比对,当比对正确时,进行逻辑/物理终端转换工作;以及再将信号传递给此物理终端所代表的功能装置。
此外,根据本发明,本发明亦提供一种虚拟集线器的方法,是包含下列步骤使用一地址/终端设定作为虚拟集线器的USB地址储存及终端设定;利用一USB传输/接收器传收USB主机的信号;利用一串行接口引擎进行传递信号的解码、编码及格式转换,同时在传输/接收数据时,进行循环冗余校验码的检查工作;以一微处理机或控制器通过软件或软件以集线器功能与USB主机沟通,USB主机会指定一USB地址给一虚拟集线器;当USB传输的地址指向此虚拟集线器时,以此微处理器或控制器依传输的内容作回应;以及利用此微处理机或控制器通过软件或软件管理或回报其他USB功能装置给USB主机,以维持USB的层状结构。


图1为USB系统的连接方式示意图;图2为一常规USB组成装置示意图;图3a为一常规键盘复合装置外部结构示意图;图3b为一常规键盘复合装置内部结构示意图;图4为本发明第1实施例的USB复合装置的内部结构示意图;图5为本发明第2实施例的USB复合装置的内部结构示意图;图6为本发明第3实施例的USB复合装置的内部结构示意图。
具体实施例方式
参见图4,图中所示为本发明第1实施例的USB复合装置示意图。本发明第1实施例的复合装置40主要包含一USB逻辑电路模块400以及一应用功能模块500。本发明的复合装置的USB逻辑电路模块400,利用一“资源统一分配管理”的方式加以设计,将原本制作于一USB复合装置中的复数组USB逻辑电路整合为一单一USB逻辑电路模块,使多个功能块得以通过同一组USB逻辑电路连接至USB总线,以解决常规USB复合装置会造成硬件资源浪费,和常规USB组成装置不能使用标准化驱动程序的缺点。
本发明第1实施例的复合装置40的USB逻辑电路模块400,就其功能而言,主要可以区分为USB物理层块410(USB Physical Layer Block)、USB连接层块420(USB Link Layer Block)、存储器管理单元430(MemoryManagement Unit)、数据缓冲区440(Memory Buffer Block)以及应用接口引擎450(Application Interface Engine)。
USB物理层块410是此一复合装置40实际连接上USB总线的连接点,包含一USB传输/接收器411(Transceiver)和一串行接口引擎412(SerialInterface Engine,SIE)。
USB连接层块420的主要工作为执行USB规格中的通讯协定,包含一通用终端状态机制421(Generic Endpoint State Machine)、一终端变量缓冲器422(Endpoint Variable Registers)、一地址/终端设定机构423(Address/Endpoint Configuration Mechanism)以及一终端设定机构424(Endpoint Configuration Mechanism)。
记忆管理单元430是依据来自USB连接层块420以及应用接口引擎450的信号,负责将数据存入数据缓冲区440,或从数据缓冲区440读出数据。此一存储器管理单元430包含一终端缓冲区设定机构431(MemoryConfiguration Mechanism of Endpoint)以及一数据存取控制单元432(Memory Access Control Unit)。
应用接口引擎450负责与连接层块420、存储器管理单元430以及应用功能模块500沟通,将USB总线上的状态通过事件或中断方式通知应用功能模块500,应用功能模块500再依事件的种类与应用接口引擎450传递数据,行使功能规格的工作。此一应用接口引擎450包含一事件控制模块451(Event Control Module)、一控制接口模块452(Control InterfaceModule)以及一数据通道模块453(Generic Data Path Module)。
而应用功能模块500则包含一微处理器510及一PS/2接口521、一串行端口接口522以及一IDE接口523。在本发明的复合装置中,微处理器的功能亦可以一微控制器加以执行。
本实施例的复合装置的内部结构已大致说明如前,以下,吾人将就此装置的操作方法及其内部结构的功能,配合图4作详细的说明。
首先,在应用功能模块500方面,若是有一键盘装置连接至PS/2接口521,一鼠标装置连接至串行端口接口522,以及一硬盘装置连接至IDE接口523,则微处理器510将根据连接层块420的地址/终端设定机构423中,所预先设定的复数组包含预设地址及终端的地址/终端设定,依序分配给键盘装置、鼠标装置以及硬盘装置。例如将一组地址/终端设定“2”,包含预设地址2及逻辑终端0、1、2,分配给键盘装置;一组地址/终端设定“3”,包含预设地址3及逻辑终端0、1,分配给鼠标装置;再将一组地址/终端设定“4”,包含预设地址4及逻辑终端0、1、2,分配给硬盘装置。此外,由于本发明的复合装置40是具有“虚拟集线器(Virtual Hub)”的功能,因此,微处理器510亦将分配一组地址/终端设定“1”,包含预设地址1及逻辑终端0、1供虚拟集线器使用。本发明的复合装置40用以虚拟集线器功能的方法,将会在后续的文字中加以说明。
之后,微处理器510将通过应用接口引擎450中的控制接口模块452,于数据缓冲区440中规划各个终端所属的缓冲区块,以在后续的传输动作当中,作为各个终端的数据缓冲区;同时,各个终端于数据缓冲区440中的设定数据,将会被储存于终端缓冲区设定机构431之中;此外,终端缓冲区设定机构431的功能,还包含用以储存各个终端于其数据缓冲区中的数据状态。
此外,微处理器510亦将通过控制接口模块452,连接至连接层块420中的通用终端状态机制421,将各个终端的设定,例如终端型式、最大分组长度等等,储存至连接层块420中的终端设定机构424。
当此复合装置40连接上USB总线时,USB主机将侦测到有一新的装置连接上此总线,同时发出一连串的USB命令,以识别并设定此装置。此时,物理层块410的传输/接收器411,会将USB总线上的信号转换为逻辑标准位的数字信号,之后,再将此笔信号传递至串行接口引擎412。此一传输/接收器411的功能,亦可将来自串行接口引擎412的数字信号转换为符合USB规格的信号,以传递至USB总线。
而串行接口引擎412的主要功能则包含,在接收模式时,负责将传递信号解码、将USB串行式数据改成并列式、做数据的循环冗余校验码(CyclicRedundancy Check Code)的检查工作,判定数据的正确性,并且将总线上的信号转换成具逻辑意义的分组(packet)传输至USB连接层块420中的通用终端状态机制421;而在传输模式时,串行接口引擎412可接受来自连接层块420的数据,将USB并列式数据转为串行式数据流,并将之编码,同时计算循环冗余校验码,产生同步信号,通过USB传输/接收器转成USB信号标准位传回USB主机。
当连接层块420中的通用终端状态机制421接收到来自USB主机的USB命令时,此一通用终端状态机制421会将此一信号传递给应用接口引擎450中的事件控制模块451,再由事件控制模块451将此一消息传递给微处理器510。此时,微处理器510是以预定虚拟集线器的终端及其设定回传至USB主机,使USB主机认为此一复合装置40为一USB集线器装置,并指定一USB地址给此虚拟集线器。此时,此一由USB主机所指定的USB地址将会填入此虚拟集线器的预设地址1,并与其对应的逻辑终端一起储存于地址/终端设定机构423之中。
地址/终端设定机构423的主要功能,是用以储存此复合装置所连接的每一个功能装置的地址与其所对应的终端,以及一组虚拟集线器的地址及其所属的终端。根据USB规格,每笔传递数据的最前端的识别信息,是为目标装置的地址和终端号码,以及用以说明传输种类的传输标记(token)。因此,当此复合装置40的物理层块410接收到来自USB总线的消息时,位于连接层块420中的通用终端状态机制421将会根据地址/终端设定机构423中所储存的地址/终端数据,与传递数据的识别信息进行比对,用以判别此笔数据的目标装置,是否为此复合装置40所连接的数个功能装置之一。
如前所述,当此复合装置40连接上一USB总线时,此装置将先获得由USB主机所指定的一虚拟集线器的地址。之后,USB主机将会以轮询的方式,定期地探询此虚拟集线器的状态。由于此一虚拟集线器的地址/终端已储存于地址/终端设定机构423之中,因此USB主机所欲传递至此虚拟集线器的消息,例如,探询命令,其前端的地址/终端信息将会由通用终端状态机制421加以识别,并且在确认其与地址/终端设定“1”所包含的地址/终端相同时(亦即,与虚拟集线器的地址/终端相同),将此消息通过事件控制模块451,以通知微处理器510。而当微处理器510接收到属于地址/终端设定“1”的事件时,其将可识别出此笔信号乃是属于虚拟集线器的消息,并且就消息的内容做回应的动作。在本实施例的复合装置40中,并没有专为USB集线器所设计的电路,而所有与集线器功能相关的动作,是皆由微处理器510通过软件或软件加以模拟及执行。
因此,藉由每一次的探询动作,微处理器510将以集线器的角色通过控制接口模块452、通用状态机制421,以及串行接口引擎412与USB传输接收器411,陆续地回报USB主机有新功能装置加入,而由USB主机识别该装置后指定USB地址,将前述的键盘装置、鼠标装置以及硬盘装置加入USB系统;而在USB主机方面,则会以为这些新加入的装置是连接在前述的虚拟集线器之下,维持USB连结所须的集线器与功能装置的连结从属关系。因此,USB主机会依据微处理器510每次回传的装置的终端及设定,依序指定一USB地址给各个装置,亦即,键盘装置、鼠标装置及硬盘装置皆会具有各自独立的USB地址,同时,每一装置的地址及其所对应的终端都将会被储存于地址/终端设定机构423之中。
此外,在连接层块420中,终端变量缓冲器422是用以储存各个终端的状态,并由通用终端状态机制421进行存取及更新。因此,当USB主机针对此复合装置40的虚拟集线器,发出各个装置状态的探询命令时,微处理器510将可通过通用终端状态机制421,自终端变量缓冲器422中读取各个终端的最新状态,以回应USB主机。所以,对USB主机而言,此一复合装置40是为一USB集线器装置与其所连接的一键盘装置、一鼠标装置以及一硬盘装置,亦即,此一复合装置40仍可维持USB规格的星状层次结构。
以上所述,为本实施例的复合装置40连接至一USB总线时,所进行的接口初始化的动作,以及此复合装置40用以虚拟集线器功能的方法。以下,吾人将藉由数据的传输动作,针对连接层块420与存储器管理单元430、数据缓冲区440以及应用接口引擎450间的互动关系与各个块的功能,加以详细地说明。
首先,当物理层块410接收一笔来自USB主机的数据时,通用终端状态机制421将会先行利用地址/终端设定机构423中所储存的地址/终端,与此笔数据前端的识别信息进行比对,并将结果通知物理层块410。当地址及终端号码比对正确时,亦即,确认此笔数据的目标装置为本实施例的复合装置的数个功能装置之一时,通用终端状态机制421会自终端设定机构424中,将此终端号码的终端设定取出,以及自终端变量缓冲器422中读取此终端先前的状态,并根据终端的型式,例如,中断型传输(Interrupt)、巨量型传输(Bulk)、即时型传输(Isochronous)或是控制型传输(Control),通过物理层块410与USB主机沟通及传递数据;同时,当地址及终端号码比对正确时,通用终端状态机制421亦会将此组地址/终端设定号码及终端号码通知存储器管理单元430,以及应用接口引擎450。
以下,吾人先就存储器管理单元430以及应用接口引擎450的功能加以说明。
记忆管理单元430包括终端数据缓冲区设定机构431(MemoryConfiguration of Endpoint),数据存取控制单元432(Memory AccessControl Unit)。
终端数据缓冲区设定机构431,是用以储存各个终端所分配到的缓冲区块,以及其于缓冲区中的数据状态等等。当数据存取控制单元432接收到来自通用终端状态机制421的触发信号、地址/终端设定号码及其终端号码时,会将该终端的设定及变量载入,并且自终端数据缓冲区设定机构431中,将此终端目前于数据缓冲区的数据状态取出,用以告知通用终端状态机制421,使其判断如何与USB主机沟通。如果数据可上传,数据存取控制单元431会自数据缓冲区440将数据读出,并通过通用终端状态机制421上传至USB主机;如果数据可下传,终端状态机制421会将数据传至数据存取控制单元432,再由其存入该终端在数据缓冲区440的所属缓冲区块。此外,记忆管理单元432同时会将此数据的缓冲区数据状态向应用接口引擎450中的事件控制模块451报告。
应用接口引擎450包括事件控制模块451(Event control Module),控制接口模块452(Control Interface Module),数据通道模块453(Genericdata path Module)。
其中,事件控制模块451,是用以接收来自通用终端状态机制421和数据存取控制单元432的事件,将之编码后通知应用功能模块500的微处理器510,而微处理器510将会依据地址/终端设定号码及事件种类、USB命令,以及所收到的数据或数据需求等做回应。
控制接口模块452提供三种主要功能,其一为使应用功能模块500所连接的多个装置于初始化时,通过此接口规划前述各项设定,例如,地址/终端设定号码、终端型式以及缓冲区块等等;其二为,微处理器510可通过此接口指挥USB连接层420采取必要动作以与USB主机沟通,或读取各终端的状态,来决定所应采取的回应动作;其三为,微处理器510可通过此接口和记忆管理单元430传递数据,如,读取USB命令参数,解码命令种类或填入USB所要求的数据等。
数据通道模块453,是用以使应用功能模块500所连接的多个装置通过此接口来存取大量数据,对于某些功能的执行动作,例如读取硬盘数据时,或传递数据,此单元可使功能装置直接经由记忆管理单元430读取或存入数据缓冲区数据,而不需微处理器510的介入,进而提高传输效率。
前述的内容已提及,当通用终端状态机制421进行地址及终端号码比对的结果与地址/终端设定机构内所储存的数据相符时,会将此地址/终端设定号码及终端号码通知存储器管理单元430,以及应用接口引擎450。在存储器管理单元430中,是由数据存取控制单元432接收通用终端状态机制421所传送的信号。同时,根据此一消息,数据存取控制单元432可将此终端于数据缓冲区440的设定,自终端缓冲区设定机构431中取出,以便将通用终端状态机制421后续所传送的数据,存入此终端所属的缓冲区块。
而在应用接口引擎中,通用终端状态机制421是将此一消息传递至事件控制模块451。之后,事件控制模块451会将包含此地址/终端设定号码的消息传递至微处理器510,再由微处理器510识别此地址/终端设定号码所属的功能装置为何。若是此地址/终端设定号码所属的装置为硬盘装置,则微处理器510将可通过控制接口模块510与数据存取控制单元432沟通,以自数据缓冲区440中将数据读出,并传回硬盘装置。
此外,功能装置,例如硬盘装置,亦可利用数据通道模块453直接与数据存取控制单元沟通,直接与数据缓冲区440进行数据的大量存取动作。如前所述,此一数据通道模块453的设计将可有效地提高传输效率。
以上所述,为本发明第1实施例的复合装置的内部结构与其功能的说明。藉由本发明第1实施例的设计方法,此一复合装置将可通过其内部整合式的电路系统,模拟一USB集线器的功能,使此装置所连接的多个功能装置皆具有其独立的USB地址,因此对一USB主机而言,此一复合装置乃是一USB集线器与连接至其上的多个USB功能装置的组合。因此,本实施例的复合装置所连接的每一个功能装置,皆可使用系统内建的标准化驱动程序,具有USB“即插即用”的功能;此外,本实施例的复合装置的USB逻辑电路模块,是利用一“资源统一分配管理”的方式加以设计,将原本制作于一USB复合装置中的复数组USB逻辑电路,整合为一单一USB逻辑电路模块,使多个功能块得以通过同一组USB逻辑电路连接至USB总线。此一设计,将可避免常规复合装置中,电路重复性的缺点,同时,更可大幅地降低其制作成本。
参见图5,图中所示为本发明第2实施例的USB复合装置示意图。此一复合装置50具有一USB逻辑电路模块600与应用功能模块700。本实施例的复合装置的USB逻辑电路模块600,与第1实施例的结构类似,同样具有物理层块610、连接层块620、存储器管理单元630、数据缓冲区640以及应用接口引擎650。
其中,物理层块亦包含一USB传输接收器611及一串行接口引擎612,而其功能皆与第1实施例相同,因此,在此不再赘述。
而本实施例的连接层块620,则与第1实施例稍有不同之处。由图5可见,此一连接层块620除了一通用终端状态机制621、一终端变量缓冲器622、一地址/终端设定机构623之外,尚具有一逻辑/物理终端转换模块624(Logical/Physical Endpoint Translation Module)与一物理终端设定机构625(Physical Endpoint Configuration Mechanism)。
同时,本实施例的存储器管理单元630,除了数据存取控制单元632外,本实施例是以一物理终端缓冲区设定机构631(Memory ConfigurationMechanism of Physical Endpoint)取代第1实施例的终端缓冲区设定机构431。
此外,由图中可见,本实施例的应用功能模块700,一共包含7个接口一PS/2接口721、一软盘机接口722、二个硬盘机接口723,724、二个串行端口接口725,726以及一并列端口接口727。本发明第2实施例的复合装置所能连接的功能装置的种类及数目,并不似第1实施例般,受限于地址与终端间固定的配置,而只能连接特定的功能装置及其个数。在第1实施例中,微处理器510是以分配给各个功能装置的地址/终端设定,包含地址与终端号码,作为识别各个功能与规划数据缓冲区之用。因此,用以分配给各个功能装置的设定,例如地址/终端设定“2”是包含预设地址2和固定的逻辑终端0、1、2,将会限制其可连接的装置功能。因此,在第1实施例中,其应用功能模块所能连接的功能装置的数目及种类,就会因此而受到限制。
本发明第2实施例的USB复合装置50,将提供一种方法,使此复合装置50不但可以具有如第1实施例的复合装置般的整合式的USB逻辑电路系统,以及具有USB装置“即插即用”的优点,同时亦可以克服其组合功能种类及数目受限的问题。以下,吾人将就第2实施例的特色加以说明。
首先,位于应用功能模块中的微处理器710将就其7个接口所连接的功能装置,视个别装置的需求,依序规划一组物理终端号码给各个功能装置。例如,将物理终端号码0、1规划给连接至PS/2接口721的鼠标装置并对应至其逻辑终端0、1,将物理终端号码2、3、4规划给连接至软盘机接口722的软盘机装置并对应至其逻辑终端0、1、2,以及将物理终端号码5、6、7规划给连接至硬盘机接口723的硬盘机装置并对应至其逻辑终端0、1、2等等;此外,微处理机710亦会另行规划一组虚拟集线器的物理终端号码,以便于在此复合装置虚拟一集线器功能时所使用。同时,微处理器710亦会通过控制接口模块652,以及通用终端状态机制621将各个功能装置的物理终端设定,例如,终端型式及最大分组长度等等,储存于连接层块中的物理终端设定机构625之中。
上述的物理终端与逻辑终端对应的方法,使得各个地址,亦即功能装置,可以配置的终端种类及数目得以依该功能装置的特性作任意的规划,提高本发明于应用时的自由度。
在本实施例中,“物理终端号码”是为微处理器710用以识别各个功能装置的识别数据,而非如实施例一以地址/终端设定,包含地址与终端号码,作为各个功能装置的识别数据。
接着,与第1实施例的步骤类似,微处理机710将以各个功能装置的物理终端号码,通过应用接口引擎650中的控制接口模块652,规划各个物理终端于数据缓冲区640中的缓冲区块。同时,在完成规划动作时,将各个物理终端于数据缓冲区640的设定数据,储存于物理终端缓冲区设定机构631之中。
当此复合装置50连接上USB总线时,USB主机将侦测到有一新的装置连接上此总线,同时发出一连串的USB命令,以识别并设定此装置。此时,物理层块610会将此一消息传递至连接层块620的通用终端状态机制621,再由通用终端状态机制621将此消息传递至事件控制模块651。之后,事件控制模块651会将此一消息传递至微处理器710。此时,微处理器710将以一组物理终端号码作为一虚拟集线器的逻辑终端,并将逻辑终端与虚拟集线器的设定一起回传至USB主机,因此,USB主机会认为此复合装置50为一集线器装置,而指定一USB地址给此虚拟集线器。此一虚拟集线器的USB地址,以及其逻辑终端号码与物理终端号码的对应关系,将会被一起储存位于地址/终端设定机构623之中。
在本实施例的连接层块620中,终端变量缓冲器622是用以储存各个物理终端的状态,并由通用终端状态机制621进行存取及更新。而逻辑/物理终端转换模块624,是用以进行逻辑/物理终端号码的转换工作,以利微处理器710就其物理终端号码识别其所代表的功能装置。
之后,USB主机将会以轮询的方式,定期地探询此虚拟集线器的状态。由于此一虚拟集线器的逻辑地址/终端已储存于地址/终端设定机构623之中,因此USB主机所欲传递至此虚拟集线器的消息,例如,探询命令,其前端的逻辑地址/终端信息将会由通用终端状态机制621加以识别,并在确认此逻辑地址/终端是属于虚拟集线器时,由逻辑/物理终端转换模块624将其逻辑终端转换为其物理终端。之后,通用终端状态机制621会将此一物理终端号码通过事件控制模块651,以通知微处理器710。在本实施例的复合装置50中,亦没有专为USB集线器所设计的电路,而所有与集线器功能相关的动作,是皆由微处理器710通过软件或软件加以模拟及执行。
藉由每一次的探询动作,微处理器710是以集线器的角色与USB主机沟通,依序回报有新的装置连接,而USB主机将依据此一消息对此功能装置启动识别程序(Enumeration),完成后依序指定一USB地址给每一功能装置,而每一功能装置的USB地址及其逻辑终端与物理终端的对应关系,亦将被储存位于地址/终端设定机构623之中。举例来说,微处理器710是以物理终端号码2、3、4对应一软盘机装置的逻辑终端0、1、2,以回应USB主机的探询,并获得一USB地址;之后,同样以物理终端号码5、6、7对应一硬盘机装置的逻辑终端0、1、2,以回应USB主机的探询,以获得一USB地址。由于每一功能装置的USB地址及其逻辑终端与物理终端的对应关系,会被储存于地址/终端设定机构623之中,所以,本实施例的复合装置所连接的多个功能装置,虽然使用相同的逻辑终端号码,但是,微处理器710仍可就其USB地址,以及此地址的逻辑终端与物理终端的对应关系,正确地识别每一地址/终端所代表的功能装置。亦即,本实施例所提出的逻辑/物理终端的设定与转换的方式,将可以使使用者视其需求,扩充其功能装置的种类与数目,而不受其终端数目的限制。
因此,本实施例的USB复合装置不但具有如本发明第一实施例的复合装置的优点,同时,更具有可扩充性的特色,使此USB复合装置用途更广、更具有便利性。
参见图6,图中所示为本发明第3实施例的USB复合装置示意图。由图中可见,本实施例的USB复合装置60内部的主要结构皆与第2实施例相同。其不同之处在于,本实施例的USB复合装置60还包含了一信号增强机构920(Repeater),以及一组连接/移除侦测电路930(Connection/RemoveDetecting Circuit)。以下,吾人将就信号增强机构920以及连接移除侦测电路930的用途,配合图6加以说明。
由图中可见,由一USB主机所发出的消息将可通过USB传输接收器811,传递至信号增强机构920,而此一信号增强机构920将可执行如USB集线器内的信号增强器的功能;此外,本实施例的USB复合装置,亦设置了一组连接移除侦测电路930,此一连接移除侦测电路是连接至此装置的下行连接端口62(Down Stream Port),用以侦测外接USB装置的连接或移除的动作。(注在本实施例的USB复合装置60以及第1及第2实施例的复合装置40,50中,皆可具有另一组USB连接移除侦测电路,用以连接至其上行连接端口41,51及61(Up Stream Port),使一USB主机或集线器得以侦测此装置的连接或移除动作,但为了简化的缘故,皆未将此一电路绘制于图中。)当有一USB装置连接至下行端口62时,连接/移除侦测电路930将可侦测到电位或电流的变化,并将此消息通知微处理器910,此时,此USB复合装置60的微处理器910亦如第1及第2实施例的微处理器般,可模拟一USB集线器的动作,将此一新装置的消息,通过USB逻辑电路模块800通知USB主机,使此一USB装置连接至此一USB总线。
因此,依据此一方式,本实施例的USB复合装置60将可再增加多个用以连接至USB装置的下行连接端口,使多个USB装置得以通过本实施例的USB复合装置连接至USB总线。
虽然本发明较佳的实施例已使用特殊方式描述如前,但此处必须明白的是,前述例子仅是为了方便说明之用,而其仍可在不背离下列权利要求的精神与范围内,作多样的修改与变化。
权利要求
1.一种通用串行总线复合装置,用以连接多个功能装置至一通用串行总线,且使所连接的功能装置具有通用串行总线即插即用的功能,此装置包含一通用串行总线传输/接收器,用以作为该多个功能装置与一通用串行总线的连接点,进行信号传输/接收及信号格式转换工作;一串行接口引擎,用以将接收的信号解码、串行式数据改成并行式,及将欲传输的并列式数据改成串行式,并将其编码,同时在传输/接收数据时,进行循环冗余校验码的检查工作;以及一电路系统,其一端连接于该串行接口引擎,而其另一端通过一微处理器或控制器连接至多个非通用串行总线接口,此一本身不具有如该通用串行总线传输接收器及该串行接口引擎的功能的电路系统,用以储存并管理多个由一通用串行总线主机所指定的装置地址,并用以进行数据传输工作。
2.如权利要求1的通用串行总线复合装置,其中,该电路系统包含一通用终端状态机制;一地址/终端管理机构,用以储存多个地址/终端设定,其中,此通用串行总线复合装置通过该通用终端状态机制,依该地址/终端管理机构所储存的各个终端的型式,执行通用串行总线规定的通信协定与通用串行总线主机沟通;以及一存储器模块,用以缓冲传输中的数据。
3.如权利要求2的通用串行总线复合装置,其中,该地址/终端管理机构所储存的该多个地址/终端设定中,包含一组虚拟集线器的地址/终端设定,此组虚拟集线器的地址/终端设定,用以作为该电路系统通过该通用串行总线传输接收器、该串行接口引擎以及一微处理机或控制器,执行集线器功能时所使用的地址/终端。
4.如权利要求2的通用串行总线复合装置,其中,该电路系统还包含一终端变量缓冲器,用以储存多个终端的状态,其中,此终端变量缓冲器由该通用终端状态机制存取及更新。
5.如权利要求4的通用串行总线复合装置,其中,该存储器模块包含一数据缓冲区,用以缓冲传输中的数据;及一存储器管理单元,用以自该数据缓冲区存取数据,包含一终端缓冲区设定机构,用以储存各个终端在该数据缓冲区中所配置的存储器数据,及其最大分组长度;以及一数据存取控制单元,此数据存取控制单元根据信号的终端号码,及该终端缓冲区设定机构所给予的终端缓冲区配置,在该数据缓冲区存取数据。
6.如权利要求5的通用串行总线复合装置,其中,该电路系统还包含一应用接口引擎,用以在该通用终端状态机制、该数据存取控制单元与此电路系统所连接的该多个非通用串行总线接口之间,传递信号及存取数据。
7.如权利要求2的通用串行总线复合装置,其中,该地址/终端管理机构包含一地址/终端设定机构,用以储存由一通用串行总线主机所指定的多个逻辑地址,以及每一逻辑地址的所有逻辑终端与物理终端的对应关系,其中,该通用终端状态机制利用该多个逻辑地址,判断此通用串行总线复合装置所连接的多个装置是否为通用串行总线主机传输数据的指定接收或传送者;一物理终端设定机构,用以储存各个物理终端的型式、最大分组长度,以及各个物理终端在该存储器模块中所配置的存储器;以及一逻辑/物理转换模块,用以进行此通用串行总线复合装置所连接的多个装置的逻辑/物理终端转换。
8.如权利要求7的通用串行总线复合装置,其中,该地址/终端设定机构所储存的多个逻辑地址中,包含一组虚拟集线器的逻辑地址及其所有逻辑终端与物理终端的对应关系,其中,此组虚拟集线器的地址/终端设定,用以作为该电路系统通过该通用串行总线传输接收器、该串行接口引擎以及一微处理机或控制器,执行集线器功能时所使用的地址/终端。
9.如权利要求7的通用串行总线复合装置,其中,该电路系统还包含一终端变量缓冲器,用以储存各个物理终端的状态,其中,此终端变量缓冲器由该通用终端状态机制存取及更新。
10.如权利要求9的通用串行总线复合装置,其中,该存储器模块包含一数据缓冲区,用以缓冲传输中的数据;及一存储器管理单元,用以自该数据缓冲区存取数据,包含一物理终端缓冲区设定机构,用以储存各个物理终端在该数据缓冲区中所配置的存储器数据,及其最大分组长度;以及一数据存取控制单元,此数据存取控制单元根据信号的物理终端号码,及该物理端缓冲区设定机构所给予的物理终端缓冲区配置,在该数据缓冲区存取数据。
11.如权利要求10的通用串行总线复合装置,其中,该电路系统还包含一应用接口引擎,用以在该通用终端状态机制、该数据存取控制单元与此通用串行总线复合装置所连接的多个接口之间,传递信号及存取数据。
12.如权利要求11的通用串行总线复合装置,其中,该应用接口引擎包含一事件控制模块,用以将接收自该通用终端状态机制及该数据存取控制单元因通用串行总线通讯所产生的事件,将该事件传递至该物理终端号码所属的装置;以及一控制接口模块,用以控制或设定内部的缓冲器,以及与存储器管理单元进行数据传递;一数据通道模块,用以存取大量数据,以直接数据存取(DMA)的方式在数据缓冲区及该电路系统所连接的多个接口之间传输数据。
13.如权利要求1的通用串行总线复合装置的一种电路系统,此电路系统包含一通用终端状态机制;一地址/终端管理机构,用以储存多个地址/终端设定,其中,该通用终端状态机制,依此地址/终端管理机构所储存的各个终端的型式,执行通用串行总线规定的通信协定与一通用串行总线主机沟通;以及一终端变量缓冲器,用以储存各个终端的状态,其中,此终端变量缓冲器由该通用终端状态机制存取及更新。
14.如权利要求13的电路系统,其中,该电路系统还包含一数据缓冲区,用以缓冲传输中的数据;及一存储器管理单元,用以自该数据缓冲区存取数据,包含一终端缓冲区设定机构,用以储存各个终端在该数据缓冲区中所配置的存储器数据,及其最大分组长度;以及一数据存取控制单元,此数据存取控制单元根据信号的终端号码,及该终端缓冲区设定机构所给予的终端缓冲区配置,在该数据缓冲区存取数据。
15.如权利要求14的电路系统,其中,该电路系统还包含一应用接口引擎,用以在该通用终端状态机制、该数据存取控制单元与多个输入/输出接口之间,传递信号及存取数据。
16.如权利要求6或12的通用串行总线复合装置,其中,该装置还包含一微处理器或控制器。
17.如权利要求6或12的通用串行总线复合装置,其中,该通用串行总线传输接收器、该串行接口引擎以及该电路系统皆制作于同一单晶片上。
18.如权利要求6或12的通用串行总线复合装置,其中,该装置还包含一信号增强机构,用以在一通用串行总线主机与此通用串行总线复合装置所连接的通用串行总线功能装置之间传递上传及下行的通用串行总线信号;以及一连接移除侦测电路,用以侦测通用串行总线连接端口的连接或移除状态,其中,该信号增强机构及该连接移除侦测电路的设置,用以使此通用串行总线复合装置得以再提供多个通用串行总线连接端口。
19.一种方法,使多个功能装置得以共用同一组终端号码连接至一通用串行总线主机且各自具有独立的通用串行总线地址,包含下列步骤依序设定多个功能装置的逻辑终端及逻辑/物理终端的对应关系;储存该多个功能装置的物理终端设定;以一微处理机或控制器依序启动各个通用串行总线功能装置的地址/终端设定与通用串行总线主机沟通,再由通用串行总线主机指定一通用串行总线逻辑地址给各个功能装置;储存由通用串行总线主机指定的该多个通用串行总线地址;将来自通用串行总线的每笔传输所指定的地址与该多个通用串行总线逻辑地址进行比对,当比对正确时,进行逻辑/物理终端转换工作;以及再将信号传递给该物理终端所代表的功能装置。
20.一种虚拟集线器的方法,是包含下列步骤使用一地址/终端设定作为虚拟集线器的通用串行总线地址储存及终端设定;利用一通用串行总线传输/接收器传收通用串行总线主机的信号;利用一串行接口引擎进行传递信号的解码、编码及格式转换,同时在传输/接收数据时,进行循环冗余校验码的检查工作;以一微处理机或控制器通过软件或软件以集线器功能与通用串行总线主机沟通,通用串行总线主机会指定一通用串行总线地址给该虚拟集线器;当通用串行总线传输的地址指向该集线器时,以该微处理器或控制器依传输的内容作回应;以及以该微处理机或该控制器通过软件或软件管理或回报其他通用串行总线功能装置给通用串行总线主机,以维持通用串行总线的层状结构。
21.一种通用串行总线复合装置的实现方法,此装置是用以连接至少两个不具有通用串行总线逻辑电路的功能装置至一通用串行总线,且使所连接的功能装置具有通用串行总线即插即用的功能,此方法是包含下列步骤设置一物理层块,用以连接一通用串行总线,进行信号的接收或传输、格式转换、解码以及循环冗余校验码(Cyclic Redundancy Check Code)的工作;设置一连接层块,接收来自该物理层的数据,进行地址/终端的比对工作,以及依各终端的状态与通用串行总线主机执行通信协定的沟通;设置一存储器管理单元,接收来自该连接层的终端号码,并依此终端号码进行数据的读取或储存工作;设置一应用接口引擎,接收来自该连接层及该存储器管理单元的信号或数据,与应用单元执行消息或数据的传递;及设置一数据缓冲区,储存各个终端的缓冲数据。
22.根据权利要求21的方法,其中,设置该物理层块的步骤还包含以一通用串行总线传输/接收器传输或接收信号,并进行信号的格式转换工作;及以一串行接口引擎将接收的信号解码、串行式数据改成并列式,及将欲传输的并列式数据改成串行式,并将之编码,同时在传输/接收数据时,进行循环冗余校验码的检查工作。
23.根据权利要求21的方法,其中,设置该连接层块的步骤还包含以一终端变量缓冲器,用以储存所连接的通用串行总线功能装置的各个终端状态;以一通用终端状态机制,用以存取及更新该终端变量缓冲器,并依该终端的型式,执行通用串行总线规定的通信协定与通用串行总线主机沟通;以一地址/终端设定机构储存由通用串行总线主机所指定的地址及该功能装置对应的终端;以一物理终端设定机构储存物理终端及其终端设定;及以一逻辑/物理终端转换器进行逻辑终端与物理终端的转换工作。
24.根据权利要求21的方法,其中,设置该存储器管理单元的步骤还包含以一物理终端数据缓冲区设定机构,纪录各物理终端所分配的数据缓冲区块及其数据状态;以及以一数据存取控制单元,自该物理终端数据缓冲区设定内,读取各物理终端的数据缓冲区块及数据状态,并将数据存入其数据缓冲区块,或将数据自其数据缓冲区块读出。
25.根据权利要求21的方法,其中,设置该应用接口引擎的步骤还包含以一事件控制模块,将接收自该通用终端状态机制及该数据存取控制单元因通用串行总线通讯所产生的事件,将该事件连同该物理终端号码通知应用单元中所代表的功能装置;以一控制接口模块,控制或设定内部的缓冲器,以及与存储器管理单元进行数据传递;及以一数据通道模块,存取大量数据,以直接数据存取的方式在数据缓冲区及应用单元间传输数据。
26.如权利要求21的方法,其中,还包含使此装置得以再提供多个通用串行总线连接端口的步骤,是包含以一信号增强机构,传递上传及下行的通用串行总线信号于通用串行总线主机及所连接的通用串行总线功能装置之间;及以一连接/移除侦测电路,侦测通用串行总线连接端口连接或移除的状态。
全文摘要
一种通用串行总线(USB)复合装置及其实现方法。此一USB复合装置不含内置式集线器,而是以电路或软件来模拟集线器,使得一组独立的功能装置可共同通过同一组USB逻辑电路模块连接至USB总线,因而可在不影响装置功能,扩充性和即插即用的方便性下,达到降低生产成本的目的。
文档编号H04L12/40GK1417985SQ01137820
公开日2003年5月14日 申请日期2001年11月8日 优先权日2001年11月8日
发明者吴文珍, 周文华 申请人:旺玖科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1