データ通信装置
【目的】 CPUから独立したDMAによってRAMエリアとモデム間のデータ転送を行なうことにより、CPUの負担を軽減したうえで高速なモデム制御を実現できるデータ通信装置を提供することを目的としている。
【構成】 非ECM送信時にモデム18からのデータ入力要求がある度に、DMAコントローラ22によってFIFOメモリ21からモデム18に所定バイト数のデータを転送する。
【構成】 非ECM送信時にモデム18からのデータ入力要求がある度に、DMAコントローラ22によってFIFOメモリ21からモデム18に所定バイト数のデータを転送する。
【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は例えばファクシミリ装置のようにモデムを用いてデータを送受信するデータ通信装置に関し、特にモデムの高速化に対処して尚且つCPUの負担を軽減するデータ通信装置に関する。
【0002】
【従来の技術】従来、ファクシミリ装置等のデータ通信装置が多用されているが、このデータ通信装置たとえばファクシミリ装置において、モデムに対するデータの入出力は、モデムが発生する割り込み要求を基にソフトウェアにて、CPUの割り込み処理の中で行なっていた。
【0003】しかし、近年、送信中でもコピーや次の原稿の読取およびメモリ蓄積などができるデュアルアクセス等の機能が増大し、CPUの負担が増大している。また、モデムの送受信スピードも高速化の傾向にあり、もはや14400bpsのモデムを搭載したファクシミリ装置が常識化している。
【0004】
【発明が解決しようとする課題】しかしながら、このような従来のデータ通信装置にあっては、モデムのスピードが上がるにつれてCPUへの割り込み要求の頻度も上がり、これに前述したような送受信以外の制御が重なった場合、モデムのデータ送受信サイクルにCPUからのデータ入出力が間に合わなくなってしまうという問題があった。
【0005】そこで、請求項1〜4いずれかに記載の発明は、CPUから独立したDMAによってRAMエリアとモデム間のデータ転送を行なうことにより、CPUの負担を軽減したうえで高速なモデム制御を実現できるデータ通信装置を提供することを目的としている。次に、前記請求項1〜4いずれかに記載の発明を実現したデータ通信装置にあっては、CPUの負担を軽減したうえで高速なモデム制御が可能となるが、この構成だとハードウェアに依存する部分が多いため、イレギュラなフレームを受信したような場合に柔軟な対応が難しくなる虞れがある。
【0006】そこで、請求項5〜7いずれかに記載の発明は、RAMエリアとモデム間でデータを中継するデータバッファを設け、RAMエリアとデータバッファ間ではCPUによってデータを転送し、またデータバッファとモデム間ではDMAによってデータを転送することにより、高速なモデム制御を実現したうえでハードウェアの負担を軽減するデータ通信装置を提供することを目的としている。
【0007】次に、前記請求項1〜4いずれかに記載の発明を実現した場合であっても、制御およびハードウェアのより一層の単純化が望まれ、また前記請求項5〜7いずれかに記載の発明を実現した場合であっても、モデムの割り込みから次の割り込みまでの1バイト時間以内にデータ転送制御を実行しなければならないという制約があるので、システムの負荷をかなり軽減できるというもののリスクは残る。
【0008】そこで、請求項8〜11いずれかに記載の発明は、DMAのスタートアドレスと転送バイト数を設定するポートを複数設け、これらのポートを用いてDMAの動作を設定することにより、CPUの負担を軽減しシステムのリスクをも軽減するデータ通信装置を提供することを目的としている。
【0009】
【課題を解決するための手段】請求項1記載の発明は、上記目的を達成するために、画情報の正誤判定機能を有するエラーコレクションモードECMと非ECMとを設け、ECMまたは非ECMの画情報をデータとして送受信するモデムと、このモデムによって送受信されるECMデータを格納するECMバッファと、前記モデムによって送受信される非ECMデータを格納するFIFOメモリと、このFIFOメモリとモデム間または前記ECMバッファとモデム間のデータ転送を制御するCPUと、を備えたデータ通信装置において、前記モデムからの要求に応えて前記FIFOメモリとモデム間またはECMバッファとモデム間のデータ転送を制御するDMAコントローラを設け、非ECM送信時に前記モデムからのデータ入力要求がある度に前記DMAコントローラによってFIFOメモリからモデムに所定バイト数のデータを転送することを特徴とする。
【0010】また、請求項2記載の発明は、上記目的を達成するために、請求項1記載のデータ通信装置において、非ECM受信時に前記モデムからのデータ出力要求がある度に前記DMAコントローラによってモデムからFIFOメモリに所定バイト数のデータを転送することを特徴とする。また、請求項3記載の発明は、上記目的を達成するために、請求項1または2記載のデータ通信装置において、ハイレベル・データリンク制御手順HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFの各情報を発生するフィールド情報発生部と、ECMバッファにおけるデータの格納アドレスに対応させて前記HDLCにおけるフレーム番号を生成するアドレス/フレーム番号変換部と、を設け、ECM送信時に前記モデムからのデータ入力要求がある度に前記DMAコントローラによってECMバッファからモデムに順次データを転送し、このデータを前記フレーム番号に従ってHDLCにフレーミングすることを特徴とする。
【0011】また、請求項4記載の発明は、上記目的を達成するために、請求項3記載のデータ通信装置において、HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFを認識するフィールド認識部と、認識されたFCFの内容に基づいて前記HDLCにフレーミングされているデータが画情報か画情報以外かを識別するデータ識別部と、画情報と識別されたデータの前記HDLCにおけるフレーム番号に対応させて前記ECMバッファの格納アドレスを自動発生するフレーム番号/アドレス変換部と、を設け、ECM受信時に前記モデムからのデータ出力要求がある度に前記DMAコントローラによってモデムからECMバッファに順次データを転送し、このデータを前記格納アドレスに従ってECMバッファに格納することを特徴とする。
【0012】また、請求項5記載の発明は、上記目的を達成するために、画情報の正誤判定機能を有するエラーコレクションモードECMを設け、このECMの画情報をデータとして送受信するモデムと、このモデムによって送受信されるデータを格納するECMバッファと、このECMバッファとモデム間のデータ転送を制御するCPUと、を備えたデータ通信装置において、前記ECMバッファとモデム間でデータを中継するデータバッファと、このデータバッファとモデム間で該モデムからの要求に応えてデータを転送するDMAコントローラと、を設け、ECM送信時に前記CPUによってECMバッファからデータバッファにデータをコピーし、データバッファにコピーされたデータを前記DMAコントローラによってモデムに転送することを特徴とする。
【0013】また、請求項6記載の発明は、上記目的を達成するために、請求項5記載のデータ通信装置において、ECM受信時にDMAコントローラによってモデムからデータバッファにデータを転送し、データバッファに転送されたデータをCPUによってECMバッファにコピーすることを特徴とする。また、請求項7記載の発明は、上記目的を達成するために、請求項5または6記載のデータ通信装置において、CCITT勧告V.21に従って送受信するデータをECMバッファとデータバッファ間ではCPUによって転送し、データバッファとモデム間ではDMAコントローラによって転送することを特徴とする。
【0014】また、請求項8記載の発明は、上記目的を達成するために、画情報の正誤判定機能を有するエラーコレクションモードECMと非ECMとを設け、ECMまたは非ECMの画情報をデータとして送受信するモデムと、このモデムによって送受信されるECMデータを格納するECMバッファと、前記モデムによって送受信される非ECMデータを格納するFIFOメモリと、前記モデムからの要求に応えて前記FIFOメモリとモデム間またはECMバッファとモデム間のデータ転送を制御するDMAコントローラと、を備えたデータ通信装置において、前記DMAコントローラによるスタートアドレスと転送バイト数を設定するポートを複数設け、設定に使用するポートを指定する指定部と、指定されたポートを使用してのDMAが終了した時点でDMAを停止するか継続するかを選択する選択部と、を備え、ECMの送信データを前記DMAコントローラによりECMバッファからモデムに転送することを特徴とする。
【0015】また、請求項9記載の発明は、上記目的を達成するために、請求項8記載のデータ通信装置において、ECMの受信データをDMAコントローラによりモデムからECMバッファに転送することを特徴とする。また、請求項10記載の発明は、上記目的を達成するために、請求項8記載のデータ通信装置において、非ECMの送信データをDMAコントローラによりFIFOメモリからモデムに転送することを特徴とする。
【0016】また、請求項11記載の発明は、上記目的を達成するために、請求項8記載のデータ通信装置において、非ECMの受信データをDMAコントローラによりモデムからFIFOメモリに転送することを特徴とする。
【0017】
【作用】上記構成を有する請求項1記載の発明においては、モデムからの要求に応えてFIFOメモリとモデム間またはECMバッファとモデム間のデータ転送を制御するDMAコントローラを設け、非ECM送信時にモデムからのデータ入力要求がある度に、DMAコントローラによってFIFOメモリからモデムに所定バイト数のデータを転送する。
【0018】また、上記構成を有する請求項2記載の発明においては、非ECM受信時にモデムからのデータ出力要求がある度に、DMAコントローラによってモデムからFIFOメモリに所定バイト数のデータを転送する。また、上記構成を有する請求項3記載の発明においては、ハイレベル・データリンク制御手順HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFの各情報を発生するフィールド情報発生部と、ECMバッファにおけるデータの格納アドレスに対応させて前記HDLCにおけるフレーム番号を生成するアドレス/フレーム番号変換部と、を設け、ECM送信時にモデムからのデータ入力要求がある度に、DMAコントローラによってECMバッファからモデムに順次データを転送し、このデータを前記フレーム番号に従ってHDLCにフレーミングする。
【0019】また、上記構成を有する請求項4記載の発明においては、HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFを認識するフィールド認識部と、認識されたFCFの内容に基づいて前記HDLCにフレーミングされているデータが画情報か画情報以外かを識別するデータ識別部と、画情報と識別されたデータの前記HDLCにおけるフレーム番号に対応させてECMバッファの格納アドレスを自動発生するフレーム番号/アドレス変換部と、を設け、ECM受信時にモデムからのデータ出力要求がある度に、DMAコントローラによってモデムからECMバッファに順次データを転送し、このデータを前記格納アドレスに従ってECMバッファに格納する。
【0020】また、上記構成を有する請求項5記載の発明においては、ECMバッファとモデム間でデータを中継するデータバッファと、このデータバッファとモデム間で該モデムからの要求に応えてデータを転送するDMAコントローラと、を設け、ECM送信時にCPUによってECMバッファからデータバッファにデータをコピーし、データバッファにコピーされたデータを前記DMAコントローラによってモデムに転送する。
【0021】また、上記構成を有する請求項6記載の発明においては、ECM受信時にDMAコントローラによってモデムからデータバッファにデータを転送し、データバッファに転送されたデータをCPUによってECMバッファにコピーする。また、上記構成を有する請求項7記載の発明においては、CCITT勧告V.21に従って送受信するデータをECMバッファとデータバッファ間ではCPUによって転送し、データバッファとモデム間ではDMAコントローラによって転送する。
【0022】また、上記構成を有する請求項8記載の発明においては、DMAコントローラによるスタートアドレスと転送バイト数を設定するポートを複数設け、設定に使用するポートを指定する指定部と、指定されたポートを使用してのDMAが終了した時点でDMAを停止するか継続するかを選択する選択部と、を備え、ECMの送信データをDMAコントローラによりECMバッファからモデムに転送する。
【0023】また、上記構成を有する請求項9記載の発明においては、ECMの受信データをDMAコントローラによりモデムからECMバッファに転送する。また、上記構成を有する請求項10記載の発明においては、非ECMの送信データをDMAコントローラによりFIFOメモリからモデムに転送する。また、上記構成を有する請求項11記載の発明においては、非ECMの受信データをDMAコントローラによりモデムからFIFOメモリに転送する。
【0024】
【実施例】以下、本発明を実施例に基づいて説明する。図1は請求項1〜4いずれかに記載された発明の一実施例に係るデータ通信装置としてのファクシミリ装置を示す図であり、同図(a)はそのブロック構成図、同図(b)はECM画情報のHDLCフレーム構造を示す図である。
【0025】まず、構成を説明する。図1(a)において、CPU(Central Processing Unit)11は、ROM(Read Only Memory)12に書き込まれたプログラムに従って、ファクシミリ装置全体のシステムを制御する。RAM(Random Access Memory)13は、CPU11の動作に必要なワークエリアやデータを記憶する。スキャナ14は、例えば送信原稿やコピー原稿を所定の解像度で読み取る。プロッタ15は、受信した画情報または受信したことを知らせるための受信レポート等をプリントアウトする。オペポート16は、本ファクシミリ装置を操作するために必要な表示装置またはキー入力装置等から構成されている操作表示部である。DCR(符号化復号化部)17は、送信する画情報を所定の方式で符号化してその情報量を圧縮すると共に、受信時に符号化されている画情報を復号化して元の画情報に復元する。
【0026】モデム(変復調装置)18は、ファクシミリ通信に係る変復調を行なうものであり、画情報をデータとして送受信するデータ送受信部19と、ハイレベル・データリンク制御手順HDLCに従ってフレーム処理するHDLC処理部20とを備えている。HDLCのフレーム構造が図1(b)に示され、フレームNo.に対応させて256または64バイトの画情報がフレーミングされる。ここで、フレーミングされる画情報は、画情報の制御判定機能を有するエラーコレクションモードECMの画情報であり、非ECMの画情報は図示していない通常通りのデータ構成となっている。
【0027】FIFOおよびECMバッファ21は、前記モデム18によって送受信される非ECMデータを格納するFIFOメモリと、ECMデータを格納するECMバッファとを備えたメモリであり、例えば前記RAM13にエリア設定されている。従来であれば、このFIFOおよびECMバッファ21とモデム18間、すなわちFIFOメモリとモデム間またはECMバッファとモデム間のデータ転送はCPU11によって制御されるが、本実施例においてはDMAコントローラ22によって制御する。
【0028】AF発生認識部23は、HDLCで規定されるフレームを構成するアドレスフィールドAF(図1(b)参照)の情報を、ECM送信時には発生し、またECM受信時には識別する。CF発生認識部24は、HDLCで規定されるフレームを構成するコントロールフィールドCF(図1(b)参照)の情報を、ECM送信時には発生し、またECM受信時には識別する。
【0029】FCF発生認識部25は、HDLCで規定されるフレームを構成するファクシミリコントロールフィールドFCF(図1(b)参照)の情報を、ECM送信時には発生し、またECM受信時には識別する。スタートアドレス設定部26は、DMAコントローラ22によるスタートアドレスを設定する。
【0030】フレーム番号⇔アドレス変換部27は、ECM送信時にECMバッファ21におけるデータの格納アドレスに対応させて前記HDLCにおけるフレーム番号を生成し、またECM受信時にHDLCのフレーム番号に対応させてECMバッファ21の格納アドレスを自動発生する。エンドアドレス設定部28は、DMAコントローラ22によるエンドアドレスを設定する。
【0031】上記構成において、請求項1記載の発明は、非ECM送信時に前記モデム18からのデータ入力要求がある度に、前記DMAコントローラ22によってFIFOメモリ21からモデム18に所定バイト数のデータを転送する。次に、図2のフローチャートに従って請求項1記載の実施例についてその作用を説明する。なお、図2は請求項1記載の実施例における1ページ送信時の制御手順を示すフローチャートである。
【0032】G3非ECMによる画情報送信時は、まずモデムスピード等から算出したダミーデータをFIFOメモリ21に格納し(ステップS1)、このFIFOメモリ21の先頭アドレスをスタートアドレス設定部26に設定する(ステップS2)。次いで、ダミーデータをFIFOメモリ21に格納した時点でのFIFOメモリ21への書込みポインタをエンドアドレスに設定し(ステップS3)、DMAのスタートをかける(ステップS4)。
【0033】スタートがかけられると、DMAコントローラ22は、モデム18からのデータ入力要求割り込み信号を監視し、リクエストがある度にFIFOメモリ21から1バイトずつデータをモデム18に転送する。このとき、DCR17によってライン毎にライン終端信号EOL(End of Line)(ステップS5)、1ライン分の圧縮データ(ステップS6)、および所定のフィルビット(Fill bit)を付加する(ステップS7)。
【0034】続いて、1ラインの処理が終了する度に1ページのデータ処理が終了したかどうかを判断し(ステップS8)、1ページ未了の場合はエンドアドレス設定部28によりDMAエンドアドレスを更新して次のライン処理を実行するが(ステップS9)、1ページ分のデータの圧縮が終了したら、画情報の終了を示すRTC(Return to Control)パターンをFIFOメモリ21に格納し(ステップS10)、エンドアドレス設定部28によりDMAエンドアドレスを更新して(ステップS11)、DMAコントローラ22から出力される処理終了割り込みを待って1ページ分の処理を終了する(ステップS12)。なお、処理終了割り込みは、エンドアドレス設定部28によるエンドアドレスに達した時点で、DMAコントローラ22からCPU11に出力される。
【0035】なお、本実施例では1ライン分のデータをFIFOメモリ21に格納後、DMAエンドアドレスの更新を行なっているが、FIFOメモリ21に1バイトまたは所定のバイト数分だけ格納する度に更新してもよい。また、本実施例では8ビットのCPU11で、64kバイトのFIFOメモリ21を用いた場合の例であり、アドレスが××FFFF(H)の後で自動的に××0000(H)になるため、特別なFIFO管理を行なっていないが、FIFOメモリ21の容量がこれより少ない場合は、FIFOメモリ21のエンドアドレスまでデータを入力する都度、DMAのエンドアドレスをFIFOメモリ21のエンドアドレスに設定し、DMAコントローラ22からの終了割り込みを待ち、その後FIFOメモリ21の先頭アドレスをDMAのスタートアドレスに設定してからDMAの再スタートをかけることが望ましい。
【0036】このように、請求項1記載の実施例においては、非ECM送信時にモデム18からのデータ入力要求がある度に、DMAコントローラ22によってFIFOメモリ21からモデム18に所定バイト数のデータを転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデムの制御が可能となる。
【0037】以下、請求項2記載の発明を実施例に基づいて説明する。まず、構成を説明する。図1(a)に示す本実施例において、非ECM受信時に前記モデム18からのデータ出力要求がある度に、前記DMAコントローラ22によってモデム18からFIFOメモリ21に所定バイト数のデータを転送する。
【0038】次に、図3のフローチャートに従って請求項2記載の実施例についてその作用を説明する。なお、図3は請求項2記載の実施例における1ページ受信時の制御手順を示すフローチャートである。まず、G3非ECMによる画情報の受信フローに入ったら、スタートアドレス設定部26にFIFOメモリ21の先頭アドレスをDMAのスタートアドレスとして設定し(ステップT1)、エンドアドレス設定部28に例えばFIFOメモリ21のエンドアドレス等の充分に大きな値をDMAのエンドアドレスとして設定した後(ステップT2)、DMAのスタートをかける(ステップT3)。
【0039】DMAコントローラ22は、スタートがかけられたら、モデム18からのデータ出力要求割り込み信号を監視し、要求がある度に、モデム18からFIFOメモリ21に受信データを転送する。このとき、DCR17の復調動作を制御するCPU11のデータ復調制御部(以下、DCRモジュールとも云う)では、ライン終端信号EOLを監視しながら(ステップT4)、1ライン復調する毎に(ステップT5)、画情報終了信号RTCの有無を判断する(ステップT6)。ここで、RTCが無い場合は1ラインに付加されているフィルビットを削除し(ステップT7)、現在復調を終了したラインの終了アドレスをDMAのエンドアドレスとしてセットし(ステップT8)、ステップT4に戻って次のラインを復調する。
【0040】一方、ステップT6の判断で画情報終了信号RTCを発見した場合は、受信終了と判断し、DMAを強制終了して(ステップT9)、処理を終了する。この場合も前記実施例と同様に、1バイトまたは所定のバイト数の画情報をFIFOメモリ21からDCR17が読み出す都度、DMAエンドアドレスの設定を行なってもよい。また、FIFOメモリ21が64バイトより小さい場合も前記実施例と同様に、エンドアドレスとスタートアドレスを設定する。
【0041】このように、請求項2記載の実施例においては、非ECM受信時にモデム18からのデータ出力要求がある度に、DMAコントローラ22によってモデム18からFIFOメモリ21に所定バイト数のデータを転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデムの制御が可能となる。
【0042】以下、請求項3記載の発明を実施例に基づいて説明する。まず、構成を説明する。図1(a)に示す本実施例において、フィールド情報発生部としてAF発生認識部23、CF発生認識部24、およびFCF発生認識部25が設けられており、それぞれハイレベル・データリンク制御手順HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFの各情報を発生する。また、アドレス/フレーム番号変換部としてフレーム番号⇔アドレス変換部27が設けられており、ECMバッファ21におけるデータの格納アドレスに対応させて前記HDLCにおけるフレーム番号を生成する。ここで、DMAコントローラ22は、ECM送信時に前記モデム18からのデータ入力要求がある度に、ECMバッファ21からモデム18に順次データを転送する。このデータは、モデム18のHDLC処理部20において、前記フレーム番号に従ってHDLCにフレーミングされる。
【0043】次に、図4のフローチャートに従って請求項3記載の実施例についてその作用を説明する。なお、図4は請求項3記載の実施例における1ページ送信時の制御手順を示すフローチャートである。G3ECMによる画情報送信時は、まずモデム18をHDLCフレーミング用にセットアップする(ステップP1)。これにより、図1(b)に示すHDLCフレームのフラグ(FLAG)およびフレームチェックシーケンスFCS(Frame Check Sequence)は、モデム18のHDLC処理部20により自動的に出力される。また、画情報送信時にはCPU11のデータ圧縮制御部によって、AF発生認識部23、CF発生認識部24、およびFCF発生認識部25に、ECM画データであることを示す所定のデータをセットする(ステップP2)。
【0044】次いで、DCR17により画情報を圧縮し(ステップP3)、1フレーム分のデータの圧縮が終了する毎に(ステップP4)、圧縮データをECMバッファ21に格納し、そのフレームのスタートアドレスをDMAのスタートアドレスに(ステップP5)、またそのフレームの終了アドレスをDMAのエンドアドレスにセットし(ステップP6)、DMAのスタートをかける(ステップP7)。
【0045】スタートがかけられると、DMAコントローラ22は、モデム18からのデータ入力要求の都度、順にAF、CF、FCFをそれぞれのフィールド情報発生部23、24、25からモデム18に転送し、その後DMAスタートアドレスから計算したフレーム番号を変換部27からモデム18に転送し、続いてECMバッファ21中の圧縮データをモデム18に転送する(ステップP8)。
【0046】DMAエンドアドレスに達すると(ステップP9)、DMAコントローラ22はCPU11に処理終了を通知し(ステップP10)、ページ終了までステップP4からの処理を繰り返す(ステップP11)。一方、CPU11では処理終了が通知されると、モデム18に対し1フレームの終了を通知し、次のフレームの圧縮が終了するまで待つ。また、モデム18は、HDLCフレーミング用にセットアップされていると、それまでのデータからCRC(Cyclic Redundancy Check)演算した結果をFCSとして出力した後、次のフレームのデータが入力されるまでフレーム間フラグを出力し続ける。
【0047】ステップP11においてページ終了を判断すると、AF発生認識部23、CF発生認識部24、およびFCF発生認識部25を画情報終了信号RCP用にセットアップして(ステップP12)、図1(b)に示すHDLCフレームのAF、CF、およびFCFにRCPフレームをセットして送信し(ステップP13)、処理を終了する。
【0048】このように、請求項3記載の実施例においては、ハイレベル・データリンク制御手順HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFの各情報を発生するフィールド情報発生部23、24、および25と、ECMバッファ21におけるデータの格納アドレスに対応させて前記HDLCにおけるフレーム番号を生成するアドレス/フレーム番号変換部27と、を設け、ECM送信時に前記モデム18からのデータ入力要求がある度に、前記DMAコントローラ22によってECMバッファ21からモデム18に順次データを転送し、このデータを前記フレーム番号に従ってHDLCにフレーミングするので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデムの制御が可能となる。
【0049】以下、請求項4記載の発明を実施例に基づいて説明する。まず、構成を説明する。図1(a)に示す本実施例において、フィールド認識部としてAF発生認識部23、CF発生認識部24、およびFCF発生認識部25が設けられており、それぞれHDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFを認識する。なお、FCF発生認識部25はデータ識別部として、認識されたFCFの内容に基づいて前記HDLCにフレーミングされているデータが画情報か画情報以外かを識別する。また、フレーム番号/アドレス変換部としてフレーム番号⇔アドレス変換部27が設けられており、前記FCF発生認識部25によって画情報と識別されたデータの前記HDLCにおけるフレーム番号に対応させて前記ECMバッファ21の格納アドレスを自動発生する。ここで、DMAコントローラ22は、ECM受信時に前記モデム18からのデータ出力要求がある度に、モデム18からECMバッファ21に順次データを転送する。このデータは、前記格納アドレスに従ってECMバッファ21に格納される。
【0050】次に、図5のフローチャートに従って請求項4記載の実施例についてその作用を説明する。なお、図5は請求項4記載の実施例における1ページ受信時の制御手順を示すフローチャートである。G3ECMによる画情報受信時は、まずモデム18をHDLCフレーム用にセットアップする(ステップR1)。これにより、モデム18からは、図1(b)に示すAFから画情報までのデータ、およびフレーム終了を示すステータス割り込みと、そのフレームのFCSからそのフレームが正常に受信できたか否かのステータスが示される。
【0051】CPU11では、フレームサイズ(256オクテットまたは64オクテット)をフレーム番号⇔アドレス変更部27にセットし(ステップR2)、DMAのスタートをかける(ステップR3)。スタートがかけられると、DMAコントローラ22では、フィールド認識部23、24、および25によってAF、CF、FCFを認識し、画情報であると判断すると次のフレーム番号から、ECMバッファ21へのデータ転送スタートアドレスおよびそのスタートアドレスにフレームサイズを足したDMA終了アドレスを生成する。そして、モデム18からのデータ出力要求の度に、モデム18から受信データをECMバッファ21に転送する。
【0052】ECMバッファ21に転送されたデータは、DCR17によって復調され(ステップR4)、フレームエンドがチェックされる(ステップR5)。エンドアドレスに達したら、フレームが正常に受信できたかどうかをCRC演算によりチェックし(ステップR6)、合わせてRCPフレームすなわちAF、CF、FCFがRCPフレームにセットされているかどうかを判断し(ステップR7)、正常受信の場合は次のフロックがあるかどうかを判断し(ステップR8)、無い場合は残りの受信データの復調を完了し(ステップR9)、処理を終了する。
【0053】一方、ステップR8の判断で次のブロックがある場合は、処理の継続を設定するフェーズD処理を行なって(ステップR10)、ステップR1に戻って次のフレーム受信に供える。CPU11は、モデム18からフレーム終了を通知する割り込みが入ると、その時点でモデム18から示されるステータスすなわちそのフレームが正常に受信できたか否かを示すステータスを判断し、そのフレームの再送要求を行なうか否かを決定する。
【0054】このように、請求項4記載の実施例においては、HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFを認識するフィールド認識部23、24、および25と、認識されたFCFの内容に基づいて前記HDLCにフレーミングされているデータが画情報か画情報以外かを識別するデータ識別部25と、画情報と識別されたデータの前記HDLCにおけるフレーム番号に対応させて前記ECMバッファの格納アドレスを自動発生するフレーム番号/アドレス変換部27と、を設け、ECM受信時に前記モデム18からのデータ出力要求がある度に、前記DMAコントローラ22によってモデム18からECMバッファ21に順次データを転送し、このデータを前記格納アドレスに従ってECMバッファ21に格納するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデムの制御が可能となる。
【0055】以下、請求項5〜7いずれかに記載の発明を実施例に基づいて説明する。図6は請求項5〜7いずれかに記載された発明の一実施例に係るデータ通信装置としてファクシミリ装置を示す図であり、同図(a)はそのブロック構成図、同図(b)はDMAデータバッファの実施例を示す構成図である。なお、本実施例において上述例と同一の構成については、同一符号を付してその具体的な説明を省略する。
【0056】まず、構成を説明する。図6(a)において、モデム18は、画情報の正誤判定機能を有するエラーコレクションモードECMの画情報をデータとして送受信する。このモデム18によって送受信されるデータは、ECMバッファ21に格納される。従来であれば、このECMバッファ21とモデム18間のデータ転送はCPU11によって制御されるが、本実施例においては、前記ECMバッファ21とモデム18間でデータを中継するDMAデータバッファ31を設け、このDMAデータバッファ31とモデム18間のデータ転送を、モデム18からの要求に応えてDMAコントローラ22によって実行する。
【0057】なお、図6(a)において、網制御装置32は、回線の捕捉、発信先電話番号である選択信号の送出、または着信の検出等を行い、所定の発呼動作および着信動作を制御する。通信制御部33は、前記網制御装置32とモデム18を制御して、CCITT(国際電信電話諮問委員会)勧告による例えばG3規格に準拠した所定の伝送制御手順によりファクシミリ伝送を実現する。また、ECMバッファ21およびDMAバッファ31は、例えばRAM13にエリア設定されている。
【0058】上記DMAバッファ31の構成例が図6(b)に示され、本実施例においては、260バイトのDMAデータバッファ31を2組備えるものとする。図示のように、各DMAデータバッファ31の先頭にはステータスSTSを示すエリアが用意され、AFからFIFまでの全てのバイト数をセットするエリアが用意されている。
【0059】ここで、STSエリアのアサイン例(ビットフラグ方式等にしても良い)を示す。
[送信時]
00h:空き状態01h:CPU11のDCRモジュールによりデータ入力済み02h:モデム割り込みによりデータ送出中。モデム18によるデータ送出が終了すると再び空き状態(00h)に戻す。
[受信時]
10h:空き状態11h:モデム18によりデータ入力中12h:CRCチェック済み(フレームOK)
13h:CRCチェック済み(フレームNG)。「CRCチェック済み(フレームOK)」の状態になると、CPU11のDCRモジュールにてDMAデータバッファ31からECMバッファ21にデータをコピーした後、空き状態(10h)に戻す。
【0060】図7は図6に示すファクシミリ装置におけるデータフローを示す図であり、同図(a)はECM送信時のデータフロー、同図(b)はECM受信時のデータフローを示す。
【0061】図示のように、モデム18からのデータリクエストすなわちIRQ2は、DMAコントローラ22にのみ入力する。また、モデム18のステータス割り込み(プログラマブルインタラプト)すなわちIRQ1は、DMAコントローラ22のみに通知される。そして、DMAコントローラ22からのDMA終了割り込み、すなわちIRQ3がCPU11に通知される。
【0062】上記構成において、請求項5記載の発明は、図7(a)に示すECM送信時にCPU11によってECMバッファ21からDMAデータバッファ31にデータをコピーし、このDMAデータバッファ31にコピーされたデータを、DMAコントローラ22によってモデム18に転送する。次に、作用を説明する。
[ECM送信時(パーシャルページ)]図7(a)に示すECM送信時において、まずDMAコントローラ22をマスクした状態で、モデム18をHDLC高速データ送信モードにセットアップし、データ送出要求RTSをONする。これにより、モデム18は、データ入力要求IRQ2をかけてもデータが入力されないため、フラグを送出し続けることになる。
【0063】一方、図6(a)に示す符号化復号化部DCR17は、CPU11のDCRモジュールによってコントロールされて、RAM13にあるラインバッファのデータを圧縮し、ECMバッファ21に入力する。1フレーム分のデータが圧縮し終わると、CPU11は、DMAデータバッファ31のステータスSTS(図6(b)参照)をチェックし、空き状態「00h」の時は、AF、CF、FCF、フレームナンバーFRMを付加して、ECMバッファ21の1フレーム分の圧縮データをDMAデータバッファ31にコピーする。
【0064】コピーし終わったら、AFからFIFまでのデータのバイト数をセットして、ステータスを「DCRによるデータ入力済み」=01hに設定する。ここで、同時に動作するメインフローのプロトコルモジュールにおいて、モデム18がフラグを出し始めてから200ms間、ウエイトし、その後、まず1つ目のDMAバッファ31のステータスをチェックして、データ入力済み「02h」の場合は、そのDMAデータバッファ31のアドレスをDMAのスタートアドレスとして設定し、このDMAスタートアドレスにデータのバイト数を足した値をDMAエンドアドレスとして設定する。例えば、256オクテットの場合、DMAスタートアドレスには1つ目のDMAデータバッファ31の先頭アドレス、DMAエンドアドレスには1つ目のDMAデータバッファ31の先頭アドレスに256+4=260バイト足したアドレスをセットする。このようにアドレス設定後、DMAのマスクを解除する。
【0065】DMAコントローラ22は、モデム18からのデータリクエストIRQ2がある度に、DMAデータバッファ31の中のデータを1バイトずつモデム18に転送する。DMAエンドアドレスに達したら、即座に割り込みIRQ3にてCPU11に知らせる。CPU11は、DMAコントローラ22から割り込みIRQ3にてDMAの終了が通知されると、割り込みJOB中でモデム18にそのフレームが終了したことを通知(EOFを立てる)し、DMAをマスクした後に、そのDMAデータバッファ31のステータスを「空き状態」=00hに戻す。
【0066】CPU11のプロトコルモジュールでは、モデム18による1フレーム分のデータの送出終了を認識すると、もう1つのDMAデータバッファ31のステータスをチェックし、「DCRによるデータ入力済み」=00hになっていたら、DMAスタートアドレスとDMAエンドアドレスを上記と同様に設定した後、DMAのマスクを解除する。「DCRによるデータ入力済み」=00hになっていなかったら、DMAのマスクを解除せずにウェイトする。このようにすることにより、DCR17によるデータの圧縮が遅れた場合でも、自動的にフレーム間フラグの送出タイミングを延ばすことができる。
【0067】CPU11のDCRモジュールでは、1ページ分のデータを圧縮し終わり、全てのフレームのデータをECMバッファ21に転送し終わると、次にDMAデータバッファ31が空き状態「00h」になった時に、DMAデータバッファ31にRCPフレームのデータをセットする。このようにすることにより、画情報フレームFIFの後に続いてRCPフレームを送出することができる。
[ECM送信時(再送)]CPU11のDCRモジュールにて、再送マップに基づいてECMバッファ21のデータを順次AF、CF、FCF、フレームナンバーを付加してDMAデータバッファ31にコピーする。
【0068】再送すべきフレームのデータを全て、DMAデータバッファ31にコピーし終えたら、RCPフレームの情報をDMAデータバッファ31にセットし、処理を終える。なお、プロトコルモジュールと割り込みJOBの制御は、前述したパーシャルページ送出時と同様である。このように、本実施例においては、ECMバッファ21とモデム18間でデータを中継するDMAデータバッファ31と、このDMAデータバッファ31とモデム18間で該モデム18からの要求に応えてデータを転送するDMAコントローラ22と、を設け、ECM送信時にCPU11によってECMバッファ21からDMAデータバッファ31にデータをコピーし、DMAデータバッファ31にコピーされたデータをDMAコントローラ22によってモデム18に転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができる。
【0069】以下、請求項6記載の発明を実施例に基づいて説明する。まず、構成を説明する。図6(a)に示す本実施例において、DMAコントローラ22は図7(b)に示すECM受信時に、モデム18からDMAデータバッファ31にデータを転送する。DMAデータバッファ31に転送されたデータは、CPU11によってECMバッファ21にコピーされる。
【0070】次に、作用を説明する。図7(b)に示すECM受信時において、まずCPU11のプロトコルモジュールにて、モデム18を高速HDLCデータ受信モードにセットアップし、DMAの第1データ出力先スタートアドレスとして第1DMAデータバッファの先頭アドレスを、また第2データ出力先スタートアドレスとして第2DMAデータバッファの先頭アドレスを、それぞれ設定する。
【0071】さらに、HDLCフレーム情報が壊れた場合に備えて、エンドアドレスとしてスタートアドレスにフレームサイズとAF等のバイト数を足したアドレス(256オクテットの場合、スタートアドレスに260バイトを足したアドレス)をセットしておく。DMAコントローラ22は、モデム18からデータ出力要求IRQ2がある度に、1バイトずつ受信データを第1のDMAデータバッファ31に転送する。
【0072】また、モデム18からのステータス割り込みIRQ1が発生したら、DMAのスタートアドレスを第2のDMAデータバッファ31に切り換えてDMAを再スタートすると共に割り込みにてCPU11に通知する。なお、エンドアドレスとして設定されたアドレスまでデータを転送し終えた場合も、DMAコントローラ22は割り込みにてCPU11に通知する。
【0073】DMAコントローラ22からの割り込みがかけられると、CPU11は割り込みJOBで割り込み要因をチェックする。ここで、アボート、アンダーランによる割り込みの場合は、そのDMAデータバッファ31のステータスSTSを「空き状態」=10hに戻す。また、フレーム終了による割り込みの場合には、CRCのステータスチェックを行ないフレームが正しく受信できた場合には「CRCチェック済み(OKフレーム)」=12hを、また正しく受信できなかった場合は「CRCチェック済み(NGフレーム)」=13hのステータスSTSをセットする。
【0074】CPU11のDCRモジュールによって制御される符号化復号化部DCR17では、DMAデータバッファ31のステータスSTSを監視し、ステータスSTSが「CRCチェック済み(OKフレーム)」=12hとなったものは、AF、CF、FCFをチェックし、FCD(Facsimile Corded Data)の場合には、フレームナンバーFRMからECMバッファ21の格納すべきアドレスを算出し、FIFデータのコピーを行なうと共に、受信フレームマップのそのフレームに対応するビットを「0」にする。その後、このフレームマップに従い、ECMバッファ21中の受信データの復調を行なう。
【0075】一方、AF、CF、FCFのチェックの結果、RCPフレームだとわかった場合は、DMAおよびモデムの割り込みを全てマスクして、プロトコルモジュールに対して受信フレームマップの情報を渡すと共に、高速データ受信の終了を通知する。このように、本実施例においては、ECM受信時にDMAコントローラ22によってモデム18からDMAデータバッファ31にデータを転送し、DMAデータバッファ31に転送されたデータをCPU11によってECMバッファ21にコピーするので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができる。
【0076】以下、請求項7記載の発明を実施例に基づいて説明する。まず、構成を説明する。図6(a)において、モデム18は、CCITT勧告V.21に従って送受信する画情報をデータとして送受信する。このモデム18によって送受信されるデータは、ECMバッファ21に格納される。従来であれば、このECMバッファ21とモデム18間のデータ転送はCPU11によって制御されるが、本実施例においては、前記ECMバッファ21とモデム18間でデータを中継するDMAデータバッファ31を設け、このDMAデータバッファ31とモデム18間のデータ転送を、モデム18からの要求に応えてDMAコントローラ22によって実行する。
【0077】本実施例の作用は、前記請求項5または6記載の実施例で説明したものと同様である。すなわち、CCITT勧告V.21に従って送受信するデータもECMバッファ21とDMAデータバッファ31間ではCPU11によって転送し、DMAデータバッファ31とモデム18間ではDMAコントローラ22によって転送する。ただし、本実施例において、送受信データは符号化復号化部DCR17を通さず、CPU11のプロトコルモジュールにおいて作成・判断される。
【0078】このように、本実施例においては、CCITT勧告V.21に従って送受信するデータをECMバッファ21とDMAデータバッファ31間ではCPU11によって転送し、DMAデータバッファ31とモデム18間ではDMAコントローラ22によって転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができる。
【0079】以下、請求項8〜11いずれかに記載の発明を実施例に基づいて説明する。図8は請求項8〜11いずれかに記載された発明の一実施例に係るデータ通信装置としてファクシミリ装置を示す図であり、同図(a)はそのブロック構成図、同図(b)は割り込みの発生状況を示す構成図である。なお、本実施例において上述例と同一の構成については、同一符号を付してその具体的な説明を省略する。
【0080】まず、構成を説明する。図8(a)において、モデム18は、画情報の正誤判定機能を有するエラーコレクションモードECMまたは非ECMの画情報をデータとして送受信する。このモデム18によって送受信されるECMデータは、FIFOおよびECMバッファ21のECMバッファに格納される。また、モデム18によって送受信される非ECMデータは、FIFOおよびECMバッファ21のFIFOメモリに格納される。DMAコントローラ22は、前記モデム18からの要求に応えて、前記FIFOメモリ21とモデム18間またはECMバッファ21とモデム18間のデータ転送を制御する。
【0081】ここで、前記DMAコントローラ22によるスタートアドレスと転送バイト数を設定するために、複数たとえば3組みのポート41が設けられている。3組みのポート41は、所定の指定部により設定に使用するポートを指定することができ、また指定されたポートを使用してのDMAが終了した時点で、DMAを停止するか継続するかを所定の選択部により選択することができる。これらの指定部および選択部は、ROM12内のプログラムにソフトウェアとして備えられている。
【0082】モデム18は、HDLCデータ送受信モードに設定されると、図8(b)に示すように、フレーム終了を知らせる割り込み要求IRQ1と、データ入力出力要求の割り込み要求IRQ2とを発生する。HDLCを使用しないような設定にした場合、データ入力出力要求の割り込み要求IRQ2のみを発生する。なお、データ入出力要求IRQ2は、ゲート42によってDMAコントローラ22への要求タイミングが制御されている。
【0083】モデム18はHDLCモードにセットアップすることにより、送信時は、フレーム間フラグおよびフレームエンド設定時のフレームチェックシーケンス(FCS)を自動的に送出し、受信時には、フレーム間フラグおよびフレームチェックシーケンス(FCS)をユーザーデータとして開示せず、ポーリング可能なステータスによって、そのフレームが正常に受信できたものか否かの情報をCPU11に対して提示する。
【0084】図8(b)において、フレーム受信終了を示す割り込み要求IRQ1は、モデム18からCPU11側にのみに通知される。モデム18からのデータ入出力要求IRQ2は、ゲート42を通してDMAコントローラ22側にのみ入力する。また、DMAコントローラ22は、指定されたデータの転送を終了したら、その都度割り込みIRQ3を発生させ、CPU11に通知する。
【0085】図9は図8(a)に示すDMA設定用出力ポート41の設定項目および構成を示す図である。ポート41は、3組みのポートにより構成されて、DMAコントローラ22のスタートアドレス■〜■と転送数(バイト数)■〜■を設定するためのメモリマップドI/Oであり、以下の説明ではCPU11によって24ビットで表される空間をアクセスされるものとする。また、本実施例のDMAスタートアドレス■〜■は、24ビットで表されるアドレスを全て設定するようになっているが、I/Oポート41の容量をできるだけ少なくするするためには、24ビットのアドレスのうち上位(中位を含む)16ビットを設定するものとし、下位8ビットは、「OOH」に固定するようにしても良い。
【0086】DMAに関する設定は、スタートアドレス、転送数が、それぞれ■〜■まであり、任意に組み合わせて動作できるものとする。以下の説明では、簡単化のため、設定■、設定■の2組を使用した場合は、DMA転送数が設定値に達した場合でもストップせずに■→■→■→■……のように動作し、設定■、設定■、設定■の3組を使用する場合は■→■→■の順にDMAを行なった後DMAはストップすることを前提として説明するが、それぞれの設定に関して、転送数に達した場合DMAをストックするかしないかの選択ができるようにしてももちろん構わない。
【0087】上記構成において、請求項8記載の発明は、ECMの送信データを前記DMAコントローラ22によりECMバッファ21からモデム18に転送する。次に、作用を説明する。図10はECM送信時のポート設定例を示す図であり、本実施例では、DMAに関するスタートアドレスと転送数の設定を3組使用し、3組目(■の設定)終了時、DMAはストップするようになっているものとして説明する。
【0088】図11および図12は請求項8記載の実施例を実現するECM送信時の制御手順を示すフローチャートである。まず、DMAをマスクした状態で、モデム18をHDLC高速データ送出モードにセットアップし(ステップQ1)、ゲート42を閉じたまま(ステップQ2)、データ送出要求RTSすなわちIRQ2をONする(ステップQ3)。このため、モデム18は、データ入力要求IRQ2をかけてもデータが入力されないため、フラグを送出し続けることになる。
【0089】一方、符号化復号化部17は、CPU11のDCRモジュールによってコントロールされ、例えばRAM13内のラインバッファのデータを圧縮し、ECMバッファ21に入力する。ここで、図10に示したようにポート41を設定し、設定■〜■までのデータ転送が終了した後はDMAを終了するよう選択する(ステップQ4)。すなわち、まず初めにHDLC制御フィールド用データエリアに、ECM画情報の制御であることを示すデータ(AF=OFFH、CF=O3H、FCF=O6H)をセットし(ステップQ5)、図10に示すように、〔DMAスタートアドレス■〕にHDLC制御フィールド用データエリアの先頭アドレス(ステップQ6)、〔DMA転送数■〕に制御フィールドのデータ数「3」をセットする(ステップQ7)。なお、上記のHDLC制御フィールド用データエリアは、図13(a)に示すように、RAM13内に設定されている。次に、図13(b)に示すRAM13内のフレーム番号ストアエリアに、先頭データのフレーム番号「0」をストアする(ステップQ8)。
【0090】続いて、図10に示す〔DMAスタートアドレス■〕にフレーム番号ストアエリアアドレス(ステップQ9)、〔DMA転送数■〕に「1」をセットする(ステップQ10)。1フレーム分のデータを圧縮し終わると、〔DMAスタートアドレス■〕にECMバッファ21中の送信すべき圧縮データエリアの先頭アドレス(ステップQ11)、〔DMA転送数■〕にECMバッファ21中の送信すべき圧縮データ数(最終フレーム以外は「256」または「64」)をセットする(ステップQ12)。
【0091】この後、モデム18がフラグパターンを最低保証時間(200ms)出し終わったら(ステップQ13)、送出すべきフレームデータが揃っていることを条件に(ステップQ14)、DMAをスタートし(ステップQ15)、ゲート42を開けてモデム18からDMAコントローラ22にデータ入力要求IRQ2を通知する(ステップQ16)。
【0092】DMAコントローラ22は、モデム18からのデータリクエストIRQ2がある度に、図10の〔DMAスタートアドレス■〕で指定されたエリアから1バイトずつモデム18にデータを転送する。転送数が〔DMA転送数■〕に達したら、即座に割り込みIRQ3にてCPU11に知らせる(ステップQ17)。この後、モデム18からのデータ入力要求IRQ2がある度に、引き続き〔DMAスタートアドレス■〕で指定されたエリアから1バイトずつモデムに転送する。この場合、〔DMA転送数■〕は「1」なので、DMAコントローラ22は、1バイトのデータ(フレーム番号)を送出し終わったら割り込みIRQ3にてCPU11に知らせる(ステップQ18)。
【0093】さらにこの後、モデム18からのデータ入力要求IRQ2がある度に、引き続き〔DMAスタートアドレス■〕で指定されたエリアから1バイトずつモデム18にデータを転送する。転送数が〔DMA転送数■〕に達したら、即座に割り込みIRQ3にてCPU11に知らせる。CPU11では、〔DMA転送数■〕にて設定したデータ数を転送終了したことを示す割り込みIRQ3が入ったら、図13(a)に示すフレーム番号ストアエリアの中のフレーム番号データをインクリメントする(ステップQ19)。
【0094】また、〔DMA転送数■〕に達したことを示す割り込みIRQ3が入ったら(ステップQ20)、モデム18にそのフレームが終了したことを、EOFを立てて通知し(ステップQ21)、ゲート42を閉じると共に(ステップQ22)、〔DMAスタートアドレス■〕を更新する(ステップQ23)。続いて、次のフレームデータが有るか否かを判断し(ステップQ24)、有る場合はステップQ14に戻り、既に次のフレームとして送出すべき圧縮データが揃っているかどうかを確認する。この場合、次のフレームとして送出すべきデータが揃っている場合は、〔DMAスタートアドレス■〕にECMバッファ21中の送信すべき圧縮データエリアの先頭アドレス、〔DMA転送数■〕にECMバッファ21中の送信すべき圧縮データエリア終了アドレスをセットする。
【0095】一方、次のフレームとして送出すべきデータが揃っていない場合には、モデム18からDMAコントローラ22への割り込み要求IRQ2のゲート42がステップQ22において閉じられているので、モデム18へのデータの出力は行なわれなくなり、モデム18からは自動的にフレーム間フラグが送出されることになる。
【0096】データが揃い次第、ステップQ16に示すようにゲート42を開けることにより、DMAコントローラ22は、割り込み要求の都度、モデム18へのデータの出力を再開し、次のフレームデータの送信を行なうことができる。一方、ステップQ24の判断でNOすなわち1ページ分のデータを圧縮し終わり全てのフレームのデータを送出し終わったら、HDLC制御フィールド用データエリアにRCPフレームのデータ(AF=OFFH、CF=O3H、FCF=86H)をセットし(ステップQ25)、〔DMAスタートアドレス■〕にHDLC制御フィールド用データエリアの先頭アドレス、〔DMA転送数■〕にHDLC制御フィールドの有効データ数「3」をセットする。また、〔DMAスタートアドレス■〕にも、HDLC制御フィールド用データエリアの先頭アドレス、〔DMA転送数■〕にも、HDLC制御フィールド用データエリアの有効データ数「3」をセットする(ステップQ26)。
【0097】続いて、DMAをスタートし(ステップQ27)、ゲート42を開く(ステップQ28)。この後、送出終了割り込みIRQ3がかかる度に(ステップQ29)、モデム18にそのフレームが終了したことを、EOFを立てて通知し(ステップQ30)、2回目の送出終了割り込みIRQ3がかかると(ステップQ31)、EOFを立ててモデム18にフレーム終了を通知すると共に(ステップQ32)、HDLC制御フィールド用データエリアのCFの部分を最終フレームであることを示すデータすなわち図13(a)に示す「13H」に変え(ステップQ33)、3回目の送出終了割り込みIRQ3がかかると(ステップQ34)、EOFを立ててモデム18にフレーム終了を通知すると共に(ステップQ35)、ゲート42を閉じて送出を終了する(ステップQ36)。
【0098】このようにすることにより、図14(a)に示す画情報フレームの後に続いて、図14(b)に示すRCPフレームを送出することができる。なお、再送時は相手から指定されたPPR(再送要求)により、再送すべきフレームのフレーム番号を、図13(b)に示すフレーム番号ストアエリアに順にセットし、再送すべきフレームの先頭アドレスと、転送数を〔DMAスタートアドレス■〕、〔DMA転送数■〕にセットし、同様の制御を行なうことにより再送できる。
【0099】このように、請求項8記載の実施例においては、DMAコントローラ22によるスタートアドレスと転送バイト数を設定するポート41を複数設け、設定に使用するポート41を指定する指定部と、指定されたポート41を使用してのDMAが終了した時点でDMAを停止するか継続するかを選択する選択部と、を備え、ECMの送信データを前記DMAコントローラ22によりECMバッファ21からモデム18に転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしにマルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができ、さらにシステムのリスクをも軽減することができる。
【0100】以下、請求項9記載の発明を実施例に基づいて説明する。まず、構成を説明する。図8に示す本実施例においては、ECMの受信データをDMAコントローラ22によりモデム18からECMバッファ21に転送する。次に、作用を説明する。
【0101】図15はECM受信時のポート設定例を示す図であり、本実施例では、DMAに関するスタートアドレスと転送数の設定を3組使用し、3組目(■の設定)終了時、DMAはストップするようになっているものとして説明する。図16および図17は請求項9記載の実施例を実現するECM受信時の制御手順を示すフローチャートである。まず、DMAをマスクした状態で、モデム18をHDLC受信モードにセットアップし(ステップU1)、ゲート42を閉じる(ステップU2)。次いで、図15に示したようにポート41を設定し、設定■〜■までのデータ転送が終了した後はDMAを終了するよう選択する(ステップU3)。すなわち、HDLC制御フィールド用エリアアドレスを〔DMAスタートアドレス■〕に設定し(ステップU4)、〔DMA転送数■〕として制御用データ数「3」を設定する(ステップU5)。
【0102】また、〔DMAスタートアドレス■〕にDMAスタートアドレス■の中位8ビットを設定すべきI/Oポートのアドレスをセットし(ステップU6)、〔DMA転送数■〕として「1」をセットする(ステップU7)。さらに、〔DMAスタートアドレス■〕の上位8ビットとして、使用するECMバッファ21のアドレス情報24ビットのうちの上位8ビットを設定し、下位8ビットとして「OOH」を設定しておく(ステップU8)。また、〔DMA転送数■〕として、フレーム中のユーザーデータのバイト数(「256」または「64」)をセットする(ステップU9)。
【0103】ここで、ゲート42を開けて(ステップU10)、DMAをスタートする(ステップU11)。DMAコントローラ22は、モデム18からデータ出力要求IRQ2がある度に、受信データを1バイトずつ転送する。上記のように設定されている場合、まず最初の3バイトをHDLC制御フィールド用エリアに転送し、3バイト転送終了後、IRQ3にてCPU11に通知する(ステップU12)。その後、次のフレーム番号データは、自らの〔DMAスタートアドレス■〕の中位8ビットデータとして転送する。この転送により、〔DMAスタートアドレス■〕の上記8ビットの設定は既に終了しているので、DMAスタートアドレス■に関する設定が終了することになる。
【0104】この後、DMAコントローラ22はストップせずに〔DMAスタートアドレス■〕によって示されたECMバッファエリアに対してユーザーデータの転送を行なう。一方、ステップU12の判断でYESすなわちCPU11にDMAコントローラ22からの割り込みIRQ3が入ったら、HDLC制御フィールド内のデータの正当性を評価し(ステップU13)、RCPフレームであるか(ステップU14)、または画情報フレームであるか(ステップU15)を判定する。ここで、RCPフレームとして正当な値の場合には受信の処理を終了する。また、画情報フレームでもRCPフレームでもない場合は、そのフレームをエラーフレームとする処理を行ない(ステップU16)、DMA■および■のデータ転送終了割り込みIRQ3を待って(ステップU17、18)、DMAを再スタートする。
【0105】一方、ステップU15の判断でYESすなわち画情報フレームとして正当な値の場合には、DMA■のデータ転送終了割り込みIRQ3を待って(ステップU19)、フレーム終了割り込みIRQ1の発生を監視する(ステップU20)。ここで、IRQ1が発生しないままにDMA■のデータ転送終了割り込みIRQ3が発生した場合は(ステップU21)、続いてIRQ1の発生を監視し(ステップU22)、IRQ1が発生しない場合は、1フレームのデータが多すぎるとしてNGフレーム処理をし(ステップU23)、DMAを再スタートする。
【0106】一方、ステップU20またはU22において、モデム18からのステータスに割り込みIRQ1が発生したら、割り込みの要因をチェックし(ステップU24)、フレーム受信終了の割り込みの場合には、モデム18のCRCのステータスをチェックし(ステップU25)、CRCがOKの場合は正常フレーム処理(ステップU26)、またCRCがNGの場合はNGフレーム処理を行なって(ステップU27)、DMAの再スタートをかける。
【0107】ユーザーデータの転送先スタートアドレスは相手から送られてくるフレーム番号によって自動的に設定されるため、何も設定を変えずに、以降、再スタートをかけ続けながら上記のように割り込み毎のチェックを行なうことによりECMデータの受信が可能となる。このように、請求項9記載の実施例においては、ECMの受信データをDMAコントローラ22によりモデム18からECMバッファ21に転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしにマルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができ、さらにシステムのリスクをも軽減することができる。
【0108】以下、請求項10記載の発明を実施例に基づいて説明する。まず、構成を説明する。図8に示す本実施例においては、非ECMの送信データをDMAコントローラ22によりFIFOメモリ21からモデム18に転送する。次に、作用を説明する。
【0109】図18は非ECM送信時のポート設定例を示す図であり、本実施例では、DMAに関するスタートアドレスと転送数の設定を2組使用し、2組目(■の設定)終了時、DMAはストップせずに引き続き1組目(■の設定)により動作するものとして説明する。図19R>9は請求項10記載の実施例を実現する非ECM送信時の制御手順を示すフローチャートである。まず、モデム18をHDLCを使用せずにデータ送出するモードにセットアップする(ステップV1)。このとき、ゲート42は閉じている(ステップV2)。その後、FIFOメモリ21に圧縮データがある程度たまるのを待ち、図18R>8に示したようにポート41を設定し、設定■〜■までの動作を繰り返すよう設定する(ステップV3)。すなわち、〔DMAスタートアドレス■〕にFIFOメモリ21の先頭アドレスをセットし(ステップV4)、〔DMA転送数■〕に任意の数(たとえば、256バイトの圧縮データがたまった時点で256等の数値)をセットする(ステップV5)。また、〔DMAスタートアドレス■〕に、次のアドレス〔DMAスタートアドレス■〕+〔DMA転送数■〕)を設定し(ステップV6)、〔DMA転送数■〕にも任意の値を設定した後(ステップV7)、DMAのスタートをかける(ステップV8)。このときゲート42を開く(ステップV9)。
【0110】スタートをかけられると、DMAコントローラ22は、モデム18からの割り込み要求IRQ2がある都度、FIFOメモリ21のデータを1バイトずつモデム18に出力する。〔DMA転送数■〕で指定されたバイト数分だけ転送し終えたら、DMAコントローラ22は、CPU11に割り込みIRQ3にて通知する(ステップV10)。CPU11は、割り込みIRQ3にてDMAの終了が通知されると、〔DMAスタートアドレス■〕を、〔DMAスタートアドレス■〕+〔DMA転送数■〕により更新し(ステップV11)、次が最終データかどうかを判断する(ステップV12)。次が最終データでない場合は、〔DMA転送数■〕で指定されたバイト数分だけ転送し終えたら、DMAコントローラ22は、CPU11に割り込みIRQ3にて通知する(ステップV13)。CPU11は、割り込みIRQ3にてDMAの終了が通知されると、〔DMAスタートアドレス■〕を、〔DMAスタートアドレス■〕+〔DMA転送数■〕により更新し(ステップV14)、次が最終データかどうかを判断する(ステップV15)。次が最終データでない場合は、ステップV10に戻り、以後、■→■→■…の動作を繰り返す。
【0111】一方、ステップV12またはV15の判断で、次が最終データの場合は、1ページ分のデータの圧縮が終了した時点で、そのデータの送出設定時にDMA転送数に残りのデータ数を設定し(ステップV16)、このデータ数分の転送が終了すると、DMAコントローラ22は、CPU11に最後のDMA終了割り込みIRQ3にて通知し(ステップV17)、ゲート42を閉じて(ステップV18)、モデム18へのデータ入力を終了する(ステップV19)。
【0112】このように、請求項10記載の実施例においては、非ECMの送信データをDMAコントローラ22によりFIFOメモリ21からモデム18に転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしにマルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができ、さらにシステムのリスクをも軽減することができる。
【0113】以下、請求項11記載の発明を実施例に基づいて説明する。まず、構成を説明する。図8に示す本実施例においては、非ECMの受信データをDMAコントローラ22によりモデム18からFIFOメモリ21に転送する。次に、作用を説明する。
【0114】図20は非ECM受信時のポート設定例を示す図であり、本実施例では、DMAに関するスタートアドレスと転送数の設定を2組使用し、2組目(■の設定)終了時、DMAはストップせずに引き続き1組目(■の設定)により動作するものとして説明する。図21R>1は請求項11記載の発明を実現する非ECM受信時の制御手順を示すフローチャートである。まず、モデムをHDLCを使用せずにデータ受信するモードにセットアップする(ステップW1)。このとき、ゲート42は閉じている(ステップW2)。その後、図20に示したようにポート41を設定し、設定■〜■までの動作を繰り返すよう設定する(ステップW3)。すなわち、〔DMAスタートアドレス■〕にFIFOメモリ21の先頭アドレスをセットし(ステップW4)、〔DMA転送数■〕に任意の数(たとえば、256等の数値)をセットする(ステップW5)。また、〔DMAスタートアドレス■〕に、次のアドレス〔DMAスタートアドレス■〕+〔DMA転送数■〕を設定し(ステップW6)、〔DMA転送数■〕にも任意の値を設定した後(ステップW7)、DMAのスタートをかける(ステップW8)。このとき、ゲート42を開き(ステップW9)、モデム18によるデータの受信を開始する。
【0115】スタートをかけられると、DMAコントローラ22は、キャリアすなわちユーザーデータである受信データの有無を判断し(ステップW10)、受信データが有る場合は、モデム18からの割り込み要求IRQ2がある都度、モデム18からユーザーデータを読み込み、1バイトずつFIFOメモリ21に転送する。〔DMA転送数■〕で指定されたバイト数分だけ転送し終えたら、DMAコントローラ22は、CPU11に割り込みIRQ3にて通知する(ステップW11)。CPU11は、割り込みIRQ3にてDMAの終了が通知されると、〔DMAスタートアドレス■〕を、〔DMAスタートアドレス■〕+〔DMA転送数■〕により更新し(ステップW12)、再びキャリアの有無を判断する(ステップW13)。ここで、キャリアが有る場合は、モデム18からの割り込み要求IRQ2がある都度、モデム18からユーザーデータを読み込み、1バイトずつFIFOメモリ21に転送する。
【0116】〔DMA転送数■〕で指定されたバイト数分だけ転送し終えたら、DMAコントローラ22は、CPU11に割り込みIRQ3にて通知する(ステップW14)。CPU11は、割り込みIRQ3にてDMAの終了が通知されると、〔DMAスタートアドレス■〕を、〔DMAスタートアドレス■〕+〔DMA転送数■〕により更新し(ステップW15)、ステップW10に戻ってキャリアの有無を判断する。以後、■→■→■…の動作を繰り返す。
【0117】非ECM受信時は、どこでデータの受信が終了するか復調するまでわからないので、相手からのデータのキャリアが切れるまで同様の動作を繰り返し、ステップW10またはW13で、キャリアが切れたと判断した時点で、ゲート42を閉じ(ステップW16)、DMAを停止させて(ステップW17)、1ページ分の制御を終了する。
【0118】このように、請求項11記載の実施例においては、非ECMの受信データをDMAコントローラ22によりモデム18からFIFOメモリ21に転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしにマルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができ、さらにシステムのリスクをも軽減することができる。
【0119】
【発明の効果】以上説明したように、請求項1記載の発明に係るデータ通信装置によれば、非ECM送信時にモデムからのデータ入力要求がある度に、DMAコントローラによってFIFOメモリからモデムに所定バイト数のデータを転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデムの制御が可能となる。
【0120】また、請求項2記載の発明に係るデータ通信装置によれば、非ECM受信時にモデムからのデータ出力要求がある度に、DMAコントローラによってモデムからFIFOメモリに所定バイト数のデータを転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデムの制御が可能となる。
【0121】また、請求項3記載の発明に係るデータ通信装置によれば、ハイレベル・データリンク制御手順HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFの各情報を発生するフィールド情報発生部と、ECMバッファにおけるデータの格納アドレスに対応させて前記HDLCにおけるフレーム番号を生成するアドレス/フレーム番号変換部と、を設け、ECM送信時にモデムからのデータ入力要求がある度に、DMAコントローラによってECMバッファからモデムに順次データを転送し、このデータを前記フレーム番号に従ってHDLCにフレーミングするので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデムの制御が可能となる。
【0122】また、請求項4記載の発明に係るデータ通信装置によれば、HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFを認識するフィールド認識部と、認識されたFCFの内容に基づいて前記HDLCにフレーミングされているデータが画情報か画情報以外かを識別するデータ識別部と、画情報と識別されたデータの前記HDLCにおけるフレーム番号に対応させて前記ECMバッファの格納アドレスを自動発生するフレーム番号/アドレス変換部と、を設け、ECM受信時にモデムからのデータ出力要求がある度に、DMAコントローラによってモデムからECMバッファに順次データを転送し、このデータを前記格納アドレスに従ってECMバッファに格納するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデムの制御が可能となる。
【0123】また、請求項5記載の発明に係るデータ通信装置によれば、ECMバッファとモデム間でデータを中継するデータバッファと、このデータバッファとモデム間で該モデムからの要求に応えてデータを転送するDMAコントローラと、を設け、ECM送信時にCPUによってECMバッファからデータバッファにデータをコピーし、データバッファにコピーされたデータをDMAコントローラによってモデムに転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができる。
【0124】また、請求項6記載の発明に係るデータ通信装置によれば、ECM受信時にDMAコントローラによってモデムからDMAデータバッファにデータを転送し、DMAデータバッファに転送されたデータをCPUによってECMバッファにコピーするので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができる。
【0125】また、請求項7記載の発明に係るデータ通信装置によれば、CCITT勧告V.21に従って送受信するデータもECMバッファとデータバッファ間ではCPUによって転送し、データバッファとモデム間ではDMAコントローラによって転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができる。
【0126】また、請求項8記載の発明に係るデータ通信装置によれば、DMAコントローラによるスタートアドレスと転送バイト数を設定するポートを複数設け、設定に使用するポートを指定する指定部と、指定されたポートを使用してのDMAが終了した時点でDMAを停止するか継続するかを選択する選択部と、を備え、ECMの送信データを前記DMAコントローラによりECMバッファからモデムに転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしにマルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができ、さらにシステムのリスクをも軽減することができる。
【0127】また、請求項9記載の発明に係るデータ通信装置によれば、ECMの受信データをDMAコントローラによりモデムからECMバッファに転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしにマルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができ、さらにシステムのリスクをも軽減することができる。
【0128】また、請求項10記載の発明に係るデータ通信装置によれば、非ECMの送信データをDMAコントローラによりFIFOメモリからモデムに転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしにマルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができ、さらにシステムのリスクをも軽減することができる。
【0129】また、請求項11記載の発明に係るデータ通信装置によれば、非ECMの受信データをDMAコントローラによりモデムからFIFOメモリに転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしにマルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができ、さらにシステムのリスクをも軽減することができる。
【図面の簡単な説明】
【図1】請求項1〜4いずれかに記載された発明の一実施例に係るデータ通信装置としてのファクシミリ装置を示す図であり、同図(a)はそのブロック構成図、同図(b)はECM画情報のHDLCフレーム構造を示す図である。
【図2】請求項1記載の実施例における1ページ送信時の制御手順を示すフローチャートである。
【図3】請求項2記載の実施例における1ページ受信時の制御手順を示すフローチャートである。
【図4】請求項3記載の実施例における1ページ送信時の制御手順を示すフローチャートである。
【図5】請求項4記載の実施例における1ページ受信時の制御手順を示すフローチャートである。
【図6】請求項5〜7いずれかに記載された発明の一実施例に係るデータ通信装置としてファクシミリ装置を示す図であり、同図(a)はそのブロック構成図、同図(b)はDMAデータバッファの実施例を示す構成図である。
【図7】図6に示すファクシミリ装置におけるデータフローを示す図であり、同図(a)はECM送信時のデータフロー、同図(b)はECM受信時のデータフローを示す。
【図8】請求項8〜11いずれかに記載された発明の一実施例に係るデータ通信装置としてファクシミリ装置を示す図であり、同図(a)はそのブロック構成図、同図(b)は割り込みの発生状況を示す構成図である。
【図9】図8(a)に示すDMA設定用出力ポートの設定項目および構成を示す図である。
【図10】ECM送信時のポート設定例を示す図である。
【図11】請求項8記載の実施例を実現するECM送信時の制御手順を示すフローチャートである。
【図12】図11に続く制御手順を示すフローチャートである。
【図13】RAM内のデータエリアを示す図であり、同図(a)はHDLC制御フィールド用データエリアを示し、同図(b)はフレーム番号ストアエリアを示す。
【図14】HDLCフレームを示す構成図であり、同図(a)はECM画情報フレーム、同図(b)はRCPフレームをそれぞれ示す。
【図15】ECM受信時のポート設定例を示す図である。
【図16】請求項9記載の実施例を実現するECM受信時の制御手順を示すフローチャートである。
【図17】図16に続く制御手順を示すフローチャートである。
【図18】非ECM送信時のポート設定例を示す図である。
【図19】請求項10記載の実施例を実現する非ECM送信時の制御手順を示すフローチャートである。
【図20】非ECM受信時のポート設定例を示す図である。
【図21】請求項11記載の発明を実現する非ECM受信時の制御手順を示すフローチャートである。
【符号の説明】
11 CPU
18 モデム
21 FIFOおよびECMバッファ
22 DMAコントローラ
【0001】
【産業上の利用分野】本発明は例えばファクシミリ装置のようにモデムを用いてデータを送受信するデータ通信装置に関し、特にモデムの高速化に対処して尚且つCPUの負担を軽減するデータ通信装置に関する。
【0002】
【従来の技術】従来、ファクシミリ装置等のデータ通信装置が多用されているが、このデータ通信装置たとえばファクシミリ装置において、モデムに対するデータの入出力は、モデムが発生する割り込み要求を基にソフトウェアにて、CPUの割り込み処理の中で行なっていた。
【0003】しかし、近年、送信中でもコピーや次の原稿の読取およびメモリ蓄積などができるデュアルアクセス等の機能が増大し、CPUの負担が増大している。また、モデムの送受信スピードも高速化の傾向にあり、もはや14400bpsのモデムを搭載したファクシミリ装置が常識化している。
【0004】
【発明が解決しようとする課題】しかしながら、このような従来のデータ通信装置にあっては、モデムのスピードが上がるにつれてCPUへの割り込み要求の頻度も上がり、これに前述したような送受信以外の制御が重なった場合、モデムのデータ送受信サイクルにCPUからのデータ入出力が間に合わなくなってしまうという問題があった。
【0005】そこで、請求項1〜4いずれかに記載の発明は、CPUから独立したDMAによってRAMエリアとモデム間のデータ転送を行なうことにより、CPUの負担を軽減したうえで高速なモデム制御を実現できるデータ通信装置を提供することを目的としている。次に、前記請求項1〜4いずれかに記載の発明を実現したデータ通信装置にあっては、CPUの負担を軽減したうえで高速なモデム制御が可能となるが、この構成だとハードウェアに依存する部分が多いため、イレギュラなフレームを受信したような場合に柔軟な対応が難しくなる虞れがある。
【0006】そこで、請求項5〜7いずれかに記載の発明は、RAMエリアとモデム間でデータを中継するデータバッファを設け、RAMエリアとデータバッファ間ではCPUによってデータを転送し、またデータバッファとモデム間ではDMAによってデータを転送することにより、高速なモデム制御を実現したうえでハードウェアの負担を軽減するデータ通信装置を提供することを目的としている。
【0007】次に、前記請求項1〜4いずれかに記載の発明を実現した場合であっても、制御およびハードウェアのより一層の単純化が望まれ、また前記請求項5〜7いずれかに記載の発明を実現した場合であっても、モデムの割り込みから次の割り込みまでの1バイト時間以内にデータ転送制御を実行しなければならないという制約があるので、システムの負荷をかなり軽減できるというもののリスクは残る。
【0008】そこで、請求項8〜11いずれかに記載の発明は、DMAのスタートアドレスと転送バイト数を設定するポートを複数設け、これらのポートを用いてDMAの動作を設定することにより、CPUの負担を軽減しシステムのリスクをも軽減するデータ通信装置を提供することを目的としている。
【0009】
【課題を解決するための手段】請求項1記載の発明は、上記目的を達成するために、画情報の正誤判定機能を有するエラーコレクションモードECMと非ECMとを設け、ECMまたは非ECMの画情報をデータとして送受信するモデムと、このモデムによって送受信されるECMデータを格納するECMバッファと、前記モデムによって送受信される非ECMデータを格納するFIFOメモリと、このFIFOメモリとモデム間または前記ECMバッファとモデム間のデータ転送を制御するCPUと、を備えたデータ通信装置において、前記モデムからの要求に応えて前記FIFOメモリとモデム間またはECMバッファとモデム間のデータ転送を制御するDMAコントローラを設け、非ECM送信時に前記モデムからのデータ入力要求がある度に前記DMAコントローラによってFIFOメモリからモデムに所定バイト数のデータを転送することを特徴とする。
【0010】また、請求項2記載の発明は、上記目的を達成するために、請求項1記載のデータ通信装置において、非ECM受信時に前記モデムからのデータ出力要求がある度に前記DMAコントローラによってモデムからFIFOメモリに所定バイト数のデータを転送することを特徴とする。また、請求項3記載の発明は、上記目的を達成するために、請求項1または2記載のデータ通信装置において、ハイレベル・データリンク制御手順HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFの各情報を発生するフィールド情報発生部と、ECMバッファにおけるデータの格納アドレスに対応させて前記HDLCにおけるフレーム番号を生成するアドレス/フレーム番号変換部と、を設け、ECM送信時に前記モデムからのデータ入力要求がある度に前記DMAコントローラによってECMバッファからモデムに順次データを転送し、このデータを前記フレーム番号に従ってHDLCにフレーミングすることを特徴とする。
【0011】また、請求項4記載の発明は、上記目的を達成するために、請求項3記載のデータ通信装置において、HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFを認識するフィールド認識部と、認識されたFCFの内容に基づいて前記HDLCにフレーミングされているデータが画情報か画情報以外かを識別するデータ識別部と、画情報と識別されたデータの前記HDLCにおけるフレーム番号に対応させて前記ECMバッファの格納アドレスを自動発生するフレーム番号/アドレス変換部と、を設け、ECM受信時に前記モデムからのデータ出力要求がある度に前記DMAコントローラによってモデムからECMバッファに順次データを転送し、このデータを前記格納アドレスに従ってECMバッファに格納することを特徴とする。
【0012】また、請求項5記載の発明は、上記目的を達成するために、画情報の正誤判定機能を有するエラーコレクションモードECMを設け、このECMの画情報をデータとして送受信するモデムと、このモデムによって送受信されるデータを格納するECMバッファと、このECMバッファとモデム間のデータ転送を制御するCPUと、を備えたデータ通信装置において、前記ECMバッファとモデム間でデータを中継するデータバッファと、このデータバッファとモデム間で該モデムからの要求に応えてデータを転送するDMAコントローラと、を設け、ECM送信時に前記CPUによってECMバッファからデータバッファにデータをコピーし、データバッファにコピーされたデータを前記DMAコントローラによってモデムに転送することを特徴とする。
【0013】また、請求項6記載の発明は、上記目的を達成するために、請求項5記載のデータ通信装置において、ECM受信時にDMAコントローラによってモデムからデータバッファにデータを転送し、データバッファに転送されたデータをCPUによってECMバッファにコピーすることを特徴とする。また、請求項7記載の発明は、上記目的を達成するために、請求項5または6記載のデータ通信装置において、CCITT勧告V.21に従って送受信するデータをECMバッファとデータバッファ間ではCPUによって転送し、データバッファとモデム間ではDMAコントローラによって転送することを特徴とする。
【0014】また、請求項8記載の発明は、上記目的を達成するために、画情報の正誤判定機能を有するエラーコレクションモードECMと非ECMとを設け、ECMまたは非ECMの画情報をデータとして送受信するモデムと、このモデムによって送受信されるECMデータを格納するECMバッファと、前記モデムによって送受信される非ECMデータを格納するFIFOメモリと、前記モデムからの要求に応えて前記FIFOメモリとモデム間またはECMバッファとモデム間のデータ転送を制御するDMAコントローラと、を備えたデータ通信装置において、前記DMAコントローラによるスタートアドレスと転送バイト数を設定するポートを複数設け、設定に使用するポートを指定する指定部と、指定されたポートを使用してのDMAが終了した時点でDMAを停止するか継続するかを選択する選択部と、を備え、ECMの送信データを前記DMAコントローラによりECMバッファからモデムに転送することを特徴とする。
【0015】また、請求項9記載の発明は、上記目的を達成するために、請求項8記載のデータ通信装置において、ECMの受信データをDMAコントローラによりモデムからECMバッファに転送することを特徴とする。また、請求項10記載の発明は、上記目的を達成するために、請求項8記載のデータ通信装置において、非ECMの送信データをDMAコントローラによりFIFOメモリからモデムに転送することを特徴とする。
【0016】また、請求項11記載の発明は、上記目的を達成するために、請求項8記載のデータ通信装置において、非ECMの受信データをDMAコントローラによりモデムからFIFOメモリに転送することを特徴とする。
【0017】
【作用】上記構成を有する請求項1記載の発明においては、モデムからの要求に応えてFIFOメモリとモデム間またはECMバッファとモデム間のデータ転送を制御するDMAコントローラを設け、非ECM送信時にモデムからのデータ入力要求がある度に、DMAコントローラによってFIFOメモリからモデムに所定バイト数のデータを転送する。
【0018】また、上記構成を有する請求項2記載の発明においては、非ECM受信時にモデムからのデータ出力要求がある度に、DMAコントローラによってモデムからFIFOメモリに所定バイト数のデータを転送する。また、上記構成を有する請求項3記載の発明においては、ハイレベル・データリンク制御手順HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFの各情報を発生するフィールド情報発生部と、ECMバッファにおけるデータの格納アドレスに対応させて前記HDLCにおけるフレーム番号を生成するアドレス/フレーム番号変換部と、を設け、ECM送信時にモデムからのデータ入力要求がある度に、DMAコントローラによってECMバッファからモデムに順次データを転送し、このデータを前記フレーム番号に従ってHDLCにフレーミングする。
【0019】また、上記構成を有する請求項4記載の発明においては、HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFを認識するフィールド認識部と、認識されたFCFの内容に基づいて前記HDLCにフレーミングされているデータが画情報か画情報以外かを識別するデータ識別部と、画情報と識別されたデータの前記HDLCにおけるフレーム番号に対応させてECMバッファの格納アドレスを自動発生するフレーム番号/アドレス変換部と、を設け、ECM受信時にモデムからのデータ出力要求がある度に、DMAコントローラによってモデムからECMバッファに順次データを転送し、このデータを前記格納アドレスに従ってECMバッファに格納する。
【0020】また、上記構成を有する請求項5記載の発明においては、ECMバッファとモデム間でデータを中継するデータバッファと、このデータバッファとモデム間で該モデムからの要求に応えてデータを転送するDMAコントローラと、を設け、ECM送信時にCPUによってECMバッファからデータバッファにデータをコピーし、データバッファにコピーされたデータを前記DMAコントローラによってモデムに転送する。
【0021】また、上記構成を有する請求項6記載の発明においては、ECM受信時にDMAコントローラによってモデムからデータバッファにデータを転送し、データバッファに転送されたデータをCPUによってECMバッファにコピーする。また、上記構成を有する請求項7記載の発明においては、CCITT勧告V.21に従って送受信するデータをECMバッファとデータバッファ間ではCPUによって転送し、データバッファとモデム間ではDMAコントローラによって転送する。
【0022】また、上記構成を有する請求項8記載の発明においては、DMAコントローラによるスタートアドレスと転送バイト数を設定するポートを複数設け、設定に使用するポートを指定する指定部と、指定されたポートを使用してのDMAが終了した時点でDMAを停止するか継続するかを選択する選択部と、を備え、ECMの送信データをDMAコントローラによりECMバッファからモデムに転送する。
【0023】また、上記構成を有する請求項9記載の発明においては、ECMの受信データをDMAコントローラによりモデムからECMバッファに転送する。また、上記構成を有する請求項10記載の発明においては、非ECMの送信データをDMAコントローラによりFIFOメモリからモデムに転送する。また、上記構成を有する請求項11記載の発明においては、非ECMの受信データをDMAコントローラによりモデムからFIFOメモリに転送する。
【0024】
【実施例】以下、本発明を実施例に基づいて説明する。図1は請求項1〜4いずれかに記載された発明の一実施例に係るデータ通信装置としてのファクシミリ装置を示す図であり、同図(a)はそのブロック構成図、同図(b)はECM画情報のHDLCフレーム構造を示す図である。
【0025】まず、構成を説明する。図1(a)において、CPU(Central Processing Unit)11は、ROM(Read Only Memory)12に書き込まれたプログラムに従って、ファクシミリ装置全体のシステムを制御する。RAM(Random Access Memory)13は、CPU11の動作に必要なワークエリアやデータを記憶する。スキャナ14は、例えば送信原稿やコピー原稿を所定の解像度で読み取る。プロッタ15は、受信した画情報または受信したことを知らせるための受信レポート等をプリントアウトする。オペポート16は、本ファクシミリ装置を操作するために必要な表示装置またはキー入力装置等から構成されている操作表示部である。DCR(符号化復号化部)17は、送信する画情報を所定の方式で符号化してその情報量を圧縮すると共に、受信時に符号化されている画情報を復号化して元の画情報に復元する。
【0026】モデム(変復調装置)18は、ファクシミリ通信に係る変復調を行なうものであり、画情報をデータとして送受信するデータ送受信部19と、ハイレベル・データリンク制御手順HDLCに従ってフレーム処理するHDLC処理部20とを備えている。HDLCのフレーム構造が図1(b)に示され、フレームNo.に対応させて256または64バイトの画情報がフレーミングされる。ここで、フレーミングされる画情報は、画情報の制御判定機能を有するエラーコレクションモードECMの画情報であり、非ECMの画情報は図示していない通常通りのデータ構成となっている。
【0027】FIFOおよびECMバッファ21は、前記モデム18によって送受信される非ECMデータを格納するFIFOメモリと、ECMデータを格納するECMバッファとを備えたメモリであり、例えば前記RAM13にエリア設定されている。従来であれば、このFIFOおよびECMバッファ21とモデム18間、すなわちFIFOメモリとモデム間またはECMバッファとモデム間のデータ転送はCPU11によって制御されるが、本実施例においてはDMAコントローラ22によって制御する。
【0028】AF発生認識部23は、HDLCで規定されるフレームを構成するアドレスフィールドAF(図1(b)参照)の情報を、ECM送信時には発生し、またECM受信時には識別する。CF発生認識部24は、HDLCで規定されるフレームを構成するコントロールフィールドCF(図1(b)参照)の情報を、ECM送信時には発生し、またECM受信時には識別する。
【0029】FCF発生認識部25は、HDLCで規定されるフレームを構成するファクシミリコントロールフィールドFCF(図1(b)参照)の情報を、ECM送信時には発生し、またECM受信時には識別する。スタートアドレス設定部26は、DMAコントローラ22によるスタートアドレスを設定する。
【0030】フレーム番号⇔アドレス変換部27は、ECM送信時にECMバッファ21におけるデータの格納アドレスに対応させて前記HDLCにおけるフレーム番号を生成し、またECM受信時にHDLCのフレーム番号に対応させてECMバッファ21の格納アドレスを自動発生する。エンドアドレス設定部28は、DMAコントローラ22によるエンドアドレスを設定する。
【0031】上記構成において、請求項1記載の発明は、非ECM送信時に前記モデム18からのデータ入力要求がある度に、前記DMAコントローラ22によってFIFOメモリ21からモデム18に所定バイト数のデータを転送する。次に、図2のフローチャートに従って請求項1記載の実施例についてその作用を説明する。なお、図2は請求項1記載の実施例における1ページ送信時の制御手順を示すフローチャートである。
【0032】G3非ECMによる画情報送信時は、まずモデムスピード等から算出したダミーデータをFIFOメモリ21に格納し(ステップS1)、このFIFOメモリ21の先頭アドレスをスタートアドレス設定部26に設定する(ステップS2)。次いで、ダミーデータをFIFOメモリ21に格納した時点でのFIFOメモリ21への書込みポインタをエンドアドレスに設定し(ステップS3)、DMAのスタートをかける(ステップS4)。
【0033】スタートがかけられると、DMAコントローラ22は、モデム18からのデータ入力要求割り込み信号を監視し、リクエストがある度にFIFOメモリ21から1バイトずつデータをモデム18に転送する。このとき、DCR17によってライン毎にライン終端信号EOL(End of Line)(ステップS5)、1ライン分の圧縮データ(ステップS6)、および所定のフィルビット(Fill bit)を付加する(ステップS7)。
【0034】続いて、1ラインの処理が終了する度に1ページのデータ処理が終了したかどうかを判断し(ステップS8)、1ページ未了の場合はエンドアドレス設定部28によりDMAエンドアドレスを更新して次のライン処理を実行するが(ステップS9)、1ページ分のデータの圧縮が終了したら、画情報の終了を示すRTC(Return to Control)パターンをFIFOメモリ21に格納し(ステップS10)、エンドアドレス設定部28によりDMAエンドアドレスを更新して(ステップS11)、DMAコントローラ22から出力される処理終了割り込みを待って1ページ分の処理を終了する(ステップS12)。なお、処理終了割り込みは、エンドアドレス設定部28によるエンドアドレスに達した時点で、DMAコントローラ22からCPU11に出力される。
【0035】なお、本実施例では1ライン分のデータをFIFOメモリ21に格納後、DMAエンドアドレスの更新を行なっているが、FIFOメモリ21に1バイトまたは所定のバイト数分だけ格納する度に更新してもよい。また、本実施例では8ビットのCPU11で、64kバイトのFIFOメモリ21を用いた場合の例であり、アドレスが××FFFF(H)の後で自動的に××0000(H)になるため、特別なFIFO管理を行なっていないが、FIFOメモリ21の容量がこれより少ない場合は、FIFOメモリ21のエンドアドレスまでデータを入力する都度、DMAのエンドアドレスをFIFOメモリ21のエンドアドレスに設定し、DMAコントローラ22からの終了割り込みを待ち、その後FIFOメモリ21の先頭アドレスをDMAのスタートアドレスに設定してからDMAの再スタートをかけることが望ましい。
【0036】このように、請求項1記載の実施例においては、非ECM送信時にモデム18からのデータ入力要求がある度に、DMAコントローラ22によってFIFOメモリ21からモデム18に所定バイト数のデータを転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデムの制御が可能となる。
【0037】以下、請求項2記載の発明を実施例に基づいて説明する。まず、構成を説明する。図1(a)に示す本実施例において、非ECM受信時に前記モデム18からのデータ出力要求がある度に、前記DMAコントローラ22によってモデム18からFIFOメモリ21に所定バイト数のデータを転送する。
【0038】次に、図3のフローチャートに従って請求項2記載の実施例についてその作用を説明する。なお、図3は請求項2記載の実施例における1ページ受信時の制御手順を示すフローチャートである。まず、G3非ECMによる画情報の受信フローに入ったら、スタートアドレス設定部26にFIFOメモリ21の先頭アドレスをDMAのスタートアドレスとして設定し(ステップT1)、エンドアドレス設定部28に例えばFIFOメモリ21のエンドアドレス等の充分に大きな値をDMAのエンドアドレスとして設定した後(ステップT2)、DMAのスタートをかける(ステップT3)。
【0039】DMAコントローラ22は、スタートがかけられたら、モデム18からのデータ出力要求割り込み信号を監視し、要求がある度に、モデム18からFIFOメモリ21に受信データを転送する。このとき、DCR17の復調動作を制御するCPU11のデータ復調制御部(以下、DCRモジュールとも云う)では、ライン終端信号EOLを監視しながら(ステップT4)、1ライン復調する毎に(ステップT5)、画情報終了信号RTCの有無を判断する(ステップT6)。ここで、RTCが無い場合は1ラインに付加されているフィルビットを削除し(ステップT7)、現在復調を終了したラインの終了アドレスをDMAのエンドアドレスとしてセットし(ステップT8)、ステップT4に戻って次のラインを復調する。
【0040】一方、ステップT6の判断で画情報終了信号RTCを発見した場合は、受信終了と判断し、DMAを強制終了して(ステップT9)、処理を終了する。この場合も前記実施例と同様に、1バイトまたは所定のバイト数の画情報をFIFOメモリ21からDCR17が読み出す都度、DMAエンドアドレスの設定を行なってもよい。また、FIFOメモリ21が64バイトより小さい場合も前記実施例と同様に、エンドアドレスとスタートアドレスを設定する。
【0041】このように、請求項2記載の実施例においては、非ECM受信時にモデム18からのデータ出力要求がある度に、DMAコントローラ22によってモデム18からFIFOメモリ21に所定バイト数のデータを転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデムの制御が可能となる。
【0042】以下、請求項3記載の発明を実施例に基づいて説明する。まず、構成を説明する。図1(a)に示す本実施例において、フィールド情報発生部としてAF発生認識部23、CF発生認識部24、およびFCF発生認識部25が設けられており、それぞれハイレベル・データリンク制御手順HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFの各情報を発生する。また、アドレス/フレーム番号変換部としてフレーム番号⇔アドレス変換部27が設けられており、ECMバッファ21におけるデータの格納アドレスに対応させて前記HDLCにおけるフレーム番号を生成する。ここで、DMAコントローラ22は、ECM送信時に前記モデム18からのデータ入力要求がある度に、ECMバッファ21からモデム18に順次データを転送する。このデータは、モデム18のHDLC処理部20において、前記フレーム番号に従ってHDLCにフレーミングされる。
【0043】次に、図4のフローチャートに従って請求項3記載の実施例についてその作用を説明する。なお、図4は請求項3記載の実施例における1ページ送信時の制御手順を示すフローチャートである。G3ECMによる画情報送信時は、まずモデム18をHDLCフレーミング用にセットアップする(ステップP1)。これにより、図1(b)に示すHDLCフレームのフラグ(FLAG)およびフレームチェックシーケンスFCS(Frame Check Sequence)は、モデム18のHDLC処理部20により自動的に出力される。また、画情報送信時にはCPU11のデータ圧縮制御部によって、AF発生認識部23、CF発生認識部24、およびFCF発生認識部25に、ECM画データであることを示す所定のデータをセットする(ステップP2)。
【0044】次いで、DCR17により画情報を圧縮し(ステップP3)、1フレーム分のデータの圧縮が終了する毎に(ステップP4)、圧縮データをECMバッファ21に格納し、そのフレームのスタートアドレスをDMAのスタートアドレスに(ステップP5)、またそのフレームの終了アドレスをDMAのエンドアドレスにセットし(ステップP6)、DMAのスタートをかける(ステップP7)。
【0045】スタートがかけられると、DMAコントローラ22は、モデム18からのデータ入力要求の都度、順にAF、CF、FCFをそれぞれのフィールド情報発生部23、24、25からモデム18に転送し、その後DMAスタートアドレスから計算したフレーム番号を変換部27からモデム18に転送し、続いてECMバッファ21中の圧縮データをモデム18に転送する(ステップP8)。
【0046】DMAエンドアドレスに達すると(ステップP9)、DMAコントローラ22はCPU11に処理終了を通知し(ステップP10)、ページ終了までステップP4からの処理を繰り返す(ステップP11)。一方、CPU11では処理終了が通知されると、モデム18に対し1フレームの終了を通知し、次のフレームの圧縮が終了するまで待つ。また、モデム18は、HDLCフレーミング用にセットアップされていると、それまでのデータからCRC(Cyclic Redundancy Check)演算した結果をFCSとして出力した後、次のフレームのデータが入力されるまでフレーム間フラグを出力し続ける。
【0047】ステップP11においてページ終了を判断すると、AF発生認識部23、CF発生認識部24、およびFCF発生認識部25を画情報終了信号RCP用にセットアップして(ステップP12)、図1(b)に示すHDLCフレームのAF、CF、およびFCFにRCPフレームをセットして送信し(ステップP13)、処理を終了する。
【0048】このように、請求項3記載の実施例においては、ハイレベル・データリンク制御手順HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFの各情報を発生するフィールド情報発生部23、24、および25と、ECMバッファ21におけるデータの格納アドレスに対応させて前記HDLCにおけるフレーム番号を生成するアドレス/フレーム番号変換部27と、を設け、ECM送信時に前記モデム18からのデータ入力要求がある度に、前記DMAコントローラ22によってECMバッファ21からモデム18に順次データを転送し、このデータを前記フレーム番号に従ってHDLCにフレーミングするので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデムの制御が可能となる。
【0049】以下、請求項4記載の発明を実施例に基づいて説明する。まず、構成を説明する。図1(a)に示す本実施例において、フィールド認識部としてAF発生認識部23、CF発生認識部24、およびFCF発生認識部25が設けられており、それぞれHDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFを認識する。なお、FCF発生認識部25はデータ識別部として、認識されたFCFの内容に基づいて前記HDLCにフレーミングされているデータが画情報か画情報以外かを識別する。また、フレーム番号/アドレス変換部としてフレーム番号⇔アドレス変換部27が設けられており、前記FCF発生認識部25によって画情報と識別されたデータの前記HDLCにおけるフレーム番号に対応させて前記ECMバッファ21の格納アドレスを自動発生する。ここで、DMAコントローラ22は、ECM受信時に前記モデム18からのデータ出力要求がある度に、モデム18からECMバッファ21に順次データを転送する。このデータは、前記格納アドレスに従ってECMバッファ21に格納される。
【0050】次に、図5のフローチャートに従って請求項4記載の実施例についてその作用を説明する。なお、図5は請求項4記載の実施例における1ページ受信時の制御手順を示すフローチャートである。G3ECMによる画情報受信時は、まずモデム18をHDLCフレーム用にセットアップする(ステップR1)。これにより、モデム18からは、図1(b)に示すAFから画情報までのデータ、およびフレーム終了を示すステータス割り込みと、そのフレームのFCSからそのフレームが正常に受信できたか否かのステータスが示される。
【0051】CPU11では、フレームサイズ(256オクテットまたは64オクテット)をフレーム番号⇔アドレス変更部27にセットし(ステップR2)、DMAのスタートをかける(ステップR3)。スタートがかけられると、DMAコントローラ22では、フィールド認識部23、24、および25によってAF、CF、FCFを認識し、画情報であると判断すると次のフレーム番号から、ECMバッファ21へのデータ転送スタートアドレスおよびそのスタートアドレスにフレームサイズを足したDMA終了アドレスを生成する。そして、モデム18からのデータ出力要求の度に、モデム18から受信データをECMバッファ21に転送する。
【0052】ECMバッファ21に転送されたデータは、DCR17によって復調され(ステップR4)、フレームエンドがチェックされる(ステップR5)。エンドアドレスに達したら、フレームが正常に受信できたかどうかをCRC演算によりチェックし(ステップR6)、合わせてRCPフレームすなわちAF、CF、FCFがRCPフレームにセットされているかどうかを判断し(ステップR7)、正常受信の場合は次のフロックがあるかどうかを判断し(ステップR8)、無い場合は残りの受信データの復調を完了し(ステップR9)、処理を終了する。
【0053】一方、ステップR8の判断で次のブロックがある場合は、処理の継続を設定するフェーズD処理を行なって(ステップR10)、ステップR1に戻って次のフレーム受信に供える。CPU11は、モデム18からフレーム終了を通知する割り込みが入ると、その時点でモデム18から示されるステータスすなわちそのフレームが正常に受信できたか否かを示すステータスを判断し、そのフレームの再送要求を行なうか否かを決定する。
【0054】このように、請求項4記載の実施例においては、HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFを認識するフィールド認識部23、24、および25と、認識されたFCFの内容に基づいて前記HDLCにフレーミングされているデータが画情報か画情報以外かを識別するデータ識別部25と、画情報と識別されたデータの前記HDLCにおけるフレーム番号に対応させて前記ECMバッファの格納アドレスを自動発生するフレーム番号/アドレス変換部27と、を設け、ECM受信時に前記モデム18からのデータ出力要求がある度に、前記DMAコントローラ22によってモデム18からECMバッファ21に順次データを転送し、このデータを前記格納アドレスに従ってECMバッファ21に格納するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデムの制御が可能となる。
【0055】以下、請求項5〜7いずれかに記載の発明を実施例に基づいて説明する。図6は請求項5〜7いずれかに記載された発明の一実施例に係るデータ通信装置としてファクシミリ装置を示す図であり、同図(a)はそのブロック構成図、同図(b)はDMAデータバッファの実施例を示す構成図である。なお、本実施例において上述例と同一の構成については、同一符号を付してその具体的な説明を省略する。
【0056】まず、構成を説明する。図6(a)において、モデム18は、画情報の正誤判定機能を有するエラーコレクションモードECMの画情報をデータとして送受信する。このモデム18によって送受信されるデータは、ECMバッファ21に格納される。従来であれば、このECMバッファ21とモデム18間のデータ転送はCPU11によって制御されるが、本実施例においては、前記ECMバッファ21とモデム18間でデータを中継するDMAデータバッファ31を設け、このDMAデータバッファ31とモデム18間のデータ転送を、モデム18からの要求に応えてDMAコントローラ22によって実行する。
【0057】なお、図6(a)において、網制御装置32は、回線の捕捉、発信先電話番号である選択信号の送出、または着信の検出等を行い、所定の発呼動作および着信動作を制御する。通信制御部33は、前記網制御装置32とモデム18を制御して、CCITT(国際電信電話諮問委員会)勧告による例えばG3規格に準拠した所定の伝送制御手順によりファクシミリ伝送を実現する。また、ECMバッファ21およびDMAバッファ31は、例えばRAM13にエリア設定されている。
【0058】上記DMAバッファ31の構成例が図6(b)に示され、本実施例においては、260バイトのDMAデータバッファ31を2組備えるものとする。図示のように、各DMAデータバッファ31の先頭にはステータスSTSを示すエリアが用意され、AFからFIFまでの全てのバイト数をセットするエリアが用意されている。
【0059】ここで、STSエリアのアサイン例(ビットフラグ方式等にしても良い)を示す。
[送信時]
00h:空き状態01h:CPU11のDCRモジュールによりデータ入力済み02h:モデム割り込みによりデータ送出中。モデム18によるデータ送出が終了すると再び空き状態(00h)に戻す。
[受信時]
10h:空き状態11h:モデム18によりデータ入力中12h:CRCチェック済み(フレームOK)
13h:CRCチェック済み(フレームNG)。「CRCチェック済み(フレームOK)」の状態になると、CPU11のDCRモジュールにてDMAデータバッファ31からECMバッファ21にデータをコピーした後、空き状態(10h)に戻す。
【0060】図7は図6に示すファクシミリ装置におけるデータフローを示す図であり、同図(a)はECM送信時のデータフロー、同図(b)はECM受信時のデータフローを示す。
【0061】図示のように、モデム18からのデータリクエストすなわちIRQ2は、DMAコントローラ22にのみ入力する。また、モデム18のステータス割り込み(プログラマブルインタラプト)すなわちIRQ1は、DMAコントローラ22のみに通知される。そして、DMAコントローラ22からのDMA終了割り込み、すなわちIRQ3がCPU11に通知される。
【0062】上記構成において、請求項5記載の発明は、図7(a)に示すECM送信時にCPU11によってECMバッファ21からDMAデータバッファ31にデータをコピーし、このDMAデータバッファ31にコピーされたデータを、DMAコントローラ22によってモデム18に転送する。次に、作用を説明する。
[ECM送信時(パーシャルページ)]図7(a)に示すECM送信時において、まずDMAコントローラ22をマスクした状態で、モデム18をHDLC高速データ送信モードにセットアップし、データ送出要求RTSをONする。これにより、モデム18は、データ入力要求IRQ2をかけてもデータが入力されないため、フラグを送出し続けることになる。
【0063】一方、図6(a)に示す符号化復号化部DCR17は、CPU11のDCRモジュールによってコントロールされて、RAM13にあるラインバッファのデータを圧縮し、ECMバッファ21に入力する。1フレーム分のデータが圧縮し終わると、CPU11は、DMAデータバッファ31のステータスSTS(図6(b)参照)をチェックし、空き状態「00h」の時は、AF、CF、FCF、フレームナンバーFRMを付加して、ECMバッファ21の1フレーム分の圧縮データをDMAデータバッファ31にコピーする。
【0064】コピーし終わったら、AFからFIFまでのデータのバイト数をセットして、ステータスを「DCRによるデータ入力済み」=01hに設定する。ここで、同時に動作するメインフローのプロトコルモジュールにおいて、モデム18がフラグを出し始めてから200ms間、ウエイトし、その後、まず1つ目のDMAバッファ31のステータスをチェックして、データ入力済み「02h」の場合は、そのDMAデータバッファ31のアドレスをDMAのスタートアドレスとして設定し、このDMAスタートアドレスにデータのバイト数を足した値をDMAエンドアドレスとして設定する。例えば、256オクテットの場合、DMAスタートアドレスには1つ目のDMAデータバッファ31の先頭アドレス、DMAエンドアドレスには1つ目のDMAデータバッファ31の先頭アドレスに256+4=260バイト足したアドレスをセットする。このようにアドレス設定後、DMAのマスクを解除する。
【0065】DMAコントローラ22は、モデム18からのデータリクエストIRQ2がある度に、DMAデータバッファ31の中のデータを1バイトずつモデム18に転送する。DMAエンドアドレスに達したら、即座に割り込みIRQ3にてCPU11に知らせる。CPU11は、DMAコントローラ22から割り込みIRQ3にてDMAの終了が通知されると、割り込みJOB中でモデム18にそのフレームが終了したことを通知(EOFを立てる)し、DMAをマスクした後に、そのDMAデータバッファ31のステータスを「空き状態」=00hに戻す。
【0066】CPU11のプロトコルモジュールでは、モデム18による1フレーム分のデータの送出終了を認識すると、もう1つのDMAデータバッファ31のステータスをチェックし、「DCRによるデータ入力済み」=00hになっていたら、DMAスタートアドレスとDMAエンドアドレスを上記と同様に設定した後、DMAのマスクを解除する。「DCRによるデータ入力済み」=00hになっていなかったら、DMAのマスクを解除せずにウェイトする。このようにすることにより、DCR17によるデータの圧縮が遅れた場合でも、自動的にフレーム間フラグの送出タイミングを延ばすことができる。
【0067】CPU11のDCRモジュールでは、1ページ分のデータを圧縮し終わり、全てのフレームのデータをECMバッファ21に転送し終わると、次にDMAデータバッファ31が空き状態「00h」になった時に、DMAデータバッファ31にRCPフレームのデータをセットする。このようにすることにより、画情報フレームFIFの後に続いてRCPフレームを送出することができる。
[ECM送信時(再送)]CPU11のDCRモジュールにて、再送マップに基づいてECMバッファ21のデータを順次AF、CF、FCF、フレームナンバーを付加してDMAデータバッファ31にコピーする。
【0068】再送すべきフレームのデータを全て、DMAデータバッファ31にコピーし終えたら、RCPフレームの情報をDMAデータバッファ31にセットし、処理を終える。なお、プロトコルモジュールと割り込みJOBの制御は、前述したパーシャルページ送出時と同様である。このように、本実施例においては、ECMバッファ21とモデム18間でデータを中継するDMAデータバッファ31と、このDMAデータバッファ31とモデム18間で該モデム18からの要求に応えてデータを転送するDMAコントローラ22と、を設け、ECM送信時にCPU11によってECMバッファ21からDMAデータバッファ31にデータをコピーし、DMAデータバッファ31にコピーされたデータをDMAコントローラ22によってモデム18に転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができる。
【0069】以下、請求項6記載の発明を実施例に基づいて説明する。まず、構成を説明する。図6(a)に示す本実施例において、DMAコントローラ22は図7(b)に示すECM受信時に、モデム18からDMAデータバッファ31にデータを転送する。DMAデータバッファ31に転送されたデータは、CPU11によってECMバッファ21にコピーされる。
【0070】次に、作用を説明する。図7(b)に示すECM受信時において、まずCPU11のプロトコルモジュールにて、モデム18を高速HDLCデータ受信モードにセットアップし、DMAの第1データ出力先スタートアドレスとして第1DMAデータバッファの先頭アドレスを、また第2データ出力先スタートアドレスとして第2DMAデータバッファの先頭アドレスを、それぞれ設定する。
【0071】さらに、HDLCフレーム情報が壊れた場合に備えて、エンドアドレスとしてスタートアドレスにフレームサイズとAF等のバイト数を足したアドレス(256オクテットの場合、スタートアドレスに260バイトを足したアドレス)をセットしておく。DMAコントローラ22は、モデム18からデータ出力要求IRQ2がある度に、1バイトずつ受信データを第1のDMAデータバッファ31に転送する。
【0072】また、モデム18からのステータス割り込みIRQ1が発生したら、DMAのスタートアドレスを第2のDMAデータバッファ31に切り換えてDMAを再スタートすると共に割り込みにてCPU11に通知する。なお、エンドアドレスとして設定されたアドレスまでデータを転送し終えた場合も、DMAコントローラ22は割り込みにてCPU11に通知する。
【0073】DMAコントローラ22からの割り込みがかけられると、CPU11は割り込みJOBで割り込み要因をチェックする。ここで、アボート、アンダーランによる割り込みの場合は、そのDMAデータバッファ31のステータスSTSを「空き状態」=10hに戻す。また、フレーム終了による割り込みの場合には、CRCのステータスチェックを行ないフレームが正しく受信できた場合には「CRCチェック済み(OKフレーム)」=12hを、また正しく受信できなかった場合は「CRCチェック済み(NGフレーム)」=13hのステータスSTSをセットする。
【0074】CPU11のDCRモジュールによって制御される符号化復号化部DCR17では、DMAデータバッファ31のステータスSTSを監視し、ステータスSTSが「CRCチェック済み(OKフレーム)」=12hとなったものは、AF、CF、FCFをチェックし、FCD(Facsimile Corded Data)の場合には、フレームナンバーFRMからECMバッファ21の格納すべきアドレスを算出し、FIFデータのコピーを行なうと共に、受信フレームマップのそのフレームに対応するビットを「0」にする。その後、このフレームマップに従い、ECMバッファ21中の受信データの復調を行なう。
【0075】一方、AF、CF、FCFのチェックの結果、RCPフレームだとわかった場合は、DMAおよびモデムの割り込みを全てマスクして、プロトコルモジュールに対して受信フレームマップの情報を渡すと共に、高速データ受信の終了を通知する。このように、本実施例においては、ECM受信時にDMAコントローラ22によってモデム18からDMAデータバッファ31にデータを転送し、DMAデータバッファ31に転送されたデータをCPU11によってECMバッファ21にコピーするので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができる。
【0076】以下、請求項7記載の発明を実施例に基づいて説明する。まず、構成を説明する。図6(a)において、モデム18は、CCITT勧告V.21に従って送受信する画情報をデータとして送受信する。このモデム18によって送受信されるデータは、ECMバッファ21に格納される。従来であれば、このECMバッファ21とモデム18間のデータ転送はCPU11によって制御されるが、本実施例においては、前記ECMバッファ21とモデム18間でデータを中継するDMAデータバッファ31を設け、このDMAデータバッファ31とモデム18間のデータ転送を、モデム18からの要求に応えてDMAコントローラ22によって実行する。
【0077】本実施例の作用は、前記請求項5または6記載の実施例で説明したものと同様である。すなわち、CCITT勧告V.21に従って送受信するデータもECMバッファ21とDMAデータバッファ31間ではCPU11によって転送し、DMAデータバッファ31とモデム18間ではDMAコントローラ22によって転送する。ただし、本実施例において、送受信データは符号化復号化部DCR17を通さず、CPU11のプロトコルモジュールにおいて作成・判断される。
【0078】このように、本実施例においては、CCITT勧告V.21に従って送受信するデータをECMバッファ21とDMAデータバッファ31間ではCPU11によって転送し、DMAデータバッファ31とモデム18間ではDMAコントローラ22によって転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができる。
【0079】以下、請求項8〜11いずれかに記載の発明を実施例に基づいて説明する。図8は請求項8〜11いずれかに記載された発明の一実施例に係るデータ通信装置としてファクシミリ装置を示す図であり、同図(a)はそのブロック構成図、同図(b)は割り込みの発生状況を示す構成図である。なお、本実施例において上述例と同一の構成については、同一符号を付してその具体的な説明を省略する。
【0080】まず、構成を説明する。図8(a)において、モデム18は、画情報の正誤判定機能を有するエラーコレクションモードECMまたは非ECMの画情報をデータとして送受信する。このモデム18によって送受信されるECMデータは、FIFOおよびECMバッファ21のECMバッファに格納される。また、モデム18によって送受信される非ECMデータは、FIFOおよびECMバッファ21のFIFOメモリに格納される。DMAコントローラ22は、前記モデム18からの要求に応えて、前記FIFOメモリ21とモデム18間またはECMバッファ21とモデム18間のデータ転送を制御する。
【0081】ここで、前記DMAコントローラ22によるスタートアドレスと転送バイト数を設定するために、複数たとえば3組みのポート41が設けられている。3組みのポート41は、所定の指定部により設定に使用するポートを指定することができ、また指定されたポートを使用してのDMAが終了した時点で、DMAを停止するか継続するかを所定の選択部により選択することができる。これらの指定部および選択部は、ROM12内のプログラムにソフトウェアとして備えられている。
【0082】モデム18は、HDLCデータ送受信モードに設定されると、図8(b)に示すように、フレーム終了を知らせる割り込み要求IRQ1と、データ入力出力要求の割り込み要求IRQ2とを発生する。HDLCを使用しないような設定にした場合、データ入力出力要求の割り込み要求IRQ2のみを発生する。なお、データ入出力要求IRQ2は、ゲート42によってDMAコントローラ22への要求タイミングが制御されている。
【0083】モデム18はHDLCモードにセットアップすることにより、送信時は、フレーム間フラグおよびフレームエンド設定時のフレームチェックシーケンス(FCS)を自動的に送出し、受信時には、フレーム間フラグおよびフレームチェックシーケンス(FCS)をユーザーデータとして開示せず、ポーリング可能なステータスによって、そのフレームが正常に受信できたものか否かの情報をCPU11に対して提示する。
【0084】図8(b)において、フレーム受信終了を示す割り込み要求IRQ1は、モデム18からCPU11側にのみに通知される。モデム18からのデータ入出力要求IRQ2は、ゲート42を通してDMAコントローラ22側にのみ入力する。また、DMAコントローラ22は、指定されたデータの転送を終了したら、その都度割り込みIRQ3を発生させ、CPU11に通知する。
【0085】図9は図8(a)に示すDMA設定用出力ポート41の設定項目および構成を示す図である。ポート41は、3組みのポートにより構成されて、DMAコントローラ22のスタートアドレス
【0086】DMAに関する設定は、スタートアドレス、転送数が、それぞれ
【0087】上記構成において、請求項8記載の発明は、ECMの送信データを前記DMAコントローラ22によりECMバッファ21からモデム18に転送する。次に、作用を説明する。図10はECM送信時のポート設定例を示す図であり、本実施例では、DMAに関するスタートアドレスと転送数の設定を3組使用し、3組目(
【0088】図11および図12は請求項8記載の実施例を実現するECM送信時の制御手順を示すフローチャートである。まず、DMAをマスクした状態で、モデム18をHDLC高速データ送出モードにセットアップし(ステップQ1)、ゲート42を閉じたまま(ステップQ2)、データ送出要求RTSすなわちIRQ2をONする(ステップQ3)。このため、モデム18は、データ入力要求IRQ2をかけてもデータが入力されないため、フラグを送出し続けることになる。
【0089】一方、符号化復号化部17は、CPU11のDCRモジュールによってコントロールされ、例えばRAM13内のラインバッファのデータを圧縮し、ECMバッファ21に入力する。ここで、図10に示したようにポート41を設定し、設定
【0090】続いて、図10に示す〔DMAスタートアドレス
【0091】この後、モデム18がフラグパターンを最低保証時間(200ms)出し終わったら(ステップQ13)、送出すべきフレームデータが揃っていることを条件に(ステップQ14)、DMAをスタートし(ステップQ15)、ゲート42を開けてモデム18からDMAコントローラ22にデータ入力要求IRQ2を通知する(ステップQ16)。
【0092】DMAコントローラ22は、モデム18からのデータリクエストIRQ2がある度に、図10の〔DMAスタートアドレス
【0093】さらにこの後、モデム18からのデータ入力要求IRQ2がある度に、引き続き〔DMAスタートアドレス
【0094】また、〔DMA転送数
【0095】一方、次のフレームとして送出すべきデータが揃っていない場合には、モデム18からDMAコントローラ22への割り込み要求IRQ2のゲート42がステップQ22において閉じられているので、モデム18へのデータの出力は行なわれなくなり、モデム18からは自動的にフレーム間フラグが送出されることになる。
【0096】データが揃い次第、ステップQ16に示すようにゲート42を開けることにより、DMAコントローラ22は、割り込み要求の都度、モデム18へのデータの出力を再開し、次のフレームデータの送信を行なうことができる。一方、ステップQ24の判断でNOすなわち1ページ分のデータを圧縮し終わり全てのフレームのデータを送出し終わったら、HDLC制御フィールド用データエリアにRCPフレームのデータ(AF=OFFH、CF=O3H、FCF=86H)をセットし(ステップQ25)、〔DMAスタートアドレス
【0097】続いて、DMAをスタートし(ステップQ27)、ゲート42を開く(ステップQ28)。この後、送出終了割り込みIRQ3がかかる度に(ステップQ29)、モデム18にそのフレームが終了したことを、EOFを立てて通知し(ステップQ30)、2回目の送出終了割り込みIRQ3がかかると(ステップQ31)、EOFを立ててモデム18にフレーム終了を通知すると共に(ステップQ32)、HDLC制御フィールド用データエリアのCFの部分を最終フレームであることを示すデータすなわち図13(a)に示す「13H」に変え(ステップQ33)、3回目の送出終了割り込みIRQ3がかかると(ステップQ34)、EOFを立ててモデム18にフレーム終了を通知すると共に(ステップQ35)、ゲート42を閉じて送出を終了する(ステップQ36)。
【0098】このようにすることにより、図14(a)に示す画情報フレームの後に続いて、図14(b)に示すRCPフレームを送出することができる。なお、再送時は相手から指定されたPPR(再送要求)により、再送すべきフレームのフレーム番号を、図13(b)に示すフレーム番号ストアエリアに順にセットし、再送すべきフレームの先頭アドレスと、転送数を〔DMAスタートアドレス
【0099】このように、請求項8記載の実施例においては、DMAコントローラ22によるスタートアドレスと転送バイト数を設定するポート41を複数設け、設定に使用するポート41を指定する指定部と、指定されたポート41を使用してのDMAが終了した時点でDMAを停止するか継続するかを選択する選択部と、を備え、ECMの送信データを前記DMAコントローラ22によりECMバッファ21からモデム18に転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしにマルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができ、さらにシステムのリスクをも軽減することができる。
【0100】以下、請求項9記載の発明を実施例に基づいて説明する。まず、構成を説明する。図8に示す本実施例においては、ECMの受信データをDMAコントローラ22によりモデム18からECMバッファ21に転送する。次に、作用を説明する。
【0101】図15はECM受信時のポート設定例を示す図であり、本実施例では、DMAに関するスタートアドレスと転送数の設定を3組使用し、3組目(
【0102】また、〔DMAスタートアドレス
【0103】ここで、ゲート42を開けて(ステップU10)、DMAをスタートする(ステップU11)。DMAコントローラ22は、モデム18からデータ出力要求IRQ2がある度に、受信データを1バイトずつ転送する。上記のように設定されている場合、まず最初の3バイトをHDLC制御フィールド用エリアに転送し、3バイト転送終了後、IRQ3にてCPU11に通知する(ステップU12)。その後、次のフレーム番号データは、自らの〔DMAスタートアドレス
【0104】この後、DMAコントローラ22はストップせずに〔DMAスタートアドレス
【0105】一方、ステップU15の判断でYESすなわち画情報フレームとして正当な値の場合には、DMA
【0106】一方、ステップU20またはU22において、モデム18からのステータスに割り込みIRQ1が発生したら、割り込みの要因をチェックし(ステップU24)、フレーム受信終了の割り込みの場合には、モデム18のCRCのステータスをチェックし(ステップU25)、CRCがOKの場合は正常フレーム処理(ステップU26)、またCRCがNGの場合はNGフレーム処理を行なって(ステップU27)、DMAの再スタートをかける。
【0107】ユーザーデータの転送先スタートアドレスは相手から送られてくるフレーム番号によって自動的に設定されるため、何も設定を変えずに、以降、再スタートをかけ続けながら上記のように割り込み毎のチェックを行なうことによりECMデータの受信が可能となる。このように、請求項9記載の実施例においては、ECMの受信データをDMAコントローラ22によりモデム18からECMバッファ21に転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしにマルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができ、さらにシステムのリスクをも軽減することができる。
【0108】以下、請求項10記載の発明を実施例に基づいて説明する。まず、構成を説明する。図8に示す本実施例においては、非ECMの送信データをDMAコントローラ22によりFIFOメモリ21からモデム18に転送する。次に、作用を説明する。
【0109】図18は非ECM送信時のポート設定例を示す図であり、本実施例では、DMAに関するスタートアドレスと転送数の設定を2組使用し、2組目(
【0110】スタートをかけられると、DMAコントローラ22は、モデム18からの割り込み要求IRQ2がある都度、FIFOメモリ21のデータを1バイトずつモデム18に出力する。〔DMA転送数
【0111】一方、ステップV12またはV15の判断で、次が最終データの場合は、1ページ分のデータの圧縮が終了した時点で、そのデータの送出設定時にDMA転送数に残りのデータ数を設定し(ステップV16)、このデータ数分の転送が終了すると、DMAコントローラ22は、CPU11に最後のDMA終了割り込みIRQ3にて通知し(ステップV17)、ゲート42を閉じて(ステップV18)、モデム18へのデータ入力を終了する(ステップV19)。
【0112】このように、請求項10記載の実施例においては、非ECMの送信データをDMAコントローラ22によりFIFOメモリ21からモデム18に転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしにマルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができ、さらにシステムのリスクをも軽減することができる。
【0113】以下、請求項11記載の発明を実施例に基づいて説明する。まず、構成を説明する。図8に示す本実施例においては、非ECMの受信データをDMAコントローラ22によりモデム18からFIFOメモリ21に転送する。次に、作用を説明する。
【0114】図20は非ECM受信時のポート設定例を示す図であり、本実施例では、DMAに関するスタートアドレスと転送数の設定を2組使用し、2組目(
【0115】スタートをかけられると、DMAコントローラ22は、キャリアすなわちユーザーデータである受信データの有無を判断し(ステップW10)、受信データが有る場合は、モデム18からの割り込み要求IRQ2がある都度、モデム18からユーザーデータを読み込み、1バイトずつFIFOメモリ21に転送する。〔DMA転送数
【0116】〔DMA転送数
【0117】非ECM受信時は、どこでデータの受信が終了するか復調するまでわからないので、相手からのデータのキャリアが切れるまで同様の動作を繰り返し、ステップW10またはW13で、キャリアが切れたと判断した時点で、ゲート42を閉じ(ステップW16)、DMAを停止させて(ステップW17)、1ページ分の制御を終了する。
【0118】このように、請求項11記載の実施例においては、非ECMの受信データをDMAコントローラ22によりモデム18からFIFOメモリ21に転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしにマルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができ、さらにシステムのリスクをも軽減することができる。
【0119】
【発明の効果】以上説明したように、請求項1記載の発明に係るデータ通信装置によれば、非ECM送信時にモデムからのデータ入力要求がある度に、DMAコントローラによってFIFOメモリからモデムに所定バイト数のデータを転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデムの制御が可能となる。
【0120】また、請求項2記載の発明に係るデータ通信装置によれば、非ECM受信時にモデムからのデータ出力要求がある度に、DMAコントローラによってモデムからFIFOメモリに所定バイト数のデータを転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデムの制御が可能となる。
【0121】また、請求項3記載の発明に係るデータ通信装置によれば、ハイレベル・データリンク制御手順HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFの各情報を発生するフィールド情報発生部と、ECMバッファにおけるデータの格納アドレスに対応させて前記HDLCにおけるフレーム番号を生成するアドレス/フレーム番号変換部と、を設け、ECM送信時にモデムからのデータ入力要求がある度に、DMAコントローラによってECMバッファからモデムに順次データを転送し、このデータを前記フレーム番号に従ってHDLCにフレーミングするので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデムの制御が可能となる。
【0122】また、請求項4記載の発明に係るデータ通信装置によれば、HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFを認識するフィールド認識部と、認識されたFCFの内容に基づいて前記HDLCにフレーミングされているデータが画情報か画情報以外かを識別するデータ識別部と、画情報と識別されたデータの前記HDLCにおけるフレーム番号に対応させて前記ECMバッファの格納アドレスを自動発生するフレーム番号/アドレス変換部と、を設け、ECM受信時にモデムからのデータ出力要求がある度に、DMAコントローラによってモデムからECMバッファに順次データを転送し、このデータを前記格納アドレスに従ってECMバッファに格納するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデムの制御が可能となる。
【0123】また、請求項5記載の発明に係るデータ通信装置によれば、ECMバッファとモデム間でデータを中継するデータバッファと、このデータバッファとモデム間で該モデムからの要求に応えてデータを転送するDMAコントローラと、を設け、ECM送信時にCPUによってECMバッファからデータバッファにデータをコピーし、データバッファにコピーされたデータをDMAコントローラによってモデムに転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができる。
【0124】また、請求項6記載の発明に係るデータ通信装置によれば、ECM受信時にDMAコントローラによってモデムからDMAデータバッファにデータを転送し、DMAデータバッファに転送されたデータをCPUによってECMバッファにコピーするので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができる。
【0125】また、請求項7記載の発明に係るデータ通信装置によれば、CCITT勧告V.21に従って送受信するデータもECMバッファとデータバッファ間ではCPUによって転送し、データバッファとモデム間ではDMAコントローラによって転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしに、マルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができる。
【0126】また、請求項8記載の発明に係るデータ通信装置によれば、DMAコントローラによるスタートアドレスと転送バイト数を設定するポートを複数設け、設定に使用するポートを指定する指定部と、指定されたポートを使用してのDMAが終了した時点でDMAを停止するか継続するかを選択する選択部と、を備え、ECMの送信データを前記DMAコントローラによりECMバッファからモデムに転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしにマルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができ、さらにシステムのリスクをも軽減することができる。
【0127】また、請求項9記載の発明に係るデータ通信装置によれば、ECMの受信データをDMAコントローラによりモデムからECMバッファに転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしにマルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができ、さらにシステムのリスクをも軽減することができる。
【0128】また、請求項10記載の発明に係るデータ通信装置によれば、非ECMの送信データをDMAコントローラによりFIFOメモリからモデムに転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしにマルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができ、さらにシステムのリスクをも軽減することができる。
【0129】また、請求項11記載の発明に係るデータ通信装置によれば、非ECMの受信データをDMAコントローラによりモデムからFIFOメモリに転送するので、より処理スピードの高いCPUやマルチCPU構成というようなコストアップなしにマルチタスク処理を実行でき、高速なモデム制御を実現したうえでハードウェアの負担を軽減することができ、さらにシステムのリスクをも軽減することができる。
【図面の簡単な説明】
【図1】請求項1〜4いずれかに記載された発明の一実施例に係るデータ通信装置としてのファクシミリ装置を示す図であり、同図(a)はそのブロック構成図、同図(b)はECM画情報のHDLCフレーム構造を示す図である。
【図2】請求項1記載の実施例における1ページ送信時の制御手順を示すフローチャートである。
【図3】請求項2記載の実施例における1ページ受信時の制御手順を示すフローチャートである。
【図4】請求項3記載の実施例における1ページ送信時の制御手順を示すフローチャートである。
【図5】請求項4記載の実施例における1ページ受信時の制御手順を示すフローチャートである。
【図6】請求項5〜7いずれかに記載された発明の一実施例に係るデータ通信装置としてファクシミリ装置を示す図であり、同図(a)はそのブロック構成図、同図(b)はDMAデータバッファの実施例を示す構成図である。
【図7】図6に示すファクシミリ装置におけるデータフローを示す図であり、同図(a)はECM送信時のデータフロー、同図(b)はECM受信時のデータフローを示す。
【図8】請求項8〜11いずれかに記載された発明の一実施例に係るデータ通信装置としてファクシミリ装置を示す図であり、同図(a)はそのブロック構成図、同図(b)は割り込みの発生状況を示す構成図である。
【図9】図8(a)に示すDMA設定用出力ポートの設定項目および構成を示す図である。
【図10】ECM送信時のポート設定例を示す図である。
【図11】請求項8記載の実施例を実現するECM送信時の制御手順を示すフローチャートである。
【図12】図11に続く制御手順を示すフローチャートである。
【図13】RAM内のデータエリアを示す図であり、同図(a)はHDLC制御フィールド用データエリアを示し、同図(b)はフレーム番号ストアエリアを示す。
【図14】HDLCフレームを示す構成図であり、同図(a)はECM画情報フレーム、同図(b)はRCPフレームをそれぞれ示す。
【図15】ECM受信時のポート設定例を示す図である。
【図16】請求項9記載の実施例を実現するECM受信時の制御手順を示すフローチャートである。
【図17】図16に続く制御手順を示すフローチャートである。
【図18】非ECM送信時のポート設定例を示す図である。
【図19】請求項10記載の実施例を実現する非ECM送信時の制御手順を示すフローチャートである。
【図20】非ECM受信時のポート設定例を示す図である。
【図21】請求項11記載の発明を実現する非ECM受信時の制御手順を示すフローチャートである。
【符号の説明】
11 CPU
18 モデム
21 FIFOおよびECMバッファ
22 DMAコントローラ
【特許請求の範囲】
【請求項1】画情報の正誤判定機能を有するエラーコレクションモードECMと非ECMとを設け、ECMまたは非ECMの画情報をデータとして送受信するモデムと、このモデムによって送受信されるECMデータを格納するECMバッファと、前記モデムによって送受信される非ECMデータを格納するFIFOメモリと、このFIFOメモリとモデム間または前記ECMバッファとモデム間のデータ転送を制御するCPUと、を備えたデータ通信装置において、前記モデムからの要求に応えて前記FIFOメモリとモデム間またはECMバッファとモデム間のデータ転送を制御するDMAコントローラを設け、非ECM送信時に前記モデムからのデータ入力要求がある度に前記DMAコントローラによってFIFOメモリからモデムに所定バイト数のデータを転送することを特徴とするデータ通信装置。
【請求項2】請求項1記載のデータ通信装置において、非ECM受信時に前記モデムからのデータ出力要求がある度に前記DMAコントローラによってモデムからFIFOメモリに所定バイト数のデータを転送することを特徴とするデータ通信装置。
【請求項3】請求項1または2記載のデータ通信装置において、ハイレベル・データリンク制御手順HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFの各情報を発生するフィールド情報発生部と、ECMバッファにおけるデータの格納アドレスに対応させて前記HDLCにおけるフレーム番号を生成するアドレス/フレーム番号変換部と、を設け、ECM送信時に前記モデムからのデータ入力要求がある度に前記DMAコントローラによってECMバッファからモデムに順次データを転送し、このデータを前記フレーム番号に従ってHDLCにフレーミングすることを特徴とするデータ通信装置。
【請求項4】請求項3記載のデータ通信装置において、HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFを認識するフィールド認識部と、認識されたFCFの内容に基づいて前記HDLCにフレーミングされているデータが画情報か画情報以外かを識別するデータ識別部と、画情報と識別されたデータの前記HDLCにおけるフレーム番号に対応させて前記ECMバッファの格納アドレスを自動発生するフレーム番号/アドレス変換部と、を設け、ECM受信時に前記モデムからのデータ出力要求がある度に前記DMAコントローラによってモデムからECMバッファに順次データを転送し、このデータを前記格納アドレスに従ってECMバッファに格納することを特徴とするデータ通信装置。
【請求項5】画情報の正誤判定機能を有するエラーコレクションモードECMを設け、このECMの画情報をデータとして送受信するモデムと、このモデムによって送受信されるデータを格納するECMバッファと、このECMバッファとモデム間のデータ転送を制御するCPUと、を備えたデータ通信装置において、前記ECMバッファとモデム間でデータを中継するデータバッファと、このデータバッファとモデム間で該モデムからの要求に応えてデータを転送するDMAコントローラと、を設け、ECM送信時に前記CPUによってECMバッファからデータバッファにデータをコピーし、データバッファにコピーされたデータを前記DMAコントローラによってモデムに転送することを特徴とするデータ通信装置。
【請求項6】請求項5記載のデータ通信装置において、ECM受信時にDMAコントローラによってモデムからデータバッファにデータを転送し、データバッファに転送されたデータをCPUによってECMバッファにコピーすることを特徴とするデータ通信装置。
【請求項7】請求項5または6記載のデータ通信装置において、CCITT勧告V.21に従って送受信するデータをECMバッファとデータバッファ間ではCPUによって転送し、データバッファとモデム間ではDMAコントローラによって転送することを特徴とするデータ通信装置。
【請求項8】画情報の正誤判定機能を有するエラーコレクションモードECMと非ECMとを設け、ECMまたは非ECMの画情報をデータとして送受信するモデムと、このモデムによって送受信されるECMデータを格納するECMバッファと、前記モデムによって送受信される非ECMデータを格納するFIFOメモリと、前記モデムからの要求に応えて前記FIFOメモリとモデム間またはECMバッファとモデム間のデータ転送を制御するDMAコントローラと、を備えたデータ通信装置において、前記DMAコントローラによるスタートアドレスと転送バイト数を設定するポートを複数設け、設定に使用するポートを指定する指定部と、指定されたポートを使用してのDMAが終了した時点でDMAを停止するか継続するかを選択する選択部と、を備え、ECMの送信データを前記DMAコントローラによりECMバッファからモデムに転送することを特徴とするデータ通信装置。
【請求項9】請求項8記載のデータ通信装置において、ECMの受信データをDMAコントローラによりモデムからECMバッファに転送することを特徴とするデータ通信装置。
【請求項10】請求項8記載のデータ通信装置において、非ECMの送信データをDMAコントローラによりFIFOメモリからモデムに転送することを特徴とするデータ通信装置。
【請求項11】請求項8記載のデータ通信装置において、非ECMの受信データをDMAコントローラによりモデムからFIFOメモリに転送することを特徴とするデータ通信装置。
【請求項1】画情報の正誤判定機能を有するエラーコレクションモードECMと非ECMとを設け、ECMまたは非ECMの画情報をデータとして送受信するモデムと、このモデムによって送受信されるECMデータを格納するECMバッファと、前記モデムによって送受信される非ECMデータを格納するFIFOメモリと、このFIFOメモリとモデム間または前記ECMバッファとモデム間のデータ転送を制御するCPUと、を備えたデータ通信装置において、前記モデムからの要求に応えて前記FIFOメモリとモデム間またはECMバッファとモデム間のデータ転送を制御するDMAコントローラを設け、非ECM送信時に前記モデムからのデータ入力要求がある度に前記DMAコントローラによってFIFOメモリからモデムに所定バイト数のデータを転送することを特徴とするデータ通信装置。
【請求項2】請求項1記載のデータ通信装置において、非ECM受信時に前記モデムからのデータ出力要求がある度に前記DMAコントローラによってモデムからFIFOメモリに所定バイト数のデータを転送することを特徴とするデータ通信装置。
【請求項3】請求項1または2記載のデータ通信装置において、ハイレベル・データリンク制御手順HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFの各情報を発生するフィールド情報発生部と、ECMバッファにおけるデータの格納アドレスに対応させて前記HDLCにおけるフレーム番号を生成するアドレス/フレーム番号変換部と、を設け、ECM送信時に前記モデムからのデータ入力要求がある度に前記DMAコントローラによってECMバッファからモデムに順次データを転送し、このデータを前記フレーム番号に従ってHDLCにフレーミングすることを特徴とするデータ通信装置。
【請求項4】請求項3記載のデータ通信装置において、HDLCで規定されるフレームを構成するアドレスフィールドAF、コントロールフィールドCF、およびファクシミリコントロールフィールドFCFを認識するフィールド認識部と、認識されたFCFの内容に基づいて前記HDLCにフレーミングされているデータが画情報か画情報以外かを識別するデータ識別部と、画情報と識別されたデータの前記HDLCにおけるフレーム番号に対応させて前記ECMバッファの格納アドレスを自動発生するフレーム番号/アドレス変換部と、を設け、ECM受信時に前記モデムからのデータ出力要求がある度に前記DMAコントローラによってモデムからECMバッファに順次データを転送し、このデータを前記格納アドレスに従ってECMバッファに格納することを特徴とするデータ通信装置。
【請求項5】画情報の正誤判定機能を有するエラーコレクションモードECMを設け、このECMの画情報をデータとして送受信するモデムと、このモデムによって送受信されるデータを格納するECMバッファと、このECMバッファとモデム間のデータ転送を制御するCPUと、を備えたデータ通信装置において、前記ECMバッファとモデム間でデータを中継するデータバッファと、このデータバッファとモデム間で該モデムからの要求に応えてデータを転送するDMAコントローラと、を設け、ECM送信時に前記CPUによってECMバッファからデータバッファにデータをコピーし、データバッファにコピーされたデータを前記DMAコントローラによってモデムに転送することを特徴とするデータ通信装置。
【請求項6】請求項5記載のデータ通信装置において、ECM受信時にDMAコントローラによってモデムからデータバッファにデータを転送し、データバッファに転送されたデータをCPUによってECMバッファにコピーすることを特徴とするデータ通信装置。
【請求項7】請求項5または6記載のデータ通信装置において、CCITT勧告V.21に従って送受信するデータをECMバッファとデータバッファ間ではCPUによって転送し、データバッファとモデム間ではDMAコントローラによって転送することを特徴とするデータ通信装置。
【請求項8】画情報の正誤判定機能を有するエラーコレクションモードECMと非ECMとを設け、ECMまたは非ECMの画情報をデータとして送受信するモデムと、このモデムによって送受信されるECMデータを格納するECMバッファと、前記モデムによって送受信される非ECMデータを格納するFIFOメモリと、前記モデムからの要求に応えて前記FIFOメモリとモデム間またはECMバッファとモデム間のデータ転送を制御するDMAコントローラと、を備えたデータ通信装置において、前記DMAコントローラによるスタートアドレスと転送バイト数を設定するポートを複数設け、設定に使用するポートを指定する指定部と、指定されたポートを使用してのDMAが終了した時点でDMAを停止するか継続するかを選択する選択部と、を備え、ECMの送信データを前記DMAコントローラによりECMバッファからモデムに転送することを特徴とするデータ通信装置。
【請求項9】請求項8記載のデータ通信装置において、ECMの受信データをDMAコントローラによりモデムからECMバッファに転送することを特徴とするデータ通信装置。
【請求項10】請求項8記載のデータ通信装置において、非ECMの送信データをDMAコントローラによりFIFOメモリからモデムに転送することを特徴とするデータ通信装置。
【請求項11】請求項8記載のデータ通信装置において、非ECMの受信データをDMAコントローラによりモデムからFIFOメモリに転送することを特徴とするデータ通信装置。
【図1】
【図13】
【図14】
【図2】
【図9】
【図10】
【図3】
【図4】
【図5】
【図15】
【図16】
【図6】
【図18】
【図20】
【図7】
【図8】
【図11】
【図12】
【図17】
【図19】
【図21】
【図13】
【図14】
【図2】
【図9】
【図10】
【図3】
【図4】
【図5】
【図15】
【図16】
【図6】
【図18】
【図20】
【図7】
【図8】
【図11】
【図12】
【図17】
【図19】
【図21】
【公開番号】特開平5−336368
【公開日】平成5年(1993)12月17日
【国際特許分類】
【出願番号】特願平4−143768
【出願日】平成4年(1992)6月4日
【出願人】(000006747)株式会社リコー (37,907)
【公開日】平成5年(1993)12月17日
【国際特許分類】
【出願日】平成4年(1992)6月4日
【出願人】(000006747)株式会社リコー (37,907)
[ Back to top ]