数据传输控制装置、信息存储媒体和电子仪器的制作方法

文档序号:7595078阅读:106来源:国知局
专利名称:数据传输控制装置、信息存储媒体和电子仪器的制作方法
技术领域
本发明涉及数据传输控制装置、信息存储媒体和电子仪器,特别是用于在与总线连接的多个节点间进行基于IEEE1394等标准的数据传输的数据传输控制装置、信息存储媒体和电子仪器。
背景技术
近年来,称为IEEE1394的接口标准已面世。该IEEE1394是将可以与下一代的多媒体对应的高速串行总线接口规格化的标准。按照该IEEE1394,可以处理动图像等要求实时性的数据。另外,不仅打印机、扫描仪、CD-RW驱动器、硬盘驱动器等计算机的周边机器,而且摄像机、VTR、TV等家用电器也可以与IEEE1394的总线连接。因此,可以期待能够飞速地促进电子仪器的数字化。
在该IEEE1394中,在电子仪器重新与总线连接或将电子仪器从总线上拆除而与总线连接的节点增减时,将发生所谓的总线复位。并且,在发生总线复位时,节点的拓朴信息就被清除,然后,拓朴信息可以自动地再设定。即,在总线复位发生之后,就进行树形识别(决定根节点)、自己识别,然后,决定同步的资源管理器等管理节点。并且,再次开始进行通常的数据包传输。
这样,在IEEE1394中,在总线复位之后,由于可以自动地再次设定拓朴信息,所以,可以在所谓的热状态下进行电缆的拔出和插入(热插头)动作。因此,一般用户可以像VTR等通常的家用电器一样自由地向电子仪器进行电缆的拔出和插入,从而对所谓的家庭网络系统的普及可以起到很大作用。
但是,在与IEEE1394的总线连接的打印机及扫描仪等设备中,现已查明,由于发生总线复位将发生以下的问题。
即,在IEEE1394的总线上,在印刷数据的传输中发生总线复位时,电脑等的起动器就从开始再次重新传输印刷数据。因此,对于作为目标的打印机,印刷数据的一部分就进行了2次传送,从而将发生重印等误印刷的问题。
另外,在扫描仪中,一旦读写头移动了,就不能使读写头返回到原处再次取得相同的数据。因此,在总线复位发生之后,即使起动器要从开始再次进行数据传输,也不能继续进行数据传输。
作为解决由于发生总线复位而引起的问题的先有技术,有例如特开平11-194902号公报所公开的技术。在该先有技术中,在总线复位发生时,就保持数据处理,在再次构筑网络结构后,再次开始进行数据处理。
但是,在该先有技术中,在总线复位发生之后,仅仅是再次传送传输数据,对于再次传送的传输数据是否是总线复位发生前的传输数据的继续并不进行判断。因此,按照该先有技术,不能解决重印的问题。
发明的公开本发明就是鉴于上述技术问题而提案的,目的旨在提供可以解决在发生清除节点的拓朴信息的复位时发生的问题的数据传输控制装置、信息存储媒体和电子仪器。
为了解决上述问题,本发明是在与总线连接的多个节点间进行数据传输用的数据传输控制装置,其特征在于具有在与对方节点间从开始进行数据传输到结束的期间的数据传输期间中判断是否发生了清除节点的拓朴信息的复位的判断单元、将在该复位发生前从对方节点传输来的数据传输操作要求用的第1指令数据包的内容与在该复位发生后从对方节点传输来的数据传输操作要求用的第2指令数据包的内容进行比较的指令比较单元和在判定在上述数据传输期间中发生了清除节点的拓朴信息的复位并且判定上述第1和第2指令数据包的内容相同时就从复位发生时刻的数据传输的地方再次开始进行数据传输的再次开始单元。
按照本发明,判断在数据传输期间中是否发生了清除节点的拓朴信息的复位。另外,将在复位发生前传输来的第1指令数据包的内容与在复位发生后传输来的第2指令数据包的内容进行比较。并且,在判定在数据传输期间中发生了复位并且判定第1和第2指令数据包的内容相同时,就从复位发生时刻的地方(例如,从在复位发生时刻完成了传输的数据的下一个数据开始)再次开始进行数据传输。
另一方面,例如在判定第1和第2指令数据包的内容不同时等,复位发生后的第2指令数据包就从开始进行处理。
因此,按照本发明,在复位发生后对方节点要求传输与复位发生前相同内容的指令数据包时,就可以从复位发生时刻的地方再次开始进行数据传输。因此,就可以解决例如数据重复地向数据传输控制装置的上层的设备传输从而上层的设备发生误动作的问题等。
上述判断单元在清除节点的拓朴信息的复位发生时刻,数据传输操作要求用的上述第1指令数据包是在处理中并且已在进行该第1指令数据包的数据传输而未将数据传输结束的状态传输到对方节点时,最好判定为该复位是在上述数据传输期间中发生的。
另外,本发明的特征在于在上述判断单元判定清除节点的拓朴信息的复位发生在数据传输期间中时,就将表示可以继续再次开始进行数据传输的继续标志设定为通过。这样,在继续标志为截止时,就不能进行指令数据包的比较处理。因此,就不进行无用的指令数据包的内容比较处理,从而可以减轻处理负担。
另外,本发明的特征在于具有在该复位发生后到再次开始进行数据传输的期间存储用于特定再次开始进行数据传输的地址的信息和数据传输操作要求用的上述第1指令数据包的内容的指令存储单元。只要存储了这样的信息,通过简单的处理便可实现数据传输的再次开始处理。
另外,本发明的特征在于上述指令比较单元将在清除节点的拓朴信息的复位发生之后从对方节点传输来的指令数据包中最初传输来的数据传输操作要求用的指令数据包作为上述第1指令数据包的比较对象的上述第2指令数据包。这样,就反复进行指令数据包的内容比较处理,直至最初的数据传输操作要求用的指令数据包传输来为止。这样,就可以防止进行无用的指令数据包的内容比较处理,从而可以减轻处理负担。
另外,本发明的特征在于在虽然将数据传输结束的状态传输到了对方节点,但是由于清除节点的拓朴信息的复位发生而未从对方节点传送回来确认信息时,就转移到数据传输不可状态。这样,在未从对方节点传送回来确认信息时,对方节点是否接收到了该状态不是不明确的。因此,这时从复位发生时刻的地方开始进行数据传输时,有可能进行错误的数据传输。按照本发明,在由于清除节点的拓朴信息的复位而未从对方节点传送回来确认信息时,就转移到数据传输不可状态,所以,可以防止发生进行这种错误的数据传输的事情。
另外,本发明的特征在于对于从上层的设备传输来的传输数据中在清除节点的拓朴信息的复位发生时刻还未向对方节点传输的传输数据不废弃,而是保持。这样,便可防止发生由扫描仪等读入的数据由于复位的发生而丢失的问题。
在本发明中,上述复位最好是在IEEE1394的标准中定义的总线复位。
另外,本发明是包含用于控制在与上述某一数据传输控制装置间的数据传输的程序的信息存储媒体,其特征在于在数据传输期间中发生了清除节点的拓朴信息的复位时,作成与在该复位发生前传输来的数据传输操作要求用的第1指令数据包的内容相同的第2指令数据包,包含用于要求向数据传输控制装置进行传输的程序。这样,便可防止进行错误的数据传输再次开始处理,从而可以防止发生由于复位的发生引起的问题。
另外,本发明的电子仪器的特征在于具有上述某一数据传输控制装置、对通过上述数据传输控制装置还总线从对方节点接收的数据进行指定的处理的装置还用于输出或存储进行了处理的数据的装置。另外,本发明的电子仪器的特征在于具有上述某一数据传输控制装置、对通过上述数据传输控制装置还总线向对方节点传送的数据进行指定的处理的装置还用于取入进行了处理的数据的装置。
按照本发明,可以防止由于发生清除节点的拓朴信息的复位而系统发生故障的问题,从而可以防止电子仪器发生误动作。另外,可以实现数据传输的高速化、电子仪器的低成本化和电子仪器的处理高速化等。
附图的简单说明

