JP3394717B2 - Data transfer system - Google Patents

Data transfer system

Info

Publication number
JP3394717B2
JP3394717B2 JP03209299A JP3209299A JP3394717B2 JP 3394717 B2 JP3394717 B2 JP 3394717B2 JP 03209299 A JP03209299 A JP 03209299A JP 3209299 A JP3209299 A JP 3209299A JP 3394717 B2 JP3394717 B2 JP 3394717B2
Authority
JP
Japan
Prior art keywords
data
transfer
time
unit
transfer rate
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
JP03209299A
Other languages
Japanese (ja)
Other versions
JP2000231457A (en
Inventor
好弘 松田
Original Assignee
株式会社沖データ
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 株式会社沖データ filed Critical 株式会社沖データ
Priority to JP03209299A priority Critical patent/JP3394717B2/en
Publication of JP2000231457A publication Critical patent/JP2000231457A/en
Application granted granted Critical
Publication of JP3394717B2 publication Critical patent/JP3394717B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、ホスト装置から外
部装置へデータを転送する場合の転送速度の最適化を図
ったデータ転送システムに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data transfer system which optimizes a transfer speed when transferring data from a host device to an external device.

【0002】[0002]

【従来の技術】例えば、パーソナルコンピュータからプ
リンタへ印刷データを転送する場合には、パーソナルコ
ンピュータとプリンタとの間を所定のインタフェースケ
ーブルにより接続する。パーソナルコンピュータにはプ
リンタドライバがインストールされており、これが所定
の速度で印刷データをプリンタに転送する。プリンタ
は、プリンタバッファへ印刷データを一時格納し、これ
がいっぱいになるとプリンタドライバに対し転送の一時
停止を要求する。
2. Description of the Related Art For example, when transferring print data from a personal computer to a printer, the personal computer and the printer are connected by a predetermined interface cable. A printer driver is installed in the personal computer, and this transfers print data to the printer at a predetermined speed. The printer temporarily stores the print data in the printer buffer and, when the print data is full, requests the printer driver to suspend the transfer.

【0003】印刷が進み、プリンタバッファに空きが生
じると、再びプリンタドライバからデータの転送を行
う。プリンタの印刷制御のみならず、ホスト装置から様
々な外部装置にデータを転送する場合には、一般にこう
した手順の制御が行われている。
When printing progresses and the printer buffer becomes empty, data is transferred again from the printer driver. In addition to print control of the printer, when transferring data from the host device to various external devices, such procedure control is generally performed.

【0004】[0004]

【発明が解決しようとする課題】ところで、上記のよう
な従来の技術には次のような解決すべき課題があった。
例えば、パーソナルコンピュータがホスト装置であっ
て、プリンタに印刷データを転送する場合を考える。近
年のパーソナルコンピュータにおける、CPU(中央処
理装置)の演算処理速度向上は著しい。従って、CPU
の性能差によって、データ転送速度が著しく相違するケ
ースが増えてきている。プリンタは既存のCPUの処理
速度を考慮して設計されており、新たな高い演算処理速
度のCPUが出現すると、動作速度差が許容範囲を超え
る場合が生じる。
By the way, the above conventional techniques have the following problems to be solved.
For example, consider a case where a personal computer is a host device and print data is transferred to a printer. In recent years, the processing speed of the CPU (central processing unit) in personal computers has been remarkably improved. Therefore, the CPU
Due to the difference in performance between the two, the number of cases in which the data transfer rates are significantly different is increasing. The printer is designed in consideration of the processing speed of the existing CPU, and when a new CPU with a high processing speed appears, the difference in operation speed may exceed the allowable range.

【0005】プリンタは、プリンタエンジンの印字速度
や印字品位を考慮すると、所定速度以上の速度でデータ
を受信する必要はない。むしろ、プリンタに対して高速
でデータ転送が行われると、データ送受信のためにプリ
ンタのプロセッサに負荷がかかり、後で説明するように
データ抜けやアンダーラン等の障害が発生する恐れがあ
る。プロセッサの演算処理速度が速くなると、プリンタ
ドライバによるデータ転送速度も速くなる。従って、こ
うした高性能化したパーソナルコンピュータによって、
従来のプリンタを正常に制御する方法の開発が要求され
ている。これらの課題は、ホスト装置から様々な外部装
置にデータを転送する場合にも同様に発生している。
The printer does not need to receive data at a speed higher than a predetermined speed in consideration of the print speed and print quality of the printer engine. Rather, when data is transferred to the printer at high speed, the processor of the printer is overloaded for data transmission and reception, which may cause problems such as data loss and underrun as described later. As the arithmetic processing speed of the processor increases, the data transfer speed of the printer driver also increases. Therefore, with such a high performance personal computer,
Development of a method for controlling a conventional printer normally is required. These problems similarly occur when data is transferred from the host device to various external devices.

【0006】[0006]

【課題を解決するための手段】本発明は以上の点を解決
するため次の構成を採用する。 〈構成1〉 本発明は、単位量データを待機時間が経過する毎に外部
装置へ転送するデータ転送部を備えるホスト装置を含む
データ転送システムにおいて、ホスト装置は、所定量の
ダミーデータを保持するダミーデータ格納部と、ダミー
データ格納部のダミーデータをデータ転送部に供給し、
データ転送部から単位量ダミーデータを設定待機時間毎
に外部装置へ転送させてダミーデータの転送の開始から
終了までに要した転送時間をタイマにより実測すると共
に、転送時間とダミーデータの転送量とからダミーデー
タの転送速度を演算し、転送速度を予め保持する外部装
置の最適データ受信速度に一致させるための待機時間を
算出する転送速度調整部と、算出した待機時間を設定す
る待機時間設定部と、を含むことを特徴とする。
The present invention adopts the following constitution in order to solve the above points. <Structure 1> According to the present invention, in a data transfer system including a host device including a data transfer unit that transfers unit amount data to an external device each time a standby time elapses, the host device holds a predetermined amount of dummy data. The dummy data storage unit and the dummy data in the dummy data storage unit are supplied to the data transfer unit,
A unit amount of dummy data is transferred from the data transfer unit to an external device at each set waiting time, and the transfer time required from the start to the end of the transfer of dummy data is measured by a timer, and the transfer time and the transfer amount of dummy data are A transfer rate adjusting unit that calculates the transfer rate of the dummy data from this, and calculates a standby time for matching the transfer rate with the optimum data receiving rate of the external device that holds the transfer rate in advance, and a standby time setting unit that sets the calculated standby time And are included.

【0007】〈構成2〉 構成1に記載のデータ転送システムにおいて、転送速度
調整部は、所定量のダミーデータをそれぞれ異なる設定
待機時間で転送したときの転送速度を演算し、各転送
速度の変化から待機時間を算出することを特徴とする。
[0007] <Configuration 2> Te data transfer system smell according to Structure 1, transfer rate adjusting section calculates the transfer rate when transferring with different settings <br/> waiting time each dummy data of a predetermined amount The standby time is calculated from the change in each transfer rate.

【0008】〈構成3〉 構成1に記載のデータ転送システムにおいて、転送速度
調整部は、転送時間を、外部装置側に設けたタイマを利
用して実測することを特徴とする。
<Structure 3> In the data transfer system according to Structure 1, the transfer speed is
The adjustment unit uses a timer provided on the external device side to control the transfer time.
The feature is that it is actually measured by using.

【0009】〈構成4〉 構成1に記載のデータ転送システムにおいて、外部装置
は単位量ダミーデータの受信数を計数するサムチェック
処理部を有し、転送速度調整部は、送信した単位量ダミ
ーデータの送信数と外部装置から受けた単位量ダミーデ
ータの受信数とを比較してデータ抜け発生の有無を検査
し、データ抜けが発生する場合には、算出した待機時間
を部分的に調整することを特徴とする。
<Structure 4> In the data transfer system according to Structure 1, an external device
Is a sum check that counts the number of units of dummy data received
It has a processing unit, and the transfer rate adjustment unit
ー The number of data transmission and the unit amount dummy data received from the external device
Inspect for data loss by comparing with the number of data received
However, if data loss occurs, the calculated waiting time
Is partially adjusted.

【0010】〈構成5〉 構成1に記載のデータ転送システムにおいて、ホスト装
置から複数の外部装置にデータが転送されるとき、転送
速度調整部は、複数の外部装置に同時にダミーデータを
転送して各新たな転送速度を演算し、新たな転送速度が
転送速度に近付くように待機時間を短縮することを特徴
とする。
<Structure 5> In the data transfer system according to Structure 1, the host device
Transfer from a storage device to multiple external devices
The speed adjustment unit simultaneously writes dummy data to multiple external devices.
Transfer and calculate each new transfer speed, the new transfer speed
Characterized by shortening the waiting time so as to approach the transfer speed
And

【0011】 〈構成6〉 構成5に記載のデータ転送システムにおいて、ホスト装
置に接続されて同時にデータを転送する外部装置が増減
した場合に、各外部装置に対する新たな転送速度を監視
し、新たな転送速度が変化したとき、新たな転送速度が
転送速度に近付くように待機時間を短縮することを特徴
とする。
[0011] In <Configuration 6> data transfer system according to Structure 5, when an external device for transferring data simultaneously connected to the host device is increased or decreased, to monitor a new transfer rate for each external device, the new When the transfer rate changes, the waiting time is shortened so that the new transfer rate approaches the transfer rate.

【0012】 〈構成7〉 外部装置からビジー信号を受信する時間を待機時間と
し、待機時間が経過する毎に単位量データを外部装置へ
転送するホスト装置を有するデータ転送システムにおい
て、ホスト装置は、ダミーデータを保持するダミーデー
タ格納部と、ダミーデータ格納部の単位量ダミーデータ
を待機時間が経過する毎に外部装置へ転送するデータ転
送部とを含み、外部装置は、ダミーデータの所定受信量
及び受信に要した時間からダミーデータの受信速度を演
算する受信速度測定部と、受信速度を自己の最大受信速
度に一致させるための待ち時間を算出する受信速度調整
部と、算出した待ち時間を設定する待ち時間設定部とを
含み、データ受信時に待ち時間だけビジー信号をホスト
装置へ供給することを特徴とする。
[0012] <Configuration 7> the time to receive a busy signal from an external device and waiting time, in a data transfer system having a host apparatus for transferring a unit amount data to the external device whenever the waiting time elapses, the host device, The external device includes a dummy data storage unit that holds the dummy data and a data transfer unit that transfers the unit amount dummy data of the dummy data storage unit to the external device each time the standby time elapses. And the reception speed measurement unit that calculates the reception speed of the dummy data from the time required for reception, the reception speed adjustment unit that calculates the waiting time for matching the reception speed with the maximum reception speed of your own, and the calculated waiting time. A waiting time setting unit for setting is provided, and a busy signal is supplied to the host device only during the waiting time when data is received.

【0013】 〈構成8〉 構成7に記載のデータ転送システムにおいて、外部装置
には、ホスト装置からデータを自動受信するダイレクト
メモリアクセスコントローラが設けられ、外部装置の受
信速度調整部は、ダイレクトメモリアクセスコントロー
ラが一括して受信可能な単位量データの数量を検知し、
算出した待ち時間に数量を乗算して新たな待ち時間を算
出することを特徴とする。
[0013] In <Configuration 8> structure 7 a data transfer system according to the external device, the direct memory access controller to automatically receive data from the host device is provided, receiving the speed adjustment unit of the external device, a direct memory access The controller detects the quantity of unit quantity data that can be received collectively,
A feature is that a new waiting time is calculated by multiplying the calculated waiting time by the quantity.

【0014】[0014]

【0015】[0015]

【発明の実施の形態】以下、本発明の実施の形態を具体
例を用いて説明する。 〈具体例〉図1は、具体例1のシステムを示すブロック
図である。本発明は、ホスト装置から様々な外部装置に
データを転送する場合に適用できるが、ここでは、ホス
トコンピュータ1からプリンタ3に対しデータを転送す
る場合を例にとって説明する。
BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of the present invention will be described below with reference to specific examples. <Specific Example> FIG. 1 is a block diagram showing a system of a specific example 1. The present invention can be applied to the case of transferring data from the host device to various external devices, but here, the case of transferring data from the host computer 1 to the printer 3 will be described as an example.

【0016】図1において、ホストコンピュータ1に
は、双方向インタフェース2を介してプリンタ3が接続
されている。このインタフェースは、IEEE1284
(Institute of Electrical and Electronic Engineer
s)等で規格化されたパラレルインタフェースである。
ホストコンピュータ1には、印刷用のデータを生成する
アプリケーション(AP)4と、オペレーティングシス
テム(OS)5、プリンタドライバ6、ポートドライバ
7及びIEEE1284出力部8が設けられている。
In FIG. 1, a printer 3 is connected to a host computer 1 via a bidirectional interface 2. This interface is IEEE1284
(Institute of Electrical and Electronic Engineer
It is a parallel interface standardized by s).
The host computer 1 is provided with an application (AP) 4 that generates print data, an operating system (OS) 5, a printer driver 6, a port driver 7, and an IEEE1284 output unit 8.

【0017】プリンタ3は、電子写真式プリンタ、イン
クジェットプリンタ等、各種の従来よく知られた印刷装
置である。ポートドライバ7は、この図に示すように、
I/F処理部11、データ転送部12、転送速度調整部
13、タイマ14、カウンタ発生部15、ダミーデータ
16、ループカウンタ17、ウェイト処理部18により
構成されている。
The printer 3 is various well-known printing devices such as an electrophotographic printer and an inkjet printer. The port driver 7, as shown in this figure,
The I / F processing unit 11, the data transfer unit 12, the transfer speed adjustment unit 13, the timer 14, the counter generation unit 15, the dummy data 16, the loop counter 17, and the wait processing unit 18 are included.

【0018】このシステムでは、ホストコンピュータ1
は高速プロセッサを備え、プリンタドライバ6のデータ
転送速度が著しく速い。そのため、そのままではプリン
タ3がアンダーランあるいはデータ抜け等を発生する恐
れがある。そこで、この具体例の発明では、ポートドラ
イバ7がプリンタドライバ6の転送速度を調整する機能
を持つ。プリンタドライバ6の出力は、I/F処理部1
1とデータ転送部12とを経てIEEE1284出力部
8に送られる。図に示す転送速度調整部13は、I/F
処理部11からホストコンピュータ1のデータ転送速度
を示すパラメータを受け取り、調整した転送速度をデー
タ転送部12に設定する機能を持つ部分である。データ
転送部12は、I/F処理部11から入力する印刷デー
タをIEEE1284出力部8を経由してプリンタ3に
転送する役割を持つ。
In this system, the host computer 1
Has a high-speed processor, and the data transfer rate of the printer driver 6 is extremely high. Therefore, if the printer 3 is left as it is, there is a risk that the printer 3 may cause underrun or data loss. Therefore, in the invention of this specific example, the port driver 7 has a function of adjusting the transfer speed of the printer driver 6. The output of the printer driver 6 is the I / F processing unit 1
1 and the data transfer unit 12 and sent to the IEEE1284 output unit 8. The transfer rate adjusting unit 13 shown in the figure is an I / F
It is a part having a function of receiving a parameter indicating the data transfer rate of the host computer 1 from the processing section 11 and setting the adjusted transfer rate in the data transfer section 12. The data transfer unit 12 has a role of transferring the print data input from the I / F processing unit 11 to the printer 3 via the IEEE1284 output unit 8.

【0019】このポートドライバ7の詳細な説明をする
前に、まず転送速度の差によるプリンタ3に発生する障
害について具体的に説明する。図2には、PC(パーソ
ナルコンピュータ)の性能による転送速度の差説明図を
示す。図の(a)には、例えばデータ転送速度が毎秒6
00キロバイトのホストコンピュータ1からプリンタ3
(ここではレーザプリンタ)に対しデータを転送するケ
ースを示す。この場合のプロセッサの動作クロックは毎
秒100MHzである。(b)には、データ転送速度が
毎秒1メガバイトのホストコンピュータ1からプリンタ
3に対しデータを転送するケースを示す。プロセッサの
動作クロックは毎秒100MHzである。なお、(a)
は32ビット処理でPCIバスを使用し、(b)は16
ビット処理でVLバスを使用するプロセッサである点が
相違する。
Before describing the port driver 7 in detail, first, a fault occurring in the printer 3 due to a difference in transfer speed will be specifically described. FIG. 2 is an explanatory diagram showing a difference in transfer speed depending on the performance of a PC (personal computer). In (a) of the figure, for example, the data transfer rate is 6 per second.
00 kilobytes of host computer 1 to printer 3
A case of transferring data to (here, a laser printer) is shown. The operating clock of the processor in this case is 100 MHz per second. (B) shows a case where data is transferred from the host computer 1 having a data transfer rate of 1 megabyte per second to the printer 3. The operating clock of the processor is 100 MHz per second. Note that (a)
Uses the PCI bus for 32-bit processing, and (b) has 16
The difference is that the processor uses a VL bus for bit processing.

【0020】(c)は、同じく16ビット処理のプロセ
ッサで、データ転送速度が毎秒300キロバイトの例を
示す。この場合、プロセッサの動作クロックは66MH
zである。また、(d)は、16ビット処理のプロセッ
サで、データ転送速度が毎秒400キロバイトの場合の
例を示す。このプロセッサは、動作クロックが66MH
zである。バスはいずれもVLバスを使用する。
(C) is also a processor of 16-bit processing, and shows an example in which the data transfer rate is 300 kilobytes per second. In this case, the operating clock of the processor is 66 MH
z. Further, (d) shows an example in which the data transfer rate is 400 kilobytes per second for a 16-bit processing processor. The operating clock of this processor is 66 MH
z. Both buses use the VL bus.

【0021】最近では、更に、プロセッサの動作クロッ
クが200MHzから400MHzのものも登場してい
る。例えば、ユーザが同一のプリンタ3にこの図に示す
ような様々な性能のパーソナルコンピュータを接続した
り、あるいはネットワークを通じて様々なパーソナルコ
ンピュータから印刷要求があった場合を考える。このよ
うに、プロセッサの動作クロックの周波数が著しく高い
場合、プリンタドライバも高速で動作し、プリンタ3に
次のような負荷がかかる。
Recently, a processor having an operating clock of 200 MHz to 400 MHz has also appeared. For example, consider a case where the user connects personal computers having various performances as shown in the figure to the same printer 3 or print requests are made from various personal computers through a network. In this way, when the frequency of the operating clock of the processor is extremely high, the printer driver also operates at high speed, and the printer 3 is loaded with the following load.

【0022】図3は、転送速度が適切な場合のプリンタ
動作タイムチャートを示す。プリンタは、通常、印刷デ
ータを受信し、その解析処理を行い、プリンタエンジン
を制御しながら印刷を行う。従って、この図に示すよう
に、受信、解析、印刷といった処理が交互に規則的に繰
り返されることが好ましい。
FIG. 3 shows a printer operation time chart when the transfer speed is appropriate. The printer normally receives print data, analyzes the print data, and prints while controlling the printer engine. Therefore, as shown in this figure, it is preferable that the processes of receiving, analyzing, and printing are alternately repeated regularly.

【0023】図4には、データ転送速度が不適切な場合
のプリンタ動作タイムチャートを示す。通常、プリンタ
においては、受信処理が解析処理に優先される。即ち、
データを解析中にデータの受信があれば受信処理を優先
する。また、解析処理よりも印刷処理が優先される。印
字ヘッドの駆動、印刷用紙のスペーシング等は一定の速
度で遅滞無く制御しなければならないからである。
FIG. 4 shows a printer operation time chart when the data transfer rate is inappropriate. Normally, in a printer, reception processing has priority over analysis processing. That is,
If data is received during data analysis, the receiving process is prioritized. Also, the printing process is prioritized over the analysis process. This is because the drive of the print head, the spacing of the printing paper, etc. must be controlled at a constant speed without delay.

【0024】ところが、例えば、この図の矢印Aの部分
に示すように、印刷データを受信し解析処理を開始する
前に、ホスト側から次のデータの受信があると、割り込
みによって受信処理が優先されてしまう。従って、解析
処理が受信処理の後回しになり、印刷のタイミングが時
間Dだけ遅れる。このような受信による割り込みが繰り
返されると、印刷処理が次第に図のように遅延する。こ
こでその遅延が時間3Dに達すると、オーバーランが発
生する。
However, for example, as shown by an arrow A in this figure, if the next data is received from the host side before the print data is received and the analysis process is started, the reception process is prioritized by an interrupt. Will be done. Therefore, the analysis process is postponed to the reception process, and the printing timing is delayed by the time D. When the interruption due to such reception is repeated, the printing process is gradually delayed as shown in the figure. Here, when the delay reaches time 3D, an overrun occurs.

【0025】即ち、印刷速度は一定であって、これに間
に合うようにデータが解析され、プリンタエンジンに供
給されなければならない。ところが、解析処理に遅延が
あると、プリンタエンジンへのデータ供給が間に合わな
くなる。従って、印刷データの供給の無いまま途中から
白紙の印刷が行われる。プリンタの必要とする受信速度
をはるかに上回るデータ転送速度で、ホストコンピュー
タからのデータ転送があった場合、こうした問題が発生
する。そこで、この具体例では、図1に示したポートド
ライバ7がプリンタドライバ6から渡されたデータを、
1バイトずつプリンタ3に転送する際に、1バイト転送
する度に一定の時間待機時間を挟むようにする。こうし
てデータの転送待ちを行うことによって、全体としての
見かけ上の転送速度を遅くする。このようにして、デー
タ転送速度の最適化を図る。別の具体例では、プリンタ
側でデータ転送を抑制するビジー信号を出力して、見か
け上の転送速度を遅くする。
That is, the printing speed is constant, and the data must be analyzed and supplied to the printer engine in time. However, if the analysis process is delayed, the data cannot be supplied to the printer engine in time. Therefore, blank printing is performed from the middle without supplying the print data. These problems occur when there is data transfer from the host computer at a data transfer rate that far exceeds the printer's required reception rate. Therefore, in this specific example, the data passed from the printer driver 6 by the port driver 7 shown in FIG.
When transferring 1 byte at a time to the printer 3, a certain waiting time is inserted every time 1 byte is transferred. By thus waiting for data transfer, the overall apparent transfer rate is reduced. In this way, the data transfer rate is optimized. In another specific example, a busy signal for suppressing data transfer is output on the printer side to reduce the apparent transfer rate.

【0026】データの転送速度は、ホストコンピュータ
1のプロセッサの演算処理速度のみで一意的に計算する
ことはできない。ホストコンピュータの内部回路の性
能、インタフェースの性能、プリンタ3の受信速度等、
様々なファクターにより変化する。そこで、この具体例
では、図1に示したポートドライバ7に、転送速度調整
部13を設け、印刷データ転送開始前に、ダミーデータ
16を実際にプリンタ3に転送し、所定の待機時間を設
定したときの転送速度を実測する。この結果によって、
見かけ上の転送速度を最適化するための待機時間を算出
する。待機時間は図1に示すループカウンタ17にセッ
トする。ウェイト処理部18は、1バイト転送する毎に
セットされた待機時間だけデータの転送待ちをするよう
にデータ転送部12を制御する。以下、フローチャート
を用いて具体例1のシステムの動作を順に説明する。
The data transfer speed cannot be uniquely calculated only by the arithmetic processing speed of the processor of the host computer 1. The performance of the internal circuit of the host computer, the performance of the interface, the receiving speed of the printer 3, etc.
It depends on various factors. Therefore, in this specific example, the transfer rate adjusting unit 13 is provided in the port driver 7 shown in FIG. 1, and the dummy data 16 is actually transferred to the printer 3 before the start of the transfer of the print data, and the predetermined waiting time is set. Measure the transfer rate at that time. Depending on this result,
Calculate the waiting time to optimize the apparent transfer rate. The waiting time is set in the loop counter 17 shown in FIG. The wait processing unit 18 controls the data transfer unit 12 so as to wait for the data to be transferred for the set waiting time each time one byte is transferred. Hereinafter, the operation of the system according to the first specific example will be sequentially described with reference to the flowchart.

【0027】図1に示すホストコンピュータ1のアプリ
ケーション4は、所定の印刷データを生成する。オペレ
ーティングシステム5は、アプリケーション4から印刷
データを受け取り、これをプリンタドライバ6に渡す。
プリンタドライバ6は、この印刷データをプリンタ3が
認識できるコマンドに変換し、ポートドライバ7に渡
す。ポートドライバ7は、プリンタドライバ6から受け
取ったデータをインタフェースの仕様に合わせてIEE
E1284出力部8に転送する。この過程で、ポートド
ライバ7がその転送速度を調整する。
The application 4 of the host computer 1 shown in FIG. 1 generates predetermined print data. The operating system 5 receives print data from the application 4 and passes it to the printer driver 6.
The printer driver 6 converts this print data into a command that the printer 3 can recognize, and passes it to the port driver 7. The port driver 7 conforms the data received from the printer driver 6 to the IEEE according to the interface specifications.
It is transferred to the E1284 output unit 8. In this process, the port driver 7 adjusts the transfer speed.

【0028】図5には、具体例1のシステム動作フロー
チャートを示す。このフローチャートは、上記ポートド
ライバ7の動作を示す。まず、図のステップS1におい
て、ポートドライバ7の転送速度調整部13は、I/F
処理部11を経由して、プリンタドライバ6から受け取
った転送速度の設定値をSetSpeedにセットする。このSe
tSpeedは、プリンタの要求する最適データ転送速度を示
す。なお、以下に示すSetSpeed、DummySize、Count1、
TransSpeed、Count2、TransSpeed2は、いずれも、演
算処理を実行する場合にデータをセットしておく変数を
示す名称である。ステップS2において、ダミーデータ
16を読み出し、そのサイズをDummySizeにセットす
る。次のステップS3では、ウェイトカウンタがCount
1のときの転送速度TransSpeed1を求める。このウェイ
トカウンタは、転送速度を実測するときに使用するカウ
ンタで、1バイト転送する度に転送待ちをする待ち時間
を保持する。
FIG. 5 shows a system operation flowchart of the first specific example. This flowchart shows the operation of the port driver 7. First, in step S1 in the figure, the transfer rate adjusting unit 13 of the port driver 7 determines that the I / F
The set value of the transfer speed received from the printer driver 6 via the processing unit 11 is set in SetSpeed. This Se
tSpeed indicates the optimum data transfer rate required by the printer. In addition, SetSpeed, DummySize, Count1,
TransSpeed, Count2, and TransSpeed2 are all names indicating variables to which data is set when arithmetic processing is executed. In step S2, the dummy data 16 is read and its size is set in DummySize. In the next step S3, the wait counter is Count
When the value is 1, the transfer speed TransSpeed1 is calculated. This wait counter is a counter used when actually measuring the transfer rate, and holds a waiting time for waiting for transfer each time one byte is transferred.

【0029】ステップS3で求めるTransSpeed1は、待
ち時間がCount1のときの見かけ上の転送速度である。
ステップS4では、待ち時間がCount2のときの見かけ
上の転送速度TransSpeed2を求める。ウェイトカウンタ
の値Count1、Count2は、図1に示したポートドライバ
7のカウンタ発生部15が予め保持している。これを転
送速度調整部13が読み出して使用する。
TransSpeed1 obtained in step S3 is an apparent transfer speed when the waiting time is Count1.
In step S4, the apparent transfer rate TransSpeed2 when the waiting time is Count2 is obtained. The values Count1 and Count2 of the wait counter are held in advance by the counter generator 15 of the port driver 7 shown in FIG. This is read and used by the transfer rate adjusting unit 13.

【0030】図6には、上記ステップS3、ステップS
4における見かけ上の転送速度を求めるためのフローチ
ャートを示す。(a)は、転送速度TransSpeed1の計算
動作フローチャートである。(b)は、転送速度TransS
peed2の計算動作フローチャートである。まず、(a)
のステップS1において、カウンタ発生部15から受け
取った値Count1をウェイトカウンタにセットする。次
に、ステップS2において、タイマ14をスタートさせ
る。タイマ14は、ディジタルカウンタ等から構成され
る。データ転送部12に対しダミーデータ16とダミー
データサイズDummySize、ウェイトカウンタの値Count1
を渡してデータ転送命令を出す。
FIG. 6 shows steps S3 and S above.
4 shows a flowchart for obtaining an apparent transfer rate in No. 4. (A) is a flowchart of a calculation operation of the transfer speed TransSpeed1. (B) is the transfer rate TransS
It is a calculation operation flowchart of peed2. First, (a)
In step S1, the value Count1 received from the counter generator 15 is set in the wait counter. Next, in step S2, the timer 14 is started. The timer 14 is composed of a digital counter or the like. For the data transfer unit 12, dummy data 16, dummy data size DummySize, and wait counter value Count1
To issue a data transfer command.

【0031】データ転送部12は、転送速度調整部13
から受け取ったこれらの値を使用して、1バイトダミー
データを転送する毎にウェイトカウンタに設定された値
Count1だけ転送待ちを行い、全てのダミーデータを転
送する。ダミーデータサイズDummySize分のダミーデー
タ16の転送が終了すると、ステップS5で、タイマ1
4をストップし、そのときのタイマ値をTime1にセット
する。ステップS6では、ダミーデータサイズDummySiz
eとタイマ値Time1から、そのときの転送速度を計算す
る。(b)は(a)と全く同様の処理で、ウェイトカウ
ンタの値をCount2に変えて見かけ上の転送速度TransSp
eed2を計算する。演算式は次の通りである。 TransSpeed1(ウェイトカウンタの値Count1のとき) =Time1/DummySize …(1) TransSpeed2(ウェイトカウンタの値Count2のとき) =Time2/DummySize …(2)
The data transfer unit 12 includes a transfer speed adjusting unit 13
The value set in the wait counter each time 1-byte dummy data is transferred using these values received from
Wait for the transfer for Count1 and transfer all dummy data. When the transfer of the dummy data 16 for the dummy data size DummySize is completed, in step S5, the timer 1
Stop 4 and set the timer value at that time to Time1. In step S6, the dummy data size DummySiz
The transfer rate at that time is calculated from e and the timer value Time1. (B) is the same processing as (a), except that the value of the wait counter is changed to Count2 and the apparent transfer rate TransSp
Calculate eed2. The calculation formula is as follows. TransSpeed1 (when the wait counter value is Count1) = Time1 / DummySize (1) TransSpeed2 (when the wait counter value is Count2) = Time2 / DummySize (2)

【0032】次に、図5のステップS5に進み、求めら
れた2種類の見かけ上の転送速度TransSpeed1、TransS
peed2とそれぞれその転送速度測定時のカウンタの値Co
unt1、Count2からカウンタを“1”増加させたときの
転送速度の減少率Decを計算する。
Next, the process proceeds to step S5 in FIG. 5, and the two types of obtained apparent transfer rates TransSpeed1 and TransS are obtained.
peed2 and the counter value Co when measuring the transfer rate
From unt1 and Count2, the decrease rate Dec of the transfer rate when the counter is increased by "1" is calculated.

【0033】図7には、この転送速度の減少率計算の説
明図を示す。この図に示す横軸はウェイトカウンタの
値、縦軸は実測された見かけ上の転送速度を示す。図に
示すように、ウェイトカウンタの値Count1を設定して
見かけ上の転送速度を測定した場合の点Pと、ウェイト
カウンタの値Count2を設定して見かけ上の転送速度を
測定した場合の点Qとを直線で結ぶことによって、転送
速度の減少率が計算される。即ち、この直線の傾きは、
ウェイトカウンタの値を“1”ずつ減少させた場合の転
送速度の変化率に相当する。この計算式は、下の(1)
式に示す通りとなる。 Dec=|TransSpeed1−TransSpeed2|/|Count1−Count2| =|転送速度1−転送速度2|/ |ウェイトカウンタ1−ウェイトカウンタ2| …(3)
FIG. 7 shows an explanatory diagram of this transfer rate reduction rate calculation. The horizontal axis shown in this figure shows the value of the wait counter, and the vertical axis shows the actually measured apparent transfer rate. As shown in the figure, point P when the wait counter value Count1 is set and the apparent transfer rate is measured, and point Q when the wait counter value Count2 is set and the apparent transfer rate is measured. By connecting and with a straight line, the reduction rate of the transfer rate is calculated. That is, the slope of this straight line is
This corresponds to the rate of change of the transfer rate when the value of the wait counter is decreased by "1". This formula is (1) below
It is as shown in the formula. Dec = | TransSpeed1-TransSpeed2 | / | Count1-Count2 | = | Transfer speed 1-Transfer speed 2 | / | Wait counter 1-wait counter 2 | ... (3)

【0034】これによって、ウェイトカウンタの値をい
くつにすると、見かけ上の転送速度がどのような値に変
化するかを計算により求めることができる。これによっ
て、最適転送速度にするためのウェイトカウンタの値を
割り出す。これを図1に示すループカウンタ17にセッ
トする。ループカウンタ17は、実際にデータ転送をす
るときに待機時間を格納しておくレジスタである。例え
ば、プリンタの性能が印刷速度600dpi(ドット/
インチ)、印刷スピード4ppm(ページ/分)、受信
バッファサイズ128キロバイトであるとする。このよ
うなプリンタでレターサイズの用紙に印刷を行う場合、
印刷データの転送速度は次のようになる。
With this, it is possible to calculate what value of the wait counter the value of the apparent transfer speed changes. With this, the value of the wait counter for obtaining the optimum transfer rate is calculated. This is set in the loop counter 17 shown in FIG. The loop counter 17 is a register that stores a waiting time when data is actually transferred. For example, if the printer performance is a printing speed of 600 dpi (dot /
Inches), the printing speed is 4 ppm (pages / minute), and the reception buffer size is 128 kilobytes. When printing on letter size paper with such a printer,
The transfer rate of print data is as follows.

【0035】まず、レターサイズの用紙は、縦11イン
チ、横8.5インチである。この用紙に印刷をするため
のデータサイズの最大値は、11×600×8.5×6
00=33660000(ビット)になる。即ちデータサイズは
約4メガバイトである。このデータを上記のようなスピ
ードで印刷した場合に、1秒間に転送しなければならな
いデータ量は次の通りとなる。 4メガバイト×4ppm/60秒=280キロバイト/
First, the letter size paper has a length of 11 inches and a width of 8.5 inches. The maximum data size for printing on this paper is 11 x 600 x 8.5 x 6
00 = 33660000 (bits). That is, the data size is about 4 megabytes. When this data is printed at the above speed, the amount of data that must be transferred per second is as follows. 4 megabytes x 4 ppm / 60 seconds = 280 kilobytes /
Second

【0036】なお、この転送速度はプリンタが連続的に
一定速度でデータを受信し続ける場合の速度である。し
かしながら、1ページ分のデータを記憶するために十分
な容量の受信バッファを持たないホストベースプリンタ
では、データ転送速度をこの値よりも速くして、断続的
にデータを受信する。ホストコンピュータのデータ転送
速度の設定値は、既に説明したようにSetSpeedにセット
されている。このとき、上記ウェイトカウンタCount1
とその見かけ上の転送速度TransSpeed1及び上記減少率
Decとを使用すると、最適待ち時間即ちループカウン
タの値を求める式は次のように表される。 ループカウンタ=(TransSpeed1−SetSpeed)/Dec+Count1 …(4)
The transfer speed is a speed at which the printer continuously receives data at a constant speed. However, in a host-based printer that does not have a reception buffer having a sufficient capacity to store one page of data, the data transfer rate is set higher than this value, and data is intermittently received. The set value of the data transfer rate of the host computer is set in SetSpeed as already described. At this time, the wait counter Count1
Using the apparent transfer rate TransSpeed1 and the reduction rate Dec, the equation for obtaining the optimum waiting time, that is, the value of the loop counter is expressed as follows. Loop counter = (TransSpeed1-SetSpeed) / Dec + Count1 (4)

【0037】例えば、図2に示したものよりも更に動作
クロックの遅い386SX/25MHzのプロセッサを
組み込んだホストコンピュータから、転送速度設定値Se
tSpeedが400キロバイトでデータを転送したい場合、
上記ループカウンタの値は次のようにして求められる。
ダミーデータのサイズを64キロバイトとする。ウェイ
トカウンタCount1を“1”としたときの転送時間Time
1は130msとなり、このときの転送速度TransSpeed
1は、上記(1)式により480キロバイト/秒になっ
た。
For example, from a host computer incorporating a 386SX / 25 MHz processor whose operating clock is slower than that shown in FIG.
If you want to transfer data with tSpeed of 400 kilobytes,
The value of the loop counter is obtained as follows.
The size of dummy data is 64 kilobytes. Transfer time Time when the wait counter Count1 is set to "1"
1 is 130 ms, and the transfer speed at this time is TransSpeed
1 became 480 kilobytes / second according to the above formula (1).

【0038】また、ウェイトカウンタCount2を“1
0”としたときの転送時間Time2は320msとなり、
転送速度TransSpeed2は上記(2)式により200キロ
バイト/秒になった。これを上記(3)式に当てはめる
と、減少率Decは次の式で計算される。 (480−200)/(10−1)≒27キロバイト/
回 以上の結果から、ループカウンタの値は、上記(4)式
より次のように計算される。 (480−400)/27+1=3.96≒4 従って、この例では、ループカウンタの値を“4”にす
ればSetSpeed即ちプリンタの要求する最適転送速度でデ
ータを転送できることがわかる。実際にこのループカウ
ンタを使用したデータ転送動作例を次に説明する。
The wait counter Count2 is set to "1".
Transfer time Time2 when set to 0 "is 320 ms,
The transfer speed TransSpeed2 has become 200 kilobytes / second according to the equation (2). When this is applied to the above equation (3), the reduction rate Dec is calculated by the following equation. (480-200) / (10-1) ≈27 kilobytes /
The value of the loop counter is calculated from the above results by the above equation (4) as follows. (480-400) /27+1=3.96≈4 Therefore, in this example, it can be seen that if the value of the loop counter is set to "4", the data can be transferred at SetSpeed, that is, the optimum transfer speed required by the printer. An actual data transfer operation example using this loop counter will be described below.

【0039】図8は、図1に示したポートドライバ7の
データ転送動作フローチャートを示す。このデータ転送
動作は、見かけ上の転送速度測定のためにダミーデータ
を転送する場合も、実際にプリンタで印刷を行うデータ
を転送する場合も同様である。まずステップS1におい
て、データ転送部12は、I/F処理部11から受け取
ったプリンタ3に転送すべきデータサイズをSubSizeに
セットする。なお、ダミーデータを転送する場合には、
ダミーデータを転送速度調整部13から受け取る。そこ
で、その旨を図中に示した。
FIG. 8 shows a data transfer operation flowchart of the port driver 7 shown in FIG. This data transfer operation is the same whether dummy data is transferred to measure the apparent transfer speed or data to be actually printed by the printer. First, in step S1, the data transfer unit 12 sets SubSize to the data size to be transferred to the printer 3 received from the I / F processing unit 11. In addition, when transferring dummy data,
Dummy data is received from the transfer rate adjusting unit 13. Therefore, this is shown in the figure.

【0040】次に、ステップS2では、図1に示すウェ
イト処理部18が、ループカウンタ17から受け取った
ウェイトカウンタの値をSubCountにセットする。次に、
ステップS3において、データ転送部12は、転送すべ
きデータの1バイト分を読み出して出力する。ステップ
S4において、ウェイト処理部18はSubCountのデクリ
メントを行い、ステップS5で、この値が“0”になっ
たかどうかを判断する。即ち、ここで、ウェイトカウン
タ分だけ転送待ちを行う。ウェイトカウンタ分即ち待機
時間だけ転送待ちが終了すると、ステップS6に進み、
データ転送部12は、転送データのサイズをデクリメン
トする。そして、ステップS7において、転送データが
全て転送されたかどうかの判断を行う。そして、データ
全てが転送終了するまで、ステップS2からステップS
7の処理を繰り返す。
Next, in step S2, the wait processing unit 18 shown in FIG. 1 sets SubCount to the value of the wait counter received from the loop counter 17. next,
In step S3, the data transfer unit 12 reads and outputs one byte of data to be transferred. In step S4, the wait processing unit 18 decrements SubCount, and in step S5, it is determined whether or not this value becomes "0". That is, here, the transfer is waited for the wait counter. When the waiting of the transfer for the wait counter, that is, the waiting time is completed, the process proceeds to step S6,
The data transfer unit 12 decrements the size of transfer data. Then, in step S7, it is determined whether or not all the transfer data has been transferred. Then, from step S2 to step S until all the data is transferred.
The process of 7 is repeated.

【0041】なお、上記の例において、転送速度の減少
率を、異なる待機時間で転送したときの見かけ上の転送
速度の差に基づいて計算したが、見かけ上の転送速度の
比等により求めても差し支えない。
In the above example, the rate of decrease in the transfer rate was calculated based on the difference in the apparent transfer rates when the transfer was performed with different waiting times. It doesn't matter.

【0042】〈具体例1の効果〉以上のように、データ
転送前に、所定量のダミーデータを任意の待機時間で転
送したときの、見かけ上の転送速度を実測し、この見か
け上の転送速度と待機時間との関係から、待機時間を選
択すれば、ホストコンピュータ1とプリンタ3との組み
合わせに応じた最適の転送速度で、ホストコンピュータ
1からプリンタ3へのデータ転送を行うことができる。
<Effects of Concrete Example 1> As described above, before the data transfer, the apparent transfer speed when a predetermined amount of dummy data is transferred at an arbitrary waiting time is measured, and the apparent transfer is performed. If the waiting time is selected from the relationship between the speed and the waiting time, the data transfer from the host computer 1 to the printer 3 can be performed at the optimum transfer speed according to the combination of the host computer 1 and the printer 3.

【0043】なお、このデータ転送処理は、プリンタへ
のデータ転送のみならず様々な外部装置へのデータ転送
に同様に適用できる。また、データ転送速度を実際にダ
ミーデータを転送することにより実測するため、ホスト
コンピュータのプロセッサの動作クロックやインタフェ
ースの構成、プリンタのバッファサイズ等、様々な要因
に基づく見かけ上のデータ転送速度を正確に測定し、転
送速度の最適化を図ることができる。
The data transfer process can be applied to not only the data transfer to the printer but also the data transfer to various external devices. Also, since the data transfer rate is measured by actually transferring dummy data, the apparent data transfer rate based on various factors such as the operating clock of the host computer processor, the interface configuration, and the printer buffer size can be accurately measured. Therefore, the transfer rate can be optimized by measuring

【0044】〈具体例2〉この具体例は、上記の例より
もホストコンピュータのプロセッサが更に動作クロック
の速いものである場合に適用する。上記のようにして、
見かけ上の転送速度を実測して最適な待機時間を演算し
たとしても、実際と誤差が生じることがある。この例で
は、演算処理をした結果から、選択された待機時間を使
用して見かけ上の転送時間を実測し、目標とするデータ
転送速度との誤差を検出して、更に待機時間を補正す
る。システムの構成は、図1に示したものと同様である
ため、そのブロック図の図示は省略する。
<Specific Example 2> This specific example is applied when the processor of the host computer has a faster operation clock than the above example. As above
Even if the apparent transfer speed is actually measured and the optimum waiting time is calculated, an error may occur from the actual value. In this example, an apparent transfer time is actually measured by using the selected waiting time from the result of the arithmetic processing, an error from the target data transfer speed is detected, and the waiting time is further corrected. Since the system configuration is the same as that shown in FIG. 1, its block diagram is omitted.

【0045】図9に、具体例2のシステム動作フローチ
ャートを示す。これは、図5に示した具体例1のシステ
ム動作のステップS5以降を改良したものである。従っ
て、図5に示すステップS1〜ステップS4までの処理
は、具体例1と同様であり、図示を省略した。図9のス
テップS1では、具体例1と同様にして、カウンタを
“1”増加したときの転送速度の減少率Decを計算す
る。
FIG. 9 shows a system operation flowchart of the second specific example. This is an improvement of step S5 and subsequent steps of the system operation of the specific example 1 shown in FIG. Therefore, the processing from step S1 to step S4 shown in FIG. 5 is the same as that of the first specific example, and illustration thereof is omitted. In step S1 of FIG. 9, the decrease rate Dec of the transfer rate when the counter is increased by “1” is calculated in the same manner as in the first specific example.

【0046】そして、ステップS2において、プリンタ
の要求する転送速度設定値SetSpeedに近付けるためのル
ープカウンタの値を計算する。ここで、ホスト側のプロ
セッサが図2に示した486DX以上の高速プロセッサ
によるシステムクロックで動作する場合には、転送速度
とウェイトカウンタとの関係が直線で表せなくなる。
Then, in step S2, the value of the loop counter for approaching the transfer speed set value SetSpeed requested by the printer is calculated. Here, when the processor on the host side operates at the system clock of the high-speed processor of 486DX or higher shown in FIG. 2, the relationship between the transfer rate and the wait counter cannot be represented by a straight line.

【0047】図10には、ウェイトカウンタの誤差説明
図を示す。図7と同様に、グラフの縦軸は転送速度、横
軸はウェイトカウンタの値を示す。具体例1では、転送
速度とウェイトカウンタの関係を図の破線のような直線
で近似した。しかしながら、計算によって求めたループ
カウンタをウェイトカウンタとして、ダミーデータを実
際に転送してその結果をプロットすると、転送速度とウ
ェイトカウンタの関係は、図の実線に示すように、やや
カーブしてくる。
FIG. 10 shows an error explanatory diagram of the wait counter. Similar to FIG. 7, the vertical axis of the graph represents the transfer rate and the horizontal axis represents the value of the wait counter. In the specific example 1, the relationship between the transfer rate and the wait counter is approximated by a straight line like the broken line in the figure. However, when the dummy data is actually transferred using the loop counter obtained by the calculation as the wait counter and the result is plotted, the relationship between the transfer speed and the wait counter is slightly curved as shown by the solid line in the figure.

【0048】従って、具体例1のように、破線に示す直
線により転送速度がSetSpeedのときのウェイトカウンタ
の値C1を用いてデータ転送をすると、実際の転送速度
はSS1となってしまう。そこで、図9のステップS4
に示すように、実測した転送速度SS1と目的とする転
送速度SetSpeedとの差を考慮して、ループカウンタの値
の補正を行う。この補正後のループカウンタ値を用い
て、既に説明したデータ転送を行う(図9ステップS
5)。
Therefore, when data transfer is performed using the value C1 of the wait counter when the transfer speed is SetSpeed as indicated by the broken line as in the first embodiment, the actual transfer speed becomes SS1. Therefore, step S4 of FIG.
As shown in, the loop counter value is corrected in consideration of the difference between the actually measured transfer rate SS1 and the target transfer rate SetSpeed. The data transfer already described is performed using the loop counter value after this correction (step S in FIG. 9).
5).

