CN100351816C - 数据传送控制装置、电子装置和数据传送控制方法 - Google Patents

数据传送控制装置、电子装置和数据传送控制方法 Download PDF

Info

Publication number
CN100351816C
CN100351816C CNB021193835A CN02119383A CN100351816C CN 100351816 C CN100351816 C CN 100351816C CN B021193835 A CNB021193835 A CN B021193835A CN 02119383 A CN02119383 A CN 02119383A CN 100351816 C CN100351816 C CN 100351816C
Authority
CN
China
Prior art keywords
information
data
end points
storage area
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CNB021193835A
Other languages
English (en)
Other versions
CN1385794A (zh
Inventor
石田卓也
神原义幸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Publication of CN1385794A publication Critical patent/CN1385794A/zh
Application granted granted Critical
Publication of CN100351816C publication Critical patent/CN100351816C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

在分配CBW和数据作为通过一个端点EP1传送的信息的情况下,设置准备有CBW区域12(可随机存取的命令存储区域)和EP1区域10(FIFO设定的数据存储区域)的缓冲器。然后,在从USB的命令阶段(命令传送)切换为数据阶段(数据传送)的情况下,将信息的读取区域从CBW区域12切换为EP1区域10,将从主机向端点EP1传送的OUT数据写入到EP1区域。以命令阶段中的确认返回到主机为条件,从CBW区域12切换为EP1区域10。在触发错误的情况下,即使ACK被返回,也不进行区域切换。

Description

数据传送控制装置、电子装置和数据传送控制方法
技术领域
本发明涉及数据传送控制装置、电子装置和数据传送控制方法。
背景技术
近年来,作为用于连接个人计算机和***设备(广义上的电子装置)的阶段标准,USB(Universal Serial Bus;通用串行总线)引人注目。在该USB中,可以同时用相同标准的连接器来连接以往用各个标准的连接器连接的鼠标器、键盘和打印机等***设备,具有可以实现所谓的即插即用或热插拔的优点。
另一方面,在该USB中,作为相同的串行总线阶段标准,与引人注目的IEEE1394相比,存在传送速度慢的问题。
因此,制定了具有相对于现有的USB1.1标准的互换性,同时与USB1.1相比,可以实现非常高速的480Mbps(HS模式)的数据传送速度的USB2.0标准,十分引人注目。
而且,在该USB2.0中,在HS(High Speed)模式时按480Mbps进行数据传送。因此,具有可以作为请求高速传送速度的硬盘驱动器或光盘等存储装置的阶段来使用的优点。
但是,在另一方面,连接到USB总线的数据传送控制装置必须处理以480Mbps这样的高速度传送的数据。因此,如果数据传送控制装置的处理速度、控制数据传送控制装置的固件(CPU)的处理速度慢,则不能确保有效的传送速度,存在会损失总线频带的课题。
发明内容
本发明是鉴于以上的技术课题的发明,其目的在于,提供能够提高有效的总线传送速度的数据传送控制装置、电子装置、以及数据传送控制方法。
为了解决上述课题,本发明是一种数据传送控制装置,用于通过总线的数据传送,它包括:缓冲器,在分配包含第1、第2信息的多种信息作为通过一个端点(end point)传送的信息的情况下,准备第1信息用的第1存储区域和第2信息用的第2存储区域来对应于一个端点;以及缓冲器管理电路,在通过总线传送第1信息的第1阶段中,将从主机向端点传送的信息写入到第1信息用的所述第1存储区域,而在通过总线传送第2信息的第2阶段中,将从主机向端点传送的信息写入到第2信息用的所述第2存储区域;
将为第1信息用而准备的所述第1存储区域设定于可进行信息的随机存取的区域;将为第2信息用而准备的所述第2存储区域设定于将前面输入的信息先输出的区域。
根据本发明,在缓冲器中准备分配给所给与的端点的第1信息用的第1存储区域,以及分配给相同端点的第2信息用的第2存储区域。然后,在第1阶段(第1传输)中,将从主机向端点传送的信息写入到第1存储区域,在第2阶段(第2传输)中,将从主机向端点传送的信息写入到第2存储区域。例如,在从第1阶段切换为第2阶段的情况下,向端点的信息写入区域从第1存储区域切换为第2存储区域。
这样的话,即使在一个端点中分配多种信息的情况下,也可以对于写入到第1存储区域的信息进行处理,同时在第2存储区域中写入第2信息。因此,可以提高数据传送控制装置的处理速度,减轻处理第1信息的部件的负荷,可以提高有效的总线传送速度。
这样的话,可提高处理写入到第1存储区域的第1信息的部件的处理速度等。
此外,本发明可以在存储第1信息的所述第1存储区域的开头地址以外的区域中,写入指示传送第2信息的命令块和通过命令块指示传送的第2信息的长度信息的至少一个信息。
即使在这样的情况下,根据本发明,也可以按随机存取来读出命令块和长度信息,可提高处理第1信息的部件的处理速度等。
此外,本发明是一种数据传送控制装置,用于通过总线的数据传送,它包括:缓冲器,在分配包含第1、第2信息的多种信息作为通过一个端点(end point)传送的信息的情况下,准备第1信息用的第1存储区域和第2信息用的第2存储区域来对应于一个端点;以及缓冲器管理电路,在通过总线传送第1信息的第1阶段中,将从主机向端点传送的信息写入到第1信息用的所述第1存储区域,而在通过总线传送第2信息的第2阶段中,将从主机向端点传送的信息写入到第2信息用的所述第2存储区域;
能够以对于所述第1阶段的数据传送的确认被返回到主机为条件,将从主机向端点传送的信息的写入区域从所述第1存储区域切换为所述第2存储区域。
这样的话,可以用少的处理负荷来实现无差错的可靠的区域切换。
此外,本发明可以在主机之间用于进行事务处理的排序同步的数据触发比特中产生差错的情况下,即使在确认被返回到主机的情况下,也不进行从所述第1存储区域向所述第2存储区域的切换。
这样的话,即使在数据触发比特上产生差错的情况下(触发差错的情况),也可以实现合适的数据传送处理。
此外,本发明是一种数据传送控制装置,用于通过总线的数据传送,它包括:缓冲器,在分配包含第1、第2信息的多种信息作为通过一个端点(end point)传送的信息的情况下,准备第1信息用的第1存储区域和第2信息用的第2存储区域来对应于一个端点;以及缓冲器管理电路,在通过总线传送第1信息的第1阶段中,将从主机向端点传送的信息写入到第1信息用的所述第1存储区域,而在通过总线传送第2信息的第2阶段中,将从主机向端点传送的信息写入到第2信息用的所述第2存储区域;
所述第1信息是命令块的信息包;所述第2信息是根据所述命令块的指示传送的数据的信息包。
其中,在本发明中,存储在第1、第2存储区域中的第1、第2信息的种类可以任意地设定。
此外,本发明可以在处理部件解释所述命令块的信息包期间,将数据的信息包写入到所述第2存储区域。
这样的话,在从命令阶段(common phase)(命令传输)向数据阶段(数据传输)的切换等时,可以加快通过第2存储区域的数据的传送处理的开始定时,可以提高总线的有效传送速度。
此外,本发明是一种数据传送控制装置,用于通过总线的数据传送,它包括:缓冲器,在分配命令块的信息包和数据的信息包作为通过一个端点传送的信息的情况下,对应于一个端点来准备命令块用的命令存储区域和数据用的数据存储区域;以及缓冲器管理电路,在从通过总线传送命令块的信息包的命令阶段切换为通过总线传送数据的信息包的数据阶段的情况下,将信息的写入区域从命令块用的所述命令存储区域切换为数据用的数据存储区域,将从主机向端点传送的数据的信息包写入到所述数据存储区域。
根据本发明,在缓冲器中准备分配给所给与的端点的命令块信息包用的命令存储区域,以及分配给相同端点的数据块用的数据存储区域。然后,在从命令阶段(命令传输)切换为数据阶段(数据传输)的情况下,向端点的信息的写入区域从命令存储区域切换为数据存储区域。
这样的话,即使在一个端点中分配命令块信息包和数据信息包的情况下,也可以对于写入到命令存储区域的命令块信息包进行处理,同时可以在数据存储区域中写入数据信息包。因此,可以提高数据传送控制装置的处理速度,减轻处理命令块信息包的部件的负荷,可以提高有效的总线传送速度。
此外,本发明可以进行按USB(通用串行总线)标准处理的数据传送。
但是,本发明可以应用于按USB以外的标准(继承USB思想的标准)处理的数据传送。
此外,本发明的电子装置也可以包括上述任何一个数据传送控制装置,以及进行通过所述数据传送控制装置和总线传送的数据的输出处理或取入处理或存储处理的装置。
根据本发明,可以减轻控制数据传送控制装置的数据传送的处理部件(固件等)的处理负荷,实现电子装置的低成本化、小规模化等。此外,根据本发明,可以按高速的传送模式进行数据传送,所以可实现电子装置的处理高速化。
附图说明
图1A、图1B、图1C、图1D是说明USB的端点和事务处理结构的图。
图2A、图2B是说明CBI标准和Bulk-Only标准的图。
图3是表示CBW格式的图。
图4是表示CSW格式的图。
图5A、图5B是说明Bulk-Only中的数据的写入处理、读出处理的图。
图6A、图6B、图6C、图6D是说明比较例方法的图。
图7A、图7B、图7C是说明本实施例方法的图。
图8A、图8B是说明将CBW区域设定为可随机存取的方法的优点的图。
图9是表示本实施例的数据传送控制装置的构成例的图。
图10是表示事务处理管理电路、端点管理电路、缓冲器管理电路、缓冲器的详细结构的一例的图。
图11是表示事务处理管理电路、端点管理电路、缓冲器管理电路、缓冲器的详细结构的另一例的图。
图12是说明命令阶段开始时的本实施例的操作的定时波形图。
图13是说明数据传送成功情况下的本实施例的操作的定时波形图。
图14是说明数据长度差错情况下的本实施例的操作的定时波形图。
图15是说明CRC差错情况下的本实施例的操作的定时波形图。
图16是说明触发差错情况下的本实施例的操作的定时波形图。
图17A、图17B是说明触发比特和触发差错的图。
图18A、图18B是比较例和本实施例的定时波形图。
图19A、图19B是表示比较例和本实施例中固件的处理的流程图。
图20A、图20B、图20C是各种电子装置的内部方框图的实例。
图21A、图21B、图21C是各种电子装置的外观图。
具体实施方式
以下,使用附图来详细说明本实施例。
以下说明的本实施例不限定权利要求书中所述的本发明的内容。此外,本实施例中说明的结构整体不一定必须作为本发明的解决手段。
1.USB
1.1数据传送方法
首先,简单说明USB(USB2.0)的数据传送方法。
在USB中,与IEEE1394等不同,主机具有数据传送的主导权。即,起动数据传送的事务处理在主机侧,主机进行与数据传送有关的大部分的控制。因此,主机的处理负荷重,但作为主机的PC(个人计算机)等具有高速、高性能的CPU(处理器),所以这样重的负荷处理也没有什么问题。
另一方面,在USB中,装置(目标)仅简单地应对来自主机的请求就可以,所以可以简化装置侧的处理、结构。因此,在装置侧不需要使用主机那样的高性能、高速的CPU,可以使用价格低的CPU(微计算机),可实现低成本化。
此外,在USB中,为了实现这样的主机主导的数据传送,如图1A所示,在装置侧准备端点(EP0~15)。这里,端点相当于用于在主机和装置之间进行数据传送的缓冲器(FIFO)的入口,USB中的数据传送都经由该端点来进行。
而且,该端点通过装置地址和端点号码进行唯一的地址指定。即,主机通过指定装置地址和端点号码,可以自由地进行向期望的端点发送数据和接收来自期望的端点的数据。
此外,在装置侧是否设定端点是任意的,在枚举(enumeration)处理时,主机可以知道端点号码的分配和分配给各端点的存储区域的数据量等。
在USB中,作为数据传送的类型,准备控制传送、同步传送、中断传送、成批传送。
这里,控制传送是在主机和装置(目标)之间通过控制端点进行的控制用的传送模式。通过该控制传送,可传送用于装置的初始化的配置信息等。
同步传送是与图像数据和话音数据那样的数据的合理性相比,为了优先确保带宽的数据传送而准备的传送模式。在该同步传送中,由于保证在一定周期内可以传送一定量的数据,所以数据的实时性在重要的应用中成为有效的传送模式。
中断传送是为了以比较低的传送速度来传送少量数据而准备的传送模式。
成批传送是为了传送不定期地产生的大量数据而准备的传送模式。在该成批传送中,在由同步传送和中断传送使用的时间以外的空闲时间中进行数据传送,同时检查数据的合理性。因此,实时性不太重要,但在要确保数据的可靠性的数据传送上,是有效的传送模式。
1.2事务处理构成
如图1B所示,USB的成批传送中的事务处理基本上由标记信息包、数据信息包、信号交换信息包这样的三个信息包构成。再有,在同步传送的情况下,不需要信号交换信息包。
这里,标记信息包是用于主机请求装置(目标)的端点的读或写的情况等的信息包。该标记信息包例如有PID(OUT、IN、SOF、SETUP等的信息包ID)、ADDR(装置地址)、ENDP(端点号码)、CRC(CyclicRedundancy Check;循环冗余校验)的字段。
数据信息包是用于传送数据的实体的信息包,有PID(DATA0、DATA1)、DATA(数据的实体)、CRC的字段。
信号交换信息包是用于接收端向发送端传送在数据接收上是否成功的信息包,有PID(ACK、NAK、STALL)的字段。
在OUT事务处理(主机向装置输出信息的事务处理)中,如图1C所示,首先,主机向装置传送OUT标记信息包。接着,主机向装置传送OUT的数据信息包。然后,如果成功接收了OUT的数据信息包,则装置向主机传送ACK的信号交换信息包。
另一方面,在IN事务处理(主机从装置输入信息的事务处理)中,如图1D所示,首先,主机向装置传送IN标记信息包。然后,接收到IN标记信息包的装置向主机传送IN的数据信息包。随后,如果成功接收了IN的数据信息包,则主机向装置传送ACK的信号交换信息包。
在图1C、图1D中,“D←H”意味着从主机向装置传送信息,而“D→H”意味着从装置向主机传送信息(以下的说明和附图也同样)。
1.3Bulk-Only
USB的装置被分类为各个级别。而且,硬盘驱动器和光盘驱动器等装置属于被称为大容量存储的级别,在该大容量存储中,有根据电子装置的厂家等形成的CBI(Control/Bulk/Interrupt)和Bulk-Only等标准。
而且,在CBI标准中,如图2A所示,装置准备有控制、成批输出、成批输入、中断的端点EP0、1、2、3。这里,在端点EP0中传送USB层的控制的信息包和命令的信息包。在EP1中传送OUT数据(从主机传送到装置的数据),在EP2中传送IN数据(从装置传送到主机的数据),在EP3中传送中断IN的信息包。再有,是否将EP1~15的某一个分配给成批输出、成批输入、中断IN的端点,在装置侧是任意的。
另一方面,在Bulk-Only标准中,如图2B所示,装置准备有控制、成批输出、成批输入的端点EP0、1、2。这里,在端点EP0中传送USB层的控制的信息包。在EP1中传送命令(CBW)和OUT数据,在EP2中传送状态(CSW)和IN数据的信息包。再有,是否将EP1~15的某一个设定在成批输出、成批输入的端点上,在装置侧是任意的。
这里,CBW(Command Block Wrapper)是包含命令块和与其相关信息的信息包,在图3中示出其格式。CSW(Command Status Wrapper)是包含命令块状态的信息包,图4表示其格式。
在图3中,dCBWSignature是将该信息包作为CBW来识别的信息,dCBWTag是命令块的标识符,将dCBWData Transfer Length指定为在数据阶段中传送的数据的长度。此外,bmCBWFlags是用于指定传送方向的标记,dCBWLUN是本机单元号码,bCBWCBLength是命令长度,CBWCB是将ATA/ATAPI或SCSI等命令进行盒化来记述的命令块。
在图4中,dCSWSignature是将该信息包作为CSW来识别的信息。dCSWTag是状态块的标识符,写入与爱CSW对应的CBW的dCBWTag的值。CSWDataResidue是由CBW的dCBWDataTransferLength指定的数据的长度和装置实际处理的数据的长度的差分,bCSWStatus是状态块。
下面,用图5A、图5B说明图2B的Bulk-Only标准中的数据的写入处理、读出处理。
在主机对装置写入数据的情况下,如图5A所示,首先,主机进行将CBW传送到装置的命令阶段(命令传输)。具体地说,主机将指定端点EP1的标记信息包传送到装置,接着,将CBW(参照图2B的A1、图3)传送到装置的端点EP1。在该CBW中包含写命令。然后,如果从装置将ACK的信号交换(H.S)返回到主机,则结束命令阶段。
如果结束命令阶段(命令传输),则移动至数据阶段(数据传输)。在该数据阶段中,首先,主机将指定端点EP1的标记信息包传送到装置,接着,将OUT数据(参照图2B的A2)传送到装置的端点EP1。然后,如果从装置向主机返回ACK的信号交换,则结束一个事务处理。随后,重复进行这样的事务处理,如果由CBW的dCBWDataTransferLength(参照图3)指定的数据长度量的数据被传送,则结束数据阶段。
如果数据阶段(数据传输)结束,则移动至状态阶段(状态传输)。在该状态阶段中,首先,主机将指定端点EP2的标记信息包传送到装置。于是,装置将处于端点EP2的CSW(参照图2B的A3、图4)传送到主机。随后,如果从主机将ACK的信号交换返回到装置,则结束状态阶段。
在主机读出数据的情况下,如图5B所示,首先,主机将指定端点EP1的标记信息包传送到装置,接着,将CBW传送到装置的端点EP1。该CBW包含读命令。然后,如果从装置将ACK的信号交换返回到主机,则结束命令阶段。
命令阶段结束后移动到数据阶段。在该数据阶段中,首先,主机将指定端点EP2的标记信息包传送到装置。于是,装置将处于端点EP2的IN数据(参照图2B的A4)传送到主机,如果从主机将ACK的信号交换返回到装置,则结束一个事务处理。然后,重复进行这样的事务处理,如果由CBW的dCBWDataTransferLength指定的数据长度量的数据被传送,则结束数据阶段。
如果数据阶段结束后移动到状态阶段。该状态阶段的处理与图5A的数据写入处理的情况相同。
2.本实施例的特征
2.1区域切换
在图2A所示的CBI标准中,有主机每隔一定期间将标记传送到装置的标准。因此,具有加重主机的处理负荷和接受该标记的装置的处理负荷的缺点。
因此,目前,图2B的Bulk-Only标准正成为主流。
但是,在该Bulk-Only标准中,作为通过一个端点传送的信息,分配了多种信息。具体地说,在图2B中,作为通过成批输出端点EP1传送的信息,分配了命令(CBW)和OUT数据,作为通过成批输入端点EP2传送的信息,分配了状态(CSW0和IN数据。因此,主机和装置需要判别通过各端点传送的信息是哪个信息,在Bulk-Only标准中,主机和装置判断目前的阶段是哪个阶段,进行该信息的判别。
例如,在图5A、图5B的B1、B2中,当前的阶段是命令阶段,所以将通过端点EP1传送的信息判断为CBW(命令)。此外,在B3、B4中,当前的阶段是数据阶段,所以将通过端点EP1传送的信息判断为OUT数据,将通过端点EP2传送的信息判断为IN数据。此外,在B5、B6中,当前的阶段是状态阶段,所以将通过端点EP2传送的信息判断为CSW(状态)。
而且,在Bulk-Only标准中,由于在主机和装置之间进行数据传送,以便使阶段始终一致,所以即使在对一个端点分配多个信息(CBW和OUT数据、CSW和IN数据)的情况下,也可以进行合适的数据传送。
但是,在Bulk-Only标准中,判明存在以下问题。
例如,在图6A~图6D中示出本实施例的比较例的方法。在该比较例中,如图6A所示,在命令阶段中,对于以端点EP1作为入口的FIFO(EP1)600来说,写入来自主机的CBW(命令)。
于是,如图6B所示,装置侧的CPU(固件,处理部件)以先入先出方式读出写入到该FIFO600中的CBW,进行命令解释。这种情况下,在CPU的命令解释结束之前,对于FIFO600不能写入来自主机的数据。
因此,如图6C所示,移动到数据阶段,即使在从主机传送OUT数据的标记的情况下,装置也对主机返回NAK。
然后,如图6D所示,以CPU的命令解释结束,FIFO600变为空的情况为条件,来自主机的OUT数据被写入到FIFO600,该OUT数据在后级的硬盘驱动器等装置中进行DMA传送。
于是,在图6A~图6D的比较例中,在CPU进行命令解释期间,OUT数据不写入到FIFO600。因此,在该期间的装置侧的处理迟缓,会降低有效的数据传送速度。
这种情况下,在USB1.1中总线的传送速度低,所以图6B、图6C所示的装置侧的处理迟缓几乎不成为问题。
但是,在USB2.0的HS模式中以高速的480Mbps进行数据传送。因此,从主机通过USB高速地传送数据。因此,如果装置侧的处理迟缓,装置不能对付这种高速传送的数据的处理,则***整体的有效数据传送速度大幅度下降。
特别是在装置侧,从低成本化的要求来看,使用例如以20~50MHz左右的时钟频率进行工作的便宜的CPU的情况居多。因此,在图6B、图6C的命令解释上非常花费时间,有效的数据传送速度的迟缓成为更深刻的问题。
因此,在本实施例中,为了解决这样的问题,采用按照阶段(传输)的切换来切换缓冲器的存储区域的方法。
更具体地说,在如图7A所示的本实施例中,除了用于写入OUT数据(第2信息)的EP1区域10(第2存储区域,数据存储区域)以外,在作为信息包存储部件的缓冲器上还准备用于写入CBW(第1信息,命令块)的CBW区域12(第1存储区域,命令存储区域)。
这里,EP1区域10和CBW区域12都是将成批输出的端点EP1作为入口的存储区域。此外,将EP1区域10进行设定(FIFO设定),以便先输入的信息被先输出,将CBW区域12进行设定(随机存取设定),以便能够进行信息的随机存取。
在本实施例中,在命令阶段(第1阶段)中开关SW(切换部件)被切换到CBW区域12侧,从主机传送的CBW被写入到CBW区域12。于是,CPU(固件,处理部件)读出写入到该CBW区域12中的CBW,进行命令解释。这种情况下,CBW区域12被设定为可随机存取,所以CPU可以高速地读出CBW区域12的任意地址的信息。
如图7B所示,如果从命令阶段(第1阶段)移动到数据阶段(第2阶段),则开关SW被切换到EP1区域10侧。由此,能够将来自主机的OUT数据写入到EP1区域10。然后,如果CPU的命令解释结束,则起动将EP1区域10的OUT数据传送到后级的硬盘驱动器等装置的DMA传送。
例如,在图6C的比较例中,在CPU进行命令解释期间,不能接收来自主机的OUT数据,不能对主机返回NAK。
相反,在本实施例中,如图7B所示,在CPU进行命令解释期间,也接收来自主机的OUT数据,并可写入到EP1区域10。因此,可以对主机返回ACK,实现处理的高速化。
特别是在USB2.0中,从主机高速传送数据。因此,如图6C的比较例所示,如果对主机持续返回NAK,则会损失总线频带,不能灵活使用USB2.0的高速数据传送。
相反,在本实施例中,如图7B所示,可以将ACK返回到主机,所以可以将总线频带的损失抑制到最小限度,可以产生USB2.0的高速数据传送,可以提高有效的数据传送速度。
此外,在比较例中,如图8A所示,CBW被存储到先进先出的FIFO600中。因此,CPU在命令解释时需要从FIFO600的开头地址起依次读出CBW。其结果,需要花费时间,直至读出命令解释上重要的数据长度(图3的dCBWDataTransferLength)和命令(CBWCB),使命令解释的处理更加迟缓。
相反,在本实施例中,如图8B所示,CBW被存储在可随机存取的CBW区域12中。因此,CPU能够首先读出命令解释上重要的数据长度和命令,可以节约命令解释的处理时间。由此,可以进一步提高有效的数据传送速度。
于是,在本实施例中,即使在CBW区域12(存储第1信息的第1存储区域)的开头地址以外的区域中,写入数据长度(第2信息的长度信息)和命令(指示传送第2信息的命令块)的情况下,CBW区域12也被设定为可随机存取,所以可以首先读出数据长度和命令,提高有效的数据传送速度。
再有,为了向后级的装置(硬盘驱动器等)进行将数据高效率地DMA传送,对于EP1区域10来说,期望将信息设定在先进先出的区域(FIFO设定)中。这种情况下,通过由串联连接的寄存器、存储器等来构成,可以将EP1区域10设定在先进先出的区域中,也可以如后述那样,通过设法进行RAM的地址控制,而设定在先进先出的区域中。
2.2构成例
图9表示本实施例的数据传送控制装置的构成例。
本实施例的数据传送控制装置包括收发机宏块20、SIE30、端点管理电路40、缓冲器管理电路50、缓冲器60、成批传送管理电路70、DMACS0。再有,本发明的数据传送控制装置不需要包含图9所示的全部电路块,也可以省略其中的一部分来构成。
这里,收发信机宏块20是用于实现USB(第1总线)的FS模式和HS模式中的数据传送的电路。作为该收发信机宏块20,例如可以使用依据对USB2.0的物理层电路、逻辑层电路的一部分进行定义的UTMI(USB2.0 Transceiver Macrocell Interface)中的宏块单元。该收发信机宏块20包括收发信机电路22、时钟生成电路24。
收发信机电路22包括使用差动信号DP、DM来发送接收USB上的数据的模拟前置电路(接收电路、发送电路)。此外,包括进行比特填充、非比特填充、串并行变换、NRZI解码、NRZI编码、采样时钟生成等处理的电路。
时钟生成电路24是生成数据传送控制装置使用的工作时钟、以及在采样时钟的生成中使用的时钟的电路,包括生存480MHz和60MHz的时钟的PLL及振荡电路。
SIE(Serial Interface Engine;串行接口引擎)是进行USB的信息包传送处理等各种处理的电路,包括信息包处理电路32、停止和再继续控制电路34、事务管理电路36。
信息包处理电路32是进行首标和数据组成的信息包的组装(生成)和分解等的电路,包括进行CRC生成和解读的CRC处理电路33。
停止和再继续控制电路34是进行停止和再继续时的顺序控制的电路。
事务管理电路36是管理由标记、数据、信号交换等的信息包构成的事务的电路。具体地说,在接收到标记信息包的情况下,确认是否是送给自身,在送给自身的情况下,在主机之间进行数据信息包的传送处理,然后,进行信号交换信息包的传送处理。
端点管理电路40是管理缓冲器60的各存储区域入口的端点的电路,包括存储端点的属性信息的寄存器(寄存器组)等。
缓冲器管理电路50是管理例如由RAM等构成的缓冲器60的电路。更具体地说,生成写入地址和读出地址,进行向缓冲器60的数据写入处理和来自缓冲器60的数据读出处理。
缓冲器60(信息包存储部件)暂时存储通过USB传送的数据(信息包),具有补偿USB(第1总线)中的数据传送速度和EBUS(第2总线)中的数据传送速度的速度差的功能。再有,EBUS是连接到硬盘驱动器和CD驱动器等装置(大容量存储装置)的外部总线。
在本实施例中,作为通过一个端点传送的信息,在分配多种信息的情况下,在该缓冲器60上准备(确保)第1信息(例如命令块)用的第1存储区域(例如命令存储区域)和第2信息(例如数据)用的第2存储区域(例如数据存储区域)。
成批传送管理电路70是用于管理USB中的成批传送的电路。
DMAC80是用于通过EBUS进行DMA传送的DMA控制器,包含DMA计数器82。而且,DMA计数器82是对通过EBUS传送的数据的量(传送数)进行计数的电路。
2.3详细的构成例
图10表示事务管理电路36(SIE)、端点管理电路40、缓冲器管理电路50、缓冲器60的详细的构成例。
缓冲器60(RAM)包括:存储分配给端点EP1的信息的CBW(命令块)的CBE区域61;存储分配给EP0的信息的控制的EP0区域62;存储分配给EP1的信息的OUT数据的EP1区域63;分配给EP2的信息的IN数据的EP2区域64。
在图10中,对CBW区域61进行设定,以便通过CPU(固件,处理部件)可进行随机存取。另一方面,将EP0、EP1、EP2区域62、63、64进行设定(FIFO设定),使得先输入的信息可先输出。
事务管理电路36将通过USB传送的写入数据SIEWrData(写入信息包)输出到缓冲器60,并从缓冲器60输入读出数据SIERdData(读出信息包)。
事务管理电路36对缓冲器管理电路50输出写入请求信号SIEWrReq、读出请求信号SIERdReq,并从缓冲器管理电路50接收写入确认信号SIRWrAck、读出确认信号SIERdAck。
事务管理电路36对端点管理电路40输出事务结束信号TranEndPulse、事务状态信号TranStatus、端点号码指定信号EPnum、传送方向指定信号Direction,并从端点管理电路40接收端点存在信号Epexist。
端点管理电路40包括用于记述端点的属性信息(端点号码、最大信息包量等)的寄存器(寄存器组)42、43、44。而且,根据来自事务管理电路36的各种信号、以及寄存器的属性信息,生成端点选择信号Epsel,输出到缓冲器管理电路50。
端点管理电路40对缓冲器管理电路50输出来自CPU的写入请求信号CPUWrReq、读出请求信号CPURdReq,从缓冲器管理电路50接收对CPU的写入确认信号CPUWrAck、读出确认信号CPURdAck。
包含端点管理电路40的EP0寄存器42是用于记述由USB标准以缺省定义的控制端点的属性信息的寄存器。
EP1、EP2寄存器43、44是用于记述由BULK-Only标准定义的成批输出和成批输入的端点的属性信息的寄存器。再有,是否将端点EP1~15的某一个设定为成批输出或成批输入的端点,在装置侧是任意的。
在EP1寄存器43中,将表示数据的传送方向的标记DIR设定为OUT,将EP1设定为成批输出的端点。
在EP1寄存器43中,将标记EnCBW设定为1。该EnCBW是用于将端点连接到缓冲器60的CBW区域61的标记,EnCBW被设定为1的端点连接到CBW区域61。
在EP2寄存器44中,将表示数据的传送方向的标记DIR设定为IN,将EP2设定为成批输入的端点。
此外,在EP2寄存器44中,将EnCBW设定为0。
缓冲器管理电路50接收来自事务管理电路36和端点管理电路40的写入和读出请求信号、来自端点管理电路40的端点选择信号Epsel,将地址Address和写入脉冲xWR(x意味着负逻辑)输出到缓冲器60。该缓冲器管理电路50包括CBW、EP0、EP1、BP2的地址生成电路51、52、53、54和选择器56。
这里,CBW地址生成电路51生成对于CBW区域61(开头地址a0)的SIEWrData、SIERdData的写入或读出地址AD0。
此外,EP0、EP1、EP2的地址生成电路52、53、54分别生成EP0、EP、1、EP2的区域62、63、64(开头地址a1、a2、a3)的SIEWrData、SIERdData的写入或读出地址AD1、AD2、AD3。
选择器56根据信号Epsel选择地址AD0~3的某一个,作为Address输出到缓冲器60,同时将写入脉冲xWR输出到缓冲器60。具体地说,在通过EPsel选择指定CBW的情况下选择AD0,在选择指定EP0情况下选择AD1,在选择指定EP1的情况下选择AD2,在选择指定EP2的情况下选择AD3,并作为Address输出到缓冲器60。
再有,CBW区域61可通过CPU读出CPURdData。这种情况下,缓冲器管理电路50根据来自端点管理电路40的EPsel或CPURdReq,将用于读出CPURdData的Address输出到缓冲器60。
图11表示事务管理电路36、端点管理电路40、缓冲器管理电路50、缓冲器60的另一构成例。
在与图10不同的图11中,缓冲器60包括CBW、EP0、EP1、EP2使用的FIFO65、66、67、68(例如串联连接的寄存器、存储器)。
包含缓冲器管理电路50的选择器57根据来自端点管理电路40的EPsel,将来自事务管理电路36的SIEWrData输出到缓冲器60,作为WrDataCBW、WrDataEP0、WrDataEP1、WrDataEP2的某一个。
或者,选择器57根据EPsel,选择来自缓冲器60的RdDataCBW、RdDataEP0、RdDataEP1、RdDataEP2的某一个,作为SIERdData输出到事务管理电路36。
更具体地说,在通过EPsel选择指示CBW的情况下,选择WrDataCBW、RdDataCBW,在选择指示EP0的情况下,选择WrDataEP0、RdDataEP0,在选择指示EP1的情况下,选择WrDataEP1、RdDataEP1,而在选择指示EP2的情况下,选择WrDataEP2、RdDataEP2。
然后,对缓冲器60的数据的写入通过来自事务管理电路36的写入脉冲SIEWR进行,来自缓冲器60的数据的读出通过来自事务管理电路36的读出脉冲SIERD进行。
在图11中,也可以将FIFO65(CBW)设定在可随机存取的存储区域中。
2.4工作情况
在图12~图16中,表示说明本实施例的数据传送控制装置的详细工作情况的定时波形图的示例。
2.4.1成功时
图12是命令阶段(参照图5A的B1)开始时的定时波形图,图13是命令阶段结束时的定时波形图。
如图12的C1、C2所示,如果事务管理电路36将Epnum设定为1(端点号码=1),将Direction设定为OUT,则存在成批输出端点EP1的寄存器43(参照图10),所以端点管理电路40如C3所示那样使Epexist有效(H电平)。
此时,如C4所示,端点EP1的EnCBW被设定为H电平(1),所以端点管理电路40如C5所示那样将选择指示CBW区域61的地址AD0的EPsel输出到缓冲器管理电路50。由此,缓冲器管理电路50的选择器56选择由CBW地址生成电路51生成的地址AD0。
然后,如C6所示,如果事务管理电路36使SIEWrReq有效,则如C7所示,缓冲器管理电路50将来自CBW地址生成电路51的AD0=a0作为Address输出到缓冲器60,同时如C8所示,使xWR有效(L电平)。由此,将缓冲器60的CBW区域61的a0作为开头地址,如C9所示,写入CBW(SIEWrData)的0~3字节。然后,如C10所示,使SIEWrAck有效,使确认返回到事务管理电路。
接着,如C11所示,如果事务管理电路36使SIEWrReq有效,则如C12、C13所示,缓冲器管理电路50将AD0=a0+4作为Address输出到缓冲器60,同时使xWR有效。由此,将CBW区域61的a0+4作为开头地址,如C14所示,写入CBW(SIEWrData)的4~7字节。然后,如C15所示,使SIEWrAck有效,将确认返回到事务管理电路36。
通过重复进行以上的写入处理,如图13的C16所示,将CBW的所有的0~30字节(合计为31字节)写入到CBW区域61中。
然后,如C17所示,如果对主机适当返回ACK,则如C18所示,事务管理电路36使TranEndPusel有效,同时如C19所示,将TranStatus设定为Success,将事务成功的情况传送到端点管理电路40。
于是,如C20所示,端点EP1(图10的寄存器43)的EnCBW被设定为L电平(0)。由此,如C21所示,端点管理电路40将选择指示EP1区域63的地址AD2的EPsel输出到缓冲器管理电路50。其结果,在随后的数据阶段(参照图5A的B3)中,缓冲器管理电路50的选择器56选择EP1区域63的地址AD2作为输出到缓冲器60的Address。
于是,在本实施例中,以对于命令阶段(第1阶段)的数据传送的确认ACK返回到主机为条件(参照C17),将端点EP1的EnCBW设定为L电平(参照C20),将从主机向端点EP1传送的数据的写入区域从CBW区域61(第1存储区域)切换为EP1区域63(第2存储区域)(参照C21)。然后,在数据阶段中,将来自主机的数据写入到切换后的EP1区域63中。
于是,如果按照ACK返回的有无来进行区域切换,则可以用少的处理负荷来实现没有差错的可靠的区域切换。
2.4.2数据长度的差错、CRC差错
图14是在命令阶段写入的数据长度(CBW的长度)中有差错情况下的定时波形图。
在数据长度上有差错的情况下(数据长度短或长的情况),如图14的D1所示,对主机不返回ACK,而返回NAK。然后,事务管理电路36对端点管理电路40,输出如D2所示的表示在数据长度上有差错的TranStatus。于是,这种情况下,与图13的C20的情况不同,如图14的D3所示,端点EP1的EnCBW未变为L电平。因此,如D4所示,EPsel也不变化,不进行从CBW区域61向EP1区域63的区域切换。此外,所谓在数据长度上有差错,是主机和装置之间存在接口不匹配的可能性,所以该端点被阻塞。
图15是命令阶段中产生CRC差错情况的定时波形图。
在产生CRC差错的情况下,如图15的E1所示,对主机不返回ACK。然后,事务管理电路36对端点管理电路40输出E2所示的表示CRC差错的TranStatus。于是,在这种情况下,与图13的C20的情况不同,如图15的E3所示,端点EP1的EnCBW不变为L电平。因此,如E4所示,EPsel也不变化,不进行从CBW区域61向EP1区域63的区域切换。其结果,未接收到ACK的主机进行重写处理,在能够再传送CBW的情况下,将该CBW不是写入到EP1区域63,而是写入到CBW区域61。由此,可以实现合适的数据传送。
2.4.3触发差错
图16是在命令阶段中产生触发差错情况下的定时波形图。
首先,用图17A、图17B说明触发差错。
在USB中,为了在主机和装置之间将事务的排序进行同步,如图17A所示,作为数据的PID,准备DATA0和DATA1,同时在主机和装置中具有触发比特(主机和装置之间用于将事务的排序进行同步的比特)。
而且,如图17A所示,主机和装置以判断为事务成功为条件,来触发数据的PID中包含的DATA0和DATA1及触发比特。
例如,如图17A的G1所示,如果相对于发送数据(DATA1)适当返回ACK,则主机判断为事务成功,触发主机侧的触发比特。
此外,如G2所示,如果从主机传送下次要到来的数据(PID=DATA1),将ACK返回到主机,则装置判断为事务成功,触发装置侧的触发比特。
另一方面,如图17B的G3所示,在对发送的数据(PID=DATA1)未适当地返回ACK的情况下,主机判断为事务不成功,不触发主机侧的触发比特。然后,如G4所示,对装置再传送PID=DATA1的数据。
于是,如G5所示,由于具有PID=DATA0的数据,可以传送PID=DATA1的数据,所以装置判断为触发差错,不触发装置侧的触发比特。然后,在这种情况下,装置废弃该PID=DATA1的数据,并且对主机返回ACK。于是,在主机和装置之间可以确保事务的连续性。
在本实施例中,在发生这样的触发差错的情况下,即使对主机返回确认ACK,也不进行从CBW区域61向EP1区域63的区域切换。
即,在触发差错的情况下,如图16的F1所示,对主机返回ACK。然后,事务管理电路36对端点管理电路40输出如F2所示的表示触发差错的TranStatus。于是,在这种情况下,如图16的F3所示,端点EP1的EnCBW不变为L电平。因此,如F4所示,EPsel也不变化,不进行从CBW区域向EP1区域63的区域切换。由此,即使在触发差错的情况下也可以实现合适的数据传送处理。
2.5比较例和本实施例的比较
在图18A中示出比较例(图6A~图6D)的定时波形图的示例,在图18B中示出本实施例的定时波形图。图18A、图18B是缓冲器的存储区域为双缓冲器构造情况下的定时波形图。
例如,在图18A的比较例中,在命令阶段中,如H1所示,来自主机的CBW被写入在EP1用的FIFO(图6A的600)中。此时,FIFO在双缓冲器构造的情况下,如H2所示,对于来自主机的第一个OUT数据,可以在FIFO中写入。但是,对于下一个OUT数据不能在FIFO中写入,所以如H3所示,对于来自主机的下个OUT数据的请求,将NYET返回。
然后,如H4所示,即使主机可发送查询在FIFO中是否有空缺的PING信息包,如H5所示,装置也将NAK返回。即,在CPU的命令解释结束之前,装置对主机继续返回NAK。然后,命令解释结束,如果在FIFO中产生空缺,则如H6所示,接收来自主机的OUT数据,可以在FIFO中写入。
对此,在本实施例中,如图18B的H7所示,在CBW区域中写入CBW,如果适当地返回ACK,则如H8所示,EnCBW变为L电平(参照图13的C20)。于是,如图7B中说明的那样,进行从CBW区域向EP1区域的切换,将端点EP1连接到EP1区域。
因此,如H9所示,可以将端点中的来自主机的OUT数据写入到该EP1区域,可以对主机返回ACK。然后,如H10所示,如果命令解释结束,则如H11所示,然后使用该EP1区域可以开始后级的硬盘驱动器等之间的DMA传送,可以高效率地传送来自USB的数据。
于是,在本实施例中,与比较例相比,可以早开始数据的DMA传送,所以可以将总线频带的损失抑制到最小限度,与比较例相比,可以提高有效的数据传送速度。
图19A表示比较例的情况下的固件(CPU)的处理流程图,图19B表示本实施例情况下的固件的处理流程图。
在图19A的比较例中,固件首先判断OUT事务是否结束(步骤S1)。即,等待从装置返回图18A的H1的ACK。
然后,在判断为OUT事务结束的情况下,固件从EP1用的FIFO中读取CBW(步骤S2)。然后,判断数据长度是否为31字节(数据长度是否合适)(步骤S3),在31字节的情况下进行命令解释(步骤S4),移动至命令处理(步骤S5)。另一方面,在不为31字节的情况下,移动至差错处理(步骤S6)。
在图19B的本实施例中,固件首先判断图18B的H7所示的CBW的事务(对CBW区域的读取)是否正好结束(步骤S11)。然后,在CBW的事务未结束的情况下,判断是否有CBW差错(步骤S12),在CBW差错的情况下移动至差错处理(步骤S16)。另一方面,在没有CBW差错的情况下,返回到步骤S11,等待CBW的事务的结束。
例如,在图14的数据长度差错的情况下,判断为CBW差错,移动至步骤S16的差错处理。另一方面,在图16的触发差错的情况下,不判断为CBW差错,从步骤S12返回到步骤S11。
另一方面,在图13的数据传送成功的情况下,判断为CBW的事务结束,EnCBW变为L电平。然后,固件从CBW区域读取CBW(步骤S13),进行命令解释(步骤S14),移动至命令处理(步骤S15)。这种情况下,如图8A、图8B中的说明,在本实施例中将CBW区域设定为可随机存取,所以与比较例相比,可以尽快结束命令解释,可以尽快移动到DMA传送。
3.电子装置
下面,说明包括本实施例的数据传送控制装置的电子装置的实例。
例如,图20A表示作为一个电子装置的打印机的内部方框图,图21A表示其外观图。CPU(微计算机)510进行***整体的控制等。操作部511用于用户操作打印机。在ROM516中,存储控制程序、字体等,RAM517具有作为CPU510的工作区域的功能。DMAC518是不通过CPU510进行数据传送的DMA控制器。显示板519将打印机的工作状态通知给用户。
通过USB可从个人计算机等其它装置传送的串行的打印数据由数据传送控制装置5000变换为并行的打印数据。然后,变换后的并行打印数据通过CPU510或DMAC518传送到打印处理部(打印机引擎)512。然后,在打印处理部512中,对并行打印数据实施所给与的处理,通过打印头等组成的打印部(进行数据的输出处理的装置)514而打印输出到纸上。
图20B表示作为一个电子装置的扫描仪的内部方框图,图21B表示其外观图。CPU520进行***整体的控制等。操作部521用于用户操作扫描仪。在ROM526中,存储控制程序等,RAM527具有作为CPU510的工作区域的功能。DMAC528是DMA控制器。
通过光源、光电变换器等组成的图像读取部(进行数据的读取处理的装置)522读取原稿的图像,读取出的图像的数据由图像处理部(扫描仪引擎)524进行处理。然后,处理后的图像数据通过CPU520或DMAC528传送到数据传送控制装置500。数据传送控制装置500将该并行的图像数据变换为串行数据,通过USB发送到个人计算机等其他装置。
图20C表示作为一个电子装置的CD-RW驱动器的内部方框图,图21表示其外观图。CPU530进行***整体的控制等。操作部531用于用户操作CD-RW。在ROM536中存储控制程序等,RAM537具有作为CPU530的工作区域的功能。DMAC538是DMA控制器。
由激光器、电机、光学***等组成的读取和写入部(进行数据的取入处理的装置或进行数据的存储处理的装置)533从CD-RW532读取出的数据被输入到信号处理部534,实施纠错处理等所给与的信号处理。然后,实施了信号处理的数据通过CPU530或DMAC538被传送到数据传送控制装置500。数据传送控制装置500将该并行的图像数据变换为串行数据,通过USB发送到个人计算机等其他装置。
另一方面,通过USB从其他装置传送来的串行数据由数据传送控制装置500变换为并行数据。然后,该并行数据通过CPU530或DMAC538被送至信号处理部534。然后,在信号处理部534中对该并行数据实施所给与的信号处理,通过读取和写入部533而存储到CD-RW532中。
在图20A、图20B、图20C中,除了CPU510、520、530以外,还可以分别设置数据传送控制装置500中的用于数据传送控制的CPU。
如果将本实施例的数据传送控制装置用于电子装置,则可以适当进行USB2.0中的HS模式下的数据传送。因此,在用户通过个人计算机等指示打印输出的情况下,至少以实时来结束打印。此外,在对扫描仪指示图像读取后,用户可以在少的延时下观察读取图像。此外,可以高速地进行来自CD-RW的数据的读取、以及对CD-RW的数据的写入。
此外,如果将本实施例的数据传送控制装置用于电子装置,则即使是制造成本便宜的普通的半导体处理器,也可以制造能够进行HS模式的数据传送的数据传送控制装置。因此,可实现数据传送控制装置的低成本化,还可实现电子装置的低成本化。此外,可以提高数据传送的可靠性,还可以提高电子装置的可靠性。
此外,如果将本实施例的数据传送控制装置用于电子装置,则可减轻在CPU上操作的固件的处理负荷,可以使用便宜的CPU。而且,可实现数据传送控制装置的低成本化、小规模化,所以还可实现电子装置的低成本化、小规模化。
作为可以采用本实施例的数据传送控制装置的电子装置,除了上述以外,例如有各种光盘驱动器(CD-ROM、DVD)、光磁盘驱动器(MO)、硬盘驱动器、TV、VTR、摄象机、音响设备、电话机、投影仪、个人计算机、电子笔记本、文字处理器等各种装置。
本发明不限定于本实施例,在本发明的主要精神范围内可以进行各种变形实施。
例如,本发明的数据传送控制装置的构成不限定于图9、图10、图11所示的构成,可进行各种变形实施。
在本实施例中,说明了第1存储区域是CBW区域(命令存储区域),第2存储区域是EP1区域(数据存储区域)的情况,但本发明不限定于此。即,在第1、第2存储区域中存储的信息的种类是任意的。此外,端点中设定的信息的数目也可以在3以上,信息的种类也是任意的。
此外,在本实施例中,说明了对USB的Bulk-Only标准的应用例,但本发明应用的标准不限定于USB的Bulk-Only标准。
此外,第1、第2存储区域的切换方法也不限定于图7A~图19B中详细说明的方法,可进行各种变形实施。
此外,本发明特别期望采用USB2.0中的数据传送,但并不限定于此。例如,即使是基于与USB2.0同样的思想的标准或使USB2.0发展的标准中的数据传送,本发明都可以应用。

Claims (17)

1.一种数据传送控制装置,用于通过总线的数据传送,其特征在于,包括:
缓冲器,在分配包含第1、第2信息的多种信息作为通过一个端点传送的信息的情况下,准备第1信息用的第1存储区域和第2信息用的第2存储区域来对应于一个端点;以及
缓冲器管理电路,在通过总线传送第1信息的第1阶段中,将从主机向端点传送的信息写入到第1信息用的所述第1存储区域,而在通过总线传送第2信息的第2阶段中,将从主机向端点传送的信息写入到第2信息用的所述第2存储区域;
将为第1信息用而准备的所述第1存储区域设定于可进行信息的随机存取的区域;
将为第2信息用而准备的所述第2存储区域设定于将前面输入的信息先输出的区域。
2.如权利要求1的数据传送控制装置,其特征在于:
在存储第1信息的所述第1存储区域的开头地址以外的区域中,写入指示传送第2信息的命令块和通过命令块指示传送的第2信息的长度信息的至少一个信息。
3.如权利要求1的数据传送控制装置,其特征在于:
进行以通用串行总线的规格为标准的数据传送。
4.一种数据传送控制装置,用于通过总线的数据传送,其特征在于:包括:
缓冲器,在分配包含第1、第2信息的多种信息作为通过一个端点传送的信息的情况下,准备第1信息用的第1存储区域和第2信息用的第2存储区域来对应于一个端点;以及
缓冲器管理电路,在通过总线传送第1信息的第1阶段中,将从主机向端点传送的信息写入到第1信息用的所述第1存储区域,而在通过总线传送第2信息的第2阶段中,将从主机向端点传送的信息写入到第2信息用的所述第2存储区域;
以对于所述第1阶段的数据传送的确认被返回到主机为条件,将从主机向端点传送的信息的写入区域从所述第1存储区域切换为所述第2存储区域。
5.如权利要求4的数据传送控制装置,其特征在于:
在主机之间用于进行事务处理的排序同步的数据触发比特中产生差错的情况下,即使在确认被返回到主机的情况下,也不进行从所述第1存储区域向所述第2存储区域的切换。
6.如权利要求4的数据传送控制装置,其特征在于:
进行以通用串行总线的规格为标准的数据传送。
7.一种数据传送控制装置,用于通过总线的数据传送,其特征在于:包括:
缓冲器,在分配包含第1、第2信息的多种信息作为通过一个端点传送的信息的情况下,准备第1信息用的第1存储区域和第2信息用的第2存储区域来对应于一个端点;以及
缓冲器管理电路,在通过总线传送第1信息的第1阶段中,将从主机向端点传送的信息写入到第1信息用的所述第1存储区域,而在通过总线传送第2信息的第2阶段中,将从主机向端点传送的信息写入到第2信息用的所述第2存储区域;
所述第1信息是命令块的信息包;
所述第2信息是根据所述命令块的指示传送的数据的信息包。
8.如权利要求7的数据传送控制装置,其特征在于:
在处理部件解释所述命令块的信息包期间,将数据的信息包写入到所述第2存储区域。
9.如权利要求7的数据传送控制装置,其特征在于:
进行以通用串行总线的规格为标准的数据传送。
10.一种数据传送控制装置,用于通过总线的数据传送,其特征在于,包括:
缓冲器,在分配命令块的信息包和数据的信息包作为通过一个端点传送的信息的情况下,对应于一个端点来准备命令块用的命令存储区域和数据用的数据存储区域;以及
缓冲器管理电路,在从通过总线传送命令块的信息包的命令阶段切换为通过总线传送数据的信息包的数据阶段的情况下,将信息的写入区域从命令块用的所述命令存储区域切换为数据用的数据存储区域,将从主机向端点传送的数据的信息包写入到所述数据存储区域。
11.如权利要求10的数据传送控制装置,其特征在于:
进行以通用串行总线的规格为标准的数据传送。
12.一种电子装置,其特征在于,包括:
如权利要求1至9的任何一项的数据传送控制装置;以及
进行通过所述数据传送控制装置和总线传送的数据的输出处理或取入处理或存储处理的装置。
13.一种电子装置,其特征在于,包括:
如权利要求10或11的任何一项的数据传送控制装置;以及
进行通过所述数据传送控制装置和总线传送的数据的输出处理或取入处理或存储处理的装置。
14.一种数据传送控制方法,用于通过总线的数据传送,其特征在于:
在分配包含第1、第2信息的多种信息作为通过一个端点传送的信息的情况下,在缓冲器上准备第1信息用的第1存储区域和第2信息用的第2存储区域来对应于一个端点;以及
在通过总线传送第1信息的第1阶段中,将从主机向端点传送的信息写入到第1信息用的所述第1存储区域,而在通过总线传送第2信息的第2阶段中,将从主机向端点传送的信息写入到第2信息用的所述第2存储区域;
将为第1信息用而准备的所述第1存储区域设定于可进行信息的随机存取的区域;
将为第2信息用而准备的所述第2存储区域设定于将前面输入的信息先输出的区域。
15.一种数据传送控制方法,用于通过总线的数据传送,其特征在于:
在分配包含第1、第2信息的多种信息作为通过一个端点传送的信息的情况下,在缓冲器上准备第1信息用的第1存储区域和第2信息用的第2存储区域来对应于一个端点;以及
在通过总线传送第1信息的第1阶段中,将从主机向端点传送的信息写入到第1信息用的所述第1存储区域,而在通过总线传送第2信息的第2阶段中,将从主机向端点传送的信息写入到第2信息用的所述第2存储区域;
以对于所述第1阶段的数据传送的确认被返回到主机为条件,将从主机向端点传送的信息的写入区域从所述第1存储区域切换为所述第2存储区域。
16.一种数据传送控制方法,用于通过总线的数据传送,其特征在于:
在分配包含第1、第2信息的多种信息作为通过一个端点传送的信息的情况下,在缓冲器上准备第1信息用的第1存储区域和第2信息用的第2存储区域来对应于一个端点;以及
在通过总线传送第1信息的第1阶段中,将从主机向端点传送的信息写入到第1信息用的所述第1存储区域,而在通过总线传送第2信息的第2阶段中,将从主机向端点传送的信息写入到第2信息用的所述第2存储区域;
所述第1信息是命令块的信息包;
所述第2信息是根据所述命令块的指示传送的数据的信息包。
17.一种数据传送控制方法,用于通过总线的数据传送,其特征在于:
在分配命令块的信息包和数据的信息包作为通过一个端点传送的信息的情况下,在缓冲器上准备命令块用的命令存储区域和数据用的数据存储区域来对应于一个端点;以及
在从通过总线传送命令块的信息包的命令阶段切换为通过总线传送数据的信息包的数据阶段的情况下,将信息的写入区域从命令块用的所述命令存储区域切换为数据用的数据存储区域,将从主机向端点传送的数据的信息包写入到所述数据存储区域。
CNB021193835A 2001-05-14 2002-05-14 数据传送控制装置、电子装置和数据传送控制方法 Expired - Lifetime CN100351816C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001143429A JP3680762B2 (ja) 2001-05-14 2001-05-14 データ転送制御装置及び電子機器
JP143429/01 2001-05-14

Publications (2)

Publication Number Publication Date
CN1385794A CN1385794A (zh) 2002-12-18
CN100351816C true CN100351816C (zh) 2007-11-28

Family

ID=18989582

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB021193835A Expired - Lifetime CN100351816C (zh) 2001-05-14 2002-05-14 数据传送控制装置、电子装置和数据传送控制方法

Country Status (8)

Country Link
US (1) US7051124B2 (zh)
EP (1) EP1260909B1 (zh)
JP (1) JP3680762B2 (zh)
KR (2) KR100474220B1 (zh)
CN (1) CN100351816C (zh)
AT (1) ATE303632T1 (zh)
DE (1) DE60205809T2 (zh)
TW (1) TWI256551B (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3680763B2 (ja) * 2001-05-14 2005-08-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP3955512B2 (ja) * 2002-08-27 2007-08-08 富士通株式会社 データ処理装置及びパケット判別方法
US6993619B2 (en) 2003-03-28 2006-01-31 International Business Machines Corporation Single request data transfer regardless of size and alignment
JP4063200B2 (ja) 2003-11-18 2008-03-19 セイコーエプソン株式会社 データ転送制御装置、及び電子機器
JP3979381B2 (ja) * 2003-11-18 2007-09-19 セイコーエプソン株式会社 データ転送制御装置、及び電子機器
JP4412191B2 (ja) 2005-02-04 2010-02-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US7640378B2 (en) * 2005-03-11 2009-12-29 Icron Technologies Corporation Method and apparatus for improving the performance of USB mass storage devices in the presence of long transmission delays
JP4601467B2 (ja) * 2005-03-16 2010-12-22 三洋電機株式会社 記録装置、記録システム及びデータ記録方法
JP4337783B2 (ja) 2005-06-30 2009-09-30 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP4442523B2 (ja) * 2005-06-30 2010-03-31 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP4404023B2 (ja) * 2005-06-30 2010-01-27 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP2007172574A (ja) 2005-11-25 2007-07-05 Seiko Epson Corp 集積回路装置及び電子機器
JP4391548B2 (ja) 2007-04-20 2009-12-24 株式会社メディアロジック デバイスドライバ
TW200945052A (en) * 2008-04-21 2009-11-01 Ralink Technology Corp Method for increasing USB transmission rate
KR101012208B1 (ko) * 2008-06-17 2011-02-08 주식회사 동부하이텍 Usb디바이스 내의 엔드 포인트 메모리 효율 증대법
US7818486B2 (en) * 2008-08-15 2010-10-19 Icron Technologies Corporation Method and apparatus for connecting USB devices to a remote computer
US20100306442A1 (en) * 2009-06-02 2010-12-02 International Business Machines Corporation Detecting lost and out of order posted write packets in a peripheral component interconnect (pci) express network
CN102023957B (zh) * 2009-09-18 2012-10-17 联芯科技有限公司 Usb接口模拟多串口传输数据的方法及usb复合设备
TWI450101B (zh) * 2010-09-21 2014-08-21 Insyde Software Corp 遠端資料傳輸方法及使用此方法的虛擬媒體系統
US8566934B2 (en) 2011-01-21 2013-10-22 Gigavation, Inc. Apparatus and method for enhancing security of data on a host computing device and a peripheral device
DE112012003293T5 (de) 2011-08-10 2014-05-08 Gita Srivastava Vorrichtung und Verfahren zur Verbesserung der Datensicherheit in einer Host-Computer-Vorrichtung und einer Peripherie-Vorrichtung
TW201331925A (zh) * 2012-01-19 2013-08-01 Sitronix Technology Corp 傳輸介面與傳輸方法及其驅動電路與顯示裝置及電子裝置
JP6065542B2 (ja) * 2012-11-26 2017-01-25 ブラザー工業株式会社 画像処理装置および通信プログラム
US9244694B2 (en) 2012-12-27 2016-01-26 Intel Corporation Executing a command within a transport mechanism based on a get and set architecture
CN107544936A (zh) * 2017-09-18 2018-01-05 珠海亿智电子科技有限公司 一种基于usb烧写的数据传输方法
CN108062281B (zh) * 2017-11-07 2020-06-30 珠海研果科技有限公司 一种解决大容量存储设备与pc端进行数据拷贝出现断线的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0893755A2 (de) * 1997-07-21 1999-01-27 Siemens Aktiengesellschaft Pufferspeicheranordnung
DE19900331A1 (de) * 1998-01-07 1999-07-08 Nat Semiconductor Corp Vorrichtung und Verfahren zur Implementierung eines USB-Endpunktkanals mit doppelter Pufferunterstützung
DE19900345A1 (de) * 1998-01-07 1999-07-08 Nat Semiconductor Corp Vorrichtung und Verfahren für die Bereitstellung einer Schnittstelle für eine Verbundsteuereinheit eines Universellen Seriellen Buses
CN1269550A (zh) * 1999-03-31 2000-10-11 国际商业机器公司 分区计算机***中的动态i/o分配

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5129072A (en) * 1989-03-08 1992-07-07 Hewlett-Packard Company System for minimizing initiator processor interrupts by protocol controller in a computer bus system
IL100127A0 (en) * 1991-03-11 1992-08-18 Future Domain Corp Scsi controller
JP2868141B2 (ja) * 1992-03-16 1999-03-10 株式会社日立製作所 ディスクアレイ装置
US5708668A (en) * 1992-05-06 1998-01-13 International Business Machines Corporation Method and apparatus for operating an array of storage devices
US5504868A (en) * 1994-03-01 1996-04-02 Adaptec, Incorporated SCSI command descriptor block parsing state machine
US5568443A (en) * 1995-09-08 1996-10-22 Smithills Multimedia Systems, Inc. Combination dual-port random access memory and multiple first-in-first-out (FIFO) buffer memories
US6185641B1 (en) * 1997-05-01 2001-02-06 Standard Microsystems Corp. Dynamically allocating space in RAM shared between multiple USB endpoints and USB host
US5944797A (en) 1997-05-28 1999-08-31 International Business Machines Corporation Data mover hardware controlled processing in a commanding system and in a commanded system for controlling frame communications on a link
US6244762B1 (en) * 1997-11-25 2001-06-12 Seiko Epson Corporation Printing apparatus, method of controlling it and storage medium
KR100290729B1 (ko) * 1998-01-07 2001-05-15 클라크 3세 존 엠. 유에스비 등시 데이타를 전송 및 수신하는 장치 및 방법
KR19990069859A (ko) * 1998-02-13 1999-09-06 구본준 유에스비의 피포
US6065087A (en) * 1998-05-21 2000-05-16 Hewlett-Packard Company Architecture for a high-performance network/bus multiplexer interconnecting a network and a bus that transport data using multiple protocols
US6192446B1 (en) * 1998-09-03 2001-02-20 Micron Technology, Inc. Memory device with command buffer
US6463498B1 (en) * 1998-10-30 2002-10-08 Agilent Technologies, Inc. Transmission of FCP response in the same loop tenancy as the FCP data with minimization of inter-sequence gap
JP3608441B2 (ja) 1999-07-15 2005-01-12 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US6715055B1 (en) * 2001-10-15 2004-03-30 Advanced Micro Devices, Inc. Apparatus and method for allocating buffer space
US6834319B1 (en) * 2002-03-21 2004-12-21 Advanced Micro Devices, Inc. Tunnel device for an input/output node of a computer system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0893755A2 (de) * 1997-07-21 1999-01-27 Siemens Aktiengesellschaft Pufferspeicheranordnung
DE19900331A1 (de) * 1998-01-07 1999-07-08 Nat Semiconductor Corp Vorrichtung und Verfahren zur Implementierung eines USB-Endpunktkanals mit doppelter Pufferunterstützung
DE19900345A1 (de) * 1998-01-07 1999-07-08 Nat Semiconductor Corp Vorrichtung und Verfahren für die Bereitstellung einer Schnittstelle für eine Verbundsteuereinheit eines Universellen Seriellen Buses
CN1269550A (zh) * 1999-03-31 2000-10-11 国际商业机器公司 分区计算机***中的动态i/o分配

Also Published As

Publication number Publication date
TWI256551B (en) 2006-06-11
CN1385794A (zh) 2002-12-18
DE60205809D1 (de) 2005-10-06
US20020167851A1 (en) 2002-11-14
US7051124B2 (en) 2006-05-23
KR20020087861A (ko) 2002-11-23
KR20040103831A (ko) 2004-12-09
EP1260909A3 (en) 2003-05-07
EP1260909A2 (en) 2002-11-27
EP1260909B1 (en) 2005-08-31
JP3680762B2 (ja) 2005-08-10
JP2002344537A (ja) 2002-11-29
DE60205809T2 (de) 2006-06-22
KR100474220B1 (ko) 2005-03-08
KR100485294B1 (ko) 2005-04-27
ATE303632T1 (de) 2005-09-15

Similar Documents

Publication Publication Date Title
CN100351816C (zh) 数据传送控制装置、电子装置和数据传送控制方法
CN1282094C (zh) 数据传送控制装置及数据传送控制方法
CN1213372C (zh) 数据传送控制装置、电子机器及数据传送控制方法
CN1237455C (zh) 数据传输控制装置、电子设备、及数据传输控制方法
CN1147802C (zh) 大规模集成电路及其连接总线和控制方法
CN1100295C (zh) 计算机***及其输入输出指令的发送方法
CN1551592A (zh) 数据传输控制装置、电子设备及数据传输控制方法
CN1160634C (zh) 串行/并行转换电路、数据传送控制装置和电子设备
CN1292121A (zh) 数据传输控制装置及电子设备
CN1293410A (zh) 数据传送控制装置和电子装置
CN1617160A (zh) 用于识别标准卡以及非标准卡的卡识别***
CN1596401A (zh) 非易失性存储器装置的控制方法
CN1607513A (zh) 数据传输控制装置、电子设备以及数据传输控制方法
CN1689284A (zh) 网络交换装置和网络交换方法
CN1264081A (zh) 将生产测试接口接至全局串行总线的方法和装置
CN1912926A (zh) 可中断图形处理单元处理多个程序的方法和图形处理单元
CN100346285C (zh) 处理器芯片与存储控制***及方法
CN1138211C (zh) 数据传输控制装置及电子设备
CN1145876C (zh) 网络***和网络接口卡
CN1119001C (zh) 数据发送装置及其方法
CN1275164C (zh) 数据传输控制***、电子设备、及数据传输控制方法
CN1932783A (zh) 存储器控制装置
CN1821946A (zh) 一种存储***以及存储数据的方法和读取数据的方法
CN1146801C (zh) 数据传送控制装置和电子装置
CN1179521C (zh) 数据传输控制装置和电子仪器

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20071128