(57)【要約】【課題】特定の通信チャネルに通信負荷が集中するような場合でも、比較的小さい記憶容量の受信バッファで高い信頼性を得る。【解決手段】通信処理回路１１に、複数の通信チャネルを介してデータを受信する通信制御回路１２と、複数の記憶領域を有し、通信制御回路１２で受信した受信データを記憶領域で一時保存する受信バッファ１３とを備え、通信制御回路１２が、通信チャネルの受信データを保存するためのデータ保存領域１３Ｓとして、通信チャネルでのデータ受信状況に応じて記憶領域の一部からなる浮動保存領域１３Ｙを通信チャネルごとに動的に割り当てる。【選択図】  図１
2018129699.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信チャネルを介してデータを受信する通信制御回路と、
前記通信制御回路で受信した受信データを一時保存する受信バッファとを備え、
前記通信制御回路は、前記通信チャネルの受信データを前記受信バッファに一時保存する際、前記受信バッファが有する複数の記憶領域から前記通信チャネルでのデータ受信状況に応じた数の記憶領域を選択し、前記通信チャネルの受信データを保存するためのデータ保存領域として前記通信チャネルごとに動的に割り当てる
ことを特徴とする通信処理回路。
【請求項２】
請求項１に記載の通信処理回路において、
前記通信制御回路は、前記受信バッファが有する前記複数の記憶領域を、第１の記憶領域と第２の記憶領域とに分割し、前記第１の記憶領域から前記通信チャネルごとに設定されている数の記憶領域を選択して前記通信チャネルの前記データ保存領域の一部として予め固定的に割り当てておき、前記受信データを前記受信バッファに一時保存する際、前記第２の記憶領域から前記通信チャネルでのデータ受信状況に応じた数の記憶領域を選択して前記通信チャネルの前記データ保存領域の一部として動的に割り当てる
ことを特徴とする通信処理回路。
【請求項３】
請求項１または請求項２に記載の通信処理回路により複数の通信チャネルを介してデータを送受信するデータ通信装置。
【請求項４】
通信制御回路が、複数の通信チャネルを介してデータを受信する通信制御ステップと、
受信バッファが、前記通信制御回路で受信した受信データを一時保存する受信データ保存ステップとを備え、
前記通信制御ステップは、前記通信チャネルの受信データを前記受信バッファに一時保存する際、前記受信バッファが有する複数の記憶領域から前記通信チャネルでのデータ受信状況に応じた数の記憶領域を選択し、前記通信チャネルの受信データを保存するためのデータ保存領域として前記通信チャネルごとに動的に割り当てる動的割当ステップを有する
ことを特徴とする受信データバッファリング方法。
【請求項５】
請求項４に記載の受信データバッファリング方法において、
前記通信制御ステップは、
前記受信バッファが有する前記複数の記憶領域を、第１の記憶領域と第２の記憶領域とに分割するステップと、
前記第１の記憶領域から前記通信チャネルごとに設定されている数の記憶領域を選択して前記通信チャネルの前記データ保存領域の一部として予め固定的に割り当てる固定割当ステップとをさらに備え、
前記動的割当ステップは、前記受信データを前記受信バッファに一時保存する際、前記第２の記憶領域から前記通信チャネルでのデータ受信状況に応じた数の記憶領域を選択して前記通信チャネルの前記データ保存領域の一部として動的に割り当てるステップを有する
ことを特徴とする受信データバッファリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信データを受信バッファに一時保存するための受信データバッファリング技術に関する。
【背景技術】
【０００２】
プラント、ビル、工場などの大規模施設では、各種の設備機器との間でデータ通信を行うことにより、これら設備機器を管理するシステムである。このような管理システムでは、各設備機器から不定期でデータが送信されるため、産業用コントローラなどのデータ通信装置は、これらデータを取りこぼさないように、設備機器からデータが送信された場合、直ちにデータの受信処理を行う必要がある。しかし、データ通信装置では、通常、データ通信以外にも多数のソフトウェア処理を並行して実行しているため、データ受信処理を直ちに実行できない場合もある。
【０００３】
従来、このような問題点を解決するため、データ通信装置の通信処理回路に受信バッファを設けて、設備機器からのデータをハードウェア処理により一時的に受信バッファでバッファリングしておく技術が提案されている（例えば、特許文献１など参照）。これにより、直ちにデータの受信処理を行えない場合でも、受信バッファにデータがバッファリングされるため、データの取りこぼしを回避することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−１７８４７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このような従来技術によれば、受信バッファの記憶容量が大きいほど、多くの受信データをバッファリングすることができるため、設備機器とのデータ通信に関する信頼性を向上させることができる。また、配下に多数の設備機器が接続される場合には、１つのデータ通信装置に複数の通信チャネルを備えることになる。
【０００６】
したがって、複数の通信チャネルを持つデータ通信装置において高い信頼性を得るためには、通信チャネルごとに記憶容量の大きな受信バッファを設ける必要があるため、受信バッファを構成する半導体メモリが大型化して、製品コストが上昇するという問題点があった。また、各受信バッファは通信チャネルごとに専用となるため、特定の通信チャネルにだけ通信負荷が集中するような場合でも、他の通信チャネルの受信バッファを利用できず、受信データの取りこぼしが発生する恐れもあった。
【０００７】
本発明はこのような課題を解決するためのものであり、特定の通信チャネルに通信負荷が集中するような場合でも、比較的小さい記憶容量の受信バッファで高い信頼性が得られる受信データバッファリング技術を提供することを目的としている。
【課題を解決するための手段】
【０００８】
このような目的を達成するために、本発明にかかる通信処理回路は、複数の通信チャネルを介してデータを受信する通信制御回路と、前記通信制御回路で受信した受信データを一時保存する受信バッファとを備え、前記通信制御回路は、前記通信チャネルの受信データを前記受信バッファに一時保存する際、前記受信バッファが有する複数の記憶領域から前記通信チャネルでのデータ受信状況に応じた数の記憶領域を選択し、前記通信チャネルの受信データを保存するためのデータ保存領域として前記通信チャネルごとに動的に割り当てるようにしたものである。
【０００９】
また、本発明にかかる上記通信処理回路の一構成例は、前記通信制御回路が、前記受信バッファが有する前記複数の記憶領域を、第１の記憶領域と第２の記憶領域とに分割し、前記第１の記憶領域から前記通信チャネルごとに設定されている数の記憶領域を選択して前記通信チャネルの前記データ保存領域の一部として予め固定的に割り当てておき、前記受信データを前記受信バッファに一時保存する際、前記第２の記憶領域から前記通信チャネルでのデータ受信状況に応じた数の記憶領域を選択して前記通信チャネルの前記データ保存領域の一部として動的に割り当てるようにしたものである。
【００１０】
また、本発明にかかるデータ通信装置は、前述したいずれかの通信処理回路により複数の通信チャネルを介してデータを送受信するデータ通信装置である。
【００１１】
また、本発明にかかる受信データバッファリング方法は、通信制御回路が、複数の通信チャネルを介してデータを受信する通信制御ステップと、受信バッファが、前記通信制御回路で受信した受信データを一時保存する受信データ保存ステップとを備え、前記通信制御ステップは、前記通信チャネルの受信データを前記受信バッファに一時保存する際、前記受信バッファが有する複数の記憶領域から前記通信チャネルでのデータ受信状況に応じた数の記憶領域を選択し、前記通信チャネルの受信データを保存するためのデータ保存領域として前記通信チャネルごとに動的に割り当てる動的割当ステップを有するものである。
【００１２】
また、本発明にかかる上記受信データバッファリング方法の一構成例は、前記通信制御ステップが、前記受信バッファが有する前記複数の記憶領域を、第１の記憶領域と第２の記憶領域とに分割するステップと、前記第１の記憶領域から前記通信チャネルごとに設定されている数の記憶領域を選択して前記通信チャネルの前記データ保存領域の一部として予め固定的に割り当てる固定割当ステップとをさらに備え、前記動的割当ステップは、前記受信データを前記受信バッファに一時保存する際、前記第２の記憶領域から前記通信チャネルでのデータ受信状況に応じた数の記憶領域を選択して前記通信チャネルの前記データ保存領域の一部として動的に割り当てるステップを有するものである。
【発明の効果】
【００１３】
本発明によれば、各通信チャネルに対して記憶領域を固定的に割り当てる場合と比較して、受信バッファのうち未使用の記憶領域を各通信チャネルで融通することができ、受信バッファの記憶領域を効率よく使用することが可能となる。これにより、特定の通信チャネルに通信負荷が集中したような場合でも、受信データの取りこぼしを抑制でき、比較的小さい記憶容量の受信バッファで、高い信頼性を得ることが可能となる。
【図面の簡単な説明】
【００１４】
【図１】データ通信装置の構成を示すブロック図である。
【図２】受信バッファ記憶領域の動的割当例である。
【図３】受信バッファ記憶領域の固定割当例である。
【図４】受信データ保存処理を示すフローチャートである。
【図５】受信データ読出処理を示すフローチャートである。
【発明を実施するための形態】
【００１５】
次に、本発明の一実施の形態について図面を参照して説明する。
［データ通信装置］
まず、図１を参照して、本実施の形態にかかるデータ通信装置１０について説明する。図１は、データ通信装置の構成を示すブロック図である。
このデータ通信装置１０は、例えば、プラント、ビル、工場などの大規模施設の管理システムで用いられる産業用コントローラなど、複数の通信チャネルを介してデータ通信を行う装置である。
【００１６】
データ通信装置１０には主な回路部として、通信処理回路１１とデータ処理回路１４とが設けられている。
通信処理回路１１は、全体としてＦＰＧＡ（Field-Programmable Gate Array）などの集積回路からなり、複数の通信チャネルを介してデータを受信する通信制御回路１２と、複数の記憶領域を有し、通信制御回路１２で受信した受信データを記憶領域で一時保存する受信バッファ１３とを備えている。
【００１７】
データ処理回路１４は、ＣＰＵなどの演算処理回路からなり、通信処理回路１１の受信バッファ１３から任意の通信チャネルに関する受信データを読み出して演算処理する機能と、演算処理して得られた任意の通信チャネルに関する送信データを通信処理回路１１から送信する機能とを有している。
【００１８】
［通信処理回路］
次に、図１を参照して、本実施の形態にかかる通信処理回路１１について詳細に説明する。以下では、通信処理回路１１がＣＨ１，ＣＨ２，ＣＨ３，ＣＨ４からなる４つの通信チャネルを介してデータを送受信する場合を例として説明するが、チャネル数について４に限定されるものではなく、２以上であれば本実施の形態と同様の作用効果が得られる。
【００１９】
受信バッファ１３は、例えばＦＰＧＡの内部メモリ、あるいはＦＰＧＡに外部接続されたデュアルポートの半導体メモリ（ＲＡＭ）からなり、予めアドレスごとに一定のバイト数を持つ複数の記憶領域が設けられている。また、受信バッファ１３には、通信制御回路１２からの制御信号に応じて記憶領域の一部が選択されることにより、通信チャネルＣＨｎ（ｎ＝１〜４の整数）ごとに、通信制御回路１２で受信した受信データを一時保存するためのデータ保存領域１３Ｓが設けられる。
【００２０】
通信制御回路１２は、受信バッファ１３が有する複数の記憶領域を、予め設定されている分割情報に基づいて、固定記憶領域（第１の記憶領域）１３Ａと浮動記憶領域（第２の記憶領域）１３Ｂとに分割する機能と、固定記憶領域１３Ａから通信チャネルＣＨｎごとに予め設定されている数の記憶領域を選択して、通信チャネルＣＨｎのデータ保存領域の一部、すなわち固定保存領域１３Ｘとして予め固定的に割り当てる機能と、受信データを受信バッファ１３に一時保存する際、浮動記憶領域１３Ｂから通信チャネルＣＨｎでのデータ受信状況に応じた数の記憶領域を選択して通信チャネルＣＨｎのデータ保存領域の一部、すなわち浮動保存領域１３Ｙとして動的に割り当てる機能とを有している。
【００２１】
これにより、通信チャネルＣＨｎのデータ保存領域は、固定数の記憶領域からなる固定保存領域１３Ｘと、通信チャネルＣＨｎでのデータ受信状況に応じて変化する数の記憶領域からなる浮動保存領域１３Ｙとから構成されることになる。
なお、固定記憶領域１３Ａを設けず、受信バッファ１３のすべての記憶領域を浮動記憶領域１３Ｂとしてもよい。この場合、各通信チャネルのデータ保存領域は、すべて浮動保存領域１３Ｙとなる。
【００２２】
図２は、受信バッファ記憶領域の動的割当例である。ここでは、記憶領域として、Ｍ１−１からＭ１０−１０まで１００個の記憶領域が受信バッファ１３に設けられているものとし、このうち、Ｍ１−１からＭ４−１０までの４０個の記憶領域が固定記憶領域１３Ａとして設定されており、Ｍ５−１からＭ１０−１０までの６０個の記憶領域が浮動記憶領域１３Ｂとして設定されている。
【００２３】
ここでは、４つの通信チャネルＣＨ１〜ＣＨ４に対して固定記憶領域１３Ａが均等に分割されて割り当てるものとし、通信チャネルＣＨ１〜ＣＨ４のデータ保存領域１３Ｓに対してそれぞれ１０個ずつ、記憶領域Ｍ１−１〜Ｍ１−１０，Ｍ２−１〜Ｍ２−１０，Ｍ３−１〜Ｍ３−１０，Ｍ４−１〜Ｍ４−１０が固定保存領域１３Ｘとして割り当てられている。固定保存領域１３Ｘについては、通信チャネルＣＨ１〜ＣＨ４間で均等でなくてもよく、受信データの頻度やサイズに応じて任意に設定しておけばよい。
【００２４】
また、図２の例では、ある時点における通信チャネルＣＨ１〜ＣＨ４のデータ受信状況に基づいて、浮動記憶領域１３Ｂの一部が浮動保存領域１３Ｙとしてデータ保存領域１３Ｓに割り当てられている。具体的には、ＣＨ１に対して３つの記憶領域Ｍ５−１〜Ｍ５−３が浮動保存領域１３Ｙとして割り当てられており、ＣＨ２に対して４つの記憶領域Ｍ５−４〜Ｍ５−７が浮動保存領域１３Ｙとして割り当てられている。また、ＣＨ３に対して３つの記憶領域Ｍ５−８〜Ｍ５−１０が浮動保存領域１３Ｙとして割り当てられており、ＣＨ４に対して２つの記憶領域Ｍ６−１〜Ｍ６−２が浮動保存領域１３Ｙとして割り当てられている。
【００２５】
これにより、受信バッファ１３のうち未使用の記憶領域を各通信チャネルで融通することができ、１つの通信チャネルにおいて、最大で７０個の記憶領域を用いることができる。したがって、特定の通信チャネルに通信負荷が集中したような場合でも、受信データの取りこぼしを抑制でき、比較的小さい記憶容量の受信バッファ１３で、高い信頼性を得ることが可能となる。
【００２６】
図３は、受信バッファ記憶領域の固定割当例である。ここでは、記憶領域として、図２と同様にＭ１−１からＭ１０−１０まで１００個の記憶領域が受信バッファに設けられているものとし、これらが４等分されて、通信チャネルＣＨ１〜ＣＨ４に対してそれぞれ２５個ずつ、記憶領域Ｍ１−１〜Ｍ３−５，Ｍ３−６〜Ｍ５−１０，Ｍ６−１〜Ｍ８−５，Ｍ８−６〜Ｍ１０−１０が固定保存領域として割り当てられている。
【００２７】
この場合には、任意の通信チャネルのデータ保存領域で記憶容量が足りなくなった場合には、未使用の記憶領域を融通することができず、受信データの取りこぼしが発生することになる。したがって、図２と同様の性能を得るためには、通信チャネルごとに７０個の記憶領域を用意しておく必要があり、受信バッファ全体で２８０個の記憶領域が必要となる。
【００２８】
［本実施の形態の動作］
次に、本実施の形態にかかる通信処理回路１１の動作について、受信データの保存処理と読出処理とについてそれぞれ説明する。
【００２９】
［受信データ保存処理］
まず、図４を参照して、本実施の形態にかかる通信処理回路１１での[受信データ保存処理について説明する。図４は、受信データ保存処理を示すフローチャートである。
通信制御回路１２は、任意の通信チャネルＣＨｎでのデータ（パケット）受信に応じて、図４の受信データ保存処理を実行する。
【００３０】
通信制御回路１２は、まず、任意の通信チャネルＣＨｎからデータを受信し（ステップ１００）、得られた受信データについてＣＲＣ（Cyclic Redundancy Check）などのエラーチェックを行う（ステップ１０１）。この際、エラーが確認された場合、再送などのエラー制御を実行する。
一方、正常受信が確認された場合、通信制御回路１２は、受信データのデータサイズに基づいて、受信バッファ１３内に、受信データを一時保存するためのＣＨｎのデータ保存領域１３Ｓを設定し（ステップ１０２）、設定したデータ保存領域１３Ｓに受信データを保存し（ステップ１０３）、一連の受信データ保存処理を終了する。
【００３１】
この際、通信制御回路１２は、まず、受信データのデータサイズＤｒと予めＣＨｎに割り当てられている固定保存領域１３Ｘからなる記憶容量Ｄｘとを比較することにより、受信データの可否を確認する。ここで、Ｄｒ≦Ｄｘであり保存できる場合には、ＣＨｎのデータ保存領域１３Ｓとして、浮動保存領域１３Ｙの動的割り当ては行わない。一方、Ｄｒ＞Ｄｘであり保存できない場合には、例えば不足分Ｄｙ＝Ｄｒ−Ｄｘの記憶領域を、ＣＨｎのデータ保存領域１３Ｓとして浮動保存領域１３Ｙを動的に割り当てる。
【００３２】
［受信データ読出処理］
次に、図５を参照して、本実施の形態にかかる通信処理回路１１での受信データ読出処理について説明する。図５は、受信データ読出処理を示すフローチャートである。
通信制御回路１２は、任意の通信チャネルＣＨｎに関する受信データの読み出しに応じて、図５の受信データ読出処理を実行する。
【００３３】
通信制御回路１２は、データ処理部１４からの受信データへのアクセスを受け付けて（ステップ１１０）、受信バッファ１３における、対応するＣＨｎのデータ保存領域１３Ｓに関する読出アドレスを設定する（ステップ１１１）。この際、通信制御回路１２は、受信データ保存処理で割り当てたデータ保存領域１３Ｓの割当状況に基づいてＣＨｎのデータ保存領域１３Ｓを確認し、浮動保存領域１３Ｙを動的割り当てている場合には、この浮動保存領域１３Ｙを含む読出アドレスを設定する。
【００３４】
この後、通信制御回路１２は、設定した読出アドレスに保存されている受信データを受信バッファ１３から読み出して、データ処理部１４へ返送し（ステップ１１２）、データ処理部１４からの読出完了に応じて（ステップ１１３）、ＣＨｎのデータ保存領域１３Ｓのうち、動的割り当てていた浮動保存領域１３Ｙの記憶領域があれば、これら記憶領域を未割当状態とすることにより、ＣＨｎのデータ保存領域１３Ｓから開放し（ステップ１１４）、一連の受信データ読出処理を終了する。
【００３５】
［本実施の形態の効果］
このように、本実施の形態は、通信処理回路１１に、複数の通信チャネルを介してデータを受信する通信制御回路１２と、通信制御回路１２で受信した受信データを一時保存する受信バッファ１３とを備え、通信制御回路１２が、通信チャネルの受信データを受信バッファ１３に一時保存する際、受信バッファ１３が有する複数の記憶領域から通信チャネルでのデータ受信状況に応じた数の記憶領域を選択し、通信チャネルの受信データを保存するためのデータ保存領域１３Ｓとして通信チャネルごとに動的に割り当てるようにしたものである。
【００３６】
これにより、受信バッファ１３において、通信チャネルの受信データを保存するためのデータ保存領域１３Ｓとして、それぞれの通信チャネルでのデータ受信状況に応じて記憶領域の一部が通信チャネルごとに動的に割り当てることになる。このため、受信データのデータサイズの増減に応じた数の記憶領域がそれぞれの通信チャネルに割り当てられることになる。
【００３７】
したがって、各通信チャネルに対して記憶領域を固定的に割り当てる場合と比較して、受信バッファ１３のうち未使用の記憶領域を各通信チャネルで融通することができ、受信バッファ１３の記憶領域を効率よく使用することが可能となる。これにより、特定の通信チャネルに通信負荷が集中したような場合でも、受信データの取りこぼしを抑制でき、比較的小さい記憶容量の受信バッファ１３で、高い信頼性を得ることが可能となる。
【００３８】
また、本実施の形態において、通信制御回路１２が、受信バッファ１３が有する複数の記憶領域を固定記憶領域１３Ａと浮動記憶領域１３Ｂとに分割し、固定記憶領域１３Ａから通信チャネルごとに設定されている数の記憶領域を選択して通信チャネルのデータ保存領域１３Ｓの一部として予め固定的に割り当てておき、受信データを受信バッファ１３に一時保存する際、浮動記憶領域１３Ｂから通信チャネルでのデータ受信状況に応じた数の記憶領域を選択して通信チャネルのデータ保存領域１３Ｓの一部として動的に割り当てるようにしてもよい。
【００３９】
これにより、通信チャネルごとに固定保存領域１３Ｘ分のデータ保存領域１３Ｓを常時確保しておくことができ、特定の通信チャネルに通信負荷が集中したような場合でも、他の通信チャネルでの受信データの取りこぼしを抑制でき、比較的小さい記憶容量の受信バッファ１３で、高い信頼性を得ることが可能となる。
【００４０】
［実施の形態の拡張］
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
【符号の説明】
【００４１】
１０…データ通信装置、１１…通信処理回路、１２…通信制御回路、１３…受信バッファ、１３Ａ…固定記憶領域、１３Ｂ…浮動記憶領域、１３Ｓ…データ保存領域、１３Ｘ…固定保存領域、１３Ｙ…浮動保存領域、１４…データ処理回路。
【図１】
2018129699.tif 000003
【図２】
2018129699.tif 000004
【図３】
2018129699.tif 000005
【図４】
2018129699.tif 000006
【図５】
2018129699.tif 000007