用于控制主机设备与usb设备之间的通信的装置、方法及系统的制作方法

文档序号:6612482阅读:244来源:国知局
专利名称:用于控制主机设备与usb设备之间的通信的装置、方法及系统的制作方法
技术领域
本发明的方面涉及用于控制主机设备与USB设备之间的通信的 装置、方法及系统,以及更具体地涉及USB设备及其相应的方法,该 USB设备甚至可以用于当主机上没有执行操作时在物理上没有切断 与该主机设备的连接的情况下通过USB的通信或充电过程。
背景技术
创建通用串行总线(USB)用来标准化用计算机和计算机外围设 备(例如,鼠标、键盘、打印机、调制解调器或者扬声器)之间的连 接的接口。通过USB的通信加快了对诸如驱动器之类的复杂适配器的 安装和卸载。由于上述原因,目前USB成为大多数PC中的标准设备。 近来,USB用于传输不仅来自计算机外围设备(例如调制解调器或者 打印机)而且来自家庭多媒体设备(例如电话或者音频播放器)的数 据和语音。甚至在将数据从蜂窝电话或者数码相机传输至主机设备时 使用USB。图1示出了通过USB线缆120与主机设备100连接的USB设备 100。通过将USB线缆120连接到USB设备110中所包括的USB连 接器112,将USB设备110与主机设备100相连。USB设备110和主 机设备100通过连接的USB线缆120彼此传输/接收来自对方的数据。 可以使用计算机外围设备和多媒体设备作为USB 110。可以使用PC 作为主机设备100。图2示出了主机设备200和USB设备210之间的数据传输结构。 主机设备200包括客户端软件202和多个存储缓冲器204。管道216 与缓冲器204中的每个相连。管道216与USB设备210中的端点214 相连,因此管道216作为用于主机设备200和USB设备210之间的通 信的隧道。将端点214聚集在一起以形成接口 212。主机设备200中 的客户端软件202通过通信装置与USB设备210进行通信。如上所述, 通过端点214在主机设备200和USB设备210之间执行数据传输。数 据传输总是以主机控制器(未示出)处理USB设备210的端点214 的形式来实现的。在没有请求或者允许的情况下,USB设备210不能 传输数据。图3是主机设备300与USB设备330之间的数据处理的流程图。 图3示出了主机设备300、 USB控制器310以及中央处理单元(CPU) 320之间的数据处理,具体示出了成批数据传输。USB控制器310和 CPU 320是USB设备330的一部分。在操作301中,应用程序发起数据传输。在操作302中,主机设 备300准备将要传输的数据分组。在操作303中,在准备好数据分组 时,主机设备300将准备好的数据分组传输至USB设备330的USB 控制器310。在操作311中,USB控制器310检査端点是否针对接收 自主机设备300的数据分组而就绪。如果该端点就绪,则执行操作312。 如果该端点尚未就绪,则执行操作315。在操作312中,如果该端点处于就绪状态,USB控制器310接收 数据。在操作313中,USB控制器310将端点的状态设置为忙碌状态, 并在操作314中,USB控制器向主机设备300传输ACK分组。如果 在操作313中将端点状态设置为忙碌状态,则USB控制器310通过中 断USB设备330的CPU 320来向CPU320通知所设置的状态,同时 在操作316中执行操作314。如果该端点不处于就绪状态,则USB控 制器310在操作315中向主机设备300传输NACK分组。考虑主机设备300,主机设备300在操作304中检查接收自USB 控制器310的数据分组。如果接收到的数据分组是ACK分组,则执 行操作305。如果接收到的数据分组是NACK分组,在操作307中进行数据重传。在操作305中,主机设备300检查是否传输所有的数据。 如果所有的数据都已传输,则数据处理结束。如果没有传输所有的数 据,则在操作306中传输下一个数据。考虑CPU 320,在操作321中,CPU 320通过例如在存储器中对 所接收的数据进行读取和存储来处理接收自主机设备300的数据。在 操作322中,CPU 320将端点的状态设置为就绪状态并允许USB控制 器310接收下一个数据。CPU 320在操作323中处理所接收的数据, 并在操作324中将处理后的数据返回到USB控制器310。如上所述,当USB设备330与主机设备300连接时,因为通信处 理(即,数据传输/接收)总是从主机设备300开始,所以USB设备 330不能确认主机设备300将在什么时候传输数据。因此,在USB通 信期间,USB设备330不能执行USB设备的其他特定操作。根据接 收自主机设备300的数据类型来确定USB设备330的操作,此外用于 USB设备330与主机设备300之间的通信处理的容量较大。因此,当 USB设备330在不知道主机设备300的状态的情况下执行任何操作 吋,USB设备330与主机设备300之间的通信可能与USB设备330 所执行的特定操作冲突。这可能中断USB设备330与主机设备300 之间的通信。发明内容本发明的各方面提供了用于控制主机设备与USB设备之间的通 信的方法、装置及系统。更具体地,本发明的各方面提供了USB设备 及其相应的方法,该USB设备甚至可以用于当主机上没有通过控制主 机设备与USB设备之间的通信而执行操作时在物理上没有切断与主 机设备的USB连接的情况下使用USB的通信或充电过程。根据本发明的方面,提供了一种用于第一设备与第二设备之间的 通信的装置。该装置包括控制器用于执行第一设备与第二设备之间 的通信操作;以及第一处理器,用于根据指示第一设备与第二设备之 间的通信状态的信息来选择性地停止控制器的操作。根据本发明的另一方面,提供了一种用于与第一设备进行通信的第二设备的通信控制方法。该方法包括获得用于指示第一设备与第二 设备之间的通信状态的信息;以及根据所获得的信息选择性地停止第 一设备与第二设备之间的通信操作。根据本发明的另一方面,提供了一种计算机可读记录介质。该计算 机可读介质在其上记录了用于执行上述通信控制方法的程序。根据本发明的另一方面,提供了一种用于控制第一设备与第二设备 之间的通信的系统。该系统包括第一设备;第二设备,用于执行与 第一设备的通信操作并根据指示与第一设备的通信状态的信息来停止 操作;以及第二设备,用于根据指示第一设备与第二设备之间的通信 状态的信息来执行第一设备与第二设备之间的通信操作。根据用于控制主机设备与USB设备之间的通信的装置、方法及系 统,当第一设备与第二设备之间的通信状态为空闲状态时,USB设备 即使与第一设备连接也可以执行其特定功能。本发明的附加方面和/或优点将在下文描述中加以说明,并在描述 中显而易见,或可通过发明的实践学习到。


