專利名稱:數(shù)據(jù)傳輸控制裝置、信息存儲媒體和電子儀器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)傳輸控制裝置、信息存儲媒體和電子儀器,特別是用于在與總線連接的多個節(jié)點間進行基于IEEE1394等標準的數(shù)據(jù)傳輸?shù)臄?shù)據(jù)傳輸控制裝置、信息存儲媒體和電子儀器。
背景技術(shù):
近年來,稱為IEEE1394的接口標準已面世。該IEEE1394是將可以與下一代的多媒體對應(yīng)的高速串行總線接口規(guī)格化的標準。按照該IEEE1394,可以處理動圖像等要求實時性的數(shù)據(jù)。另外,不僅打印機、掃描儀、CD-RW驅(qū)動器、硬盤驅(qū)動器等計算機的周邊機器,而且攝像機、VTR、TV等家用電器也可以與IEEE1394的總線連接。因此,可以期待能夠飛速地促進電子儀器的數(shù)字化。
在該IEEE1394中,在電子儀器重新與總線連接或?qū)㈦娮觾x器從總線上拆除而與總線連接的節(jié)點增減時,將發(fā)生所謂的總線復(fù)位。并且,在發(fā)生總線復(fù)位時,節(jié)點的拓樸信息就被清除,然后,拓樸信息可以自動地再設(shè)定。即,在總線復(fù)位發(fā)生之后,就進行樹形識別(決定根節(jié)點)、自己識別,然后,決定同步的資源管理器等管理節(jié)點。并且,再次開始進行通常的數(shù)據(jù)包傳輸。
這樣,在IEEE1394中,在總線復(fù)位之后,由于可以自動地再次設(shè)定拓樸信息,所以,可以在所謂的熱狀態(tài)下進行電纜的拔出和插入(熱插頭)動作。因此,一般用戶可以像VTR等通常的家用電器一樣自由地向電子儀器進行電纜的拔出和插入,從而對所謂的家庭網(wǎng)絡(luò)系統(tǒng)的普及可以起到很大作用。
但是,在與IEEE1394的總線連接的打印機及掃描儀等設(shè)備中,現(xiàn)已查明,由于發(fā)生總線復(fù)位將發(fā)生以下的問題。
即,在IEEE1394的總線上,在印刷數(shù)據(jù)的傳輸中發(fā)生總線復(fù)位時,電腦等的起動器就從開始再次重新傳輸印刷數(shù)據(jù)。因此,對于作為目標的打印機,印刷數(shù)據(jù)的一部分就進行了2次傳送,從而將發(fā)生重印等誤印刷的問題。
另外,在掃描儀中,一旦讀寫頭移動了,就不能使讀寫頭返回到原處再次取得相同的數(shù)據(jù)。因此,在總線復(fù)位發(fā)生之后,即使起動器要從開始再次進行數(shù)據(jù)傳輸,也不能繼續(xù)進行數(shù)據(jù)傳輸。
作為解決由于發(fā)生總線復(fù)位而引起的問題的先有技術(shù),有例如特開平11-194902號公報所公開的技術(shù)。在該先有技術(shù)中,在總線復(fù)位發(fā)生時,就保持數(shù)據(jù)處理,在再次構(gòu)筑網(wǎng)絡(luò)結(jié)構(gòu)后,再次開始進行數(shù)據(jù)處理。
但是,在該先有技術(shù)中,在總線復(fù)位發(fā)生之后,僅僅是再次傳送傳輸數(shù)據(jù),對于再次傳送的傳輸數(shù)據(jù)是否是總線復(fù)位發(fā)生前的傳輸數(shù)據(jù)的繼續(xù)并不進行判斷。因此,按照該先有技術(shù),不能解決重印的問題。
發(fā)明的公開本發(fā)明就是鑒于上述技術(shù)問題而提案的,目的旨在提供可以解決在發(fā)生清除節(jié)點的拓樸信息的復(fù)位時發(fā)生的問題的數(shù)據(jù)傳輸控制裝置、信息存儲媒體和電子儀器。
為了解決上述問題,本發(fā)明是在與總線連接的多個節(jié)點間進行數(shù)據(jù)傳輸用的數(shù)據(jù)傳輸控制裝置,其特征在于具有在與對方節(jié)點間從開始進行數(shù)據(jù)傳輸?shù)浇Y(jié)束的期間的數(shù)據(jù)傳輸期間中判斷是否發(fā)生了清除節(jié)點的拓樸信息的復(fù)位的判斷單元、將在該復(fù)位發(fā)生前從對方節(jié)點傳輸來的數(shù)據(jù)傳輸操作要求用的第1指令數(shù)據(jù)包的內(nèi)容與在該復(fù)位發(fā)生后從對方節(jié)點傳輸來的數(shù)據(jù)傳輸操作要求用的第2指令數(shù)據(jù)包的內(nèi)容進行比較的指令比較單元和在判定在上述數(shù)據(jù)傳輸期間中發(fā)生了清除節(jié)點的拓樸信息的復(fù)位并且判定上述第1和第2指令數(shù)據(jù)包的內(nèi)容相同時就從復(fù)位發(fā)生時刻的數(shù)據(jù)傳輸?shù)牡胤皆俅伍_始進行數(shù)據(jù)傳輸?shù)脑俅伍_始單元。
按照本發(fā)明,判斷在數(shù)據(jù)傳輸期間中是否發(fā)生了清除節(jié)點的拓樸信息的復(fù)位。另外,將在復(fù)位發(fā)生前傳輸來的第1指令數(shù)據(jù)包的內(nèi)容與在復(fù)位發(fā)生后傳輸來的第2指令數(shù)據(jù)包的內(nèi)容進行比較。并且,在判定在數(shù)據(jù)傳輸期間中發(fā)生了復(fù)位并且判定第1和第2指令數(shù)據(jù)包的內(nèi)容相同時,就從復(fù)位發(fā)生時刻的地方(例如,從在復(fù)位發(fā)生時刻完成了傳輸?shù)臄?shù)據(jù)的下一個數(shù)據(jù)開始)再次開始進行數(shù)據(jù)傳輸。
另一方面,例如在判定第1和第2指令數(shù)據(jù)包的內(nèi)容不同時等,復(fù)位發(fā)生后的第2指令數(shù)據(jù)包就從開始進行處理。
因此,按照本發(fā)明,在復(fù)位發(fā)生后對方節(jié)點要求傳輸與復(fù)位發(fā)生前相同內(nèi)容的指令數(shù)據(jù)包時,就可以從復(fù)位發(fā)生時刻的地方再次開始進行數(shù)據(jù)傳輸。因此,就可以解決例如數(shù)據(jù)重復(fù)地向數(shù)據(jù)傳輸控制裝置的上層的設(shè)備傳輸從而上層的設(shè)備發(fā)生誤動作的問題等。
上述判斷單元在清除節(jié)點的拓樸信息的復(fù)位發(fā)生時刻,數(shù)據(jù)傳輸操作要求用的上述第1指令數(shù)據(jù)包是在處理中并且已在進行該第1指令數(shù)據(jù)包的數(shù)據(jù)傳輸而未將數(shù)據(jù)傳輸結(jié)束的狀態(tài)傳輸?shù)綄Ψ焦?jié)點時,最好判定為該復(fù)位是在上述數(shù)據(jù)傳輸期間中發(fā)生的。
另外,本發(fā)明的特征在于在上述判斷單元判定清除節(jié)點的拓樸信息的復(fù)位發(fā)生在數(shù)據(jù)傳輸期間中時,就將表示可以繼續(xù)再次開始進行數(shù)據(jù)傳輸?shù)睦^續(xù)標志設(shè)定為通過。這樣,在繼續(xù)標志為截止時,就不能進行指令數(shù)據(jù)包的比較處理。因此,就不進行無用的指令數(shù)據(jù)包的內(nèi)容比較處理,從而可以減輕處理負擔。
另外,本發(fā)明的特征在于具有在該復(fù)位發(fā)生后到再次開始進行數(shù)據(jù)傳輸?shù)钠陂g存儲用于特定再次開始進行數(shù)據(jù)傳輸?shù)牡刂返男畔⒑蛿?shù)據(jù)傳輸操作要求用的上述第1指令數(shù)據(jù)包的內(nèi)容的指令存儲單元。只要存儲了這樣的信息,通過簡單的處理便可實現(xiàn)數(shù)據(jù)傳輸?shù)脑俅伍_始處理。
另外,本發(fā)明的特征在于上述指令比較單元將在清除節(jié)點的拓樸信息的復(fù)位發(fā)生之后從對方節(jié)點傳輸來的指令數(shù)據(jù)包中最初傳輸來的數(shù)據(jù)傳輸操作要求用的指令數(shù)據(jù)包作為上述第1指令數(shù)據(jù)包的比較對象的上述第2指令數(shù)據(jù)包。這樣,就反復(fù)進行指令數(shù)據(jù)包的內(nèi)容比較處理,直至最初的數(shù)據(jù)傳輸操作要求用的指令數(shù)據(jù)包傳輸來為止。這樣,就可以防止進行無用的指令數(shù)據(jù)包的內(nèi)容比較處理,從而可以減輕處理負擔。
另外,本發(fā)明的特征在于在雖然將數(shù)據(jù)傳輸結(jié)束的狀態(tài)傳輸?shù)搅藢Ψ焦?jié)點,但是由于清除節(jié)點的拓樸信息的復(fù)位發(fā)生而未從對方節(jié)點傳送回來確認信息時,就轉(zhuǎn)移到數(shù)據(jù)傳輸不可狀態(tài)。這樣,在未從對方節(jié)點傳送回來確認信息時,對方節(jié)點是否接收到了該狀態(tài)不是不明確的。因此,這時從復(fù)位發(fā)生時刻的地方開始進行數(shù)據(jù)傳輸時,有可能進行錯誤的數(shù)據(jù)傳輸。按照本發(fā)明,在由于清除節(jié)點的拓樸信息的復(fù)位而未從對方節(jié)點傳送回來確認信息時,就轉(zhuǎn)移到數(shù)據(jù)傳輸不可狀態(tài),所以,可以防止發(fā)生進行這種錯誤的數(shù)據(jù)傳輸?shù)氖虑椤?br>
另外,本發(fā)明的特征在于對于從上層的設(shè)備傳輸來的傳輸數(shù)據(jù)中在清除節(jié)點的拓樸信息的復(fù)位發(fā)生時刻還未向?qū)Ψ焦?jié)點傳輸?shù)膫鬏敂?shù)據(jù)不廢棄,而是保持。這樣,便可防止發(fā)生由掃描儀等讀入的數(shù)據(jù)由于復(fù)位的發(fā)生而丟失的問題。
在本發(fā)明中,上述復(fù)位最好是在IEEE1394的標準中定義的總線復(fù)位。
另外,本發(fā)明是包含用于控制在與上述某一數(shù)據(jù)傳輸控制裝置間的數(shù)據(jù)傳輸?shù)某绦虻男畔⒋鎯γ襟w,其特征在于在數(shù)據(jù)傳輸期間中發(fā)生了清除節(jié)點的拓樸信息的復(fù)位時,作成與在該復(fù)位發(fā)生前傳輸來的數(shù)據(jù)傳輸操作要求用的第1指令數(shù)據(jù)包的內(nèi)容相同的第2指令數(shù)據(jù)包,包含用于要求向數(shù)據(jù)傳輸控制裝置進行傳輸?shù)某绦?。這樣,便可防止進行錯誤的數(shù)據(jù)傳輸再次開始處理,從而可以防止發(fā)生由于復(fù)位的發(fā)生引起的問題。
另外,本發(fā)明的電子儀器的特征在于具有上述某一數(shù)據(jù)傳輸控制裝置、對通過上述數(shù)據(jù)傳輸控制裝置還總線從對方節(jié)點接收的數(shù)據(jù)進行指定的處理的裝置還用于輸出或存儲進行了處理的數(shù)據(jù)的裝置。另外,本發(fā)明的電子儀器的特征在于具有上述某一數(shù)據(jù)傳輸控制裝置、對通過上述數(shù)據(jù)傳輸控制裝置還總線向?qū)Ψ焦?jié)點傳送的數(shù)據(jù)進行指定的處理的裝置還用于取入進行了處理的數(shù)據(jù)的裝置。
按照本發(fā)明,可以防止由于發(fā)生清除節(jié)點的拓樸信息的復(fù)位而系統(tǒng)發(fā)生故障的問題,從而可以防止電子儀器發(fā)生誤動作。另外,可以實現(xiàn)數(shù)據(jù)傳輸?shù)母咚倩?、電子儀器的低成本化和電子儀器的處理高速化等。
附圖的簡單說明
圖1是表示IEEE1394的層結(jié)構(gòu)的圖。
圖2是用于說明SBP-2的圖。
圖3是用于說明SBP-2的數(shù)據(jù)傳輸處理的概略情況的圖。
圖4是用于說明從起動器向目標傳輸數(shù)據(jù)時的指令處理的圖。
圖5是用于說明從目標向起動器傳輸數(shù)據(jù)時的指令處理的圖。
圖6A、圖6B、圖6C是用于說明頁表的圖。
圖7是表示本實施例的數(shù)據(jù)傳輸控制裝置的結(jié)構(gòu)例的圖。
圖8是表示目標側(cè)(固件)的處理的概要的流程圖。
圖9是表示起動器側(cè)(設(shè)備驅(qū)動器)的處理的概要的流程圖。
圖10A、圖10B、圖10C是用于說明重印的問題的圖。
圖11是用于說明在數(shù)據(jù)傳輸期間中發(fā)生總線復(fù)位并且在總線復(fù)位的前后ORB的內(nèi)容相同時繼續(xù)再次開始進行數(shù)據(jù)傳輸?shù)姆椒ǖ膱D。
圖12是用于說明ORB的內(nèi)容比較的圖。
圖13是用于說明繼續(xù)標志的圖。
圖14是用于說明特定再次開始進行數(shù)據(jù)傳輸?shù)牡刂返男畔⒌膱D。
圖15是用于說明在包含印刷指令的最初的指令塊ORB到來之前反復(fù)進行指令比較處理的圖。
圖16是用于說明在狀態(tài)的寫入中發(fā)生總線復(fù)位并且成為ACK故障時轉(zhuǎn)移到斷開狀態(tài)的方法的圖。
圖17是用于說明在總線復(fù)位時不廢棄還未向起動器傳輸?shù)臄?shù)據(jù)而保持的方法的圖。
圖18是表示總線復(fù)位發(fā)生時的本實施例的詳細的處理例的流程圖。
圖19是表示總線復(fù)位發(fā)生時的本實施例的詳細的處理例的流程圖。
圖20是表示總線復(fù)位發(fā)生時的本實施例的詳細的處理例的流程圖。
圖21是表示通常時的本實施例的詳細的處理例的流程圖。
圖22是表示通常時的本實施例的詳細的處理例的流程圖。
圖23A、圖23B、圖23C是各種電子儀器的內(nèi)部框圖的例子。
圖24A、圖24B、圖24C是各種電子儀器的外觀圖的例子。
用于實施發(fā)明的最佳形態(tài)下面,使用附圖詳細說明本發(fā)明的極佳的實施例。
1.IEEE1394首先,簡單地說明IEEE1394。
1.1概要在IEEE1394(IEEE1394-1995、P1394.a)中,可以進行100~400Mbps的高速的數(shù)據(jù)傳輸(在P1394.b中,為800~3200Mbps)。
各節(jié)點連接成樹形,1條總線最多可以連接63個節(jié)點。如果利用總線橋,則可連接約64000個節(jié)點。
在IEEE1394中,作為數(shù)據(jù)包的傳輸方式,準備了非同步傳輸和同步傳輸方式。這里,非同步傳輸是極適合于要求可靠性的數(shù)據(jù)的傳輸方式,同步傳輸是極適合于要求實時性的動圖像及聲音等的數(shù)據(jù)傳輸。
1.2層結(jié)構(gòu)IEEE1394的層結(jié)構(gòu)(協(xié)議結(jié)構(gòu))示于圖1。
IEEE1394的協(xié)議,由事務(wù)處理層、鏈接層和物理層構(gòu)成。另外,串行總線管理是通過監(jiān)視或控制事務(wù)處理層、鏈接層和物理層而進行的,提供用于節(jié)點的控制及總線的資源管理的各種功能。
事務(wù)處理層向高位層提供事務(wù)處理單位的接口(服務(wù)),通過下層的鏈接層提供的接口進行讀出事務(wù)處理、寫入事務(wù)處理、鎖存事務(wù)處理等事務(wù)處理。
這里,在讀出事務(wù)處理中,從應(yīng)答節(jié)點向要求節(jié)點傳輸數(shù)據(jù)。另一方面,在寫入事務(wù)處理中,從要求節(jié)點向應(yīng)答節(jié)點傳輸數(shù)據(jù)。另外,在鎖存事務(wù)處理中,從要求節(jié)點向應(yīng)答節(jié)點傳輸數(shù)據(jù),應(yīng)答節(jié)點對該數(shù)據(jù)進行處理后,傳送回要求節(jié)點。
鏈接層提供尋址、數(shù)據(jù)檢驗、數(shù)據(jù)收發(fā)用的數(shù)據(jù)調(diào)整、同步傳輸用的周期控制等。
物理層提供向鏈接層使用的邏輯符號的電信號的變換、總線的調(diào)配、總線的物理的接口。
1.3 SBP-2如圖2所示,作為包含IEEE1394的事務(wù)處理層的一部分功能的高位的協(xié)議,提案了稱為SBP-2(Serial Bus Protocol-2)的協(xié)議。
這里,SBP-2是為了可以在IEEE1394的協(xié)議上利用SCSI的指令集合而提案的。如果使用該SBP-2,對在已有的SCSI標準的電子儀器中使用的SCSI的指令集合加以最小限度的變更,就可以使用于IEEE1394標準的電子儀器中。因此,可以使電子儀器的設(shè)計和開發(fā)很容易。另外,不僅SCSI的指令而且設(shè)備固有的指令也可以壓縮后利用,所以,通用性非常高。
如圖3所示,在SBP-2中,首先使用由起動器(例如電腦)作成的注冊O(shè)RB(Operation Request Block)進行注冊處理(步驟T1)。其次,使用啞ORB進行取窗口終端的初始化處理(步驟T2)。并且,使用指令塊ORB(正常指令ORB)進行指令處理(步驟T3),最后,使用注銷ORB進行注銷處理(步驟T4)。
這里,在步驟T3的指令處理中,如圖4的A1所示的那樣,起動器傳輸寫入要求數(shù)據(jù)包(發(fā)布寫入要求事務(wù)處理),鏈接目標的門鈴寄存器。于是,如A2所示,目標傳輸讀出要求數(shù)據(jù)包,起動器傳送回對應(yīng)的讀出應(yīng)答數(shù)據(jù)包。這樣,起動器作成的ORB(指令塊ORB)取入到目標的數(shù)據(jù)緩沖器中。并且,目標分析包含在取入的ORB中的指令。
并且,在包含在ORB中的指令是SCSI的寫入指令時,就如A3所示的那樣,目標向起動器傳輸讀出要求數(shù)據(jù)包,起動器傳送回對應(yīng)的讀出應(yīng)答數(shù)據(jù)包。這樣,存儲在起動器的數(shù)據(jù)緩沖器中的數(shù)據(jù)就向目標傳輸。并且,在例如目標是打印機時,傳輸?shù)臄?shù)據(jù)由打印機進行印刷。
另一方面,在包含在ORB中的指令是SCSI的讀出指令時,就如圖5的B1所示的那樣,目標向起動器傳輸一連串的寫入要求數(shù)據(jù)包。這樣,在例如目標是掃描儀時,由掃描儀取得的掃描數(shù)據(jù)就向起動器的數(shù)據(jù)緩沖器傳輸。
按照該SBP-2,目標在自身狀況良好時就傳輸要求數(shù)據(jù)包(發(fā)布事務(wù)處理),可以收發(fā)數(shù)據(jù)。因此,由于起動器和目標不需要同步地動作,所以,可以提高數(shù)據(jù)傳輸效率。
作為IEEE1394的高位協(xié)議,除了SBP-2外,還提案了稱為FCP(Function Control Protocol)的協(xié)議等。
在目標與起動器間進行數(shù)據(jù)傳輸時,如圖6A所示,有在起動器(對方節(jié)點)的數(shù)據(jù)緩沖器(存儲單元)中存在頁表和不存在頁表的情況。
并且,在存在頁表時,如圖6B所示,在起動器作成的ORB中,包含該頁表的地址和元素數(shù)。并且,傳輸數(shù)據(jù)的地址(讀出地址、寫入地址)使用該頁表間接地指定。
另一方面,在不存在頁表時,如圖6C所示,在ORB中包含地址和數(shù)據(jù)長度,傳輸數(shù)據(jù)的地址直接指定。
1.4總線復(fù)位在IEEE1394中,在接通電源或在中途發(fā)生拔出和插入設(shè)備時,就發(fā)生總線復(fù)位。即,各節(jié)點監(jiān)視端口的電壓變化。并且,在由于新的節(jié)點與總線連接等而端口的電壓發(fā)生變化時,檢測到該變化的節(jié)點就向總線上的其他節(jié)點通知發(fā)生了總線復(fù)位。另外,各節(jié)點的物理層就將發(fā)生了總線復(fù)位的信息傳輸給鏈接層。
并且,在只要發(fā)生了總線復(fù)位時,就清除節(jié)點ID等拓樸信息。并且,然后再自動地設(shè)定拓樸信息。即,在總線復(fù)位之后,進行樹形識別和自己識別。然后,決定同步的資源管理器、周期主機、總線管理器等管理節(jié)點。并且,再次開始進行通常的數(shù)據(jù)包傳輸。
這樣,在IEEE1394中,在總線復(fù)位之后,自動地再次設(shè)定拓樸信息,所以,可以自由地拔出和插入電子儀器的電纜,從而可以實現(xiàn)所謂的熱標志。
在事務(wù)處理的途中發(fā)生了總線復(fù)位時,就取消該事務(wù)處理。并且,發(fā)布所取消的事務(wù)處理的要求節(jié)點在拓樸信息再次設(shè)定之后,再次傳輸要求數(shù)據(jù)包。另外,應(yīng)答節(jié)點不向要求節(jié)點傳送回由于總線復(fù)位而取消的事務(wù)處理的應(yīng)答數(shù)據(jù)包。
2.全體結(jié)構(gòu)下面,使用圖7說明本實施例的數(shù)據(jù)傳輸控制裝置的全體結(jié)構(gòu)例。以下,以在與起動器之間進行數(shù)據(jù)傳輸?shù)哪繕耸谴蛴C的情況為例進行說明,但是,本發(fā)明不限定此種情況。
本實施例的數(shù)據(jù)傳輸控制裝置10包括PHY設(shè)備12(物理層的設(shè)備)、鏈接設(shè)備14(鏈接層的設(shè)備)、CPU16(處理器)、數(shù)據(jù)緩沖器18(存儲單元)和固件20(處理單元)。PHY設(shè)備12、鏈接設(shè)備14、CPU16、數(shù)據(jù)緩沖器18是任意的結(jié)構(gòu)要素,本實施例的數(shù)據(jù)傳輸控制裝置10不必全部包含這些結(jié)構(gòu)要素。
PHY設(shè)備12是用于利用固件實現(xiàn)圖1的物理層的協(xié)議的電路,具有將由鏈接設(shè)備14使用的邏輯符號變換為電信號的功能。
鏈接設(shè)備14是用于利用固件實現(xiàn)圖1的鏈接層的協(xié)議和事務(wù)處理層的協(xié)議的一部分的電路,提供用于在節(jié)點間的數(shù)據(jù)包傳輸?shù)母鞣N服務(wù)。
CPU16是進行裝置全體的控制和數(shù)據(jù)傳輸?shù)目刂频脑O(shè)備。
數(shù)據(jù)緩沖器18是暫時存儲傳輸數(shù)據(jù)(數(shù)據(jù)包)的緩沖器,由SRAM、SDRAM、或DRAM等硬件構(gòu)成。在本實施例中,數(shù)據(jù)緩沖器18起可以隨機訪問的數(shù)據(jù)包存儲單元的功能。
固件20是包含在CPU16上動作的各種處理程序(處理模塊)的程序,事務(wù)處理層的協(xié)議由該固件20和作為硬件的CPU16等實現(xiàn)。
包含作為起動器的電腦100的設(shè)備驅(qū)動器102是包含用于管理控制周邊機器的各種處理程序的程序。該程序利用信息存儲媒體110(FD、CD-ROM、DVD、ROM)安裝到電腦100中。
這里,設(shè)備驅(qū)動器102的程序也可以因特網(wǎng)等網(wǎng)絡(luò)從主系統(tǒng)具有的信息存儲媒體(硬盤、磁帶等)上下載,并安裝到電腦100中。這種主系統(tǒng)具有的信息存儲媒體的使用也包含在本發(fā)明的范圍內(nèi)。
固件20(F/W)包括通信部30(COM)、管理部40(MNG)、打印任務(wù)部50(PRT)和取出部60(FCH)。
這里,通信部30是起與鏈接設(shè)備14等硬件間的接口的功能的處理模塊。
管理部40(管理機器)是進行注冊、重新連接、注銷、復(fù)位等的管理的處理模塊。例如,在起動器向目標要求注冊時,首先,該管理部40就接收該注冊要求。
打印任務(wù)部50是進行與作為后級的應(yīng)用層(上層)的打印機之間的數(shù)據(jù)傳輸處理的處理模塊。
取出部60(取介質(zhì)、指令塊介質(zhì))是用于執(zhí)行包含指令塊ORB的指令的處理模塊。取出部60與只能處理單一的要求的管理部40不同,根據(jù)起動器的要求,可以處理自身取處的ORB的鏈接表。
取出部60包括判斷部62、指令存儲部64、指令比較部66、地址存儲部68、地址比較部70和數(shù)據(jù)傳輸再次開始部72。
這里,判斷部62進行判斷在與起動器(對方節(jié)點)之間傳輸印刷數(shù)據(jù)的數(shù)據(jù)傳輸期間中是否發(fā)生了總線復(fù)位(廣義地說,是清除節(jié)點的拓樸信息的復(fù)位)的處理。
指令存儲部64在總線復(fù)位發(fā)生的時刻和重新連接成功的時刻等進行存儲在總線復(fù)位發(fā)生前從起動器傳輸來的ORB(指令塊ORB。廣義地說,是數(shù)據(jù)傳輸操作要求用的指令數(shù)據(jù)包)的處理。
指令比較部66進行將在總線復(fù)位發(fā)生前從起動器傳輸來的ORB(指令塊ORB)的內(nèi)容(由指令存儲部64存儲的內(nèi)容)與總線復(fù)位發(fā)生后從起動器傳輸來的ORB的內(nèi)容比較的處理。
地址存儲部68進行存儲在與起動器之間傳輸?shù)膫鬏敂?shù)據(jù)(印刷數(shù)據(jù))的開頭地址(第1地址)的處理。
地址比較部70在發(fā)生了總線復(fù)位時進行將由地址存儲部68存儲的開頭地址(第1地址)與總線復(fù)位發(fā)生后的傳輸數(shù)據(jù)的開頭地址(第2地址)比較的處理。
數(shù)據(jù)傳輸再次開始部72在判定在數(shù)據(jù)傳輸期間中發(fā)生了總線復(fù)位并且判定ORB(指令塊ORB)的內(nèi)容一致時,進行從總線復(fù)位發(fā)生時刻的數(shù)據(jù)傳輸?shù)牡胤?總線復(fù)位發(fā)生時刻傳輸?shù)臄?shù)據(jù)的下一數(shù)據(jù))再次開始進行數(shù)據(jù)傳輸?shù)奶幚怼?br>
3.處理的概要下面,說明本實施例的處理的概要。
圖8是表示目標側(cè)(固件)的處理的概要的流程圖。
從起動器有印刷要求時,目標就從起動器的數(shù)據(jù)緩沖器中讀出ORB(步驟S1)。并且,在存在頁表時,就根據(jù)包含在ORB中的頁表地址(參見圖6B),從起動器的數(shù)據(jù)緩沖器中讀出頁表(步驟S2)。其次,根據(jù)讀出的頁表從起動器的數(shù)據(jù)緩沖器中讀出印刷數(shù)據(jù)(步驟S3)。并且,在卻讀出了由要求表指定的印刷數(shù)據(jù)時,就寫入狀態(tài),將數(shù)據(jù)傳輸是否成功的狀態(tài)向起動器傳輸(步驟S4)。反復(fù)進行以上的處理,直至傳輸了全部印刷數(shù)據(jù)為止(步驟S5)。
并且,在本實施例中,在印刷數(shù)據(jù)的傳輸中(數(shù)據(jù)傳輸期間)發(fā)生了總線復(fù)位時,在重新連接后的最初的印刷要求時進行以下的處理。
即,首先判斷總線復(fù)位前的ORB的內(nèi)容和印刷數(shù)據(jù)的開頭地址與總線復(fù)位后的ORB的內(nèi)容和印刷數(shù)據(jù)的開頭地址是否相同(步驟S6)。并且,在判定相同時,就從總線復(fù)位發(fā)生時刻的地方再次開始進行數(shù)據(jù)傳輸(步驟S7)。另一方面,在判定不相同時,就將總線復(fù)位后的ORB作為新的ORB從開始進行處理(步驟S8)。
圖9是表示起動器側(cè)(設(shè)備驅(qū)動器)的處理的概要的流程圖。
在發(fā)生應(yīng)用程序的印刷作業(yè)時,起動器就作成印刷用的ORB及頁表,并寫入數(shù)據(jù)緩沖器(步驟S10)。其次,向目標發(fā)出指示,讀出作成的ORB(步驟S11,參見圖4的A1)。
然后,判斷是否發(fā)生了總線復(fù)位(步驟S12),在未發(fā)生時,就判斷該狀態(tài)是否已從目標傳送來(步驟S13)。并且,在已傳送來時,就判斷是否已傳輸了全部印刷數(shù)據(jù)(步驟S14),在尚未全部傳輸時,就返回到步驟S10,在已傳輸了全部印刷數(shù)據(jù)時,就結(jié)束印刷作業(yè)。
并且,在本實施例中,在步驟S12判定發(fā)生了總線復(fù)位時,起動器就再次作成ORB和頁表(步驟S15),并指示目標讀出再次作成的ORB(步驟S11)。這時,起動器(設(shè)備驅(qū)動器)再次作成ORB,以使總線復(fù)位發(fā)生前的ORB的內(nèi)容和印刷數(shù)據(jù)的開頭地址與總線復(fù)位發(fā)生后的ORB的內(nèi)容和印刷數(shù)據(jù)的開頭地址相同。
4.本實施例的特征在印刷數(shù)據(jù)的傳輸中發(fā)生了總線復(fù)位時,下已查明將發(fā)生以下的問題。
例如,如圖10A所示,設(shè)在將數(shù)據(jù)傳輸?shù)紺1所示的位置(地址)的時刻發(fā)生了總線復(fù)位。這時,在總線復(fù)位發(fā)生的時刻,作為處理中的事務(wù)處理就全部取消。因此,在總線復(fù)位前要求了印刷數(shù)據(jù)的傳輸?shù)钠饎悠骶腿鐖D10B所示的那樣,在總線復(fù)位之后再次作成印刷用的ORB,并指示目標再從開始重新進行印刷數(shù)據(jù)的傳輸。因此,從圖10B的C2所示的位置再次開始進行數(shù)據(jù)傳輸,從而印刷數(shù)據(jù)的一部分就重復(fù)地傳輸了。結(jié)果,將發(fā)生圖10C所示的重印的問題。
為了解決這樣的問題,在本實施例中,采用了以下說明的方法。
即,在本實施例中,首先,如圖11的D1所示的那樣,判斷在數(shù)據(jù)傳輸期間中(在與起動器之間印刷數(shù)據(jù)的傳輸開始到結(jié)束的期間)是否發(fā)生了總線復(fù)位。更具體而言,就是在總線復(fù)位的發(fā)生時刻,在D2所示的ORB(指令塊ORB)是在處理中并且已進行了該ORB的數(shù)據(jù)傳輸、而D3所示的數(shù)據(jù)傳輸結(jié)束的狀態(tài)未傳輸給起動器時,就判定在數(shù)據(jù)傳輸期間中發(fā)生了總線復(fù)位。
另外,在本實施例中,如圖11的D4所示,在總線復(fù)位發(fā)生之后,起動器重新連接成功、并作成了新的ORB而要求傳輸時,就將總線復(fù)位前的ORB(第1指令數(shù)據(jù)包)的內(nèi)容與總線復(fù)位后的ORB(第2指令數(shù)據(jù)包)的內(nèi)容進行比較。
并且,在判定在數(shù)據(jù)傳輸期間中發(fā)生了總線復(fù)位并且判定總線復(fù)位前的ORB的內(nèi)容與總線復(fù)位后的ORB的內(nèi)容相同時,就如D5所示的那樣,從總線復(fù)位發(fā)生時刻的數(shù)據(jù)傳輸?shù)牡胤皆俅伍_始進行數(shù)據(jù)傳輸(參見圖8的步驟S7)。即,從在總線復(fù)位發(fā)生時刻已完成了傳輸?shù)臄?shù)據(jù)的下一數(shù)據(jù)開始再次開始進行數(shù)據(jù)傳輸。
另一方面,在數(shù)據(jù)傳輸期間中未發(fā)生總線復(fù)位時或在總線復(fù)位前后ORB的內(nèi)容不相同時,就將總線復(fù)位后的ORB作為新的ORB從開始再次進行處理(參見圖8的步驟S8)。
這樣,圖11的D6所示的部分的傳輸數(shù)據(jù)就與圖10B的情況不同,不會重復(fù)傳輸。因此,不會發(fā)生圖10C所示的錯誤印刷。另外,由于可以避免重復(fù)傳輸,所以,也可以縮短傳輸時間。
例如,在數(shù)據(jù)傳輸期間以外的期間發(fā)生了總線復(fù)位時,即使不如D5所示的那樣從總線復(fù)位發(fā)生時刻的地方再次開始進行數(shù)據(jù)傳輸,由于傳輸數(shù)據(jù)不重復(fù)傳輸,所以,也沒有問題。另外,在數(shù)據(jù)傳輸期間以外的期間發(fā)生了總線復(fù)位時,從最開始處理ORB要求比進行數(shù)據(jù)傳輸?shù)脑俅伍_始處理簡單,處理負擔也可以減輕。
另外,作為與本實施例不同的方法,也可以考慮不進行ORB的內(nèi)容的比較處理而總是從總線復(fù)位發(fā)生時刻的地方再次開始進行數(shù)據(jù)傳輸?shù)姆椒ā?br>
但是,如果采用這樣的方法,在例如總線復(fù)位后起動器取消印刷數(shù)據(jù)的傳輸處理并作成與總線復(fù)位前完全不同的ORB時,也回發(fā)生從圖11的D5開始再次開始進行數(shù)據(jù)傳輸?shù)膯栴}。
與此相反,在本實施例中,ORB的內(nèi)容在總線復(fù)位前后相同時,從圖11的D5開始再次開始進行數(shù)據(jù)傳輸,但是,在不相同時就完全作為新的ORB處理,所以,不會發(fā)生上述問題。
在本實施例中,在進行ORB的內(nèi)容比較時比較各種信息。例如,如圖12所示,在本實施例中,是比較包含指令塊ORB的頁表存在標志P、數(shù)據(jù)尺寸、指令塊(指令集合)字段中的操作代碼(區(qū)別印刷指令和讀出指令等的代碼)和數(shù)據(jù)長度。另外,在ORB包含用于識別ORB的識別信息(例如順序號碼)時,也比較該識別信息。通過比較這些信息,可以通過簡單的處理而可靠地判斷總線復(fù)位前后的ORB是否相同。
在本實施例中,如圖13的E1所示,在判定在數(shù)據(jù)傳輸期間中發(fā)生了總線復(fù)位時,就將表示可以繼續(xù)進行數(shù)據(jù)傳輸而再次開始的繼續(xù)標志設(shè)定為通過。例如,在總線復(fù)位發(fā)生后重新連接成功時等,就判斷在數(shù)據(jù)傳輸期間中是否發(fā)生了總線復(fù)位,在判定發(fā)生了時,就將繼續(xù)標志設(shè)定為通過。
并且,如圖13的E2所示,ORB的比較內(nèi)容是以該繼續(xù)標志是通過為條件而進行的。即,在繼續(xù)標志為截止時,就不進行ORB的內(nèi)容比較。這樣,便可防止進行無用的ORB的內(nèi)容比較處理,從而可以減輕固件的處理負擔。
另外,在本實施例中,在總線復(fù)位發(fā)生時刻和重新連接成功的時刻(廣義地說,在總線復(fù)位發(fā)生后到再次開始進行數(shù)據(jù)傳輸?shù)钠陂g)存儲用于特定再次開始進行數(shù)據(jù)傳輸?shù)牡刂?圖11的D5)的信息和總線復(fù)位前的ORB的內(nèi)容。通過預(yù)先存儲這樣的信息,在總線復(fù)位后從起動器再次傳輸ORB時,就容易進行是否從總線復(fù)位發(fā)生時刻的地方再次開始進行數(shù)據(jù)傳輸?shù)呐袛唷A硗猓部梢允箶?shù)據(jù)傳輸?shù)脑俅伍_始處理簡單。
作為用于特定再次開始進行數(shù)據(jù)傳輸?shù)牡刂返男畔ⅲ梢跃唧w地考慮以下的信息。
例如,如圖14所示,設(shè)在總線復(fù)位發(fā)生時刻傳輸了頁表的第N數(shù)據(jù)段SEGN指定的傳輸數(shù)據(jù)。這時,作為用于特定再次開始進行數(shù)據(jù)傳輸?shù)牡刂?F1所示的地址)的信息,可以考慮頁表的開頭數(shù)據(jù)段SEG1存儲的地址(傳輸數(shù)據(jù)的開頭地址)、由數(shù)據(jù)段SEG1~SEG(N-1)傳輸?shù)臄?shù)據(jù)的尺寸DS1、數(shù)據(jù)段N的數(shù)據(jù)段號碼、到總線復(fù)位發(fā)生時刻為止由數(shù)據(jù)段N傳輸?shù)臄?shù)據(jù)的尺寸DS2等。
另外,在本實施例中,在總線復(fù)位發(fā)生后從起動器傳輸來的ORB中,將包含最初傳輸來的印刷指令的ORB(指令塊ORB)作為總線復(fù)位前的ORN的比較對象的ORB來采用。
例如,如圖15所示,在總線復(fù)位后,不一定立刻傳輸包含印刷指令的指令塊ORB。即,有時起動器在要求傳輸包含印刷指令的指令塊ORB之前要求傳輸啞ORB和管理ORB。或者,為了檢查打印機的狀態(tài)等,有時要求傳輸包含讀出指令的指令塊ORB。
在本實施例中,如圖15的G1所示,即使傳輸來啞ORB等,也不進行ORB的內(nèi)容比較處理,而在傳輸來包含印刷指令的指令塊ORB時才開始進行ORB的內(nèi)容比較處理。即,在包含印刷指令的最初的指令塊ORB到來之前,反復(fù)進行ORB的內(nèi)容比較處理。這樣,便可防止進行無用的ORB的內(nèi)容比較處理,從而可以減輕固件的處理負擔。
總線復(fù)位的發(fā)生時間完全是任意的。因此,例如圖16所示的那樣,目標向起動器傳輸數(shù)據(jù)傳輸結(jié)束的狀態(tài),但是,有時由于發(fā)生總線復(fù)位而ACK(ACK完成)未從起動器傳送回來,從而成為ACK故障。
這時,可以考慮由于發(fā)生總線復(fù)位而起動器不接收狀態(tài)而成為ACK故障的第1種情況和起動器接收狀態(tài)并傳送回ACK但由于發(fā)生總線復(fù)位而成為ACK故障的第2種情況。
并且,在上述第1種情況下,起動器認為數(shù)據(jù)傳輸是不成功的,在總線復(fù)位后進行再次作成相同的ORB的第1處理。另一方面,在上述第2種情況下,起動器認為數(shù)據(jù)傳輸成功,在總線復(fù)位后進行作成下一個ORB的第2處理。
然而,由于只向目標傳輸ACK故障這樣的信息,所以,目標不能知道起動器進行上述第1、第2處理中的哪一個處理。因此,這時,就有可能進行從總線復(fù)位發(fā)生時刻的地方開始進行數(shù)據(jù)傳輸?shù)腻e誤的數(shù)據(jù)傳輸。
因此,在本實施例中,如圖16所示,在由于發(fā)生總線復(fù)位而未從起動器傳送回確認時,就轉(zhuǎn)移到斷開狀態(tài)(數(shù)據(jù)傳輸不可狀態(tài))。這樣,便可防止進行錯誤的數(shù)據(jù)傳輸?shù)氖虑椤?br>
以上,主要說明了目標是打印機的情況,但是,在目標為掃描儀時,存在以下的問題。
即,在掃描儀中,一旦讀寫頭開始移動后,就不能返回到原處再次取得(掃描)相同的數(shù)據(jù)。
因此,在本實施例中,如圖17所示,在來自掃描儀(廣義地說,上層的設(shè)備)的傳輸數(shù)據(jù)中,在總線復(fù)位的發(fā)生時刻對還未傳輸?shù)狡饎悠鞯膫鬏敂?shù)據(jù)不廢棄而進行保持。即,如圖17的H1所示,從掃描儀取入,并存儲到數(shù)據(jù)緩沖器中,但是,對于通過IEEE1394的總線還未傳輸?shù)狡饎悠鞯臄?shù)據(jù)不廢棄而預(yù)先保持,從而不清除數(shù)據(jù)緩沖器。
這樣,在總線復(fù)位發(fā)生后,利用圖11所示的方法從總線復(fù)位發(fā)生時刻的地方再次開始進行數(shù)據(jù)傳輸時,可以防止發(fā)生丟失在總線復(fù)位發(fā)生前取入的圖像數(shù)據(jù)等問題。
5.詳細的處理例下面,使用圖18~圖22的流程圖說明本實施例的詳細的處理例。
圖18~圖22是表示總線復(fù)位發(fā)生時(重新連接時)的處理的詳細例的流程圖。
在總線復(fù)位發(fā)生時,目標首先判斷起動器是否已注冊了(步驟S20),已注冊了時,就取消IEEE1394的總線上的所有的傳輸處理(事務(wù)處理)(步驟S21)。另一方面,在還未注冊時,即使發(fā)生了總線復(fù)位也不需要特別的處理,所以,什么處理也不進行(步驟S22)。
其次,判斷是否已進入總線復(fù)位處理(步驟S23)。這樣,在發(fā)生多次總線復(fù)位時可以防止無用地多次反復(fù)進行與其對應(yīng)的總線復(fù)位處理。
然后,存儲總線復(fù)位發(fā)生時刻的ACK(確認)的狀態(tài)(步驟S24)。這樣,利用此后發(fā)生的事務(wù)處理(例如重新連接的事務(wù)處理),便可防止總線復(fù)位之后的ACK的內(nèi)容消失。
其次,存儲在IEEE1394的總線上已完成傳輸?shù)臄?shù)據(jù)的尺寸(字節(jié)樹)(步驟S25)。即,存儲在總線復(fù)位發(fā)生時刻是在處理中的數(shù)據(jù)段的已完成傳輸?shù)臄?shù)據(jù)的尺寸(圖14的DS2)。并且,為了進行步驟S23的判斷,使表示總線復(fù)位處理中的標志通過(步驟S26)。即,在該標志成為通過時,即使此后發(fā)生了總線復(fù)位,也不進行步驟S24~S26的處理。
然后,等待與起動器的重新連接(步驟S27),并判斷是否已由起動器進行了重新連接(步驟S28)。并且,在還未進行重新連接時,就判斷是否已經(jīng)過了由注冊O(shè)RB的重新連接字段指定的重新連接時間(步驟S29)。并且,在已經(jīng)過了該數(shù)據(jù)時,就使用圖13說明的繼續(xù)標志(表示可以繼續(xù)再次開始進行數(shù)據(jù)傳輸?shù)臉酥?截止(步驟S30),并轉(zhuǎn)移到注銷狀態(tài)(步驟S31)。
另一方面,在重新連接時間內(nèi)已完成了重新連接時,就判斷重新連接的起動器是否為總線復(fù)位前注冊的起動器(步驟S32),在是與總線復(fù)位前不同的起動器時,就拒絕該起動器的重新連接,并返回到重新連接的等待狀態(tài)。
在注冊了與總線復(fù)位前相同的起動器時,就判斷印刷用的指令塊ORB(包含印刷指令的ORB)在總線復(fù)位發(fā)生時刻是否是在處理中(圖19的步驟S33)。并且,在不是在處理中時,就使繼續(xù)標志截止(步驟S36),并轉(zhuǎn)移到無用狀態(tài)(步驟S37)。
另一方面,在印刷用的指令塊ORB是在處理中時,就判斷在狀態(tài)的寫入中(從寫入狀態(tài)到傳送回ACK的期間)是否發(fā)生了總線復(fù)位(步驟S34)。并且,在狀態(tài)的寫入中發(fā)生了總線復(fù)位時,在圖18的步驟S24就根據(jù)存儲的ACK的信息判斷是否為ACK完成(步驟S35)。
并且,在是ACK完成時,就使繼續(xù)標志截止(步驟S36),并轉(zhuǎn)移到無用狀態(tài)(步驟S37)。另一方面,在不是ACK完成時,就判斷是否為ACK故障(步驟S38)。并且,如果不是ACK故障,就什么處理也不進行(步驟S39),是ACK故障時,就使繼續(xù)標志截止(步驟S40),如用圖16說明的那樣,轉(zhuǎn)移到斷開狀態(tài)(數(shù)據(jù)傳輸不可狀態(tài))(步驟S41)。
在步驟S34判定總線復(fù)位的發(fā)生不是在狀態(tài)的寫入中時,就判斷是否向后級的打印機哪怕傳輸1字節(jié)的處理中的ORB的傳輸(印刷)數(shù)據(jù)(步驟S42)。并且,在1字節(jié)也不傳輸時,就使繼續(xù)標志截止(步驟S43),并轉(zhuǎn)移到無用狀態(tài)(步驟S49)。
另一方面,在哪怕1字節(jié)也向打印機引擎?zhèn)鬏敃r,就存儲ORB的內(nèi)容(數(shù)據(jù)尺寸、頁表存在標志P、指令塊)和在總線復(fù)位發(fā)生時刻之前傳輸來的數(shù)據(jù)的尺寸(步驟S44)。
該數(shù)據(jù)的尺寸相當于在總線復(fù)位發(fā)生時刻已傳輸?shù)胶蠹壍拇蛴C的數(shù)據(jù)的字節(jié)數(shù)與在總線復(fù)位發(fā)生時刻在IEEE1394的總線上的數(shù)據(jù)傳輸已結(jié)束并向后級的打印機傳輸中或預(yù)定從現(xiàn)在開始傳輸?shù)臄?shù)據(jù)的字節(jié)數(shù)之和。即,例如相當于由打印機已印刷的數(shù)據(jù)的字節(jié)數(shù)與由打印機現(xiàn)在印刷中的或預(yù)定從現(xiàn)在開始印刷的數(shù)據(jù)的字節(jié)數(shù)之和。
其次,判斷是否存在頁表(步驟S45),在不存在時,就存儲ORB的數(shù)據(jù)原文的內(nèi)容(步驟S46)。即,在不存在頁表時,直接存儲地址指定時的傳輸數(shù)據(jù)的地址和數(shù)據(jù)長度(參見圖6C)。
另一方面,在存在頁表時,如用圖14說明的那樣,存儲頁表的開頭數(shù)據(jù)段的內(nèi)容(地址、數(shù)據(jù)長度)、總線復(fù)位發(fā)生時刻是處理中的數(shù)據(jù)段的內(nèi)容(地址、數(shù)據(jù)長度)和數(shù)據(jù)段號碼(步驟S47)。并且,使用圖13說明的繼續(xù)標志通過(步驟S48),并轉(zhuǎn)移到無用狀態(tài)(步驟S49)。
這樣,在本實施例中,在判定在數(shù)據(jù)傳輸期間中發(fā)生了總線復(fù)位時(圖19的步驟S33、S34、圖20的步驟S42),繼續(xù)標志就成為通過(步驟S48)。
圖21、圖22是表示通常時的處理的詳細例的流程圖。
首先,判斷是否從起動器指示了ORB的讀出(是否鏈接了門鈴寄存器)(步驟S51),尚未指示時,就停留在無用狀態(tài)(步驟S50)。另一方面,在已之了時,就從起動器讀出起動器作成的ORB(步驟S52)。并且,根據(jù)ORB包含的頁表存在標志P判斷是否存在頁表(步驟S53)。并且,在存在頁表時,就將頁表的數(shù)據(jù)段例如每8個數(shù)據(jù)8個段數(shù)據(jù)的讀出(步驟S54)。
其次根據(jù)作為ORB的指令塊的操作代碼,如用圖15說明的那樣,判斷讀出的ORB是否為印刷用的指令塊ORB(步驟S55)。并且,在是印刷用的指令塊ORB時,就判斷在步驟S54讀出的8個數(shù)據(jù)段是否為頁表的最初的8個數(shù)據(jù)段(包含開頭數(shù)據(jù)段的8個數(shù)據(jù)段)(步驟S56),在是最初的8個數(shù)據(jù)段時,就轉(zhuǎn)移到圖22所示的指令和地址比較處理(步驟S57)。
在步驟S55判定不是印刷用的指令塊ORB時、在步驟S56判定不是最初的8個數(shù)據(jù)段時和步驟S57的指令和地址比較處理結(jié)束時,就進行數(shù)據(jù)的讀出/寫入(步驟S58)。并且,反復(fù)進行直至讀出/寫入1個數(shù)據(jù)段的數(shù)據(jù)和8個數(shù)據(jù)段的數(shù)據(jù)為止(步驟S59、S60)。
其次,判斷是否讀出/寫入了頁表的所有的數(shù)據(jù)段(步驟S61),還未讀出/寫入所有的數(shù)據(jù)段時,就讀出頁表的下一個8個數(shù)據(jù)段(步驟S54)。另一方面,在讀出了頁表的所有的數(shù)據(jù)段時,就向起動器寫入該狀態(tài)(步驟S62)。并且,判斷是否讀出了印刷物的印刷用的ORB(步驟S63),在有下一個ORB時,就返回到步驟S52,在沒有下一個ORB時,就轉(zhuǎn)移到無用狀態(tài)(步驟S50)。
在步驟S53判定不存在頁表時,就判斷讀出的ORB是否為印刷用的指令塊ORB(步驟S64)。并且,在是印刷用的指令塊ORB時,就轉(zhuǎn)移到圖22所示的指令地址比較處理(步驟S65)。
另一方面,在判定不是印刷用的指令塊ORB時還和指令地址比較處理結(jié)束時,就讀出/寫入數(shù)據(jù)(步驟S66),反復(fù)進行上述處理直至讀出/寫入所有的數(shù)據(jù)為止(步驟S67)。并且,在讀出/寫入了所有的數(shù)據(jù)時,就轉(zhuǎn)移到步驟S62,并向起動器寫入該狀態(tài)。
在圖22的指令地址比較處理中,首先,判斷繼續(xù)標志是否通過(步驟S70)。該繼續(xù)標志是在圖20的步驟S48中通過的標志。并且,在繼續(xù)標志截止時,就轉(zhuǎn)移到步驟S76,存儲傳輸數(shù)據(jù)的開頭地址(頁表的開頭數(shù)據(jù)段的地址),并結(jié)束指令地址比較處理。
在繼續(xù)標志通過時,如用圖11、圖12說明的那樣,判斷讀出的ORB的內(nèi)容與總線復(fù)位前的ORB的內(nèi)容是否一致(步驟S71)。這時,成為比較對象的總線復(fù)位前的ORB的內(nèi)容在圖20的步驟S44中進行存儲。另外,在本實施例中,在進行地址比較(步驟S72)之前,進行ORB的內(nèi)容比較(步驟S71)。
在ORB的內(nèi)容與總線復(fù)位前相同時,就判斷傳輸數(shù)據(jù)的開頭地址與總線復(fù)位前是否相同(步驟S72)。并且,在相同時,就將數(shù)據(jù)傳輸?shù)脑O(shè)定返回到總線復(fù)位發(fā)生前的狀態(tài)(步驟S73)。即,根據(jù)在圖20的步驟S44存儲的總線復(fù)位發(fā)生時刻的已傳輸數(shù)據(jù)尺寸和在步驟S47存儲的數(shù)據(jù)段的內(nèi)容及數(shù)據(jù)段號碼等將數(shù)據(jù)傳輸?shù)脑O(shè)定返回到總線復(fù)位前的狀態(tài),用以可以從圖11的D5所示的位置(總線復(fù)位發(fā)生時刻的地方)再次開始進行數(shù)據(jù)傳輸。并且,使繼續(xù)標志返回到截止(步驟S74)。這時,如用圖17說明的那樣,為了使總線復(fù)位前已完成傳輸?shù)臄?shù)據(jù)不消失,不將目標的數(shù)據(jù)緩沖器上的數(shù)據(jù)清除。
在步驟S74之后,之所以不像步驟S76那樣預(yù)先存儲傳輸數(shù)據(jù)的開頭地址,是因為在從總線復(fù)位發(fā)生時刻的地方再次開始進行數(shù)據(jù)傳輸時直接使用總線復(fù)位發(fā)生前存儲的開頭地址的緣故。
在步驟S71判定ORB的內(nèi)容與總線復(fù)位前不同時或在步驟S72判定開頭地址與總線復(fù)位前不同時,就不進行數(shù)據(jù)傳輸?shù)脑俅伍_始處理并使繼續(xù)標志返回到截止,同時預(yù)先存儲傳輸數(shù)據(jù)的開頭地址(步驟S75、S76),即,這時就讀出的ORB全部作為新的ORB處理。
在步驟S75時,從最開始處理讀出的ORB,所以,與步驟S74不同,清除目標的數(shù)據(jù)緩沖器的數(shù)據(jù)。
6.電子儀器下面,說明包含本實施例的數(shù)據(jù)傳輸控制裝置的電子儀器的例子。
例如,圖23A表示作為電子儀器之一的打印機的內(nèi)部框圖,圖24A表示其外觀圖。CPU(微電腦)510進行系統(tǒng)全體的控制等。操作部511用于用戶操作打印機的部分??刂瞥绦蚣白煮w等存儲在ROM516中,RAM518起CPU510的工作區(qū)域的功能。顯示板519用于向用戶通知打印機的工作狀態(tài)。
通過PHY設(shè)備502、數(shù)據(jù)傳輸控制裝置500從電腦等對方節(jié)點傳輸來的印字數(shù)據(jù),通過總線504直接傳輸?shù)接∽痔幚聿?12。并且,印字數(shù)據(jù)由印字處理部512進行指定的處理,利用由印刷頭等構(gòu)成的印字部(用于輸出數(shù)據(jù)的裝置)514向紙上進行印字而輸出。
圖23B表示作為電子儀器之一的掃描儀的內(nèi)部框圖,圖24B表示前外觀圖。CPU520進行系統(tǒng)全體的控制等。操作部521是用于用戶操作掃描儀的部分。控制程序等存儲在ROM526中,RAM528起CPU520的工作區(qū)域的功能。
由光源、光電變換器等構(gòu)成的圖像讀取部(用于取入數(shù)據(jù)的裝置)522讀取原稿的圖像,讀取的圖像的數(shù)據(jù)由圖象處理部524進行處理。并且,處理后的圖像數(shù)據(jù)通過總線505直接傳輸給數(shù)據(jù)傳輸控制裝置500。數(shù)據(jù)傳輸控制裝置500通過將標題等附加到該圖像數(shù)據(jù)上,生成數(shù)據(jù)包,通過PHY設(shè)備502向電腦等對方節(jié)點傳送。
圖23C表示作為電子儀器之一的CD-RW驅(qū)動器的內(nèi)部框圖,圖24C表示其外觀圖。CPU530進行系統(tǒng)全體的控制等。操作部531是用于用戶操作CD-RW的部分??刂瞥绦虻却鎯υ赗OM536中,RAM538前CPU530的工作區(qū)域的功能。
利用由激光器、電機、光學(xué)系統(tǒng)等構(gòu)成的讀取/寫入部(用于讀取數(shù)據(jù)的裝置或用于存儲數(shù)據(jù)的裝置)533從CD-RW532中讀取的數(shù)據(jù)輸入信號處理部534,進行錯誤修正處理等指定的信號處理。并且,進行了信號處理的數(shù)據(jù)通過總線506直接傳輸給數(shù)據(jù)傳輸控制裝置500。數(shù)據(jù)傳輸控制裝置500通過將標題等附加到該數(shù)據(jù)上而生成數(shù)據(jù)包,并通過PHY設(shè)備502向電腦等對方節(jié)點傳送。
另一方面,通過PHY設(shè)備502、數(shù)據(jù)傳輸控制裝置500從對方節(jié)點傳輸來的數(shù)據(jù)通過總線506直接傳輸給信號處理部534。并且,由信號處理部534對該數(shù)據(jù)進行指定的信號處理,由讀取/寫入部533存儲到CD-RW532中。
在圖23A、圖23B和圖23C中,除了CPU510、520和530外,也可以另外設(shè)置數(shù)據(jù)傳輸控制裝置500的數(shù)據(jù)傳輸控制的CPU。
另外,在圖23A、圖23B和圖23C中,RAM501(相當于數(shù)據(jù)緩沖器)設(shè)置在數(shù)據(jù)傳輸控制裝置500的外部,但是,也可以將RAM501設(shè)置在數(shù)據(jù)傳輸控制裝置500的內(nèi)部。
如果將本實施例的數(shù)據(jù)傳輸控制裝置應(yīng)用于電子儀器中,在新的電子儀器與總線連接而發(fā)生總線復(fù)位時,也可以防止由于總線復(fù)位而引起的故障等。這樣,便可防止電子儀器發(fā)生誤動作。
另外,如果將本實施例的數(shù)據(jù)傳輸控制裝置應(yīng)用于電子儀器中,可以進行高速的數(shù)據(jù)傳輸。因此,用戶利用電腦等進行打印輸出的指示時,僅以很小的時間延遲就可完成。另外,在向掃描儀指示取入圖像之后,用戶便可看到以很小的時間延遲讀取的圖像。另外,可以高速地進行從CD-RW讀取數(shù)據(jù)和高速進行向CD-RW寫入數(shù)據(jù)。
另外,通過將本實施例的數(shù)據(jù)傳輸控制裝置應(yīng)用于電子儀器中,可以減輕在CPU上動作的固件的處理負擔,從而可以使用廉價的CPU和低速的總線。進而,由于實現(xiàn)了數(shù)據(jù)傳輸控制裝置的低成本化和小規(guī)?;?,所以,也可以實現(xiàn)電子儀器的低成本化小規(guī)模化。
作為可以應(yīng)用本實施例的數(shù)據(jù)傳輸控制裝置的電子儀器,除了上述電子儀器外,還可以考慮例如各種光盤驅(qū)動器(CD-ROM、DVD)、光磁盤驅(qū)動器(MO)、硬盤驅(qū)動器、TV、VRT、攝像機、音響機器、電話機、投影儀、電腦、電子記事簿、文字處理器等各種電子儀器。
本發(fā)明不限于本實施例,在本發(fā)明的主旨的范圍內(nèi)可以實施各種變形例。
例如,本發(fā)明的數(shù)據(jù)傳輸控制裝置的結(jié)構(gòu)特別希望是圖7所示的結(jié)構(gòu),但是,并不限定如此。
另外,在數(shù)據(jù)傳輸期間中是否發(fā)生了總線復(fù)位的判斷方法、指令的比較方法、數(shù)據(jù)傳輸?shù)脑俅伍_始的方法也特別希望是在本實施例中說明的方法,但是,并不限定如此。
另外,本發(fā)明對于IEEE1394中的總線復(fù)位推有用,但是,除此以外,至少如果是清除節(jié)點的拓樸信息的復(fù)位也可以應(yīng)用。
另外,本發(fā)明特別希望應(yīng)用于IEEE1394標準的數(shù)據(jù)傳輸,但是,并不限定如此。對于例如基于與IEEE1394相同思想的標準或發(fā)展了IEEE1394的標準數(shù)據(jù)傳輸,本發(fā)明也可以應(yīng)用。
權(quán)利要求
1.一種在與總線連接的多個節(jié)點間進行數(shù)據(jù)傳輸用的數(shù)據(jù)傳輸控制裝置,其特征在于具有在與對方節(jié)點間從開始進行數(shù)據(jù)傳輸?shù)浇Y(jié)束的期間的數(shù)據(jù)傳輸期間中判斷是否發(fā)生了清除節(jié)點的拓樸信息的復(fù)位的判斷單元、將在該復(fù)位發(fā)生前從對方節(jié)點傳輸來的數(shù)據(jù)傳輸操作要求用的第1指令數(shù)據(jù)包的內(nèi)容與在該復(fù)位發(fā)生后從對方節(jié)點傳輸來的數(shù)據(jù)傳輸操作要求用的第2指令數(shù)據(jù)包的內(nèi)容進行比較的指令比較單元和在判定在上述數(shù)據(jù)傳輸期間中發(fā)生了清除節(jié)點的拓樸信息的復(fù)位并且判定上述第1和第2指令數(shù)據(jù)包的內(nèi)容相同時就從復(fù)位發(fā)生時刻的數(shù)據(jù)傳輸?shù)牡胤皆俅伍_始進行數(shù)據(jù)傳輸?shù)脑俅伍_始單元。
2.按權(quán)利要求1所述的數(shù)據(jù)傳輸控制裝置,其特征在于上述判斷單元在清除節(jié)點的拓樸信息的復(fù)位發(fā)生時刻,數(shù)據(jù)傳輸操作要求用的上述第1指令數(shù)據(jù)包是在處理中并且已在進行該第1指令數(shù)據(jù)包的數(shù)據(jù)傳輸而未將數(shù)據(jù)傳輸結(jié)束的狀態(tài)傳輸?shù)綄Ψ焦?jié)點時,就判定在上述數(shù)據(jù)傳輸期間中發(fā)生了該復(fù)位。
3.按權(quán)利要求1所述的數(shù)據(jù)傳輸控制裝置,其特征在于上述判斷單元判定在數(shù)據(jù)傳輸期間中發(fā)生了清除節(jié)點的拓樸信息的復(fù)位時,就將表示可以繼續(xù)再次開始進行數(shù)據(jù)傳輸?shù)睦^續(xù)標志設(shè)定為通過。
4.按權(quán)利要求1所述的數(shù)據(jù)傳輸控制裝置,其特征在于具有在該復(fù)位發(fā)生后到再次開始進行數(shù)據(jù)傳輸?shù)钠陂g存儲用于特定再次開始進行數(shù)據(jù)傳輸?shù)牡刂返男畔⒑蛿?shù)據(jù)傳輸操作要求用的上述第1指令數(shù)據(jù)包的內(nèi)容的指令存儲單元。
5.按權(quán)利要求1所述的數(shù)據(jù)傳輸控制裝置,其特征在于上述指令比較單元將在清除節(jié)點的拓樸信息的復(fù)位發(fā)生之后從對方節(jié)點傳輸來的指令數(shù)據(jù)包中最初傳輸來的數(shù)據(jù)傳輸操作要求用的指令數(shù)據(jù)包作為上述第1指令數(shù)據(jù)包的比較對象的上述第2指令數(shù)據(jù)包。
6.按權(quán)利要求1所述的數(shù)據(jù)傳輸控制裝置,其特征在于在雖然將數(shù)據(jù)傳輸結(jié)束的狀態(tài)傳輸?shù)搅藢Ψ焦?jié)點,但是由于清除節(jié)點的拓樸信息的復(fù)位發(fā)生而未從對方節(jié)點傳送回來確認信息時,就轉(zhuǎn)移到數(shù)據(jù)傳輸不可狀態(tài)。
7.按權(quán)利要求1所述的數(shù)據(jù)傳輸控制裝置,其特征在于對于從上層的設(shè)備傳輸來的傳輸數(shù)據(jù)中在清除節(jié)點的拓樸信息的復(fù)位發(fā)生時刻還未向?qū)Ψ焦?jié)點傳輸?shù)膫鬏敂?shù)據(jù)不廢棄,而是保持。
8.按權(quán)利要求1所述的數(shù)據(jù)傳輸控制裝置,其特征在于上述復(fù)位是在IEEE1394的標準中定義的總線復(fù)位。
9.一種包含用于控制在與權(quán)利要求1~8的任一權(quán)項所述的數(shù)據(jù)傳輸控制裝置之間的數(shù)據(jù)傳輸?shù)某绦虻挠嬎銠C可以使用的信息存儲媒體,其特征在于在數(shù)據(jù)傳輸期間中發(fā)生了清除節(jié)點的拓樸信息的復(fù)位時,作成與在該復(fù)位發(fā)生前傳輸來的數(shù)據(jù)傳輸操作要求用的第1指令數(shù)據(jù)包的內(nèi)容相同的第2指令數(shù)據(jù)包,包含用于要求向數(shù)據(jù)傳輸控制裝置進行傳輸?shù)某绦颉?br>
10.一種電子儀器,其特征在于包含權(quán)利要求1~8的任一權(quán)項所述的數(shù)據(jù)傳輸控制裝置、對通過上述數(shù)據(jù)傳輸控制裝置和總線從對方節(jié)點接收的數(shù)據(jù)進行指定的處理的裝置和用于輸出或存儲進行了處理的數(shù)據(jù)的裝置。
11.一種電子儀器,其特征在于包含權(quán)利要求1~8的任一權(quán)項所述的數(shù)據(jù)傳輸控制裝置、對通過上述數(shù)據(jù)傳輸控制裝置和總線向?qū)Ψ焦?jié)點傳輸?shù)臄?shù)據(jù)進行指定的處理的裝置和用于取入進行了處理的數(shù)據(jù)的裝置。
全文摘要
目的旨在提供可以解決發(fā)生清除節(jié)點的拓樸信息的復(fù)位時發(fā)生的問題的數(shù)據(jù)傳輸控制裝置、信息存儲媒體和電子儀器。在IEEE1394標準的數(shù)據(jù)傳輸控制裝置中,在數(shù)據(jù)傳輸期間中發(fā)生了總線復(fù)位并且總線復(fù)位前后的ORB的內(nèi)容相同時,就從總線復(fù)位發(fā)生時刻的地方再次開始進行數(shù)據(jù)傳輸,防止打印機發(fā)生重印問題。在數(shù)據(jù)傳輸期間中發(fā)生了總線復(fù)位時,就使繼續(xù)標志通過。在總線復(fù)位后將包含最初傳輸來的印刷指令的指令塊ORB作為總線復(fù)位前的ORB的比較對象。在由于總線復(fù)位而未從起動器傳送回ACK時,就轉(zhuǎn)移到斷開狀態(tài)。在從掃描儀傳輸來的傳輸數(shù)據(jù)中,在總線復(fù)位發(fā)生時刻,對于還未傳輸?shù)狡饎悠鞯膫鬏敂?shù)據(jù)不廢棄而預(yù)先保持。
文檔編號H04L12/64GK1348648SQ00806587
公開日2002年5月8日 申請日期2000年12月19日 優(yōu)先權(quán)日1999年12月20日
發(fā)明者松永浩輔, 金井裕之, 藤田信一郎 申請人:精工愛普生株式會社