【0049】図11には、この誤差補正動作のフローチ
ャートを示した。まず、ステップS1において、図1に
示すダミーデータ16を読み出し、そのサイズをDummyS
izeにセットする。次に、ステップS2において、ルー
プカウンタの値をウェイトカウンタCount3にセットす
る。これは、図10のC1に相当する値である。そし
て、ステップS3で、タイマをスタートさせる。次のス
テップS4で、データ転送部12に対し、ダミーデー
タ、ダミーデータサイズ、ウェイトカウンタ等のデータ
を渡して、データ転送命令を出す。データ転送部12
は、受け取った値を使用して、設定された待ち時間C1
だけ転送待ちを行いながらダミーデータを転送する。
FIG. 11 shows a flowchart of this error correction operation. First, in step S1, the dummy data 16 shown in FIG. 1 is read and its size is set to DummyS
Set to ize. Next, in step S2, the value of the loop counter is set in the wait counter Count3. This is a value corresponding to C1 in FIG. Then, in step S3, the timer is started. In the next step S4, dummy data, dummy data size, data such as a wait counter, etc. are passed to the data transfer unit 12, and a data transfer instruction is issued. Data transfer unit 12
Uses the received value to set the waiting time C1
Only while waiting for the transfer, the dummy data is transferred.

【0050】ダミーデータの転送が終了すると、ステッ
プS6で、タイマ14をストップし、そのときのタイマ
値をTime3にセットする。ステップS7では、ダミーデ
ータサイズとタイマ値から転送速度を計算する。ステッ
プS8で、こうして求められた転送速度が目的とするプ
リンタの最適転送速度SetSpeed以下かどうかを判断す
る。もし、実測した転送速度が目標よりも小さければス
テップS9に進み、カウンタをアップして補正する。目
標より大きければステップS10に進み、カウンタをダ
ウンして補正する。
When the transfer of the dummy data is completed, the timer 14 is stopped in step S6, and the timer value at that time is set to Time3. In step S7, the transfer rate is calculated from the dummy data size and the timer value. In step S8, it is determined whether the transfer speed thus obtained is equal to or lower than the optimum transfer speed SetSpeed of the target printer. If the measured transfer rate is lower than the target, the process proceeds to step S9, and the counter is incremented and corrected. If it is larger than the target, the process proceeds to step S10 and the counter is decremented and corrected.