结合下文附图,从下面对实施例的描述中,本发明的这些和/或其他的方面和优点将显而易见,并更容易理解,在附图中 图1示出了通过USB线缆与主机设备连接的USB设备; 图2示出了用于主机设备与USB设备之间的数据传输的结构; 图3是主机设备与USB设备之间的数据处理的流程图; 图4A示出了在USB设备与主机设备之间的通信状态为空闲状态时根据本发明的实施例的USB设备的操作;图4B示出了在USB设备与主机设备之间的通信状态为操作状态时图4A中所示的USB设备的操作;图5是根据本发明实施例的USB设备根据USB海量存储类规范向主机设备传输数据/从主机设备接收数据的处理流程图。
具体实施方式
下面将详细参考本发明的实施例,在附图中示出了本发明的示例, 在全文中,类似附图标记表示类似单元。下文将参照附图,对实施例 进行描述,来解释本发明。图4A示出了在USB设备410与主机设备400之间的通信状态为 空闲状态时根据本发明的实施例的USB设备410的操作。USB设备 410可以是诸如台式计算机、膝上型计算机、移动电话、个人娱乐设 备或者个人数字助理之类的包括USB端口的任何设备。尽管对于USB 来描述本发明,本发明并不受限于此;本发明的方案可以应用于使用 诸如IEEE 1394 (火线)之类的其它已知标准和协议来进行通信的设 备。可以采用有线或者无线标准,包括无线USB。USB设备410包括微型计算机(MICOM) 412、中央处理单元 (CPU) 414及USB控制器416。 USB设备410根据USB设备410 与主机设备400之间的通信状态来改变其操作。USB设备410与主机 设备400之间的通信状态与主机设备400的操作状态相对应。USB设 备410与主机设备400之间的通信状态可以划分为操作状态,其中 在USB设备410与主机设备400之间交换操作数据;以及空闲状态, 其中在USB设备410与主机设备400之间不交换操作数据。根据主机 设备处于操作状态或是空闲状态,USB设备410执行与主机设备400 的不同通信。现在将参照图4A,描述当USB设备410与主机设备400之间的 通信状态为空闲状态时USB设备410的操作。通常,当USB控制器 416向与同USB设备410相连的主机设备400传输数据或从该主机设 备400接收数据时,MICOM 412在主机设备400不执行涉及USB设 备410的任何操作时,存储在主机设备400与USB控制器之间传输/ 接收的数据。当主机设备400处于空闲状态时,MICOM 412从主机设备400 获得指示该主机设备400处于空闲状态的数据,并通知CPU 414该主 机设备400处于空闲状态,并连续响应主机设备400所传输的USB-连接确认数据。尽管图4A中所示的MICOM 412位于USB设备410 内,但是也可以将MICOM412安装在USB设备410的外部。如上所述,当主机设备400处于空闲状态时,MICOM 412向主机设备400 发送数据/从主机设备400接收数据,而不在USB控制器416与主机 设备400之间交换操作数据。因此,USB设备410即使与主机设备410 相连也可以执行其自身的特定操作。CPU 414控制整个USB设备410,包括USB控制器416的操作。 根据USB设备410的策略,在确定了 USB设备410不需要USB传送 时,CPU414停止对USB控制器416的操作。在主机设备400处于空 闲状态时,CPU 414控制USB控制器416不向主机设备400传输数据 /从主机设备400接收数据。图4B示出了在USB设备410与主机设备400之间的通信状态为 操作状态时图4A中所示的USB设备410的操作。当主机设备400进 行操作并由此进入操作状态时,MICOM 412从主机设备400获得指示 主机设备400处于操作状态的数据,并向CPU414通知主机设备400 处于操作状态。MICOM 412通过连续向主机设备400传输NACK分 组来延迟主机设备400和USB控制器416之间的数据传输/接收。对 于在主机设备400与USB控制器416之间传输/接收、并在主机设备 400处于空闲状态时被存储的数据,MICOM412从停止USB控制器 416的阶段中恢复与USB控制器416的通信。当MICOM 412通过连续传输NACK分组来延迟主机设备400与 USB控制器416之间的数据传输/接收时,CPU 414驱动USB控制器 416向主机设备400传输数据/从主机设备400接收数据。如上所述, 当CPU 414驱动USB控制器416向主机设备400传输数据/从主机设 备400接收数据时,USB控制器416通过向主机设备400传输数据/ 从主机设备400接收数据来执行与主机设备400的通信。由于已经恢 复了存储在MICOM412中的先前数据,USB控制器416传输/接收数 据。在USB控制器416与主机设备400相互传输/接收下一个数据时, MICOM 412中继在USB控制器416与主机设备400之间所传输/接收 的数据。 一旦USB控制器416与主机设备400重新通信并相互传输/ 接收下一个数据,MICOM412移除所存储的数据并存储新数据。图5是根据本发明的实施例的USB设备根据USB海量存储类规范向主机设备500传输数据/从主机设备接收数据的处理流程图。图5示出了主机设备500从如图4A与4B中所示的空闲状态转变为操作状 态时在USB设备与主机设备500之间传输/接收数据的过程。在图5 中,使用USB设备所分成的MICOM 502、 CPU504/USB控制器506 来例证主机设备500与USB设备之间的数据传输/接收。在操作510中,主机设备500从操作状态变为空闲状态。在操作 515中,主机设备500将指示主机设备500处于空闲状态的数据发送 到MICOM 502。根据USB海量存储类规范,主机设备500通过向 MICOM 502传输数据"TEST—UNIT—READY"来通知MICOM 502 主机设备500处于空闲状态。然而,根据USB类规范的类型,执行用 于通知主机设备500处于空闲状态的数据传输可以由另一过程代替。 例如,根据MTP类规范,主机设备500不传输数据,并且在预定周 期内不传输数据时,MICOM 502可以确认主机设备500处于空闲状 态。在操作520中,MICOM 502通知CPU 504主机设备500处于空 闲状态。在操作525中,CPU 504确认主机设备500处于空闲状态。 在操作530中,USB控制器506向主机设备500传输用于指示主机设 备500处于空闲状态的数据。根据USB海量存储类规范,USB控制 器506将数据"TEST—UNIT—READY"握手交换给主机设备500。同 时,MICOM 502中继在USB控制器506与主机设备500之间传输的 数据。在操作535中,根据USB设备的策略,CPU 504停止USB控制 器506向主机设备500传输数据/从主机设备500接收数据的操作。因 此,在主机设备500处于空闲状态时,USB控制器506不直接向主机 设备500传输数据/直接从主机设备500接收数据。在操作540中,主机设备500向USB设备传输用于确认USB设 备与USB设备之间的连接的数据。MICOM 502向主机设备500传输 与接收数据相应的数据。由于对确认与USB设备之间的连接的数据的 响应较为简单,因此MICOM 502代替USB控制器506传输相应的数 据。因此,USB设备可以执行它的其它特定功能。根据USB海量存储类规范,主机设备500 向 MICOM 502传输数据 "TEST—UNIT—READY ", 并且 MICOM 502 对数据 "TEST—UNIT_READY"作出响应。此时,USB设备可以执行特定功能。在操作545中,主机设备500从空闲状态改变为操作状态。在操 作550中,主机设备500向MICOM 502传输用于指示主机设备500 处于操作状态的数据。在主机设备500通过USB与USB设备进行通 信时,主机设备500可以通过传输所使用的数据来通知MICOM 502 主机设备500处于操作状态。根据USB海量存储类规范,主机设备 500通过向MICOM 502传输数据"READ—10"来通知MICOM 502 主机设备500处于操作状态。响应于从主机设备500传输到MICOM 502的数据,需要接收与所传输的数据相对应的数据,而不是接收对 传输数据的简单响应。在操作555中,MICOM 502向主机设备500传输NACK分组。 与传输用以确认与USB设备的连接的数据不同,在操作550中从主机 设备500传输到MICOM 502的数据需要相应的数据,但是MICOM 502可能无法传输相应的数据。因此,MICOM 502向主机设备500传 输NACK分组,以便延迟对相应的数据的传输。该传输延迟持续直至 在USB控制器506与主机设备500之间的数据通信恢复。在操作560中,MICOM 502通知CPU 504主机设备500的状态 已经变为操作状态。在操作565中,USB控制器506重新操作用于向 主机设备500传输数据/从主机设备500接收数据。在操作570中,USB 控制器506恢复对于存储在MICOM 502中的数据的USB通信。当主 机设备500处于空闲状态时,MICOM 502存储在USB控制器506,与 主机设备500之间的传输/接收的数据。USB控制器506恢复在MICOM 502中所存储的数据,并从初始阶段恢复到在USB控制器506不处于 操作状态之前所执行的通信阶段。在操作575中,MICOM 502向USB控制器506传输接收自主机 设备500的数据。根据USB海量存储类规范,MICOM 502向USB控 制器506传输数据"READ 10"。在操作580中,USB控制器506通过向主机设备500传输与接收自MICOM 502的数据相对应的数据, 来向主机设备500直接传输数据/从主机设备500直接接收数据。根据 USB海量存储类规范,USB控制器506对数据"READ—10"作出响 应。在主机设备500与USB设备之间所传输的命令不同于上述所给出 的,并且可能取决于USB设备所属于的特定设备类型。在操作585 中,USB控制器506通过向主机设备500传输数据/从主机设备500 接收数据来执行USB通信。此时,MICOM 502中继在USB控制器 506与主机设备500之间传输/接收的数据。本发明可以体现为计算机可读记录介质上的计算机可读代码。该 计算机可读记录介质是可以存储其后可由计算机系统读取的数据的任 意数据存储设备。该计算机可读记录介质还包括只读存储器(ROM)、 随机存取存储器(RAM)、 CD-ROM、' DVD、磁带,软盘、光数据存 储设备和载波(例如通过互联网的数据传输)。该计算机可读记录介质 还可以分布在与计算机系统相连的网络中,因此以分布式方式来存储 并执行该计算机可读代码。此外,用于实现本发明的功能性程序、代 码及代码段可以很容易为本发明所属领域中的技术人员所理解。尽管说明并描述了本发明的一些实施例,本领域的技术人员将理 解,在不背离本发明的原理和精神的前提下,本实施例可以发生改变, 本发明的范围在权力要求及其等同物中限定。
权利要求
1.一种用于控制第一设备与第二设备之间的通信的装置,所述装置包括控制器,用于执行第一设备与第二设备之间的通信操作;以及第一处理器,用于根据指示第一设备与第二设备之间的通信状态的信息来选择性地停止控制器的操作。
2. 根据权利要求1所述的装置,其中,在所述信息指示所述通信 状态是空闲状态时,所述第一处理器停止所述控制器的操作,其中在 所述空闲状态中在第一设备和第二设备之间不交换操作数据。
3. 根据权利要求1所述的装置,其中,在所述信息指示所述通信 状态是操作状态时,所述第一处理器维持所述控制器的操作,其中在 所述操作状态中在第一设备和第二设备之间交换操作数据。
4. 根据权利要求1所述的装置,还包括第二处理器,用于获得指示第一设备与第二设备之间的通信状态 的信息,以及用于根据所获得的信息来执行针对第一设备与第二设备 之间的通信的操作;其中,所述第一处理器根据由所述第二处理器所获得的信息停止 所述控制器的操作。
5. 根据权利要求4所述的装置,其中,所述第二处理器存储第一设备与第二设备之间的通信内容;以及 所述控制器基于所存储的通信内容恢复针对第一设备与第二设备 之间的通信的所停止的操作。
6. 根据权利要求1所述的装置,其中,所述信息由微型计算机获得,所述微型计算机位于第二设备之外, 并作为代理来执行第一处理器的操作。
7. 根据权利要求1所述的装置,其中,所述第一设备是主机设备, 所述第二设备是通用串行总线(USB)设备,以及所述第一设备和第 二设备通过USB相互通信。
8. —种在与第一设备进行通信的第二设备中执行的通信控制方 法,所述方法包括获得用于指示第一设备与第二设备之间的通信状态的信息;以及 根据所获得的信息来选择性地停止第一设备与第二设备之间的通 信操作。
9. 根据权利要求8所述的方法,其中对所述操作的选择性停止包括停止所述第一设备与所述第二设备 之间的通信操作;以及由第三设备代替第二设备来执行第一设备与第二设备之间的通信 操作。
10. 根据权利要求8所述的方法,其中,对所述操作的选择性停止包括在所获得的信息指示所述通信状态是空闲状态时,停止第一设 备与第二设备之间的通信操作,其中在所述空闲状态中在第一设备与 第二设备之间不交换操作数据。
11. 根据权利要求8所述的方法,其中,对所述操作的选择性停止包括在所获得的信息表示所述通信状态是操作状态时,维持第一设 备与第二设备之间的通信操作,其中在所述操作状态中在第一设备与 第二设备之间交换操作数据。
12. —种计算机可读记录介质,在其上记录了用于执行权利要求8所述的方法的程序。
13. —种用于控制多个设备之间的通信的系统,所述系统包括 第一设备;第二设备,用于执行与第一设备的通信操作并根据指示与第一设备的通信状态的信息来停止所述操作;以及第三设备,用于根据指示第一设备与第二设备之间的通信状态的信 息来执行第一设备与第二设备之间的通信操作。
14. 一种装置,通过USB与主机进行通信,以允许在所述装置与所述主机相连的同时执行特定操作,所述装置包括USB控制器,用于通过USB与主机进行通信;CPU,用于基于指示所述装置与主机之间的通信状态的信息来选择性地停止所述USB控制器,并控制所述装置来执行特定操作;以及 微型计算机,用于获得所述信息,并基于所述信息与主机进行通信。
15. 根据权利要求14所述的装置,其中,在所述信息指示所述状 态是空闲状态时,所述CPU停止所述USB控制器的操作,其中在所 述空闲状态中不通过USB在主机与所述装置之间交换数据。
16. 根据权利要求14所述的装置,其中,在所述信息指示所述状 态是操作状态时,所述CPU维持所述USB控制器的操作,其中在所 述操作状态中通过USB在主机与所述装置之间交换数据。
17. 根据权利要求16所述的装置,其中,在所述状态从空闲状态 变成操作状态时,所述微型计算机延迟主机与所述装置之间的通信, 直至所述USB控制器能够与所述主机进行通信。
18. 根据权利要求17所述的装置,其中,所述微型计算机通过向 所述主机设备传输NACK分组来延迟所述主机与所述装置之间的通 信。
19. 根据权利要求15所述的装置,其中,指示所述状态是空闲状 态的所述信息是TEST—UNIT—READY分组。
20. 根据权利要求15所述的装置,其中,指示所述状态是空闲分 组的所述信息是在预定时间段内所述主机与所述装置通信失败的标志o
21. 根据权利要求1所述的装置,其中所述第二设备在与主机进行通信的同时不能执行特定操作;以及 所述第一处理器选择性地停止控制器的操作,以便在所述状态是空闲状态时允许所述第二设备执行特定操作,其中在所述空闲状态中在第一设备与第二设备之间不交换操作数据。
22. 根据权利要求6所述的装置,其中当所述状态为空闲数据时,所述微型处理器代替控制器在第一设 备与第二设备之间交换数据,其中在所述空闲状态中在第一设备与第 二设备之间不交换操作数据。
全文摘要
一种用于控制主机设备与USB设备之间的通信的装置、方法及系统。该装置包括控制器,用于执行针对第一设备和第二设备之间的通信的操作;以及第一处理器,用于根据指示第一设备和第二设备之间的通信状态的信息来选择性地停止控制器的操作。因此,即使通过USB将USB设备与主机连接,USB设备也可以执行特定的功能。
文档编号G06F13/42GK101276316SQ20071016012
公开日2008年10月1日 申请日期2007年12月24日 优先权日2007年3月30日
发明者李泰宪, 林镇镐 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1