(57)【要約】【課題】  ホストコンピュータ８１と、ＣＰＵ７０、ＲＡＭ７１、及びＲＯＭ８２を含む画像処理装置とを接続する制御ＬＳＩ１００において、処理目的の異なる第一のデータと第二のデータとを、一方のデータを消滅させることなく他方のデータを受信すること。【解決手段】  データラッチ［１］回路７６、及びデータラッチ［２］回路７７は、それぞれ処理目的の異なるデータを格納し、シフトクロック生成回路７９は、所定の信号を受け入れると、データラッチ［１］回路７６が格納するデータをデータラッチ［２］回路７７へシフトさせる。【選択図】図１
2009265992.tif 000002
【特許請求の範囲】
【請求項１】
上位装置と接続され、それぞれ処理目的のことなる、第一のデータが伝送される第一の伝送モードと第二のデータが伝送される第二の伝送モードとを有するデータ受信装置であって、
前記第一の伝送モードと前記第二の伝送モードとを相互に切替えるモード切替部と、
前記第一のデータ又は前記第二のデータの何れかを格納する第一のデータラッチ回路及び第二のデータラッチ回路と、
所定の信号を受け入れると、前記第一のデータラッチ回路が格納するデータを前記第二のデータラッチ回路へシフトするデータシフト回路とを備え、
一方の前記伝送モードで一方の前記データを前記第一のデータラッチ回路へ格納中に前記モード切替部が前記一方の伝送モードから他方の前記伝送モードへ切換えると、前記データシフト回路は、前記第一のデータラッチ回路が格納するデータを前記第二のデータラッチ回路へシフトすることを特徴とするデータ受信装置。
【請求項２】
上位装置と接続され、それぞれ処理目的のことなる、第一のデータが伝送される第一の伝送モードと第二のデータが伝送される第二の伝送モードとを有するデータ受信装置におけるデータ伝送方法であって、
一方の伝送モードで一方のデータを受信中に、前記一方の伝送モードから前記他方の伝送モードへ切替ると、受け入れた一方のデータを所定のメモリに退避させ、前記他方のデータを受け入れることを特徴とするデータ受信方法。
【請求項３】
上位装置と接続され、それぞれ処理目的のことなる、第一のデータが伝送される第一の伝送モードと第二のデータが伝送される第二の伝送モードとを有するデータ受信装置であって、
前記第一の伝送モード及び前記第二の伝送モードを相互に切替えるモード切替部と、
ＦＩＦＯ機能及びスタック機能を有し、前記第一のデータ及び前記第二のデータをそれそれ異なるアドレス領域に格納するデータラッチバッファとを備え、
前記データラッチバッファは、
前記第一のデータ及び前記第二のデータの書き込み時には前記ＦＩＦＯ機能に基づいて読み込み順にデータを格納し、
前記第一のデータ及び前記第二のデータの読出し時には、
前記モード切替部の切換結果に対応し、前記ＦＩＦＯ機能及びスタック機能の何れかの機能に基づいてデータ読出しを実行することを特徴とするデータ受信装置。
【請求項４】
請求項１又は請求項３記載のデータ受信装置を有し、更に該データ受信装置の制御に従って受信した前記第一のデータ又は前記第二のデータを印刷する印刷部を含むことを特徴とする画像形成装置。
【請求項５】
上位装置と接続され、それぞれ処理目的のことなる、第一のデータが伝送される第一の伝送モードと第二のデータが伝送される第二の伝送モードとを有するデータ受信装置におけるデータ伝送方法であって、
前記第一のデータ及び前記第二のデータの書き込み時には前記ＦＩＦＯ機能に基づいて読み込み順にデータを格納し、
前記第一のデータ及び前記第二のデータの読出し時には、
前記モードに対応し、前記ＦＩＦＯ機能及びスタック機能の何れかの機能に基づいてデータ読出しを実行することを特徴とするデータ受信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコンピュータに接続される、プリンタのデータ受信装置、該データ受信装置を備えた画像形成装置、及びデータ受信方法に関するものである。
【背景技術】
【０００２】
ホストコンピュータとの間で、データ受信に関するハンドシェークを可能とする、ＩＥＥＥ１２８４インタフェースを備えるプリンタの普及が進んでいる。その機能の概要について説明する。
【０００３】
図９は、従来のＩＥＥＥ１２８４Ｉ／Ｆデータ受信部の機能ブロック図である。
図に示すように、ＩＥＥＥ１２８４Ｉ／Ｆデータ受信部としての制御ＬＳＩ２３は、ＣＰＵ２０、ＲＡＭ２１、及びＲＯＭ３０が、ホストコンピュータ２２とインタフェースするために、ＣＰＵＩ／Ｆ回路２４と、Ｂｕｓｙ信号制御回路２９と、Ｓｔｒｏｂｅパルス検出回路２５と、Ｓｔｒｏｂｅノイズ除去回路２７と、Ｓｔｒｏｂｅエッジ検出回路２６と、データラッチ回路２８とを備える。
【０００４】
ＣＰＵＩ／Ｆ回路２４は、制御ＬＳＩ２３とＣＰＵ２０、ＲＡＭ２１、及びＲＯＭ３０とをインタフェースする。Ｓｔｒｏｂｅパルス検出回路２５は、ホストコンピュータ２２が出力するＳｔｒｏｂｅ信号のパルスを検出する。
【０００５】
Ｓｔｒｏｂｅエッジ検出回路２６は、Ｓｔｒｏｂｅパルスから立下りエッジまたは立ち上がりエッジのいずれかを速やかに検出してトリガを出力する。Ｓｔｒｏｂｅノイズ除去回路２７は、Ｓｔｒｏｂｅ信号にノイズがのり、微小な幅のパルスが発生することにより、エッジの誤検出を避けるために、システムクロックで数回サンプリングを行いサンプリング結果の多数決処理等によりノイズを除去する。
【０００６】
データラッチ回路２８は、Ｓｔｒｏｂｅエッジ検出回路２６から受け入れた立下りエッジをトリガとしてホストコンピュータ２２から受け入れるデータをラッチする。Ｂｕｓｙ信号制御回路２９は、データラッチ回路２８がデータラッチした際にホストコンピュータ２２にデータ処理のための受信データラッチ信号を出力する。
【０００７】
このようにして、ホストコンピュータ２２が出力したＤａｔａ１８がラッチされ、その結果が受信データラッチ信号としてＣＰＵＩ／Ｆ回路２４を介してＣＰＵ２０及びＲＡＭ２１へ送出される。ラッチされたデータの処理が終わると、次のデータ受信処理を行うためにＣＰＵ２０がＣＰＵＩ／Ｆ回路２４を介してＢｕｓｙ信号制御回路２９を制御し、Ｂｕｓｙ信号をオフしてデータ受信処理を終了する。
【０００８】
従来のＩＥＥＥ１２８４Ｉ／Ｆ受信データラッチレジスタではＬＳＩ内に１Ｂｙｔｅ分のメモリ領域を確保しており、Ｓｔｒｏｂｅ信号をトリガとしてデータラッチを行い、そのデータに対応した処理を行っていた。尚、ＩＥＥＥ１２８４Ｉ／Ｆプリンタでは、印字データとして処理を行うコンパチビリティモードと双方向通信の拡張機能（ニブルモード、バイトモードなど、ネゴシエーションフェーズも含む）モードとをサポートしている。
【特許文献１】特開平０４−１４０１８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
以上説明した従来のＩＥＥＥ１２８４Ｉ／Ｆプリンタのデータ受信部には以下に記す解決すべき課題が残されていた。
図１０は、従来技術における問題点を説明するタイムチャートである。
コンパチビリティモードとネゴシエーションモードでは、ホストから送信されるデータ（図中の印字データと拡張要求値）の目的が異なる。従って、目的の異なるデータ毎に分けて処理する必要がある。ところが、コンパチビリティモードからネゴシエーションモードに遷移するときに、コンパチビリティモードにおいてラッチされた（図中の信号遷移Ｓ１）印字データの処理が完了する前に、ネゴシエーションモードの拡張要求値をラッチすることが発生し得る（図中信号遷移Ｓ２）。かかる場合には、印字データが拡張要求値により上書きされてしまうので、データ抜けなどの不具合が発生する可能性が残されていた。
【課題を解決するための手段】
【００１０】
第一の発明は、上位装置と接続され、それぞれ処理目的のことなる、第一のデータが伝送される第一の伝送モードと第二のデータが伝送される第二の伝送モードとを有するデータ受信装置であって、上記第一の伝送モードと前記第二の伝送モードとを相互に切替えるモード切替部と、上記第一のデータ又は上記第二のデータの何れかを格納する第一のデータラッチ回路及び第二のデータラッチ回路と、所定の信号を受け入れると、上記第一のデータラッチ回路が格納するデータを上記第二のデータラッチ回路へシフトするデータシフト回路とを備え、一方の上記伝送モードで一方の上記データを上記第一のデータラッチ回路へ格納中に上記モード切替部が上記一方の伝送モードから他方の上記伝送モードへ切換えると、上記データシフト回路は、上記第一のデータラッチ回路が格納するデータを上記第二のデータラッチ回路へシフトすることを主要な特徴とする。
【００１１】
第二の発明は、上位装置と接続され、それぞれ処理目的のことなる、第一のデータが伝送される第一の伝送モードと第二のデータが伝送される第二の伝送モードとを有するデータ受信装置におけるデータ伝送方法であって、一方の伝送モードで一方のデータを受信中に、上記一方の伝送モードから他方の上記伝送モードへ切替ると、受け入れた一方のデータを所定のメモリに退避させ、上記他方のデータを受け入れることを主要な特徴とする。
【００１２】
第三の発明は、上位装置と接続され、それぞれ処理目的のことなる、第一のデータが伝送される第一の伝送モードと第二のデータが伝送される第二の伝送モードとを有するデータ受信装置であって、上記第一の伝送モード及び上記第二の伝送モードを相互に切替えるモード切替部と、ＦＩＦＯ機能及びスタック機能を有し、上記第一のデータ及び上記第二のデータをそれそれ異なるアドレス領域に格納するデータラッチバッファとを備え、上記データラッチバッファは、上記第一のデータ及び上記第二のデータの書き込み時には上記ＦＩＦＯ機能に基づいて読み込み順にデータを格納し、上記第一のデータ及び上記第二のデータの読出し時には、上記モード切替部の切換結果に対応し、上記ＦＩＦＯ機能及びスタック機能の何れかの機能に基づいてデータ読出しを実行することを主要な特徴とする。
【００１３】
第四の発明は、上記第一又は第三の発明に記載のデータ受信装置を有し、更に該データ受信装置の制御に従って受信した前記第一のデータ又は前記第二のデータを印刷する印刷部を含む画像形成装置であることを特徴とする。
【００１４】
第五の発明は、上位装置と接続され、それぞれ処理目的のことなる、第一のデータが伝送される第一の伝送モードと第二のデータが伝送される第二の伝送モードとを有するデータ受信装置におけるデータ伝送方法であって、上記第一のデータ及び上記第二のデータの書き込み時には上記ＦＩＦＯ機能に基づいて読み込み順にデータを格納し、上記第一のデータ及び上記第二のデータの読出し時には、上記モードに対応し、上記ＦＩＦＯ機能及びスタック機能の何れかの機能に基づいてデータ読出しを実行することを主要な特徴とする。
【発明の効果】
【００１５】
第一の発明及び第二の発明によれば、第一のデータラッチ回路及び第二のデータラッチ回路と、第一のデータラッチ回路が格納するデータを第二のデータラッチ回路へシフトするデータシフト回路とを備えるので、一方の伝送モードで一方のデータを第一のデータラッチ回路へ格納中に他方の伝送モードへ切換られても、一方のデータを消滅させることなく他方のデータを格納することが出来るという効果を得る。
【００１６】
第三の発明及び第五の発明によれば、データの書き込み時にはＦＩＦＯ機能に基づいて読み込み順にデータを格納し、データの読出し時には、ＦＩＦＯ機能及びスタック機能の何れかの機能に基づいてデータ読出し可能なデータラッチバッファを備えるので、一方の伝送モードで一方のデータをデータラッチバッファへ格納中に他方の伝送モードへ切換えられても、一方のデータを消滅させることなく他方のデータをデータラッチバッファへ格納することが出来るので一方のデータを消滅させることなく他方のデータを格納することが出来るという効果を得る。
【実施例１】
【００１７】
（構成）の説明
図１は、実施例１のＩＥＥＥ１２８４Ｉ／Ｆデータ受信部の機能ブロック図である。
図に示すようにＩＥＥＥ１２８４Ｉ／Ｆデータ受信部としての制御ＬＳＩ１００は、Ｓｔｒｏｂｅエッジ検出回路７２と、Ｓｔｒｏｂｅノイズ除去回路７３と、ＣＰＵＩ／Ｆ回路７４と、Ｂｕｓｙ信号制御回路７５と、データラッチ［１］回路７６と、データラッチ［２］回路７７と、モード検出回路７８と、シフトクロック生成回路７９と、セレクタ８０とを備える。
【００１８】
Ｓｔｒｏｂｅエッジ検出回路７２は、ホストコンピュータ８１から受け入れるＳｔｒｏｂｅ信号から立下りエッジを速やかに検出してトリガを出力する回路である。Ｓｔｒｏｂｅノイズ除去回路７３は、Ｓｔｒｏｂｅ信号にノイズがのり、微小な幅のパルスが発生することにより、エッジの誤動作を避けるために、システムクロックで数回サンプリングを行いサンプリング結果の多数決処理等によりノイズを除去する回路である。
【００１９】
ＣＰＵＩ／Ｆ回路７４は、制御ＬＳＩ１００と、ＣＰＵ７０、ＲＡＭ７１、及びＲＯＭ８２とのインタフェース回路である。Ｂｕｓｙ信号制御回路７５は、データラッチ［１］回路７６がデータラッチした際にホストコンピュータ８１にＢｕｓｙ信号を出力する回路である。
【００２０】
データラッチ［１］回路７６、及びデータラッチ［２］回路７７は、シフトレジスタの構成をとり、ホストコンピュータから受け入れる印字データや拡張要求値などのデータをそれぞれ１Ｂｙｔｅ分保持できるメモリである。これら両回路に保持されているデータはＣＰＵから任意にリード可能である。また、どちらの回路にデータが保持されているかについても、両回路から出力されるデータ有無情報信号（フラグ）により判断される。
【００２１】
モード検出回路７８は、コンパチビリティモードとネゴシエーションモードのそれぞれの状態を認識できるようにＡｕｔｏＦｅｅｄ信号とＳｅｌｅｃｔＩｎ信号の状態を監視する回路である。シフトクロック生成回路７９は、Ｓｔｒｏｂｅ信号のエッジ検出信号からシフトクロックを生成してデータラッチ［１］回路７６、及びデータラッチ［２］回路７７に送出し、ホストコンピュータ８１からのデータ受信と次段へのデータラッチへのデータ転送を行う回路である。セレクタ８０は、ＣＰＵＩ／Ｆ回路７４と、データラッチ［１］回路７６、及びデータラッチ［２］回路７７の何れか一方を接続する回路である。
尚、図１において８３は印刷部である。この印刷部８３はデータラッチ回路７６，７７から後述するようにシフトされる印字データに基づいて印刷処理を実行する。
【００２２】
図２は、実施例１のファームウェア制御処理構成ブロック図である。
この図は、プリンタのファームウェア制御処理ブロック構成を示す。電源投入により実行される初期化処理９０において、メモリ、モータ、ＬＥＤなどのデバイスの初期化を行う。初期化が完了するとホストコンピュータからのデータ受信可能状態となり、ホストインタフェース送受信処理９１に移行する。データを受信すると、受信データデコード及び展開制御処理９２にてそのデータのデコード処理を行う。デコード処理により、制御コマンドもしくは印字データの判定を行い、対応した処理を実行する。そして、図１に示す印刷部８３の印字ヘッドにインパクトするためのデータに展開する。尚、ホストインタフェース送受信処理９１の中にネゴシエーション処理９４が含まれている。本処理が含まれることにより、データ受信処理において、コンパチビリティモードでのデータ受信とネゴシエーションモードでのデータ受信を区別してファームウェアで行うことができる構成となっている。
【００２３】
展開されたデータは印字制御処理９３にて媒体にインパクトするための制御を行う。フィードモータ制御処理９５では媒体を搬送する制御を行う。印字ヘッド制御処理９６では展開した印字データを媒体にインパクトするための制御を行う。スペースモータ制御処理９７では、媒体の任意の位置に印字するために、印字ヘッドを移動するための制御を行う。
なお、本データ受信処理は一定の周期で実行しており、その周期は数百μｓから数百ｍｓである。
【００２４】
（動作）の説明
図３は、実施例１の制御プログラム処理フローチャートである。
このフローチャートは、データ受信の監視から、受信データ処理後のＢｕｓｙ信号オフまでの処理を表したものである。図１を併用しながらステップＳ１００からステップＳ１１４までステップ順に説明する。
【００２５】
ステップＳ１００
プリンタ側にてデータ受信の準備が完了すると、モード検出回路７８は、現在のモードがコンパチビリティモードなのか、ネゴシエーションモードなのかを判定する。ここでモード検出回路７８は、ｎＳｅｌｅｃｔ信号の変化（ＬｏｗからＨｉｇｈへ）とｎＡｕｔｏＦｄ信号変化（ＨｉｇｈからＬｏｗへ）の両方が発生することによりネゴシエーションモードのフラグを立て、ネゴシエーションモードであることを判定する。
【００２６】
ステップＳ１０１
現在のモードがネゴシエーションモードの場合はステップＳ１０２へ進み、そうでない場合（コンパチビリティモードの場合）は、ステップＳ１０９へ進む。
【００２７】
ステップＳ１０２
ＣＰＵ７０は、データ受信完了か否かの判断を行う。この場合はデータラッチ［１］回路７６とデータラッチ［２］回路７７の双方の状態（フラグ）を読む。ただし、本モードでの印字データ処理では、コンパチビリティモードで受信していたデータを処理できていない場合がある。よって最後に受信したデータを処理する必要があるため、データラッチ［２］回路７７から処理を行う。
【００２８】
ステップＳ１０３
データラッチ［２］回路７７が受信済の場合にはステップＳ１０４へ進み、そうでない場合にはステップＳ１０６へ進む。
【００２９】
ステップＳ１０４
ＣＰＵ７０は、データラッチ［２］回路７７からデータをリードする。
【００３０】
ステップＳ１０５
ＣＰＵ７０は、Ｂｕｓｙ信号制御回路７５を制御してＢｕｓｙ信号のオフ処理してフローを終了する。
【００３１】
ステップＳ１０６
データラッチ［１］回路７６が受信済の場合にはステップＳ１０７へ進み、そうでない場合にはフローを終了する。
【００３２】
ステップＳ１０７
ＣＰＵ７０は、データラッチ［１］回路７６からデータをリードする。
【００３３】
ステップＳ１０８
ＣＰＵ７０は、Ｂｕｓｙ信号制御回路７５を制御してＢｕｓｙ信号をオフ処理してフローを終了する。
【００３４】
ステップＳ１０９
コンパチビリティモードの条件では、データラッチ［１］回路７６がデータ受信完了か否かの判断を行う。この場合はデータラッチ［１］回路７６とデータラッチ［２］回路７７の双方の状態を読む。ただし、本モードでの印字データ処理では先に受信したデータを処理する必要があるので、データラッチ［１］回路７６から処理を行う。
【００３５】
ステップＳ１１０
ＣＰＵ７０は、データラッチ［１］回路７６からデータをリードする。
【００３６】
ステップＳ１１１
ＣＰＵ７０は、Ｂｕｓｙ信号制御回路７５を制御してＢｕｓｙ信号のオフ処理してフローを終了する。
【００３７】
ステップＳ１１２
データラッチ［２］回路７７が受信済の場合にはステップＳ１１３へ進み、そうでない場合にはフローを終了する。
【００３８】
ステップＳ１１３
ＣＰＵ７０は、データラッチ［２］回路７７からデータをリードする。
【００３９】
ステップＳ１１４
ＣＰＵ７０は、Ｂｕｓｙ信号制御回路７５を制御してＢｕｓｙ信号のオフ処理してフローを終了する。
【００４０】
図４は、実施例１のデータラッチ処理フローチャートである。
このフローチャートは、２Ｂｙｔｅ分のデータがデータラッチ［１］回路７６及びデータラッチ［２］回路７７に格納される動作を表したものである。図１を併用しながらステップＳ２００からステップＳ２０７までステップ順に説明する。
【００４１】
ステップＳ２００
ホストコンピュータ８１からコンパチビリティモードでＳｔｒｏｂｅ信号が制御ＬＳＩ１００へ出力されると（その立ち下がりが検出されると）データラッチ［１］回路７６及びデータラッチ［２］回路７７は動作を開始する。
【００４２】
ステップＳ２０１
データラッチ［１］回路７６にデータが、あるか否かが検出され、データラッチ［１］回路７６のフラグがＨ（ラッチデータ有り）のときはステップＳ２０２へ進み、Ｌ（ラッチデータ無し）のときはステップＳ２０６へ進む。
【００４３】
ステップＳ２０２
シフトクロック生成回路７９は、データラッチ［１］回路７６にラッチされているデータをデータラッチ［２］回路７７へシフトする。
【００４４】
ステップＳ２０３
データラッチ［２］回路７７のフラグがＨ（ラッチデータ有り）になり、データラッチ［２］回路７７のフラグがＬ（ラッチデータ無し）になる。
【００４５】
ステップＳ２０４
データラッチ［１］回路７６へ受信データが格納される。
【００４６】
ステップＳ２０５
データラッチ［１］回路７６のフラグがＨ（ラッチデータ有り）になり、フローを終了する。
【００４７】
ステップＳ２０６
データラッチ［１］回路７６へ受信データが格納される。
【００４８】
ステップＳ２０７
データラッチ［１］回路７６のフラグがＨ（ラッチデータ有り）になり、フローを終了する。
【００４９】
図５は、実施例１のデータ受信のタイムチャートである。
図の縦軸方向上から順番にｎＳｅｌｅｃｔＩｎ信号、Ｄａｔａ信号、ｎＡｕｔｏＦｄ信号、Ｓｔｒｏｂｅ信号、ｎＡｃｋ信号、Ｂｕｓｙ信号、データラッチ［１］回路のデータ内容、データラッチ［２］回路のデータ内容、ネゴシエーションモードフラグの状態、データラッチ［１］回路フラグの状態、データシフト［１］→［２］フラグの状態、データラッチ［２］回路フラグの状態、をそれぞれ表し、横軸方向は、項目に共通の時間経過を表している。
【００５０】
図１を併用しながら、図中各項目毎に、信号又は状態が時間経過に基づいてどのように遷移するかについて説明する。
コンパチビリティモードでホストコンピュータ８１からＳｔｒｏｂｅ信号が制御ＬＳＩ１００へ出力されると、信号遷移Ｓ３により、データラッチ［１］回路７６へ印字データの格納が開始される。同時にデータラッチ［１］回路７６のフラグがＨになる。
【００５１】
ホストコンピュータ８１から出力されている、ｎＳｅｌｅｃｔＩｎ信号がＨへ、ｎＡｕｔｏＦｄ信号がＬへ、それぞれ変化すると、信号遷移Ｓ４によりネゴシエーションモードフラグがＨになりネゴシエーションモードへ変化する。
【００５２】
ネゴシエーションモードでホストコンピュータ８１からＳｔｒｏｂｅ信号が制御ＬＳＩ１００へ出力されると、信号遷移Ｓ５により、データラッチ［１］回路７６へ拡張要求値の格納が開始される。このとき信号遷移Ｓ６によりデータラッチ［１］回路７６に格納されている印字データはデータラッチ［２］回路７７へシフトされる。図に示すようにネゴシエーションモードに入った後、印字データが実際にデータラッチ［２］回路７７へシフトされるまでにタイムラグがあるのは、印字データのシフトはＳｔｒｏｂｅ信号の立ち下がりが基準になっており、Ｓｔｒｏｂｅ信号の立ち下がりはｎＡＣＫ信号の立ち下がりが基準になっているからである。Ｓｔｒｏｂｅ信号の立ち上がりはＳｔｒｏｂｅ信号ｎパルス幅規定による。ここでは最小時間約０．５μＳｅｃである。
【００５３】
同時にデータシフト［１］→［２］フラグが所定の時間Ｈを維持し、しかる後Ｌに戻る。このデータシフト［１］→［２］フラグの変化に基づく信号遷移Ｓ７によりデータラッチ［２］回路７７のフラグがＨになる。以上の動作により、２Ｂｙｔｅ分のデータがデータラッチ［１］回路７６及びデータラッチ［２］回路７７に格納される。
【００５４】
（効果）の説明
以上説明したように本実施例によれば、コンパチビリティモードで受信していた未処理のデータがある場合においても、ネゴシエーションモードで送信された拡張要求値をラッチできるようになるため、前に受信したデータが消滅してしまうことがなくなるという効果を得る。また、ニブルモード、バイトモードからコンパチビリティモードに復帰したときも、未処理のデータから処理を続行できるためデータ保持のための特別な処理を設けることなくデータ受信を行うことができるという効果を得る。
【実施例２】
【００５５】
（構成）の説明
図６は、実施例２のＩＥＥＥ１２８４Ｉ／Ｆデータ受信部の機能ブロック図である。
図に示すようにＩＥＥＥ１２８４Ｉ／Ｆデータ受信部としての制御ＬＳＩ２００は、Ｓｔｒｏｂｅエッジ検出回路７２と、Ｓｔｒｏｂｅノイズ除去回路７３と、ＣＰＵＩ／Ｆ回路７４と、Ｂｕｓｙ信号制御回路７５と、モード検出回路７８と、データエンプティ検出回路２０５と、データフル検出回路２０６と、読み出しポインタ２０７と、書き込みポインタ２０８と、データラッチバッファ２１１とを備える。以下に実施例１と相違する部分のみについて詳細に説明する。実施例１と同様の部分については実施例１と同一の符号を付して説明を省略する。
【００５６】
データエンプティ検出回路２０５は、データラッチバッファ２１１にデータがフルに格納されているか否かを検出する回路である。データエンプティ検出回路２０５は、データラッチバッファ２１１に格納されているデータは０であるか否かを検出する回路である。
【００５７】
読み出しポインタ２０７は、データラッチバッファ２１１におけるＦＩＦＯ読出し位置を指定するポインタである。書き込みポインタ２０８は、データラッチバッファ２１１における書き込み位置を指定するポインタである。また、ネゴシエーションモードではスタック読出し位置を指定するポインタでもある。
【００５８】
データラッチバッファ２１１は、ＦＩＦＯとスタックの両方の構成をとることができる、数Ｂｙｔｅ分のデータ保持が可能なメモリである。その概要について説明する。
【００５９】
図７は、実施例２のデータラッチバッファの概要説明図である。
以下に、図に示すデータラッチバッファにおける（１）データラッチ、（２）ポインタ更新、（３）ネゴシエーションモードでのリード、（４）コンパチビリティモードでのリード、の各内容について順番に説明する。
【００６０】
（１）データラッチ
６Ｂｙｔｅ分データラッチできるデータラッチバッファの例を示す。このとき、データラッチバッファ２１１の最下段のエリアにはデータ［１］が格納されている。このデータがバッファに格納されている最も先に受信したデータである。このエリアアドレスを指し示すのが読み出しポインタ２０７である。また、次に受信するデータのエリアアドレスを指し示すのが書き込みポインタ２０８である。
【００６１】
（２）ポインタ更新
受信データをバッファ内部にラッチしたときの例を示す。書き込みポインタ２０８が指し示すアドレスに受信データを書き込む。このときに書き込みポインタは次の空きエリアのアドレスを指し示すためにポインタがインクリメントされる。
【００６２】
（３）ネゴシエーションモードでのリード
ネゴシエーションモードでのリードの例を示す。ネゴシエーションモードでは拡張要求値としてデータリード処理を行う。よって、コンパチビリティモードにて受信済みのデータをそのままにして拡張要求値のみ処理する必要がある。つまり、最後にラッチしたデータをリードすることになる。このとき、書き込みポインタ２０８はスタック読出しポインタとして動作する。スタック読み出しポインタをデクリメントした後にポインタが指し示すアドレスをリードする。この方法により拡張要求値のリードを行うことができる。
【００６３】
（４）コンパチビリティモードでのリード
コンパチビリティモードでのリードの例を示す。コンパチビリティモードの受信データとしてリードする場合は最初にラッチしたデータを処理しなくてはならない。よって、ＦＩＦＯ読み出しポインタの指し示すアドレスエリアをリードすることで、必要とするデータをリードすることができる。また、読み出した後に、読み出しポインタ２０７をインクリメントすることで次のデータ処理に対応することができる。
【００６４】
なおこのバッファはリング形式となっており、ポインタが最上位アドレスを超える場合は最下位アドレス値に更新される。
このように、３Ｂｙｔｅ以上のデータをラッチする構成とした場合についても上記のような方式にてコンパチビリティモードとネゴシエーションモードの双方で適切にデータリードすることができる。
【００６５】
また、前述のエンプティフラグにおいては、データラッチバッファ内に１Ｂｙｔｅも受信データが無い場合にはフラグをオンする。１Ｂｙｔｅ以上受信データをラッチしている場合にはフラグはオフとなる。
【００６６】
エンプティフラグにおいては、データラッチバッファ内の全てのエリアにラッチデータがある場合にフラグをオンする。これはバッファのオーバーフローを防止するためのフラグであり、このフラグがオンされる間はホストコンピュータに対してデータ送信の停止を要求する。（Ｂｕｓｙ信号をオンする）
尚、印刷部８３はデータラッチバッファ２１１からリードした印字データに基づいて印刷処理を実行する。
【００６７】
（動作）の説明
図８は、実施例２の制御プログラム処理フローチャートである。
このフローチャートは、複数Ｂｙｔｅ分のデータがデータラッチバッファ２１１に格納される動作を表したものである。図６、図７を併用しながらステップＳ３００からステップＳ３０６までステップ順に説明する。
【００６８】
ステップＳ３００
プリンタ側にてデータ受信の準備が完了すると本処理を実行する。まず、受信データ有無の判断が実行される。この場合データエンプティ検出回路２０５がエンプティフラグの状態をリードする。
【００６９】
ステップＳ３０１
データ無しの場合は本処理を終了する。データ有りの場合はステップＳ３０２へ進む。
【００７０】
ステップＳ３０２
モード検出回路７８は、現在のモードを検出する。
【００７１】
ステップＳ３０３
ネゴシエーションモードであった場合にはステップＳ３０４へ進み、コンパチビリティモードであった場合にはステップＳ３０７へ進む。
【００７２】
ステップＳ３０４
ネゴシエーションモードなので受信済みのデータをそのままにして拡張要求値のみ処理する必要がある。このとき、書き込みポインタ２０８（スタック読出しポインタとして動作する）をデクリメントする（図７（３））。最後にラッチされたデータ（図７（３）のＡＤＲ３）がリードされることになる。
【００７３】
ステップＳ３０５
データが読み出され、処理される。
【００７４】
ステップＳ３０６
Ｂｕｓｙ信号がオフされフローを終了する。
【００７５】
ステップＳ３０７
コンパチビリティモードなのでＦＩＦＯ読み出しポインタ２０７を指し示してステップＳ３０５へ進む。その後ステップＳ３０５でデータ［１］（図７の（４））がリードされ、処理され、ステップＳ３０６でＢｕｓｙ信号がオフされフローを終了する。
【００７６】
（効果）の説明
以上説明したように、コンパチビリティモードで受信していた未処理のデータがある場合においても、ネゴシエーションモードで送信された拡張要求値をラッチできるようになるため、前に受信したデータが消滅してしまうことが無くなるという効果を得る。また、ニブルモード、バイトモードからコンパチビリティモードに復帰したときも、未処理のデータから処理を続行できるためデータ保持のための特別な処理を設けることなくデータ受信を行うことができる。さらに、数Ｂｙｔｅ以上のデータを格納可能でかつ、ファーム処理についても読み出しポインタを参照するだけで受信データのリードが可能となり、処理構造を簡単にすることができるという効果を得る。
【産業上の利用可能性】
【００７７】
各実施例では、本発明をプリンタ装置に適用した例に限定して説明したが、本発明は、この例に限定されるものではない。即ち、印刷機能を有する機器、即ちファクシミリ機能やＭＦＰ（複合装置）等にも適用可能である。
【図面の簡単な説明】
【００７８】
【図１】ホストコンピュータと接続された実施例１のＩＥＥＥ１２８４Ｉ／Ｆデータ受信部を備えたプリンタ装置の機能ブロック図である。
【図２】実施例１のファームウェア制御処理構成ブロック図である。
【図３】実施例１の制御プログラム処理フローチャートである。
【図４】実施例１のデータラッチ処理フローチャートである。
【図５】実施例１のデータ受信のタイムチャートである。
【図６】ホストコンピュータと接続された実施例２のＩＥＥＥ１２８４Ｉ／Ｆデータ受信部を備えたプリンタ装置の機能ブロック図である。
【図７】実施例２のデータラッチバッファの概要説明図である。
【図８】実施例２の制御プログラム処理フローチャートである。
【図９】ホストコンピュータと接続された従来のＩＥＥＥ１２８４Ｉ／Ｆデータ受信部を備えたプリンタ装置の機能ブロック図である。
【図１０】従来技術における問題点を説明するタイムチャートである。
【符号の説明】
【００７９】
７０    ＣＰＵ
７１    ＲＡＭ
７２    Ｓｔｒｏｂｅエッジ検出回路
７３    Ｓｔｒｏｂｅノイズ除去回路
７４    ＣＰＵＩ／Ｆ回路
７５    Ｂｕｓｙ信号制御回路
７６    データラッチ［１］回路
７７    データラッチ［２］回路
７８    モード検出回路
７９    シフトクロック生成回路
８０    セレクタ
８１    ホストコンピュータ
８２    ＲＯＭ
１００    制御ＬＳＩ
【図１】
2009265992.tif 000003
【図２】
2009265992.tif 000004
【図３】
2009265992.tif 000005
【図４】
2009265992.tif 000006
【図５】
2009265992.tif 000007
【図６】
2009265992.tif 000008
【図７】
2009265992.tif 000009
【図８】
2009265992.tif 000010
【図９】
2009265992.tif 000011
【図１０】
2009265992.tif 000012