【0051】図12には、カウンタをダウンして補正す
る場合の動作フローチャートを示す。まず、ステップS
1で、誤差の生じているループカウンタの値をCtrCount
1にセットする。次に、ステップS2において、ダミー
データを読み出し、そのサイズをDummySizeにセットす
る。そして、ステップS3において、ループカウンタの
値を1つダウンさせてウェイトカウンタにセットする
(ステップS4)。ステップS5で、タイマをスタート
させる。
FIG. 12 shows an operation flowchart when the counter is down and corrected. First, step S
In 1, set the value of the loop counter that has an error to CtrCount.
Set to 1. Next, in step S2, the dummy data is read and its size is set in DummySize. Then, in step S3, the value of the loop counter is decremented by 1 and set in the wait counter (step S4). In step S5, a timer is started.

【0052】その後、ステップS6では、これまで説明
したと同様の要領で、そのウェイトカウンタの値による
データ転送速度を実測する。得られたタイマ値Time4
を、ステップS7において使用して、実際のデータ転送
速度を計算する。ステップS8では、データ転送速度が
目標とする値を超えたかどうかを判断する。超えなけれ
ば、再びステップS3に戻り、更にウェイトカウンタの
値をダウンさせる。こうして、目標とする値を超えるま
で、ウェイトカウンタの値をダウンさせながら、ステッ
プS3〜ステップS8の処理を繰り返す。
Then, in step S6, the data transfer rate based on the value of the wait counter is measured in the same manner as described above. Obtained timer value Time4
Is used in step S7 to calculate the actual data transfer rate. In step S8, it is determined whether or not the data transfer rate exceeds the target value. If it does not exceed, the process returns to step S3 again to further decrease the value of the wait counter. In this way, the process of steps S3 to S8 is repeated while the value of the wait counter is decreased until the target value is exceeded.

【0053】目標とする値を超えた場合には、ステップ
S9に進み、ウェイトカウンタの値を1つ戻す。そし
て、ステップS10で、この値を最終値に決定し、ルー
プカウンタ17にセーブする。これで待機時間の補正が
終了する。
When the value exceeds the target value, the process proceeds to step S9, and the value of the wait counter is decremented by one. Then, in step S10, this value is determined as the final value and saved in the loop counter 17. This completes the correction of the waiting time.

【0054】図13は、カウンタをアップして補正する
場合の動作のフローチャートである。図12に示す処理
と比較すると、ステップS3で、ウェイトカウンタの値
を“1”ずつアップさせる点のみが異なる。ウェイトカ
ウンタの値が目標値に達した場合に、図12の場合と同
様、その値をループカウンタ17にセットする。こうし
て、いずれの場合においても、ループカウンタの値が目
標値に近付くまで実測を繰り返し、転送速度の最適化を
図る。
FIG. 13 is a flow chart of the operation when the counter is incremented for correction. Compared with the process shown in FIG. 12, the only difference is that the value of the wait counter is incremented by “1” at step S3. When the value of the wait counter reaches the target value, that value is set in the loop counter 17 as in the case of FIG. In this way, in any case, the actual measurement is repeated until the value of the loop counter approaches the target value to optimize the transfer rate.

【0055】なお、具体例1や具体例2に示した処理
は、印刷開始前に自動的に行うとよい。例えばホストコ
ンピュータとプリンタとを接続し、プリンタの電源を投
入したときに、自動的に制御プログラムが起動すること
が好ましい。また、任意のタイミングで、オペレータの
指示によって処理をスタートさせるようにしてもよい。
The processes shown in the specific examples 1 and 2 may be automatically performed before the start of printing. For example, it is preferable that the control program is automatically started when the host computer and the printer are connected and the power of the printer is turned on. Further, the process may be started at an arbitrary timing according to an instruction from the operator.

【0056】〈具体例2の効果〉以上の処理により、高
速の動作クロックのホストコンピュータをプリンタに接
続した場合に、演算処理による転送速度の最適化に加え
て、実測による転送速度の補正を行うため、より転送速
度を最適値に近付けることが可能になる。
<Effect of Concrete Example 2> By the above processing, when the host computer having a high-speed operation clock is connected to the printer, the transfer rate is optimized by the arithmetic processing and the transfer rate is actually measured. Therefore, it becomes possible to bring the transfer rate closer to the optimum value.

【0057】〈具体例3〉具体例3は、要求されるデー
タ転送速度の精度が毎秒数十キロバイト以下の誤差に収
まるように速度調整を行う例を説明する。上記の例で
は、ホストコンピュータ1のポートドライバ7に設けら
れたタイマ14を用いて、見かけ上の転送速度を測定し
た。ところが、プリンタ3の側には、ホストコンピュー
タ側より更に精度の高いタイマが設けられている場合が
ある。このような場合、ホストコンピュータ側でなくプ
リンタ側で、見かけ上の転送速度を測定することによっ
て、高い精度で転送速度の最適化を図ることができる。
<Specific Example 3> In the specific example 3, an example in which the speed is adjusted so that the accuracy of the required data transfer rate is within an error of several tens of kilobytes per second or less. In the above example, the apparent transfer rate is measured using the timer 14 provided in the port driver 7 of the host computer 1. However, the printer 3 may be provided with a timer with higher accuracy than the host computer side. In such a case, the transfer rate can be optimized with high accuracy by measuring the apparent transfer rate on the printer side instead of the host computer side.

