JP4509461B2 - データ処理装置、データ入出力装置およびデータ入出力方法 - Google Patents

データ処理装置、データ入出力装置およびデータ入出力方法 Download PDF

Info

Publication number
JP4509461B2
JP4509461B2 JP2002183489A JP2002183489A JP4509461B2 JP 4509461 B2 JP4509461 B2 JP 4509461B2 JP 2002183489 A JP2002183489 A JP 2002183489A JP 2002183489 A JP2002183489 A JP 2002183489A JP 4509461 B2 JP4509461 B2 JP 4509461B2
Authority
JP
Japan
Prior art keywords
data
buffer
processing unit
cpu
data processing
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
JP2002183489A
Other languages
English (en)
Other versions
JP2003091513A (ja
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
Priority to JP2002183489A priority Critical patent/JP4509461B2/ja
Publication of JP2003091513A publication Critical patent/JP2003091513A/ja
Application granted granted Critical
Publication of JP4509461B2 publication Critical patent/JP4509461B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、複数のCPUを備えたデータ処理装置におけるCPU間のデータ交換の技術に関するものである。
【0002】
【従来の技術】
複数のCPUが搭載されたデータ処理装置においては、それらのCPUの間でデータを交換する必要があるケースがある。たとえば、複数のCPUの間でコマンドデータを交換したり、処理すべきデータを交換するケースがある。
【0003】
【発明が解決しようとする課題】
データを転送する方法としてはバスで接続することが一般的である。しかしながら、複数のCPUでバスを共用すると、一方のCPUがバスを使用しているときに他方のCPUはバスを使用できないので効率が悪く、複数のCPUを採用しているメリットがなくなる。このため、レジスタやメモリなどのバッファを用いてデータ交換を行なうことが望ましい。この場合でも、それぞれのCPUが同時にバッファにデータを書き込まないようにしたり、一方のCPUがバッファに書き込んだデータを他方のCPUが読み込まないうちに一方のCPUが次のデータを書き込んだり、あるいは、他方のCPUがデータを書き込んだりしないようにする必要がある。したがって、バッファを共用している複数のCPUに対しては、適当なタイミングでバッファに対しデータの入出力を行なわなければならず、バッファを共用しているCPU同士がデータ交換に関して協調制御される必要がある。
【0004】
このため、複数のCPUの間でタイミングを調整するための制御信号を交換する必要があり、また、それに基づいて、双方のCPUが望むタイミングでデータの入出力を行うように各CPUのプログラムを構成する必要がある。したがって、プログラムは複雑となり、プログラムを作成する際に考慮すべきファクタが増大する。さらに、データの入出力が競合するような状況になるとデータが喪失しないように、相手のCPUの処理を待つ必要も生ずる可能性があるので、処理速度も低下する可能性が高い。
【0005】
そこで、本発明においては、このような複数のCPUの間でのデータ交換を高速で行えると共に、各CPUのプログラムの作成も容易なデータ処理装置およびデータ入出力方法を提供することを目的としている。
【0006】
【課題を解決するための手段】
このため、本発明においては、データを入力および/または出力可能なプリンタ機構と、
データを入力および/または出力可能なスキャナー機構と、前記プリンタ機構を制御する第1のCPUを備えた第1のデータ処理ユニットと、前記スキャナー機構を制御する第2のCPUを備えた第2のデータ処理ユニットと、これら第1および第2のデータ処理ユニットの間でデータ交換可能な通信手段とを有し、この通信手段は、前記第1のデータ処理ユニットから前記第2のデータ処理ユニットにデータを転送するために利用される第1の記憶手段と、前記第2のデータ処理ユニットから前記第1のデータ処理ユニットにデータを転送するために利用される第2の記憶手段とを有する複合装置と、当該複合装置の前記第2のデータ処理ユニットに接続されたホスト装置とからなる、データ入出力装置であって、
前記第1の記憶手段は、前記第1のデータ処理ユニットから前記第2のデータ処理ユニットに第1のバルクデータを転送する第1のバッファと、コマンドデータを転送する第2のバッファとを備え、前記第2の記憶手段は、前記第2のデータ処理ユニットから前記第1のデータ処理ユニットに第2のバルクデータを転送する第3のバッファと、コマンドデータを転送する第4のバッファとを備え、前記通信手段は、更に、前記第1のバッファに前記第1のバルクデータが書き込まれると前記第2のCPUに読み出し許可の割込み信号を送り、前記第1のバッファの前記第1のバルクデータが読み出されると前記第1のCPUに書き込み許可の割込み信号を送る第1の管理手段と、前記第2のバッファに前記コマンドデータが書き込まれると前記第2のCPUに読み出し許可その旨の割込み信号を送り、前記第2のバッファの前記コマンドデータが読み出されると前記第1のCPUに書き込み許可の割込み信号を送る第2の管理手段と、前記第3のバッファに前記第2のバルクデータが書き込まれると前記第1のCPUに読み出し許可その旨の信号を送り、前記第3のバッファの前記第2のバルクデータが読み出されると前記第2のCPUに書き込み許可の割込み信号を送る第3の管理手段と、前記第4のバッファにコマンドデータが書き込まれると前記第1のCPUに読み出し許可の割込み信号を送り、前記第4のバッファのコマンドデータが読み出されると前記第2のCPUに書き込み許可の割込み信号を送る第4の管理手段とを備え、前記第1のバッファ及び第2のバッファと、第3のバッファ及び第4のバッファとは、記憶容量を異ならせて、前記第1および第2のCPUは、前記読み出し許可の割込み信号をデコードすることによって、転送されるデータの種別を判別し、前記第1のバルクデータは、前記プリンタ機構の状態を通知するデータであり、前記第2のバルクデータは、前記スキャナー機構で読み取った画像データ又は前記ホスト装置からの印刷データであることを特徴とする。
このようなアーキテクチャを採用することにより、第1のデータ処理ユニットから第2のデータ処理ユニットにデータを転送するときには第1の記憶手段を用い、第2のデータ処理ユニットから第1のデータ処理ユニットにデータを転送するときには第2の記憶手段を用いる本発明のデータ入出力方法を採用できる。
【0007】
このデータ処理装置であると、第1および第2のCPUの間で交換するデータの入出力が競合した場合でも、同時に出力したり、同時に入力することは可能となる。また、転送されたデータを読み出さなくても、相手となるCPUに対しデータを出力することが可能となり、データ転送の自由度が大幅に向上する。このため、第1のバッファにバルクデータが書き込まれると第2のCPUにその旨の割込み信号を送り、前記第1のバッファのバルクデータが読み出されると第1のCPUにその旨の割込み信号を送る第1の管理手段あるいは工程と、第2のバッファにコマンドデータが書き込まれると第2のCPUにその旨の割込み信号を送り、前記第2のバッファのコマンドデータが読み出されると第1のCPUにその旨の割込み信号を送る第2の管理手段あるいは工程と、第3のバッファにバルクデータが書き込まれると第1のCPUにその旨の信号を送り、前記第3のバッファのバルクデータが読み出されると第2のCPUにその旨の割込み信号を送る第3の管理手段あるいは工程と、第4のバッファにコマンドデータが書き込まれると第1のCPUにその旨の割込み信号を送り、前記第4のバッファのコマンドデータが読み出されると第2のCPUにその旨の割込み信号を送る第4の管理手段あるいは工程とを設け、各管理手段あるいは工程で各CPUに送られてくるその旨の割込み信号に基づき、第1のバッファ、第2のバッファ、第3のバッファおよび第4のバッファに所望のデータを入出力することにより第1および第2のCPUの間でデータを交換することができる。したがって、双方のCPUの処理動作を協調制御しなくても、通信手段の第1のバッファ、第2のバッファ、第3のバッファおよび第4のバッファに対してデータを入力あるいは出力することにより双方のCPUの間でデータを交換することができる。このため、双方のCPUのプログラミングは簡易になり、また、双方のCPUの処理を待たなくてもデータを入出力できるので、処理速度を向上できる。
【0008】
バルクデータはコマンドデータと比べるとデータサイズが大きいので、バルクデータを転送するための第1および第3のバッファは記憶容量の大きなバッファとし、一方、コマンドデータを転送する第2および第4のバッファは記憶容量の小さなバッファとすることが望ましい。
【0009】
第1および第2の記憶手段に、用途と容量の異なるバッファを設け、転送するデータの種別に応じて使い分けることにより、各データ処理ユニットのCPUでは、データが転送されたバッファを判別するだけで転送されたデータの種別を認識できる。したがって、第1のバッファにバルクデータが書き込まれると第2のCPUにその旨の割込み信号を送り、第1のバッファのバルクデータが読み出されると第1のCPUにその旨の割込み信号を送る第1の管理手段または工程と、第2のバッファにコマンドデータが書き込まれると第2のCPUにその旨の割込み信号を送り、第2のバッファのコマンドデータが読み出されると第1のCPUにその旨の割込み信号を送る第2の管理手段または工程と、第3のバッファにバルクデータが書き込まれると第1のCPUにその旨の割込み信号を送り、第3のバッファのバルクデータが読み出されると第2のCPUにその旨の割込み信号を送る第3の管理手段または工程と、第4のバッファにコマンドデータが書き込まれると第1のCPUにその旨の割込み信号を送り、第4のバッファのコマンドデータが読み出されると第2のCPUにその旨の割込み信号を送る第4の管理手段または工程とを設けることにより、各CPUは、送信元のCPUから情報を得なくても、また、転送されたデータをすべてCPUで解析しなくても、転送されたデータの種類を判別できる。このため、第2および第4のバッファにより転送されたコマンドデータについては解釈するとしても、第1および第3のバッファにより転送されたバルクデータについてはCPUで解釈する処理を省き、コマンドデータなどで指定された処理をバルクデータに施すことができる。
【0010】
したがって、第1および第2のデータ処理ユニットの間で交換される全てのデータについて各々のデータ処理ユニットが解釈する必要がなくなるので、データ転送のパフォーマンスを向上できる。それと共に、転送されたデータをすべて解釈しなくて良いので、転送先のCPUの負荷を低減することができ、トータルの処理速度をさらに向上することができる。
【0011】
バルクデータの転送が容易に行うことができる本発明のデータ処理装置の好適な例は、データを入力および/または出力可能な第1のデータ入出力手段と、データを入力および/または出力可能な第2のデータ入出力手段とを有するデータ入出力装置である。たとえば、POSシステムの分野では、チェックに印刷するプリンタと、印刷したチェックの画像を取得するスキャナとが複合された装置が検討されている。そして、本発明のデータ入出力装置であると、プリンタおよびスキャナを制御するCPUをそれぞれ備えたデータ処理ユニットの間で、プリンタあるいはスキャナのステータスや各メカ部分を動作させるための動作コマンドデータや、プリンタ用の印刷データやスキャナで読み取ったチェックの画像データなどのバルクデータを非常に効率よく交換でき、各々のCPUの処理効率も確保できる。
【0012】
第1および/または第2のデータ処理ユニットにより第1のバッファにバルクデータを入力したり出力したりする処理、また、第3のバッファにバルクデータを入力したり出力したりする処理はDMA転送を用いることによりさらに高速に処理することができる。DMAコントローラとしては、第1または第2のCPUを用いても良く、あるいは、第1または第2のデータ処理ユニットにDMACを設けておいても良い。第1または第2のデータ処理ユニットの一方に外部インターフェイスが設けられている場合は、これらのバッファを用いて第1または第2の入出力手段で入出力されたデータを外部インターフェイスを介して入出力することができる。第2のデータ処理ユニットに外部インターフェイスがある場合は、第1のデータ処理ユニットから第1のバッファにバルクデータをDMA転送し、第1のバッファから外部インターフェイスへバルクデータをDMA転送することにより、第1のデータ処理ユニットで管理するデータ、すなわち、第1のデータ入出力手段で得られたデータを外部インターフェイスを介して出力できる。また、外部インターフェイスから第3のバッファにバルクデータをDMA転送し、第3のバッファからバルクデータを第1のデータ処理ユニットへDMA転送することにより、第1のデータ処理ユニットで管理するデータ、すなわち、第1のデータ入出力手段で出力するデータを外部インターフェイスを介して入力できる。
【0013】
第1のデータ処理ユニットに外部インターフェイスが設けられている場合も同様であり、外部インターフェイスから第1のバッファにバルクデータをDMA転送し、第1のバッファからバルクデータを第2のデータ処理ユニットへDMA転送することにより、第2のデータ入出力手段に外部インターフェイスを介してデータを供給できる。また、第2のデータ処理ユニットから第3のバッファにバルクデータをDMA転送し、第3のバッファから外部インターフェイスへバルクデータをDMA転送することにより、第2の入出力手段で得られたデータを外部インターフェイスを介して出力できる。さらに、外部インターフェイスを設けた場合は、送信または受信バッファと、第1のバッファまたは第3のバッファを同一の記憶容量とすることにより、外部インターフェイスに対する制御と、通信手段のこれらのバッファに対する制御を同じように設計することができる。
【0014】
したがって、第1のデータ入出力手段を、用紙に印刷する手段、たとえばプリンタとし、第2のデータ入出力手段を、用紙の画像データを取得する手段、たとえばスキャナとすることにより、先に述べたPOSシステムでチェックを取り扱うのに適した複合装置を提供できる。
【0015】
【発明の実施の形態】
以下に図面を参照して本発明をさらに詳しく説明する。図1に本発明に係るデータ処理装置、およびそれを備えたデータ入出力装置を示してある。本例のデータ入出力装置10は、POSシステムにおいてパーソナルチェックを取り扱うのに適したスキャナ付きプリンタ(または、POSプリンタ、複合装置)である。この複合装置10は、第1のデータ入出力手段として、チェックの表面に使用日付や使用金額などを印刷するプリンタ機構6と、第2のデータ入出力手段として、使用日付などが印刷されたチェックの画像データを取得するスキャナ機構7を備えている。さらに、これらのプリンタ機構6とスキャナ7機構とを制御する本発明に係るデータ処理装置3を備えている。このデータ処理装置3は、プリンタ機構6を制御する第1のデータ処理ユニット1、およびスキャナ機構7を制御する第2のデータ処理ユニット2を備えており、さらに、これら第1のデータ処理ユニット1と第2のデータ処理ユニット2との間のデータ交換を行う通信ユニット4とを有している。
【0016】
本例の複合装置10は、POSマシンあるいはホストマシンとなるパーソナルコンピュータ5の周辺装置として稼動する。このため、データ処理装置3は、ホスト5との間でデータの送受信を行うインターフェイスを備えており、プリンタ機構6およびスキャナ機構7を制御するためのコマンドデータをホスト5から受信すると共に、プリンタ機構6で印刷するための印刷データをホスト装置5から取得でき、一方、スキャナ機構7で生成された画像データをホスト装置5に送信することができる。そのためのインターフェイス19および29が、第1のデータ処理ユニット1および第2のデータ処理ユニット2の各々に設けられており、いずれか一方のインターフェイスが選択されて利用される。
【0017】
第1のデータ処理ユニット1は、プリンタ機構6を制御するためのメインCPU11と、メインCPU11の実行用のプログラムが記録されているプログラムROM13と、メインCPU11の作業領域やデータを記録する領域となるSRAMやDRAMなどのRAM12と、プリンタ機構6をメインCPU11の下で制御するための駆動回路などを含んだゲートアレイ(G/A)14と、ホスト装置5との外部インターフェイス(UIB1)19とを有している。さらに、メインCPU11、プログラムROM13、RAM12およびゲートアレイ14がデータバスおよびアドレスバスを含むバス16を介して接続されている。
【0018】
一方、第2のデータ処理ユニット2は、スキャナ機構7を制御するサブCPU21と、サブCPU21の実行用のプログラムが記録されているプログラムROM23と、サブCPU21の作業領域やデータを記録する領域となるSRAMやDRAMなどのRAM22と、ホスト装置5との外部インターフェイス(UIB2)29と、この外部インターフェイス29をコントロールするUSBコントローラなどのインターフェイス用のコントローラ24と、スキャナ機構7をサブCPU21の下で制御する駆動回路などを含むゲートアレイ(G/A)25とを有している。さらに、サブCPU21、プログラムROM23、RAM22、ゲートアレイ25およびコントローラ24がデータバスおよびアドレスバスを含むバス26を介して接続されている。
【0019】
これらのデータ処理ユニット2および3の間のデータ交換を行う通信ユニット4は、第1のデータ処理ユニット1のバス16と第2のデータ処理ユニット2のバス26とが接続された第1の記憶部31と第2の記憶部32とを備えている。第1の記憶部31は、第1のデータ処理ユニット1から第2のデータ処理ユニット2にデータを転送するために利用され、第2の記憶部32は、第2のデータ処理ユニット2から第1のデータ処理ユニット1にデータを転送するために利用される。
【0020】
第1の記憶部31は、さらに、第1のデータ処理ユニット1から第2のデータ処理ユニット2を介してプリンタ機構6のステータス情報などのバルクデータを転送する4バイトの第1のバッファ41と、プリンタ機構6のエラーコマンドデータやホスト5から受信したスキャナ機構7のコマンドデータを転送する1バイトの第2のバッファ42を備えている。第2の記憶部32は、第2のデータ処理ユニット2を介してホスト5から第1のデータ処理ユニット1にプリンタ機構6で印刷するためのバルクデータを転送する8バイトの第3のバッファ43と、ホスト5からプリンタ機構のコマンドデータを転送する1バイトの第4のバッファ44とを備えている。
【0021】
図2に通信ユニット4の概略構成を示してある。本例の通信ユニット4は、第1および第2の記憶部31および32を備えた通信機能部33と、第1のデータ処理ユニット1のバス16とのバスインターフェイス34と、第2のデータ処理ユニット2のバス26とのバスインターフェイス35とを備えており、第1および第2の記憶部31の各バッファ41〜44はバスインターフェイス34および35を介して第1のデータ処理ユニット1のバス16と第2のデータ処理ユニット2のバス26に接続されている。さらに、バスインターフェイス34を介して、メインCPU11から通信機能部33に対し、バッファ41〜44にデータを入出力するためのアドレス、バッファ41〜44のいずれかを選択するチップセレクト信号CE、選択されたバッファに対してデータを入出力するためのライト信号WRおよびリード信号RDが供給され、また、通信機能部33からメインCPU11に対しライトイネーブル示す割込み信号(φ2、φ4)やリードイネーブルを示す割込み信号(φ6、φ8)が出力される。一方、バスインターフェイス35を介して、サブCPU21から通信機能部33に対し、バッファ41〜44にデータを入出力するためのアドレス、バッファ41〜44のいずれかを選択するチップセレクト信号CE、選択されたバッファに対してデータを入出力するためのライト信号WRおよびリード信号RDが供給され、また、通信機能部33からサブCPU21に対しライトイネーブル示す割込み信号(φ5、φ7)やリードイネーブルを示す割込み信号(φ1、φ3)が出力される。
【0022】
各々のバッファ41〜44は、これらの信号に基づいてデータを記憶するために、データを記憶するメモリブロック51、71、61および75と、信号に基づいてこれらのメモリブロックを管理する管理ブロック59、72、69および76を備えている。
【0023】
図3に第1のバッファ41のさらに詳細な構成を示してある。第1のバッファ41は、4個の8ビットのフリップフロップからなるメモリブロック51と、このメモリブロック51を管理する管理ブロック59を備えている。管理ブロック59は、メモリブロック51に対するリードポインタやライトポインタの指定およびメモリブロック51に格納されたデータ数をカウントする機能を備えたコントローラ52と、このコントローラ用の各種の設定値またはパラメータを第1のデータ処理ユニット1のバス16を介して設定可能なフリップフロップ54とを備えている。また、コントローラ52の制御の下でメインCPU11に対する書き込みを許可する割込み信号φ2、およびサブCPU21に対する読み出しを許可する割込み信号φ1を出力する割込み発生シーケンサ53と、メインCPU11からメモリブロック51へ書き込むデータを一時的に保持するフリップフロップ55と、メインCPU11からのチップセレクト信号CEによりバス16に含まれるアドレスバス16aに出力されたアドレスをデコードしてアクティブ信号ACT1を出力する書き込み側のアドレスデコーダ56と、サブCPU21からのチップセレクト信号CEによりバス26に含まれるアドレスバス26aに出力されたアドレスをデコードしてアクティブ信号ACT2を出力する読み出し側のアドレスデコーダ57とを備えている。
【0024】
したがって、管理ブロック59では、メモリブロック51に対するデータのリード/ライトがフリップフロップ54の設定値にしたがってコントローラ52により制御される。図4に、その制御動作をフローチャートを用いて示す。また、図5に、そのタイミングチャートを示す。まず、ステップ101において、コントローラ52のデータカウンタがゼロ、すなわち、メモリブロック51にデータが格納されていない状態で、アドレスデコーダ56からのアクティブ信号ACT1がコントローラ52に入力され、メインCPU11からのデータの書き込み要求が確認されると、ステップ102において、データカウンタがフルでないことを確認し、ステップ103でメモリブロック51に1バイトのデータが書き込まれる(時刻t1またはt9)。そして、ステップ104においてデータカウンタをアップさせ、ステップ105においてエンプティフラグを解除する。メインCPU11からの書き込みが継続し、データカウンタがフルになるまで、1バイト単位でメモリブロック51に書き込まれる(時刻t10、t11およびt12)。
【0025】
データカウンタがフルになるとメインCPU11は書き込めなくなるので、時刻t13においてメインCPU11からスタートトリガ(MC_SND_TRG)φ10が出力される。ステップ106でそのトリガφ10があると、ステップ107において、サブCPU21に対して、リード許可の割込み信号(MCIF_WR_INT)φ1が出力される(時刻t14)。割込み要求φ1が出力された後、ステップ108において、アドレスデコーダ57からのアクティブ信号ACT2に基づいてサブCPU21からのデータの読み出し要求があると、ステップ109において、データの読み出しが行なわれる(時刻t15)。読み出しが1バイト単位で行なわれると、ステップ110において、データカウンタをダウンさせ、データカウンタがゼロになるまでステップ112において、サブCPU21に対して割込み信号(MCIF_WR_INT)φ1を出力し(時刻t16、t18、t20)し、サブCPU21によりデータが読み出せるようにする(時刻t17、t19、t21)。
【0026】
ステップ111において、データカウンタがゼロになると、ステップ113において、メインCPU11に対して、書き込み許可の割込み信号(SCIF_RD_INT)φ2が出力され(時刻t22)、ステップ114において、エンプティフラグがセットされる。このため、メインCPU11からデータが再び書き込める状態になる。
【0027】
また、データカウンタがフルになっていない状態、たとえば、時刻t1およびt2に書き込みがあっても、メインCPU11からのスタートトリガ(MC_SND_TRG)φ10が確認される(時刻t3)と、上述したステップ107以降の処理が行なわれる。すなわち、サブCPU21に対する読み出し許可の割込み信号φ1が出力され(時刻t4)、サブCPU21によるデータの読み出しが行われる。そして、読み出しが終了すると、データカウンタがゼロになるので、メインCPU11に対して、再び、書き込み許可の割込み要求φ2が出力され(時刻t8)、メインCPU11からデータを書き込める状態になる。
【0028】
図6に第3のバッファ43の詳細を示してある。第3のバッファ43は、8バイトのフリップフロップからなるメモリブロック61と、これを管理する管理ブロック69を備えている。管理ブロック69は、リードポインタやライトポインタの指定およびメモリブロック61に格納されたデータ数をカウントする機能を備えたコントローラ62と、このコントローラ用の各種の設定値またはパラメータを第2のデータ処理ユニット2の内部バス26を介して設定可能なフリップフロップ64と、コントローラ62の制御の下にメインCPU11に対し読み出しを許可する割込み信号φ6およびサブCPU21に対し書き込みを許可する割込み信号φ5を出力する割込み発生シーケンサ63と、メインCPU11からメモリブロック61へ書き込むデータを一時的に保持するフリップフロップ65と、サブCPU21からのチップセレクト信号CEによりバス26に含まれるアドレスバス26aに出力されたアドレスをデコードしてアクティブ信号ACT3を出力する書き込み側のアドレスデコーダ66と、メインCPU11からのチップセレクト信号CEによりバス16に含まれるアドレスバス16aに出力されたアドレスをデコードしてアクティブ信号ACT4を出力する読み出し側のアドレスデコーダ67とを備えている。
【0029】
第1のバッファ41ではメインCPU11によるデータの書き込みはデータカウンタがゼロのときにのみ行なわれるようになっていたのに対し、第3のバッファ43ではデータカウンタがゼロ以外のときにもサブCPU21によるデータの書き込みを行うことができる。このため、第3のバッファ43は、ライトポインタカウンタ68aおよびリードポインタカウンタ68bを備え、これらのカウンタ68aおよび68bがコントローラ62に制御されることにより、メモリブロック61に書き込まれたデータが書き込まれた順番で読み出され、バッファ全体としては、一つのFIFO(First In First Out)が構成される。
【0030】
図7に管理ブロック69の動作をフローチャートを用いて示してある。また、図8に、タイミングチャートを示してある。第2のデータ処理ユニット2のインターフェイス29を介してホスト5からデータを受信し、第1のデータ処理ユニット1に第3のバッファ43を介して供給するケースを考える。本例のデータ処理装置3では、CPU11および21がDMAコントローラ11a、21aとしても機能し、データをDMA転送することができる。もちろん、これらのCPUに加えてDMACを各々のバス16および26に設けても良い。まず、管理ブロック69が、サブCPU21がDMAリクエストの許可信号(DMA_EN)φ13を受け取ると(時刻t31)、ステップ122において、書き込み許可の割込み信号φ5(S_DREQ)をサブCPU21に対してアサートする(時刻t32)。ステップ123において、サブCPU21からチップセレクト信号CEおよびアドレスを第3のバッファ43に出力することによりデータの書き込み要求があると、ステップ124でデータカウンタがフルでなければ、ステップ125においてデータがメモリブロック61に書き込まれる(時刻t33)。この時に、サブCPU21に対してDMAリクエストをネゲートする。データが書き込まれると、ステップ126でデータカウンタをアップし、ステップ127において、ライトポインタをアップする。そして、ステップ128において、エンプティフラグを解除し、ステップ130において、メインCPU11に対して読み出し許可の割込み信号φ6を出力する(時刻t34)。この割込み信号φ6は、ステップ129において、データカウンタが「1」、すなわち、メモリブロック61に1バイトのデータが書き込まれた時点で出力される。
【0031】
ステップ123で、サブCPU21からのデータの書き込み要求がなくなり、ステップ131で、割込み信号φ6を受けたメインCPU11からチップセレクト信号CEおよびアドレスを第3のバッファ43に出力することによりデータの読み出し要求があると、メモリブロック61のデータが読み出される。一方、サブCPU21からデータを書き出している途中でも、メインCPU11から読み出しの要求があると、メインCPU11がデータを読み出せるようにする機能を備えている(時刻t35)。なお、サブCPU21に対してDMAリクエストがネゲートされていても、データカウンタがフルでなければ、サブCPU21からのデータの書き込みは中断しない。
【0032】
ステップ131において、メインCPU11から読み出し要求があり、ステップ132でメモリブロック61が空でないことが確認されると、コントローラ62およびリードポインタカウンタ68bによりメモリブロック61の所定のポインタが指定され、ステップ133において、メインCPU11のDMA機能によりデータが読み出される(時刻t36)。データが読み出されると、ステップ134において、データカウンタをダウンし、ステップ135において次に読み出すべきポインタの設定を行なう。本例では、1バイト単位でデータが読みされ、データの読み出しが終了するたびにメインCPU11に対して割込み要求φ6が出力される。したがって、時刻t36でデータの読み出しがあると、時刻t37で再び割込み要求φ6がメインCPU11に対して出力され、時刻t38でデータが読み出される。
【0033】
このデータの読み出しが終了すると、ステップ132において、データカウンタがゼロになるので、ステップ136でサブCPU21に対して書き込み許可の割り込み信号φ5が出力され、φ5が再びアサートされる(時刻t38)。その後、時刻t39、t41、t42およびt47で1バイトのデータがメモリブロック61にそれぞれ書き込まれ、データが書き込まれるたびにデータカウンタやライトポインタの設定が行なわれる。そして、時刻t39で1回目のデータの書き込みが終わると、時刻t40でサブCPU21に対してφ5をネゲートし、メインCPU11に対しては割込み要求φ6を出力する。この割込み要求φ6により、時刻t43でデータの読み出しが行なわれ、この後は、データカウンタがゼロになるまで、割込み要求φ6が出力され(時刻t44、t46およびt49)、データの読み出しが繰り返される(時刻t45、t48およびt50)。データカウンタがゼロになると、再びφ5をサブCPU21に対してアサートし(時刻t51)、上記の処理を繰り返すことにより、第1のCPU11の側に全てのデータが転送される。
【0034】
コマンドデータ用の第2のバッファ42および第4のバッファ44は、1バイト(8ビット)のメモリブロック71および75をそれぞれ備えており、それらのメモリブロックを各々管理する管理ブロック72および76を備えている(図2参照)。そして、管理ブロック72および76は、上記と同様にコントローラと割込み発生シーケンサを備えている。このため、第2のバッファ42の管理ブロック72からはメインCPU11に対して書き込みを許可する割込み信号φ4と、サブCPU21に対して読み出しを許可する割込み信号φ3が出力され、第4のバッファ44の管理ブロック76からはサブCPU21に対して書き込みを許可する割込み信号φ7と、メインCPU11に対して読み出しを許可する割込み信号φ8が出力される。
【0035】
本例のデータ処理装置3は、通信ユニット4に設けられた複数のバッファ41〜44を利用して第1のデータ処理ユニット1および第2のデータ処理ユニット2の間でデータの交換が行なわれる。そして、これらのバッファ41〜44は、メインCPU11からサブCPU21に対してデータを転送するバッファ41および42と、サブCPU21からメインCPU11に対してデータを転送するバッファ43および44に特化しているので、これらのCPU11および21の間で交換するデータの入出力が競合した場合でも、同時に出力したり、同時に入力することが可能となる。また、転送相手のCPUから転送されたデータを読み出さなくても、転送相手のCPUに対しデータを出力することが可能となり、データ転送の自由度が大幅に向上する。
【0036】
このため、各バッファにデータが書き込まれて読み出し可能になったか否か、あるいはデータが読み出されて書き込み可能になったか否かを、書き込み側のCPUあるいは読み出し側のCPUにそれぞれ通知するだけでメインCPU11およびサブCPU21の間でデータを交換することができる。たとえば、上記では、バッファ41においては、管理ブロック59からサブCPU21に対して読み出し許可の割込み信号φ1が供給され、メインCPU11に対して書き込み許可の割込み信号φ2が供給されることにより、メモリブロック51を介してデータがメインCPU11からサブCPU21に対して転送される。そして、各々のCPU11および21においては、転送相手のCPUの処理状況を把握する必要はなく、書き込みが可能になれば書き込み、読み出しが可能になれば読み出すという単純な処理でCPU11および21の間でデータを交換できる。
【0037】
同様に、バッファ43においては、管理ブロック69からサブCPU21に対して書き込み許可の割込み信号φ5が出力され、メインCPU11に対して読み出し許可の割込み信号φ6が出力されることにより、メモリブロック61を介してサブCPU21からメインCPU11に対してデータを非同期に転送することができる。また、バッファ42においては、管理ブロック72からサブCPU21に対して読み出し許可の割込み信号φ3が出力され、メインCPU11に対して書き込み許可の割込み信号φ4が出力されることにより、メモリブロック71を介してメインCPU11からサブCPU21に対してコマンドデータを転送することができる。さらに、バッファ44においては、管理ブロック76からサブCPU21に対して書き込み許可の割込み信号φ7が出力され、メインCPU11に対して読み出し許可の割込み信号φ8が出力されることにより、メモリブロック75を介してサブCPU21からメインCPU11に対してコマンドデータを非同期で転送することができる。
【0038】
さらに、メインCPU11からサブCPU21に対してプリンタのステータスなどのバルクデータを転送するバッファ41と、コマンドデータを転送するバッファ42とが別々に用意されており、また、サブCPU21からメインCPU11に印字データや画像データなどバルクデータを転送するバッファ43と、コマンドデータを転送するバッファ44とが別々に用意されている。このため、転送先のCPUは、データを読み出すバッファが判別されることにより、すなわち、読み出し許可が通知される割込み信号をデコードすることにより、転送されるデータがCPUによりデコードする必要があるコマンドデータか、デコードする必要がないバルクデータであるかを事前に判断することができる。一方、転送元のCPUは、コマンドデータかバルクデータに応じて転送するバッファのアドレスを切り替えることにより、その種別を転送先のCPUに伝達できることになる。したがって、転送先のCPUに対して、転送するデータの種類を、そのデータを書き込むバッファを変えることにより伝達することができる。そして、それぞれのバッファを用いたデータの転送は、読み出し許可の割込み信号および書き込み許可の割込み信号により、各々のCPUが独立して制御することができる。
【0039】
したがって、本例のデータ処理装置3では、第1のデータ処理ユニット1と第2のデータ処理ユニット2との間でバッファ41〜44を用いて非同期でバルクデータおよびコマンドデータを転送できるにも関わらず、転送されるデータの種別をCPUがデコードしなくても判断することができるという機能を備えている。このため、各CPUは、送信元のCPUから情報を得なくても、また、転送されたデータをすべて転送先のCPUが解析しなくても、転送されたデータの種類を判別できる。したがって、コマンドデータ用のバッファにより転送されたデータについては転送先のCPUが解釈するとしても、バルクデータ用のバッファにより転送されたデータについては転送先のCPUでは解釈する処理を省くことが可能となり、データ転送にかかるCPUの負荷を軽減することが可能となる。
【0040】
したがって、本例のデータ処理装置3を採用した複合装置10では、双方のCPU11および21の処理動作を協調制御しなくても、通信ユニット4のバッファ41〜44に対して各々のCPU11および21が独立してデータを入力あるいは出力することにより双方のCPU11および21の間でデータを交換することができるようになっている。このため、双方のCPU11および21、すなわち、プリンタ機構6を制御する第1のデータ処理ユニット1のプログラミングと、スキャナ機構7を制御する第2のデータ処理ユニット2のプログラミングは非常に簡易になる。また、データ交換が必要な処理が発生しても、双方のCPU11および21は双方の処理を待たなくてもデータを入出力できるので、データの処理速度の低下を防止することができ、処理速度の速い複合装置10を提供できる。
【0041】
図9〜図12は、複合装置がPOSプリンタ10として稼動したときに、第2のデータ処理ユニット2の外部インターフェイス29を介してホスト装置5との間でプリンタ機構6およびスキャナ機構7に関するコマンドデータおよびバルクデータを交換するように接続されている例である。このケースでは、第1のデータ処理ユニット1に関するバルクデータおよびコマンドデータが通信ユニット4を介して入出力される。まず、第1のデータ処理ユニット1から出力されるバルクデータは、図9に示すように、第1のバッファ41を用いて第1のデータ処理ユニット1から第2のデータ処理ユニット2に転送される。バルクデータとしては、プリンタ機構6の状態を通知するデータ(ASBデータ)があり、このデータは第2のデータ処理ユニット2の外部インターフェイス29からホスト装置5にフィードバックされるデータである。
ASBデータの他にも、第1のデータ処理ユニット1で、チェックの磁気インクデータの読取機構(MICR)を制御する場合は、そのMICRで読み取ったデータなどがある。
【0042】
第1のデータ処理ユニット1から第2のデータ処理ユニット2に第1のバッファ41を介してデータ転送する場合、バッファ内が空であることを示す、書き込みを許可する割込み信号φ2を受け取ると、第1のデータ処理ユニット1のメインCPU11によりデータが書き込まれる。第1のバッファ41にメインCPU11からデータの書き込みがあると読み出しを許可する割込み信号φ1が第2のデータ処理ユニット2のサブCPU21に供給され、サブCPU21は第1のバッファ41からデータを読み出す。そして、一旦、RAM22に読み出したデータを記憶してからUSBコントローラ24の制御の元にインターフェイス29からホスト5に出力するか、あるいは、バッファ41が読み出し可能となった時点で、USBコントローラ24の制御の元にインターフェイス29からホスト5に出力する。第1のバッファ41は、サブCPU21がデコードあるいは解釈する必要のないデータに割り当てられているので、そのバッファ41が割込み信号φ1により読み出し可能になるとサブCPU21は転送されたデータをデコードすることなく、インターフェイス29から出力することができる。
【0043】
第1のデータ処理ユニット1から第2のデータ処理ユニット2に対するコマンドデータは、図10に示したように、第2のバッファ42を介して転送される。このように転送されるコマンドデータとしては、プリンタ機構6と連動してスキャナ機構7を制御する必要がある場合に、メインCPU11からサブCPU21に供給されるコマンドデータがある。あるいは、複合装置10の動作コマンドデータが全てメインCPU11により解釈されるようになっていると、インターフェイス29を介してホスト5から受信したコマンドデータはいったん第1のデータ処理ユニット1に転送された後に、第2のデータ処理ユニット2に戻されることになる。第2のバッファ42を用いてコマンドデータを転送する場合も、上記と同様であり、書き込みを許可する割込み信号φ4によりメインCPU11がコマンドデータをバッファ42に書き込み、読み込みを許可する割込み信号φ3によりサブCPU21がコマンドデータを読み込む。そして、このケースでは、割込み信号φ3がコマンドデータが転送される第2のバッファ42にデータが入力されたことを示しているので、サブCPU21は第2のバッファ42から読み込んだデータをデコードし、それに応じた処理を第2のデータ処理ユニット2で行う。
【0044】
第1のデータ処理ユニット1に入力されるバルクデータは、図11に示すように、第3のバッファ43を用いて第2のデータ処理ユニット2から第1のデータ処理ユニット1に転送される。バルクデータの例としては、ホスト装置5から送信される印刷データがあり、本例では、通信ユニット4を介して8バイト単位で第1のデータ処理ユニット1に入力される。この第3のバッファ43を用いてデータを転送する場合も、第2のデータ処理ユニット2に出力される書き込み許可を示す割込み信号φ5と、第1のデータ処理ユニット1に出力される読み出し許可を示す割込み信号φ6により第3のバッファ43に対するサブCPU21の書き込みとメインCPU11によりデータの読み出しとが非同期で制御される。そして、第3のバッファ43はバルクデータの転送に割り当てられているので、各々のCPU21および11では転送するデータの内容を解釈する必要がなく、上記にて説明したようにDMA転送が可能であり、本例ではサブCPU21およびメインCPU11がDMACとして機能する。したがって、サブCPU21がDMACとなってインターフェイス29から第3のバッファ43に印刷データをDMA転送し、一方、メインCPU11がDMACとなって第3のバッファ43からRAM12に印刷データをDMA転送する。そして、DMAリクエスト用の信号として割込み信号φ5およびφ6が使用される。
【0045】
第2のデータ処理ユニット2から第1のデータ処理ユニット1に対するコマンドデータは、図12に示したように、第4のバッファ44を介して転送される。このように転送されるコマンドデータとしては、ホスト5からプリンタ機構6を制御するためのコマンドデータがある。第4のバッファ44を用いてコマンドデータを転送する場合も、上記と同様であり、書き込みを許可する割込み信号φ7によりサブCPU21がコマンドデータをバッファ44に書き込み、読み込みを許可する割込み信号φ8によりメインCPU11がコマンドデータを読み込む。そして、そのコマンドデータに従ってプリンタ機構6を制御する。上述したMICRなどの、複合装置10を構成する他の機構も第1のデータ処理ユニット1で制御している場合、それらの機構に対するコマンドデータを受信し解釈して制御する。
【0046】
このような複合装置10は、たとえば、第1のデータ処理ユニット1を中心としてプリンタ機構6をベースに多機能な装置を開発する場合に適している。本例では、スキャナ機構7の機能とそれを制御する第2のデータ処理ユニット2とを追加することにより、プリンタ機構6とスキャナ機構7との機能を備え、ホスト5からは1つの周辺機器として制御することができる複合装置10を提供している。このような複合装置10を開発する場合に、すべての機能、すなわち、プリンタ機構6とスキャナ機構7とを制御する単一のデータ処理ユニットを開発することも可能であり、処理効率などの点からは望ましいといえる。しかしながら、開発期間が長くなり、開発費用も高くなる。さらに、プリンタ機構6として開発し、実績のある制御ユニット1を利用することができないし、スキャナ機構7のために開発した第2のデータ処理ユニット2があったとしても、その資源も利用できない。
【0047】
これに対し、本例の複合装置10では、それぞれに実績のある制御ユニット1および2を通信ユニット4で組み合わせることにより、プリンタおよびスキャナとしての機能を有する装置を提供している。したがって、開発期間およびコストは大幅に低減することが可能であり、さらに、プリンタおよびスキャナとして実績のある制御ユニットを利用できるために信頼性の高い複合装置を提供できる。そして、ホスト5との通信インターフェイスとしても、各々の制御ユニット1および2に、種類の異なる通信インターフェイスが搭載されているのであれば、それらのいずれか適した方の通信インターフェイスを利用して、プリンタ機構6およびスキャナ機構7を制御できるというメリットもある。たとえば、プリンタ用として開発された第1のデータ処理ユニット1であれば、パラレルインターフェイスであるセントロニクスインターフェイスが多くの場合、搭載されている。一方、スキャナ用として開発された第2のデータ処理ユニット2であれば、高速シリアル転送が可能なUSBインターフェイスやIEEE1394インターフェイス、あるいは、SCSIやRS232Cなどが搭載されている場合が多い。したがって、これらのインターフェイスのうち、適当なものを選択して利用することができる。
【0048】
そして、本例の複合処理装置10であれば、それぞれのデータ処理ユニット1および2に搭載されているCPU11および21が独立してバッファ41〜44にデータを書き込みあるいは読み出すことによりデータ処理ユニット1および2の間でデータ転送できる。このため、複合装置10として機能させるプログラミングも極めて容易となり、また、各々のCPU11および21が独立してデータを入出力できるので、複合化することによりデータ処理速度が低下することも防止できる。
【0049】
さらに、コマンドデータとバルクデータでバッファを分離してあるので、CPUは解釈が不要なバルクデータについては解釈せずにそのデータを取り扱うことができる。このため、読み出した全てのデータについて解釈することが不要になり、印刷データなどのバルクデータを解釈する処理がボトルネックとなってデータ処理ユニット間のデータ交換の効率が低下するのを防ぐことができる。したがって、第2のデータ処理ユニット2で取得したホスト装置5からの印刷データを第1のデータ処理ユニット1で解釈することなく、ゲートアレイ14に転送してプリンタ機構6で印刷することが可能であり、印刷データを受信してからプリントが開始されるまでの間隔が短い複合装置としてPOSプリンタ10を実現できる。
【0050】
上記では、第2のデータ処理ユニット2に設けられている外部インターフェイス29を用いてホスト5と通信する例を説明したが、第1のデータ処理ユニット1に設けられている外部インターフェイス19を用いてホスト装置5と通信することももちろん可能である。この場合、スキャナ機構7で生成された画像データを第2のデータ処理ユニット2から通信ユニット4を介して第1のデータ処理ユニット1の外部インターフェイス19からホスト装置5に送信することになる。したがって、バルクデータ転送用の第3のバッファ43を用いて第2のデータ処理ユニット2から第1のデータ処理ユニット1にデータ転送することが望ましい。
【0051】
しかしながら、本例のデータ処理ユニット1においては、ホスト装置5から受信した印刷データをプリンタ機構6で印刷する用途して設計されているために、データ処理ユニット1の外部インターフェイス19がホスト装置5から高速で印刷データを受信できるが、データ処理ユニット1からホスト装置5に対して大量のデータを送信できる仕様となっていない。したがって、8バイトの第3のバッファ43を用いてデータ転送を行っても、第1のデータ処理ユニット1とホスト装置5との通信がボトルネックとなる可能性がある。このため、本例においては、図13に示すように、外部インターフェイス19を使用してスキャナのデータをホスト装置5に送信する場合は、通信ユニット4の1バイトの第4のバッファ44を使用している。
【0052】
第4のバッファ44はコマンドデータ用であり、第4のバッファ44から読み出されたスキャナのデータがメインCPU11でデコードされる。このため、スキャナのデータを第2のデータ処理ユニット2から第1のデータ処理ユニット1に転送する前処理として、第2のデータ処理ユニット2からスキャナのデータを転送する処理を開始するコマンドデータを第1のデータ処理ユニット1に送信し、第1のデータ処理ユニット1では、そのコマンドデータを解釈した後は、第4のバッファ44をバルクデータ送信用として処理するようにしている。
【0053】
本例の第1のデータ処理ユニット1は、さらに、外部インターフェイス19として、非同期のシリアルタイプ(RS232C)の通信と、それ以外、たとえばパラレル通信を選択することができる。非同期シリアル転送の場合は、図13の破線Xで示すように、メインCPU11に内蔵されているUART(Universal Asynchronous Receiver Transmitter)機能を利用して外部インターフェイス19からホスト装置5にデータを送信する。非同期シリアル転送以外の場合は、一点鎖線Yで示すように、メインCPU11はゲートアレイ14にホスト装置5に送信すべきデータを書き込み、次に、ゲートアレイ14に搭載された通信方式に応じたコントロールデバイスにより外部インターフェイス19からホスト装置5に対しデータが送信される。
【0054】
このような構成となっている第1のデータ処理ユニット1を考慮すると、第2のデータ処理装置2にデータを転送する通信ユニット4のバッファ構成はゲートアレイ14の送信バッファおよび受信バッファと同一の記憶容量であることが望ましい。このため、本例の複合装置10においては、通信ユニット4の第1のバッファ41が4バイト、第3のバッファが8バイトになっている。このように、外部インターフェイス19のバッファ容量と、第2のデータ処理ユニット2に転送するための通信ユニット4のバッファ容量を一致させておくと、メインCPU11においては、送受信先にバッファのアドレスを変更するだけで、第2のデータ処理ユニット2とのデータ転送に対応することが可能になり、さらに、第2のデータ処理ユニット2を組み合わせた複合装置10の設計が容易となる。
【0055】
したがって、上記で説明した各バッファの記憶容量は例示にすぎず、本発明を限定するものではない。また、バルクデータをDMA転送する例を説明しているがこれに限定されるものでもない。また、本発明のデータ入出力装置は、上述したPOSプリンタに適した複合装置に限定されることはなく、CPUを搭載した複数のデータ処理ユニットの間でデータ転送を行うデータ処理装置の全てに対して好適なものである。
【0056】
【発明の効果】
以上に説明したように、本発明においては、第1のデータ処理ユニットから第2のデータ処理ユニットにデータを転送するために利用される第1の記憶手段と、第2のデータ処理ユニットから第1のデータ処理ユニットにデータを転送するために利用される第2の記憶手段とを有するアーキテクチャを提供している。これにより、第1のデータ処理ユニットから第2のデータ処理ユニットにデータを転送するときには第1の記憶手段を用い、第2のデータ処理ユニットから第1のデータ処理ユニットにデータを転送するときには第2の記憶手段を用いるデータ入出力方法を採用でき、第1および第2のCPUの間で交換するデータの入出力が競合した場合でも、同時に出力したり、同時に入力することは可能となる。また、転送されたデータを読み出さなくても、相手となるCPUに対しデータを出力することが可能となり、データ転送を非同期に実行でき、データ転送の自由度が大幅に向上する。このため、双方のCPUの処理動作を協調制御しなくても、通信手段の第1および第2の記憶手段に対してデータを入力あるいは出力することにより双方のCPUの間でデータを交換することができる。したがって、双方のCPUのプログラミングは簡易になり、また、双方のCPUの処理を待たなくてもデータを入出力できるので、処理速度を向上できる。
【図面の簡単な説明】
【図1】本発明に係るデータ処理装置を有するPOSプリンタの概略構成を示す図である。
【図2】本例の通信ユニットの詳細を示す図である。
【図3】通信ユニットの第1のバッファの詳細を示す図である。
【図4】第1のバッファを用いてデータ転送する時の処理を示すフローチャートである。
【図5】第1のバッファに対するデータのリード/ライトのタイミングを示すタイミングチャートである。
【図6】第3のバッファの詳細を示す図である。
【図7】第3のバッファを用いてデータ転送する時の処理を示すフローチャートである。
【図8】第3のバッファに対するデータのリード/ライトのタイミングを示すタイミングチャートである。
【図9】図1に示すデータ処理装置において、第1のバッファを用いて第1のデータ処理ユニットから第2のデータ処理ユニットにバルクデータが転送される様子を示す図である。
【図10】図1に示すデータ処理装置において、第2のバッファを用いて第1のデータ処理ユニットから第2のデータ処理ユニットにコマンドデータが転送される様子を示す図である。
【図11】図1に示すデータ処理装置において、第3のバッファを用いて第2のデータ処理ユニットから第1のデータ処理ユニットにバルクデータが転送される様子を示す図である。
【図12】図1に示すデータ処理装置において、第4のバッファを用いて第2のデータ処理ユニットから第1のデータ処理ユニットにコマンドデータが転送される様子を示す図である。
【図13】図1に示すデータ処理装置において、第4のバッファを用いて第2のデータ処理ユニットの側のデータが第1のデータ処理ユニットを経由してホスト装置に送信される様子を示す図である。
【符号の説明】
1 第1のデータ処理ユニット
2 第2のデータ処理ユニット
3 データ処理装置
4 通信ユニット
5 ホスト装置
6 プリンタ機構
7 スキャナ機構
10 POSプリンタ(データ入出力装置)
11 メインCPU
11a、21a DMA機能
19、29 外部インターフェイス
21 サブCPU
31 第1の記憶部
32 第2の記憶部
41 第1のバッファ
42 第2のバッファ
43 第3のバッファ
44 第4のバッファ

Claims (1)

  1. データを入力および/または出力可能なプリンタ機構と、
    データを入力および/または出力可能なスキャナー機構と、
    前記プリンタ機構を制御する第1のCPUを備えた第1のデータ処理ユニットと、
    前記スキャナー機構を制御する第2のCPUを備えた第2のデータ処理ユニットと、
    これら第1および第2のデータ処理ユニットの間でデータ交換可能な通信手段とを有し、
    この通信手段は、前記第1のデータ処理ユニットから前記第2のデータ処理ユニットにデータを転送するために利用される第1の記憶手段と、前記第2のデータ処理ユニットから前記第1のデータ処理ユニットにデータを転送するために利用される第2の記憶手段とを有する複合装置と、
    当該複合装置の前記第2のデータ処理ユニットに接続されたホスト装置とからなる、データ入出力装置であって、
    前記第1の記憶手段は、前記第1のデータ処理ユニットから前記第2のデータ処理ユニットに第1のバルクデータを転送する第1のバッファと、コマンドデータを転送する第2のバッファとを備え、
    前記第2の記憶手段は、前記第2のデータ処理ユニットから前記第1のデータ処理ユニットに第2のバルクデータを転送する第3のバッファと、コマンドデータを転送する第4のバッファとを備え、
    前記通信手段は、更に、前記第1のバッファに前記第1のバルクデータが書き込まれると前記第2のCPUに読み出し許可の割込み信号を送り、前記第1のバッファの前記第1のバルクデータが読み出されると前記第1のCPUに書き込み許可の割込み信号を送る第1の管理手段と、前記第2のバッファに前記コマンドデータが書き込まれると前記第2のCPUに読み出し許可その旨の割込み信号を送り、前記第2のバッファの前記コマンドデータが読み出されると前記第1のCPUに書き込み許可の割込み信号を送る第2の管理手段と、前記第3のバッファに前記第2のバルクデータが書き込まれると前記第1のCPUに読み出し許可その旨の信号を送り、前記第3のバッファの前記第2のバルクデータが読み出されると前記第2のCPUに書き込み許可の割込み信号を送る第3の管理手段と、前記第4のバッファにコマンドデータが書き込まれると前記第1のCPUに読み出し許可の割込み信号を送り、前記第4のバッファのコマンドデータが読み出されると前記第2のCPUに書き込み許可の割込み信号を送る第4の管理手段とを備え、
    前記第1のバッファ及び第2のバッファと、第3のバッファ及び第4のバッファとは、記憶容量を異ならせて、前記第1および第2のCPUは、前記読み出し許可の割込み信号をデコードすることによって、転送されるデータの種別を判別し、
    前記第1のバルクデータは、前記プリンタ機構の状態を通知するデータであり、
    前記第2のバルクデータは、前記スキャナー機構で読み取った画像データ又は前記ホスト装置からの印刷データであることを特徴とするデータ入出力装置。
JP2002183489A 2001-07-11 2002-06-24 データ処理装置、データ入出力装置およびデータ入出力方法 Expired - Fee Related JP4509461B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002183489A JP4509461B2 (ja) 2001-07-11 2002-06-24 データ処理装置、データ入出力装置およびデータ入出力方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2001-210903 2001-07-11
JP2001210903 2001-07-11
JP2002183489A JP4509461B2 (ja) 2001-07-11 2002-06-24 データ処理装置、データ入出力装置およびデータ入出力方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010049741A Division JP5273072B2 (ja) 2001-07-11 2010-03-05 データ処理装置、データ入出力装置およびデータ入出力方法

Publications (2)

Publication Number Publication Date
JP2003091513A JP2003091513A (ja) 2003-03-28
JP4509461B2 true JP4509461B2 (ja) 2010-07-21

Family

ID=26618527

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002183489A Expired - Fee Related JP4509461B2 (ja) 2001-07-11 2002-06-24 データ処理装置、データ入出力装置およびデータ入出力方法

Country Status (1)

Country Link
JP (1) JP4509461B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2005069152A1 (ja) * 2004-01-13 2007-12-27 セイコーインスツル株式会社 メモリインタフェース装置、メモリインタフェース方法、およびモデム装置
WO2009040932A1 (ja) * 2007-09-28 2009-04-02 Fujitsu Limited 制御装置,制御方法,電子機器および伝送装置
JP2009134635A (ja) * 2007-11-30 2009-06-18 Renesas Technology Corp マルチプロセッサシステム

Also Published As

Publication number Publication date
JP2003091513A (ja) 2003-03-28

Similar Documents

Publication Publication Date Title
JP5273072B2 (ja) データ処理装置、データ入出力装置およびデータ入出力方法
JP4696199B2 (ja) 転送ディスクリプタ用メモリを備えるusbホストコントローラ
US6753903B1 (en) Adaptor for direct connection between USB digital still camera and use color printer
JP6476655B2 (ja) データ転送制御装置
JP4509461B2 (ja) データ処理装置、データ入出力装置およびデータ入出力方法
JPH05303553A (ja) 複合機コントローラ
JPH10334037A (ja) 通信dma装置
JP2017156924A (ja) 情報処理装置、データ転送装置、データ転送装置の制御方法、及びプログラム
US7042582B1 (en) Printer and printer data processing method
JP4743110B2 (ja) データ処理装置
CN1178142C (zh) 一种具有usb结构的数字相机至打印机的转换装置
JP3057754B2 (ja) メモリ回路および分散処理システム
JP3745909B2 (ja) ファイル管理方法
JP2002278922A (ja) コンピュータバスシステム
JP2529449B2 (ja) 電子ファイル装置
JP2002229929A (ja) メモリアクセスコントロール方法及びメモリアクセスコントロール装置
JPS6029861A (ja) 周辺装置インタ−フエイス
JP5392037B2 (ja) 情報処理装置
JPH03119484A (ja) 画像処理装置
JP3153257B2 (ja) ファクシミリ装置
JP2002292943A (ja) プリンタ及びプリンタ内におけるデータ転送方法
WO2005074537A2 (en) High performance serial bus data recorder device
JPS6163461A (ja) プリンタバツフア
JP2008219303A (ja) 通信制御装置、画像処理装置、通信制御方法及び通信制御プログラム
JP2001239707A (ja) プリンタ制御装置及びそのデータ転送方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050607

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061101

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070109

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070109

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070613

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070710

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070815

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080331

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080711

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100305

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100428

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140514

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees