CN1282094C - 数据传送控制装置及数据传送控制方法 - Google Patents

数据传送控制装置及数据传送控制方法 Download PDF

Info

Publication number
CN1282094C
CN1282094C CNB021193789A CN02119378A CN1282094C CN 1282094 C CN1282094 C CN 1282094C CN B021193789 A CNB021193789 A CN B021193789A CN 02119378 A CN02119378 A CN 02119378A CN 1282094 C CN1282094 C CN 1282094C
Authority
CN
China
Prior art keywords
data
mentioned
bus
storage area
data storage
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
CNB021193789A
Other languages
English (en)
Other versions
CN1385791A (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 CN1385791A publication Critical patent/CN1385791A/zh
Application granted granted Critical
Publication of CN1282094C publication Critical patent/CN1282094C/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
    • 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
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)
  • Selective Calling Equipment (AREA)
  • Communication Control (AREA)

Abstract

采用了USB(第1总线)的数据传送控制装置内,在OUT事务处理中,在通过EBUS(第2总线)的数据传送(DMA传送)结束的条件下,判断为数据阶段(数据传送。全部数据的传送)结束,在IN事务处理中,在通过EBUS的数据接收结束而且Empty信号呈有效状态缓冲器内的数据存储区变空的条件下,判断为数据阶段结束。在EBUS侧设置用于计数数据长度的计数器。在通过EBUS的数据接收结束而且数据存储区内的剩余数据长度未达到最大包长的场合下,通过USB自动传送数据存储区内的短包,或者采用中断方式向固件通知短包的存在。

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方向的数据传送中对通过第1总线接收并通过第2总线传送的数据进行存储,在第2方向的数据传送中对通过第2总线接收并通过第1总线传送的数据进行存储;缓冲器管理电路,对上述缓冲器实施向上述数据存储区写入数据及从上述数据存储区读出数据的管理,在上述第1方向的数据传送中,在通过第2总线的数据传送结束的条件下,判断为实施数据传送的数据阶段结束,在上述第2方向的数据传送中,在通过第2总线的数据接收结束,而且上述缓冲器的上述数据存储区变空的条件下,判断为实施数据传送的数据阶段结束。
根据本发明,在第1方向的数据传送中,在通过第2总线的数据传送(比如DMA传送)结束的条件下,判断为数据阶段(数据传输。全部数据的传送)结束。另一方面,在第2方向的数据传送中,在通过第2总线的数据接收结束,而且此后数据存储区变空的条件下,判断为数据阶段结束。
这样,只需通过对第2总线侧的传送数据长度(数据长度)的检查,便可以简单地判断第1、第2方向的数据传送双方的数据阶段的结束。由此,可以简化电路构成与电路控制,进而可以减轻用于控制数据传送控制装置的处理单元的处理负荷。
此外本发明也可以包括用于计数通过上述第2总线进行收发的数据长度的计数器。
通过设置该计数器,可以容易地检查第2总线侧的传送数据长度。而且由于在第1总线侧不设置计数器也可以,因而可简化计数器的控制。
此外本发明也可以获取通过上述第2总线接收数据的状态,把所得到的状态在数据阶段结束后的状态阶段下通过上述第1总线传送出去。
这样,通过第2总线的数据接收结束后,可以有效利用数据阶段结束之前的期间,实施与状态相关的处理,进而提高有效的传送速度。
此外本发明也可以在通过上述第2总线的数据接收结束,而且上述缓冲器的上述数据存储区内的剩余数据长度未达到最大包长的场合下,通过上述第1总线自动传送上述数据存储区内的短包。
这样,无需通过处理单元,由比如硬件便可以自动传送数据存储区内的短包。由此,可以减轻处理单元的处理负荷,提高有效的传送速度。
此外本发明也可以包括用于设定上述数据存储区内短包的自动传送有效或无效的单元。
这样,便可以与允许短包自动传送的装置和不允许自动传送的装置二者相对应,提高数据传送控制装置的通用性。
此外本发明也可以在对通过上述第2总线接收的数据附加规定信息并通过上述第1总线传送的场合下,进行上述自动传送无效的设定。
这样,与第1总线相接的主机等可以有效地防止数据阶段未结束却误认为数据阶段结束的事态发生。
此外本发明也可以在通过上述第2总线的数据接收结束,而且上述缓冲器的上述数据存储区内的剩余数据长度未达到最大包长的场合下,向处理单元发出上述数据存储区内存在短包的通知。
这样,可以由处理单元根据具体情况进行适当处理,比如在不允许短包自动传送的装置内,也可以实现适当的数据传送控制。
此外本发明的上述数据存储区也可以是一种先输入的信息被先输出的存储区。
这样,通过在先入先出存储区内设置数据存储区,可以在DMA(Direct Memory Access:直接存储访问)传送等方式下实现有效的数据收发。
此外本发明也可以实施符合USB(Universal Serial Bus:通用串行总线)规格的数据传送。
但本发明也可以适用于符合USB之外的其它规格(延续USB概念的规格)的数据传送。
此外本发明涉及的电子设备也可包括上述任意一种数据传送控制装置和实施通过上述数据传送控制装置及总线传送的数据输出处理、取入处理或存储处理的装置。
在本发明下,由于可以减轻用于控制数据传送控制装置的数据传送的处理单元(固件等)的处理负荷,因而可以实现电子设备的低成本化及小型化等。
附图说明
图1A、图1B、图1C、图1D是关于USB的端点及事务处理构成的说明图。
图2A、图2B是关于CBI规格及Bulk-Only规格的说明图。
图3是CBW格式示意图。
图4是CSW格式示意图。
图5A、图5B是关于Bulk-Only下数据的写入处理及读出处理的说明图。
图6是本实施方式的数据传送控制装置构成例的示意图。
图7是本实施方式的数据传送控制装置的详细连接例的示意图。
图8A、图8B、图8C、图8D是用于说明OUT事务处理与PING事务处理的定时波形图。
图9A、图9B、图9C是用于说明IN事务处理的定时波形图。
图10是用于说明向HDD传送信号时的DMA传送的定时波形图。
图11是用于说明从HDD接收信号时的DMA传送的定时波形图。
图12是用于说明OUT事务处理(第1方向的数据传送)中本实施方式运作的定时波形图。
图13是用于说明IN事务处理(第2方向的数据传送)中本实施方式运作的定时波形图。
图14是用于说明自动传送短包的方法的定时波形图。
图15是本实施方式的数据传送控制装置的另一种详细连接例的示意图。
图16是用于说明向固件发出存在短包通知的方法的定时波形图。
图17A、图17B是表示比较例与本实施方式的固件处理的流程图。
图18是表示在向固件发出存在短包通知的方法下的固件处理的流程图。
图19A、图19B、图19C是各种电子设备的内部方框图例。
图20A、图20B、图20C是各种电子设备的外观图例。
实施方式
以下结合附图对本实施方式作以详细说明。
另外,以下说明的本实施方式不对在专利要求范围内记载的本发明内容有任何限定。此外在本实施方式下所说明的构成总体不是本发明解决手段的必须条件。
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(Cyclic RedundancyCheck:循环冗余检验)字段。
此外,数据包是用于传送数据实体的包,它具有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(控制/批量/中断)及Bulk-Only等规格。
因此,如图2A所示,在CBI规格下,装置中设置控制、批量输出、批量输入、中断的端点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(CommandStatus 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的标识包传送到装置内,接下来,把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构成例
图6表示本实施方式下数据传送控制装置的构成例。
本实施方式下的数据传送控制装置包括收发信机宏单元20、SIE 30、端点管理电路40、缓冲器管理电路50、缓冲器60、批量传送管理电路70、DMAC80。此外,本发明的数据传送控制装置不必包括图6所示电路方框图的全部内容,可以省略其中一部分内容。
这里,收发信机宏单元20是用于实现USB(第1总线)的FS方式及HS方式下数据传送的电路。作为该收发信机宏单元20,可以采用符合用于规定比如部分USB2.0物理层电路与逻辑层电路的接口的UTMI(USB2.0收发信机宏单元接口)标准的宏单元。该收发信机宏单元20包括收发信机电路22和时钟生成电路24。
收发信机电路22包括通过差动信号DP、DM收发USB(第1总线)上的数据的模拟前端电路(信号接收电路、信号传送电路)。此外还包括实施位塞入、位取出、串/并行转换、并/串行转换、NRZI解码、NRZI编码、取样时钟生成等处理的电路。
时钟生成电路24是用于生成数据传送控制装置所用的运行时钟和取样时钟等时钟的生成电路,包括用于生成480MHz和60MHz的时钟的PLL及振荡电路等。
SIE(串行接口引擎)是用于实施USB包传送处理等各种处理的电路,它包括包处理电路32、暂停与恢复控制电路34、事务处理管理电路36。
包处理电路32是用于实施由标题与数据组成的信息包的组合(生成)与分解等的电路,它包括实施CRC的生成与解读的CRC处理电路33。
暂停与恢复控制电路34是用于实施在暂停及恢复时的顺序控制的电路。
事务处理管理电路36是用于实施对由标识、数据、同步交换信号等包构成的事务处理过程的管理的电路。具体说,在接收标识信号后,对是否是发给自己的信号进行确认,如果是发给自己的信号,则实施与主机之间的数据包的传送处理,然后,实施同步交换包的传送处理。
端点管理电路40是用于对作为缓冲器60的各存储区入口的端点实施管理的电路,它包括用于存储端点属性信息的寄存器(寄存器组)等。
缓冲器管理电路50是用于对由比如RAM等构成的缓冲器60实施管理的电路。更具体地说,实施生成写入地址及读出地址,及向缓冲器60写入数据的处理和从缓冲器60读出数据的处理。
缓冲器60(包存储单元)用于通过USB对所传送的数据(包)进行暂时存储,具有对USB(第1总线)下的数据传送速度与EBUS(第2总线。DMA总线)下的数据传送速度之间的速度差进行补偿等功能。此外EBUS是与硬盘驱动器与CD驱动器及扫描器等装置连接的外部总线。
在本实施方式下,设有包括在第1方向的数据传送中(OUT事务处理),对通过经过USB(第1总线)接收的EBUS(第2总线)传送的数据(OUT数据)进行存储,在第2方向的数据传送中(IN事务处理),对通过经过EBUS接收的USB传送的数据(IN数据)进行存储的数据存储区62(FIFO。FIFO设定的存储区)的缓冲器60。
本实施方式下的数据传送控制装置在第1方向的数据传送中,在通过EBUS的数据传送结束的条件下,判断为数据阶段(数据传送。全部数据的传送)结束。另一方面,在第2方向的数据传送中,在通过EBUS的数据接收结束,而且缓冲器60的数据存储区62空的条件下(最后的数据包的确认通过USB返回),判断为数据阶段结束。
此外本发明下的数据传送控制装置在通过EBUS的数据接收结束后,而且缓冲器60的数据存储区62(FIFO。FIFO的设定存储区)内的剩余数据长度(数据长度、传送数)未达到最大包长的场合下,通过USB自动传送数据存储区62内的短包(其长度未达到最大包长的包),或通过采用中断信号等把短包的存在通知给CPU(固件,处理单元)。
此外在本实施方式下,在指令块(第1信息)和数据(第2信息。OUT数据)作为通过一个端点(图2B的EP1)传送的信息被分配的场合下(参照图2B的A1、A2),在缓冲器60中设有(确保)用于指令块的指令存储区(第1存储区)和用于数据的数据存储区(第2存储区)。
因此缓冲器管理电路60在通过USB(第1总线)传送指令决的指令阶段(第1阶段)中,把由主机向端点(EP1)传送的信息写入用于指令块的指令存储区内,在通过USB传送数据(OUT数据)的数据阶段(第2阶段)中,把由主机传送给端点的信息写入数据用数据存储区内。即以阶段切换为条件,切换信息(指令块、数据)的写入区。
或者在本实施方式下,在数据(第3信息。IN数据)和状态块(第4信息)作为通过一个端点(图2B的EP2)传送的信息被分配的场合下(参照图2B的A3、A4),在缓冲器60中设有用于数据的数据存储区(第3存储区)和用于状态块的状态存储区(第4存储区)。
因此缓冲器管理电路60在通过USB传送数据(IN数据)数据阶段(第3阶段)中,从数据用数据存储区内读出由端点(EP2)向主机传送的信息,在通过USB传送状态块的状态阶段(第4阶段)中,从状态用状态存储区内读出由端点传送给主机的信息。即以阶段切换为条件,切换信息(数据、状态块)的读出区。
这样,即使在一个端点上分配多种类型的信息(指令块、OUT数据、IN数据、状态块)的场合下,也可以边实施对指令存储区内指令块的处理,边实施对数据存储区内OUT数据的处理。或者边实施对数据存储区内的IN数据处理,边实施对状态存储区内的状态块的处理。因此可以提高数据传送控制装置的处理速度,减轻固件(处理单元)的负荷,有效提高总线的传送速度。
批量传送管理电路70是用于对USB下的批量传送实施管理的电路。
DMAC 80是用于通过EBUS实施DMA传送的DMA控制器,它包括DMA计数器82。DMA计数器82是对通过EBUS(第2总线)传送或接收的数据长度(传送数、数据长度)进行计数的电路。
2.2详细的连接例
图7是表示SIE 30、端点管理电路40、缓冲器管理电路50、缓冲器60、批量传送管理电路70、DMAC80的详细连接例图。
在图7中,SIEReadData是从缓冲器60(数据存储区62)读出的通过USB(第1总线)向主机传送的数据(IN数据)。SIEWriteData是通过USB由主机传送的并写入缓冲器60内的数据(OUT数据)。DMAReadData是从缓冲器60读出的通过EBUS(第2总线)向硬盘驱动器HDD等装置传送(DMA传送)的数据。DMAWriteData是通过EBUS由HDD等传送的并写入缓冲器60内的数据。
此外,由SIE 30输出的SIEReadReq是要求读出SIEReadData的信号,由端点管理电路40输出的SIEReadAck是对SIEReadReq的确认信号。同样,SIEWriteReq是要求写入SIEWriteData的信号,SIEWriteAck是对SIEWriteReq的确认信号。
此外由DMAC80输出的DMAReadReq是要求读出DMAReadData的信号,由端点管理电路40输出的DMAReadAck是对DMAReadReq的确认信号。同样,DMAWriteReq是要求写DMAWriteData的信号,DMAWriteAck是对DMAWriteReq的确认信号。
Full是表示缓冲器60内的数据存储区62是否充的信号,Empty是表示数据存储区62内是否空(Empty)的信号。在该场合下,数据存储区62内是否充或者是否空可以基于来自用于计数数据存储区62内的剩余数据长度(剩余数据空间)的剩余数据长度计数器41的计数值等判断出来。
此外,本实施方式下的数据存储区62是一种首先被输入的信息可先被输出的区域(FIFO。FIFO的设定区)。在该场合下,可以通过利用寄存器、存储器等以串联方式构成数据存储区62设定先入先出区,也可以通过实施RAM地址控制设定先入先出区。
由端点管理电路40输出的HaveMPS是表示缓冲器60的数据存储区62内的剩余数据长度(数据长度)是否是最大的包长的信号。以最大包长为512字节为例,当剩余数据长度为512字节(以上)时,HaveMPS将成为有效信号(H电平),当剩余数据长度为0~511字节时,HaveMPS将成为非有效信号(L电平)。该场合下的剩余数据长度可通过剩余数据长度计数器41求得。
HDDATA是通过EBUS(第2总线)以DMA方式传送的数据,xDMACK是对该DMA传送的确认信号,xDMARQ是DMA传送的要求信号。另外,xHIOR是读出的脉冲信号,xHIOW是写入的脉冲信号。
DMA_Start是用于CPU(固件)指令DMA传送开始的信号。DMA_Running是表示实施通过EBUS的DMA传送的信号,它在通过EBUS开始DMA传送时成为有效信号(H电平),当DMA传送结束时成为非有效信号(L电平)。即在通过EBUS传送数据(数据阶段)期间,DMA_Running是有效信号。
AutoEnShort是用于设定缓冲器60的数据存储区62内存在的短包的自动传送有效或无效的信号。此外EnShortPkt是用于向SIE 30发送短包传送指令的信号。
比如在AutoEnShort被设定为H电平时,如果通过EBUS的数据接收结束,而且数据存储区62内的剩余数据长度未达到最大包长,则EnShortPkt将呈有效状态。这样,数据存储区62内存在的短包(未达到最大包长的包)将在SIE 30作用下通过UBS被自动传送。
更具体地说,当DMA_Running处于非有效状态(数据接收结束)后,如果HaveMPS呈非有效(未达到最大包长)状态,则EnShortPkt将呈有效状态,数据存储区62内的短包将通过SIE 30被自动传送。
INTranACK是在对IN事务处理的确认信号从主机正常返回场合下呈有效状态的信号。BulkDMACmp是用于表示批量传送中数据阶段(全部数据的传送)结束的信号。
比如,当通过EBUS的数据接收结束后,数据存储区62呈空状态,如果从主机返回对最后的数据(IN数据)包传送的确认信号,则INTranACK将呈有效状态。这样BulkDMACmp将呈有效状态,在数据阶段(全部数据的传送)结束后,向固件(CPU)传送。由此,固件可转为下一个状态阶段的处理。
2.3运作
以下对本实施方式的运作作以说明。
图8A是表示在OUT事务处理(从主机向装置传送数据的第1方向的数据传送)中,在缓冲器60的数据存储区62(FIFO)内的剩余空间(空空间)的长度大于由主机传送来的数据长度(数据长度)的场合下的定时波型图。在该场合下,由于可以把来自主机的所有数据都写入数据存储区62内,所以可以如图8A中的C1所示对主机返回一个ACK信号。
此外在HS方式下,数据存储区62在单一缓冲器结构而非双缓冲器结构的场合下,在数据存储区62内达到空之前,不能从主机接收下一个包。因此在该场合下,将向主机返回一个NYET信号,而并非ACK信号。即使在双缓冲器结构场合下,在二个缓冲器都处于使用状态,不能接收下一个数据的场合下,将同样向主机返回一个NYET信号,而不是ACK信号。
图8B是在OUT事务处理中数据存储区62内的剩余空间长度小于数据长度的场合下的定时波形图。
在该场合下,由于不能把来自主机的所有数据都写入数据存储区62内,因而如图8B中的C2所示,将对主机返回一个NAK信号。因此由于通过此次相对OUT标识的数据传送所接收的数据被作废,所以如图3所示,Rewind信号将呈有效状态。
此外在图8A、图8B中的C4、C5中,如果SIE 30使SIEWriteReq呈有效状态,则通过端点管理电路40的指令,缓冲器管理电路50将生成SIEWritedata的写入地址,向缓冲器60输出。这样,如果要把比如4字节的SIEWritedata写入缓冲器60的数据存储区62内,则对SIE30返回一个SIEWriteAck信号。这样,通过反复重复每次4个字节的写入处理,来自主机的数据(比如512字节的数据)便可被依次写入数据存储区62内。
图8C、图8D是主机向装置询问数据存储区62内是否空的有关PING事务处理(PING协议)的定时波形图。该PING事务处理可被USB的HS方式支持。该协议用于相对来自主机的OUT标识与OUT数据从装置接收NYET的场合。
因此在该PING事务处理中,当数据存储区62内的剩余空间长度(空长度)超过数据长度时,将如图8C中的C6所示向主机返回一个ACK信号。另一方面,当数据存储区62内的剩余空间长度小于数据长度时,将如图8D中的C7所示向主机返回一个NAK信号。
图9A是在IN事务处理(从装置向主机传送数据的第2方向数据传送)中,数据存储区62内的剩余数据(有效数据)长度大于最大包长场合下的定时波型图。在该场合下,当向主机传送最大包长的数据时,将如图9A中的D1所示由主机向装置返回一个ACK信号。
此外在图9A的D2中,当SIE 30使SIEReadReq呈有效状态时,根据端点管理电路40的指令,缓冲器管理电路50生成SIEReadData的读出地址,并向缓冲器60输出。这样,如果比如从数据存储区62内读出4个字节的SIEReadData,则向SIE30返回一个SIEReadAck信号。这样,通过反复重复每次4个字节的读出处理,可以从数据存储区62中依次读出应向主机传送的数据。
图9B是在IN事务处理中,在数据存储区62内的剩余数据长度小于最大包长,而且EnShortPkt(参照图7)处于L电平(非有效)场合下的定时波形图。在该场合下,如图9B的D3、D4、D5所示,由于EnShortPkt处于L电平,所以短包(未达到最大包长的包)的传送被禁止。因此,如D6、D7、D8所示,返回一个针对来自主机的IN标识的NAK信号。
图9C是在IN事务处理中,在数据存储区62内的剩余数据长度小于最大包长,而且EnShortPkt处于H电平(有效)场合下的定时波形图。在该场合下,如图9C的D9所示,由于EnShortPkt处于H电平,所以允许短包传送,如D10所示,数据存储区62内存在的短包被正常传送到主机内。
此外缓冲器60的数据存储区62可以设成用于OUT事务处理与IN事务处理的共用区,也可以设成其它区。
图10是向硬盘驱动器HDD之类装置传送数据时的DMA传送定时波形图。
如图10的E1、E2所示,如果来自硬盘驱动器HDD的HDMARQ(参照图7)及来自CPU的DMA_Start为有效状态,则开始传送DMA,如E3所示,DMA_Running成为有效状态。
因此,如E4、E5所示,在实施采用DMAReadReq、DMAReadAck的同步交换处理时,从缓冲器60的数据存储区62内读出比如4个字节(32位)的数据。所读出的4字节数据如E6、E7所示,利用写入脉冲信号xHIOW,通过16位总线EBUS,以比如2个字节为单位向HDD传送。
因此如E8所示,每当传送一次数据时,DMA计数器82的计数值Count(数据传送数)都将被减少。此外Count的初始值N在指令阶段中基于图3中CBW的dCBWDTransferLength被设定。
如E9所示,当Count为0,而且EBUS中所有数据的传送都结束时,如E 10所示,DMA_Running将呈非有效状态。
图11是接收来自硬盘驱动器HDD之类装置的数据时的DMA传送定时波形图。
如图11的F1、F2所示,当HDMARQ、DMA_Start呈有效状态时,开始传送DMA,如F3所示,DMA_Running将呈有效状态。
因此,如F4、F5所示,利用读出脉冲信号xHIOR,通过EBUS从HDD接收数据。所接收的数据如F6、F7所示,通过采用DMAWriteReq、DMAWriteAck的同步交换信号,被写入缓冲器60的数据存储区62内。
如F8所示,每当接收到数据时,Count(数据传送数)都将被减少。因此如F9所示,如果Count变为0,而且EBUS下的所有数据传送都结束时,如F10所示,DMA_Running将呈非有效状态。
2.4数据阶段(数据传送)结束的检测
在USB中,如图5A、图5B所说明的那样,有必要经常在主机侧与装置侧边进行阶段匹配,边实施数据传送。
比如在图5B中,假设尽管主机认为当前阶段是数据阶段,但装置却认为当前阶段是状态阶段。这样,装置会把由主机传送来的IN标识(图5B中B4的标识)误认为是针对CSW(B6)的IN标识,从而产生数据传送错误。
此外在图2B所示的Bulk-Only规格中,多种信息被作为通过一个端点传送的信息分配。具体地说,在图2B中,CBW(指令)及OUT数据被作为通过批量输出端点EP1传送的信息分配,CSW(状态)及IN数据被作为通过批量输入端点EP2传送的信息分配。因此主机与装置有必要判断通过各端点传送的信息是哪种信息,在Bulk-Only规格下,主机及装置对当前阶段是哪种阶段进行判断,并实施该信息的判别。
又如在图5A、图5B的B1、B2中,由于当前阶段是指令阶段,因而判断出通过端点EP1传送的信息是CBW。在B3、B4中,由于当前阶段是数据阶段,因而判断出通过端点EP1传送的信息是OUT数据,通过端点EP2传送的信息是IN数据。在B5、B6中,由于当前阶段是状态阶段,因而判断出通过端点EP2传送的信息是CSW。
在该USB下,主机及装置有必要正确认识当前阶段是哪种阶段。因此即使对于比如从数据阶段转换为状态阶段的定时最好也能正确判断出来。
于是,在本实施方式下,通过以下说明的方法实现对从数据阶段转换为状态阶段即数据阶段结束的判断。
在比如从主机向装置传送OUT数据的OUT事务处理(第1方向的数据传送)场合下,如图12所示判断出数据阶段结束(所有数据的传送结束。阶段转换)。
具体地说,如图12中G1所示,首先通过USB(第1总线)开始传送数据(数据阶段)。当所传送的数据被写入缓冲器60的数据存储区62内时,如G2所示,表示数据存储区62是否空(Empty)的信号Empty呈非有效状态,表示数据存储区62并非空。
接下来如G3、G4所示,通过CPU把DMA_Start设定为有效状态,DMA_Running处于有效状态,开始通过EBUS(第2总线)传送数据(EBUS的数据阶段)。
这样,当如G5所示的通过USB的数据传送结束时以及如G6所示的通过EBUS的数据传送(DMA传送)结束时,可判断为数据阶段结束,从数据阶段转换为状态阶段。
该G6所示的定时是比通过USB的数据传送结束时G5所示的定时滞后的定时。该G6所示定时与缓冲器60的数据存储区62空,而且Empty信号呈有效状态的G7所示定时相一致。因此在本实施方式下,通过采用在EBUS侧设置的图12中的DMA计数器82,对通过EBUS传送的数据长度(传送数。数据长度)进行计数的方法,对该G6所示定时进行判断。(参照图10中的E9)。
这样在本实施方式下,在OUT事务处理(第1方向的数据传送)中,在通过EBUS(第2总线)的数据传送结束的条件下,判断为数据阶段结束。
另一方面,在从装置向主机传送IN数据的IN事务处理(第2方向的数据传送)场合下,如图13所示,判断为数据阶段结束(全部数据传送结束。开始阶段转换)。
具体地说,首先如H1、H2所示,通过CPU把DMA_Start设定为有效状态,DMA_Running将处于有效状态,开始通过EBUS传送DMA。因此通过EBUS所传送的数据被写入缓冲器60的数据存储区62内后,如H3所示,Empty呈非有效状态,表示数据存储区62并非空。
接下来,开始H4所示的通过USB的数据传送。从数据存储区62读出通过USB传送的数据,如果数据存储区62空,则Empty将呈有效状态。
因此在本实施方式下,如H6所示,当判断出通过EBUS(第2总线)的数据传送结束时,如H7所示,数据存储区62内将空,在Empty信号呈有效状态的定时下,判断为数据阶段(全部数据的传送)结束。在该场合下,通过利用在EBUS侧设置的DMA计数器82对通过EBUS传送的数据长度的计数,可以判断出H6的定时。此外H7的定时与通过USB(第1总线)的数据传送(数据阶段)结束后的H8定时一致。
这样在本实施方式下,在IN事务处理(第2方向的数据传送)中,当通过EBUS(第2总线)的数据接收结束,而且缓冲器60内的数据存储区变空的条件下,判断为数据阶段结束。
作为一种与比如图12、图13的本实施方式方法不同的方法,可以考虑在EBUS侧与USB侧二侧设置用于计数数据长度的计数器。在该方法中,在比如OUT事务处理中,在EBUS侧的计数器的计数值为0的条件下,判断为数据阶段结束,在IN事务处理中,在USB侧的计数器的计数值为0的条件下,判断为数据阶段结束。
但在该方法中,必须设置二个计数器,对这二个计数器的控制处理将变得复杂。其结果是电路控制及电路构成将复杂化,导致数据传送控制装置规模加大,成本上升。而且用于控制数据传送控制装置的固件(CPU)的处理也复杂化,由于这种额外处理的负担,可能会降低数据实际传送速度。
对此在图12、图13中的本实施方式方法中,如图7所示,只需在EBUS(第2总线)侧设置计数器,没有必要在USB(第1总线)侧设置计数器。这样,可便于电路控制,同时可简化电路构成,可实现数据传送控制装置的小型化与低成本化。而且用于控制数据传送控制装置的固件处理也可简化,可提高数据实际传送速度。
此外在本实施方式下,如图13的H9所示,当通过EBUS(第2总线)的数据接收结束后,从硬盘驱动器HDD侧得到该数据的接收状态,基于所得到的该状态,制作出如图4所示的CSW(状态)。该CSW的制作处理通过比如固件等实施。
这样,如图13的H10所示,在数据阶段结束后的状态阶段下,通过USB(第1总线)把所制作出的该CSW传送到主机侧。
这样,如图13的H9所示,可以有效利用通过USB的数据传送期间,可从HDD侧得到状态信息,制作出CSW。因此如H10所示,在从数据阶段转为状态阶段后,可以立即返送针对来自主机的IN标识的CSW。因此,在状态阶段中,可以降低针对来自主机的IN标识的NAK返送频度,可有效提高数据传送速度。
2.5短包的自动传送
在USB中,有效负载长未达到最大包长的短包具有特别的意义。
即由装置把短包传送过来后,主机判断为数据阶段结束,转为状态阶段。因此在除数据阶段结束的其它场合下,装置对数据传送实施控制,使短包不能被传送给主机。
具体地说,装置持续性地对缓冲器60的数据存储区62的剩余数据长度进行检查。当剩余数据长度超过最大包长时,根据剩余数据制作出最大包长的数据包,并向主机传送。如果判断出剩余数据长度未达到最大包长,则允许传送短包,把剩余数据长度包制成短包向主机传送。以这种方式结束数据阶段。
但是,如果按上述方法对数据存储区62内的剩余数据长度持续性地进行检查,并根据其检查结果实施处理,则实施该检查处理的固件(CPU)的处理负荷将非常沉重。因此它将成为该固件的额外处理负担,导致实际数据传送能力的下降。
因此在本实施方式下,采用在通过EBUS(第2总线)的数据接收(DMA传送)结束后,而且数据存储区62内的剩余数据长度(有效数据)未达到最大包长的场合下,使数据存储区62内的短包通过USB(第1总线)自动传送(不通过固件处理,而通过硬件处理)的方法。
比如图14表示在IN事务处理(第2方向的数据传送)中,在数据存储区62内的剩余数据长度未达到最大包长场合下的定时波形图。
图14中,如I1所示,作为短包自动传输(自动传送)有效还是无效的设定信号的AutoEnShort(参照图7)被设定为有效状态(H电平)。该AutoEnShort的电平通过在比如计数时由固件(CPU)在AutoEnShort的寄存器内写入分配值而设定。在该场合下,在比如大容量存储装置之类的使短包自动传送持续有效的装置中,可以将AutoEnShort固定设为有效状态。
因此在如图14的I1所示把AutoEnShort设定为有效状态的状态下,如I2所示通过EBUS的数据传送结束后,如I3所示通过USB传送最后的具有最大包长(比如512字节)的Dn-1包。
在该场合下,如果数据存储区62内的剩余数据长度未达到最大包长,则如I4所示,用于向SIE 30发送短包自动传送指令的EnShortPkt处于有效状态。即如图7所示,在AutoEnShort为有效状态,表示剩余数据长度是否达到最大包长的HaveMPS呈非有效状态的场合下,EnShortPkt处于有效状态。
因此如果EnShortPkt处于有效状态,则如图14中的I5所示,存在于数据存储区62内的短包将不通过固件处理而由硬件(SIE30)自动传给主机。因此如果短包通过USB传送,则如I6所示,当数据阶段结束后,将转为状态阶段。
在上述图14所示的本实施方式方法中,通过把AutoEnShort设定为有效状态,可通过硬件自动传送数据存储区62内的短包。因此固件将不必实施对数据存储区62内的剩余数据长度的检查处理。其结果是,可以减轻固件的处理负荷,有效提高数据传送速度。
尤其是在装置侧,根据低成本的要求,许多场合下采用在比如20~50MHz左右的时钟频率下运作的廉价CPU。因此如果通过采用CPU的固件实施剩余数据长度的检查处理,则在检查处理中将要花费大量时间,向如I6所示的状态阶段的转移定时将可能非常迟缓。
对此,在图14所示的本实施方式方法中,由于无需通过固件实施对剩余数据的检查处理,因而可以迅速转入状态阶段。其结果是,与通过固件实施剩余数据长度检查处理相比,可以大大提高数据传送速度。
此外在本实施方式下,通过变更AutoEnShort的设定,可以任意设定短包自动传送的有效或无效。
比如在硬盘驱动器和CD驱动器等的大容量存储装置中,可按照使短包的自动传送持续有效的方式设定AutoEnShort。这样,可以不通过固件处理自动传送短包及向状态阶段转移。
另一方面,在通过EBUS(第2总线)接收的数据中附加数据长度之类的信息,并通过USB(第1总线)传送的扫描器之类的装置中,把AutoEnShort设定为非有效状态(L电平)。
即在扫描器中,如果数据的输入没有结束,则不能确定最终的数据长度。因此,数据传送控制装置在来自扫描器的接收数据末尾附加包括数据长度的控制信息(文头、脚注),向主机传送。因此将产生不允许向主机无条件传送短包,通过EBUS传送的数据的长度与通过USB传送的数据的长度不一致及把AutoEnShort设定为非有效状态的必要性。
在本实施方式下,通过可任意设定短包自动传送的有效与无效,可以不仅对硬盘驱动器之类的大容量存储装置,对扫描器之类装置内的数据传送也能灵活对应。
2.6存在短包的通知
在图14中,可利用AutoEnShort信号自动传送数据存储区62内的短包。
与此相对,可以把在数据存储区62中存在短包的事实通知给CPU(固件)。具体地说,在通过EBUS(第2总线)的数据接收结束后,而且数据存储区62内的剩余数据长度未达到最大包长的场合下,通过中断等方式把数据存储区62内存在短包的事实通知给CPU(处理单元)。
采用该方法场合下的SIE30、端点管理电路40、缓冲器管理电路50、缓冲器60、批量传送管理电路70、DMAC80的详细连接例在图15中示出。
图15与上述图7的不同之处是,在图15中,批量传送管理电路70向CPU(CPU可访问的寄存器)输出中断信号ShortINT和EnShortPkt由CPU设定并输入到SIE30内之处。
这里,ShortINT是用于向CPU通知在数据存储区62内存在短包的中断信号,EnShortPkt是用于CPU向SIE30发出传送短包指令的信号。
因此比如DMA_Running处于非有效状态(数据接收结束)后,如果HaveMPS处于非有效状态(未达到最大包长),则ShortINT将处于有效状态,向CPU发出在数据存储区62内存在可以传送的短包的通知。
这样,CPU将实施用于短包传送的判断处理,如果判断出可以传送短包,便把EnShortPkt设定为有效状态。这样,SIE30将实施读出存在于数据存储区62内的短包,并通过USB传送给主机的处理。
图16表示在IN事务处理(第2方向的数据传送)中数据存储区62内剩余数据长度未达到最大包长时的定时波形图。
在图16中,如J1所示,用于设定短包的自动传送有效或无效的AutoEnShort处于非有效状态(L电平)。在该状态下,如J2所示的通过EBUS的数据传送结束,如J3所示,具有最后的最大包长的Dn-1包被通过USB传送。
在该场合下,如果数据存储区62内的剩余数据长度未达到最大包长,如J4所示,用于向CPU通知存在短包的中断信号ShortINT将处于有效状态。即在图15中,在DMA_Running处于非有效状态,而且用于表示剩余数据长度是否达到最大包长的HaveMPS处于非有效状态的场合下,ShortINT将处于有效状态。
这样,接收到该ShortINT信号的CPU(固件)实施比如在接收数据中附加数据长度等信息的处理(在数据存储区62内写入附加信息的处理)等。此后,如J5所示,把EnShortPkt设定为有效状态。这样,如J6所示,数据存储区62内的数据通过SIE30被传送给主机。这样,如J7所示,结束数据阶段,转入状态阶段。
在图16所示的本实施方式方法下,利用ShortINT把在数据存储区62内存在短包的事实通知给通过CPU运作的固件。这样,即使对于比如接收数据长度之类信息的数据最后附加的扫描器之类的装置,也可以实现正确的数据传送。
2.7固件处理
图17A所示是表示IN事务处理中作为比较示例的固件处理流程图。图17B所示是表示用于自动传送短包的本实施方式方法中固件的处理流程图。
在图17A的比较示例中,固件首先把DMA-Start设置为1(H电平),启动通过EBUS的DMA传送(步骤S1)。然后检查DMA-Running,判断通过EBUS的DMA传送是否结束(步骤S2)。
在判断出DMA传送结束的场合下,利用IntranACK检测来自USB侧的ACK(步骤S3)。在检测出ACK的场合下,对缓冲器数据存储区内的剩余数据长度RDS进行检查(步骤S4)。在RDS最大包长MaxPacketSize的场合下,返回步骤S3,等待下一个ACK的到来。
另一方面,在RDS<MaxPacketSize的场合下,把EnShortPkt设定为1(步骤S5)。接下来,数据存储区内的短包被传送给主机。然后返回步骤S3,等待下一个ACK的到来。
此外在RDS=0的场合下,由于可认为是数据存储区内的所有数据都传送完毕,所以可得到EBUS侧的状态(步骤S6)。从而基于所得到的该状态制作CSW,设定为应向USB侧传送的状态(步骤S7)。
在图17B的本实施方式中,固件首先把DMA-Start设置为1,启动通过EBUS的DMA传送(步骤S11)。此外,AutoEnShort在DMA传送前被设置为1。接下来检查DMA_Running,对通过EBUS的DMA传送是否结束进行判断(步骤S12)。
在判断出DMA传送结束的场合下(图14的I2),取得EBUS侧的状态(步骤S13)。接下来判断数据阶段(全部数据的传送)是否结束(步骤S14)。即如果缓冲器的数据存储区空,则对主机是否返回一个针对最后的信息包的ACK信号进行判断。在判断出数据阶段结束的场合下,基于在步骤S13中得到的状态制作CSW,设定为应向USB侧传送的状态。(步骤S15)。
这样,在图17B所示的本实施方式下,不需要图17A中比较示例所示的必要的剩余数据长度检查处理(步骤S4)。此外把EnShortPkt设定为有效状态的处理也可以通过硬件实施,可以不由固件实施。因此可以减轻固件的处理负荷,有效提高数据传送速度。
图18是表示在利用中断方法向固件发送存在短包的通知的方法(图15、图16)中固件的处理流程图。
在图18中,固件首先启动EBUS下的DMA传送,然后判断DMA传送是否结束(步骤S21、S22)。
在判断出DMA传送结束的场合下,对是否检测出中断信号ShortINT(图16的J4)进行判断(步骤S23)。在检测出中断信号ShortINT的场合下,把应附加到DMA传送的接收数据内的信息(比如数据长度)写入数据存储区内(FIFO)(步骤S24)。
接下来,如果判断出全部信息都附加完毕(步骤S25),则把EnShortPkt设定为1(步骤S26)。
接下来检测来自USB侧的ACK信号(步骤S27)。在检测出ACK的场合下,对数据存储区内剩余数据长度RDS是否为0进行检查(步骤S28)。在RDS不为0的场合下,返回步骤S27,等待检测下一个ACK。
另一方面,在RDS为0的场合下,由于可认为是数据存储区内的所有数据都传送完毕,所以可得到EBUS侧的状态(步骤S29)。因此基于所得到的该状态制作CSW,设定为应向USB侧传送的状态(步骤S30)。
3.电子设备
以下对本实施方式下包括数据传送控制装置在内的电子设备示例作以说明。
比如图19A是表示作为电子设备之一的打印机的内部方框图,图20A是其外观图。CPU(微型计算机)510实施系统总体控制等。操作部511是用于用户操作打印机的部分。在ROM516内存有控制程序及字码等,RAM517作为CPU510的工作部分发挥功能。DMAC518是用于无需通过CPU510实施数据传送的DMA控制器。显示屏519用于使用户了解打印机的运行状态。
通过USB由个人计算机等其它装置传送来的串行打字数据通过数据传送控制装置500被转换成并行打字数据。转换后的并行打字数据通过CPU510或DMAC518被传送给打字处理部(打印机引擎)512。在打字处理部512内对并行打字数据实施规定的处理,通过由打印头等组成的打字部(实施数据输出处理的装置)514把字打到纸上并输出。
图19B是表示作为电子设备之一的扫描机的内部方框图,图20B是其外观图。CPU520实施系统总体控制等。操作部521是用于用户操作扫描机的部分。在ROM526内存有控制程序等,RAM527作为CPU520的工作部分发挥功能。DMAC528是DMA控制器。
通过由光源、光电转换器等组成的图像读取部(实施数据读取处理的装置)522读取原稿图像,所读取的图像数据通过图像处理部(扫描器引擎)524处理。处理后的图像数据通过CPU520或DMAC528被传送给数据传送控制装置500。数据传送控制装置500把该并行图像数据转换成串行数据,通过USB传送给个人计算机等其它装置。
图19C是表示作为电子设备之一的CD-RW驱动器的内部方框图,图20C是其外观图。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内。
此外图19A、图19B、图19C中,除了CPU510、520、530之外,也可以另外设置用于通过数据传送控制装置500实施数据传送控制的CPU。
如果把本实施方式下的数据传送装置用于电子设备,则可以减轻通过CPU运作的固件的处理负荷,可以采用廉价的CPU。此外由于可以实现数据传送控制装置的低成本化及小规模化,因而还可以实现电子设备的低成本化与小规模化。
此外,如果把本实施方式下的数据传送装置用于电子设备,可以妥善实施USB2.0中HS方式下的数据传送。因此,在用户发出通过个人计算机等进行打印的指令的场合下,可以在较短的延时条件下完成打印。此外,在发出向扫描器输入图像的指令后,用户可在较短的延时下见到所读取的图像。此外还可以高速实施来自CD-RW的数据读取和向CD-RW的数据写入。
此外作为可适用于本实施方式下的数据传送控制装置的电子设备,除上述之外,还可以举出以下各种示例:各种光盘驱动器(CD-ROM,DVD)、光磁盘驱动器(MO)、硬盘驱动器、电视机、磁带录像机、摄像机、音频设备、电话机、投影仪、个人计算机、电子记事薄、字处理器等。
另外,本发明并不局限于本实施方式,可以在本发明要旨范围内作各种变形实施。
比如本发明的数据传送控制装置的构成并不局限于图6、图7、图15所示的构成,可以作各种变形实施。
在本实施方式下,虽然曾以用于USB的Bulk-Only规格的适用示例作说明,但本发明的适用范围并不局限于USB的Bulk-Only规格。
此外虽然本发明主要适用于USB2.0下的数据传送,但并不局限于此。本发明也可适用于基于与比如USB2.0具有相同设想的规格及根据USB2.0发展而来的规格下的数据传送。

Claims (20)

1.一种用于通过总线传送数据的数据传送控制装置,其特征在于:
包括
具有数据存储区的缓冲器,在第1方向的数据传送中对通过第1总线接收并通过第2总线传送的数据进行存储,在第2方向的数据传送中对通过第2总线接收并通过第1总线传送的数据进行存储;以及
缓冲器管理电路,对上述缓冲器实施向上述数据存储区写入数据及从上述数据存储区读出数据的管理,
在上述第1方向的数据传送中,在通过第2总线的数据传送结束的条件下,判断为实施数据传送的数据阶段结束,在上述第2方向的数据传送中,在通过第2总线的数据接收结束,而且上述缓冲器的上述数据存储区变空的条件下,判断为实施数据传送的数据阶段结束。
2.权利要求1记载的数据传送控制装置,其特征在于:
包含用于对通过上述第2总线传送或接收的数据长度进行计数的计数器。
3.权利要求1记载的数据传送控制装置,其特征在于:
取得通过上述第2总线接收数据的状态,在数据阶段结束后的状态阶段中把所得到的状态通过上述第1总线传送出去。
4.权利要求1记载的数据传送控制装置,其特征在于:
在通过上述第2总线的数据接收结束,而且上述缓冲器的上述数据存储区内的剩余数据长度未达到最大包长的场合下,通过上述第1总线自动传送上述数据存储区内的短包。
5.权利要求1记载的数据传送控制装置,其特征在于:
在通过上述第2总线的数据接收结束,而且上述缓冲器的上述数据存储区内的剩余数据长度未达到最大包长的场合下,向处理单元发出上述数据存储区内存在短包的通知。
6.权利要求4记载的数据传送控制装置,其特征在于:
包含用于对上述数据存储区内短包自动传送的有效或无效进行设定的单元。
7.权利要求6记载的数据传送控制装置,其特征在于:
在对通过上述第2总线接收的数据附加规定信息并通过上述第1总线传送的场合下,上述自动传送被设定为无效。
8.权利要求1记载的数据传送控制装置,其特征在于:
上述数据存储区是一种先输入的信息先被输出的存储区。
9.权利要求1记载的数据传送控制装置,其特征在于:
实施符合USB规格的数据传送。
10.一种用于通过总线传送数据的数据传送控制装置,其特征在于:
包括
具有数据存储区的缓冲器,对通过第2总线接收并通过第1总线传送的数据进行存储;以及
缓冲器管理电路,对上述缓冲器实施向上述数据存储区写入数据及从上述数据存储区读出数据的管理,
在由表示进行数据传送的信号变为非有效来判断通过上述第2总线的数据接收已结束,且由表示剩余数据长度为最大包长的信号变为非有效判断出上述缓冲器的上述数据存储区内的剩余数据长度未达到最大包长的场合下,把对包传送处理电路指示短包传送的信号变为有效,并通过上述包传送处理电路由上述第1总线自动传送上述数据存储区内的短包。
11.权利要求10记载的数据传送控制装置,其特征在于:
包含用于对上述数据存储区内短包自动传送的有效或无效进行设定的单元。
12.权利要求11记载的数据传送控制装置,其特征在于:
在对通过上述第2总线接收的数据附加规定信息并通过上述第1总线传送的场合下,上述自动传送被设定为无效。
13.权利要求10记载的数据传送控制装置,其特征在于:
上述数据存储区是一种先输入的信息先被输出的存储区。
14.权利要求10记载的数据传送控制装置,其特征在于:
实施符合USB规格的数据传送。
15.一种用于通过总线传送数据的数据传送控制装置,其特征在于:
包括
具有数据存储区的缓冲器,对通过第2总线接收并通过第1总线传送的数据进行存储;以及
缓冲器管理电路,对上述缓冲器实施向上述数据存储区写入数据及从上述数据存储区读出数据的管理,
在由表示进行数据传送的信号变为非有效来判断通过上述第2总线的数据接收已结束,且由表示剩余数据长度为最大包长的信号变为非有效判断出上述缓冲器的上述数据存储区内的剩余数据长度未达到最大包长的场合下,把对处理单元的分配信号变为有效,并向上述处理单元发出上述数据存储区内存在短包的通知。
16.权利要求15记载的数据传送控制装置,其特征在于:
上述数据存储区是一种先输入的信息先被输出的存储区。
17.权利要求15记载的数据传送控制装置,其特征在于:
实施符合USB规格的数据传送。
18.一种用于通过总线传送数据的数据传送控制方法,其特征在于:
在缓冲器内设置在第1方向的数据传送中对通过第1总线接收并通过第2总线传送的数据进行存储,在第2方向的数据传送中对通过第2总线接收并通过第1总线传送的数据进行存储的数据存储区;
对上述缓冲器实施向上述数据存储区内写入数据及从上述数据存储区读出数据的管理,同时,
在上述第1方向的数据传送中,在通过第2总线的数据传送结束的条件下,判断为实施数据传送的数据阶段结束,在上述第2方向的数据传送中,在通过第2总线的数据接收结束,而且上述缓冲器的上述数据存储区变空的条件下,判断为实施数据传送的数据阶段结束。
19.一种用于通过总线传送数据的数据传送控制方法,其特征在于:
在缓冲器内设置对通过第2总线接收并通过第1总线传送的数据进行存储的数据存储区,
对上述缓冲器实施向上述数据存储区内写入数据及从上述数据存储区读出数据的管理,同时,
在通过上述第2总线的数据接收结束,而且上述缓冲器的上述数据存储区内的剩余数据长度未达到最大包长的场合下,通过上述第1总线自动传送上述数据存储区内的短包。
20.一种用于通过总线传送数据的数据传送控制方法,其特征在于:
在缓冲器内设置对通过第2总线接收并通过第1总线传送的数据进行存储的数据存储区,
对上述缓冲器实施向上述数据存储区内写入数据及从上述数据存储区读出数据的管理,同时,
在通过上述第2总线的数据接收结束,而且上述缓冲器的上述数据存储区内的剩余数据长度未达到最大包长的场合下,向处理单元发出上述数据存储区内存在短包的通知。
CNB021193789A 2001-05-14 2002-05-14 数据传送控制装置及数据传送控制方法 Expired - Fee Related CN1282094C (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
CN1385791A CN1385791A (zh) 2002-12-18
CN1282094C true CN1282094C (zh) 2006-10-25

Family

ID=18989584

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB021193789A Expired - Fee Related CN1282094C (zh) 2001-05-14 2002-05-14 数据传送控制装置及数据传送控制方法

Country Status (8)

Country Link
US (1) US6901465B2 (zh)
EP (1) EP1260908B1 (zh)
JP (1) JP3870717B2 (zh)
KR (1) KR100460650B1 (zh)
CN (1) CN1282094C (zh)
AT (1) ATE301307T1 (zh)
DE (1) DE60205305T2 (zh)
TW (1) TW556090B (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804232B1 (en) 2000-03-27 2004-10-12 Bbnt Solutions Llc Personal area network with automatic attachment and detachment
US7386003B1 (en) * 2000-03-27 2008-06-10 Bbn Technologies Corp. Systems and methods for communicating in a personal area network
JP3680763B2 (ja) * 2001-05-14 2005-08-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US7421257B1 (en) 2001-11-30 2008-09-02 Stragent, Llc Receiver scheduling in ad hoc wireless networks
JP3703439B2 (ja) * 2002-03-19 2005-10-05 Necマイクロシステム株式会社 データ転送制御装置及び方法
JP2004029898A (ja) * 2002-06-21 2004-01-29 Renesas Technology Corp データプロセッサ
JP2005100064A (ja) * 2003-09-24 2005-04-14 Canon Inc 画像処理装置、画像処理方法およびプログラム
JP2005122372A (ja) 2003-10-15 2005-05-12 Seiko Epson Corp データ転送制御装置、電子機器及びデータ転送制御方法
US20080301358A1 (en) * 2004-05-25 2008-12-04 Chih-Chiang Wen Electronic device that Downloads Operational Firmware from an External Host
US20050268029A1 (en) * 2004-05-25 2005-12-01 Chih-Chiang Wen Optical Disc Drive that Downloads Operational Firmware from an External Host
US20050265266A1 (en) * 2004-05-25 2005-12-01 Chih-Chiang Wen Optical disc drive that downloads operational firmware from an external host
US20050273541A1 (en) * 2004-06-04 2005-12-08 Texas Instruments Incorporated Circuit and method for adaptively recognizing a data packet in a universal serial bus network device
ATE497617T1 (de) * 2004-06-15 2011-02-15 Nxp Bv Bus-controller zur handhabung von geteilten transaktionen
JP4567433B2 (ja) * 2004-12-27 2010-10-20 ルネサスエレクトロニクス株式会社 ホスト装置、デバイス装置、通信システム及びデータ送受信方法
JP4412191B2 (ja) * 2005-02-04 2010-02-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP2006215873A (ja) * 2005-02-04 2006-08-17 Toshiba Corp 制御装置、情報処理装置、及び転送処理方法
JP2006235994A (ja) * 2005-02-24 2006-09-07 Nec Electronics Corp ブリッジシステム、ブリッジシステム制御方法、情報処理機器、周辺機器及びプログラム
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
JP4966505B2 (ja) * 2005-03-24 2012-07-04 ブラザー工業株式会社 パケット通信システム
EP2015230B1 (en) * 2006-04-26 2014-04-02 Panasonic Corporation Signal transmission method, transmission/reception device, and communication system
GB0616025D0 (en) 2006-08-11 2006-09-20 Aspex Semiconductor Ltd Improvements relating to direct data input/output interfaces
JP4337891B2 (ja) * 2007-03-01 2009-09-30 セイコーエプソン株式会社 記憶端末および情報処理システム
US20090083475A1 (en) * 2007-09-24 2009-03-26 Mediatek Inc. Apparatus and method for updating firmware stored in a memory
CN101458672B (zh) * 2007-12-10 2011-08-24 联想(北京)有限公司 一种热插拔设备、电脑及数据传输指示方法
TW200945052A (en) * 2008-04-21 2009-11-01 Ralink Technology Corp Method for increasing USB transmission rate
US20160357462A1 (en) * 2015-06-08 2016-12-08 Samsung Electronics Co., Ltd. Nonvolatile Memory Modules and Data Management Methods Thereof
TWI812490B (zh) * 2022-09-27 2023-08-11 宏達國際電子股份有限公司 信號收發裝置及其信號收發方法

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5131081A (en) * 1989-03-23 1992-07-14 North American Philips Corp., Signetics Div. System having a host independent input/output processor for controlling data transfer between a memory and a plurality of i/o controllers
JP3515142B2 (ja) * 1992-06-11 2004-04-05 セイコーエプソン株式会社 データ転送制御装置
US5546546A (en) * 1994-05-20 1996-08-13 Intel Corporation Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge
US5771359A (en) * 1995-10-13 1998-06-23 Compaq Computer Corporation Bridge having a data buffer for each bus master
JP2996179B2 (ja) * 1996-07-22 1999-12-27 日本電気株式会社 Pciバス・システム
US6185641B1 (en) * 1997-05-01 2001-02-06 Standard Microsystems Corp. Dynamically allocating space in RAM shared between multiple USB endpoints and USB host
US5987554A (en) * 1997-05-13 1999-11-16 Micron Electronics, Inc. Method of controlling the transfer of information across an interface between two buses
US6073190A (en) * 1997-07-18 2000-06-06 Micron Electronics, Inc. System for dynamic buffer allocation comprising control logic for controlling a first address buffer and a first data buffer as a matched pair
US6128673A (en) * 1997-11-14 2000-10-03 Aronson; Michael D. Method and apparatus for communication and translation of a plurality of digital protocols
US6279087B1 (en) * 1997-12-22 2001-08-21 Compaq Computer Corporation System and method for maintaining coherency and improving performance in a bus bridge supporting write posting operations
DE19900245B4 (de) 1998-01-07 2005-09-15 National Semiconductor Corp.(N.D.Ges.D.Staates Delaware), Santa Clara Vorrichtung und Verfahren zum Senden von Daten von einem USB-Endpunkt an einen USB-Host
US6154465A (en) * 1998-10-06 2000-11-28 Vertical Networks, Inc. Systems and methods for multiple mode voice and data communications using intelligenty bridged TDM and packet buses and methods for performing telephony and data functions using the same
JP3231017B2 (ja) * 1998-05-25 2001-11-19 日本電信電話株式会社 パケット網間転送方法
US6266715B1 (en) 1998-06-01 2001-07-24 Advanced Micro Devices, Inc. Universal serial bus controller with a direct memory access mode
US6628653B1 (en) * 1998-06-04 2003-09-30 Nortel Networks Limited Programmable packet switching device
US6161160A (en) * 1998-09-03 2000-12-12 Advanced Micro Devices, Inc. Network interface device architecture for storing transmit and receive data in a random access buffer memory across independent clock domains
US6202101B1 (en) * 1998-09-30 2001-03-13 Compaq Computer Corporation System and method for concurrently requesting input/output and memory address space while maintaining order of data sent and returned therefrom
JP3543648B2 (ja) * 1998-10-27 2004-07-14 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP3543647B2 (ja) * 1998-10-27 2004-07-14 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US6289406B1 (en) * 1998-11-06 2001-09-11 Vlsi Technology, Inc. Optimizing the performance of asynchronous bus bridges with dynamic transactions
US6405276B1 (en) * 1998-12-10 2002-06-11 International Business Machines Corporation Selectively flushing buffered transactions in a bus bridge
US6219737B1 (en) * 1998-12-10 2001-04-17 International Business Machines Corporation Read request performance of a multiple set buffer pool bus bridge
US6256699B1 (en) * 1998-12-15 2001-07-03 Cisco Technology, Inc. Reliable interrupt reception over buffered bus
TW413763B (en) * 1999-03-16 2000-12-01 Winbond Electronics Corp Data conversion device and data flow control method in between USB host and network end
US6460108B1 (en) * 1999-03-31 2002-10-01 Intel Corporation Low cost data streaming mechanism
JP2001036546A (ja) * 1999-07-16 2001-02-09 Hitachi Ltd 受信バッファ制御装置
US6708244B2 (en) * 1999-07-22 2004-03-16 Cypress Semiconductor Corp. Optimized I2O messaging unit
US6711181B1 (en) * 1999-11-17 2004-03-23 Sony Corporation System and method for packet parsing and data reconstruction in an IEEE 1394-1995 serial bus network
US6684272B1 (en) * 1999-12-23 2004-01-27 Intel Corporation Throughput enhancement for a universal host controller interface in a universal serial bus
US6529521B1 (en) * 1999-12-27 2003-03-04 Emc Corporation Data storage system
US6807585B2 (en) * 2001-02-22 2004-10-19 Ati Technologies, Inc. Method and system for parsing section data

Also Published As

Publication number Publication date
KR20020087859A (ko) 2002-11-23
EP1260908A3 (en) 2003-05-14
JP2002342261A (ja) 2002-11-29
DE60205305T2 (de) 2006-05-24
ATE301307T1 (de) 2005-08-15
US20020169904A1 (en) 2002-11-14
TW556090B (en) 2003-10-01
US6901465B2 (en) 2005-05-31
JP3870717B2 (ja) 2007-01-24
DE60205305D1 (de) 2005-09-08
KR100460650B1 (ko) 2004-12-09
EP1260908B1 (en) 2005-08-03
CN1385791A (zh) 2002-12-18
EP1260908A2 (en) 2002-11-27

Similar Documents

Publication Publication Date Title
CN1282094C (zh) 数据传送控制装置及数据传送控制方法
CN100351816C (zh) 数据传送控制装置、电子装置和数据传送控制方法
CN1213372C (zh) 数据传送控制装置、电子机器及数据传送控制方法
CN1100295C (zh) 计算机系统及其输入输出指令的发送方法
CN1158605C (zh) 采用crc用于芯片上存储器中数据完整性的方法和装置
CN1269049C (zh) 数据传送控制装置及电子设备
CN1237455C (zh) 数据传输控制装置、电子设备、及数据传输控制方法
CN1201242C (zh) 数据传送控制装置和电子装置
CN1912926A (zh) 可中断图形处理单元处理多个程序的方法和图形处理单元
CN1916961A (zh) 可中断图形处理单元及其控制方法
CN1174471A (zh) 打印机系统及其动作控制方法
CN1146798C (zh) 数据传输控制装置及电子设备
CN1916962A (zh) 存储和回存状态上下文在图形处理单元的方法和装置
CN1838101A (zh) 数据传输控制装置及电子设备
CN1607513A (zh) 数据传输控制装置、电子设备以及数据传输控制方法
CN1596401A (zh) 非易失性存储器装置的控制方法
CN1188998C (zh) 数据传输控制装置和电子设备
CN1551592A (zh) 数据传输控制装置、电子设备及数据传输控制方法
CN1947107A (zh) 用于在存储器间传输数据的装置
CN1617160A (zh) 用于识别标准卡以及非标准卡的卡识别系统
CN1264081A (zh) 将生产测试接口接至全局串行总线的方法和装置
CN1275164C (zh) 数据传输控制系统、电子设备、及数据传输控制方法
CN1146801C (zh) 数据传送控制装置和电子装置
CN1804778A (zh) 冗余存储虚拟化计算机系统
CN1893362A (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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20061025

Termination date: 20160514