【0058】図14には、具体例3のシステム構成を示
すブロック図を示す。図のホストコンピュータ1は、具
体例1の場合と同様の構成をしている。両者の同一部分
には同一の符号を付した。なお、ポートドライバ7は、
具体例1で用いたタイマ14が不要である。プリンタ側
のタイマを用いて見かけ上のデータ転送速度を測定する
ためである。図のプリンタ3には、データ受信部20、
データ解析部23及び印刷部24が設けられている。こ
のデータ受信部20には、ホストコンピュータから転送
されたデータを受信する受信部21と、具体例1におい
て、データ転送速度を測定したものと同様の役割を持つ
タイマ22が設けられている。
FIG. 14 is a block diagram showing the system configuration of the third specific example. The host computer 1 in the figure has the same configuration as that of the first specific example. The same parts of both are denoted by the same reference numerals. The port driver 7
The timer 14 used in the specific example 1 is unnecessary. This is to measure the apparent data transfer rate using the timer on the printer side. The printer 3 in the figure includes a data receiving unit 20,
A data analysis unit 23 and a printing unit 24 are provided. The data receiving unit 20 is provided with a receiving unit 21 that receives data transferred from a host computer, and a timer 22 having the same role as that of measuring the data transfer rate in the first specific example.

【0059】図15には、具体例3のシステム動作説明
図を示す。具体例3の場合にも、図5と同様の見かけ上
のデータ転送速度測定処理を行う。即ち、図5のステッ
プS3やステップS5において、ウェイトカウンタを変
更しながら見かけ上の転送速度を求める動作を行う。図
15のステップS1〜ステップS7は、図6(a)ある
いは(b)の処理に相当する。
FIG. 15 shows a system operation explanatory diagram of the third specific example. Also in the case of the specific example 3, the apparent data transfer rate measurement processing similar to that in FIG. 5 is performed. That is, in steps S3 and S5 of FIG. 5, an operation for obtaining an apparent transfer rate is performed while changing the wait counter. Steps S1 to S7 of FIG. 15 correspond to the process of FIG. 6A or 6B.

【0060】まず、図15のステップS1において、カ
ウンタ発生部15から受け取った値をウェイトカウンタ
Count6にセットする。次に、ステップS2において、
プリンタ3に対し転送時間測定開始コマンドを転送す
る。これによって、プリンタ3のタイマ22(図14)
が起動する(図15ステップS8)。
First, in step S1 of FIG. 15, the value received from the counter generator 15 is set to the wait counter.
Set to Count6. Next, in step S2,
The transfer time measurement start command is transferred to the printer 3. As a result, the timer 22 of the printer 3 (FIG. 14)
Is activated (step S8 in FIG. 15).

【0061】次に、図15のステップS3において、デ
ータ転送部12に対しダミーデータ、ダミーデータサイ
ズ、ウェイトカウンタ等を渡して、データ転送命令を出
す。ステップS4では、データ転送部12が受け取った
値を使用して、ウェイトカウンタに設定した待ち時間を
使用しながらダミーデータを転送する。このダミーデー
タは、図15ステップS9に示すように、プリンタ側に
受信される。
Next, in step S3 of FIG. 15, dummy data, dummy data size, wait counter, etc. are passed to the data transfer section 12 to issue a data transfer instruction. In step S4, the value received by the data transfer unit 12 is used to transfer the dummy data while using the waiting time set in the wait counter. This dummy data is received by the printer as shown in step S9 of FIG.

【0062】次に、そのダミーデータの転送が終了する
と、ステップS5において、ホストコンピュータ1から
プリンタ3に対し、データ転送終了コマンドを転送す
る。プリンタ側では、ステップS10において、データ
転送コマンドを受け取った時点でタイマ22をストップ
し、そのタイマ値をホストコンピュータ1に返す。ステ
ップS6では、ホストコンピュータ1がプリンタ3から
そのタイマ値を受け取り、タイマ値Time6にセットす
る。その後、ダミーデータサイズとタイマ値から見かけ
上の転送速度を計算する(ステップS6、ステップS
7)。
Next, when the transfer of the dummy data is completed, a data transfer end command is transferred from the host computer 1 to the printer 3 in step S5. On the printer side, in step S10, the timer 22 is stopped when the data transfer command is received, and the timer value is returned to the host computer 1. In step S6, the host computer 1 receives the timer value from the printer 3 and sets the timer value Time6. After that, the apparent transfer rate is calculated from the dummy data size and the timer value (steps S6 and S).
7).

【0063】具体例1では、2種類のウェイトカウンタ
を設定し、ウェイトカウンタが“1”増加した場合の転
送速度の減少率を計算した。具体例3においても、図1
5に示す処理をそれぞれ異なるウェイトカウンタの値を
設定して実行する。こうして、具体例1と同様にして、
転送速度の最適化を図る。
In the specific example 1, two types of wait counters are set, and the rate of decrease in transfer rate when the wait counter increases by "1" is calculated. Also in the specific example 3, FIG.
The process shown in 5 is executed by setting different values of the wait counter. Thus, in the same manner as in Example 1,
Optimize the transfer speed.

【0064】通常、ホストコンピュータ1のタイマは精
度が数十ミリ秒ほどのものが多く、ループカウンタ17
に設定する待機時間は数十ミリ程度の誤差を含むものに
なる。このため、要求される転送速度の精度が高い場
合、その精度を満たすことが困難になる。一方、プリン
タ3のタイマ22(図14)の精度が数マイクロ秒程度
であれば、これによって十分正確な見かけ上の転送時間
を測定できる。
Normally, most of the timers of the host computer 1 have an accuracy of several tens of milliseconds, and the loop counter 17
The standby time set to includes an error of several tens of millimeters. For this reason, when the required accuracy of the transfer rate is high, it becomes difficult to satisfy the accuracy. On the other hand, if the accuracy of the timer 22 (FIG. 14) of the printer 3 is about several microseconds, the apparent transfer time can be measured with sufficient accuracy.

【0065】〈具体例3の効果〉データ転送速度に高い
精度が要求される場合に、プリンタ側のタイマを用いる
ことによって、転送速度のより精密な最適化が可能にな
る。その他の効果は具体例1等と同様である。
<Effect of Concrete Example 3> When high accuracy is required for the data transfer rate, a more accurate transfer rate can be optimized by using a timer on the printer side. Other effects are the same as those of the first specific example.

【0066】〈具体例4〉上記のように、転送速度の最
適化をはかったとしても、インタフェースの影響により
正常なデータ転送ができないことがある。例えば、イン
タフェースケーブルのインピーダンスによって、信号線
を流れるパルスの波形が崩れるために、同期が取れなく
なる場合等である。このような現象を、ここではなまり
によるデータ抜けと称する。なまりによるデータ抜けが
生じる場合には、データ転送速度を更に遅くすればよ
い。そこで、このなまりによるデータ抜けの発生を検出
し、どの程度データ転送速度を遅くするか決定する方法
をこの具体例で説明する。
<Example 4> As described above, even if the transfer rate is optimized, normal data transfer may not be possible due to the influence of the interface. For example, there is a case where the waveform of the pulse flowing through the signal line is broken due to the impedance of the interface cable, so that the synchronization is lost. Such a phenomenon is referred to herein as data loss due to rounding. If data loss due to rounding occurs, the data transfer rate may be further reduced. Therefore, a method of detecting the occurrence of data loss due to this rounding and determining to what extent the data transfer rate should be slowed will be described in this specific example.

【0067】図16は、具体例4のシステム構成を示す
ブロック図である。図のホストコンピュータ1は、具体
例1の場合と同様の構成をしている。両者の同一部分に
は同一の符号を付した。なお、ポートドライバ7には、
ハイカウンタ26とローカウンタ27とを設けた。これ
らに2種の待機時間をセットしておき、それぞれの場合
の見かけ上のデータ転送速度を測定するためである。プ
リンタ3には、受信したデータのバイト数をカウントし
て集計するサムチェック部28を新たに設ける。
FIG. 16 is a block diagram showing the system configuration of the fourth specific example. The host computer 1 in the figure has the same configuration as that of the first specific example. The same parts of both are denoted by the same reference numerals. In addition, the port driver 7
A high counter 26 and a low counter 27 are provided. This is because two types of waiting times are set in advance and the apparent data transfer rate in each case is measured. The printer 3 is newly provided with a sum check unit 28 that counts and totals the number of bytes of received data.

【0068】ホストコンピュータ1とプリンタ3との間
を接続するインタフェースケーブルは、信号線を8本使
用している。これらの信号線に伝送されるデータの内容
を全て変化させるために、ダミーデータとして、0〜6
5535の間の64キロバイトのデータを使用する。1
バイト転送するたびに信号線を流れるデータの内容を変
化させて、なまりによるデータ抜けを監視するためであ
る。
The interface cable for connecting the host computer 1 and the printer 3 uses eight signal lines. In order to change all the contents of the data transmitted to these signal lines, 0 to 6 are used as dummy data.
Use 64 kilobytes of data between 5535. 1
This is because the content of data flowing through the signal line is changed each time a byte is transferred, and data loss due to rounding is monitored.

【0069】図17には、信号線のなまりによるデータ
抜けと防止策説明図を示す。図の(a)は、8ビットの
データがシリアルに順に転送される状態を示す。信号線
のうちのいずれか1本の信号レベルが、この図に示すよ
うなタイミングで変化するものとする。(b)は、プリ
ンタ側でデータを受信するためのタイミングを知らせる
ストローブである。このストローブもデータとともにイ
ンタフェースケーブルを通じてプリンタに転送される。
FIG. 17 is an explanatory view of data loss due to rounding of the signal line and a preventive measure. In the figure, (a) shows a state in which 8-bit data is serially transferred. It is assumed that the signal level of any one of the signal lines changes at the timing shown in this figure. (B) is a strobe for notifying the timing for receiving data on the printer side. This strobe is also transferred to the printer through the interface cable together with the data.

【0070】プリンタでは、このストローブのレベルが
ローレベルからハイレベルに上がったタイミングと、ハ
イレベルからローレベルに下がったタイミングで、各デ
ータを受信バッファに取り込む。図の例では、時刻t1
で最初のデータを取り込み、時刻t2で次のデータを取
り込み、時刻t3で最後のデータを取り込んでいる。こ
のストローブ信号になまりが生じると次のような状態に
なる。
In the printer, each data is taken into the reception buffer at the timing when the strobe level rises from the low level to the high level and the timing when the strobe level falls from the high level to the low level. In the illustrated example, time t1
The first data is fetched at, the next data is fetched at time t2, and the last data is fetched at time t3. When the strobe signal is rounded, the following state occurs.

【0071】(c)は、(a)と同じデータである。
(d)は、ストローブである。このストローブが、図に
示す時刻t1からt2に移るタイミングでなまりを生じ
ている。このnストローブがローレベルになった時刻t
1で、最初のデータを取り込み、次にnストローブがハ
イレベルになった時点で、次のデータを取り込む。とこ
ろが、信号になまりがあるため、ハイレベルに達した時
刻t2にデータを取り込もうとすると、既に次のデータ
が入力し、1回分のデータ抜けが生じてしまう。
(C) is the same data as (a).
(D) is a strobe. This strobe is blunted at the timing from time t1 to t2 shown in the figure. Time t when this n strobe becomes low level
At 1, the first data is fetched, and when the n strobe becomes high level next, the next data is fetched. However, since the signal is rounded, if the data is to be taken in at the time t2 when the high level is reached, the next data is already input and one data loss occurs.

【0072】この発明では、こうした問題を防止するた
めに、データのなまりが発生し易い部分で部分的にデー
タの転送速度を調整する。(e)には、図の時刻t2の
部分でデータの転送を時間Tだけ遅らせたときのデータ
の内容を示す。(f)に示すストローブは、この間に所
定のレベルまで立ち上がり、2番目のデータの取り込み
を可能にする。即ち、ストローブがロウレベルからハイ
レベルに立ち上がるタイミングで、T時間だけウェイト
カウンタによる待機時間を挿入して、データ抜け発生を
防止している。以下、その具体的な動作をフローチャー
トを用いて説明する。
According to the present invention, in order to prevent such a problem, the data transfer speed is partially adjusted at the portion where the data is likely to be rounded. (E) shows the content of the data when the data transfer is delayed by the time T at the time t2 in the figure. The strobe shown in (f) rises to a predetermined level during this period and enables the capture of the second data. That is, at the timing when the strobe rises from the low level to the high level, the wait time by the wait counter is inserted for T time to prevent the data loss. The specific operation will be described below with reference to a flowchart.

【0073】図18、図19、図20は、具体例4の動
作を説明するためのフローチャートである。まず、図1
8のステップS1では、これまでの具体例で説明したと
おりに転送速度の減少率Decを計算する。そして、ス
テップS2において、転送速度を転送速度設定値SetSpe
edに近付けるために必要なループカウンタを計算し、そ
の計算結果をハイカウンタ26とローカウンタ27に格
納する。ハイカウンタ26は、図17に示したストロー
ブがハイレベルになった状態での待機時間を設定するカ
ウンタである。ローカウンタ27は、図17に示したス
トローブがロウレベルになった状態での待機時間を設定
するカウンタである。従って、ストローブの状態に応じ
て2種の待機時間を使い分けることになる。ステップS
3において、ダミーデータ16を読み出して、そのサイ
ズをDummySizeにセットする。
FIGS. 18, 19 and 20 are flowcharts for explaining the operation of the fourth specific example. First, Fig. 1
In step S1 of 8, the reduction rate Dec of the transfer rate is calculated as described in the above specific examples. Then, in step S2, the transfer rate is set to the transfer rate set value SetSpe.
The loop counter required to approach ed is calculated, and the calculation result is stored in the high counter 26 and the low counter 27. The high counter 26 is a counter that sets a waiting time when the strobe shown in FIG. 17 is at a high level. The low counter 27 is a counter that sets a waiting time when the strobe shown in FIG. 17 is at a low level. Therefore, two types of waiting time are used depending on the state of the strobe. Step S
In 3, the dummy data 16 is read and its size is set in DummySize.

【0074】次に、プリンタ3になまり確認用コマンド
を転送する。即ち、これからダミーデータを転送しなが
ら、なまりの発生確認を行う旨をプリンタに通知する。
ステップS6では、転送速度調整部13がデータ転送部
12に対してダミーデータ16のサイズやダミーデータ
を渡してデータ転送命令を出す。ステップS7で、デー
タ転送部12は、受け取った値を使用してローカウンタ
27に設定された値で転送待ちを行いながらダミーデー
タを転送する。転送が終了すると、ステップS8におい
て、プリンタ3側にデータ転送終了コマンドを転送す
る。
Next, the blunt confirmation command is transferred to the printer 3. That is, the printer is notified to confirm the occurrence of the rounding while transferring the dummy data.
In step S6, the transfer rate adjusting unit 13 passes the size of the dummy data 16 and the dummy data to the data transfer unit 12 and issues a data transfer command. In step S7, the data transfer unit 12 uses the received value to transfer the dummy data while waiting for the transfer at the value set in the row counter 27. When the transfer is completed, a data transfer end command is transferred to the printer 3 side in step S8.

【0075】ステップS9では、プリンタ3から受信デ
ータ数とサムチェックデータを受け取る。受信データ数
は、たとえば単位バイトで表示する。サムチェックデー
タは、受信したデータ数を示す。なお、データ数をその
まま数えて表示すると数値が大きくなるので、たとえば
その下位ビットのみをサムチェックデータとする。プリ
ンタ3のサムチェック処理部20は、このサムチェック
を行い、その結果をポートドライバ7に通知する機能を
持つ。ステップS10では、プリンタ3から受け取った
受信データ数とダミーデータサイズとを比較する。ま
た、プリンタ3から受け取ったサムチェックデータとホ
ストコンピュータ側で計算したダミーデータのサムチェ
ック結果とをそれぞれ比較する。そして、もしそのいず
れかが異なっていた場合には、信号線のなまり調整を行
う。なまり調整は、待機時間を延長してデータ転送速度
を遅くすることにより行われる。このなまり調整のため
の処理を次の図19を用いて説明する。
In step S9, the number of received data and the sum check data are received from the printer 3. The number of received data is displayed in, for example, a unit byte. The sum check data indicates the number of received data. If the number of data is counted and displayed as it is, the numerical value becomes large. Therefore, for example, only the lower bits are used as the sum check data. The sum check processing unit 20 of the printer 3 has a function of performing this sum check and notifying the port driver 7 of the result. In step S10, the number of received data received from the printer 3 is compared with the dummy data size. Also, the sum check data received from the printer 3 and the sum check result of the dummy data calculated on the host computer side are respectively compared. Then, if either of them is different, the rounding of the signal line is adjusted. The rounding adjustment is performed by extending the waiting time and slowing the data transfer rate. The processing for this rounding adjustment will be described with reference to FIG.

【0076】図19と図20は、信号線のなまり調整処
理を示すフローチャートである。上記転送速度の調整の
際、ダミーデータ転送終了時点でプリンタに対しデータ
転送終了コマンドを転送した。転送速度調整部13は、
プリンタ3から受信データのバイト数DataCountとサム
チェックデータAとを受け取る。転送速度調整部13
は、ダミーデータサイズDummySizeと、受信データ数Dat
aCountと、転送速度調整部13自身が計算したダミーデ
ータ16のサムチェックデータBと、サムチェックデー
タAとを比較する。これらのデータが同じ場合には信号
線になまりが生じていないと判断する。どれか1つでも
データが異なっていた場合には、信号線になまりがある
と判断する。
19 and 20 are flowcharts showing the signal line rounding adjustment processing. When adjusting the transfer rate, a data transfer end command was transferred to the printer at the end of the dummy data transfer. The transfer speed adjusting unit 13
The byte count DataCount and the sum check data A of the received data are received from the printer 3. Transfer rate adjusting unit 13
Is the dummy data size DummySize and the number of received data Dat
The aCount is compared with the sum check data A of the dummy data 16 calculated by the transfer rate adjusting unit 13 itself and the sum check data A. If these data are the same, it is determined that the signal line is not rounded. If any one of them has different data, it is determined that there is a round in the signal line.

【0077】ここで、図19ステップS1において、ロ
ーカウンタの値を調整用カウンタCtrCount1にセットす
る。また、ハイカウンタの値を調整用カウンタCtrCount
2にセットする。次に、ステップS3において、プリン
タ3になまり確認用コマンドを転送する。更に、ステッ
プS4において、ダミーデータ16を読み、そのサイズ
をDummySizeにセットする。次に、ステップS5におい
て、ダミーデータを1バイトプリンタに対し出力する。
そして、ステップS6において、nStrobeをハイレベル
に(有効)にセットする。こうして、データを1バイト
転送したことをプリンタ3に通知する。
Here, in step S1 of FIG. 19, the value of the row counter is set in the adjustment counter CtrCount1. In addition, the value of the high counter is set to the adjustment counter CtrCount
Set to 2. Next, in step S3, the command for confirming the roundness is transferred to the printer 3. Further, in step S4, the dummy data 16 is read and its size is set in DummySize. Next, in step S5, the dummy data is output to the 1-byte printer.
Then, in step S6, nStrobe is set to a high level (valid). In this way, the printer 3 is notified that one byte of data has been transferred.

【0078】次に、ステップS7において、調整用カウ
ンタの値CtrCount1をウェイトカウンタCount8にセッ
トする。そして、ステップS8において、Count8をデ
クリメントする。ステップS9は、ストローブがハイレ
ベルのときウェイトカウンタ分だけ時間が経過したかど
うかを判断する処理である。こうして、Count8に相当
する待機時間だけ経過すると、ステップS10に進み、
ダミーデータのサイズをデクリメントする。1バイトず
つ転送するデータをカウントして、すべてのデータを転
送したかチェックするためである。そして、ステップS
11において、ダミーデータのサイズが“0”になった
かどうかを判断する。即ち、全てのダミーデータの転送
が終了したかどうかを判断する。
Next, in step S7, the value CtrCount1 of the adjustment counter is set in the wait counter Count8. Then, in step S8, Count8 is decremented. Step S9 is a process of determining whether or not the time corresponding to the wait counter has elapsed when the strobe is at the high level. Thus, when the waiting time corresponding to Count8 has elapsed, the process proceeds to step S10,
Decrement the size of dummy data. This is to count the data to be transferred byte by byte and check whether all the data has been transferred. And step S
At 11, it is determined whether the size of the dummy data has become "0". That is, it is determined whether or not the transfer of all dummy data has been completed.

【0079】全てのダミーデータを転送し終えてない場
合には、図20のステップS12に進む。そして、再び
ダミーデータを1バイト分読み出して出力する。更に、
ステップS13において、nStrobeをロウレベルにセッ
トする。こんどは、ストローブがロウレベルの状態にお
ける処理である。ステップS14において、調整用カウ
ンタCtrCount2の値をウェイトカウンタCount9にセッ
トする。そして、ステップS15において、Count9を
デクリメントする。ステップS16は、Count9にセッ
トした時間だけ時間が経過したことを判断する処理であ
る。
If all dummy data have not been transferred, the process proceeds to step S12 in FIG. Then, the dummy data is read again for one byte and output. Furthermore,
In step S13, nStrobe is set to the low level. This is the process when the strobe is at the low level. In step S14, the value of the adjustment counter CtrCount2 is set in the wait counter Count9. Then, in step S15, Count9 is decremented. Step S16 is a process of determining that time has elapsed by the time set in Count9.

【0080】この待機時間が経過すると、ステップS1
7に進み、ダミーデータのサイズをデクリメントする。
そして、再びダミーデータサイズが“0”になったかど
うかを判断する。ダミーデータサイズが“0”でなけれ
ば、ステップS4に戻る。即ち、図19に示すステップ
S4〜ステップS11の処理と、図20に示すステップ
S12〜ステップS18の処理を交互に繰り返し、ダミ
ーデータサイズが“0”になるまでこれらの処理を実行
する。
When this waiting time has elapsed, step S1
In step 7, the size of dummy data is decremented.
Then, it is determined again whether the dummy data size has become "0". If the dummy data size is not "0", the process returns to step S4. That is, the processes of steps S4 to S11 shown in FIG. 19 and the processes of steps S12 to S18 shown in FIG. 20 are alternately repeated until the dummy data size becomes “0”.

【0081】その後、ステップS19に進み、ダミーデ
ータ転送終了をプリンタ3に通知する。ステップS20
では、プリンタ3が受信したデータ数をカウントし、こ
れを転送速度調整部13に通知する。更に、サムチェッ
クデータCheck2を転送速度調整部13に通知する。次
のステップS21とステップS22で、ダミーデータの
サイズと、実際に送信されたデータ数及びプリンタ側で
受信されたデータ数とをそれぞれ比較し、一致している
かどうかを判断する。
After that, the process advances to step S19 to notify the printer 3 of the end of the dummy data transfer. Step S20
Then, the printer 3 counts the number of data received, and notifies the transfer rate adjusting unit 13 of this. Further, the sum check data Check2 is notified to the transfer rate adjusting unit 13. In the next step S21 and step S22, the size of the dummy data is compared with the number of data actually transmitted and the number of data received by the printer, respectively, and it is determined whether they match.

【0082】一致していなければステップS25に進
み、ここでウェイトカウンタの値を変更する。この例で
は、ストローブがロウレベルのときの待機時間を短縮
し、ストローブがハイレベルのときの待機時間を順次延
長していく。したがって、図17(f)に示すようにパ
ルス波形を変形させてデータ抜けを防止する。そして、
再びその待ち時間によって見かけ上のデータ転送速度を
実測する。このようにして、データ抜けの発生しない待
ち時間を選択し、ステップS23,ステップS24にお
いて、これらの値をローカウンタ、ハイカウンタに格納
する。この例の場合、ストローブがロウレベルのときの
待機時間とし、ストローブがハイレベルのときの待機時
間の和を変更しないので、この調整をしても、見かけ上
のデータ転送時間が変わらないという特徴がある。
If they do not match, the process proceeds to step S25, where the value of the wait counter is changed. In this example, the standby time when the strobe is at the low level is shortened, and the standby time when the strobe is at the high level is sequentially extended. Therefore, the pulse waveform is modified as shown in FIG. 17 (f) to prevent data loss. And
The apparent data transfer rate is measured again by the waiting time. In this way, the waiting time in which no data loss occurs is selected, and these values are stored in the low counter and the high counter in steps S23 and S24. In this example, the standby time when the strobe is at the low level is set, and the sum of the standby times when the strobe is at the high level is not changed. Therefore, even if this adjustment is made, the apparent data transfer time does not change. is there.

【0083】図21は、上記のような処理の際のプリン
タ側のデータ受信部処理概要フローチャートである。ス
テップS1では、なまり確認用測定コマンドを受け取っ
た時点で、サムチェックデータをリセットする。そし
て、ステップS2で、1バイトデータを受信する度にサ
ムチェック処理を行う。そして、ステップS3で、デー
タ転送終了コマンドを受け取った時点で受信データ数と
サムチェックデータとをホストコンピュータ1に返す。
FIG. 21 is a flow chart of the data receiving unit processing outline on the printer side in the above processing. In step S1, the sum check data is reset when the rounding confirmation measurement command is received. Then, in step S2, a sum check process is performed each time 1-byte data is received. Then, in step S3, when the data transfer end command is received, the number of received data and the sum check data are returned to the host computer 1.

【0084】以上の処理によって、ダミーデータの送受
信によりデータ抜け発生の有無を検査し、データ抜けが
発生する場合には、所定のタイミングで部分的に待機時
間を調整して、データ転送速度の最適化を図る。
By the above processing, the presence or absence of data loss is inspected by transmitting / receiving dummy data. If data loss occurs, the standby time is partially adjusted at a predetermined timing to optimize the data transfer rate. Try to change.

【0085】〈具体例4の効果〉以上のように、見かけ
上のデータ転送速度を最適値に調整すると共に、信号線
やその他の環境条件によってデータ抜けが発生するよう
な場合に、所定のタイミングで部分的に待機時間を補正
するので、データ転送速度の最適化と信頼性の向上を図
ることができる。
<Effects of Specific Example 4> As described above, the apparent data transfer rate is adjusted to the optimum value, and the predetermined timing is set when data loss occurs due to the signal line or other environmental conditions. Since the standby time is partially corrected by, the data transfer rate can be optimized and the reliability can be improved.

【0086】〈具体例5〉上記の具体例では、全てホス
トコンピュータ側にデータ転送速度を調整する機能を持
たせた。この具体例では、データを受信するプリンタ側
にデータ転送速度の調整機能を持たせる。具体的には、
プリンタがデータを受信する際に所定のタイミングでホ
ストコンピュータ側にビジー信号を出力し、その都度デ
ータ送信を抑制する。これによって、見かけ上のデータ
転送速度を最適化する。
<Specific Example 5> In the above specific example, all the host computers have the function of adjusting the data transfer rate. In this specific example, a printer that receives data is provided with a function of adjusting the data transfer rate. In particular,
When the printer receives data, it outputs a busy signal to the host computer side at a predetermined timing, and suppresses data transmission each time. This optimizes the apparent data transfer rate.

【0087】図22は、これを実現するためのシステム
ブロック図である。図に示すように、ホストコンピュー
タ1は、アプリケーション4、オペレーティングシステ
ム5、プリンタドライバ6、ポートドライバ7、IEE
E1284出力部8等を備えている。これらの構成は、
これまでの具体例と同様である。また、プリンタ3のデ
ータ受信部30には、受信部31の他に、ウェイト処理
部32、受信速度測定部33、受信速度調整部34、ウ
ェイトカウンタ35、タイマ36が設けられている。デ
ータ受信部30には、最大受信速度値37が記憶されて
おり、この値がプリンタの最適受信速度に設定される。
FIG. 22 is a system block diagram for realizing this. As shown in the figure, the host computer 1 includes an application 4, an operating system 5, a printer driver 6, a port driver 7, and an IEEE.
The E1284 output unit 8 and the like are provided. These configurations are
This is the same as the specific examples so far. In addition to the receiving unit 31, the data receiving unit 30 of the printer 3 is provided with a weight processing unit 32, a receiving speed measuring unit 33, a receiving speed adjusting unit 34, a weight counter 35, and a timer 36. A maximum reception speed value 37 is stored in the data receiving unit 30, and this value is set as the optimum reception speed of the printer.

【0088】受信速度測定部33は、受信部31がホス
トコンピュータ1から受信するデータの受信速度を、例
えば単位時間当たりに何バイトといった要領で測定する
部分である。受信速度調整部34は、最大受信速度値3
7を参照し、最適受信速度を設定し、これに実際の受信
速度を近付けるように制御を行う部分である。タイマ3
6は、実際のデータ受信速度等を測定するために使用さ
れる。ウェイトカウンタ35は、これまでの具体例で説
明したように、1バイトデータを転送する度にデータ転
送待ちを行う待ち時間を設定するカウンタである。この
例の場合には、データ転送待ちというよりも、データ転
送を抑制する時間という意味になる。
The receiving speed measuring unit 33 is a unit for measuring the receiving speed of the data received by the receiving unit 31 from the host computer 1 in a number of bytes per unit time, for example. The reception speed adjustment unit 34 determines the maximum reception speed value 3
7 is a section for setting the optimum reception speed and performing control so that the actual reception speed approaches the optimum reception speed. Timer 3
6 is used to measure the actual data reception speed and the like. The wait counter 35 is a counter that sets a waiting time for waiting for data transfer each time 1-byte data is transferred, as described in the above specific examples. In the case of this example, it means a time for suppressing the data transfer rather than waiting for the data transfer.

【0089】この例では、ウェイト処理部32が受信部
31を通じてホストコンピュータ1側へビジー信号を出
力する。このビジー信号の出力時間が待ち時間になる。
ビジー信号が出力されている間は、ホストコンピュータ
1からのデータ転送が一旦停止する。これが丁度ホスト
コンピュータ側での転送待機時間と同様の機能を持つ。
In this example, the wait processing section 32 outputs a busy signal to the host computer 1 side through the receiving section 31. The output time of this busy signal becomes a waiting time.
While the busy signal is being output, the data transfer from the host computer 1 is temporarily stopped. This has the same function as the transfer waiting time on the host computer side.

【0090】図23には、具体例5における転送速度最
適化動作の方法説明図を示す。図の(a)は、ホストコ
ンピュータの転送速度でデータを転送したタイミングを
示す。(b)は、そのデータをプリンタが取り込むため
のタイミングを制御するnStrobe信号(これまでの説明
と同様に単にストローブと呼ぶ)である。この場合、ス
トローブの立ち上がりのタイミングでデータの取り込み
が行われる。(c)は、プリンタがデータを取り込む際
に周期的にデータ送信を抑制するためのビジー(Busy)
信号である。通常は、このように、ストローブの立ち上
がり部分を挟むタイミングでビジー信号が有効になり、
ホストコンピュータとプリンタとのデータ転送が行われ
る。しかしながら、この転送速度がプリンタにとって速
すぎる場合に、この具体例ではビジー信号を有効にする
時間(ハイレベルになる時間)を延長する。このビジー
信号が有効になる時間が、これまで説明した待機時間を
決定する。
FIG. 23 shows a method explanatory diagram of the transfer rate optimizing operation in the fifth specific example. (A) of the figure shows the timing of data transfer at the transfer speed of the host computer. (B) is an nStrobe signal (simply called a strobe as in the above description) that controls the timing for the printer to fetch the data. In this case, data is taken in at the rising timing of the strobe. (C) is a busy mode for periodically suppressing data transmission when the printer fetches data.
It is a signal. Normally, in this way, the busy signal becomes effective at the timing between the strobe rising parts,
Data transfer between the host computer and the printer is performed. However, if this transfer rate is too fast for the printer, in this specific example, the time during which the busy signal is valid (the time when it goes to the high level) is extended. The time during which this busy signal becomes valid determines the waiting time described so far.

【0091】(d)は、このようにビジー信号が有効に
なる時間を延長した場合のデータ転送タイミングを示し
ている。また、(e)は、ホストコンピュータからプリ
ンタに転送されるnStrobe信号である。(f)は、デー
タを取り込んだ後、見かけ上のデータ転送速度を制御す
るためのビジー信号を示す。このように、ビジー信号が
有効になる時間を図の(t1)から(t2)までT時間
延長することによって見かけ上のデータ転送速度が遅く
なるように制御できる。
(D) shows the data transfer timing when the time during which the busy signal becomes valid is extended in this way. Further, (e) is an nStrobe signal transferred from the host computer to the printer. (F) shows a busy signal for controlling the apparent data transfer rate after the data is taken in. As described above, the apparent data transfer speed can be controlled to be slowed by extending the time during which the busy signal becomes valid from the time (t1) to the time (t2) in the figure.

【0092】図24には、具体例5の受信速度調整処理
概要フローチャートを示す。まず、ステップS1におい
て、図22に示した受信部31は、ホストコンピュータ
1からデータが転送されてきた時点で、タイマ36をス
タートさせる。次に、ステップS2において、DataSize
にセットされた数のデータを受信した時点で、タイマ3
6をストップし、そのときの値をTimeにセットする。受
信部31は、受信データ数DataSizeとタイマ値Timeを受
信速度測定部33に渡す。この受信データ数DataSize
は、データ受信速度を計算するために予め定めたもの
で、任意の数でよい。
FIG. 24 shows a flow chart of the receiving speed adjusting process of the fifth specific example. First, in step S1, the receiving unit 31 shown in FIG. 22 starts the timer 36 when data is transferred from the host computer 1. Next, in step S2, DataSize
When the number of data set in is received, timer 3
Stop 6 and set the value at that time to Time. The reception unit 31 passes the received data number DataSize and the timer value Time to the reception speed measurement unit 33. Number of received data DataSize
Is a predetermined value for calculating the data reception speed, and may be an arbitrary number.

【0093】受信速度測定部33は、ステップS4にお
いて、受け取った値から受信速度を計算し、その値をSp
eedにセットする。受信速度は、受信したデータをタイ
マ36で測定した時間により除算して求めることができ
る。次のステップS5では、最大受信速度値37に基づ
いて、最適受信速度を得て、受信速度測定部33の内部
に設けたレジスタOptimumSpeedにセットする。
In step S4, the reception speed measuring unit 33 calculates the reception speed from the received value and sets the calculated value as Sp.
Set to eed. The reception speed can be obtained by dividing the received data by the time measured by the timer 36. In the next step S5, the optimum reception speed is obtained based on the maximum reception speed value 37 and is set in the register OptimumSpeed provided inside the reception speed measurement unit 33.

【0094】そして、ステップS6において、計算によ
って求めた受信速度が最適受信速度より大きいかどうか
を判断する。大きくなければ調整が不要なため処理を終
了する。大きければ次のステップS7に進み、受信部3
1や受信速度調整部34を呼び出す。そして、ステップ
S8に進み、受信速度調整部34は、受信速度が最適値
以下になるようにビジー信号が有効になる時間を調整す
る。
Then, in step S6, it is determined whether or not the calculated reception speed is higher than the optimum reception speed. If it is not larger, the adjustment is unnecessary and the process ends. If so, the process proceeds to the next step S7, and the receiving unit 3
1 or the reception speed adjustment unit 34 is called. Then, in step S8, the reception speed adjustment unit 34 adjusts the time during which the busy signal becomes valid so that the reception speed becomes less than or equal to the optimum value.

