(57)【特許請求の範囲】
【請求項１】
受信開始時にデータ長が予測できないデータおよび残りデータ長を示すデータを含むフレームを受信し、記憶装置に転送するデータ受信装置であって、
残りデータ長を示すデータを転送するまで、前記フレームの最小データ長をＤＭＡ転送数としてＤＭＡ転送を実行し、
残りデータ長を示すデータの転送後は、前記残りデータ長を示すデータに基づいて算出される未転送データ長をＤＭＡ転送数としてＤＭＡ転送を実行する
ことを特徴とするデータ受信装置。
【請求項２】
受信開始時にデータ長が予測できないプリアンブル部とペイロード長を示すペイロード長情報と可変長のペイロードとを含んだフレームを受信するインタフェースと、
演算装置と、
記憶装置と、
前記インタフェースから前記記憶装置へのＤＭＡ転送を制御するＤＭＡコントローラと、を備え、
前記演算装置は、
前記フレームの前記プリアンブル部を除いた最小データ長をＤＭＡ転送数として設定し、プリアンブル部の転送が終了するまでＤＭＡ転送を繰り返し実行させ、
前記ＤＭＡ転送の終了後に、前記ペイロード長情報を転送済かどうかを判定し、転送済と判定した場合は、前記ペイロード長情報に基づいて前記フレームの未転送データ長を算出してＤＭＡ転送数として設定し、ＤＭＡ転送を実行させ、
未転送と判定した場合は、前記ペイロード長情報の最後部までの未転送データ長を算出してＤＭＡ転送数として設定し、ＤＭＡ転送を実行させ、このＤＭＡ転送終了後に、前記ペイロード長情報に基づいて前記フレームの未転送データ長を算出してＤＭＡ転送数として設定し、ＤＭＡ転送を実行させる
ことを特徴とするデータ受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ受信装置に係り、特に、受信開始時にデータ長が予測できない可変長データを効率的に受信するデータ受信装置に関する。
【背景技術】
【０００２】
図３は、従来のデータ送受信システムの構成を示すブロック図である。本図に示すようにデータ送受信システムは、データ送信装置１２０とデータ受信装置１１０とが通信線１３０を介して接続されて構成される。データ受信装置１１０は、非同期シリアルインタフェース１１１、演算装置１１２、ＤＭＡコントローラ１１３、記憶装置１１４を備えている。
【０００３】
本従来例において、データ送信装置１２０とデータ受信装置１１０との間におけるデータ伝送はフレーム単位で行なわれる。図４は、本従来例におけるフレームの構造を示す図である。フレームは、受信開始時にデータ長が予測できない可変長（以下「不定長」とも称す）であり、本図に示すように、フレームは、プリアンブル、開始信号、ユーザデータ長情報、ユーザデータ、終了信号を含んで構成される。
【０００４】
プリアンブルは、クロック同期等のためにフレームの先頭に付加された所定パターンのデータであり、長さ不定の可変長データである。このため、次のデータである開始信号を演算装置１１２が読み込むまで、プリアンブルの終了を認識することはできない。開始信号は、実質的なデータの開始位置を示す固定長データである。ユーザデータ長情報は、ユーザデータの長さを示す固定長データである。ユーザデータは、伝送データの本体部分(ペイロード）である可変長データである。ユーザデータのデータ長は、ユーザデータ長情報を演算装置１１２が読み込んだ時点で把握することができる。終了信号は、データの終了位置を示す固定長データである。
【０００５】
図３において、データ送信装置１２０は、通信線１３０を使用してデータ受信装置１１０に、フレームの内容をシリアルデータとして送信する。データ送信装置１２０の非同期シリアルインタフェース１１１は、データ送信装置１２０から受信したシリアルデータをパラレル変換する処理と、演算装置１１２に割込（Ｆ１１１１）を出力する処理と、ＤＭＡコントローラ１１３にデータ読込要求（Ｆ１１１３）を出力する処理とを行なう。ＤＭＡコントローラ１１３は、演算装置１１２を介さずに非同期シリアルインタフェース１１１から記憶装置１１４へのデータ転送（ＤＭＡ転送）を行なうためのコントローラである。なお、ＤＭＡ転送行なうためには、転送を行なうデータ長を設定する必要がある。このため、ＤＭＡ転送は、データ長の確定後に行なうようにする。
【０００６】
図４を参照して、従来の不定長フレームのデータ受信手順について説明する。データ送信装置１２０から、通信線１３０を介してデータが送信されると、データ受信装置１１０の非同期シリアルインタフェース１１１が、１Ｂｙｔｅ分のデータを受信する（Ｓ２０１）。非同期シリアルインタフェース１１１は、１Ｂｙｔｅ分のデータを受信すると、演算装置１１２に割込（Ｆ１１１１）を出力する（Ｓ２０２）。
【０００７】
演算装置１１２は、割込（Ｆ１１１１）を受け、非同期シリアルインタフェース１１１からデータを読み込む（Ｆ１１１２、Ｓ２０３）。読み込んだデータがプリンアンブルであれば（Ｓ２０４：Ｙｅｓ）、非同期シリアルインタフェース１１１が次の１Ｂｙｔｅを受信し（Ｓ２０１）、以降の処理を繰り返す。
【０００８】
読み込んだデータプリアンブル以外であれば（Ｓ２０４：Ｎｏ）、読み込んだデータを記憶装置１１４に書き込む（Ｆ１１２３、Ｓ２０５）。そして、書き込んだデータがユーザデータ長情報以外であれば（Ｓ２０６：Ｎｏ）、非同期シリアルインタフェース１１１が次の１Ｂｙｔｅを受信し（Ｓ２０１）、以降の処理を繰り返す。
【０００９】
一方、書き込んだデータがユーザデータ長情報であれば（Ｓ２０６：Ｙｅｓ）、演算装置１１２は、その情報からＤＭＡ転送数を算出する（Ｓ２０７）。そして、算出したＤＭＡ転送数を、非同期シリアルインタフェース１１１（Ｆ１１２１）およびＤＭＡコントローラ１１３（Ｆ１１２２）に対して設定する（Ｓ２０８）。
【００１０】
この設定にしたがって非同期シリアルインタフェース１１１から記憶装置１１４へのＤＭＡ転送を実行する（Ｆ１１１３、Ｆ１１１４、Ｆ１１３２、Ｓ２０９）。ＤＭＡ転送が終了すると、ＤＭＡコントローラ１１３が演算装置１１２に割込（Ｆ１１３１）を出力する（Ｓ２１０）。演算装置１１２は、割込（Ｆ１１３１）を受け、記憶装置１１４からデータを読み込み（Ｆ１１４１、Ｓ２１１）、ユーザデータに応じた動作を行なう。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００９−６０２４９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
このように、従来のデータ受信装置１１０は、不定長フレームのデータ受信の際に、ユーザデータ長情報を読み込んで、転送するデータ長が確定するまではＤＭＡ転送を行なわないため、１Ｂｙｔｅ受信ごとに割込が発生し、その都度演算処理装置がデータを読み込む処理を行なう。このため、データ受信の効率が低下するとともに、演算処理装置の本来の処理に影響を及ぼしてしまうという問題がある。
【００１３】
一方で、不定長フレームに対して適当なＤＭＡ転送数を設定して、ＤＭＡ転送を行なおうとすると、例えば、ＤＭＡ転送数に満たない状態でフレームが終了した場合に、ＤＭＡ転送を自動的に終了させることが困難となる。
【００１４】
そこで、本発明は、受信開始時にデータ長が予測できない可変長データを含むフレームの受信を行なうデータ受信装置において、データ受信の効率を高め、演算装置の負荷を軽減することを目的とする。
【課題を解決するための手段】
【００１５】
上記課題を解決するため、本発明の第１の態様は、受信開始時にデータ長が予測できないデータおよび残りデータ長を示すデータを含むフレームを受信し、記憶装置に転送するデータ受信装置であって、残りデータ長を示すデータを転送するまで、前記フレームの最小データ長をＤＭＡ転送数としてＤＭＡ転送を実行し、残りデータ長を示すデータの転送後は、前記残りデータ長を示すデータに基づいて算出される未転送データ長をＤＭＡ転送数としてＤＭＡ転送を実行することを特徴とする。
【００１６】
上記課題を解決するため、本発明の第２の態様は、受信開始時にデータ長が予測できないプリアンブル部とペイロード長を示すペイロード長情報と可変長のペイロードとを含んだフレームを受信するインタフェースと、演算装置と、記憶装置と、前記インタフェースから前記記憶装置へのＤＭＡ転送を制御するＤＭＡコントローラと、を備えたデータ受信装置であって、前記演算装置は、前記フレームの前記プリアンブル部を除いた最小データ長をＤＭＡ転送数として設定し、プリアンブル部の転送が終了するまでＤＭＡ転送を繰り返し実行させ、前記ＤＭＡ転送の終了後に、前記ペイロード長情報を転送済かどうかを判定し、転送済と判定した場合は、前記ペイロード長情報に基づいて前記フレームの未転送データ長を算出してＤＭＡ転送数として設定し、ＤＭＡ転送を実行させ、未転送と判定した場合は、前記ペイロード長情報の最後部までの未転送データ長を算出してＤＭＡ転送数として設定し、ＤＭＡ転送を実行させ、このＤＭＡ転送終了後に、前記ペイロード長情報に基づいて前記フレームの未転送データ長を算出してＤＭＡ転送数として設定し、ＤＭＡ転送を実行させることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、受信開始時にデータ長が予測できない可変長データを含むフレームの受信を行なうデータ受信装置において、データ受信の効率を高め、演算装置の負荷を軽減することができる。
【図面の簡単な説明】
【００１８】
【図１】本実施形態のデータ送受信システムの構成を示すブロック図である。
【図２】本実施形態の不定長フレームのデータ受信手順を説明するフローチャートである。
【図３】従来のデータ送受信システムの構成を示すブロック図である。
【図４】伝送データのフレーム構造を示す図である。
【図５】従来の不定長フレームのデータ受信手順を説明するフローチャートである。
【発明を実施するための形態】
【００１９】
本発明の実施の形態について図面を参照して説明する。図１は、本実施形態に係るデータ送受信システムの構成を示すブロック図である。本図に示すようにデータ送受信システムは、データ送信装置２０とデータ受信装置１０とが通信線３０を介して接続されて構成される。データ受信装置１０は、非同期シリアルインタフェース１１、演算装置１２、ＤＭＡコントローラ１３、記憶装置１４を備えている。
【００２０】
このように、本実施形態のデータ送受信システムは、ハードウェア的には、従来のデータ送受信システムと同様の構成とすることができ、演算装置１２のアルゴリズムを変更することで容易に実現することができる。
【００２１】
データ受信装置１０は、例えば、フィールド機器とすることができる。この場合、通信線３０は、例えば、４−２０ｍＡ通信線とすることができる。ただし、データ受信装置１０は、フィールド機器に限られず、データ長が不定のデータ受信を行なう種々の装置に適用することができる。
【００２２】
本実施形態において、データ送信装置２０とデータ受信装置１０との間におけるデータ伝送はフレーム単位で行なわれる。フレーム構造は、図４に示した従来の構造と同様とすることができる。すなわち、フレームは、可変長のプリアンブル、固定長の開始信号、固定長のユーザデータ長情報、可変長のユーザデータ、固定長の終了信号を含んで構成される。ここで、ユーザデータはペイロードに相当し、ユーザデータ長情報は、ペイロード長情報に相当する。ただし、フレームの構造は、図４に示した構造に限られず、例えば、開始信号とユーザデータ長情報との間に、固定長の他のデータが含まれていてもよい。
【００２３】
図１において、データ送信装置２０は、通信線３０を使用してデータ受信装置１０に、フレームの内容をシリアルデータとして送信する。非同期シリアルインタフェース１１は、データ送信装置２０から受信したシリアルデータをパラレル変換する処理と、演算装置１２に割込（Ｆ１１１）を出力する処理と、ＤＭＡコントローラ１３にデータ読込要求（Ｆ１１３）を出力する処理とを行なう。
【００２４】
ＤＭＡコントローラ１３は、演算装置１２を介さずに非同期シリアルインタフェース１１から記憶装置１４へのデータ転送（ＤＭＡ転送）を行なうためのコントローラである。
【００２５】
図２を参照して、本実施形態の不定長フレームのデータ受信手順について説明する。本実施形態では、プリアンブルの受信時点からＤＭＡ転送を行なうことで、演算装置１２に対する割込の発生回数を減少させるようにする。
【００２６】
データ送信装置２０から、通信線３０を介してデータが送信されると、データ受信装置１０の演算装置１２は、プリアンブル部分を除いたフレームの最小データ長をＤＭＡ転送数として非同期シリアルインタフェース１１およびＤＭＡコントローラ１３に対して設定する（Ｆ１２１、Ｆ１２２、Ｓ１０１）。なお、この設定は、あらかじめ行なうようにしてもよい。
【００２７】
ここで、プリアンブル部分を除いたフレームの最小データ長は、例えば、開始信号、ユーザデータ長情報、終了信号がそれぞれ１Ｂｙｔｅの固定長であれば、ユーザデータが０Ｂｙｔｅの場合を考慮して、３Ｂｙｔｅとすることができる。フレームに他の固定長データが含まれる場合には、そのデータ長も含めるものとする。
【００２８】
ＤＭＡ転送数を、プリアンブル部分を除いたフレームの最小データ長とするのは、以下の理由による。すなわち、例えば、ＤＭＡ転送数を大きく設定し過ぎると、１フレーム分の全データの受信が完了しているにもかかわらず、受信データ数がＤＭＡ転送数に達せず、ＤＭＡ転送が自動的には終了しないといった事態が発生する場合がある。逆に、ＤＭＡ転送数を小さく設定し過ぎると、演算装置１２への割込が多く発生して効率が低下する。
【００２９】
これに対し、ＤＭＡ転送数を、プリアンブル部分を除いたフレームの最小データ長とすることにより、仮に、プリアンブルの個数が０で、ユーザデータの長さが０であっても、ＤＭＡ転送が自動的に終了しないという事態を回避することができ、しかも、演算装置１２への割込を少なくすることができるからである。
【００３０】
この設定にしたがって非同期シリアルインタフェース１１から記憶装置１４へのＤＭＡ転送を実行する（Ｆ１１３、Ｆ１１４、Ｆ１３２、Ｓ１０２）。ＤＭＡ転送が終了すると、ＤＭＡコントローラ１３が演算装置１２に割込（Ｆ１３１）を出力する（Ｓ１０３）。
【００３１】
演算装置１２は、割込（Ｆ１３１）を受け、記憶装置１４からデータを読み込む（Ｆ１４１、Ｓ１０４）。読み込んだデータの最後部がプリンアンブルであれば（Ｓ１０５：Ｙｅｓ）、再度ＤＭＡ転送を実行し（Ｓ１０２）、以降の処理を繰り返す。このときも、ＤＭＡ転送数を、プリアンブル部分を除いたフレームの最小データ長とする。
【００３２】
読み込んだデータの最後部がプリンアンブルでなければ（Ｓ１０５：Ｎｏ）、読み込んだデータの残り部分を確認し（Ｓ１０６）、ユーザデータ長情報を転送済かどうかを判定する（Ｓ１０７）。
【００３３】
その結果、ユーザデータ長情報を転送済であれば（Ｓ１０７：Ｙｅｓ）、ユーザデータ長情報が示すユーザデータの長さと、転送済のユーザデータの長さとから、転送済のデータの次から終了信号までのデータ数、すなわち未転送分のデータ数を算出し、ＤＭＡ転送数として非同期シリアルインタフェース１１およびＤＭＡコントローラ１３に対して設定する（Ｆ１２１、Ｆ１２２、Ｓ１０８）。
【００３４】
この設定にしたがって非同期シリアルインタフェース１１から記憶装置１４へのＤＭＡ転送を実行する（Ｆ１１３、Ｆ１１４、Ｆ１３２、Ｓ１０９）。ＤＭＡ転送が終了すると、ＤＭＡコントローラ１３が演算装置１２に割込（Ｆ１３１）を出力する（Ｓ１１０）。
【００３５】
演算装置１２は、割込（Ｆ１３１）を受け、記憶装置１４からデータを読み込んで（Ｆ１４１、Ｓ１１１）、ユーザデータに応じた動作を行なう。
【００３６】
一方、ユーザデータ長情報を転送済かどうかを判定した結果、ユーザデータ長情報を転送済でなければ（Ｓ１０７：Ｎｏ）、転送済のデータの次からユーザデータ長情報の終わりまでのデータ数を算出し、ＤＭＡ転送数として非同期シリアルインタフェース１１およびＤＭＡコントローラ１３に対して設定する（Ｆ１２１、Ｆ１２２、Ｓ１１２）。ここで、開始信号からユーザデータ長情報までは固定長データであるため、転送済のデータの次からユーザデータ長情報の終わりまでのデータ数は容易に算出することができる。
【００３７】
この設定にしたがって非同期シリアルインタフェース１１から記憶装置１４へのＤＭＡ転送を実行する（Ｆ１１３、Ｆ１１４、Ｆ１３２、Ｓ１１３）。このＤＭＡ転送によって、ユーザデータ長情報までが記憶装置１４に転送されることになる。ＤＭＡ転送が終了すると、ＤＭＡコントローラ１３が演算装置１２に割込（Ｆ１３１）を出力する（Ｓ１１５）。
【００３８】
演算装置１２は、割込（Ｆ１３１）を受け、記憶装置１４からデータを読み込む（Ｆ１４１、Ｓ１１５）。このデータの最後部にはユーザデータ長情報が含まれており、演算装置１２は、その情報からＤＭＡ転送数を算出する（Ｓ１１６）。そして、算出したＤＭＡ転送数を、非同期シリアルインタフェース１１およびＤＭＡコントローラ１３に対して設定する（Ｆ１２１，Ｆ１２２、Ｓ１１７）。
【００３９】
この設定にしたがって、非同期シリアルインタフェース１１から記憶装置１４へのＤＭＡ転送を実行する（Ｆ１１３、Ｆ１１４、Ｆ１３２、Ｓ１１８）。ＤＭＡ転送が終了すると、ＤＭＡコントローラ１３が演算装置１２に割込（Ｆ１３１）を出力する（Ｓ１１９）。演算装置１２は、割込（Ｆ１３１）を受け、記憶装置１４からデータを読み込み（Ｆ１４１、Ｓ１２０）、ユーザデータに応じた動作を行なう。
【００４０】
以上説明したように、本実施形態によれば、従来のデータ受信装置において不定長フレームのデータ受信の際に発生していた演算装置への割込回数を、ハードウェア構成を変えることなく、「約１／プリアンブルを除いたフレームの最小データ長」とすることができ、データ受信の効率を高めるとともに、演算装置の本来の処理への影響を軽減することができる。
【符号の説明】
【００４１】
１０…データ受信装置
１１…非同期シリアルインタフェース
１２…演算装置
１３…ＤＭＡコントローラ
１４…記憶装置
２０…データ送信装置
３０…通信線
１１０…データ受信装置
１１１…非同期シリアルインタフェース
１１２…演算装置
１１３…ＤＭＡコントローラ
１１４…記憶装置
１２０…データ送信装置
１３０…通信線
【図１】
0005598715.tif 000002
【図２】
0005598715.tif 000003
【図３】
0005598715.tif 000004
【図４】
0005598715.tif 000005
【図５】
0005598715.tif 000006