(57)【要約】【課題】産業用イーサネットによる所要のネットワーク構成に容易に対応可能な通信用データ処理装置を提供する。【解決手段】受信したパケットを逐次解析を行いつつ、その受信したパケットを別のポートに送信データとして送信する処理を実行するか否かをレジスタ（４２２，４２３）によって切り換える。また、受信パケットの解析、ならびに送信パケットの生成を制御、実行するためのプログラムコードを書き換え可能なメモリ（４４０)に保存し、プログラムコードの変更により、様々な通信プロトコルへの対応を可能にする。【選択図】図３
2010278897.tif 000002
【特許請求の範囲】
【請求項１】
データ処理部と、複数の外部インタフェースポートを有する通信インタフェースと、前記データ処理部による設定に従って前記通信インタフェースを用いた通信制御を行う通信処理部とを有し、
前記通信処理部は、通信処理部を所定の通信プロトコルに従ってプログラム制御するためのプログラムコードを書換え可能に格納するメモリと、前記通信インタフェースを介して受信したデータを、受信したポートとは異なるポートから送信する動作を指定する第１のモードレジスタとを有し、前記第１モードレジスタを参照し、前記メモリに格納されたプログラムコードに従って前記通信インタフェースを介する送受信を制御する、通信データ処理装置。
【請求項２】
前記通信処理部は、前記異なるポートから送信するタイミングを可変可能に指定するタイミングレジスタを有する、請求項１記載の通信データ処理装置。
【請求項３】
前記通信処理部は、前記メモリに格納されるプログラムコードに対応する通信プロトコルを示すデータが設定される第２のモードレジスタを備える、請求項２記載の通信データ処理装置。
【請求項４】
前記データ処理部は前記第１モードレジスタ、第２モードレジスタ及びタイミングレジスタをアクセスするプロセッサを有する、請求項３記載の通信データ処理装置。
【請求項５】
前記通信処理部は、入力した受信データを解析し、その解析結果に基づく通信制御を行うと共に、前記入力した受信データを前記解析結果に基づく制御の完了を待たずに前記第２モードレジスタ及びタイミングレジスタの設定にしたがって他のポートから出力する制御を行う、請求項３又は４記載の通信データ処理装置。
【請求項６】
前記データ処理部は前記メモリに格納するプログラムコードを保有する不揮発性メモリを有し、
前記データ処理部は前記不揮発性メモリから前記メモリにプログラムコードを初期設定する、請求項１乃至５の何れか１項記載の通信データ処理装置。
【請求項７】
前記データ処理部は入力回路を有し、
前記データ処理部は前記入力回路からプログラムコードを入力して前記メモリに初期設定する、請求項１乃至５の何れか１項記載の通信データ処理装置。
【請求項８】
データ処理部と、複数の外部インタフェースポートを有する通信インタフェースと、前記データ処理部による設定に従って前記通信インタフェースを用いた通信制御を行う通信処理部とを用いて通信制御を行うための通信データ処理方法であって、
通信処理部を所定の通信プロトコルに従ってプログラム制御するためのプログラムコードを前記データ処理部が書換え可能なメモリに格納する処理と、
前記通信インタフェースの受信ポートとは異なるポートを送信ポートに指定するためのデータを前記データ処理部が前記通信処理部の第１のモードレジスタに設定する処理と、
前記通信処理部が前記第１のモードレジスタの設定データを参照し、前記メモリに格納されたプログラムコードに従った送受信動作を行なう処理と、を含む通信データ処理方法。
【請求項９】
前記異なるポートから送信するタイミングを可変可能に指定するためのデータを前記データ処理部が前記通信処理部のタイミングレジスタに設定する処理と、
前記タイミングレジスタの設定データに従って前記通信処理部が前記通信インタフェースで受信したデータを送信するタイミングを制御する処理と、を有する、請求項８記載の通信端末装置。
【請求項１０】
前記メモリに格納されるプログラムコードに対応する通信プロトコルを示すデータを前記データ処理部が前記通信処理部の第２のモードレジスタに設定する処理を更に含む、請求項９記載の通信データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リアルタイム性を要する通信データを効率的に処理することを可能とする、通信端末向けの通信データ処理回路及び通信データ処理方法に関するものである。
【背景技術】
【０００２】
従来、工場内ではPROFIBUS（登録商標、以下同様）やSERCOS（登録商標、以下同様）に代表されるようなフィールドバスを利用して、PLC(Programmable Logic Controller)とセンサ、インバータ間のデータ通信を行ってきた。しかし、現在、工場内のオートメーション化が進み、機器間のネットワーク上に流れるデータ量が増えつつあり、既存のフィールドバスでは対応しきれないという問題が生じつつある。このデータ量増加の問題を解決する一手段として、LAN(Local Area Network)等で利用されているETHERNET（イーサネットと共に登録商標、以下同様）をフィールドバスに適用した産業用イーサネットがある。産業イーサネットは、ETHERNETと比べて、リアルタイム性や信頼性といった特徴を持ち、フィールドバスと比べて高速なデータ通信が可能あるため、将来、工場内の多くの通信に産業用イーサネットが使われる見込みである。産業用イーサネットの規格の一つとしてEthercat（登録商標、以下同様）やPRFINET(登録商標、以下同様)がある。
【０００３】
現状、従来のフィールドバスとの互換性維持を含めて産業用イーサネットの規格化が進んでいるため、複数の産業用イーサネットの規格が存在する。複数の規格が統合化される可能性はあるが、将来も複数の産業用イーサネットの規格が存在する見込みである。
【０００４】
通信プロトコル処理は、汎用プロセッサと記憶装置を搭載した処理装置において、汎用プロセッサが、記憶装置に保存されているプロトコル処理を行うためのプログラムを実行することによって実行される。つまり、ソフトウェアベースのプロトコル処理を実現する。
【０００５】
また、プロトコル処理を専用に行うハードウェア、又は装置を利用することにより、通信プロトコル処理を実行しているものがある(特許文献１)。つまり、ハードウェアベースのプロトコル処理によって、通信プロトコル処理が実現されている。特許文献１には、データの送受信を効率的に行う送受信装置を備える通信プロトコルの処理方法について述べている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平8-181715号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、従来技術における通信プロトコルを処理する装置は、以下のような課題がある。
【０００８】
第１に、産業用イーサネットはLAN等で利用されるETHERNETとは異なり、ライン型やツリー型など様々なトポロジーに対応する必要がある。従来技術では、このようなトポロジーへの対応が考慮されていない。従って、ライン型やツリー型などのトポロジーに対応する仕組みを搭載する必要がある。
【０００９】
第２に、産業用イーサネットには複数の規格が存在している。従来技術にように、受信したパケットを処理する装置ならびに送信するパケットを生成する装置をそれぞれ専用ハードウェアとして備えている場合、それぞれの規格に合わせたハードウェアが必要となる。従って、プロトコル毎に専用ハードウェアを開発、搭載することは、通信装置における回路ならびにプログラムの実装規模、製造ラインの増大を招く虞があり、コスト的に非効率である。
【００１０】
本発明の目的は、産業用イーサネットによる所要のネットワーク構成に容易に対応可能な通信用データ処理装置を提供することにある。
【００１１】
更に詳しくは、所要のネットワークトポロジへの対応と所要のネットワークプロトコルへの対応が容易な通信用データ処理装置、並びに通信用データ処理方法を提供することにある。換言すれば、リアルタイム性を要する通信プロトコルを含めて、多様な通信プロトコル処理への対応を低コストで実現することにある。
【００１２】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１３】
本発明において開示される発明のうち、代表的な一例を簡単に説明すれば、以下の通りである。
【００１４】
すなわち、通信インタフェースから逐次、受信した受信パケットを逐次解析しつつ、受信したパケットをそのまま別ポートの送信データとして送信し、その際に、別ポートに送信するタイミングをレジスタによって設定することを可能とする。また、受信した受信パケットの逐次解析ならびに送信する送信パケットの逐次生成を行うためのマイクロコードを書き換え可能なメモリに保存し、マイクロコードの変更を容易に行うことができ、また、通信プロトコルの指定をレジスタ設定で行うようにする。これにより、様々な通信プロトコルへの対応が可能になる。
【発明の効果】
【００１５】
本発明によれば、リアルタイム性を要する通信プロトコルを含めて、多様な通信プロトコル処理への対応を低コストで実現することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】図１はEthercatにおけるトポロジー構成の一例を示した説明図である。
【図２】図２はEthercatにおける１フレームの構成を例示する説明図である。
【図３】図３は逐次、フレームを受信、処理を行いながら、受信したフレームをある期間内に隣接する通信端末に送信する仕組みを搭載した本発明の第１の実施の形態に係る通信端末のハードウェア構成を例示するブロック図である。
【図４】図４はコントローラのハードウェア構成を例示したブロック図である。
【図５】図５は受信解析部のハードウェア構成を例示したブロック図である。
【図６】図６は送信生成部のハードウェア構成を例示したブロック図である。
【図７】図７は送受信データ制御部のハードウェア構成を例示したブロック図である。
【図８】図８は通信端末の電源投入後の起動シーケンスを例示したフローチャートである。
【図９】図９は信号処理部からの受信データの処理手順を例示したフローチャートである。
【図１０】図１０は解析結果処理手順を例示したフローチャートである。
【図１１】図１１はIEEE 1588に準拠した同期方式についての説明図である。
【図１２】図１２は本発明の第２の実施の形態に係る通信端末のハードウェア構成を例示したブロック図である。
【図１３】図１３は通信端末１２００における電源投入後の起動シーケンスを例示したフローチャートである。
【発明を実施するための形態】
【００１７】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１８】
〔１〕本発明の代表的な実施の形態に係る通信データ処理装置（３００，１２００）は、データ処理部（３８０）と、複数の外部インタフェースポートを有する通信インタフェース（３０１）と、前記データ処理部による設定に従って前記通信インタフェースを用いた通信制御を行う通信処理部（３７０）とを有する。前記通信処理部は、通信処理部を所定の通信プロトコルに従ってプログラム制御するためのプログラムコードを書換え可能に格納するメモリ（４４０）と、前記通信インタフェースを介して受信したデータを、受信したポートとは異なるポートから送信する動作を指定する第１のモードレジスタ(４２２)とを有し、前記第１モードレジスタを参照し、前記メモリに格納されたプログラムコードに従って前記通信インタフェースを介する送受信を制御する。
【００１９】
これにより、メモリに格納するプログラムコードによって所要通信プロトコルに準拠した通信動作が可能になり、また、受信ポートと送信ポートを別々にすることを可能になるからリニア型の通信トポロジへの対応も可能になる。これにより、様々な通信プロトコルへ容易に対応が可能になり、リアルタイム性を要する通信プロトコルを含めて、多様な通信プロトコル処理への対応を低コストで実現することが可能となる。
【００２０】
〔２〕項１の通信データ処理装置において、前記通信処理部は、前記異なるポートから送信するタイミングを可変可能に指定するタイミングレジスタ（４２３）を有する。例えばリニア型の通信トポロジにおいて、受信データをそのまま後続の通信端末に渡したり、ある程度の処理を行なってその結果を付随させて受信データを後続の通信端末に渡すことが可能になる。この点でも種々の通信プロトコルへの対応が可能になり、更に通信制御の柔軟性を増すことができる。
【００２１】
〔３〕項２の通信データ処理装置において、前記通信処理部は、前記メモリに格納されるプログラムコードに対応する通信プロトコルを示すデータが設定される第２のモードレジスタ（４２１）を備える。第２のモードレジスタの値を参照することによって、現在メモリに格納されたプログラムコードがどの通信プロトコルに対応するかを容易に確認可能になる。さらに、第２のモードレジスタの設定値を参照して前記メモリに格納すべきプログラムコードの種別を判別すること等にも利用可能である。
【００２２】
〔４〕項３の通信データ処理装置において、前記データ処理部は前記第１モードレジスタ、第２モードレジスタ及びタイミングレジスタをアクセスするプロセッサ（３５０）を有する。
【００２３】
〔５〕項３又は４の通信データ処理装置において、前記通信処理部は、入力した受信データを解析し、その解析結果に基づく通信制御を行うと共に、前記入力した受信データを前記解析結果に基づく制御の完了を待たずに前記第２モードレジスタ及びタイミングレジスタの設定にしたがって他のポートから出力する制御を行う。すなわち、例えばリニア型の通信トポロジにおいて、受信データをそのまま後続の通信端末に渡したり、ある程度の処理を行なってその結果を付随させて受信データを後続の通信端末に渡すことが可能になる。
【００２４】
〔６〕項１乃至５の何れかの通信データ処理装置において、前記データ処理部は前記メモリに格納するプログラムコードを保有する不揮発性メモリ（３４１）を有する。前記データ処理部は前記不揮発性メモリから前記メモリにプログラムコードを初期設定する。
【００２５】
〔７〕項１乃至５の何れかの通信データ処理装置において、前記データ処理部は入力回路（３６０，１２８０）を有し、前記データ処理部は前記入力回路からプログラムコードを入力して前記メモリに初期設定する。
【００２６】
〔８〕本発明の代表的な実施の形態に係る通信データ処理方法は、データ処理部と、複数の外部インタフェースポートを有する通信インタフェースと、前記データ処理部による設定に従って前記通信インタフェースを用いた通信制御を行う通信処理部とを用いて通信制御を行うための方法であって、通信処理部を所定の通信プロトコルに従ってプログラム制御するためのプログラムコードを前記データ処理部が書換え可能なメモリに格納する処理と、前記通信インタフェースの受信ポートとは異なるポートを送信ポートに指定するためのデータを前記データ処理部が前記通信処理部の第１のモードレジスタに設定する処理と、前記通信処理部が前記第１のモードレジスタの設定データを参照し、前記メモリに格納されたプログラムコードに従った送受信動作を行なう処理と、を含む。
【００２７】
これにより、様々な通信プロトコルへ容易に対応が可能になり、リアルタイム性を要する通信プロトコルを含めて、多様な通信プロトコル処理への対応を低コストで実現することが可能となる。
【００２８】
〔９〕項８の通信データ処理方法は更に、前記異なるポートから送信するタイミングを可変可能に指定するためのデータを前記データ処理部が前記通信処理部のタイミングレジスタに設定する処理と、前記タイミングレジスタの設定データに従って前記通信処理部が前記通信インタフェースで受信したデータを送信するタイミングを制御する処理と、を有する。
【００２９】
〔１０〕項９の通信データ処理装置は更に、前記メモリに格納されるプログラムコードに対応する通信プロトコルを示すデータを前記データ処理部が前記通信処理部の第２のモードレジスタに設定する処理を含む。
【００３０】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００３１】
＜第１の実施の形態＞
本説明では、産業用イーサネットの規格の一つであるEthercatを通信プロトコルの一例として説明するが、本発明をEthercat以外の産業用イーサネットならびに、データ送信元アドレス、データ送信先アドレス、送受信データを１フレームの構成に含んだ別の通信プロトコルに適用することも可能である。尚、１フレームの構成に、データ長、データの種類、誤り訂正符号等を含んでも良い。
【００３２】
図１は、Ethercatにおけるトポロジー構成（通信トポロジ）の一例を示した図である。
【００３３】
Ethercatは図に示すように１つのマスタと複数のスレーブから構成される。スレーブは通信端末を構成し或いはそれを含んでいる。マスタから送信されたデータは各スレーブにて処理を行った後、再びマスタに戻るというライン型のトポロジー構成にも対応することが可能である。つまり、マスタ１００から送信されたデータはスレーブＡ１１０のポート１に届き、スレーブＡ１００で必要な処理を行った後、ポート２を介してスレーブＢ１２０に送信される。スレーブＢ１２０においても同様な処理を行い、スレーブＣ１３０のポート１にデータを送信する。データを受信したスレーブＣ１３０は必要な処理を行った後、今度はスレーブＢ１２０のポート２に対してデータを送信する。以降、同様な処理を行い、マスタ１００にデータを送信することが可能である。図より明らかなように、ライン型の通信トポロジを採用した場合に、終端のスレーブは同一ポートで送受信を行い、その他のスレーブは複数のポートで別々に送受信を行うことが必要になる。
【００３４】
図２にはEthercatのフレーム構成が例示される。このフレーム構成は、イーサネットヘッダ２００、データフィールド２２０、誤り訂正のためのFCS(Frame Check Sequence)２４０から構成されている。
【００３５】
イーサネットヘッダ２００には、フレーム送信先のMACアドレス２０２、フレーム送信元のMACアドレス２０４ならびに本フレームがEthercatであることを示すタイプ0x88A4が設定される。尚、Ethercatの場合、フレーム送信先のMACアドレス２０２には、各スレーブを構成しているセグメントアドレスが設定され、各スレーブのアドレスそのものは設定されない。各スレーブのアドレスは、後に述べるEthercatヘッダ２３０に設定される。
【００３６】
データフィールド２２０は、２バイト（Byte）のフレームヘッダ２２２ならびに複数のEthercatテレグラムから構成されている。フレームヘッダ２２２には、１フレーム全体のデータ長が設定されている。
【００３７】
各Ethercatテレグラムは、Ethercatヘッダ２３０、データ２３２、WKC２３４から構成されている。Ethercatヘッダ２３０には、データ２３２を利用して処理を行うスレーブのアドレス（MACアドレス２０２で指定されたセグメント内のスレーブのアドレス）ならびに処理内容が設定されている。処理内容には、メモリへの書き込み、読み出しの他、同期処理、アプリケーション処理などが含まれる。WKC（ライトカウンタ）２３４はEthercatヘッダ２３０が示す処理を実施したスレーブが、処理を実施したことをマスタ１００に知らせるために、値を1インクリメントする領域である。前記設定された処理内容を行ったときにWKC２３４を１インクリメントする。
【００３８】
ここで、図１のトポロジ構成におけるスレーブによるEthercatフレームの処理フローの概要を説明する。
【００３９】
マスタ１００は図２の各フィールドに必要な値を設定した後、スレーブA１１０のポート１にフレームを送信する。フレームを受信したスレーブA１１０は、各Ethercatテレグラム内のEthercatヘッダ２３０に自身を示すアドレスがあるか確認する。自身を示すアドレスがある場合、Ethercatヘッダ２３０が示す処理を実行し、処理が終了したら、WKC２３４の値を１インクリメントした後、スレーブＢ１２０のポート１にフレームを送信する。この際、自身の処理に関係のないフィールドに関しては何も処理を行わず、スレーブＢ１２０に送信する。尚、受信したフレームの一部でも変更した場合、スレーブＢ１２０に送信する送信フレームのFCS２４０フィールドの値も変更する。
【００４０】
自身を示すアドレスがない場合、何も処理を行わず、スレーブＢ１２０に受信したフレームを送信する。
【００４１】
Ethercatのフレームはある期間内に次のスレーブに送信する必要がある。そのため、もしある期間内にEthercatヘッダ２３０で示される処理が終了しなかった場合には、WKC２３４をインクリメントせずにフレームを送信する必要がある。
【００４２】
ただし、フレームに含まれる全ての構成要素を受信し、処理を行った後、隣接する通信端末にフレームを送信するような処理フローは、リアルタイム性を要する産業用イーサネットでは適用することが難しい。そこで、逐次、フレームを受信、処理を行いながら、受信したフレームをある期間内に隣接するスレーブ（通信端末）に送信する仕組みを通信端末に搭載する必要がある。
【００４３】
図３には、逐次、フレームを受信して、処理を行いながら、受信したフレームをある期間内に隣接する通信端末に送信する仕組みを搭載した本発明の第１の実施の形態に係る通信端末のハードウェア構成が例示される。同図に示される通信端末３００は、特に制限されないが、相補型ＭＯＳ集積回路製造技術で単結晶シリコンのような１個の半導体基板に構成された１チップの半導体集積回路、又はモジュール基板にマルチチップで構成されて１パッケージに封止されたモジュールデバイス、或いは回路基板に複数の半導体集積回路を搭載したマルチチップのカードデバイスとして構成される。
【００４４】
通信端末３００は、通信インタフェース３０１、通信処理部３７０及びデータ処理部３８０から成る。通信処理部３７０は、信号処理部３０２、受信解析部３１０、送信生成部３１２、送受信データ制御部３１４、ＤＭＡ制御部３１５、コントローラ３２０、第１のメモリ制御部３３０及び第１のメモリ３３１を備える。データ処理部３８０は、第２のメモリ制御部３４０、第２のメモリ３４１、プロセッサ３５０、周辺制御部３６０を有する。周辺制御部３６０は図示を省略する補助記憶装置やその他の周辺回路に接続される。通信端末３００は、通信端末３００上で動作するサービス、アプリケーションに応じて、周辺制御部３６０等に接続された図示していない磁気ディスク装置等の記憶装置や表示パネルを有してもよい。信号処理部３０２は、図に示すような通信インタフェースの送受信ポート（ポート１（Ｐｏｒｔ１）の送信ポート及び受信ポート、ポート２（Ｐｏｒｔ２）の送信ポート及び受信ポート）毎に設ける構成以外にも、全てのポート共通の構成であってもよい。ポートの数もポート１とポート２に制限されない。受信解析部３１０及び送信生成部３１２は、通信端末３００上で動作するサービス、アプリケーションに応じて、それぞれ１つ以上の設けることが可能である。
【００４５】
通信端末３００は通信インタフェース３０１を介して、図示していない通信端末と通信を行う。通信端末３００に搭載されている各内部回路モジュールは、一定の動作周期で処理を実行している。以下の説明において、一定の動作周期をサイクルと記載する。例えば、動作周期の数を表す場合、１サイクルと記載し、また、動作周期の順番を表す場合、１サイクル目と記載する。
【００４６】
信号処理部３０２は、通信端末３００が通信インタフェース３０１を通じてネットワークと接続するための処理を行なう回路である。通信インタフェース３０１をOSI（Open Systems Interconnection (開放型システム間相互接続)）参照モデルにおける物理層とした場合、信号処理３０２は、ビット変換処理やクロック調整などを行う。また、使用する通信インタフェースに応じて、変調・復調処理などを行ってもよい。尚、産業用イーサネットの場合、通信インタフェース３０１のデータ幅は４ビットであるため、各モジュールの処理も４ビットずつ行うものとする。ただし、使用する通信インタフェースに応じて、処理単位は自由に変更しても、本発明においては問題ない。以下の説明における受信データ、ならびに送信データとは、受信フレーム、ならびに送信フレームに含まれるデータの一部とする。
【００４７】
コントローラ３２０、送受信データ制御部３１４、受信解析部３１０及び送信生成部３１０の詳細は図面に基づいてその詳細を後述する。ＤＭＡ制御部３７０はコントローラ３２０等からの指示に従ってＤＭＡ転送制御を行う。第１のメモリはＳＲＡＭのような高速メモリであり、バッファ若しくはキャッシュメモリとして利用され、第１のメモリ制御部３３０によってそのメモリ動作が制御される。データ処理部３８０のプロセッサ３５０は通信端末３００の全体的な制御や特定の演算を行う。第２のメモリ３４１は電気的に書き換え可能なフラッシュメモリのような不揮発性メモリであり、第２のメモリ制御部３４０によってそのメモリ動作が制御される。
【００４８】
図４にはコントローラ３２０のハードウェア構成の一例が示される。コントローラ３２０は、通信制御部４１０、レジスタ群４２０、同期制御部４３０、マイクロコードテーブル４４０及びレジスタ群４２０を有する。
【００４９】
通信制御部４１０は、受信解析部３１０ならびに送信生成部３１２が通信プロトコルに準拠した処理を行うよう制御するモジュールである。上記の制御には通信制御部４１０内部に有する状態遷移制御部４１１を利用する。データを受信したとき、受信解析部３１０が送信する解析結果Ｓ３およびデータＳ４を通信制御部４１０が入力する。データを受信した場合、状態遷移部４１１は、受信解析部３１０が送信する解析結果Ｓ３から、通信状態に適した受信データが受信されていることを確認し、次に受信解析部３１０が、どのような受信データ解析を行うべきかの指示を制御信号Ｓ１として送信する。例えば、マイクロコードテーブル４４０から、受信解析部３１０が次に行う処理を示した命令を抽出し、その命令をマイクロコード解釈部４１２で制御信号に変更し、変換された制御信号Ｓ１を受信解析部３１０へ与える。例えば、Ethercatの場合、６バイトのフレーム送信元のMACアドレス２０４に２バイトのタイプ２０６(0x88A4)が続く構成となっている。状態遷移制御部４１１は、受信解析部３１０から６バイトのフレーム送信元のMACアドレス２０４を正しく受信した解析結果を受信すると、マイクロコードテーブル４４０を参照して、次に受信解析部３１０が行う命令を抽出する。今回の場合では、0x88A4と２バイトの受信データを比較する命令となる。その命令をマイクロコード解釈部４１２で制御信号Ｓ１に変更し、受信解析部３１０に送信する。
【００５０】
１フレームに構成されるデータ全ての受信が終わった後、解析結果によって、送受信データ制御部３１４内に保存した受信データを第２のメモリ３４１に保存する必要がある場合、通信制御部４１０が信号Ｓ２により送受信データ制御部３１４にDMA制御部３１５を介して第２のメモリ３４１にデータを保存するよう要求する。
【００５１】
データを送信する場合、状態遷移制御部４１１は、送信生成部３１２が送信した生成結果（送信データ生成結果）Ｓ５から、通信状態に適した送信データが生成・送信されていることを確認し、次に送信生成部３１２に、生成すべき送信データの指示を制御信号Ｓ６として与える。上記の方法は受信解析部３１０と同じくマイクロコードを利用する方法であるから、その詳細な説明は省略する。
【００５２】
通信プロトコルによって、送信フレームの種類は様々である。通常、通信端末自身が送信フレームを一から生成するが、Ethercatの場合、受信したフレームの一部分にメモリに保存してあるデータを挿入したフレームを送信フレームとして、別の通信端末に送信する。このような場合、DMA制御部３１５を経由してメモリアクセスを行うとリアルタイム性が維持できなくなる恐れがある。尚、Ethercatのように受信したデータの一部分のみを改変して、他の通信端末に送信するデータを転送データと呼ぶことにする。
【００５３】
そこで、本発明では、DMA制御部３１５経由でなく、コントローラ３２０が直接アクセスすることが可能なメモリである第１のメモリ３３１を搭載した構成となっている。図４のＳ７で示される制御信号及びデータが第１のメモリ制御部３３０に与えられて第１のメモリ３３１がアクセスされる、尚、受信解析部３１０ならびに送信生成部３１２も第１のメモリ３３１をアクセスできるように構成することも可能である。
【００５４】
状態遷移制御部４１１は、受信解析部３１０の解析結果より、第１のメモリ３３１に保存してあるデータを挿入する必要があると判断した場合、第１メモリ制御部３３０を介して、第１のメモリ３３１に保存してあるデータを読み出し、送信生成部３１２内にある送信バッファ６３０に設定する。状態遷移制御部４１１は、生成データの状態に合わせて、送信バッファ６３０に設定してあるデータを送信するように指示を行う。送信バッファ６３０は通信制御部４１０の内部にあっても良い。また、上記処理をDMA制御部３１５を経由して行ってもリアルタイム性を損なうことがない場合、すなわち第２のメモリ３４１にあるデータを挿入してもリアルタイム性を損なうことがない場合には、上記の処理を、図４の信号Ｓ８を用いてＤＭＡ制御部３１５経由で行っても良い。
【００５５】
産業用イーサネットには様々な規格はあるが、どの規格もETHERNETの規格を拡張したものであるため、処理のフローはほとんど同じであり、使用する演算子もほとんど同じである。そのため、マイクロコードによって、使用する演算子を制御することにより、マイクロコードを変更するのみで、通信端末３００が使用する通信プロトコルも変更することが可能となる。このような通信プロトコルの変更を実現するため、マイクロコードテーブル４４０は、ＥＥＰＲＯＭやＲＡＭ等の書き換え可能なメモリの方が良い。ＲＡＭの場合にはパワーオンリセット処理において第２のメモリ３４１からマイクロコードテーブル４４０に所要のプログラムコードが初期ロードされるようにすればよい。
【００５６】
レジスタ群４２０は、通信端末３００の動作に必要なレジスタであり、通信モードレジスタ４２１、カット/スルーモードレジスタ４２２、転送タイミングレジスタ４２３、メモリ制御用レジスタ４２４、メモリ同期用レジスタ４２５、通信プロトコル用レジスタ４２６等から構成される。レジスタ群４２０の各レジスタには、例えばパワーオンリセット処理においてプロセッサ３５０が第２メモリから初期化データをリードして初期設定し、或いは、プロセッサ３５０が周辺制御部３６０に接続する周辺回路から初期化データをリードして初期設定すればよい。
【００５７】
通信モードレジスタ４２０は、通信端末３００が処理を行なう通信プロトコルの種類、すなわちマイクロコードテーブル４４０に格納されたマイクロプログラムによって制御される通信プロトコルを示すデータが設定されるレジスタである。種類とは例えばEthercatやPROFINETである。例えば、プロセッサ３５０はこの通信モードレジスタ４２０の設定データを参照して第２メモリ３４１からマイクロコードテーブル４４０に転送すべきマイクロプログラムを判別する。
【００５８】
カット/スルーモードレジスタ４２２は、通信インタフェース４０１を介して受信したデータを、転送タイミングレジスタ４２３が示すサイクル内で、別の通信端末に送信するスルーモード又は送信しないカットモード又の何れの動作モードで通信端末を動作させるかが指定されるレジスタである。
【００５９】
転送タイミングレジスタ４２３は、受信データを別の通信端末に送信するまでのサイクルを示すレジスタである。例えば、レジスタの値が１０の場合、受信データが信号処理部３０２から送信されて、１０サイクル後に、他の通信端末に送信されることを示す。
【００６０】
メモリ制御用レジスタ４２４は、アプリケーションならびに受信したデータ種類に応じて、データを第１のメモリ３３１にアクセスするのか第２のメモリ３４１にアクセスするのかを切り替えるために使用する。
【００６１】
メモリ同期用レジスタ４２５は、第１のメモリ３３１に保存したデータの内容を第２のメモリ３４１にコピーする際に使用するレジスタである。このレジスタには、サイクル数や受信パケット数ならびに時間等を設定することが可能であり、そのレジスタの示す値になった場合、第１のメモリ３３１の内容を第２のメモリ３４１にコピーする制御が開始される。
【００６２】
通信プロトコル用レジスタ４２６は、各プロトコル処理に必要なレジスタである。例えば、通信プロトコルとして、Ethercatを使用する場合には、FMMU処理に必要な情報やSYNC Manager処理に必要な情報などを設定する。要するに、この通信プロトコル用レジスタ４２６は、通信モードレジスタ４２１が示す通信モードで通信を行うために必要なコントロールレジスタとして利用される。
【００６３】
産業用イーサネットはETHERNETとは異なり、リアルタイム性が重要な機能となり、他の通信端末と正確に同期する必要がある。同期制御部４３０は、各プロトコルに準拠した同期処理を行うためのモジュールである。即ち、リアルタイムクロック４３１を有し、リアルタイムクロック４３１が示す時刻によって他の通信端末との間で同期した時刻管理を行うことができるようになっている。
【００６４】
図５には受信解析部３１０のハードウェア構成の一例が示される。受信解析部３１０は、通信インタフェース３０１を介して受信した受信パケットＳ１０を解析するモジュールであり、受信データ解析部５１０、状態管理レジスタ５２０及び受信バッファ５３０を有する。
【００６５】
受信データ解析部５１０には、演算ロジック５１１が搭載されており、この演算ロジック５１１を利用して、受信したデータの解析ならびに処理を行う。
【００６６】
信号処理部３０２から供給される受信データＳ１０は受信解析部３１０内の受信バッファ５３０に格納される。コントローラ３２０が指示するデータ長まで受信データを格納した後、受信データ解析部５１０は、コントローラ３２０が送信した制御信号Ｓ１に基づいて、演算ロジック５１１を利用して受信データの解析を行う。解析した結果は、コントローラ３２０に通知され、若しくは状態管理レジスタ５２０に保持される。
【００６７】
ここで、Ethercatが指定されておるときの受信データ解析部５１０による処理を説明する。予め、コントローラ３２０は、受信データ解析部５１０に対して、受信バッファ５３０に６バイトの送信データを格納し格納したデータが状態管理レジスタ５２０に保存してあるマスタのＭＡＣアドレスであるか否かを比較する処理を行なうための命令を送信する。状態管理レジスタ５２０には、受信したデータを解析するために必要なデータを格納する。受信データ解析部５１０は、受信データバッファ５３０に６バイトのデータが設定されたことを検出すると、演算ロジック５１１にある比較器を利用して、その受信データバッファ５３０に格納された６バイトのデータが状態管理レジスタ５２０に格納されてあるマスタのアドレスであるかを比較し、その比較結果を信号Ｓ３としてコントローラ３２０に送信する。
【００６８】
６バイトのデータがマスタのアドレスであった場合、コントローラ３２０は、次に２バイトのデータを受信バッファ５３０に格納させ、状態管理レジスタ５２０に格納されているタイプの値であるか否かを比較させる。
【００６９】
以上の処理を、通信インタフェース３０１を介してデータを受信する毎に行う。コントローラ３２０は状態管理レジスタ５２０を使用せず、制御信号Ｓ１のみで受信データ解析部５１０に対して解析処理の指示命令を送信しても良い。
【００７０】
また、信号処理部３０２から送信されたデータＳ１０は、受信バッファ５３０に格納される他に、送受信データ制御部３１４にも直接送信される。
【００７１】
図６には送信生成部３１２のハードウェア構成の一例が示される。送信生成部３１２は、通信インタフェース３０１を介して、他の通信端末に送信する送信データを生成するモジュールであり、送信データ生成部６１０、状態管理レジスタ６２０及び送信バッファ６３０を有する。
【００７２】
送信データ生成部６１０には、演算ロジック６１１が搭載されており、この演算ロジック６１１を利用して、送信するデータの生成ならびに処理を行う。演算ロジック６１１ならびに状態管理レジスタ６２０は、受信解析部３１０が有する演算ロジック５１１及び状態管理レジスタ５２０と共通に構成してもよい。
【００７３】
送信データ生成部６１０は、コントローラ３２０が送信した制御信号Ｓ６に基づいて、演算ロジック６１１を利用して、送信データの生成を行う。また、生成した結果を、コントローラ３２０に通知もしくは状態管理レジスタ６２０に設定する。
【００７４】
送信データ生成部６１０で行う送信データ生成処理の流れについてイーサネットヘッダ２００を送信する場合を例に説明する。
【００７５】
予め、コントローラ３２０は、送信データ生成部６１０に対して、状態管理レジスタ６２０に格納してある６バイトの送信先MACアドレスを送信データとして送信する処理命令を与える。状態管理レジスタ６２０には、データを生成するために必要なデータが格納されている。
【００７６】
送信データ生成部６１０は、状態管理レジスタ６２０に格納してある６バイトの送信先MACアドレスを送信し、その送信結果Ｓ５をコントローラ３２０に送信する。
【００７７】
コントローラ３２０は、送信結果より、正しく送信が行われたことを確認すると、マイクロコードテーブル４４０を参照して、次に送信生成データ部６１０が行う命令を抽出し、その命令をマイクロコード解釈部４１２で制御信号に変更し、信号Ｓ６として送信データ生成部６１０に送信する。例えば、マイクロコードテーブル４４０を参照した結果、次に状態管理レジスタ６２０に格納してある通信端末３００自身のMACアドレスを送信データとして送信する処理を指示するための命令の場合、その命令に合った制御信号Ｓ６を送信する。上記の処理に加えて、送信データ生成部６１０では、転送データを利用した送信データの生成を行うことも可能である。
【００７８】
ここで、Ethercatが指定されているとき転送データを利用した送信データ生成処理を説明する。Ethercatの場合、送信データとして、受信したデータをそのまま使用する場合、受信したデータを一部分のみ改変して使用する場合、又は第１のメモリ３３１に保存してあるデータを送信データとして使用する場合がある。
【００７９】
受信したデータをそのまま使用する場合、コントローラ３２０は、状態管理レジスタ６２０に送信するデータ長を設定し、送信データ生成部６１１に対して、送受信データ制御部３１４から供給される転送データＳ１１を状態管理レジスタ６２０が示す値だけ送信データとして送信する処理を指示するための命令を与える。
【００８０】
もし、受信したデータの一部分を改変する場合、送受信データ制御部３１４から一部分を改変するデータの基となるデータＳ１１が送信される前に、コントローラ３２０が、改変するデータの位置ならびに改変方法を送信データ生成部６１１に送信する。尚、送受信データ制御部３１４から送信されたデータを改変した場合、送信データのFCSの値も変更する必要がある。そのため、送信データを生成する場合には、送信バッファ６３０ならびに演算ロジック６１１を利用して、常にFCSの演算を行い、もしFCSの値を変更する必要がある場合には、その演算結果を利用することにする。
【００８１】
また、送信データとして第１のメモリ３３１に保存してあるデータを使用する場合、コントローラ３２０は、送信バッファ６３０に第１のメモリ３３１に保存してあるデータを設定する他に、送信データ生成部６１１に対して、第１のメモリ３３１に保存してあるデータを挿入する位置ならびに格納してあるアドレスを通知する。送信データ生成部６１０は、コントローラ３２０が示した位置に対して、送信バッファ６３０に保存したデータ挿入し、送信データとして送信する。
【００８２】
図７には送受信データ制御部３１４のハードウェア構成の一例が示される。送受信データ制御部３１４は、受信したデータを他の通信端末に送信するための制御、及び受信したデータをＤＭＡ制御部３１５経由で第２のメモリ３４１に送信するための制御を行うモジュールであり、制御部７１０、送受信データバッファ７２０及びセレクタ７３０を有する。
【００８３】
信号処理部３０２から直接供給された受信データＳ１０は、送受信データバッファ７２０に保存されるとともに、転送タイミングレジスタ４２３の値に応じて、セレクタ７３０等を経由し転送データとして、送信生成部３１２に送信される。その制御は制御部７１０が行う。例えば、転送タイミングレジスタ４２３の値が０の場合、セレクタ７３０を利用することにより、受信したデータをそのまま送信生成部３１２に送信するパスを有効にする。また、転送タイミングレジスタ４２３の値が１０の場合、受信したデータをそのまま送信生成部３１２に送信するパスを有効にせず、受信データの先頭が送信されてから、１０サイクルが経過した後、送受信データバッファ７２０に保存された受信データを送信データとして送信する。尚、転送タイミングレジスタ４２３を利用した制御は送受信データ制御部３１４でなく、送信生成部３１２が行っても良い。この場合、受信したデータをそのまま送信生成部１１２に送信するパスを設定しておく必要がある。
【００８４】
前述の通り、受信データをそのまま送信データとして送信生成部４１２に送信するかどうかはカット/スルーモードレジスタ４１２の設定値に従って判断すればよい。
【００８５】
また、コントローラ３２０より、送受信データバッファ７２０に格納したデータをＤＭＡ制御部３１５経由で第２のメモリ３４１に送信する指示が信号Ｓ２により供給された場合、ＤＭＡ制御部３１５に対して、保存先のアドレスならびに保存するデータ長、データを保存してある位置などの情報を通知する。
【００８６】
図８は通信端末３００に電源が投入された直後の起動シーケンスが例示される。
【００８７】
電源投入後、第２のメモリ３４１に設定してある通信端末３００自身の情報を参照する(ステップ８１０)。参照の結果を用いて、通信処理部３７０に設定すべき情報を設定する(ステップ８２０)。その設定は、通信端末３００のアドレスや送信元のアドレスの設定、更には、データ通信に使用するプロトコル等の設定として、通信モードレジスタ４２１、カット／スルーモードレジスタ４２２、転送タイミングレジスタ４２３、および通信プロトコルレジスタ４２６への初期設定とされる。
【００８８】
次に、通信端末３００上で動作するアプリケーション及びサービスに応じて、第２のメモリ３４１に保存してあるデータを第１のメモリ３３１に保存する(ステップ８３０)。その際、メモリ制御用レジスタ４２４ならびにメモリ同期用レジスタ４２５の設定も行う。
【００８９】
最後に、データ通信に使用するプロトコルに準拠した初期化シーケンスを実行し、起動シーケンスを終了する(ステップ８４０)。
【００９０】
各プロトコルの初期化シーケンスの一例として、Ethercatの初期化シーケンスを説明する。
【００９１】
Ethercatでは、ETHERNETを使用するようなMACアドレスを使用せず、Ethercatネットワーク内でのみ有効な２バイトのアドレスをマスタ１００がスレーブ毎に設定する。設定方法として、まずマスタ１００がスレーブＡ１１０に対して、２バイトのアドレスを送信する。２バイトのアドレスを受信したスレーブＡ１１０は、そのアドレスを自身のアドレスと認識し、そのアドレスに１インクリメントした値をスレーブＢ１２０に送信する。
【００９２】
スレーブＢ１２０においても、同様の処理を行った後、スレーブＣ１３０に送信する。以降、同様の処理を行うことにより、バイトのアドレスを設定する。
【００９３】
尚、産業用イーサネットの場合、フレームのタイプを参照することにより、マスタ１００が送信する通信プロトコルを判定することが可能である。そこで、各プロトコルに準拠した初期化シーケンス中に第２のメモリ３４１を通じてマイクロコードを取得し、通信制御部３７０への設定を行ってもよい。
【００９４】
図９には信号処理部３０２からの受信データの処理フローが例示される。
【００９５】
受信解析部３１０は信号処理部から受信データを受信すると、それを受信データ解析処理部５１０及び送受信制御部３１４へ供給する(ステップ９００、ステップ９１０、ステップ９２０)。
【００９６】
ステップ９１０の送受信制御部３１４への受信データの供給は、図５に示すように受信解析部３１０において特別な処理は行わずに送受信データ制御部３１４に供給するものとされる。尚、必要に応じて、受信データ解析部５１０において、必要な処理を行った後に、送受信データ制御部３１４に受信データを送信しても良い。
【００９７】
以下、送受信データ制御部３１４に送信された受信データの流れについて説明する。
【００９８】
送受信データ制御部３１４は、受信解析部３１０から受信データを受取り、送受信データバッファ７２０に格納すると、カット/スルーモードレジスタ４２２を参照し、通信端末３００の動作モードが、カットモード又はスルーモードの何れであるかを確認する(ステップ９１１〜ステップ９１３)。
【００９９】
もし、通信端末３００の動作モードがスルーモードではなく、カットモードの場合、受信データを他の通信端末に送信する必要がないため、送信生成部３１２に転送する処理を行わず、代わりにコントローラ３２０からＤＭＡ転送要求があるかどうかを確認する(ステップ９１６)。
【０１００】
コントローラ３２０からＤＭＡ転送要求がある場合、ＤＭＡ制御部３１５に対して、送受信データバッファ７２０に格納してある受信データを第２のメモリ３４１に保存するために必要な情報、例えばＤＭＡ転送を行うデータ長、保存先・保存元のアドレスを送信し、処理を終了する(ステップ９１７)。尚、コントローラ３２０はＤＭＡ転送要求の代わりに、送受信データ制御部３１４に対して、送受信データバッファ７２０に格納してある受信データを第１のメモリ３３１に保存する要求を送信しても良い。
【０１０１】
コントローラ３２０からＤＭＡ転送要求がない場合、送受信データバッファ７２０に格納された受信データを破棄した後、処理を終了する。尚、必要に応じて、受信データを送受信データバッファ７２０内に保存しておいても良い。
【０１０２】
もし、通信端末３００の動作モードがスルーモードの場合、受信データを他の通信端末に送信する必要があるため、送信生成部３１２にデータを供給する処理を行う。以下に転送するための処理を説明する。
【０１０３】
転送する必要があると判断すると、送受信データ制御部３１４は、転送タイミングレジスタ４２３を参照し、転送するタイミングを取得する(ステップ９１３)。転送タイミングレジスタ４２３に設定されてある値が０の場合、送受信データバッファ７２０に受信データを格納しつつ、送信生成部３１２に対して、受信データを送る。転送タイミングレジスタ４２３に設定されてある値が０以外の場合、セレクタ７３０を利用して、上記のような受信データの転送を行わせず、送受信データバッファ７２０にのみ受信データを格納し、転送タイミングレジスタ４２３が示すサイクル分、転送を待った後、送受信データバッファ７２０に格納してある受信データを送る(ステップ９１４、ステップ９１５)。
【０１０４】
尚、上記のような転送処理を送受信データ制御部３１４が行わずに、受信解析部３１０が行っても良い。
【０１０５】
送信生成部３１２は、送受信データ制御部３１４から転送要求があると、送受信データ制御部３１４からの転送データを受取り、その転送データに基づいて送信データを作成し、信号処理部３０２に供給する(ステップ９３０、ステップ９３１、ステップ９３６、ステップ９３７)。
【０１０６】
転送データに基づいて送信データを作成する動作は、コントローラ３２０が送信生成部３１２を制御して行う。制御方法については、上記で説明したマイクロコードを利用した制御方法であるため、その詳細な説明は省略する。
【０１０７】
次に、受信データ解析処理(ステップ９２０)以降の処理の流れについて説明する。
【０１０８】
受信解析部３１０は、コントローラ３２０が送信する制御信号を基に、受信データ解析部５１０内にある演算ロジック５１１を利用して、受信データの解析を行う。尚、受信データの解析方法は、上述したマイクロコードを利用した制御方法であるため、その詳細な説明は省略する(ステップ９２０)。
【０１０９】
解析が終了すると、その解析結果及び必要に応じて受信データをコントローラ３２０に送信する(ステップ９２１)。
【０１１０】
解析結果ならびに受信データを受信したコントローラ３２０は、解析結果処理を行う(ステップ９２３)。尚、解析結果処理に関しては、図１０を用いて後から説明する。
【０１１１】
コントローラ３２０は、受信した解析結果より、マイクロコードテーブル４４０を参照し、受信解析部３１０が次に処理すべき命令を取得し、その取得した命令をマイクロコード解釈部４１２にて制御信号に変換した後、受信解析部３１０に送信する(ステップ１０１０、ステップ１０１２、ステップ１０１４)。
【０１１２】
ステップ１０１０〜ステップ１０１４に並行して、もし受信した解析結果により、同期処理を行う必要がある場合、同期処理を行う(ステップ１０２０)。同期処理とは、各通信端末のリアルタイム性を維持するため、ネットワーク上に存在する通信端末間で同期を取るための処理であり、同期処理の方法として、IEEE 1588に準拠した同期方式と通信プロトコルに準拠した同期方式の二種類がある(ステップ１０２２、ステップ１０２４、ステップ１０２６)。
【０１１３】
図１１を用いてIEEE 1588に準拠した同期方式について説明する。まず、初めに、マスタ１００とスレーブＡ１１０間の伝送遅延があり、その伝送遅延時間をＴとする。マスタ１００はスレーブＡ１１０に対して、マスタ自身がデータを送信する時刻Ｔmaster1を設定したフレームを送信する(ステップ１１１０)。フレームを受信したスレーブＡ１１０は、フレームを受信した時刻Ｔslave1とフレームに設定されている時刻の差分を求める(ステップ１１２０)。例えば、Ｔmaster1を１００、Ｔslave1を９１とすると、差分は−９となる。従って、転送遅延時間Ｔは不明であるが、マスタ１００とスレーブＡ１１０の間には−９の誤差があることが分かる。
【０１１４】
そこで、スレーブＡ１１０はその差分を補正する。次に、スレーブＡ１１０の補正が正確に行われたことをスレーブＡ１１０自身で確認するため、マスタ１００はスレーブＡ１１０に対して、時刻Ｔmaster２を設定したフレームを送信する(ステップ１１３０)。
【０１１５】
フレームを受信したスレーブＡ１１０は、フレームを受信した時刻Ｔslave２とフレームに設定されている時刻の差分を求める(ステップ１１４０)。尚、補正が行われているため、今回は差分は０となる。
【０１１６】
補正が終わったら、次に伝送遅延時間Ｔを求める手順に進む。
【０１１７】
スレーブＡ１１０はマスタ１００に対して、遅延要求を送信する(ステップ１１５０)。この際、遅延要求を送信した時刻Ｔslave３はメモリ等に保存しておく。
【０１１８】
遅延要求を受信したマスタ１００はすぐに遅延応答をスレーブＡ１１０に対して送信する(ステップ１１６０)。遅延応答を受信したスレーブＡ１１０は、その遅延応答を受信した時刻Ｔslave４をメモリ等に保存し、Ｔslave３とＴslave４より伝送遅延時間Ｔを求める(ステップ１１７０)。
【０１１９】
尚、IEEE 1588準拠の同期処理に必要な時刻の取得は、同期制御部４３０に内蔵されているリアルタイムクロック４３１を利用して行う。以上がIEEE 1588に準拠した同期方式の流れである。
【０１２０】
図９において、同期処理でなく、ステップ１０１０〜ステップ１０１４と並行して、メモリへのアクセスが必要な場合、メモリアクセス処理を行う(ステップ１０３０)。
【０１２１】
メモリアクセス処理とは、第１のメモリ３３１もしくは第２のメモリ３４１にアクセスし、データの読み出しもしくは書き込みを行う処理である。使用するメモリ領域に関しては、メモリ制御用レジスタ４２４を利用して行う。メモリ制御用レジスタ４２４の使用方法として、起動時にコントローラ３２０がアクセス可能なメモリをメモリ制御用レジスタ４２４に設定する方法や、マスタから送信されるメモリアドレスによってアクセスするメモリを切り替える等の方法がある(ステップ１０３２，ステップ１０３４、ステップ１０３６)。
【０１２２】
また、同期処理でもメモリアクセス処理でもなく、ステップ１０１０〜ステップ１０１４と並行して、アプリケーション独自の処理を行う必要がある場合、アプリケーション独自の処理を行っても良い(ステップ１０４０)。
【０１２３】
解析結果において、メモリアクセスやアプリケーション独自の処理によって、送信データを送信する必要が生じた場合、送信データ処理を行う(ステップ９２４、ステップ９２５)。送信データ処理とは、まず、コントローラ３２０が、送信したいデータを送信生成部３１２内にある送信バッファ６３０に設定し、送信生成部３１２に対して、送信するデータが存在していること、並びに送信するタイミングを通知する処理である。尚、送信データに関しては、送信バッファ６３０でなく、送受信データ制御部３１４内の送受信データバッファ７２０に設定しても良い。
【０１２４】
送信要求を受信した送信生成部３１２は、送信データを格納した場所を確認した後、そのデータを利用して送信データを生成し、信号処理部３０２に送信する(ステップ９３０、ステップ９３１、ステップ９３６、ステップ９３７)。
【０１２５】
送信データを作成する動作は、コントローラ３２０が送信生成部３１２を制御して行う。制御方法については、上記で説明したマイクロコードを利用した制御方法であるからその詳細な説明は省略する。
【０１２６】
以上説明した実施の形態１によれば以下の作用効果を得る。
（１）レジスタ４２２の設定に従って、受信ポートと送信ポートを別々のポートに割り当てることができる。受信したデータをから通信インタフェースから逐次、受信した受信パケットを逐次解析しつつ、受信したパケットをそのまま別ポートの送信データとして送信することができる。リニア型やツリー型などの種々のネットワークトポロジに対応化脳である。その際に、別ポートに送信するタイミングはレジスタ４２３によって設定することが可能であり、種々のネットへ柔軟に対応することが可能である。
（２）受信した受信パケットの逐次解析ならびに送信する送信パケットの逐次生成をマイクロコードに基づいて制御、実行を行う。このマイクロコードを書き換え可能なメモリ３４１，４４０に保存することにより、マイクロコードの変更を行うことができ、様々な通信プロトコルにも対応することが可能となる。通信プロトコルはレジスタ４２１の設定によって指定することができる。
（３）上記より、リアルタイム性を要する通信プロトコルを含めて、多様な通信プロトコル処理への対応を低コストで実現することが可能となる。
【０１２７】
＜第２の実施の形態＞
図１２は、本発明の第２の実施の形態における通信端末のハードウェア構成の一例が示される。以下、第１の実施の形態との差異を中心に説明する。
【０１２８】
通信端末１２００は、通信インタフェース３０１、信号処理部３０２、受信解析部３１０、送信生成部３１２、送受信データ制御部３１４、DMA制御部３１５、コントローラ３２０、第１のメモリ制御部３３０、第１のメモリ３３１、第２のメモリ制御部３４０、第２のメモリ３４１、プロセッサ３５０、有線インタフェース１２８０、及び同期制御部１２９０を有する。
【０１２９】
尚、通信端末１２００は、通信端末１２００上で動作するサービス、アプリケーションに応じて、図示していない磁気ディスク装置等の記憶装置や表示パネルを有する構成であってもよい。
【０１３０】
第１の実施の形態の通信端末３００と比較して、第２の実施の形態の通信端末１２００は、有線インタフェース１２８０を備えている点ならびに同期制御部１２９０がコントローラ３２０の内部に搭載されておらず、通信インタフェース３０１と直接通信できる点が異なる。通信端末１２００内の他の構成要素については、第１の実施の形態と同一のであるからその詳細な説明は省略する。
【０１３１】
有線インタフェース１２８０を搭載することにより、通信インタフェース３０１から成るネットワークとは別のネットワークにアクセスすることが可能となる。有線インタフェース１２８０は無線インタフェースでも良い。
【０１３２】
第１の実施の形態では、通信端末３００が様々な通信プロトコルに対応するため、受信解析部３１０及び送信生成部３１２の制御のために使用する各通信プロトコルに対応したマイクロコードを第２のメモリ３４１に事前に保存しておき、電源投入時に、通信端末３００が実行する通信プロトコルに応じて、マイクロコードテーブル４４０に設定するように構成される。この場合、通信端末３００が多くの通信プロトコルに対応する場合、第２のメモリ３４１に複数のマイクロコードを保存しておく必要があり、大容量のメモリが必要となる。そこで、マイクロコードは全て外部のネットワークにあるサーバに保存しておき、起動時にそのサーバからアクセスすることによって、マイクロコードをマイクロコードテーブル４４０にダウンロードすれば良い。この方法により、マイクロコード用に大容量のメモリを持つ必要がなくなり、通信端末１２００のコストを削減することが可能となる。
【０１３３】
同期制御部１２９０が通信インタフェース３０１に直結すればリアルタイムクロックによる同期制御に与える内部動作遅延の影響を小さくすることができる。
【０１３４】
図１３には通信端末１２００における電源投入後の起動シーケンスが例示される。
【０１３５】
電源投入後、有線インタフェース１２８０を通じて通信端末１２００の動作に必要なマイクロコードならびにパラメータを取得する(ステップ１３１０)。
【０１３６】
取得したマイクロコードならびにパラメータを通信処理部３７０に設定する(ステップ１３１０)。
【０１３７】
次に、通信端末１３００上で動作するアプリケーション、サービスに応じて、第２のメモリ３４１に保存してあるデータを第１のメモリ３３１に保存する(ステップ１３３０)。
【０１３８】
また、第２のメモリ３４１に保存してあるデータをサーバに保存しても良く、その場合には有線インタフェース１２８０を経由して第１のメモリ３３１に保存する。
【０１３９】
最後に、データ通信に使用するプロトコルに準拠した初期化シーケンスを実行し、起動シーケンスは終了する(ステップ１３４０)。
【０１４０】
産業用イーサネットの場合、フレームのタイプを参照することにより、マスタ１００が送信する通信プロトコルを判定することが可能である。そこで、各プロトコルに準拠した初期化シーケンス中に有線インタフェース１２８０を通じてマイクロコードを取得し、通信制御部３７０に設定してもよい。
【０１４１】
別のネットワークにアクセスすることが可能になることにより、マイクロコードの保存ならびに第２のメモリ３４１そのものが必要なくなる。
【０１４２】
通信端末１２００は、有線インタフェース１２８０を搭載した他に、同期制御部１２９０を通信インタフェース３０１と通信できる構成になっている。
【０１４３】
図１１を用いて説明したように同期処理にはデータの送受信時の時刻が必要となる。第１の実施の形態にあるような受信解析部３１０ならびにコントローラ３２０で解析処理を行った後、同期処理の開始を行うような処理フローでは、ｎｓ（ナノ・セカンド）ns単位の同期精度が必要なプロトコルの同期処理に対応できない虞がある。そこで、同期制御部１２９０を直接通信インタフェース３０１と通信できる構成にすることにより、データの送受信に関するより正確な時間を取得することが可能となる。
【０１４４】
その他、第２の実施の形態載によっても上記第１の実施の形態と同様の作用効果を得る。
【０１４５】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１４６】
例えば、個々の通信ポートは図１に示されるように送信と受信を別信号線で並列に行うことができる構成に限らず、送信と受信を同一信号線を用いて行う構成にしてもよい。
【０１４７】
また、実施の形態の説明では本発明に係る通信データ処理装置および通信データ処理方法を適用した通信端末を一例としたが、本発明はそれに限定されず、産業用イーサネットに用いる通信制御用の各種デバイス等に広く適用することができる。
【符号の説明】
【０１４８】
１００  マスタ
１１０  スレーブＡ
１２０  スレーブＢ
１３０  スレーブＣ
２００  イーサネットヘッダ
２０１  プリアンブル
２０２  送信先ＭＡＣアドレス
２０４  送信元ＭＡＣアドレス
２０６  ＥｔｈｅｒＴｙｐｅ
２２０  データフィールド
２４０  ＦＣＳ
３００  通信端末
３０１  通信インタフェース
３０２  信号処理部
３１０  受信解析部
３１２  送信生成部
３１４  送受信データ制御部
３１５  ＤＭＡ制御部
３２０  コントローラ
３３０  第１のメモリ制御部
３３１  第１のメモリ
３４０  第２のメモリ制御部
３４１  第２のメモリ
３５０  プロセッサ
３６０  周辺制御部
３７０  通信処理部
【図１】
2010278897.tif 000003
【図２】
2010278897.tif 000004
【図３】
2010278897.tif 000005
【図４】
2010278897.tif 000006
【図５】
2010278897.tif 000007
【図６】
2010278897.tif 000008
【図７】
2010278897.tif 000009
【図８】
2010278897.tif 000010
【図９】
2010278897.tif 000011
【図１０】
2010278897.tif 000012
【図１１】
2010278897.tif 000013
【図１２】
2010278897.tif 000014
【図１３】
2010278897.tif 000015