【0095】既に、図23(f)を用いて説明したよう
に、ビジー信号を有効(ハイレベル)にする時間を計算
して、ウェイトカウンタ35に格納する。この計算は、
上記のように求めた実際のデータ受信速度Speedから最
適受信速度OptimumSpeedを差し引き、その差を上記受信
データ数DataSizeで除算することにより求められる。こ
の除算結果が待ち時間である。この時間だけビジー信号
をロウレベルにセットする時間を遅らせて、ビジー信号
を有効(ハイレベル)にする時間を延長する。この結果
をウェイトカウンタにセットする。
As already described with reference to FIG. 23F, the time for making the busy signal valid (high level) is calculated and stored in the wait counter 35. This calculation is
The optimum reception speed OptimumSpeed is subtracted from the actual data reception speed Speed calculated as described above, and the difference is divided by the received data number DataSize. The result of this division is the waiting time. The time for setting the busy signal to the low level is delayed by this time, and the time for making the busy signal valid (high level) is extended. The result is set in the wait counter.

【0096】ステップS9では、受信部31がデータを
1バイト受信する毎にウェイト処理部32を呼び出す。
ウェイト処理部32は、ステップS10において、ウェ
イトカウンタ35の値を元にビジー信号をローにセット
するタイミングを遅らせる。こうして、ステップS11
に進み、受信部31は、ウェイト処理部32から処理が
戻ってきた時点で、ビジー信号をローにセットするよう
に動作する。
In step S9, the wait processing unit 32 is called every time the receiving unit 31 receives one byte of data.
In step S10, the wait processing unit 32 delays the timing of setting the busy signal to low based on the value of the wait counter 35. Thus, step S11
Then, the reception unit 31 operates to set the busy signal to low when the processing returns from the wait processing unit 32.

【0097】〈具体例5の効果〉以上により、図23
(f)に示すようにしてビジー信号を有効にする時間を
調整して、受信速度の最適化を図ることができる。ま
た、この制御は、これまでの具体例と異なり、プリンタ
側のデータ受信部で行うことができる。また、プリンタ
側でホストコンピュータから転送されるデータの受信速
度を最適化できるので、ホストコンピュータのプリンタ
ドライバ等に転送速度最適化機能がない場合において
も、これまで説明した具体例のような効果を得ることが
できる。
<Effects of Concrete Example 5> With the above, FIG.
As shown in (f), the time for which the busy signal is valid can be adjusted to optimize the reception speed. Further, this control can be performed by the data receiving unit on the printer side, unlike the specific examples up to now. Further, since the reception speed of the data transferred from the host computer can be optimized on the printer side, even when the transfer speed optimization function is not provided in the printer driver of the host computer, the effects like the specific examples described so far can be obtained. Obtainable.

【0098】〈具体例6〉この具体例では、外部装置側
にホスト装置からデータを自動受信するダイレクトメモ
リアクセスコントローラを利用する。ダイレクトメモリ
アクセスコントローラは、ホスト装置による高速データ
転送に耐えられる能力を持つものとする。しかしなが
ら、ダイレクトメモリアクセスコントローラは、受信バ
ッファに受信可能なデータ量だけ受信してしまうと、い
ったん動作を停止する。受信バッファ中のデータが外部
装置内部に取り込まれてから、再びダイレクトメモリア
クセスコントローラが受信動作を再開する。従って、そ
の前に更に次のデータがホスト装置から転送された場合
には、データの受信ができなくなる。例えばプリンタが
ホストコンピュータから受信したデータの処理速度が遅
い場合に、これまで説明したと同様のアンダーラン等の
障害が生じる。
<Specific Example 6> In this specific example, a direct memory access controller for automatically receiving data from a host device is used on the external device side. The direct memory access controller shall be capable of withstanding high-speed data transfer by the host device. However, when the direct memory access controller receives the receivable buffer in a receivable amount of data, the direct memory access controller temporarily stops its operation. After the data in the reception buffer is taken into the external device, the direct memory access controller restarts the reception operation again. Therefore, if the next data is transferred from the host device before that, the data cannot be received. For example, when the printer processes the data received from the host computer at a low processing speed, the same trouble as the underrun described above occurs.

【0099】そこで、この具体例では、ダイレクトメモ
リアクセスコントローラによる一括受信可能なデータ受
信毎に、具体例5で説明したようなビジー信号を出力す
る制御を行う。システムの構成自体は、図22で説明し
たものと同様で良いため、その図示を省略する。
Therefore, in this specific example, the control for outputting the busy signal as described in the specific example 5 is performed every time the direct memory access controller receives data that can be collectively received. The system configuration itself may be the same as that described with reference to FIG. 22, so its illustration is omitted.

【0100】図25は、具体例6における最適化方法の
タイミングチャートである。図の(a)、(b)、
(c)に示すタイミングは、何ら最適化処理を行わない
でホストコンピュータからプリンタに対しデータが転送
された場合の状態を示す。(a)はデータの転送タイミ
ング、(b)はその取込みのためのnStrobe信号、
(c)はプリンタ側からホストコンピュータに向けて送
信されるビジー信号である。各信号の内容は、具体例5
の場合と同様である。
FIG. 25 is a timing chart of the optimizing method in the sixth example. (A), (b) of the figure,
The timing shown in (c) shows the state when data is transferred from the host computer to the printer without performing any optimization processing. (A) is the data transfer timing, (b) is the nStrobe signal for fetching it,
(C) is a busy signal transmitted from the printer side to the host computer. The content of each signal is the specific example 5.
It is similar to the case of.

【0101】次の(d)、(e)、(f)は、この具体
例6の制御を具体例5と比較するために示したもので、
図23の(d)、(e)、(f)と同様のものである。
即ち、1バイトのデータ受信毎に時刻t1、時刻t4で
ロウレベルになるべきビジー信号をT時間ずつ延長し、
時刻t2、時刻t5のタイミングで受信されるべきデー
タの受信タイミングを時刻t3、t7までシフトさせて
いる。ところが、ダイレクトメモリアクセスコントロー
ラを使用する場合には、ホストコンピュータの転送速度
に合わせた高速受信が可能である。こうして受信された
データは、図示しないプリンタのバッファメモリに格納
される。
The following (d), (e), and (f) are shown to compare the control of the sixth specific example with the fifth specific example.
This is the same as (d), (e), and (f) of FIG.
That is, every time 1-byte data is received, the busy signal, which should be low level at time t1 and time t4, is extended by T time,
The reception timing of data to be received at the timings of time t2 and time t5 is shifted to time t3 and time t7. However, when the direct memory access controller is used, high-speed reception matching the transfer speed of the host computer is possible. The data thus received is stored in the buffer memory of the printer (not shown).

【0102】バッファメモリがいっぱいになると、プリ
ンタはそのデータを最適速度で読み出して印刷を実行す
る。従って、バッファメモリに対するデータの転送タイ
ミングを整えれば、ダイレクトメモリアクセスコントロ
ーラによるデータ転送速度をプリンタの印刷のための最
適転送速度に近付けることができる。
When the buffer memory becomes full, the printer reads the data at the optimum speed and executes printing. Therefore, if the transfer timing of data to the buffer memory is adjusted, the data transfer rate by the direct memory access controller can be brought close to the optimum transfer rate for printing by the printer.

【0103】(g)、(h)、(i)は、具体例6の制
御を示す。即ち、図の時刻t8まではダイレクトメモリ
アクセスコントローラによるデータ転送のため、ホスト
コンピュータ側の転送速度でデータが受信される。そし
て、このタイミングでビジー信号を、図に示すように時
刻t8から時刻t11まで3Tだけ延長して出力する。
従って、時刻t8〜t11までの間、ホストコンピュー
タによるデータ転送が抑制される。こうすれば、図の
(f)に示すように、時刻t2からt3の間のT時間
と、時刻t6からt7までのT時間と、時刻t9から時
刻t10の延長時間T時間をまとめて、時刻t8から時
刻t11までの時間に移したことになる。これにより、
(f)に示す場合と(i)に示す場合とは、十分に長い
期間での平均的データ転送速度が同等になる。
(G), (h), and (i) show the control of the sixth embodiment. That is, since data transfer is performed by the direct memory access controller until time t8 in the figure, data is received at the transfer speed on the host computer side. Then, at this timing, the busy signal is extended by 3T and output from time t8 to time t11 as shown in the figure.
Therefore, the data transfer by the host computer is suppressed from time t8 to t11. By doing this, as shown in (f) of the figure, the T time from time t2 to t3, the T time from time t6 to t7, and the extension time T time from time t9 to time t10 are collected together. This means that the time has passed from t8 to time t11. This allows
The case shown in (f) and the case shown in (i) have the same average data transfer rate in a sufficiently long period.

【0104】図26には、具体例6の動作フローチャー
トを示す。まず、ステップS1において、転送するデー
タのサイズをTotalSizeにセットする。次に、ステップ
S2において、DMAStatusFlagをオンにする。これは、
DMA(ダイレクトメモリアクセスコントローラ)処理
の準備が完了しているかどうかを判断するステップであ
る。デフォルトの状態では、このフラグはオフのためス
テップS3に進み、DMA仕様を問い合わせ、ダイレク
トメモリアクセスコントローラが一度に受信できるデー
タ数をDMASizeにセットする。ステップS4において、
ダイレクトメモリアクセスコントローラの状態フラグを
オンにする。
FIG. 26 shows an operation flowchart of the sixth example. First, in step S1, the size of data to be transferred is set in TotalSize. Next, in step S2, DMAStatusFlag is turned on. this is,
This is a step of determining whether or not preparation for DMA (Direct Memory Access Controller) processing is completed. In the default state, since this flag is off, the process proceeds to step S3 to inquire the DMA specifications, and the direct memory access controller sets the number of data that can be received at one time in DMASize. In step S4,
Turns on the status flag of the direct memory access controller.

【0105】次に、DMASizeの値を転送するデータサイ
ズとしてTransferSizeにセットする。次にステップS6
において、メモリから1バイトのデータを読み出して出
力する。なお、DMA仕様は、ホストコンピュータがプ
リンタに対して問い合わせ、そのDMA仕様をホストコ
ンピュータ側のバッファに格納しておく。DMAStatusFla
gは、1つのデバイス即ちホストコンピュータに接続さ
れている1つの外部装置毎に1つ設定する。重複して同
一の外部装置にDMAの情報を問い合わせることを防ぐ
ためである。このフラグは、外部装置がパワーオンされ
たときに問い合わせてセットされ、外部装置の電源がオ
フされた場合には、オフにリセットされる。
Next, the value of DMASize is set in TransferSize as the data size to be transferred. Then step S6
At, the 1-byte data is read from the memory and output. Regarding the DMA specifications, the host computer makes an inquiry to the printer and stores the DMA specifications in a buffer on the host computer side. DMAStatusFla
One g is set for each device, that is, for each external device connected to the host computer. This is to prevent the same external device from being repeatedly inquired about DMA information. This flag is queried and set when the external device is powered on and reset to off when the external device is powered off.

【0106】次のステップS7では、転送するデータの
サイズTotalSizeをデクリメントする。1バイトデータ
を転送する際に残りのデータを表示するためである。ス
テップS8では、このTotalSizeが“0”かどうかを判
断する。“0”であれば全てのデータ転送が終了したか
ら処理を終了する。“0”でなければステップS9に進
み、DMAが一度に受信できる受信数のデクリメントを
行う。
In the next step S7, the size of the data to be transferred, TotalSize, is decremented. This is because the remaining data is displayed when the 1-byte data is transferred. In step S8, it is determined whether this TotalSize is "0". If it is "0", the processing is terminated because all data transfer is completed. If not "0", the process proceeds to step S9, and the DMA decrements the number of receptions that can be received at one time.

【0107】ステップS10では、これが“0”になっ
たかどうかを判断する。“0”でなければ、ステップS
6に戻り、1バイトずつデータ転送を繰り返す。そし
て、DMAが一度に受信できるデータ数分データを転送
すると、ステップS10からステップS11に進む。具
体例6で求めたウェイトカウンタの値をDMASize倍し
て、これを新たなウェイトカウンタの値とする。即ち、
1バイトずつ転送をし、ビジー信号によりウェイトカウ
ンタ分の待機時間を設定するとすれば、ダイレクトメモ
リアクセスコントローラが一度に転送できるDMASizeバ
イト分をまとめて新たな時間にする。これを用いて、図
25の(i)に示したような制御を行えばよい。
In step S10, it is determined whether or not this has become "0". If not "0", step S
Returning to 6, the data transfer is repeated byte by byte. Then, when the DMA transfers the number of data items that can be received at one time, the process proceeds from step S10 to step S11. The value of the wait counter obtained in Example 6 is multiplied by DMASize, and this is set as a new value of the wait counter. That is,
If each byte is transferred and the wait time for the wait counter is set by the busy signal, the DMASize bytes that can be transferred at once by the direct memory access controller are collectively set as a new time. Using this, the control shown in (i) of FIG. 25 may be performed.

【0108】次のステップS12では、こうして設定し
たウェイトカウンタをデクリメントし、待機時間の計測
を行う。即ちステップS13で、このウェイトカウンタ
が“0”になったかどうかを判断し、待機時間分だけ時
間待ちを行う。そして、ウェイトカウンタ分の時間が経
過すると、ステップS5に戻り、再びステップS5〜ス
テップS13の処理を繰り返す。こうして全てのデータ
転送を終了すると、動作が終了する。
In the next step S12, the wait counter thus set is decremented and the waiting time is measured. That is, in step S13, it is determined whether or not this wait counter has become "0", and the waiting time is waited for the waiting time. Then, when the time for the wait counter has elapsed, the process returns to step S5, and the processes of steps S5 to S13 are repeated again. When all data transfer is completed in this way, the operation ends.

【0109】なお、図26のフローチャートは、具体例
5で説明したプリンタ側におけるビジー信号で、データ
転送速度を調整した例を説明した。しかしながら、具体
例6の方法は、具体例1等で説明したように、ホストコ
ンピュータ側でループカウンタを用いて待機時間を制御
する場合にも同様に適用される。この場合には、図26
に示すウェイトカウンタの値がループカウンタの値に置
き換えられる。ループカウンタの値を求める制御自身
は、具体例1等で説明した通りでよい。
The flowchart of FIG. 26 has been described with reference to the specific example 5 in which the data transfer speed is adjusted by the busy signal on the printer side. However, the method of Specific Example 6 is similarly applied to the case where the waiting time is controlled using the loop counter on the host computer side as described in Specific Example 1 and the like. In this case, FIG.
The value of the wait counter shown in is replaced with the value of the loop counter. The control itself for obtaining the value of the loop counter may be as described in Specific Example 1 and the like.

【0110】〈具体例6の効果〉プリンタに設けられた
ダイレクトメモリアクセスコントローラの性能に合わせ
てデータを転送し、データを高速転送できる一方で、ダ
イレクトメモリアクセスコントローラが一度に受信でき
るデータ数を考慮し、このデータ量の受信毎に一定の待
機時間を挿入するので、これまでの具体例と同様、転送
速度の最適化を図ることができる。また、1バイト転送
する度に転送速度を調整する具体例1や具体例5の場合
と異なり、時間待ちのための制御が簡単になるので、ホ
スト装置やプリンタ装置の負荷が軽減できる。
<Effect of Concrete Example 6> While the data can be transferred in accordance with the performance of the direct memory access controller provided in the printer and the data can be transferred at high speed, the number of data which the direct memory access controller can receive at once is considered. However, since a fixed waiting time is inserted each time this amount of data is received, the transfer rate can be optimized as in the above-described specific examples. Further, unlike the cases of the concrete example 1 and the concrete example 5 in which the transfer speed is adjusted every time one byte is transferred, the control for waiting time is simplified, so that the load on the host device and the printer device can be reduced.

【0111】〈具体例7〉図27に、具体例7のシステ
ムを示すブロック図を図示した。この具体例では、ホス
トコンピュータ1に複数の外部装置が接続されている場
合の例を示す。図28には、その具体的なデバイスの状
態説明図を示す。図に示すように、ホストコンピュータ
40には、例えばモデム41、ハブ42、プリンタ3等
が接続されている。ホストコンピュータ40は、これら
の装置との通信を同時に制御する。従って、プリンタ3
のみがホストコンピュータ40に接続されている場合に
比べてデータ転送速度の制御が異なってくる。
<Seventh Embodiment> FIG. 27 is a block diagram showing the system of the seventh embodiment. In this specific example, an example in which a plurality of external devices are connected to the host computer 1 is shown. FIG. 28 shows a specific state explanatory view of the device. As shown in the figure, for example, a modem 41, a hub 42, a printer 3 and the like are connected to the host computer 40. The host computer 40 simultaneously controls communication with these devices. Therefore, the printer 3
The control of the data transfer rate is different from the case where only one is connected to the host computer 40.

【0112】図27に示すホストコンピュータ40に
は、アプリケーション4A,4B,4Cと、オペレーテ
ィングシステム5、プリンタドライバ6、ポートドライ
バ7、IEEE1284出力部8、ネットワークドライ
バ43、シリアルドライバ44等が設けられている。ネ
ットワークドライバ43は、ハブ42等を制御するドラ
イバである。また、シリアルドライバ44は、モデム4
1等を制御するドライバである。
The host computer 40 shown in FIG. 27 is provided with applications 4A, 4B and 4C, an operating system 5, a printer driver 6, a port driver 7, an IEEE1284 output section 8, a network driver 43, a serial driver 44 and the like. There is. The network driver 43 is a driver that controls the hub 42 and the like. In addition, the serial driver 44 is the modem 4
It is a driver for controlling the first and the like.

【0113】このシステムの外観構成を次の図に示す。
図28は、具体例7における接続されているデバイスの
状態説明図である。図のホストコンピュータ40には、
モデム41、ハブ42、レーザプリンタ3が接続されて
いる。
The external structure of this system is shown in the following figure.
FIG. 28 is an explanatory diagram of states of connected devices in the specific example 7. In the illustrated host computer 40,
The modem 41, the hub 42, and the laser printer 3 are connected.