图1是表示IEEE1394的层结构的图。
图2是用于说明SBP-2的图。
图3是用于说明SBP-2的数据传输处理的概略情况的图。
图4是用于说明从起动器向目标传输数据时的指令处理的图。
图5是用于说明从目标向起动器传输数据时的指令处理的图。
图6A、图6B、图6C是用于说明页表的图。
图7是表示本实施例的数据传输控制装置的结构例的图。
图8是表示目标侧(固件)的处理的概要的流程图。
图9是表示起动器侧(设备驱动器)的处理的概要的流程图。
图10A、图10B、图10C是用于说明重印的问题的图。
图11是用于说明在数据传输期间中发生总线复位并且在总线复位的前后ORB的内容相同时继续再次开始进行数据传输的方法的图。
图12是用于说明ORB的内容比较的图。
图13是用于说明继续标志的图。
图14是用于说明特定再次开始进行数据传输的地址的信息的图。
图15是用于说明在包含印刷指令的最初的指令块ORB到来之前反复进行指令比较处理的图。
图16是用于说明在状态的写入中发生总线复位并且成为ACK故障时转移到断开状态的方法的图。
图17是用于说明在总线复位时不废弃还未向起动器传输的数据而保持的方法的图。
图18是表示总线复位发生时的本实施例的详细的处理例的流程图。
图19是表示总线复位发生时的本实施例的详细的处理例的流程图。
图20是表示总线复位发生时的本实施例的详细的处理例的流程图。
图21是表示通常时的本实施例的详细的处理例的流程图。
图22是表示通常时的本实施例的详细的处理例的流程图。
图23A、图23B、图23C是各种电子仪器的内部框图的例子。
图24A、图24B、图24C是各种电子仪器的外观图的例子。
用于实施发明的最佳形态下面,使用附图详细说明本发明的极佳的实施例。
1.IEEE1394首先,简单地说明IEEE1394。
1.1概要在IEEE1394(IEEE1394-1995、P1394.a)中,可以进行100~400Mbps的高速的数据传输(在P1394.b中,为800~3200Mbps)。
各节点连接成树形,1条总线最多可以连接63个节点。如果利用总线桥,则可连接约64000个节点。
在IEEE1394中,作为数据包的传输方式,准备了非同步传输和同步传输方式。这里,非同步传输是极适合于要求可靠性的数据的传输方式,同步传输是极适合于要求实时性的动图像及声音等的数据传输。
1.2层结构IEEE1394的层结构(协议结构)示于图1。
IEEE1394的协议,由事务处理层、链接层和物理层构成。另外,串行总线管理是通过监视或控制事务处理层、链接层和物理层而进行的,提供用于节点的控制及总线的资源管理的各种功能。
事务处理层向高位层提供事务处理单位的接口(服务),通过下层的链接层提供的接口进行读出事务处理、写入事务处理、锁存事务处理等事务处理。
这里,在读出事务处理中,从应答节点向要求节点传输数据。另一方面,在写入事务处理中,从要求节点向应答节点传输数据。另外,在锁存事务处理中,从要求节点向应答节点传输数据,应答节点对该数据进行处理后,传送回要求节点。
链接层提供寻址、数据检验、数据收发用的数据调整、同步传输用的周期控制等。
物理层提供向链接层使用的逻辑符号的电信号的变换、总线的调配、总线的物理的接口。
1.3 SBP-2如图2所示,作为包含IEEE1394的事务处理层的一部分功能的高位的协议,提案了称为SBP-2(Serial Bus Protocol-2)的协议。
这里,SBP-2是为了可以在IEEE1394的协议上利用SCSI的指令集合而提案的。如果使用该SBP-2,对在已有的SCSI标准的电子仪器中使用的SCSI的指令集合加以最小限度的变更,就可以使用于IEEE1394标准的电子仪器中。因此,可以使电子仪器的设计和开发很容易。另外,不仅SCSI的指令而且设备固有的指令也可以压缩后利用,所以,通用性非常高。
如图3所示,在SBP-2中,首先使用由起动器(例如电脑)作成的注册ORB(Operation Request Block)进行注册处理(步骤T1)。其次,使用哑ORB进行取窗口终端的初始化处理(步骤T2)。并且,使用指令块ORB(正常指令ORB)进行指令处理(步骤T3),最后,使用注销ORB进行注销处理(步骤T4)。
这里,在步骤T3的指令处理中,如图4的A1所示的那样,起动器传输写入要求数据包(发布写入要求事务处理),链接目标的门铃寄存器。于是,如A2所示,目标传输读出要求数据包,起动器传送回对应的读出应答数据包。这样,起动器作成的ORB(指令块ORB)取入到目标的数据缓冲器中。并且,目标分析包含在取入的ORB中的指令。
并且,在包含在ORB中的指令是SCSI的写入指令时,就如A3所示的那样,目标向起动器传输读出要求数据包,起动器传送回对应的读出应答数据包。这样,存储在起动器的数据缓冲器中的数据就向目标传输。并且,在例如目标是打印机时,传输的数据由打印机进行印刷。
另一方面,在包含在ORB中的指令是SCSI的读出指令时,就如图5的B1所示的那样,目标向起动器传输一连串的写入要求数据包。这样,在例如目标是扫描仪时,由扫描仪取得的扫描数据就向起动器的数据缓冲器传输。
按照该SBP-2,目标在自身状况良好时就传输要求数据包(发布事务处理),可以收发数据。因此,由于起动器和目标不需要同步地动作,所以,可以提高数据传输效率。
作为IEEE1394的高位协议,除了SBP-2外,还提案了称为FCP(Function Control Protocol)的协议等。
在目标与起动器间进行数据传输时,如图6A所示,有在起动器(对方节点)的数据缓冲器(存储单元)中存在页表和不存在页表的情况。
并且,在存在页表时,如图6B所示,在起动器作成的ORB中,包含该页表的地址和元素数。并且,传输数据的地址(读出地址、写入地址)使用该页表间接地指定。
另一方面,在不存在页表时,如图6C所示,在ORB中包含地址和数据长度,传输数据的地址直接指定。
1.4总线复位在IEEE1394中,在接通电源或在中途发生拔出和插入设备时,就发生总线复位。即,各节点监视端口的电压变化。并且,在由于新的节点与总线连接等而端口的电压发生变化时,检测到该变化的节点就向总线上的其他节点通知发生了总线复位。另外,各节点的物理层就将发生了总线复位的信息传输给链接层。
并且,在只要发生了总线复位时,就清除节点ID等拓朴信息。并且,然后再自动地设定拓朴信息。即,在总线复位之后,进行树形识别和自己识别。然后,决定同步的资源管理器、周期主机、总线管理器等管理节点。并且,再次开始进行通常的数据包传输。
这样,在IEEE1394中,在总线复位之后,自动地再次设定拓朴信息,所以,可以自由地拔出和插入电子仪器的电缆,从而可以实现所谓的热标志。
在事务处理的途中发生了总线复位时,就取消该事务处理。并且,发布所取消的事务处理的要求节点在拓朴信息再次设定之后,再次传输要求数据包。另外,应答节点不向要求节点传送回由于总线复位而取消的事务处理的应答数据包。
2.全体结构下面,使用图7说明本实施例的数据传输控制装置的全体结构例。以下,以在与起动器之间进行数据传输的目标是打印机的情况为例进行说明,但是,本发明不限定此种情况。
本实施例的数据传输控制装置10包括PHY设备12(物理层的设备)、链接设备14(链接层的设备)、CPU16(处理器)、数据缓冲器18(存储单元)和固件20(处理单元)。PHY设备12、链接设备14、CPU16、数据缓冲器18是任意的结构要素,本实施例的数据传输控制装置10不必全部包含这些结构要素。
PHY设备12是用于利用固件实现图1的物理层的协议的电路,具有将由链接设备14使用的逻辑符号变换为电信号的功能。
链接设备14是用于利用固件实现图1的链接层的协议和事务处理层的协议的一部分的电路,提供用于在节点间的数据包传输的各种服务。
CPU16是进行装置全体的控制和数据传输的控制的设备。
数据缓冲器18是暂时存储传输数据(数据包)的缓冲器,由SRAM、SDRAM、或DRAM等硬件构成。在本实施例中,数据缓冲器18起可以随机访问的数据包存储单元的功能。
固件20是包含在CPU16上动作的各种处理程序(处理模块)的程序,事务处理层的协议由该固件20和作为硬件的CPU16等实现。
包含作为起动器的电脑100的设备驱动器102是包含用于管理控制周边机器的各种处理程序的程序。该程序利用信息存储媒体110(FD、CD-ROM、DVD、ROM)安装到电脑100中。
这里,设备驱动器102的程序也可以因特网等网络从主系统具有的信息存储媒体(硬盘、磁带等)上下载,并安装到电脑100中。这种主系统具有的信息存储媒体的使用也包含在本发明的范围内。
固件20(F/W)包括通信部30(COM)、管理部40(MNG)、打印任务部50(PRT)和取出部60(FCH)。
这里,通信部30是起与链接设备14等硬件间的接口的功能的处理模块。
管理部40(管理机器)是进行注册、重新连接、注销、复位等的管理的处理模块。例如,在起动器向目标要求注册时,首先,该管理部40就接收该注册要求。
打印任务部50是进行与作为后级的应用层(上层)的打印机之间的数据传输处理的处理模块。
取出部60(取介质、指令块介质)是用于执行包含指令块ORB的指令的处理模块。取出部60与只能处理单一的要求的管理部40不同,根据起动器的要求,可以处理自身取处的ORB的链接表。
取出部60包括判断部62、指令存储部64、指令比较部66、地址存储部68、地址比较部70和数据传输再次开始部72。
这里,判断部62进行判断在与起动器(对方节点)之间传输印刷数据的数据传输期间中是否发生了总线复位(广义地说,是清除节点的拓朴信息的复位)的处理。
指令存储部64在总线复位发生的时刻和重新连接成功的时刻等进行存储在总线复位发生前从起动器传输来的ORB(指令块ORB。广义地说,是数据传输操作要求用的指令数据包)的处理。
指令比较部66进行将在总线复位发生前从起动器传输来的ORB(指令块ORB)的内容(由指令存储部64存储的内容)与总线复位发生后从起动器传输来的ORB的内容比较的处理。
地址存储部68进行存储在与起动器之间传输的传输数据(印刷数据)的开头地址(第1地址)的处理。
地址比较部70在发生了总线复位时进行将由地址存储部68存储的开头地址(第1地址)与总线复位发生后的传输数据的开头地址(第2地址)比较的处理。
数据传输再次开始部72在判定在数据传输期间中发生了总线复位并且判定ORB(指令块ORB)的内容一致时,进行从总线复位发生时刻的数据传输的地方(总线复位发生时刻传输的数据的下一数据)再次开始进行数据传输的处理。
3.处理的概要下面,说明本实施例的处理的概要。
图8是表示目标侧(固件)的处理的概要的流程图。
从起动器有印刷要求时,目标就从起动器的数据缓冲器中读出ORB(步骤S1)。并且,在存在页表时,就根据包含在ORB中的页表地址(参见图6B),从起动器的数据缓冲器中读出页表(步骤S2)。其次,根据读出的页表从起动器的数据缓冲器中读出印刷数据(步骤S3)。并且,在却读出了由要求表指定的印刷数据时,就写入状态,将数据传输是否成功的状态向起动器传输(步骤S4)。反复进行以上的处理,直至传输了全部印刷数据为止(步骤S5)。
并且,在本实施例中,在印刷数据的传输中(数据传输期间)发生了总线复位时,在重新连接后的最初的印刷要求时进行以下的处理。
即,首先判断总线复位前的ORB的内容和印刷数据的开头地址与总线复位后的ORB的内容和印刷数据的开头地址是否相同(步骤S6)。并且,在判定相同时,就从总线复位发生时刻的地方再次开始进行数据传输(步骤S7)。另一方面,在判定不相同时,就将总线复位后的ORB作为新的ORB从开始进行处理(步骤S8)。
图9是表示起动器侧(设备驱动器)的处理的概要的流程图。
在发生应用程序的印刷作业时,起动器就作成印刷用的ORB及页表,并写入数据缓冲器(步骤S10)。其次,向目标发出指示,读出作成的ORB(步骤S11,参见图4的A1)。
然后,判断是否发生了总线复位(步骤S12),在未发生时,就判断该状态是否已从目标传送来(步骤S13)。并且,在已传送来时,就判断是否已传输了全部印刷数据(步骤S14),在尚未全部传输时,就返回到步骤S10,在已传输了全部印刷数据时,就结束印刷作业。
并且,在本实施例中,在步骤S12判定发生了总线复位时,起动器就再次作成ORB和页表(步骤S15),并指示目标读出再次作成的ORB(步骤S11)。这时,起动器(设备驱动器)再次作成ORB,以使总线复位发生前的ORB的内容和印刷数据的开头地址与总线复位发生后的ORB的内容和印刷数据的开头地址相同。
4.本实施例的特征在印刷数据的传输中发生了总线复位时,下已查明将发生以下的问题。
例如,如图10A所示,设在将数据传输到C1所示的位置(地址)的时刻发生了总线复位。这时,在总线复位发生的时刻,作为处理中的事务处理就全部取消。因此,在总线复位前要求了印刷数据的传输的起动器就如图10B所示的那样,在总线复位之后再次作成印刷用的ORB,并指示目标再从开始重新进行印刷数据的传输。因此,从图10B的C2所示的位置再次开始进行数据传输,从而印刷数据的一部分就重复地传输了。结果,将发生图10C所示的重印的问题。
为了解决这样的问题,在本实施例中,采用了以下说明的方法。
即,在本实施例中,首先,如图11的D1所示的那样,判断在数据传输期间中(在与起动器之间印刷数据的传输开始到结束的期间)是否发生了总线复位。更具体而言,就是在总线复位的发生时刻,在D2所示的ORB(指令块ORB)是在处理中并且已进行了该ORB的数据传输、而D3所示的数据传输结束的状态未传输给起动器时,就判定在数据传输期间中发生了总线复位。
另外,在本实施例中,如图11的D4所示,在总线复位发生之后,起动器重新连接成功、并作成了新的ORB而要求传输时,就将总线复位前的ORB(第1指令数据包)的内容与总线复位后的ORB(第2指令数据包)的内容进行比较。
并且,在判定在数据传输期间中发生了总线复位并且判定总线复位前的ORB的内容与总线复位后的ORB的内容相同时,就如D5所示的那样,从总线复位发生时刻的数据传输的地方再次开始进行数据传输(参见图8的步骤S7)。即,从在总线复位发生时刻已完成了传输的数据的下一数据开始再次开始进行数据传输。
另一方面,在数据传输期间中未发生总线复位时或在总线复位前后ORB的内容不相同时,就将总线复位后的ORB作为新的ORB从开始再次进行处理(参见图8的步骤S8)。
这样,图11的D6所示的部分的传输数据就与图10B的情况不同,不会重复传输。因此,不会发生图10C所示的错误印刷。另外,由于可以避免重复传输,所以,也可以缩短传输时间。
例如,在数据传输期间以外的期间发生了总线复位时,即使不如D5所示的那样从总线复位发生时刻的地方再次开始进行数据传输,由于传输数据不重复传输,所以,也没有问题。另外,在数据传输期间以外的期间发生了总线复位时,从最开始处理ORB要求比进行数据传输的再次开始处理简单,处理负担也可以减轻。
另外,作为与本实施例不同的方法,也可以考虑不进行ORB的内容的比较处理而总是从总线复位发生时刻的地方再次开始进行数据传输的方法。
但是,如果采用这样的方法,在例如总线复位后起动器取消印刷数据的传输处理并作成与总线复位前完全不同的ORB时,也回发生从图11的D5开始再次开始进行数据传输的问题。
与此相反,在本实施例中,ORB的内容在总线复位前后相同时,从图11的D5开始再次开始进行数据传输,但是,在不相同时就完全作为新的ORB处理,所以,不会发生上述问题。
在本实施例中,在进行ORB的内容比较时比较各种信息。例如,如图12所示,在本实施例中,是比较包含指令块ORB的页表存在标志P、数据尺寸、指令块(指令集合)字段中的操作代码(区别印刷指令和读出指令等的代码)和数据长度。另外,在ORB包含用于识别ORB的识别信息(例如顺序号码)时,也比较该识别信息。通过比较这些信息,可以通过简单的处理而可靠地判断总线复位前后的ORB是否相同。
在本实施例中,如图13的E1所示,在判定在数据传输期间中发生了总线复位时,就将表示可以继续进行数据传输而再次开始的继续标志设定为通过。例如,在总线复位发生后重新连接成功时等,就判断在数据传输期间中是否发生了总线复位,在判定发生了时,就将继续标志设定为通过。
并且,如图13的E2所示,ORB的比较内容是以该继续标志是通过为条件而进行的。即,在继续标志为截止时,就不进行ORB的内容比较。这样,便可防止进行无用的ORB的内容比较处理,从而可以减轻固件的处理负担。
另外,在本实施例中,在总线复位发生时刻和重新连接成功的时刻(广义地说,在总线复位发生后到再次开始进行数据传输的期间)存储用于特定再次开始进行数据传输的地址(图11的D5)的信息和总线复位前的ORB的内容。通过预先存储这样的信息,在总线复位后从起动器再次传输ORB时,就容易进行是否从总线复位发生时刻的地方再次开始进行数据传输的判断。另外,也可以使数据传输的再次开始处理简单。
作为用于特定再次开始进行数据传输的地址的信息,可以具体地考虑以下的信息。
例如,如图14所示,设在总线复位发生时刻传输了页表的第N数据段SEGN指定的传输数据。这时,作为用于特定再次开始进行数据传输的地址(F1所示的地址)的信息,可以考虑页表的开头数据段SEG1存储的地址(传输数据的开头地址)、由数据段SEG1~SEG(N-1)传输的数据的尺寸DS1、数据段N的数据段号码、到总线复位发生时刻为止由数据段N传输的数据的尺寸DS2等。
另外,在本实施例中,在总线复位发生后从起动器传输来的ORB中,将包含最初传输来的印刷指令的ORB(指令块ORB)作为总线复位前的ORN的比较对象的ORB来采用。
例如,如图15所示,在总线复位后,不一定立刻传输包含印刷指令的指令块ORB。即,有时起动器在要求传输包含印刷指令的指令块ORB之前要求传输哑ORB和管理ORB。或者,为了检查打印机的状态等,有时要求传输包含读出指令的指令块ORB。
在本实施例中,如图15的G1所示,即使传输来哑ORB等,也不进行ORB的内容比较处理,而在传输来包含印刷指令的指令块ORB时才开始进行ORB的内容比较处理。即,在包含印刷指令的最初的指令块ORB到来之前,反复进行ORB的内容比较处理。这样,便可防止进行无用的ORB的内容比较处理,从而可以减轻固件的处理负担。
总线复位的发生时间完全是任意的。因此,例如图16所示的那样,目标向起动器传输数据传输结束的状态,但是,有时由于发生总线复位而ACK(ACK完成)未从起动器传送回来,从而成为ACK故障。
这时,可以考虑由于发生总线复位而起动器不接收状态而成为ACK故障的第1种情况和起动器接收状态并传送回ACK但由于发生总线复位而成为ACK故障的第2种情况。
并且,在上述第1种情况下,起动器认为数据传输是不成功的,在总线复位后进行再次作成相同的ORB的第1处理。另一方面,在上述第2种情况下,起动器认为数据传输成功,在总线复位后进行作成下一个ORB的第2处理。
然而,由于只向目标传输ACK故障这样的信息,所以,目标不能知道起动器进行上述第1、第2处理中的哪一个处理。因此,这时,就有可能进行从总线复位发生时刻的地方开始进行数据传输的错误的数据传输。
因此,在本实施例中,如图16所示,在由于发生总线复位而未从起动器传送回确认时,就转移到断开状态(数据传输不可状态)。这样,便可防止进行错误的数据传输的事情。
以上,主要说明了目标是打印机的情况,但是,在目标为扫描仪时,存在以下的问题。
即,在扫描仪中,一旦读写头开始移动后,就不能返回到原处再次取得(扫描)相同的数据。
因此,在本实施例中,如图17所示,在来自扫描仪(广义地说,上层的设备)的传输数据中,在总线复位的发生时刻对还未传输到起动器的传输数据不废弃而进行保持。即,如图17的H1所示,从扫描仪取入,并存储到数据缓冲器中,但是,对于通过IEEE1394的总线还未传输到起动器的数据不废弃而预先保持,从而不清除数据缓冲器。
这样,在总线复位发生后,利用图11所示的方法从总线复位发生时刻的地方再次开始进行数据传输时,可以防止发生丢失在总线复位发生前取入的图像数据等问题。
5.详细的处理例下面,使用图18~图22的流程图说明本实施例的详细的处理例。
图18~图22是表示总线复位发生时(重新连接时)的处理的详细例的流程图。
在总线复位发生时,目标首先判断起动器是否已注册了(步骤S20),已注册了时,就取消IEEE1394的总线上的所有的传输处理(事务处理)(步骤S21)。另一方面,在还未注册时,即使发生了总线复位也不需要特别的处理,所以,什么处理也不进行(步骤S22)。
其次,判断是否已进入总线复位处理(步骤S23)。这样,在发生多次总线复位时可以防止无用地多次反复进行与其对应的总线复位处理。
然后,存储总线复位发生时刻的ACK(确认)的状态(步骤S24)。这样,利用此后发生的事务处理(例如重新连接的事务处理),便可防止总线复位之后的ACK的内容消失。
其次,存储在IEEE1394的总线上已完成传输的数据的尺寸(字节树)(步骤S25)。即,存储在总线复位发生时刻是在处理中的数据段的已完成传输的数据的尺寸(图14的DS2)。并且,为了进行步骤S23的判断,使表示总线复位处理中的标志通过(步骤S26)。即,在该标志成为通过时,即使此后发生了总线复位,也不进行步骤S24~S26的处理。
然后,等待与起动器的重新连接(步骤S27),并判断是否已由起动器进行了重新连接(步骤S28)。并且,在还未进行重新连接时,就判断是否已经过了由注册ORB的重新连接字段指定的重新连接时间(步骤S29)。并且,在已经过了该数据时,就使用图13说明的继续标志(表示可以继续再次开始进行数据传输的标志)截止(步骤S30),并转移到注销状态(步骤S31)。
另一方面,在重新连接时间内已完成了重新连接时,就判断重新连接的起动器是否为总线复位前注册的起动器(步骤S32),在是与总线复位前不同的起动器时,就拒绝该起动器的重新连接,并返回到重新连接的等待状态。
在注册了与总线复位前相同的起动器时,就判断印刷用的指令块ORB(包含印刷指令的ORB)在总线复位发生时刻是否是在处理中(图19的步骤S33)。并且,在不是在处理中时,就使继续标志截止(步骤S36),并转移到无用状态(步骤S37)。
另一方面,在印刷用的指令块ORB是在处理中时,就判断在状态的写入中(从写入状态到传送回ACK的期间)是否发生了总线复位(步骤S34)。并且,在状态的写入中发生了总线复位时,在图18的步骤S24就根据存储的ACK的信息判断是否为ACK完成(步骤S35)。
并且,在是ACK完成时,就使继续标志截止(步骤S36),并转移到无用状态(步骤S37)。另一方面,在不是ACK完成时,就判断是否为ACK故障(步骤S38)。并且,如果不是ACK故障,就什么处理也不进行(步骤S39),是ACK故障时,就使继续标志截止(步骤S40),如用图16说明的那样,转移到断开状态(数据传输不可状态)(步骤S41)。
在步骤S34判定总线复位的发生不是在状态的写入中时,就判断是否向后级的打印机哪怕传输1字节的处理中的ORB的传输(印刷)数据(步骤S42)。并且,在1字节也不传输时,就使继续标志截止(步骤S43),并转移到无用状态(步骤S49)。
另一方面,在哪怕1字节也向打印机引擎传输时,就存储ORB的内容(数据尺寸、页表存在标志P、指令块)和在总线复位发生时刻之前传输来的数据的尺寸(步骤S44)。
该数据的尺寸相当于在总线复位发生时刻已传输到后级的打印机的数据的字节数与在总线复位发生时刻在IEEE1394的总线上的数据传输已结束并向后级的打印机传输中或预定从现在开始传输的数据的字节数之和。即,例如相当于由打印机已印刷的数据的字节数与由打印机现在印刷中的或预定从现在开始印刷的数据的字节数之和。
其次,判断是否存在页表(步骤S45),在不存在时,就存储ORB的数据原文的内容(步骤S46)。即,在不存在页表时,直接存储地址指定时的传输数据的地址和数据长度(参见图6C)。
另一方面,在存在页表时,如用图14说明的那样,存储页表的开头数据段的内容(地址、数据长度)、总线复位发生时刻是处理中的数据段的内容(地址、数据长度)和数据段号码(步骤S47)。并且,使用图13说明的继续标志通过(步骤S48),并转移到无用状态(步骤S49)。
这样,在本实施例中,在判定在数据传输期间中发生了总线复位时(图19的步骤S33、S34、图20的步骤S42),继续标志就成为通过(步骤S48)。
图21、图22是表示通常时的处理的详细例的流程图。
首先,判断是否从起动器指示了ORB的读出(是否链接了门铃寄存器)(步骤S51),尚未指示时,就停留在无用状态(步骤S50)。另一方面,在已之了时,就从起动器读出起动器作成的ORB(步骤S52)。并且,根据ORB包含的页表存在标志P判断是否存在页表(步骤S53)。并且,在存在页表时,就将页表的数据段例如每8个数据8个段数据的读出(步骤S54)。
其次根据作为ORB的指令块的操作代码,如用图15说明的那样,判断读出的ORB是否为印刷用的指令块ORB(步骤S55)。并且,在是印刷用的指令块ORB时,就判断在步骤S54读出的8个数据段是否为页表的最初的8个数据段(包含开头数据段的8个数据段)(步骤S56),在是最初的8个数据段时,就转移到图22所示的指令和地址比较处理(步骤S57)。
在步骤S55判定不是印刷用的指令块ORB时、在步骤S56判定不是最初的8个数据段时和步骤S57的指令和地址比较处理结束时,就进行数据的读出/写入(步骤S58)。并且,反复进行直至读出/写入1个数据段的数据和8个数据段的数据为止(步骤S59、S60)。
其次,判断是否读出/写入了页表的所有的数据段(步骤S61),还未读出/写入所有的数据段时,就读出页表的下一个8个数据段(步骤S54)。另一方面,在读出了页表的所有的数据段时,就向起动器写入该状态(步骤S62)。并且,判断是否读出了印刷物的印刷用的ORB(步骤S63),在有下一个ORB时,就返回到步骤S52,在没有下一个ORB时,就转移到无用状态(步骤S50)。
在步骤S53判定不存在页表时,就判断读出的ORB是否为印刷用的指令块ORB(步骤S64)。并且,在是印刷用的指令块ORB时,就转移到图22所示的指令地址比较处理(步骤S65)。
另一方面,在判定不是印刷用的指令块ORB时还和指令地址比较处理结束时,就读出/写入数据(步骤S66),反复进行上述处理直至读出/写入所有的数据为止(步骤S67)。并且,在读出/写入了所有的数据时,就转移到步骤S62,并向起动器写入该状态。
在图22的指令地址比较处理中,首先,判断继续标志是否通过(步骤S70)。该继续标志是在图20的步骤S48中通过的标志。并且,在继续标志截止时,就转移到步骤S76,存储传输数据的开头地址(页表的开头数据段的地址),并结束指令地址比较处理。
在继续标志通过时,如用图11、图12说明的那样,判断读出的ORB的内容与总线复位前的ORB的内容是否一致(步骤S71)。这时,成为比较对象的总线复位前的ORB的内容在图20的步骤S44中进行存储。另外,在本实施例中,在进行地址比较(步骤S72)之前,进行ORB的内容比较(步骤S71)。
在ORB的内容与总线复位前相同时,就判断传输数据的开头地址与总线复位前是否相同(步骤S72)。并且,在相同时,就将数据传输的设定返回到总线复位发生前的状态(步骤S73)。即,根据在图20的步骤S44存储的总线复位发生时刻的已传输数据尺寸和在步骤S47存储的数据段的内容及数据段号码等将数据传输的设定返回到总线复位前的状态,用以可以从图11的D5所示的位置(总线复位发生时刻的地方)再次开始进行数据传输。并且,使继续标志返回到截止(步骤S74)。这时,如用图17说明的那样,为了使总线复位前已完成传输的数据不消失,不将目标的数据缓冲器上的数据清除。
在步骤S74之后,之所以不像步骤S76那样预先存储传输数据的开头地址,是因为在从总线复位发生时刻的地方再次开始进行数据传输时直接使用总线复位发生前存储的开头地址的缘故。
在步骤S71判定ORB的内容与总线复位前不同时或在步骤S72判定开头地址与总线复位前不同时,就不进行数据传输的再次开始处理并使继续标志返回到截止,同时预先存储传输数据的开头地址(步骤S75、S76),即,这时就读出的ORB全部作为新的ORB处理。
在步骤S75时,从最开始处理读出的ORB,所以,与步骤S74不同,清除目标的数据缓冲器的数据。
6.电子仪器下面,说明包含本实施例的数据传输控制装置的电子仪器的例子。
例如,图23A表示作为电子仪器之一的打印机的内部框图,图24A表示其外观图。CPU(微电脑)510进行系统全体的控制等。操作部511用于用户操作打印机的部分。控制程序及字体等存储在ROM516中,RAM518起CPU510的工作区域的功能。显示板519用于向用户通知打印机的工作状态。
通过PHY设备502、数据传输控制装置500从电脑等对方节点传输来的印字数据,通过总线504直接传输到印字处理部512。并且,印字数据由印字处理部512进行指定的处理,利用由印刷头等构成的印字部(用于输出数据的装置)514向纸上进行印字而输出。
图23B表示作为电子仪器之一的扫描仪的内部框图,图24B表示前外观图。CPU520进行系统全体的控制等。操作部521是用于用户操作扫描仪的部分。控制程序等存储在ROM526中,RAM528起CPU520的工作区域的功能。
由光源、光电变换器等构成的图像读取部(用于取入数据的装置)522读取原稿的图像,读取的图像的数据由图象处理部524进行处理。并且,处理后的图像数据通过总线505直接传输给数据传输控制装置500。数据传输控制装置500通过将标题等附加到该图像数据上,生成数据包,通过PHY设备502向电脑等对方节点传送。
图23C表示作为电子仪器之一的CD-RW驱动器的内部框图,图24C表示其外观图。CPU530进行系统全体的控制等。操作部531是用于用户操作CD-RW的部分。控制程序等存储在ROM536中,RAM538前CPU530的工作区域的功能。
利用由激光器、电机、光学系统等构成的读取/写入部(用于读取数据的装置或用于存储数据的装置)533从CD-RW532中读取的数据输入信号处理部534,进行错误修正处理等指定的信号处理。并且,进行了信号处理的数据通过总线506直接传输给数据传输控制装置500。数据传输控制装置500通过将标题等附加到该数据上而生成数据包,并通过PHY设备502向电脑等对方节点传送。
另一方面,通过PHY设备502、数据传输控制装置500从对方节点传输来的数据通过总线506直接传输给信号处理部534。并且,由信号处理部534对该数据进行指定的信号处理,由读取/写入部533存储到CD-RW532中。
在图23A、图23B和图23C中,除了CPU510、520和530外,也可以另外设置数据传输控制装置500的数据传输控制的CPU。
另外,在图23A、图23B和图23C中,RAM501(相当于数据缓冲器)设置在数据传输控制装置500的外部,但是,也可以将RAM501设置在数据传输控制装置500的内部。
如果将本实施例的数据传输控制装置应用于电子仪器中,在新的电子仪器与总线连接而发生总线复位时,也可以防止由于总线复位而引起的故障等。这样,便可防止电子仪器发生误动作。
另外,如果将本实施例的数据传输控制装置应用于电子仪器中,可以进行高速的数据传输。因此,用户利用电脑等进行打印输出的指示时,仅以很小的时间延迟就可完成。另外,在向扫描仪指示取入图像之后,用户便可看到以很小的时间延迟读取的图像。另外,可以高速地进行从CD-RW读取数据和高速进行向CD-RW写入数据。
另外,通过将本实施例的数据传输控制装置应用于电子仪器中,可以减轻在CPU上动作的固件的处理负担,从而可以使用廉价的CPU和低速的总线。进而,由于实现了数据传输控制装置的低成本化和小规模化,所以,也可以实现电子仪器的低成本化小规模化。
作为可以应用本实施例的数据传输控制装置的电子仪器,除了上述电子仪器外,还可以考虑例如各种光盘驱动器(CD-ROM、DVD)、光磁盘驱动器(MO)、硬盘驱动器、TV、VRT、摄像机、音响机器、电话机、投影仪、电脑、电子记事簿、文字处理器等各种电子仪器。
本发明不限于本实施例,在本发明的主旨的范围内可以实施各种变形例。
例如,本发明的数据传输控制装置的结构特别希望是图7所示的结构,但是,并不限定如此。
另外,在数据传输期间中是否发生了总线复位的判断方法、指令的比较方法、数据传输的再次开始的方法也特别希望是在本实施例中说明的方法,但是,并不限定如此。
另外,本发明对于IEEE1394中的总线复位推有用,但是,除此以外,至少如果是清除节点的拓朴信息的复位也可以应用。
另外,本发明特别希望应用于IEEE1394标准的数据传输,但是,并不限定如此。对于例如基于与IEEE1394相同思想的标准或发展了IEEE1394的标准数据传输,本发明也可以应用。
权利要求
1.一种在与总线连接的多个节点间进行数据传输用的数据传输控制装置,其特征在于具有在与对方节点间从开始进行数据传输到结束的期间的数据传输期间中判断是否发生了清除节点的拓朴信息的复位的判断单元、将在该复位发生前从对方节点传输来的数据传输操作要求用的第1指令数据包的内容与在该复位发生后从对方节点传输来的数据传输操作要求用的第2指令数据包的内容进行比较的指令比较单元和在判定在上述数据传输期间中发生了清除节点的拓朴信息的复位并且判定上述第1和第2指令数据包的内容相同时就从复位发生时刻的数据传输的地方再次开始进行数据传输的再次开始单元。
2.按权利要求1所述的数据传输控制装置,其特征在于上述判断单元在清除节点的拓朴信息的复位发生时刻,数据传输操作要求用的上述第1指令数据包是在处理中并且已在进行该第1指令数据包的数据传输而未将数据传输结束的状态传输到对方节点时,就判定在上述数据传输期间中发生了该复位。
3.按权利要求1所述的数据传输控制装置,其特征在于上述判断单元判定在数据传输期间中发生了清除节点的拓朴信息的复位时,就将表示可以继续再次开始进行数据传输的继续标志设定为通过。
4.按权利要求1所述的数据传输控制装置,其特征在于具有在该复位发生后到再次开始进行数据传输的期间存储用于特定再次开始进行数据传输的地址的信息和数据传输操作要求用的上述第1指令数据包的内容的指令存储单元。
5.按权利要求1所述的数据传输控制装置,其特征在于上述指令比较单元将在清除节点的拓朴信息的复位发生之后从对方节点传输来的指令数据包中最初传输来的数据传输操作要求用的指令数据包作为上述第1指令数据包的比较对象的上述第2指令数据包。
6.按权利要求1所述的数据传输控制装置,其特征在于在虽然将数据传输结束的状态传输到了对方节点,但是由于清除节点的拓朴信息的复位发生而未从对方节点传送回来确认信息时,就转移到数据传输不可状态。
7.按权利要求1所述的数据传输控制装置,其特征在于对于从上层的设备传输来的传输数据中在清除节点的拓朴信息的复位发生时刻还未向对方节点传输的传输数据不废弃,而是保持。
8.按权利要求1所述的数据传输控制装置,其特征在于上述复位是在IEEE1394的标准中定义的总线复位。
9.一种包含用于控制在与权利要求1~8的任一权项所述的数据传输控制装置之间的数据传输的程序的计算机可以使用的信息存储媒体,其特征在于在数据传输期间中发生了清除节点的拓朴信息的复位时,作成与在该复位发生前传输来的数据传输操作要求用的第1指令数据包的内容相同的第2指令数据包,包含用于要求向数据传输控制装置进行传输的程序。
10.一种电子仪器,其特征在于包含权利要求1~8的任一权项所述的数据传输控制装置、对通过上述数据传输控制装置和总线从对方节点接收的数据进行指定的处理的装置和用于输出或存储进行了处理的数据的装置。
11.一种电子仪器,其特征在于包含权利要求1~8的任一权项所述的数据传输控制装置、对通过上述数据传输控制装置和总线向对方节点传输的数据进行指定的处理的装置和用于取入进行了处理的数据的装置。
全文摘要
目的旨在提供可以解决发生清除节点的拓朴信息的复位时发生的问题的数据传输控制装置、信息存储媒体和电子仪器。在IEEE1394标准的数据传输控制装置中,在数据传输期间中发生了总线复位并且总线复位前后的ORB的内容相同时,就从总线复位发生时刻的地方再次开始进行数据传输,防止打印机发生重印问题。在数据传输期间中发生了总线复位时,就使继续标志通过。在总线复位后将包含最初传输来的印刷指令的指令块ORB作为总线复位前的ORB的比较对象。在由于总线复位而未从起动器传送回ACK时,就转移到断开状态。在从扫描仪传输来的传输数据中,在总线复位发生时刻,对于还未传输到起动器的传输数据不废弃而预先保持。
文档编号H04L12/64GK1348648SQ00806587
公开日2002年5月8日 申请日期2000年12月19日 优先权日1999年12月20日
发明者松永浩辅, 金井裕之, 藤田信一郎 申请人:精工爱普生株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1