CN1213372C - 数据传送控制装置、电子机器及数据传送控制方法 - Google Patents

数据传送控制装置、电子机器及数据传送控制方法 Download PDF

Info

Publication number
CN1213372C
CN1213372C CNB021193827A CN02119382A CN1213372C CN 1213372 C CN1213372 C CN 1213372C CN B021193827 A CNB021193827 A CN B021193827A CN 02119382 A CN02119382 A CN 02119382A CN 1213372 C CN1213372 C CN 1213372C
Authority
CN
China
Prior art keywords
data
information
mentioned
storage area
end point
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 - Fee Related
Application number
CNB021193827A
Other languages
English (en)
Other versions
CN1385793A (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 CN1385793A publication Critical patent/CN1385793A/zh
Application granted granted Critical
Publication of CN1213372C publication Critical patent/CN1213372C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory

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

在分配数据和CSW作为通过一个终端点传送的信息时,设置准备有EP2区域(14)(FIFO设定的数据存储区域)和CSW区域(16)(可随机存取的状态存储区域)的缓冲器。然后,在从USB的数据阶段(数据传输)切换到状态阶段(状态传输)时,将信息的读出区域从EP2区域(14)切换到CSW区域(16),从CSW区域(16)读出从终端点EP2向主机传送的IN数据。设置成功状态用的CSW0区域和不成功状态用的CSW1区域,并预先写入设定了成功或不成功用的默认信息的状态块分组。

Description

数据传送控制装置、电子机器及数据传送控制方法
技术领域
本发明涉及数据传送控制装置、电子机器及数据传送控制方法。
背景技术
近年来,USB(Universal Serial Bus)作为用于连接个人计算机和外围机器(广义为电子机器)的接口规范引人瞩目。USB具有能将以往以各种规范的连接器连接的鼠标、键盘和打印机等外围机器,用相同规范的连接器进行连接,并具有能实现所谓的即插即用和热插的优点。
另一方面,与同为串行总线接口规范的正显露头角的IEEE1394相比,USB存在传送速度慢的问题。
因此,正在制定可与现有的USB1.1规范互换的、能以比USB1.1高得多得高速480Mbps(HS模式)的传送速度的USB2.0规范,引人瞩目。
USB2.0在HS(High Speed)模式时以480Mbps的速度进行数据传送。因此,具有能作为要求高速传送速度的硬盘驱动器和光盘驱动器等存储机器的接口来使用的优点。
但是,另一方面,连接到USB总线的数据传送控制装置必须处理以480Mbps的高速传送来的数据。因此,如果数据传送控制装置的处理速度、控制数据传送控制装置的固件(CPU)的处理速度慢的话,则存在不能确保实际的传送速度,导致总线带宽损失的问题。
发明内容
鉴于上述的问题,本发明的目的是提供能提高实际的总线传送速度的数据传送控制装置、电子机器及数据传送控制方法。
为了解决上述的问题,本发明为用于通过总线的传送数据的数据传送控制装置,与本发明相关的数据传送控制装置包含:缓冲器,该缓冲器在分配包含第一、第二信息的多种信息作为通过一个终端点(end point)传送的信息时,对应于一个终端点,准备有第一信息用的第一存储区域和第二信息用的第二存储区域;缓冲器管理电路,该电路在通过总线传送第一信息的第一阶段,从第一信息用的第一存储区域读出从终端点向主机传送的信息,在通过总线传送第二信息的第二阶段,从第二信息用的第二存储区域读出从终端点向主机传送的信息。
根据本发明,在缓冲器中设有分配到相应终端点的第一信息用的第一存储区域和分配到相同终端点的第二信息用的第二存储区域。在第一阶段(第一传输)中,从第一存储区域中读出从终端点向主机传送的信息,在第二阶段(第二传输)中,从第二存储区域中读出从终端点向主机传送的信息。
这样,即使在多种信息分配到一个终端点的情况下,在进行从第一存储区域读出第一信息的期间,可对第二存储区域的第二信息进行处理。因此,从第一阶段移到第二阶段时,可使在第二阶段对第二信息的处理提前结束,可提高实际的总线传送速度。
此外,本发明也可以将为第一信息准备的上述第一存储区域设定为先入先出FIFO的区域,将为第二信息准备的上述第二存储区域设定为可随机存取的区域。
这样,可提高对写入第二存储区域的第二信息进行处理的效率,可提高实际的总线传送速度。
此外,本发明也可以为上述第一信息是数据分组,上述第二信息是状态块分组。
但是,本发明中,可任意设定第一、第二存储区域中所存储的第一、第二信息的种类。
此外,本发明也可以设为在从上述第一存储区域读出数据分组的期间,准备上述第二存储区域的状态块分组。
这样,从第一阶段转移到第二阶段时,可使从第二存储区域读出第二信息的处理等提前结束,可提高实际的总线传送速度。
此外,本发明也可以设为上述第二存储区域包含:写入成功状态用的第一状态块分组的第三存储区域;和写入不成功状态用的第二状态块分组的第四存储区域。在成功状态时,从上述第三存储区域读出成功状态用的上述第一状态块分组,在不成功状态时,从上述第四存储区域读出不成功状态用的上述第二状态块分组。
这样,只要不产生不成功状态,就可将信息的读出区域固定在第三存储区域,因此可减轻区域的切换处理等的负荷。
此外,本发明也可以设为在上述第三存储区域中预先写入设定了成功状态用的默认信息的状态块分组。
这样,可省略对默认信息部分的更新处理,因此可减轻对第二信息的处理负荷。
此外,本发明也可以设为对设定了默认信息的状态块分组的信息中用于关联状态块分组和命令块分组的标记信息进行更新,从上述第三存储区域中读出更新后的状态块分组作为上述第一状态块分组。
这样,只要进行标记信息等的更新(置换,覆盖)即可,因此可进一步减轻对第二信息的处理负荷。
此外,本发明也可以设为在判断为从第一阶段切换到第二阶段时,将从终端点向主机传送的信息的读出区域从上述第一存储区域切换到上述第二存储区域。
这样,只要判断阶段的切换,就可切换信息的读出区域,因此可减轻数据传送控制装置的处理负荷。
此外,本发明也可以设为在以通过第二总线传送第一信息并写入上述第一存储区域的传送处理结束并且上述第一存储区域已变空为条件,判断为已从第一阶段切换到第二阶段。
这样,可用简单的电路控制和电路构成来判断阶段切换,能提高数据传送控制装置的紧凑化和低成本化。
此外,本发明为用于通过总线传送数据的数据传送控制装置,与本发明相关的数据传送控制装置包含:缓冲器,该缓冲器在分配数据分组和状态块分组作为通过一个终端点传送的信息时,对应于一个终端点,准备有数据用的数据存储区域和状态块用的状态存储区域;缓冲器管理电路,该电路在从通过总线传送数据分组的数据阶段切换到在通过总线传送状态块分组的状态阶段时,将信息的读出区域从数据用的上述数据存储区域切换到状态块用的上述状态存储区域,从上述状态存储区域读出从终端点向主机传送的状态块分组。
根据本发明,在缓冲器中准备有分配到相应终端点的数据分组用的数据存储区域和分配到相同终端点的状态块分组用的状态存储区域。因此,在从数据阶段(数据传输)切换到状态阶段(状态传输)时,将从终端点向主机传送的信息的区域从数据存储区域切换到状态存储区域。
这样,即使在数据分组和状态块分组分配到一个终端点的情况下,在进行从数据存储区域读出数据分组的同时,可对状态块分组进行处理。因此,可提高数据传送控制装置的处理速度,减轻处理状态块分组的装置的负荷,提高实际的总线传送速度。
此外,本发明也可以进行遵循USB(Universal Serial Bus)规范的数据传送。
但是,本发明也可以应用于遵循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是用于说明设置成功状态用的CSW0区域和不成功状态用的CSW1区域的方法的图;
图9A、图9B是用于说明预先写入CSW0区域和CSW1区域的状态块分组的图;
图10是用于说明从数据阶段切换到状态阶段的判断方法的图;
图11是用于说明从数据阶段切换到状态阶段的判断方法的图;
图12是表示本实施方式的数据传送控制装置的构成例的图;
图13是表示事务管理电路、终端点管理电路、缓冲器管理电路、缓冲器的详细构成的一个例子的图;
图14是表示事务管理电路、终端点管理电路、缓冲器管理电路、缓冲器的详细构成的另一个例子的图;
图15是用于说明状态阶段开始时本实施方式的动作的时序波形图;
图16是用于说明数据传送成功时本实施方式的动作的时序波形图;
图17是用于说明ACK失败时本实施方式的动作的时序波形图;
图18是用于说明使用EBUS的数据传送为不成功状态时本实施方式的动作的时序波形图;
图19是用于说明使用EBUS的数据传送为不成功状态时本实施方式的动作的时序波形图;
图20是用于说明使用EBUS的数据传送为不成功状态时本实施方式的动作的时序波形图;
图21A、21B是比较例和本实施方式的时序波形图;
图22A、22B是表示比较例和本实施方式中的固件处理的流程图;
图23A、图23B、图23C是各种电子机器的内部框图的例子;图24A、图24B、图24C是各种电子机器的外观图的例子;
具体实施方式
下面,参照附图,对本实施方式进行详细说明。
另外,以下说明的本实施方式不对权利要求的范围所记述的本发明的内容作任何限制。此外本实施方式所说明的构成的全部不是作为本发明的解决装置所必需的。
1.USB
1.1数据传送方法
首先,对USB(USB2.0)的数据传送方法进行简单的说明。
与IEEE1394等不同,USB中主机具有数据传送的主导权。即,主机方启动数据传送的事务,主机进行与数据传送有关的大部分控制。因此,主机的处理负荷变重,但是作为主机的PC(个人计算机)等具有高速高性能的CPU(处理器),因此处理这样重的负荷不成问题。
另一方面,在USB中,设备(目标)只要响应来自主机的要求即可,因此可简化设备方的处理和构成。因此,在设备方没有必要使用高速高性能的CPU,可使用低价格的CPU(微机),可谋求低成本化。
USB中为了实现主机主导的数据传送,在设备方准备如图1所示的终端点(EP0~EP15)。这里,终端点相当于用于在主机和设备之间传送数据的缓冲器(FIFO)的入口,使用USB的数据传送都经过该终端点来进行。
因此,该终端点通过设备地址和终端点编号能唯一地指定地址。即主机通过指定设备地址和终端点编号,能自由地进行向所希望的终端点发送数据和从所希望的终端点接收数据。
此外,设备方对终端点的设定是任意的,在计数处理时,主机可知道终端点编号的分配、分配给各终端点的存储区域的数据容量等。
另外,在USB中,准备有控制传送、同步传送、中断传送、批量(Bulk)传送作为数据传送的类型。
这里,控制传送是在主机和设备(目标)之间通过控制终端点进行的控制用的传送模式。通过该控制传送,传送用于初始化设备的配置信息等。
同步传送是为了传送诸如图像数据和声音数据等确保带宽优先于确保数据正当性的数据,而准备的传送模式。同步传送由于能确保在一定周期内传送一定量的数据,因此是传送数据的实时(realtime)性比较重要的应用程序的有效传送模式。
中断传送是为了以比较低的传送速度传送少量的数据而准备的传送模式。
批量传送是为了传送不定期产生的大量数据而准备的传送模式。批量传送在同步传送和中断传送使用的时间之外的空闲时间中进行数据传送,并且检查数据的正当性。因此,是用于传送实时性不太重要但想确保数据的可靠性的有效传送模式。
1.2事务构成
如图1B所示,USB的批量传送中的事务基本上由令牌(token)分组、数据分组和握手(handshake)分组三个分组构成。另外,同步传送时不需要握手分组。
这里,令牌分组是主机要求设备(目标)的终端点的读和写时使用的分组。该令牌分组,例如,具有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数据分组接收成功,主机向设备传送ACK握手分组。
另外,图1C、图1D中,“D←H”表示从主机向设备传送信息,“D→H”表示从设备向主机传送信息(以下的说明和图也同样)。
1.3Bulk-Only
USB设备可分成各种类型。硬盘驱动器和光盘驱动器等设备属于被成为海量存储器的类型。在海量存储器有电子机器的销售商等作成的CBI(Control/Bulk/Interrupt)和Bulk-Only等规范。
CBI规范,如图2A所示,设备准备有控制、批量输出(bulk out)、批量输入(bulk in)、中断的终端点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是命令块的标记。
dCBWDataTransferLength指定在数据阶段中传送的数据的长度。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的令牌分组,接着,向设备的终端点EP1传送CBW(参见图2B的A1和图3)。该CBW中包含写命令。然后,从设备向主机返回ACK握手(H.S),命令阶段结束。
命令阶段(命令传输)结束后转移到数据阶段(数据传输)。在数据阶段,首先,主机向设备传送指定终端点EP1的令牌分组,接着,向设备的终端点EP1传送OUT数据(参见图2B的A2)。然后,从设备向主机返回ACK握手,一个事务结束。然后,重复这样的事务,在传送完CBW的dCBWDataTransferLength(参见图3)指定的数据长度的数据后,数据阶段结束。
数据阶段(数据传输)结束后,转移到状态阶段(状态传输)。在状态阶段中,首先,主机向设备传送指定终端点EP2的令牌分组。然后,设备向主机传送终端点EP2中的CSW(参见图2B的A3、图4)。然后,从主机向设备返回ACK握手,状态阶段结束。
主机读出数据时,如图5B所示,首先,主机向设备传送指定终端点EP1的令牌分组,接着,向设备的终端点EP1传送CBW。该CBW包含读命令。然后,从设备向主机返回ACK握手,命令阶段结束。
命令阶段结束后,转移到数据阶段。在数据阶段,首先,主机向设备传送指定终端点EP2的令牌分组。然后,设备向主机传送终端点EP2中的IN数据(参见图2B的A4),从主机向设备返回ACK握手后,一个事务结束。然后,重复这样的事务,传送完CBW的dCBWDataTransferLength指定的数据长度的数据后,数据阶段结束。
数据阶段结束后转移到状态阶段。该状态阶段的处理与图5A中的数据写入处理时的处理相同。
1.本实施方式的特征
2.1区域的切换
图2A中所示的CBI规范中主机每隔一定期间向设备传送一次令牌。因此,存在主机的处理负荷和接收该令牌的设备的处理负荷变重的缺点。
因此,现在图2B的Bulk-Only规范成为主流。
但是,Bulk-Only规范中,分配多种信息作为通过一个终端点传送的信息。具体来说,图2B中,分配命令(CBW)和OUT数据作为通过批量输出终端点EP1传送的信息,分配状态(CSW)和IN数据作为通过批量输入终端点EP2传送的信息。因此,主机和设备有必要判别通过各终端点传送的信息是哪种信息。Bulk-Only规范中,主机和设备判断现在的阶段是哪个阶段之后,再进行该信息判别。
例如,图5A、图5B的B1、B2中,由于当前阶段是命令阶段,因此判断为通过终端点EP1传送的信息是CBW(命令)。B3、B4中,由于当前阶段是数据阶段,因此判断为通过终端点EP2传送的信息是IN数据。B5、B6中,由于当前阶段是状态阶段,因此判断为通过终端点EP2传送的信息是CSW(状态)。
因此,Bulk-Only规范中,由于以总是使主机和设备之间的阶段一致的方式进行数据传送,因此,即使在对一个终端点分配多个信息(CBW和OUT数据、CSW和IN数据)时,也能正确地传送数据。
但是,已知Bulk-Only规范存在以下的问题。
例如,图6A~图6B中示出本实施方式的比较例的方法。在该比较例中,如图6A所示,在数据阶段,将来自硬盘驱动器HDD等设备的数据写入以终端点EP2为入口的FIFO(EP2)602。具体来说,从HDD读出的数据通过EBUS(第二总线。参见后述的图12)DMA传送到FIFO602。
然后,通过EBUS的DMA传送结束后,如图6B所示,等待FIFO602变空(等待空(empty)信号变为激活状态)。
接着,FIFO602变空,从数据阶段转移到状态阶段后,如图6C所示,CPU(固件、处理装置)等从硬盘驱动器HDD(EBUS)方取得通过EBUS数据传送(IDE数据的传送)的状态。然后,将根据取得的状态作成的CSW(参见图4)写入FIFO602。这种情况下,在该比较例中,在由CPU进行的CSW的写入处理结束之前,不能针对来自主机的IN令牌返回IN数据分组,而返回NAK。
接着,如图6D所示,以先进先出的方式从FIFO602读出被写入的CSW,并通过USB传送给主机。
这样,在该比较例中,使用共同的FIFO602传送数据(IN数据)和CSW,因此存在CSW的写入处理的结束变迟,导致实际数据传送速度相应变慢的问题。
具体来说,首先第一,在该比较例中,如图6B所示,在FIFO602变空之前不能开始向FIFO602的CSW写入处理。例如,在FIFO602中残留有499字节的状态下,假设将13字节的CSW(参见图4)写入FIFO602。于是,FIFO602中存在的数据量变为499+13=512字节=最大分组容量,导致发生将状态CSW作为数据传送的情况。
因此,在该比较例中,必须在等待FIFO602变空、从数据阶段转移到状态阶段之后将CSW写入FIFO602。因此,CSW的写入处理的结束推迟与该等待时间相应的时间,导致实际的数据传送速度降低。
此外,在该比较例中,如图6C所示,在数据阶段期间不能将CSW写入FIFO602,而要在转移到状态阶段之后写入CSW。因此,在CSW的写入结束之前,针对来自主机的IN令牌返回NAK,导致实际的数据传送速度推迟与该期间相应的时间。
这种情况下,由于使用USB1.1时总线的传送速度降低,因此,如图6B、图6C所示的设备方的处理慢的情况基本上没有问题。
但是,在USB2.0的HS模式下以高速的480Mbps传送数据。因此,设备方处理慢会妨碍USB2.0的高速传送,导致系统整体的实际数据传送速度大幅降低。
特别是,由于低成本化的要求,设备方大多使用以例如20~50MHz左右时钟频率动作的廉价CPU。因此,图6B、图6C的处理非常费时,实际的数据传送速度慢的问题更加严重。
因此,本实施方式为了解决这样的问题,采用随着阶段(传输)的切换来切换缓冲器的存储区域的方法。
更具体来说,如图7A所示,本实施方式在作为分组存储装置的缓冲器中,除了用于读出IN数据(第一信息)的EP2区域14(第一存储区域。数据存储区域)之外,还准备了用于读出CSW(第二信息。状态块)的CSW区域16(第二存储区域。状态存储区域)。
这里,EP2区域14和CSW区域16都是以批量输入的终端点EP2为入口的存储区域。而且,EP2区域14被设定为先进入的信息先输出(FIFO),CSW区域16被设定为可随机存取信息(随机存取)。
然后,如图7A所示,本实施方式在数据阶段(第一阶段)中开关SW(切换装置)切换到EP2区域14一侧,从EP2区域14读出向主机传送的数据(来自硬盘HDD的数据)。
然后,在使用EBUS(第二总线)的数据传送结束之后,如图7B所示,CPU(固件、处理装置)等从硬盘驱动器HDD取得通过EBUS的数据传送的状态,根据该取得的状态作成CSW,并将作成的CSW(参见图4)写入CSW区域16。即,本实施方式在从EP2区域14(第一存储区域)读出IN数据分组的数据阶段(第一阶段)期间,可作成(准备)CSW和开始CSW的写入处理。而且,由于CSW区域16被设定为可随机存取,因此CPU能将信息高速地写入CSW区域16的任意地址。
因此,EP2区域14变空(空信号变为激活)、从数据阶段(第一阶段)切换到状态阶段(第二阶段)后,如图7C所示,开关SW(切换装置)被从EP2区域14一侧切换到CSW区域16一侧。由此,通过USB(第一总线)向主机传送写入CSW区域16中写入的CSW(状态块分组)。
例如图6C、图6D的比较例中,必须在FIFO602变空、从数据阶段转移到状态阶段之后,才能将CSW写入FIFO602。因此,在CSW的写入结束之前,针对主机的IN令牌只能返回NAK。
与此相反,如图7B所示,本实施方式中,在数据阶段期间,能准备CSW并将其写入CSW区域16。因此,如图7C所示,在从数据阶段转移到状态阶段之后,可在较早阶段,针对来自主机的IN令牌返回数据分组(CSW),可提高处理的速度。
特别地,使用USB2.0能高速地向主机传送数据。因此,象图6C的比较例那样,针对来自主机的IN令牌连续返回NAK,会损失总线带宽,不能发挥USB2.0的高速数据传送的优点。
与此相反,如图7C所示,本实施方式可在较早阶段针对来自主机的IN令牌返回数据分组(CSW)。因此,能将总线带宽的损失抑制到最小限度,能发挥USB2.0的高速数据传送的优点,因此,可提高实际的数据传送速度。
此外,如图7A~7C所示,本实施方式中,CSW区域16被设定为可随机存取的区域,因此能提前结束CSW的写入处理,因此,可在较早阶段针对来自主机的IN令牌返回数据分组(CSW),可提高实际的数据传送速度。
另一方面,要高效率地DMA传送来自硬盘驱动器HDD等的数据,最好将EP2区域14设定为信息先进先出(FIFO)的区域。这种情况下,可通过用串联的寄存器、存储器等构成EP2区域14,将其设定为先进先出的区域,也可以通过后述的方法控制RAM的地址,将其设定为先进先出的区域。
2.2成功状态用的存储区域
如图8A所示,本实施方式中,在缓冲器中作为CSW区域(第二存储区域),准备有:写入成功状态用的CSW0(第一状态块分组)的CSW0区域18(第三存储区域);和写入不成功状态用的CSW1(第二状态块分组)的CSW1区域19(第四存储区域)。
即,在通过EBUS(第二总线。参见图12)的数据传送的状态为成功状态时,如图8A所示SW2(切换装置)连接到CSW0区域18一侧,从CSW0区域18读出成功状态用的CSW0,并将其传送给主机。
另一方面,在通过EBUS的数据传送的状态为不成功状态时,如图8B所示SW2(切换装置)连接到CSW1区域19一侧,从CSW1区域19读出成功状态用的CSW1,并将其传送给主机。
一般来说,数据传送中发生错误的概率非常低。因此,通常SW2连接到CSW0区域18一侧,向主机传送成功状态用CSW0。
因此,只有在数据传送中发生错误时,才把SW2连接到CSW1区域19一侧,向主机传送响应错误的不成功状态用CSW1。
这样,只要用EBUS的数据传送中不发生错误,就无需切换开关SW2。因此,由于数据传送中发生错误的概率非常低,因此切换SW2的频度也非常低。因此,能减轻CPU(固件)进行切换SW2处理等的处理负荷。
此外,如图9A所示,在本实施方式中,把设定了成功状态用的默认信息的状态块分组DEFCSW0预先写入CSW0区域18。因此,在数据传送的状态为成功时,从CSW0区域18读出使用DEFCSW0得到的CSW0,并把它传送给主机。
具体来说,成功状态用的DEFCSW0中,把dCSWSignature、dCSWDataResidue和bCSWStatus设定为默认值(例如53425355h、00000000h、00h=goodstatus)。然后,例如在接收CBW时,使用CBW的dCSWTag来更新(覆盖、置换)dCSWTag(用于关联状态块分组和命令块分组的标记信息)。即,把CBW的dCSWTag的值原样写入dCSWTag。
这样,如果把设定了成功状态用的默认信息的状态块分组DEFCSW0预先写入CSW0区域18,则CPU(固件)例如只要进行更新dCSWTag的操作即可。因此,能大幅减轻CPU的处理负担,提高实际的传送速度。
另外,如图所示9B,在不成功状态用的CSW1区域19中预先写入DEFCSW1。然后,在数据传送的状态为不成功时,从CSW1区域19读出使用DEFCSW1得到的CSW1,并把它传送给主机。
具体来说,不成功状态用的DEFCSW1中,把dCSWSignature等设定为默认值。然后,例如在接收CBW时,使用CBW的dCSWTag来更新dCSWTag。此外,使用通过EBUS取得的状态来更新bCSWStatus。这样做,可减轻发生错误时CPU的处理负荷。
2.3阶段切换
本实施方式中,以已切换阶段为条件,进行信息读出区域的切换。
具体来说,如图7B、图7C所示,在从数据阶段(第一阶段)切换到状态阶段(第二阶段)后,将从终端点EP2向主机传送的信息(IN数据、状态)的读出区域,从EP2区域14(第一存储区域)切换到CSW区域16(第二存储区域。CSW0区域、CSW1区域)。
如果象这样在判断阶段的切换之后切换信息的读出区域,则能以少的处理负荷实现正确的区域切换处理。
具体来说,这种情况下的阶段切换的判断如下。
例如在从主机向设备传送OUT数据(第一方向的数据传送)时,如图10所示的那样做,能判断阶段切换。即,如图10的G1所示,在通过与硬盘驱动器HDD等连接的EBUS(第二总线。参见图12)的数据传送(DMA传送)结束之后的时间,判断为已从数据阶段切换到状态阶段。该G1时间比用USB的数据传送(数据阶段)结束的G2时间迟。此外,该G1时间与EP1区域(OUT数据的存储区域)变空、Empty信号变为激活状态的G3时间一致。因此,通过使用设置在EBUS一侧的计数器(图12的DMA计数器82),计数用EBUS传送的数据容量(传送数。数据长度)来判断该G1时间。
另一方面,从设备向主机传送IN数据(第二方向的数据传送)时,如图11所示的那样做能判断阶段切换。即,如图11的G4所示,在判断为通过EBUS的数据传送(通过第二总线把第一信息写入第一存储区域的传送处理)结束之后,如G5所示,在EP2区域(IN数据的存储区域。第一存储区域)变空、Empty信号变为激活状态的时间,判断为已从数据阶段切换到状态阶段。这种情况下,通过使用设置在EBUS一侧的计数器(DMA计数器82),计数用EBUS传送的数据容量(传送数。数据长度)来判断该G4时间。另外,G5时间与用USB的数据传送结束的G6时间一致。
如果用图10、图11的方法判断阶段切换,则只要在EBUS(第二总线)一侧设置计数器(DMA计数器82)即可,不必在USB(第一总线)一侧设置计数器。因此,电路控制容易化的同时可简化电路构成,能提高数据传送控制装置的紧凑化和低成本化。
因此,在本实施方式中,在图11的G5时间判断为从数据阶段切换到状态阶段,在该时间,如图7B、图7C所示,进行从EP2区域14切换到CSW区域16的处理。这样,只要监视EBUS一侧的计数器(DMA计数器82)的计数值和Empty信号,就可切换信息的读出区域,因此可用少的处理负荷实现区域的切换处理。
2.4构成例
图12表示本实施方式的数据传送控制装置的构成例。
本实施方式的数据传送控制装置包括:收发机宏(transceivermacro)20、SIE30、终端点管理电路40、缓冲器管理电路50、缓冲器60、批量传送管理电路70和DMAC80。本实施方式的数据传送控制装置不必包含图12中所示的全部电路,也可以省略其中一部分。
这里,收发机宏20是用于实现以USB(第一总线)的FS模式和HS模式传送数据的电路。例如可使用遵循对USB2.0的物理层电路、逻辑层电路的一部分的接口进行定义的UTMI(USB2.0Transceiver Macrocell)的宏单元(macrocell)作为该收发机宏20。该收发机宏20包含收发机电路22、时钟生成电路24。
收发机电路22包含使用差动信号DP、DM接收和发送USB(第一总线)上的数据的模拟前端(front end)电路(接收电路、发送电路)。此外,包含进行位填充(bits tuffing)、位去填充、串行/并行转换、并行/串行转换、NRZI解码、NRZI编码、抽样时钟生成等处理的电路。
时钟生成电路24是生成数据传送控制装置使用的动作时钟、抽样时钟的生成所使用的时钟等的电路,包含生成480MHz和60MHz的时钟的PLL和振荡电路等。
SIE(Serial Interface Engine)是进行USB的分组传送等各种处理的电路,包含分组处理器(handler)电路32、暂停&恢复(suspend&resume)控制电路34、事务管理电路36。
分组处理器电路32是进行由首部(header)和数据构成的分组的组装(生成)和分解等的电路,包含进行CRC的生成和解读的CRC处理电路33。
停止&恢复控制电路34是进行暂停和恢复时的序列控制的电路。
事务管理电路36是管理由令牌、数据、握手等分组构成的事务的电路。具体来说,在接收到令牌分组时,确认是否是送往自己地址的,如果是送往自己地址的,则进行与主机之间的数据分组的传送,之后,进行握手分组的传送处理。
终端点管理电路40是管理作为缓冲器60的各存储区域的入口的终端点的电路,包含存储终端点的属性信息的寄存器(寄存器组)等。
缓冲器管理电路50是管理例如由RAM等构成的缓冲器60的电路。具体来说,它生成写入地址和读出地址,并进行向缓冲器60写入数据的处理和从缓冲器60读出数据的处理。
缓冲器60(分组存储装置)用于暂时存储通过USB传送的数据(分组),具有对使用USB(第一总线)的数据传送的传送速度和使用EBUS(第二总线)的数据传送的传送速度的速度差进行补偿的功能。EBUS是连接硬盘驱动器和CD驱动器等设备(海量存储器设备)的外部总线。
因此,本实施方式,在分配多种信息作为通过一个终端点传送的信息时,在该缓冲器60中准备有第一信息(例如数据)用的第一存储区域(例如数据存储区域)和第二信息(例如状态块)用的第二存储区域(例如状态存储区域)。
批量传送管理电路70是用于管理USB中的批量传送的电路。
DMAC80是用于通过EBUS进行DMA传送的DMA控制器,并包含DMA计数器82。DMA计数器82是对通过EBUS传送的数据的容量(传送数)进行计数的电路。
2.5详细构成例
图13中示出事务管理电路36(SIE)、终端点管理电路40、缓冲器管理电路50、缓冲器60的详细构成例。
缓冲器60(RAM)包含:存储分配到终端点EP2的信息CSW(状态块)的CSW0区域61(成功状态用)、CSW1区域62(不成功状态用)、存储分配到终端点EP0的控制信息的EP0区域63、存储分配到终端点EP1的OUT数据信息的EP1区域64、存储分配到终端点EP2的IN数据信息的EP0区域65。
在图13中,把CSW0区域61、CSW1区域62设定为可由CPU(固件、处理装置)进行随机存取。另一方面,把EP0、EP1、EP2区域63、64、65设定为先进的信息先出(FIFO)的方式。
事务管理电路36将通过USB传送的写入数据SIEWrData(写入分组)输出到缓冲器60,并从缓冲器60输入读出数据SIERdData(读出数据)。
此外,事务管理电路36向缓冲器管理电路50输出写入要求信号SIEWrReq、读出要求信号SIERdReq,并从缓冲器管理电路50接收写入确认信号SIEWrAck、读出确认信号SIERdAck。
此外,事务管理电路36向终端点管理电路40输出事务结束信号TranEndPluse、事务状态信号TranStatus、终端点编号指定信号EPnum和传送方向指定信号Direction,并从终端点管理电路40接收终端点存在信号EPexist。
终端点管理电路40包含用于记述终端点的属性信息(终端点编号、最大分组容量等)的寄存器(寄存器组)42、43、44。根据来自事务管理电路36的各种信号和寄存器的属性信息,生成终端点选择信号EPsec,并把它输出到缓冲器管理电路50。
此外,终端点管理电路40向缓冲器管理电路50输出来自CPU的写入要求信号CPUWrReq、读出要求信号CPURdReq,并从缓冲器管理电路50接收向CPU写入确认信号CPUWrAck、读出确认信号CPURdAck。
终端点管理电路40包含的EP0寄存器42用于记述由USB规范默认定义的控制终端点的属性信息。
EP1、EP2寄存器43、44用于记述由Bulk-Only规范默认定义的批量输出、批量输入的终端点的属性信息。设备方可任意设定将终端点EP1~EP15中的哪一个设定为批量输出或批量输入的终端点。
EP1寄存器43,将表示数据传送方向的标志DIR设定为OUT,将EP1设定为批量输出的终端点。
此外,EP1寄存器43,将标志EnCSW设定为0。该EnCSW是用于将终端点和缓冲器60的CSW0区域61或CSW1区域62连接的标志,将EnCSW设定为1的批量输入的终端点与CSW0区域61或CSW1区域62连接。
此外,EP1寄存器43,将标志SelCSW设定为0。该SeICSW是用于选择将批量输入的终端点连接到CSW0区域61和CSW1区域62中的哪一个的标志,例如,将EnCSW设定为1、将SelCSW设定为0的批量输入的终端点与CSW0区域61连接。另一方面,将EnCSW设定为1、将SelCSW设定为1的批量输入的终端点与CSW1区域62连接。
EP2寄存器44,将表示数据的传送方向的标志DIR预先设定为IN,设定EP2为批量输入的终端点。
此外,EP2寄存器44,将EnCSW设定为1,将SelCSW设定为0。因此,在该设定状态下,终端点EP2与CSW0区域61连接。这种情况下,例如,如果将SelCSW设定为1,则终端点EP2与CSW1区域62连接,如果EnCSW设定为0,则EP 2与EP2区域65连接。
缓冲器管理电路50接收来自事务管理电路36和终端点管理电路40的写入、读出要求信号、来自终端点管理电路40的终端点选择信号EPsel,并将地址Address和写入脉冲xWR(x表示负逻辑)输出到缓冲器60。该缓冲器管理电路50包含CSW0、CSW1、EP0、EP1、EP2的地址生成电路51、52、53、54、55和选择器56。
这里CSW0地址生成电路51生成关于CSW0区域61(开始地址为a0)的SIEWrData、SIERdData的写入或读出地址AD0。
CSW1地址生成电路52生成关于CSW1区域62(开始地址为a1)的SIEWrData、SIERdData的写入或读出地址AD1。
EP0、EP1、EP2的地址生成电路53、54、55分别生成关于EP 、EP1、EP2的区域63、64、65(开始地址为a2、a3、a4)的SIEWrData、SIERdData的写入或读出地址AD2、AD3、AD4。具体来说,生成以a2、a3、a4为开始地址顺序递增(或递减)的地址AD2、AD3、AD4。
选择器56根据信号EPsel选择地址AD0~AD4的其中一个,将其作为Address输出到缓冲器60,并将写入脉冲xWR输出到缓冲器60。具体来说,在由EPsel选择指示CSW0时选择AD0,选择指示CSW1时选择AD1,选择指示EP0时选择AD2,选择指示EP1时选择AD3,选择指示EP2时选择AD4,作为Address输出到缓冲器60。
CSW0区域61、CSW1区域62可由CPU写入CPUWrData。这种情况下,缓冲器管理电路50根据来自终端点管理电路40的EPsel和CPUWrReq,将用于写入CPUWrData的地址Address和xWR输出到缓冲器60。
图14中示出事务管理电路36、终端点管理电路40、缓冲器管理电路50、缓冲器60的其他详细构成例。
与图13不同,图14中,缓冲器60包含CSW(CSW0、CSW1)、EP0、EP1、EP2用的FIFO66、67、68、69(例如串联连接的寄存器、存储器)。
缓冲器管理电路50包含的选择器57,根据来自终端点管理电路40的EPsel,将来自事务管理电路36的SIEWrData作为WrDataCSW、WrDataEP0、WrDataEP1、WrDataEP2中的其中一个输出到缓冲器60。
或者,选择器57,根据EPsel,选择来自缓冲器60的RdDataCSW、RdDataEP0、RdDataEP1、RdDataEP2中的其中一个,作为SIERdData输出到事务管理电路36。
具体来说,由EPsel选择指示CSW时选择WrDataCSW、RdDataCSW,选择指示EP0时选择WrDataEP0、RdDataEP0,选择指示EP1时选择WrDataEP1、RdDataEP1,选择指示EP2时选择WrDataEP2、RdDataEP2。
向缓冲器60的数据写入是通过来自事务管理电路36的写入脉冲SIEWR进行的,从缓冲器60读出数据的操作是通过来自事务管理电路36的读出脉冲SIERD进行的。
另外,在图14中,也可以将FIFO66(CSW)设定为可随机存取的存储区域。
2.6动作
图15~图20示出用于说明本实施方式的数据传送控制装置的详细动作的时序波形图的例子。
2.6.1成功状态
图15、图16、图17是用EBUS(第二总线)的数据传送的状态为成功状态时的时序波形图。图15是状态阶段(传达成功状态的阶段)开始时的时序波形图,图16、图17是结束时的时序波形图。
如图15的H1、H2所示,事务管理电路36将EPum设定为2(终端点编号=2)并将Direction设定为IN后,由于存在批量输入终端点EP2的寄存器44(参见图13),因此,终端点管理电路40,如H3所示激活EPexist(设为H电平)。
此时,如H4所示,由于终端点EP2的EnCSW设定为H电平(1),因此,终端点管理电路40,如H5所示,将选择指示CSW0区域61的地址AD0的EPsel,向缓冲器管理电路50输出。由此,缓冲器管理电路50的选择器57选择由CSW0地址生成电路51生成的地址AD0。
然后,如H6所示,事务管理电路36激活SIERdReq后,如H7所示,缓冲器管理电路50将来自CSW0地址生成电路51的AD0=a0作为Address输出到缓冲器60。由此,以缓冲器60的CSW0区域61的a0为开始地址,如H9所示,读出CSW0(SIERdData)的0~3字节。然后,如H10所示,激活SIERdAck,向事务管理电路36返回确认。
接着,如H11所示,事务管理电路36激活SIERdReq后,如H12所示,缓冲器管理电路50将AD0=a0+4作为Address输出到缓冲器60。由此,以CSW0区域61的a0+4为开始地址,如H14所示,读出CSW0(SIERdData)的4~7字节。然后,如H15所示,激活SIERdAck,向事务管理电路36返回确认。
通过如上所述重复读出处理,如图16的H16所示,从CSW0区域61读出CSW0的全部0~12字节(共计13字节),传送给主机。
然后,如H17所示,从主机返回正确的ACK后,如H18所示,事务管理电路36在激活TranEndPulse的同时,如H19所示,将TranStatus设定为Success,并将事务成功的事实传达给终端点管理电路40。
于是,如H20所示,将终端点EP2(图13的寄存器44)的EnCSW设定为L电平(0)。由此,如H21所示进行区域切换,在其后的数据阶段中选择终端点EP2时,缓冲器管理电路50的选择器56选择EP2区域65的地址AD4作为Address。
图17是在状态阶段的事务中产生ACK失败时的时序波形图。
针对向主机传送的成功状态,如图17的I1所示,未从主机返回ACK时,如I2所示,事务管理电路36向终端点管理电路40输出表示ACK失败事实的TranStatus。于是,这种情况下,与图16的H20不同,如图17的I3所示,终端点EP2的EnCSW不变成L电平。因此,如I4所示,EPsel也不变化,不能进行从CSW0区域61到CSW1区域65的区域切换。
2.6.2不成功状态用
图18、图19、图20是使用EBUS(第二总线)的数据传送的状态为不成功状态时的时序波形图。图18是状态阶段(传达不成功状态的阶段)开始时的时序波形图,图19、图20是结束时的时序波形图。
与图15的H0不同,图18的J0中,区域的选择信号SelCSW(EP2)已变为H电平(1)而选择了CSW1区域62。因此,与图15的H5不同,图18的J5中,终端点管理电路40输出选择指示CSW1区域62的地址AD1的EPsel。由此,如J7所示,缓冲器管理电路50将来自CSW1地址生成电路52的AD1=a1作为Address输出给缓冲器60。
然后,如图19的J16所示,从CSW1区域62读出CSW1的全部0~12字节(共计13个字节),如J17所示从主机返回正确的ACK之后,如J18所示TranEndPulse变为激活状态,如J19所示输出Success的TranStatus。由此,将向主机传达不成功状态的事务已成功的事实传达给终端点管理电路40。如J20所示EnCSW(EP2)变为L电平,如J21所示进行区域切换。
图20是在状态阶段(传达不成功状态的阶段)的事务中产生ACK失败时的时序波形图。
针对向主机传送的不成功状态,如图20的K1所示未从主机返回ACK时,如K2所示,输出表示ACK已失败的TranStatus。于是,这种情况下,与图19的J20不同,如图20的K3所示EnCSW不变为L电平。因此,如K4所示EPsel也不变化,不能进行从CSW0区域61到CSW1区域65的区域切换。
2.7比较例和本实施例的比较
图21A中示出比较例(图6A~图6D)的时序波形图的例子,图21B中示出本实施方式的时序波形图的例子。
例如在图21A的比较例中,在数据阶段,由于终端点EP2的FIFO中存在IN数据,因此不能将CSW写入FIFO(EP2)。因此,如图21A的L1所示,在转移到状态阶段之后,CSW的写入处理开始。因此,在该写入处理结束之前,如L2、L3所示,对于来自主机的IN数据必须返回NAK。所以,如L4所示向主机的CSW的传送变迟,如L5所示向下一个命令阶段的转移也变迟。其结果,造成总线带宽损失,实际的传送速度降低。
另一方面,在图21B中的本实施方式中,由于除了EP2区域之外还另外设有CSW区域(CSW0、CSW1区域),因此,可在数据阶段期间开始准备CSW的处理和将CSW写入CSW区域的处理。因此,如L6所示,对于来自主机的IN令牌,虽然在开始几次有可能返回NAK,但如L7所示EnCSW变为H电平、进行从EP2区域向CSW区域的切换后,如L8所示能将CSW区域的CSW立即传送给主机。因此,与图21A的比较例相比,如L9所示向命令阶段的转移也变早。其结果,能将总线带宽损失抑制到最小。与比较例相比,能提高实际的传送速度。
图22A中示出比较例的情况下固件(CPU)的处理流程图,图22B中示出本实施方式的情况下固件的处理流程图。
图22A中的比较例中,首先,判断数据阶段是否已结束(步骤S21)。
然后,判断为数据阶段已结束时,固件将CSW写入EP2用的FIFO(步骤S22。参见图21A的L1)。然后,由于CSW是13个字节并且是比最大分组容量小的短分组,因此将短分组的传送置为使能(enable)状态(步骤23)。
接着,判断向主机传送CSW的IN事务是否已完了(步骤S24),判断为已完了时结束处理(步骤S25)。另一方面,还未完了时,判断是否进行了IN事务以外的事务(OUT事务)(步骤S26)。然后,判断为IN事务以外时,由于可认为当前阶段主机与设备不一致,因此转移到错误处理(步骤S27)。另一方面,判断为未能进行事务时,返回步骤S24。
这种情况下,如图11所说明的那样,在使用EBUS的数据传送完了并且EP2区域变为空(Empty为激活状态)时,判断为数据阶段完了并且已切换到状态阶段。
此外,在本实施方式中,由于除了EP2区域之外还另外设有CSW区域,因此,与比较例不同,可在数据阶段期间准备CSW,可提前结束CSW的写入处理。
判断为数据阶段已结束时,固件使用SelCSW进行CSW区域的选择(选择CSW0和CSW1区域中的任意一个)并将EnCSW设定为1(步骤S32。参见图21A的L7)。
接着,判断向主机传送CSW的事务是否已完了(步骤S33),判断为已完了时结束处理(步骤S34)。另一方面,还未完了时,判断是否进行了CSW(IN)事务以外的事务(步骤S35)。然后,判断为未能进行事务时,转移到错误处理(步骤S36)。判断为CSW事务时,返回步骤S33。
3.电子机器
下面,对包含本实施方式的数据传送控制装置的电子机器的例子进行说明。
例如图23A中示出电子机器之一的打印机的内部框图,图24中示出其外观图。CPU(微型计算机)510进行系统整体控制等。操作部511用于用户操作打印机。ROM516中存储控制程序、字体等,RAM517作为CPU510的工作区域工作。DMAC518是用于不通过CPU510进行数据传送的DMA控制器。显示面板519用于向用户通知打印机的动作状态。
通过USB从个人计算机等其它设备送来的串行打印数据,由数据传送控制装置500转换为并行打印数据。然后由CPU510或DMA518将转换后的打印数据传送给打印处理部(打印机引擎)512。然后,在打印处理部512中对打印数据进行相应的处理,并由打印头等构成的打印部(进行数据输出处理的装置)514打印输出到纸上。
图23B中示出电子机器之一的扫描仪的内部框图,图24B中示出其外观图。CPU520进行系统整体的控制等。操作部521用于用户操作扫描仪。ROM526中存储控制程序,RAM527作为CPU520的工作区域工作。DMAC528是DMA控制器。
由光源、光电转换器等构成的图像读取部(进行数据取入处理的装置)522读取原稿图像,读取的图像的数据由图像处理部(扫描仪引擎)524处理。然后,处理后的图像数据由CPU520或DMA528发送给数据传送控制装置500。数据传送控制装置500将并行图像数据转换为串行数据,并将其通过USB发送给个人计算机等其它设备。
图23C中示出电子机器之一的CD-RW驱动器的内部框图,图24C中示出其外观图。CPU530进行系统整体的控制等。操作部531用于用户操作CD-RW驱动器。ROM536中存储控制程序,RAM537作为CPU530的工作区域工作。DMAC538是DMA控制器。
由激光、电动机,光学系等构成的读取&写入部(进行数据取入处理的装置或进行数据存储处理的装置)533从CD-RW532读取的数据被输入到信号处理部534,进行错误改正等相应的信号处理。然后,信号处理后的数据由CPU530或DMA538发送给数据传送控制装置500。数据传送控制装置500将并行数据转换为串行数据,并将其通过USB发送给个人计算机等其它设备。
另一方面,通过USB从其它设备送来的串行数据,由数据传送控制装置500转换为并行数据。然后,该并行数据由CPU530或DMA538发送给信号处理部534。然后,在信号处理部534中对该并行数据进行相应的信号处理,由读取&写入部533存储到CD-RW532中。
此外,在图23A、图23B、图23C中,也可以除了CPU510、520、530之外,另外设置CPU用于控制使用数据传送控制装置500的数据传送。
如果在电子机器中使用本实施方式的数据传送控制装置,可正确地进行以USB2.0中的HS模式进行的数据传送。因此,用户通过个人计算机等进行打印输出的指示时,能以少的时间滞后完成打印。此外,在向扫描仪指示图像取入之后,在少的时间滞后之后用户能看到读取的图像。此外,能高速地从CD-RW读取数据和向CD-RW写入数据。
而且,如果在电子机器中使用本实施方式的数据传送控制装置,即使用制造成本便宜的通常的半导体加工,也能制造可在HS模式下传送数据的数据传送控制装置。因此,可提高数据传送控制装置的低成本化,从而提高电子机器的低成本化。而且,可提高数据传送的可靠性,从而提高电子机器的可靠性。
而且,如果在电子机器中使用本实施方式的数据传送控制装置,可减轻在CPU上动作的固件的处理负荷,可使用便宜的CPU。由于可进一步提高数据传送控制装置的低成本化、小规模化,因此可进一步提高电子机器的低成本化、小规模化。
此外,作为可应用本实施方式的数据传送控制装置的电子机器,除了上面所述的之外,例如还可以考虑:各种光盘驱动器(CD-ROM、DVD)、光磁盘驱动器(MO)、硬盘驱动器、TV、VTR、摄像机、音响机器、电话机、投影仪、个人计算机、电子记事本、字处理器等各种东西。
另外,本发明不限于本实施方式,可在本发明的精神范围内进行各种变形实施。
例如,本发明的数据传送控制装置的构成,不限于图12、图13、图14所示的构成,可进行各种变形实施。
此外,虽然在本实施方式中对第一存储区域为EP2区域(数据存储区域)、第二存储区域为CSW区域(状态存储区域)的情况进行了说明,但是本发明并不限于此。即,第一、第二存述区域中存储的信息的种类是任意的。另外,设定到终端点的信息的数量可以是3以上,信息的种类也是任意的。
此外,虽然在本实施方式中对USB的Bulk-Only规范的应用例进行了说明,但是可应用本发明的规范并不限于USB的Bulk-Only规范。
此外,第一、第二存储区域的切换方法也不限于用图7~图22B详细说明的方法,可进行各种变形实施。
另外,本发明虽然优选应用于使用USB2.0的数据传送,但是也不限于此。例如本发明也可应用于基于与USB2.0相同的思想的规范和发展USB2.0的规范中的数据传送。

Claims (16)

1.一种数据传送控制装置,用于通过总线的数据传送,其特征在于,包含:
缓冲器,该缓冲器在分配包含第一、第二信息的多种信息作为通过一个终端点传送的信息时,对应于一个终端点,准备有第一信息用的第一存储区域和第二信息用的第二存储区域;和
缓冲器管理电路,该电路在通过总线传送第一信息的第一阶段,从第一信息用的第一存储区域读出从终端点向主机传送的信息,在通过总线传送第二信息的第二阶段,从第二信息用的第二存储区域读出从终端点向主机传送的信息。
2.根据权利要求1所述的数据传送控制装置,其特征在于,
将为第一信息准备的上述第一存储区域设定为FIFO区域,
将为第二信息准备的上述第二存储区域设定为可随机存取的区域。
3.根据权利要求1所述的数据传送控制装置,其特征在于,
上述第一信息是数据分组,
上述第二信息是状态块分组。
4.根据权利要求3所述的数据传送控制装置,其特征在于,
在从上述第一存储区域读出数据分组的期间,准备上述第二存储区域的状态块分组。
5.根据权利要求3所述的数据传送控制装置,其特征在于,
上述第二存储区域包含:写入成功状态用的第一状态块分组的第三存储区域;和写入不成功状态用的第二状态块分组的第四存储区域。
在成功状态时,从上述第三存储区域读出成功状态用的上述第一状态块分组,在不成功状态时,从上述第四存储区域读出不成功状态用的上述第二状态块分组。
6.根据权利要求5所述的数据传送控制装置,其特征在于,
在上述第三存储区域中预先写入设定了成功状态用的默认信息的状态块分组。
7.根据权利要求6所述的数据传送控制装置,其特征在于,
对设定了默认信息的状态块分组的信息中用于关联状态块分组和命令块分组的标记信息进行更新,从上述第三存储区域读出更新后的状态块分组作为上述第一状态块分组。
8.根据权利要求1所述的数据传送控制装置,其特征在于,
在判断为从上述第一阶段切换到上述第二阶段时,将从终端点向主机传送的信息的读出区域从上述第一存储区域切换到上述第二存储区域。
9.根据权利要求8所述的数据传送控制装置,其特征在于,
以通过第二总线传送上述第一信息并写入上述第一存储区域的传送处理结束并且上述第一存储区域已变空为条件,判断为已从上述第一阶段切换到上述第二阶段。
10.根据权利要求1所述的数据传送控制装置,其特征在于,进行遵循USB标准的数据传送。
11.一种数据传送控制装置,用于通过总线的数据传送,其特征在于,包含:
缓冲器,该缓冲器在分配数据分组和状态块分组作为通过一个终端点传送的信息时,对应于一个终端点,准备有数据用的数据存储区域和状态块分组用的状态存储区域;
缓冲器管理电路,该电路在从通过总线传送数据分组的数据阶段切换到通过总线传送状态块分组的状态阶段时,将信息的读出区域从数据用的上述数据存储区域切换到状态块用的状态存储区域,从上述状态存储区域读出从终端点向主机传送的状态块分组。
12.根据权利要求11所述的数据传送控制装置,其特征在于,进行遵循USB标准的数据传送。
13.一种电子机器,其特征在于,包含:
权利要求1中所述的数据传送控制装置;和
对通过上述数据传送控制装置和总线传送的数据,进行输出处理或取入处理的收发电路。
14.一种电子机器,其特征在于,包含:
权利要求11中所述的数据传送控制装置;和
对通过上述数据传送控制装置和总线传送的数据,进行输出处理或取入处理的收发电路。
15.一种数据传送控制方法,用于通过总线的数据传送,其特征在于,
在分配包含第一、第二信息的多种信息作为通过一个终端点传送的信息时,在缓冲器中,对应于一个终端点,准备第一信息用的第一存储区域和第二信息用的第二存储区域;和
在通过总线传送第一信息的第一阶段,从第一信息用的上述第一存储区域读出从终端点向主机传送的信息,在通过总线传送第二信息的第二阶段,从第二信息用的上述第二存储区域读出从终端点向主机传送的信息。
16.一种数据传送控制方法,用于通过总线的数据传送,其特征在于,
在分配数据分组和状态块分组作为通过一个终端点传送的信息时,在缓冲器中,对应于一个终端点,准备数据用的数据存储区域和状态块用的状态存储区域;
在从通过总线传送数据分组的数据阶段切换到通过总线传送状态块分组的状态阶段时,将信息的读出区域从数据用的上述数据存储区域切换到状态块用的状态存储区域,从上述状态存储区域读出从终端点向主机传送的状态块分组。
CNB021193827A 2001-05-14 2002-05-14 数据传送控制装置、电子机器及数据传送控制方法 Expired - Fee Related CN1213372C (zh)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
CN1385793A CN1385793A (zh) 2002-12-18
CN1213372C true CN1213372C (zh) 2005-08-03

Family

ID=18989583

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB021193827A Expired - Fee Related CN1213372C (zh) 2001-05-14 2002-05-14 数据传送控制装置、电子机器及数据传送控制方法

Country Status (8)

Country Link
US (2) US7007112B2 (zh)
EP (1) EP1258798B1 (zh)
JP (1) JP3680763B2 (zh)
KR (1) KR100474221B1 (zh)
CN (1) CN1213372C (zh)
AT (1) ATE302444T1 (zh)
DE (1) DE60205531T2 (zh)
TW (1) TW571232B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7596709B2 (en) * 2000-12-30 2009-09-29 Intel Corporation CPU power management based on utilization with lowest performance mode at the mid-utilization range
JP3680763B2 (ja) * 2001-05-14 2005-08-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US7080189B1 (en) * 2002-05-31 2006-07-18 Cypress Semiconductor Corp. USB device communication
JP2005293427A (ja) * 2004-04-02 2005-10-20 Matsushita Electric Ind Co Ltd データ転送処理装置及びデータ転送処理方法
JP4412191B2 (ja) * 2005-02-04 2010-02-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP4293141B2 (ja) * 2005-02-18 2009-07-08 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP2006235994A (ja) * 2005-02-24 2006-09-07 Nec Electronics Corp ブリッジシステム、ブリッジシステム制御方法、情報処理機器、周辺機器及びプログラム
JP2007080244A (ja) * 2005-08-19 2007-03-29 Ricoh Co Ltd データ転送装置及び画像形成装置
JP2007214786A (ja) * 2006-02-08 2007-08-23 Toshiba Corp 携帯型撮像装置
JP2007249938A (ja) * 2006-02-14 2007-09-27 Matsushita Electric Ind Co Ltd Usbホストシステム、avデータ再生装置およびavデータ記録装置
JP4369486B2 (ja) 2007-02-01 2009-11-18 富士通株式会社 データ転送装置、半導体集積回路、および処理状況通知方法
US8315269B1 (en) 2007-04-18 2012-11-20 Cypress Semiconductor Corporation Device, method, and protocol for data transfer between host device and device having storage interface
US20080263242A1 (en) * 2007-04-18 2008-10-23 Adrian Bica Usb flash media extender
TW200844841A (en) * 2007-05-10 2008-11-16 Realtek Semiconductor Corp Method for expediting data access of universal serial bus stoarage device
TWI448902B (zh) 2007-08-24 2014-08-11 Cypress Semiconductor Corp 具頁存取基礎處理器介面之橋接裝置
US8090894B1 (en) 2007-09-21 2012-01-03 Cypress Semiconductor Corporation Architectures for supporting communication and access between multiple host devices and one or more common functions
TW200945052A (en) * 2008-04-21 2009-11-01 Ralink Technology Corp Method for increasing USB transmission rate
KR102208656B1 (ko) * 2015-04-09 2021-01-28 한국전자통신연구원 시리얼 통신 제어 장치 및 방법

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL100127A0 (en) * 1991-03-11 1992-08-18 Future Domain Corp Scsi controller
JP2868141B2 (ja) * 1992-03-16 1999-03-10 株式会社日立製作所 ディスクアレイ装置
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
DE59811308D1 (de) 1997-07-21 2004-06-09 Infineon Technologies Ag Pufferspeicheranordnung
US5974486A (en) * 1997-08-12 1999-10-26 Atmel Corporation Universal serial bus device controller comprising a FIFO associated with a plurality of endpoints and a memory for storing an identifier of a current endpoint
US6145045A (en) * 1998-01-07 2000-11-07 National Semiconductor Corporation System for sending and receiving data on a Universal Serial Bus (USB) using a memory shared among a number of end points
US6157975A (en) 1998-01-07 2000-12-05 National Semiconductor Corporation Apparatus and method for providing an interface to a compound Universal Serial Bus controller
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
US6389495B1 (en) * 1999-01-16 2002-05-14 Cypress Semiconductor Corp. Dedicated circuit and method for enumerating and operating a peripheral device on a universal serial bus
AU5774200A (en) * 1999-06-28 2001-01-31 Sangate Systems Inc. Intelligent splitter, system, and methods of use
JP3608441B2 (ja) 1999-07-15 2005-01-12 セイコーエプソン株式会社 データ転送制御装置及び電子機器
KR20010026922A (ko) * 1999-09-09 2001-04-06 윤종용 유에스비 디바이스의 엔드포인트 컨트롤러
JP4329188B2 (ja) * 1999-11-05 2009-09-09 船井電機株式会社 データ転送制御装置
JP2001229115A (ja) * 2000-02-17 2001-08-24 Matsushita Electric Ind Co Ltd Atapiコマンド処理方式
US6779061B1 (en) * 2000-05-09 2004-08-17 Cypress Semiconductor Corp. Method and apparatus implementing a FIFO with discrete blocks
JP3415567B2 (ja) * 2000-06-21 2003-06-09 エヌイーシーマイクロシステム株式会社 Usb転送制御方法およびusbコントローラ
US6618788B1 (en) * 2000-09-27 2003-09-09 Cypress Semiconductor, Inc. ATA device control via a packet-based interface
JP3680762B2 (ja) 2001-05-14 2005-08-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP3870717B2 (ja) 2001-05-14 2007-01-24 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP3680763B2 (ja) * 2001-05-14 2005-08-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器

Also Published As

Publication number Publication date
JP3680763B2 (ja) 2005-08-10
CN1385793A (zh) 2002-12-18
US20020169905A1 (en) 2002-11-14
US7237047B2 (en) 2007-06-26
EP1258798B1 (en) 2005-08-17
EP1258798A2 (en) 2002-11-20
DE60205531T2 (de) 2006-03-30
DE60205531D1 (de) 2005-09-22
US7007112B2 (en) 2006-02-28
JP2002344538A (ja) 2002-11-29
KR20020087860A (ko) 2002-11-23
TW571232B (en) 2004-01-11
KR100474221B1 (ko) 2005-03-08
ATE302444T1 (de) 2005-09-15
EP1258798A3 (en) 2003-05-21
US20060053329A1 (en) 2006-03-09

Similar Documents

Publication Publication Date Title
CN1213372C (zh) 数据传送控制装置、电子机器及数据传送控制方法
CN100351816C (zh) 数据传送控制装置、电子装置和数据传送控制方法
CN1282094C (zh) 数据传送控制装置及数据传送控制方法
CN1269049C (zh) 数据传送控制装置及电子设备
CN1160634C (zh) 串行/并行转换电路、数据传送控制装置和电子设备
CN1129852C (zh) 通用串行总线装置控制器
CN1237455C (zh) 数据传输控制装置、电子设备、及数据传输控制方法
CN1174471A (zh) 打印机系统及其动作控制方法
CN1975654A (zh) 数据存储系统和数据存储控制装置
CN1551592A (zh) 数据传输控制装置、电子设备及数据传输控制方法
CN1146798C (zh) 数据传输控制装置及电子设备
CN1188998C (zh) 数据传输控制装置和电子设备
CN1607513A (zh) 数据传输控制装置、电子设备以及数据传输控制方法
CN1617160A (zh) 用于识别标准卡以及非标准卡的卡识别系统
CN1916961A (zh) 可中断图形处理单元及其控制方法
CN1912926A (zh) 可中断图形处理单元处理多个程序的方法和图形处理单元
CN1519575A (zh) 测试电路、集成电路及测试方法
CN1264081A (zh) 将生产测试接口接至全局串行总线的方法和装置
CN1890624A (zh) 电子装置及其控制方法、主机装置及其控制方法
CN1145876C (zh) 网络系统和网络接口卡
CN1251096C (zh) 数据传送控制装置及电子机器
CN1932783A (zh) 存储器控制装置
CN1674090A (zh) 声音波形合成器
CN1700166A (zh) 信息处理方法、信息处理装置
CN1275164C (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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20050803

Termination date: 20170514

CF01 Termination of patent right due to non-payment of annual fee