【0114】IEEE1284出力部8に接続されたプ
リンタ3は、データ受信部45、データ解析部23、印
刷部24等を備えている。これらの全体的な構成はこれ
までの具体例とほぼ同様である。また、ホストコンピュ
ータ40のポートドライバ7は、I/F処理部11、デ
ータ転送部12、転送速度調整部13、カウンタ発生部
15、ダミーデータ16、ループカウンタ17、ウェイ
ト処理部18及びタイマ46を備えている。ポートドラ
イバ各部の基本的な機能は具体例1等で説明したものと
ほぼ同様である。具体例7固有の動作について、以下の
図を用いて説明する。
The printer 3 connected to the IEEE1284 output unit 8 includes a data receiving unit 45, a data analyzing unit 23, a printing unit 24 and the like. The overall configuration of these is almost the same as the specific examples so far. The port driver 7 of the host computer 40 includes an I / F processing unit 11, a data transfer unit 12, a transfer speed adjusting unit 13, a counter generating unit 15, dummy data 16, a loop counter 17, a wait processing unit 18, and a timer 46. I have it. The basic function of each part of the port driver is almost the same as that described in the first specific example. The operation specific to the specific example 7 will be described with reference to the following drawings.

【0115】図29は、1秒間にプリンタに転送される
データ量の説明図を示す。図の(a)は、プリンタのみ
がホストコンピュータ40に接続されて動作した場合の
例を示す。このグラフの横軸は時間である。縦軸は単位
時間に転送されるデータ量を示す。時刻t1から時刻t
2まで、所定の一定のデータ転送速度でデータを転送し
印刷を行う。(b)には、プリンタ以外に送受信を行う
デバイスがある場合の制御を示す。
FIG. 29 is an explanatory diagram of the amount of data transferred to the printer in one second. FIG. 10A shows an example in which only the printer is connected to the host computer 40 and operated. The horizontal axis of this graph is time. The vertical axis represents the amount of data transferred per unit time. From time t1 to time t
Up to 2, data is transferred and printed at a predetermined constant data transfer rate. (B) shows the control when there is a device other than the printer for transmitting and receiving.

【0116】(a)の時刻t1から時刻t2までの時間
に転送されるデータ量は、(b)の時刻t1から時刻t
2までの時間に転送されるデータ量と一致する。(b)
のケースでは、プリンタの制御を時刻t1から時刻t2
までの間でのみ行う。時刻t2からt3までは、ファク
シミリの制御が行われ、時刻t3から時刻t4までは、
ネットワークの制御が行われる。ファクシミリの制御は
モデム41を通じて行われ、ネットワークの制御はハブ
42を通じて行われる。
The amount of data transferred during the period from time t1 to time t2 in (a) is the same as the amount of data transferred from time t1 to time t in (b).
This corresponds to the amount of data transferred in the time up to 2. (B)
In this case, the printer is controlled from time t1 to time t2.
Only in between. From time t2 to t3, facsimile control is performed, and from time t3 to time t4,
Network control is performed. Facsimile control is performed through the modem 41, and network control is performed through the hub 42.

【0117】こうした場合、(a)に示したと同様のデ
ータ量をプリンタに転送する場合には、時刻t1から時
刻t2までの間に、単位時間当たりより多くのデータを
プリンタに転送しなければならない。従って、図のデー
タ量D1よりD2を大きくするために、(b)の場合、
転送速度が速くなる。これまでの具体例では、他の外部
装置の接続を考慮せずに転送速度を設定したので、複数
の外部装置が同時に制御されると、データ転送速度が予
定より遅くなる。この具体例では、その転送速度の最適
化を図る。
In such a case, when transferring the same amount of data as shown in (a) to the printer, more data must be transferred to the printer per unit time between time t1 and time t2. . Therefore, in order to rather large amount of data D1 from D2 of FIG, In the case of (b),
Transfer speed becomes faster. In the specific examples so far, the transfer rate is set without considering the connection of other external apparatuses, so that when a plurality of external apparatuses are simultaneously controlled, the data transfer rate becomes slower than expected. In this specific example, the transfer rate is optimized.

【0118】図30には、具体例7のパワーオン時の処
理フローチャートを示す。図27に示すホストコンピュ
ータ40の電源をオンしたとき、この処理が開始され
る。まず、ステップS1において、ホストコンピュータ
の転送速度を調べてこれをMaxSpeedにセットする。次
に、ステップS2において、転送速度調整部13は、転
送速度調査後、プリンタの最適受信速度を調べてReceiv
eSpeedにセットする。
FIG. 30 shows a processing flowchart at the time of power-on of the seventh specific example. This process is started when the power of the host computer 40 shown in FIG. 27 is turned on. First, in step S1, the transfer speed of the host computer is checked and set to MaxSpeed. Next, in step S2, the transfer rate adjusting unit 13 checks the optimum receiving speed of the printer after checking the transfer rate,
Set to eSpeed.

【0119】次に、ステップS3において、ホストコン
ピュータの転送速度がプリンタの最適受信速度を上回っ
ているかどうかを判断する。上回っている場合にのみ、
この具体例が有効であるから、上回っていない場合には
処理を終了する。上回っている場合には、ステップS4
に進み、転送速度の最適化を行い、最適化したときの転
送速度をOptimumSpeedにセットする。この処理は、具体
例1と同様である。
Next, in step S3, it is determined whether the transfer speed of the host computer exceeds the optimum reception speed of the printer. Only if it is above
Since this concrete example is valid, the processing is ended if the number is not exceeded. If yes, step S4
Go to, optimize the transfer rate, and set the optimized transfer rate to OptimumSpeed. This process is the same as in the first specific example.

【0120】次に、ステップS5において、ホストコン
ピュータにプリンタ以外のデバイスが接続されているか
どうかを判断する。プリンタ以外のデバイスが接続され
ていなければ具体例1と同様の設定でよいから、ここで
処理を終了する。プリンタ以外のデバイスが接続されて
いる場合には、ステップS6に進み、接続されているデ
バイスが使用可能な状態にあるかどうかを判断する。使
用可能な状態でなければ、プリンタのみが接続されてい
る場合と同様であるから、処理を終了する。使用可能な
状態では、ステップS7に進み、ホストコンピュータの
転送速度の範囲内で最適化した転送速度を100キロバ
イト単位で増加させていき、その値を配列SetSpeed[20]
にセットする。
Next, in step S5, it is determined whether or not a device other than a printer is connected to the host computer. If a device other than the printer is not connected, the same setting as that of the first specific example may be performed, and the processing is ended here. If a device other than the printer is connected, the process proceeds to step S6, and it is determined whether or not the connected device is in a usable state. If it is not in the usable state, it is similar to the case where only the printer is connected, and the process is ended. In the usable state, the process proceeds to step S7, where the optimized transfer rate within the range of the transfer rate of the host computer is increased in 100 kilobyte units, and the value is set in the array SetSpeed [20].
Set to.

【0121】例えば、ホストコンピュータの転送速度が
毎秒1メガバイト、最適化を行ったプリンタの転送速度
が毎秒400キロバイトとする。この場合、最適化され
た速度を100キロバイトずつ増加させたものを、それ
ぞれ配列のSetSpeed[0]から順に設定する。その設定内
容を以下に示す。 SetSpeed[0] = OptimumSpeed + 100 = 500[KBytes/S] SetSpeed[1] = OptimumSpeed + 200 = 600[KBytes/S] SetSpeed[2] = OptimumSpeed + 300 = 700[KBytes/S] SetSpeed[3] = OptimumSpeed + 400 = 800[KBytes/S] SetSpeed[4] = OptimumSpeed + 500 = 900[KBytes/S] SetSpeed[5] = OptimumSpeed + 600 = 1000[KBytes/S] なお、SetSpeed[6]以下の式は、ホストコンピュータの
転送速度以上になるため無視する。
For example, assume that the transfer rate of the host computer is 1 megabyte per second and the transfer rate of the optimized printer is 400 kilobytes per second. In this case, the optimized speed increased by 100 kilobytes is sequentially set from SetSpeed [0] of the array. The setting contents are shown below. SetSpeed [0] = OptimumSpeed + 100 = 500 [KBytes / S] SetSpeed [1] = OptimumSpeed + 200 = 600 [KBytes / S] SetSpeed [2] = OptimumSpeed + 300 = 700 [KBytes / S] SetSpeed [3] = OptimumSpeed + 400 = 800 [KBytes / S] SetSpeed [4] = OptimumSpeed + 500 = 900 [KBytes / S] SetSpeed [5] = OptimumSpeed + 600 = 1000 [KBytes / S] The formula below SetSpeed [6] is , Ignore it because it exceeds the transfer rate of the host computer.

【0122】図31には、具体例7の転送速度の再セッ
トフローチャートを示す。まず、ステップS1におい
て、図27に示したポートドライバ7のタイマ46をス
タートさせる。そして、ステップS2において、転送速
度を予め求めた最適速度にセットしてデータの転送を開
始する。ステップS3では、ある特定バイト数のデータ
を転送した時点でタイマ46を止める。そして、そのと
きの値をTimeにセットする。
FIG. 31 shows a transfer rate resetting flowchart of the seventh embodiment. First, in step S1, the timer 46 of the port driver 7 shown in FIG. 27 is started. Then, in step S2, the transfer rate is set to the previously determined optimum rate and the data transfer is started. In step S3, the timer 46 is stopped at the time when a certain specific number of bytes of data are transferred. Then, the value at that time is set in Time.

【0123】次に、ステップS4において、転送したデ
ータサイズとタイマ値から現在の転送速度を計算して、
RealSpeedにセットする。即ち、実際に転送を開始し、
その転送速度をタイマ46を用いて測定する。そして、
ステップS5において、実際の転送速度が最適転送速度
として設定したOptimumSpeedから100キロバイトを引
いた値よりも小さいかどうかを判断する。なお、ここで
は、実際には最適速度よりも実測した速度が遅くなって
いるかどうかを判断する。
Next, in step S4, the current transfer rate is calculated from the transferred data size and the timer value,
Set to Real Speed. That is, the transfer is actually started,
The transfer rate is measured using the timer 46. And
In step S5, it is determined whether the actual transfer rate is smaller than the value obtained by subtracting 100 kilobytes from Optimum Speed set as the optimum transfer rate. In addition, here, it is determined whether or not the actually measured speed is slower than the optimum speed.

【0124】単純に数値比較をすると、測定誤差が含ま
れることによって、ほぼ最適速度でデータ転送を行って
いるのに、その補正をしてしまうことになる。従って、
ここではタイマ46の精度を考慮し、最適速度から10
0キロバイトを差し引いた値と実際に測定をしたスピー
ドとを比較している。これ以上実際の速度が下回る場合
は誤差ではないから、データ転送速度の補正を行う。即
ち、ステップS6に進み、最適速度と実際の速度とを比
較し、最適速度の補正を行って、これを再びセットし直
す。
If numerical comparison is simply performed, the measurement error is included, and therefore the data transfer is performed at almost the optimum speed, but the correction is made. Therefore,
Here, considering the accuracy of the timer 46, the optimum speed is 10
The value obtained by subtracting 0 kilobytes is compared with the actually measured speed. If the actual speed is lower than this, it is not an error, so the data transfer speed is corrected. That is, the process proceeds to step S6, the optimum speed is compared with the actual speed, the optimum speed is corrected, and this is set again.

【0125】この場合に、どの設定を行えばよいかとい
う計算は次の式により行う。 配列番号=(OptimumSpeed/RealSpeed)/100−1 ここに示した配列番号の式を、上記SetSpeedの配列群か
ら選択し、この転送速度を最適速度として再セットす
る。即ち、その条件に沿った待機時間でデータ転送を行
う。
In this case, the calculation as to which setting should be made is performed by the following equation. Sequence number = (OptimumSpeed / RealSpeed) / 100-1 The formula of the sequence number shown here is selected from the sequence group of SetSpeed, and this transfer speed is reset as the optimum speed. That is, the data transfer is performed with the waiting time according to the condition.

【0126】こうして、ステップS1〜ステップS6の
処理を必要なだけ繰り返し、最適転送速度と実際の転送
速度とがほぼ等しくなった場合に処理を終了する。次に
ステップS7に進み、残りのデータを転送する。即ち、
ステップS1〜ステップS6によって転送速度の補正を
行い、残りのデータを転送するといった手順になる。例
えば、上記のように測定した実際の転送速度を毎秒30
0キロバイトとすると、配列番号iは、次の式により求
められる。 i=(400−300)/100−1=0
In this way, the processes of steps S1 to S6 are repeated as many times as necessary, and when the optimum transfer rate and the actual transfer rate become substantially equal, the process ends. Next, in step S7, the remaining data is transferred. That is,
The transfer rate is corrected in steps S1 to S6, and the remaining data is transferred. For example, the actual transfer rate measured as described above is set to 30
Assuming 0 kilobytes, the array element number i is calculated by the following equation. i = (400-300) / 100-1 = 0

【0127】従って、この例では、次に再セットする最
適速度はSetSpeed[0]=500[KBytes/s]となる。また、最
初、毎秒400キロバイトにセットした転送速度が他の
デバイスとの並行処理のため、300キロバイトまで転
送速度が落ちた。これを毎秒500キロバイトに短縮す
るように再セットすると、そのときの転送速度は500×3
00/400=約380KByte/sになる。即ち、結果として、プ
リンタの最適受信速度に近付けてデータ転送を行うこと
ができるようになる。
Therefore, in this example, the optimum speed to be reset next is SetSpeed [0] = 500 [KBytes / s]. Also, the transfer rate initially set at 400 kilobytes per second was reduced to 300 kilobytes due to parallel processing with other devices. If you reset this to 500 kilobytes per second, the transfer rate at that time is 500 × 3
00/400 = approximately 380 KByte / s. That is, as a result, the data transfer can be performed at a speed close to the optimum reception speed of the printer.

【0128】〈具体例7の効果〉以上のように、複数の
外部装置がホスト装置に接続されて、データ転送の対象
となる外部装置に対する見かけ上のデータ転送速度が低
下する場合に、各外部装置に同時にデータを送信して、
見かけ上の転送速度を実測し、その転送速度が目標とす
る転送速度に近付くように待機時間を短縮することによ
って、各外部装置に対するデータ転送速度の最適化を図
ることができる。
<Effects of Concrete Example 7> As described above, when a plurality of external devices are connected to the host device and the apparent data transfer speed with respect to the external device targeted for data transfer decreases, Send data to the device at the same time,
By measuring the apparent transfer rate and shortening the standby time so that the transfer rate approaches the target transfer rate, the data transfer rate for each external device can be optimized.

【0129】〈具体例8〉上記の具体例では、ホスト装
置に複数の外部装置が接続された状態でホスト装置がパ
ワーオンされ、その後、プリンタへのデータ転送中、接
続状態は変わらなかった。ところが、例えば、PCMC
IA接続といったインタフェースを使用することによっ
て、ホストコンピュータが動作中に外部装置を自由に接
続したり切り離したりすることができる。従って、プリ
ンタに印刷データを転送中に、新たに外部装置がそのホ
ストコンピュータに接続され、ホストコンピュータと双
方向通信を開始した場合には、プリンタに対する実質的
なデータ転送速度が変動する。
<Specific Example 8> In the above specific example, the host device is powered on in the state where a plurality of external devices are connected to the host device, and then the connection state does not change during data transfer to the printer. However, for example, PCMC
By using an interface such as IA connection, external devices can be freely connected or disconnected while the host computer is operating. Therefore, when the external device is newly connected to the host computer and the bidirectional communication with the host computer is started during the transfer of the print data to the printer, the substantial data transfer speed to the printer varies.

【0130】図32には、具体例8でのパワーオン時の
処理フローチャートを示す。ホストコンピュータをパワ
ーオンした場合にはまず、この処理を開始する。図のス
テップS1〜ステップS3までは、図30を用いて説明
した具体例7のケースと同様である。ステップS4も同
様で、測定をして求めた最適転送速度をまず設定する。
そして、ステップS5において、PCMCIAをサポー
トしているかどうかを判断する。PCMCIAをサポー
トしているケース以外は具体例7と同様のため、処理を
終了する。
FIG. 32 shows a processing flowchart at power-on in the eighth specific example. When the host computer is powered on, this process is started first. Steps S1 to S3 in the figure are the same as the case of the specific example 7 described with reference to FIG. The same applies to step S4. First, the optimum transfer rate obtained by measurement is set.
Then, in step S5, it is determined whether or not the PCMCIA is supported. Since the process is the same as that of the specific example 7 except that the PCMCIA is supported, the process ends.

【0131】PCMCIAをサポートしている場合に
は、ステップS6に進み、ホストコンピュータの転送速
度の範囲内でセットした最適受信速度を100キロバイ
ト単位で増加させ、具体例7の場合と同様、配列SetSpe
ed[20]にセットする。その配列の内容は、具体例7の場
合と全く同一である。
If PCMCIA is supported, the process proceeds to step S6, where the optimum receiving speed set within the range of the transfer speed of the host computer is increased in 100 kilobyte units, and the array SetSpe
Set to ed [20]. The contents of the array are exactly the same as in the case of Example 7.

【0132】図33には、具体例8での転送速度再セッ
トフローチャートを示す。ここでは、プリンタにデータ
を転送中、データの転送速度を監視して、他の外部装置
の新たな接続によるデータ転送速度の低下を検出する。
まず、ステップS1において、図27に示したポートド
ライバ7のデータ転送部12は、転送データサイズを受
け取る。そして、ステップS2において、その転送速度
を最適転送速度としてループカウンタ17にセットす
る。次に、ステップS3で、タイマ46をスタートさせ
る。ステップS4で、1バイトデータを転送する。ステ
ップS5では、転送データサイズのデクリメントを行
う。そして、ステップS6において、転送データサイズ
が“0”になったかどうかを判断する。
FIG. 33 shows a transfer rate reset flow chart in the eighth specific example. Here, while transferring data to the printer, the data transfer speed is monitored to detect a decrease in the data transfer speed due to a new connection of another external device.
First, in step S1, the data transfer unit 12 of the port driver 7 shown in FIG. 27 receives the transfer data size. Then, in step S2, the transfer rate is set in the loop counter 17 as the optimum transfer rate. Next, in step S3, the timer 46 is started. In step S4, 1-byte data is transferred. In step S5, the transfer data size is decremented. Then, in step S6, it is determined whether or not the transfer data size becomes "0".

