Usb通信控制装置,usb通信系统及usb通信控制方法

文档序号:7696227阅读:176来源:国知局
专利名称:Usb通信控制装置,usb通信系统及usb通信控制方法
技术领域
本发明涉及USB(通用串行总线)设备之间的通信控制装置,USB通信系统,以及通信控制方法。
设备可以直接耦合到主机或是连到hub的下游上。hub也能够以类似于通用设备的方式直接耦合到主机,以及连到hub的下游上。
在USB连接中,主机与设备之间的关系是不对称的。换言之,所有的通信由主机启动,而设备响应由主机所启动的通信。
因此,从主机发向设备的通信包被经由hub贯穿整个设备树发送。该设备查看包含在所述通信包内的一个地址字段,并在其识别出指定它的通信后向主机返回一个响应。在该事件中的响应包经由hub在上游方向上被转发。
为了使用一个设备,主机在一对一的基础上与该设备通信。
USB上主机与一个设备之间的一对一虚拟通信路径被称为“管道”。如图2所示,主机与设备之间的通信被划分为控制型、成批型、中断型以及等时型。
用于从主机向设备发送数据的通信被称为“出”,而用于主机从设备接收数据的通信被称为“进”。
CRC(循环冗余码)被加到USB通信包内,这样接收侧就能够通过校验数据和CRC来检测所述数据是否能被正确地接收。在“握手”通信的一个确定类型中,定义了一个协议以用于在由CRC校验检测到错误时执行重发。
对于控制型通信和成批型通信,一个恒定带宽被共同分配给二者,这样不能为每个管道确保吞吐量或等待时间。另一方面,在中断型中对于各个管道确保了最坏情况下的等待时间,而在等时型中分配给每帧的带宽被确保。等待时间以及带宽的管理是由主机执行的。主机还根据分配的带宽控制通信的调度,并且在由“握手”检测到通信错误时控制重发。主机还在中断型和等时型中每一帧(1ms)发送一个SOF(帧起始)包,该包是通信的一个定时单元。
从主机接收到通信包后,设备执行对主机的“握手”响应,解释来自主机的“握手”,并响应来自主机的重发请求。
主机及设备应当提供的功能在图3示出。如图3所示,作为应当在USB和设备中提供的总线级功能,主机执行用于“握手”响应和解释、重发、带宽分配、通信调度、SOF传送、以及设备的连接/断开检测中每一个的总线级处理,而设备执行用于“握手”响应和解释以及重发响应的总线级处理。
一般地,个人计算机或具有CPU的个人计算机等同物(下文称作“PC”)被用作为主机。PC运行相应于内置USB主控制器(硬件)的系统软件以实现前述的总线级处理。该系统软件管理等待时间及带宽分配,USB主控制器以软件操作为基础执行通信调度,以及在检测到错误时的重发。
在下文中,将对由常规主机执行的设备连接/断开检测处理进行说明。
当一个设备被连到设备树上的任何地方或从设备树上的任何地方断开时,这一事件被检测为在那一位置处hub端口中的端口状态变化。
图4示出用于检测端口状态变化的处理,该处理由主机对各个hub周期性地执行。该主机还通过直接检测端口状态变化来执行对其中所具有的端口的类似处理。
所有的hub均具有位于它们自己与主机之间的一个控制管道(控制型)和一个状态变化管道(中断IN型)。主机经由状态变化管道周期性地向hub发送数据读取请求(步骤S41)。为响应该请求,当状态变化时,hub应答一个状态变化。若收到状态变化应答(步骤S42的“是”),主机读端口状态(步骤S43)。主机在步骤S44确定该状态变化是否表示一个设备被连接。当主机检测到一个设备被连接时,主机就存储该事件,并向相关hub的控制管道发送端口复位信号(步骤S45)。另一方面,当检测到没有设备连接时,主机就在步骤S46确定复位是否完成。当完成复位时,主机在步骤S47存储一个设备连接。当未完成复位时,主机就在步骤S48确定该状态变化是否涉及一个断开。若检测到一个设备断开,主机在步骤S49存储该事件。经由控制管道执行从主机对一个hub的操作。
图5表示常规枚举(设备识别)处理的一个示意图。该枚举以检测连接到hub端口(包括主机端口)的设备作为开始,该设备已经加电。经由hub状态变化管道检测在下游hub上的设备连接。在接收到来自上游的复位信号时,设备以被认为是指定其自身的缺省地址(地址0)开始工作,并由发自主机的一个控制命令分配一个唯一的设备地址以便随后工作。
具体地,在步骤S50主机检测设备速度,并在步骤S51给该设备分配一个地址。主机需要记录与总线拓扑结构对应的树形中的各个设备有关的信息,以为设备断开时的后处理作准备,稍后将进行描述。所记录的信息除了一个用于获得设备的描述符外,还包括用于调用用于基于软件的后处理的驱动程序软件的信息。由于主机获得描述符的一个变化(步骤S52),因此主机更新设备树信息(步骤S53)。然后,主机确定是一个hub还是一个设备被连接(步骤S54)。当连接的是hub时,主机装入一个hub驱动程序(步骤S55),设置一个端口状态变化管道(步骤S56),并对相关的hub端口加电(步骤S57)。另一方面,当主机确定是一个设备被连接时,主机就选择并装入一个设备驱动程序(步骤S58),并初始化该设备以便使用(步骤S59)。
下面,图6表示常规的设备断开处理。
主机的系统软件在主存储器上存储对应于总线拓扑结构的设备树信息,这样当设备在总线上的某处被断开时,主机就能够识别断开位置(步骤S61)。主机的系统软件执行与受断开潜在影响的树的一部分相关的驱动程序软件以及已由设备使用的应用软件所需的后处理(步骤S62,S63,S64)。主机的系统软件删除设备树信息,并释放所分配的设备地址以及由相关软件使用的系统资源以备将来再次使用(步骤S65)。在此情形下,与断开位置无关的部分不受影响。
在使用了具有设备控制器功能的微处理器的设备中,经常会出现用硬件担负物理层和低级协议层(电信号变换,包的装配,“握手”响应),以及用固件担负“握手”解释,重发响应和上层处理的情况。
如上所述,常规USB系统定义了主机与设备之间的通信控制方案,而对在设备之间直接传递数据未定义任何特征。因此,为了在设备之间传递数据,主机将一直介入所述传递。具体地,为了在设备之间传递数据,主机用于运行与各个驱动程序对应的设备驱动程序,以及用于介入数据传递的应用软件。
图7一般性地示出目前采用的设备之间通信的特征。
当用户将数据发送装置71和数据接收装置72连到主机上时,主机的USB系统软件73使用USB硬件74来枚举这些设备,并装入和运行用于设备71的驱动程序75以及用于设备72的驱动程序76。然后,由主机用户初始化的传送控制软件77经由用于设备71的驱动程序75从设备71读数据,并将读取的数据经由用于设备72的驱动程序76写入设备72,以将数据从设备71传送到设备72。
在此方式中,常规地,假设主机由一台PC实现,该PC上可以安装多种软件(系统软件,设备驱动程序,应用软件),并且具有用于运行所述软件的CPU性能以及存储器容量。
因此,存在数据不能在设备之间传递的问题,除非PC被用作为主机。尤其是,在缺少PC的使用环境中,出现这样一个问题诸如具有设备功能的蜂窝电话的一个小型便携式通信设备,小型便携式输入/输出设备,以及小型便携式外部存储设备不能通过USB互连以用于设备间的数据传输。
根据本发明的一个实施例,一个USB通信控制装置包括一个控制器,被配置为在检测到一个USB设备断开时复位整个总线并进入一连接等待状态,通过给出从一预定值开始的连续地址来登记所有被连的USB设备,并与各个登记的USB设备通信,以及响应来自USB设备的一个应答,顺序地向所有登记的USB设备广播数据或是将数据传送给一个特定的USB设备;一个总线配置寄存器,用来基于设备地址记录三种设备类型中的一种,所述三种设备类型包括一个hub,一个USB设备,以及其他设备,其中当所述控制器进入连接等待状态时该总线配置寄存器被清零以及一个模式确定单元,响应一个USB设备的连接检测,用来根据所连设备的一个配置描述符的一个预定部分是否匹配一个预定模式来确定所连设备是否是支持设备。
根中继器102取代常规的包括PC的主机。但是,根中继器102并不要求主机所常规具有的用于安装和运行多种软件(系统软件,设备驱动程序,应用软件)的CPU性能以及存储器容量。
总线拓扑结构与现有技术相似,其中的hub106和110与现有技术相同,可作为一个单独的USB系统用于连接许多设备104,108,112和114。通过顺序执行在根中继器102与设备之间的一对一通信,能够以非固定方式执行在设备之间的一对一多路通信。换言之,在USB只能够一对一通信而不能够广播的情况下,USB可以通过顺序地执行一对一通信来基本上实现广播。
图9是表示根中继器的一个实施例的详细方框图。
控制器120连到总线配置寄存器122、并行/串行转换器124、模式确定单元126、连接/断开/设备速度检测器128、以及复位发送器130,以控制这些部件的操作。
总线配置寄存器122还与数据缓冲器134连接,并与数据缓冲器134交换总线配置信息(例如,连到USB端口的设备的类型,在此实施例中,所述种类包括三种类型USB设备,hub,非USB设备)以及通过枚举获得的hub控制管道信息,并存储这些信息。
并行/串行转换器124还与数据缓冲器134以及I/O单元136相连,装配和分解USB上的连续比特序列,并与数据缓冲器134交换数据。
模式确定单元126还与数据缓冲器134相连,并查阅装入数据缓冲器134内的接收数据以把与特定模式的匹配通知给控制器120。复位发送器130响应来自控制器120的一条指令通过I/O端口136向一USB端口(未示出)输出按照USB规格定义的复位信号。
SOF发生器132优先于控制器120并使并行/串行转换器124产生SOF包。数据缓冲器134在控制器120的控制下用于暂时存储发送/接收数据。I/O单元136用于发送和接收通过的数据,并相互转换外部通信USB信号和端口上的本地信号。
下文将描述各个部件中的处理。


图10是表示控制器120的处理的转换图。
本实施例中的根中继器102在开始工作时进入一连接等待状态140。在连接等待状态140,当一设备被连到根中继器102的一个连接端口时,根中继器102变为端口初始化状态146,并在初始化完成后又变为枚举状态142。当在枚举状态142完成枚举后,根中继器102变为中继状态144。在中继状态144,当根中继器102检测到与总线上一个hub相连的一个设备时,根中继器102变为hub端口初始化状态146,并在该端口上的那个设备断开时返回连接等待状态140。
在此方式中,本实施例中的根中继器102总是进入连接等待状态140,不论是在其开始工作时,还是在一个设备从总线上的任何地方断开时。在连接等待状态140,放在总线配置寄存器122中的内容被一次清除(整个总线被复位)。接着,对整个总线再次执行枚举,从初始值(一般被选为1)开始有规律地(一般是按顺序)分配设备地址,并将分配结果放在总线配置寄存器122中。这就保证了存在于总线上的设备总是具有从初始值(例如,1)开始的有规律的(例如,顺序的)设备地址,这样根中继器102就无需存储设备树拓扑结构。因此,与由常规主机记录的设备树信息相比,就能够采用具有较小容量及更简单配置的总线配置寄存器122。
下文将描述根据本发明的由根中继器102执行的控制操作。
图11是说明在根中继器的连接等待状态140中的处理的流程图。
当根中继器进入连接等待状态140,在步骤S150,控制器120一次清除放在总线配置寄存器122中的内容。在步骤S152,根中继器102等待来自连接/断开/设备速度检测器128的设备连接通知。当检测器128响应来自I/O单元136的一个信号检测到与hub相连的一个设备时,在步骤S154,控制器120就使复位发送器130发送一个复位信号,该信号通过I/O单元136被发送给相关的设备。当复位完成,连接/断开/设备速度检测器128获得该设备通过I/O单元136发来的设备速度通知。当获得所述的设备速度,控制器120就在步骤S158将所述设备速度存入总线配置寄存器122,并且根中继器102变为枚举状态142。在步骤S156或S158,如果根中继器102被告知一个设备从hub断开,该设备以前是连到该hub的,那么流程返回到步骤S150。
在本实施例中,通过在连接等待状态140提供处理(图11),在操作开始时,以及当一个设备在总线上的任何地方被断开时,整个总线能够被复位到开始对整个总线的枚举。然后,在那一刻的新的系统配置被放入总线配置寄存器122。由于这一原因,因为能确保存在在总线上的设备总是具有从初始值开始的有规律的设备地址,因此根中继器102无需存储设备树拓扑结构,这样与由常规主机记录的设备树信息相比,就能够采用具有较小容量和更简单配置的总线配置寄存器122。
图12是表示在根中继器102的枚举状态142中的处理的流程图。
在枚举状态142,控制器120在步骤S160使用缺省地址获得一个设备描述符以得到一个通信包的大小。
在步骤S162,控制器120使用缺省地址发送一个设置地址请求。该地址从一个预定初始值(例如,1)开始顺序地增加。在步骤S164,根据响应于所述请求的设备描述符的获得(再次),控制器120将所述设备描述符存入数据缓冲器134。在步骤S166,模式确定单元126检验包含在所述描述符中的类别码(的一种模式),通过将该类别码的模式与hub的一个预定模式进行比较来确定所连设备是否是hub。
当所连设备不是hub时,在步骤S168,控制器120获得一个设备配置描述符并将其存入数据缓冲器134。在步骤S170,模式确定单元126检验在该配置描述符的一个预定部分处的位模式,通过将该配置描述符的预定部分处的位模式与支持设备的一个预定模式进行比较,来确定所连设备是否是支持通过本实施例的根中继器102通信的设备(下文称作“支持设备”或简称USB设备)。例如,该确定可以通过向具有一个唯一类别码模式的接口预先确定在配置描述符的第一部分的模式而作出。当模式确定单元126确定所连设备是支持设备时,控制器120在步骤S172请求设置一个预定配置。
在步骤S174,控制器120“初始化中继通信管道的数据转换(toggle)”并在总线配置寄存器122中所分配的地址处“寄存一个支持经由根中继器102通信的设备”。
在USB规范中,配置描述符被结构性定义,这样一个USB系统软件必须被用于解释一个任意的描述符以便让主机能够选择现有技术中的适合的设备驱动程序。在本实施例中,仅仅依赖于一个固定硬件的所述确定能够通过如下方法来实现而不必使用USB系统软件预先确定支持经由根中继器102通信的设备的描述符的一个预定部分,并且仅将设备分成三种类型hub,USB设备(支持设备)以及非USB设备。所述确定结果被寄存到总线配置寄存器122中。
当模式确定单元126在步骤S166确定所连设备是一个hub时,控制器120在步骤S176获得该hub的配置描述符。控制器120“寄存一状态变化终端点号(写在所述配置符内)”,“初始化状态变化管道的数据转换”,并在总线配置寄存器122中“在一指定地址将所连设备寄存为一个hub”。
在步骤S180,控制器120请求设置配置I(作为hub工作)。在步骤S182,控制器120获得一hub描述符。
在步骤S184,控制器120在总线配置寄存器122中根据写入所述hub描述符的信息“寄存端口号和端口电源模式”。在步骤S186,控制器120根据该信息向所述hub发送端口加电信号。
在完成上述处理后,根中继器102变为中继状态144。当从一个hub端口的连接检测经由该hub端口的初始化执行枚举时,在完成所述枚举后,该处理从被检测到连有设备的那个hub端口的下一个端口继续进行。
如果在上述处理期间在根中继器端口检测到一个端口断开,根中继器102就返回到连接等待状态140。
图13是表示在根中继器102的中继状态144中的处理的流程图。
在根中继器102进入中继状态144时,控制器120对所有hub以及所有连到总线上的设备从地址1(预定值)按顺序重复地执行下述处理。在步骤S190,控制器120从总线配置寄存器122确定当前地址处所寄存的设备是USB设备、hub,还是非USB设备。
当所述设备是支持设备时,控制器120就在步骤S192向带有该设备的一个成批型IN管道启动IN通信用以向该设备请求数据。
在步骤S194,控制器120确定所述数据是否已被从所述设备发送。如果未发送数据,控制器120就进到下一个地址。当数据被从所述设备发送时,控制器120就在步骤S196根据含有在数据中的目的地址确定该数据是否被广播。
当所述目的地址指定了广播时,控制器120就在步骤S198执行从地址1按顺序向各个地址的成批OUT传送以发送数据,所述支持设备在所述地址上寄存。当所述目的地址指定了一个特定地址时,控制器120就在步骤S200执行一个向该地址的成批OUT传送以发送数据。利用这一处理,根据与系统相连的支持设备的各自要求,数据可被发送到一个特定设备或广播。
另一方面,当控制器120在步骤S190确定在所述地址上寄存的设备是一个hub时,控制器120就在步骤S202查阅存储在总线配置寄存器122内的“状态变化终点号”以向状态变化管道启动中断型IN通信用以向所述hub请求状态变化信息。
在步骤S204,控制器120确定所述状态变化信息是否已被从所述hub发送。如果未发送信息,控制器120就进到下一个地址。当状态变化信息被从所述hub发送时,控制器120就从端口1按顺序执行一次下述处理。在此情况下,在步骤S206,当未在总线状态变化信息中设置一个端口位时(表示没有状态变化),控制器120进到对下一个端口的处理。如果设置了端口位,控制器120就在步骤S208向一个hub控制管道启动IN通信以请求端口状态信息。
控制器120在步骤S210确定从所述hub返回的端口状态信息是否指示检测到连接,并且当指示检测到连接时,根中继器102变为hub端口初始化状态146,并经由枚举状态142返回到对下一个端口的处理(步骤S206)。
在步骤S210,当从所述hub返回的端口状态信息指示其它情形时,根中继器102变为连接等待状态140。
在中继状态144,当在根中继器端口检测到断开时,根中继器102变为连接等待状态140。
图14是表示在根中继器的hub端口初始化状态中的处理的流程图。
在根中继器102进入到hub端口初始化状态146时,控制器120在步骤S220经由hub控制管道清除相关hub的连接检测状态变化位,并在步骤S222执行端口复位。
在步骤S224,控制器120经由hub控制管道为所述hub读取端口状态来检测端口复位的完成,并在步骤S226等待一个端口使能变化位被设置。
当端口使能变化位被设置,控制器120在步骤S228从所述hub发来的端口状态值中获得所述连接设备的速度,并在总线配置寄存器122中寄存该速度。在步骤S230,控制器120经由hub控制管道清除使能检测状态变化位,并且根中继器102变为枚举状态142。
图15是表示第一实施例中设备之间的数据传送特征的框图。
根中继器102经由hub及电缆152用前述方式枚举支持设备154和156,并在其自身与各个支持设备154和156之间建立两条通信线路IN,OUT。
仅要求根中继器102执行根据本实施例的操作,而不管连接设备的类型,并且无需用于各个设备的驱动程序,因此根中继器102能够只用硬件来实现。而且,为使基于常规系统的设备支持该系统,仅需要修改该设备的固件。特别地,在本实施例中,提供了一个独特的配置描述符并且所述固件可用于执行检查系统中其它支持设备的存在,以及在当一个独特的配置描述符被由根中继器102的所述枚举设置时利用广播传输和一对一传输来传送数据。
根据第一实施例,USB通信控制装置包括控制器,用于在检测到USB设备的一个断开时复位整个总线并返回到连接等待状态,在从一预定值开始的连续地址上登记与系统相连的设备,执行一个对于各个登记的支持设备的成批IN通信,并响应来自设备的应答中的数据,顺序地将数据广播给所有登记的支持设备或是将所述数据传送给一个特定地址;总线配置寄存器,用于登记三种设备类型hub、USB设备及其它,使用设备地址作为索引,其中当所述控制器进入连接等待状态时,该总线配置寄存器中的内容被清除;以及模式确定单元,用于基于所连设备的配置描述符的第一部分是否匹配一个预定模式来确定所连设备是否是USB设备。
根据本实施例,当控制器进入连接等待状态时,总线配置寄存器中的内容被清除,从而使得可能在操作开始时,或是当一个设备被在总线上的任何地方断开时复位整个总线以启动用于整个总线的枚举。
而且,通过在对于整个总线的枚举中从一预定值按顺序地分配设备地址,就确保了存在在总线上的设备总是具有从1开始的连续的设备地址,所以根中继器102无需存储设备树拓扑结构。因此,与由常规主机存储的设备树信息相比,可以采用具有较小容量和简化结构的总线配置寄存器122以寄存设备类型,使用设备地址作为索引,实现发明目的。
按照本发明,设备的三种类型,即hub、USB设备、及其它设备足以满足枚举要求。通过用所述三种设备类型并基于配置描述符的第一部分是否匹配一个预定模式来确定一个USB设备,可以仅用硬件来实施所述枚举。
根中继器102执行对于各个登记的支持设备的一个成批IN通信,并且当接收到来自一个设备的响应时顺序地向所有登记支持设备广播数据或是根据该数据将数据传送给一个特定地址,因此与系统相连的一个USB设备能够根据设备的各自所需将数据传送给一个特定设备或广播所述数据。从上述结果中,可以不考虑所连设备的类型而实现根中继器102。
而且,根据本实施例,USB通信系统包括一个USB通信控制装置以及一个USB设备。所述USB通信控制装置包括控制器,用于在检测到USB设备的一个断开时复位整个总线并返回到连接等待状态,在从一预定值开始的连续地址上登记与系统相连的设备,执行一个对于各个登记的支持设备的成批IN通信,并响应来自设备的应答中的数据,顺序地将数据广播给所有登记的支持设备或是将所述数据传送给一个特定地址;总线配置寄存器,用于登记三种设备类型hub、USB设备及其它,使用设备地址作为索引,其中当所述控制器进入连接等待状态时,该总线配置寄存器中的内容被清零;以及模式确定单元,用于基于所连设备的配置描述符的第一部分是否匹配一个预定模式来确定所连设备是否是USB设备。
所述USB设备包括一个微处理器,USB设备控制器硬件,以及利用所述USB通信控制装置实现相互广播数据或是在一对一的基础上传送数据的固件。
根据本实施例,利用根中继器102来相互传送数据的USB设备可以仅仅通过向所述设备的固件增加该功能来容易地实现而无需主机驱动程序。
本实施例提供的根中继器102可以用廉价的硬件来实现设备间的数据传输。
如上所述,根据上述实施例,提供了在连接等待状态140中的处理(图11),其中当根中继器102进入连接等待状态140时,总线配置寄存器中的内容被清除,因此使得可能在操作开始时,或是当一个设备被在总线上的任何地方断开时复位整个总线以启动用于整个总线的枚举(步骤S150)。
在用于整个总线的枚举中,由于通过从1(预定值)按顺序地分配设备地址(步骤S162),确保了存在在总线上的设备总是具有从1开始的连续的设备地址,所以根中继器102无需存储设备树拓扑结构。因此,与由常规主机存储的设备树信息相比,可以采用具有较小容量和简化结构的总线配置寄存器122以寄存设备类型,使用设备地址作为索引,实现发明目的。
按照本实施例,所述三种设备类型,即hub、USB设备及其它设备已经足够了。通过用所述三种设备类型并基于配置描述符的第一部分是否匹配一个预定模式来确定一个USB设备,可以仅用硬件来实施所述枚举。
由于根中继器102顺序地向所有登记的支持设备传送数据(广播)或是将数据传送给一个特定地址(步骤S198和S200),因此与系统相连的支持设备能够根据设备的各自所需将数据传送给一个特定设备或广播所述数据。
由于包含有CPU和USB设备控制器硬件的USB设备已被广泛地用于大量应用中,具有相互交换数据能力的支持设备可以仅仅通过向设备的固件增加所需功能以及利用本实施例的根中继器102来容易地实现而无需主机驱动程序。
下面将描述本发明的USB通信控制装置的其它实施例。与第一实施例相同的部分将用相同的标号表示,并省略其详细描述。第二实施例图16是说明第二实施例的USB通信控制装置的方框图。在本实施例中,具有与第一实施例的根中继器102相同功能的根中继器150,hub 154以及支持设备156被集成到所述控制装置内。
通过将一外部USB设备连到一个下游端口160并将切换单元152切换到根中继器102,可以将所述控制设备用作为不带主机的根中继器。另一方面,通过将一主机连到一个上游端口158并将切换单元152切换到所述上游端口158,可以将所述控制设备用作为一个含有一个hub的设备,与现有技术类似。将hub 154接到根中继器102就可以省略掉所述切换单元152和上游端口158。切换单元152的切换可以由用户人工执行或是根据对连到所述上游端口158或下游端口160的设备的检测自动执行。
作为一个示范性应用,可将一个含有作为支持设备156的打印机的设备在下游端口160上连到一个含有USB设备接口的蜂窝电话上。这样,该蜂窝电话就能够驱动所述打印机。
另一方面,可将一个含有作为支持设备156的存储卡的设备在下游端口160上连到一个含有USB设备接口的蜂窝电话上。这样,该蜂窝电话就能够向/从所述存储卡设备写入/读出数据。
如上所述,根据上述实施例,通过将一个USB设备连到所述下游端口160上并将所述切换单元152切换到根中继器102就能使用所述USB通信控制装置而无需主机。并且,通过将所述切换单元152切换到上游端口158,并将一主机连到上游端口158,可将所述USB通信控制装置用作为一个含有一hub的设备,类似于现有技术。因此,所述USB通信控制装置不仅可被用在带有主机的使用环境中,而且可用在没有主机的使用环境中。
根据本实施例,一个USB通信控制装置包括一个根中继器,hub,上游端口,下游端口,以及一个用于将所述hub连到所述根中继器或是连到所述上游端口的切换单元,将一个外部支持设备连到所述下游端口,并将所述切换单元切换到所述根中继器以执行在所述USB通信控制装置与该外部支持设备之间的通信而无需主个人计算机,或是将所述切换单元切换到所述上游端口侧,并将一主机连到所述上游端口以执行在所述USB通信控制装置与该主机之间的通信。
以上描述涉及本发明的特定实施例,应当懂得可以作出多种修改而不脱离本发明的精神。附带的权利要求书用于覆盖落入本发明真实范围和精神内的这些修改。因此当前公开的实施例应从各方面考虑为说明性的而非限制性的,本发明的范围由附带的权利要求书,而不是上述描述来表明,因此所有落入权利要求书的等同物的含义及范围内的变更都应被包含在内。例如,本发明可实现为一种计算机可读记录介质,该介质记录有用于允许一个计算机执行预定方法,允许该计算机起到预定装置的作用,或允许该计算机实现一预定功能的程序。
权利要求
1.一种USB通信系统,其特征在于包括USB设备(104,108,112,114);以及一个USB通信控制装置(102),用来经总线连接到至少一个USB设备(104,108,112,114),该控制装置包括一个控制器(120),用来复位所述总线,在检测到所述USB设备的一个断开时进入连接等待状态(140),通过给出从一预定值开始的连续地址来登记所有被连的USB设备,并与所述登记的USB设备通信;一个模式确定单元(126),响应于一个设备的连接检测,用来根据所连设备的配置描述符来确定所连设备是否是所述USB设备;以及一个总线配置寄存器(122),用来根据所连设备的一个设备地址寄存三种设备类型中的一种,所述三种设备类型包括hub、USB设备以及非USB设备,其中当所述控制器进入连接等待状态时该总线配置寄存器(122)被清零。
2.一种USB通信控制装置,其特征在于包括一个控制器(120),用来复位连接至少一个USB设备(104,108,112,114)与USB通信控制装置(102)的总线,在检测到所述USB设备的一个断开时进入连接等待状态(140),通过给出从一预定值开始的连续地址来登记所有被连的USB设备,并与所述登记的USB设备通信;一个模式确定单元(126),响应于一个设备的连接检测,用来根据所连设备的配置描述符来确定所连设备是否是所述USB设备;以及一个总线配置寄存器(122),用来根据所连设备的一个设备地址寄存三种设备类型中的一种,所述三种设备类型包括hub、USB设备以及非USB设备,其中当所述控制器进入连接等待状态时该总线配置寄存器(122)被清零。
3.一种USB通信系统,其特征在于包括根据权利要求2的一个USB通信控制装置(150);一个hub(154);一个含有USB设备控制器硬件的USB支持设备(156);一个上游端口(158),用来被连接到一主机;一个下游端口(160),用来被连接到一USB设备;以及一个切换单元(152),用来选择性将所述上游端口和所述USB通信控制装置中的一个连到所述hub。
4.如权利要求2所述的装置,其特征在于当启动一个操作时,所述控制器(120)进入连接等待状态(140);当所述USB设备被连到一个USB端口以及当在连接等待状态完成端口初始化时进入一个枚举状态(142);当在枚举状态完成一个枚举时进入一个中继状态(144);当在中继状态检测到USB设备连接到总线上的一hub时,进入一个hub端口初始化状态(146);当在中继状态检测到总线上USB设备的一个断开时进入所述连接等待状态(140);当在hub端口初始化状态完成端口初始化时进入枚举状态(142);以及当在hub端口初始化状态USB设备被从正在被初始化的端口断开时进入连接等待状态(140)。
5.如权利要求4所述的装置,其特征是所述控制器(120)还包括一个连接/断开/设备速度检测器(128),该检测器用来检测所述USB设备的连接、断开以及速度,以及一个用来输出根据USB规格定义的复位信号的复位发送器(130);当所述控制器(120)处于连接等待状态(140)时,所述控制器(120)将所述总线配置寄存器(122)清零;等待来自所述连接/断开/设备速度检测器(128)的一个USB设备连接的通知;响应USB设备的一个连接检测使所述复位发送器(130)向一个I/O单元(136)发送一个复位信号;在该I/O单元已被复位后被告知一个来自所述连接/断开/设备速度检测器(128)的设备速度;将该设备速度存入所述总线配置寄存器(122);以及变为枚举状态(142)。
6.如权利要求4所述的装置,其特征是在枚举状态(142)所述控制器(120)使用一个缺省地址获得设备描述符以得知一个通信包的大小;使用该缺省地址发送一个设置地址请求;再次获得一个描述符地址以确定包含在该描述符地址内的一个类别码,来确定连到该端口的USB设备是否是一个hub;当连到该端口的一个设备不是hub时获得一个配置描述符,并根据该配置描述符确定连到该USB端口的设备是否是USB设备;当所连设备是USB设备时请求设置一个预定配置,并寄存一个中继通信管道的数据转换的初始化并寄存为在总线配置寄存器内一个所分配地址处的USB设备;以及当连到USB端口的设备是一个hub时,获得该hub的一个配置描述符,在总线配置寄存器内寄存一个状态终点号,初始化一个状态变化管道的数据转换,并在一个所分配的地址处将连到USB端口的设备寄存为一个hub。
7.如权利要求4所述的装置,其特征是所述控制器(120)在中继状态(144)顺序地确定在总线配置寄存器内寄存的各个地址是否表示USB设备、hub或非USB设备;当一个USB设备被寄存时启动一个成批IN通信以向该USB设备请求数据,当没有数据被从该USB设备发送时进到下一个地址;当数据被从该USB设备发送时检测包含在数据中的一个目的地址;当在该目的地址指定广播时顺序地对其上寄存了USB设备的各个地址执行一个成批OUT通信以传送数据;而当在该目标地址指定了一个特定地址时,执行一个对该地址的成批OUT通信以传送数据;当一个hub被寄存在该地址时,查阅存储在总线配置寄存器内的状态变化终点号以向一个状态变化管道传送一个中断型IN通信来向该hub请求状态变化信息;当状态变化信息未从该hub发送时进到下一个地址;以及响应来自该hub的状态变化信息,顺序地对该hub的各个USB端口,当未发现状态变化时继续对下一个端口的处理,并且当发现状态变化时启动向一个hub的IN通信以请求端口状态信息。
8.如权利要求4所述的装置,其特征是所述控制器(120)经由一个hub控制管道清除一个连接检测状态变化位,并在hub端口初始化状态(146)复位一个USB端口;经由该hub控制管道读取端口状态用于得知该USB端口已被复位,并一直等待直到一个端口使能变化位被设置;从一个端口状态值获得所连USB设备的速度并将该速度寄存到总线配置寄存器内;以及经由所述hub控制管道清除一个使能检测状态变化位,并变为枚举状态。
9.一种基于一个根中继器的USB通信控制方法,该根中继器能够在USB设备之间传送数据,所述方法的特征是包括在检测到USB设备的一个断开时,复位数据以管理整个系统的配置,并进入一个连接等待状态;从一预定值按顺序重新给连接到一个USB总线上的各设备分配地址;执行用于各个登记的设备的一个成批IN通信;
10.一种用于如权利要求3所述的USB通信系统的USB通信控制方法,其特征是还包括将USB设备连到下游端口,将切换单元切换到USB通信控制装置,以执行用于所连USB设备的通信。
11.如权利要求1所述的USB通信系统,其特征是响应一个来自USB设备的应答,所述控制器顺序地向所有登记的USB设备广播数据或是将数据传送给一个预定USB设备。
12.如权利要求2所述的USB通信控制装置,其特征是响应一个来自USB设备的应答,所述控制器顺序地向所有登记的USB设备广播数据或是将数据传送给一个预定USB设备。
13.如权利要求9所述的USB通信控制方法,其特征是所述的执行成批IN通信包括响应一个来自USB设备的应答,顺序地向所有登记的USB设备广播数据或是将数据传送给一个预定USB设备。
全文摘要
一个控制器(120)在检测到一个USB设备的断开时复位整个总线并进入一个连接等待状态(140),通过给出从一预定值开始的连续地址登记所有连接的USB设备,与各个寄存的USB设备通信,并响应来自USB设备的一个应答,顺序地向所有寄存的USB设备广播数据或是将数据传送给一个特定USB设备。一个总线配置寄存器(122)基于一个设备地址寄存三种设备类型中的一种,这三种设备类型包括hub、USB设备以及其它设备,其中当控制器进入连接等待状态(140)时总线配置寄存器(122)被清零。一个模式确定单元(126),响应一个USB设备的连接检测,根据所连设备的一个配置描述符的一个预定部分是否匹配一个预定模式来确定所连设备是否是支持设备。
文档编号H04L12/44GK1388670SQ02126288
公开日2003年1月1日 申请日期2002年3月29日 优先权日2001年3月30日
发明者庄野温夫 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1