【0133】まだ、転送すべきデータがある場合には、
ステップS7に進み、プリンタがビジーかどうかを判断
する。プリンタがビジーであれば、タイマ46を一時停
止させる。タイマで調査している時間が、ホストコンピ
ュータのデータ転送時間になるため、プリンタがビジー
状態で転送できないような時間を除外するためである。
ステップS9で、プリンタがビジーかどうかを判断し、
プリンタがビジーでなくなれば、ステップS10に進
み、タイマを再スタートさせる。
If there is still data to be transferred,
In step S7, it is determined whether the printer is busy. If the printer is busy, the timer 46 is suspended. This is because the time that the timer is investigating becomes the data transfer time of the host computer, so that the time when the printer cannot transfer in a busy state is excluded.
In step S9, it is determined whether the printer is busy,
If the printer is not busy, the process proceeds to step S10 to restart the timer.

【0134】ステップS11では、特定のバイト数のデ
ータを転送したかどうかを判断する。そして、ステップ
S12において、タイマ46を止めて、そのときの値を
Timeにセットする。ステップS13では、転送データサ
イズとタイマ値とから現在の転送速度を計算して、Real
Speedにセットする。このステップS12、ステップS
13等の処理は、具体例7のステップS4の処理と同様
である。
In step S11, it is determined whether or not a specific number of bytes of data have been transferred. Then, in step S12, the timer 46 is stopped, and the value at that time is set to
Set to Time. In step S13, the current transfer rate is calculated from the transfer data size and the timer value, and the
Set to Speed. This step S12, step S
The processing of 13 and the like is the same as the processing of step S4 of the specific example 7.

【0135】このように実際の転送速度を計算により求
め、ステップS14において、実際の計算速度とセット
された最適速度とを比較する。実際の計算速度の計算方
法及びセットされた速度との比較方法は具体例7と同様
である。従って、もし実際に測定された速度が設定した
速度を下回る場合には、ステップS15に進み、設定速
度の再セットを行う。その再セット方法は、具体例7と
同様である。
In this way, the actual transfer rate is obtained by calculation, and in step S14, the actual calculated rate is compared with the set optimum rate. The calculation method of the actual calculation speed and the comparison method with the set speed are the same as those in the specific example 7. Therefore, if the actually measured speed is lower than the set speed, the process proceeds to step S15, and the set speed is reset. The resetting method is the same as in the concrete example 7.

【0136】〈具体例8の効果〉以上のように、ホスト
コンピュータの電源がオンされた状態で、転送速度の低
下を監視し、そのホストコンピュータに新たに接続され
た外部装置を認識し、各外部装置が並列動作を行った場
合、転送速度の再設定を行う。こうして、プリンタがオ
ーバーランやデータ抜けの発生しないよう、転送速度の
最適化を図ることができる。
<Effect of Concrete Example 8> As described above, with the power supply of the host computer turned on, the decrease of the transfer rate is monitored, and the external device newly connected to the host computer is recognized, When the external device operates in parallel, the transfer rate is reset. In this way, the transfer speed can be optimized so that the printer does not overrun or lose data.

【図面の簡単な説明】[Brief description of drawings]

【図1】具体例1のシステムを示すブロック図である。FIG. 1 is a block diagram showing a system of a specific example 1. FIG.

【図2】PC(パーソナルコンピュータ)の性能による
転送速度の差説明図である。
FIG. 2 is an explanatory diagram of a difference in transfer speed depending on the performance of a PC (personal computer).

【図3】データ転送速度が適切な場合のプリンタ動作タ
イムチャートである。
FIG. 3 is a printer operation time chart when the data transfer rate is appropriate.

【図4】データ転送速度が不適切な場合のプリンタ動作
タイムチャートである。
FIG. 4 is a printer operation time chart when the data transfer rate is inappropriate.

【図5】具体例1のシステム動作フローチャートであ
る。
FIG. 5 is a system operation flowchart of specific example 1;

【図6】図5のステップS3、ステップS4における見
かけ上の転送速度を求めるためのフローチャートで、
(a)は、転送速度TransSpeed1の計算動作フローチャ
ート、(b)は、転送速度TransSpeed2の計算動作フロ
ーチャートである。
FIG. 6 is a flowchart for obtaining an apparent transfer rate in steps S3 and S4 of FIG.
(A) is a calculation operation flowchart of the transfer speed TransSpeed1, and (b) is a calculation operation flowchart of the transfer speed TransSpeed2.

【図7】転送速度の減少率計算の説明図である。FIG. 7 is an explanatory diagram of a transfer rate reduction rate calculation.

【図8】図1に示したポートドライバ7のデータ転送動
作フローチャートである。
8 is a flowchart of a data transfer operation of the port driver 7 shown in FIG.

【図9】具体例2のシステム動作フローチャートであ
る。
FIG. 9 is a system operation flowchart of specific example 2;

【図10】ウェイトカウンタの誤差説明図である。FIG. 10 is an explanatory diagram of an error of the wait counter.

【図11】誤差補正動作のフローチャートである。FIG. 11 is a flowchart of an error correction operation.

【図12】カウンタをダウンして補正する場合の動作フ
ローチャートである。
FIG. 12 is an operation flowchart when the counter is down and corrected.

【図13】カウンタをアップして補正する場合の動作の
フローチャートである。
FIG. 13 is a flowchart of an operation when a counter is incremented for correction.

【図14】具体例3のシステム構成を示すブロック図で
ある。
FIG. 14 is a block diagram showing a system configuration of a specific example 3;

【図15】具体例3のシステム動作説明図である。FIG. 15 is an explanatory diagram of a system operation of a specific example 3;

【図16】具体例4のシステムを示すブロック図であ
る。
FIG. 16 is a block diagram showing a system of a specific example 4.

【図17】信号線のなまりによるデータ抜けと防止策説
明図である。
FIG. 17 is an explanatory diagram of data loss due to rounding of a signal line and a preventive measure.

【図18】転送速度調整処理の動作フローチャートであ
る。
FIG. 18 is an operation flowchart of transfer rate adjustment processing.

【図19】信号線のなまり調整処理フローチャート(そ
の1)である。
FIG. 19 is a signal line rounding adjustment processing flowchart (part 1).

【図20】信号線のなまり調整処理フローチャート(そ
の2)である。
FIG. 20 is a signal line rounding adjustment processing flowchart (part 2).

【図21】データ受信部処理概要フローチャートであ
る。
FIG. 21 is a flowchart of a data receiving unit process outline.

【図22】具体例5のシステムを示すブロック図であ
る。
FIG. 22 is a block diagram showing a system of a specific example 5.

【図23】具体例5における最適化の方法説明図であ
る。
FIG. 23 is an explanatory diagram of an optimization method according to a specific example 5.

【図24】具体例5の受信速度調整処理概要フローチャ
ートである。
FIG. 24 is a schematic flowchart of a reception speed adjustment process of a specific example 5.

【図25】具体例6における最適化の方法タイミングチ
ャートである。
FIG. 25 is a timing chart of the optimization method in Concrete Example 6;

【図26】具体例6の動作フローチャートである。FIG. 26 is an operation flowchart of specific example 6;

【図27】具体例7のシステムを示すブロック図であ
る。
FIG. 27 is a block diagram showing a system of a specific example 7.

【図28】具体例7における接続されているデバイスの
状態説明図である。
28 is a state explanatory view of connected devices in a specific example 7. FIG.

【図29】1秒間にプリンタに転送されるデータ量の説
明図である。
FIG. 29 is an explanatory diagram of the amount of data transferred to the printer in one second.

【図30】具体例7のパワーオン時の処理フローチャー
トである。
FIG. 30 is a processing flowchart at the time of power-on of the specific example 7.

【図31】具体例7の転送速度の再セットフローチャー
トである。
FIG. 31 is a transfer rate resetting flowchart of Concrete Example 7;

【図32】具体例8でのパワーオン時の処理フローチャ
ートである。
FIG. 32 is a processing flowchart at power-on in the eighth specific example.

【図33】具体例8での転送速度再セットフローチャー
トである。
FIG. 33 is a transfer rate reset flowchart in Concrete Example 8;

【符号の説明】[Explanation of symbols]

1 ホストコンピュータ 3 プリンタ 4 アプリケーション 5 オペレーティングシステム 6 プリンタドライバ 7 ポートドライバ 23 データ解析部 24 印刷部 30 データ受信部 1 Host computer 3 printers 4 applications 5 Operating system 6 Printer driver 7 port driver 23 Data Analysis Department 24 Printing department 30 data receiver

Claims (8)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 単位量データを待機時間が経過する毎に
外部装置へ転送するデータ転送部を備えるホスト装置を
含むデータ転送システムにおいて、 前記ホスト装置は、 所定量のダミーデータを保持するダミーデータ格納部
と、 該ダミーデータ格納部の前記ダミーデータを前記データ
転送部に供給し、該データ転送部から単位量ダミーデー
タを設定待機時間毎に前記外部装置へ転送させて該ダミ
ーデータの転送の開始から終了までに要した転送時間を
タイマにより実測すると共に、該転送時間と前記ダミー
データの転送量とから該ダミーデータの転送速度を演算
し、該転送速度を予め保持する前記外部装置の最適デー
タ受信速度に一致させるための待機時間を算出する転送
速度調整部と、 該算出した待機時間を設定する待機時間設定部と、を含
むことを特徴とするデータ転送システム。
1. A data transfer system including a host device comprising a data transfer unit for transferring unit amount data to an external device each time a waiting time elapses, wherein the host device holds dummy data of a predetermined amount. A storage unit and the dummy data in the dummy data storage unit are supplied to the data transfer unit, and the unit amount dummy data is transferred from the data transfer unit to the external device at each set standby time to transfer the dummy data. The transfer time required from the start to the end is measured by a timer, the transfer rate of the dummy data is calculated from the transfer time and the transfer amount of the dummy data, and the optimum transfer rate of the external device is held in advance. A transfer rate adjusting unit that calculates a waiting time for matching the data reception speed and a waiting time setting unit that sets the calculated waiting time are included. A data transfer system characterized by the following.
【請求項2】 請求項1に記載のデータ転送システムに
おいて、 前記転送速度調整部は、前記 所定量のダミーデータをそれぞれ異なる設定待機時
間で転送したときの転送速度を演算し、該各転送速度
の変化から前記待機時間を算出することを特徴とするデ
ータ転送システム。
2. A data transfer system according to claim 1, wherein the transfer speed adjusting unit calculates the respective transfer rate when the dummy data of the predetermined amount was transferred at a different set waiting time, respectively, each of said transfer A data transfer system characterized in that the waiting time is calculated from a change in speed.
【請求項3】 請求項1に記載のデータ転送システムに
おいて、 前記転送速度調整部は、 前記転送時間を、外部装置側に設けたタイマを利用して
実測することを特徴とするデータ転送システム。
3. The data transfer system according to claim 1, wherein the transfer rate adjusting unit actually measures the transfer time by using a timer provided on an external device side.
【請求項4】 請求項1に記載のデータ転送システムに
おいて、 前記外部装置は前記単位量ダミーデータの受信数を計数
するサムチェック処理部を有し、 前記転送速度調整部は、 送信した単位量ダミーデータの送信数と前記外部装置か
ら受けた前記単位量ダミーデータの受信数とを比較して
データ抜け発生の有無を検査し、データ抜けが発生する
場合には、前記算出した待機時間を部分的に調整するこ
とを特徴とするデータ転送システム。
4. The data transfer system according to claim 1, wherein the external device includes a sum check processing unit that counts the number of received unit amount dummy data, and the transfer rate adjustment unit includes a transmitted unit amount. The number of dummy data transmissions is compared with the number of received unit amount dummy data received from the external device to check for data loss. If data loss occurs, the calculated waiting time is partially A data transfer system characterized by adjusting manually.
【請求項5】 請求項1に記載のデータ転送システムに
おいて、 ホスト装置から複数の外部装置にデータが転送されると
き、 前記転送速度調整部は、 複数の外部装置に同時に前記ダミーデータを転送して各
新たな転送速度を演算し、該新たな転送速度が前記転送
速度に近付くように前記待機時間を短縮することを特徴
とするデータ転送システム。
5. The data transfer system according to claim 1, wherein when data is transferred from the host device to a plurality of external devices, the transfer rate adjusting unit transfers the dummy data to a plurality of external devices at the same time. A data transfer system, wherein each new transfer rate is calculated, and the standby time is shortened so that the new transfer rate approaches the transfer rate.
【請求項6】 請求項5に記載のデータ転送システムに
おいて、 ホスト装置に接続されて同時にデータを転送する外部装
置が増減した場合に、各外部装置に対する前記新たな転
送速度を監視し、該新たな転送速度が変化したとき、該
新たな転送速度が前記転送速度に近付くように前記待機
時間を短縮することを特徴とするデータ転送システム。
6. The data transfer system according to claim 5, wherein when the number of external devices connected to a host device and simultaneously transferring data increases or decreases, the new transfer speed for each external device is monitored and the new transfer rate is monitored. Data transfer system, wherein the standby time is shortened so that the new transfer rate approaches the new transfer rate when the new transfer rate changes.
【請求項7】 外部装置からビジー信号を受信する時間
を待機時間とし、該待機時間が経過する毎に単位量デー
タを前記外部装置へ転送するホスト装置を有するデータ
転送システムにおいて、 前記ホスト装置は、 ダミーデータを保持するダミーデータ格納部と、 該ダミーデータ格納部の単位量ダミーデータを待機時間
が経過する毎に前記外部装置へ転送するデータ転送部と
を含み、 前記外部装置は、 前記ダミーデータの所定受信量及び受信に要した時間か
ら該ダミーデータの受信速度を演算する受信速度測定部
と、 該受信速度を自己の最大受信速度に一致させるための待
ち時間を算出する受信速度調整部と、 該算出した待ち時間を設定する待ち時間設定部とを含
み、データ受信時に該待ち時間だけ前記ビジー信号を前
記ホスト装置へ供給することを特徴とするデータ転送シ
ステム。
7. A data transfer system having a host device for transferring a unit amount data to the external device every time the standby time elapses when a busy signal is received from the external device, the host device comprising: A dummy data storage unit that holds dummy data; and a data transfer unit that transfers the unit amount dummy data of the dummy data storage unit to the external device each time a standby time elapses. A reception speed measuring unit that calculates a reception speed of the dummy data from a predetermined reception amount of data and a time required for the reception, and a reception speed adjusting unit that calculates a waiting time for matching the reception speed with the maximum reception speed of the self. And a waiting time setting unit that sets the calculated waiting time, and supplies the busy signal to the host device for the waiting time when data is received. A data transfer system characterized in that
【請求項8】 請求項7に記載のデータ転送システムに
おいて、 前記外部装置には、前記ホスト装置からデータを自動受
信するダイレクトメモリアクセスコントローラが設けら
れ、 前記外部装置の受信速度調整部は、前記ダイレクトメモ
リアクセスコントローラが一括して受信可能な単位量デ
ータの数量を検知し、前記算出した待ち時間に該数量を
乗算して新たな待ち時間を算出することを特徴とするデ
ータ転送システム。
8. The data transfer system according to claim 7, wherein the external device is provided with a direct memory access controller that automatically receives data from the host device, and the reception speed adjusting unit of the external device is A data transfer system characterized in that a direct memory access controller detects the quantity of unit quantity data that can be collectively received and multiplies the calculated waiting time by the quantity to calculate a new waiting time.
JP03209299A 1999-02-10 1999-02-10 Data transfer system Expired - Fee Related JP3394717B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP03209299A JP3394717B2 (en) 1999-02-10 1999-02-10 Data transfer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP03209299A JP3394717B2 (en) 1999-02-10 1999-02-10 Data transfer system

Publications (2)

Publication Number Publication Date
JP2000231457A JP2000231457A (en) 2000-08-22
JP3394717B2 true JP3394717B2 (en) 2003-04-07

Family

ID=12349252

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03209299A Expired - Fee Related JP3394717B2 (en) 1999-02-10 1999-02-10 Data transfer system

Country Status (1)

Country Link
JP (1) JP3394717B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993605B2 (en) 2001-02-28 2006-01-31 Sharp Laboratories Of America, Inc. Adaptive run-time data transfer optimization
US7722147B2 (en) * 2004-10-15 2010-05-25 Fujifilm Dimatix, Inc. Printing system architecture
JP4650357B2 (en) * 2006-07-03 2011-03-16 富士ゼロックス株式会社 Continuous paper printing apparatus and continuous paper printing system
JP4901404B2 (en) * 2006-09-29 2012-03-21 Necパーソナルコンピュータ株式会社 Disk device writing control method and disk writing device

Also Published As

Publication number Publication date
JP2000231457A (en) 2000-08-22

Similar Documents

Publication Publication Date Title
US6304911B1 (en) Information packet reception indicator for reducing the utilization of a host system processor unit
US5680596A (en) Data transfer apparatus with automatic transmission rate adjustment
TWI430101B (en) A method for time-stamping messages
JP3394717B2 (en) Data transfer system
US8576734B2 (en) Information processing apparatus, control method thereof and program
US6167480A (en) Information packet reception indicator for reducing the utilization of a host system processor unit
US6952276B2 (en) Printer detecting data precisely in response to change in data transmission speed
JP3201141B2 (en) Data receiving method
JP5353470B2 (en) USB device, image processing apparatus, USB transfer control method, USB transfer control program, and recording medium
JP2000267826A (en) Device and method for controlling image output
US6061305A (en) Device to measure average timing parameters
JP5736847B2 (en) Image forming apparatus and control method thereof
EP2728514A2 (en) Method of controlling speed of ethernet connection in power save mode and image forming apparatus performing the same
JP5768540B2 (en) Image processing apparatus and data transfer management method
JPH07210365A (en) Image forming device
JP2006195607A (en) Method and circuit for determining bulk-out transfer end
JP2001331440A (en) Data reception processor
US6570666B1 (en) Printer detecting data precisely in response to change in data transmission speed
JP3286079B2 (en) Computer system with data transfer delay control function
JP3787869B2 (en) Terminal device
JPH09309232A (en) Printing device
JP2005182505A (en) Data transfer controller and image forming apparatus
JP2001166891A (en) Printer
JP2004355041A (en) Dma transfer relay device, dma transfer method and dma transfer system
JP2001014120A (en) Print system and recording medium

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090131

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100131

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100131

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110131

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110131

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120131

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130131

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20140131

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees