(57)【要約】【目的】データが共通バス上で衝突するのを回避する「データ通信システム及びデータ通信方法」を提供することである。【構成】共通バスを介して所定の通信ユニットから他の通信ユニットへデータを送信するデータ通信システムにおいて、各通信ユニットに優先順位を付し、何れかの通信ユニットがデータ送信中であるか否かを示す信号を各通信ユニット入力し、何れの通信ユニットもデータ送信中ない場合において、データ送信を希望する通信ユニットよりデータを送出し、各通信ユニットからのデータ送出が競合したとき、優先順位が最高の通信ユニットから送出されたデータを選択して前記共通バスに送出し、データを送出した通信ユニットにおいて、前記共通バスより取り込んだデータと送出したデータが同じであるかを調べ、同じ場合にはデータ送信が成功したと判定し、異なる場合には、データ送信が失敗したと判定する。【選択図】図１
2011151769.tif 000002
【特許請求の範囲】
【請求項１】
共通バスを介して所定の通信ユニットから他の通信ユニットへデータを送信するデータ通信システムにおけるデータ通信方法において、
前記各通信ユニットに優先順位を付し、
何れかの通信ユニットがデータ送信中であるか否かを示す信号を各通信ユニットに入力し、
何れの通信ユニットもデータ送信中でない場合において、データ送信を希望する通信ユニットよりデータを送出し、
各通信ユニットからのデータ送出が競合したとき、優先順位が最高の通信ユニットから送出されたデータを選択して前記共通バスに送出し、
データを送出した通信ユニットにおいて、前記共通バスより取り込んだデータと送出したデータが同じであるかを調べ、同じ場合にはデータ送信が成功したと判定し、異なる場合には、データ送信が失敗したと判定する、
ことを特徴とするデータ通信方法。
【請求項２】
各通信ユニットからのデータ送出が競合したとき、競合する通信ユニットの全てからのデータ送信が完了するまで、前記優先順位が最高の通信ユニットから送出されるデータを選択して前記共通バスに送出する状態を維持する、
ことを特徴とする請求項１記載のデータ通信方法。
【請求項３】
共通バスを介して何れの通信ユニットもデータ送信中でない場合において、該共通バスを介して所定の通信ユニットから他の通信ユニットへデータを送信するデータ通信システムにおいて、
何れかの通信ユニットがデータ送信中であるか否かを示す信号を各通信ユニットに入力するデータ送信中信号発生部、
前記各通信ユニットに優先順位を付しておき、各通信ユニットからのデータ送出が競合したとき、優先順位が最高の通信ユニットから送出されたデータを選択して前記共通バスに送出するデータ選択送出部、
各通信ユニットに設けられ、前記共通バスより取り込んだデータと送出したデータが同じであるかを調べ、同じ場合にはデータ送信が成功したと判定し、異なる場合には、データ送信が失敗したと判定する判定部、
を備えたことを特徴とするデータ通信システム。
【請求項４】
前記データ送信中信号発生部は、各通信ユニットよりデータ送信中の有無を示す信号が入力され、何れかの通信ユニットがデータ送信中であるか否かを示す信号を生成して各通信ユニットに入力し、
前記データ選択送出部は、各通信ユニットよりデータ送出に先だって出力されるデータ送出要求信号を入力され、該データ送出要求信号により各通信ユニットからのデータ送出が競合したか判断する、
ことを特徴とする請求項３記載のデータ通信システム。
【請求項５】
前記選択送出部は、各通信ユニットからのデータ送出が競合したとき、競合する通信ユニットの全てからのデータ送信が完了するまで、前記優先順位が最高の通信ユニットから送出されるデータを選択して前記共通バスに送出する状態を維持する、
ことを特徴とする請求項３記載のデータ通信システム。
【請求項６】
それぞれの通信ユニットが３線式クロック同期通信機能を備え、そのうち１つの通信ユニットがクロックをクロックラインに送出する機能を備え、何れの通信ユニットもデータラインを介してデータ送信中でない場合において、前記クロックラインに送出されたクロックに同期して通信ユニット間で前記データラインを介してデータを送受するデータ通信システムにおいて、
前記データラインと、前記クロックラインと、データ送信に先立ってデータ送信中を示す第１のレベルに設定され、データ送信完了により第２のレベルに設定されるデータ送信中呈示ラインとにそれぞれ接続される少なくとも３台の通信ユニット、
各通信ユニットからのデータ送出が競合するとき、優先順位が最高の通信ユニットからの指示を選択し、該指示にしたがって前記データ送信中呈示ラインをデータ送信中であることを示す第１レベルに設定し、データ送信完了により第２のレベルに設定するデータ送信中設定部、
各通信ユニットからのデータ送出が競合したとき、優先順位が最高の通信ユニットから送出されたデータを選択して前記データラインに送出するデータ選択送出部、
を備え、
クロック発生機能を備えた通信ユニットは、前記データ送信中呈示ラインが前記第１のレベルに設定されるとクロックを前記クロックラインに送出し、該データ送信中呈示ラインが前記第２のレベルに設定されるとクロックの送出を停止し、
データを送信する通信ユニットは、該クロックに同期してデータの送出を行い、
データを送出した通信ユニットは前記データラインより取り込んだデータと送出したデータが同じであるかを調べ、同じ場合にはデータ送信が成功したと判定し、異なる場合には、データ送信が失敗したと判定し、データを送出しない通信ユニットは前記データラインより取り込んだデータが自分宛のデータであるか調べ、自分宛であれば取り込み、自分宛でなければ破棄する、
ことを特徴とするデータ通信システム。
【請求項７】
前記データ送信中設定部および前記データ選択送出部は、各通信ユニットよりデータ送出に先だって出力されるデータ送出要求信号を入力され、該データ送出要求信号により各通信ユニットからのデータ送出が競合したか判断する、
ことを特徴とする請求項６記載のデータ通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は各通信ユニットが共通バスを介してデータを他の通信ユニットに送信するデータ通信システム及びデータ通信方法に係り、特に、UART (Universal Asynchronous Receiver-Transmitter)などの非同期通信ユニットや３線式クロック同期通信ユニットから送出されるデータが共通バス上で衝突するのを完全に、かつ効率的に回避できるデータ通信システム及びデータ通信方法に関する。
【背景技術】
【０００２】
共通バスを介してデータを送信するデータ通信システムでは、共通バスが空いていれば、通信ユニットは該共通バスを介してデータを他の通信ユニットに送信することができる。一方、共通バスを介して他の通信ユニットがデータを伝送していれば、データの衝突を避けるために該共通バスを介してデータを伝送することができず、共通バスが空くのを待つ必要がある。
バスの使用権割り当て方法としてアービットレーションによる方法が周知である。しかし、マイコンのUART等の非同期通信機能には該アービットレーション機能が搭載されておらず、この方法を使用してネットワークシステムを構築することはできない。非同期通信機能を使用したネットワークシステムに適用可能なバスの使用権の割り当て方法としては、送信権方式、ポーリング方式、データ破壊検出方式などがある。
送信権方式は、送信権をもらった通信ユニットが送信可能となり、送信完了後、次の送信ユニットに送信権を渡し、以後、順番に送信権を得た通信ユニットがデータを送信する方法である。
ポーリング方式は、1つのマスターユニットがスレーブユニット(通信ユニット)に対して順番にアクセスし、アクセスされたスレーブユニットが送信可能となる方法である。
データ破壊検出方式は、任意のタイミングで各通信ユニットがデータを共通バスを介して送信し、衝突が起きた場合にはデータが破壊されたことを検出して再送する方法であり、いわゆるCSMA/CD方式である。
【０００３】
しかし、送信権方式では、送信する必要のない場合でも、送信権を渡さなくてはならず無駄が多く、送信権が回ってくるまで送信ができず、レスポンスが悪いという問題がある。
また、ポーリング方式では、送信する必要のない場合でも、ポーリングしなければならず、無駄な通信が多く、ポーリングが回ってくるまで送信ができず、送信権方式と同様レスポンスが悪いという問題がある。
データ破壊検出方式では、複数ユニットが同時に送信すると、データが破壊されてしまい再送が必要となり、再送によって無駄な通信が多くなり、しかも、送信した複数ユニットが全てデータを再送するため、再度衝突する可能性が高い。
【０００４】
そこで、共通バス上におけるデータ衝突を減少する従来技術がある(特許文献1参照)。図１４はかかる従来技術の説明図であり、３個の非同期局１０１〜１０３が共通バス(共通双方向通信バス)１０４にインターフェースを介して接続し、該共通バス１０４にデータを他局に向けて送出し、また、他局から送出されたデータを取り込むようになっている。
各非同期局１０１〜１０３は同一の構成を備え、UART(Universal Asynchronous Receiver-Transmitter)１０６〜１０８、プロセッサ１０９〜１１１、双方向インターフェース１１２〜１１４、及びNORゲート１１５〜１１７を備えている。各UARTは、データを送信するデータ送信ポートTD、データ受信ポートRD、データ送信時にビジー信号（“１”）を、コンテンションチャネルを介して出力する送信要求ポートRTS、他局のいずれかがビジー信号を出力しているか否かを示す信号が入力される送信可ポートCTSを備えている。各NORゲートには他局の送信要求ポートRTSの出力信号が入力し、NOR論理出力をUARTの送信可ポートCTSに入力するようになっている。
【０００５】
各局はデータ送信時にビジー信号（“１”）をコンテンションチャネル１１８〜１２０に送出するため、少なくとも１つの他局がビジー信号（“１”）を出力している場合には、送信可ポートCTSに“０”の信号が入力する。換言すれば、送信可ポートCTSに“０”の信号が入力している場合には、他局が共通バス１０４を介してデータを送信していると判断でき、逆に送信可ポートCTSに“１”の信号が入力している場合には、いずれの他局も共通バス１０４を介してデータを送信していないと判断できる。
そこで、データを送信したい局は、送信可ポートCTSに“１”の信号(送信可信号)が入力していることを確認し、ビジー信号（“１”）をコンテンションチャネル１１８〜１２０に送出した後、データを共通バス１０４に送出する。そして、データ送信完了後にビジー信号（“１”）の送出を停止する。これにより、各局の送信可ポートCTSには“１”の信号(送信可信号)が入力することになり、以後、データ送信したい他局はデータ送信が可能となる。これにより、ある局がデータ通信中に、他局は共通バスにデータを送出することがなくなり、データ衝突の可能性が減少する。
【０００６】
しかし、ある局がデータ通信中に、２つの他局が両方ともデータを送信したくなる場合があり、かかる場合、ある局のデータ通信が終了すると、２つの他局の送信可ポートCTSに同時に“１”の信号(送信可信号)が入力する。この結果、２つの他局が同時にビジー信号（“１”）をコンテンションチャネルに送出してデータを共通バス１０４に送出し、これによりデータの衝突が発生する。
従来技術は、かかるデータの衝突をさけるためにビジー信号（“１”）を送出した後、所定時間経過後に再度、送信可ポートCTSに“１”の信号(送信可信号)が入力しているかチェックし、“１”の場合に限り共通バス１０４にデータを送出し、”０”の場合には共通バス１０４へのデータ送出を中止する。この制御により、２つの他局は共通バスへのデータ送出を中止し、ビジー信号（“１”）の送出を停止する。しかし、かかる方法では、２つの他局は再度データの送信を試みることになるが、状況は同じであり、いつまでたってもデータ送信ができなくなる問題が生じる。又、何らかの打開策を講じてデータを送信可能なようにするとすれば、それなりのハードウェアや処理制御が必要となる問題がある。
以上より、UART (Universal Asynchronous Receiver-Transmitter)などの非同期通信ユニットから送出されるデータが共通バス上で衝突するのを回避できるデータ通信システム及びデータ通信方法が要望されている。
ところで、UARTの内蔵マイコンに設定できるボーレートやその精度はUARTにより異なる。このため、複数のUARTを使用する場合、使用する全てのマイコンが対応できるボーレートを選択する必要があり、実際の設計ではボーレートが低くなる問題がある。そこで、ボーレートについての制限が無く、実質的に通信スピードを上げやすいクロック同期３線式通信ユニットを採用してデータ通信システムを構築することが考えられている。
クロック同期３線式は、シリアルクロックSCKとデータ入力SI、データ出力SOの３本の通信ラインを使った通信であり、図１５に示すように一般的に２つの通信ユニット（マイコン）２０１，２０２間での通信に使用されて図示する接続となる。ただし、３本の通信ラインのほかに制御用としてハンドシェークラインを追加することができる。マイコン２０１，２０２はそれぞれシリアルクロックSCKに同期してデータ送信及びデータ受信を行なうことができ、図１６に示すようにシリアルクロックSCKの立下りに同期してデータ転送をすることができる。
すなわち、図１５において、マイコン２０１はデータを送信する場合、シリアルクロックSCKを発生し、該クロックSCKの立下りに同期してデータ（DO7〜DO0）をマイコン２０２に転送し、マイコン２０２はシリアルクロックSCKを受信し、該クロックSCKの立上りに同期してデータ（DI7〜DI0）を取り込む。また、マイコン２０２はデータを送信する場合、クロック発生器を内蔵していれば、シリアルクロックSCKを発生し、該クロックSCKの立上りに同期してデータ（DO7〜DO0）をマイコン２０１に転送し、マイコン２０１はシリアルクロックSCKを受信し、該クロックSCKの立上りに同期してデータ（DI7〜DI0）を取り込む。
なお、マイコン２０２がクロック発生器を内蔵していない場合には、マイコン２０１がシリアルクロックSCKを発生してマイコン２０２に転送し、マイコン２０２は該シリアルクロックSCKの立下りに同期してデータ（DO7〜DO0）をマイコン２０１に転送し、マイコン２０１はシリアルクロックSCKの立上りに同期してデータ（DI7〜DI0）を取り込むこともできる。
かかる３線式クロック同期通信機能を備えた３つ以上の各マイコンが他のマイコンに対して任意のタイミングでデータ送信を行えるマルチマスターBUSを実現しようとすると以下の問題に遭遇する。第１の問題は、データ送信するマイコンがシリアルクロックを出すものとすれば、競合が発生すると各マイコンが出力するクロックがクロックライン上で衝突する。第２の問題は、クロックを出すマイコンを１つに固定すれば、いつクロックを出し、いつクロックを停止するかの制御が困難である。
図１７は第１の問題点説明図であり、各マイコン３０１〜３０３は同一の構成を備え、データ出力端子DATAout、データ入力端子DATAin、クロック入出力端子SCKin/outを備え、各マイコンのデータ出力端子DATAoutから出力されるデータはデータ切換部３０４で選択されてデータラインDATA-lineを介して各マイコンのデータ入力端子DATAinに入力するようになっており、また、各マイコンのクロック入出力端子SCKin/outはクロックラインSCK-lineを介して他のマイコンにクロックを転送するようになっている。したがって、例えば、第１のマイコン３０１がデータを送信する場合、該マイコンより他のマイコンにクロックを送信することができ、また、データ切換部３０４によりデータをデータラインDATA-lineに送出し、該データラインDATA-lineを介して他のマイコンに送信することができ、何らの問題は生じない。しかし、例えば第１、第２の２つのマイコン３０１，３０２がデータを送信する場合(競合)、マイコン３０１，３０２は共にクロックをクロックラインSCK-line送信するため、クロックが衝突し、データ送信ができなくなる。
図１８は第２の問題の説明図であり、図１７と異なる点は、第１のマイコン３０１のみが、シリアルクロックSCKを出力するようになっている点である。この図１８の構成においても、第１のマイコン３０１がデータを送信する場合、該マイコンより他のマイコンにクロックを送信することができ、また、データをデータ切換部３０４によりデータラインDATA-lineに送出し、該データラインDATA-lineを介して他のマイコンに送信することができ、何らの問題は生じない。しかし、例えば第２または第３のマイコン３０２，３０３がデータを送信する場合、第１のマイコン３０１は、いつクロックを出し、いつクロックを停止するかが判らずデータ送信ができなくなる。
以上より、３線式クロック同期通信ユニットから送出されるデータがデータライン上で衝突するのを回避し、データを正しく送信できるデータ通信システムが要望されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平７−１５４４００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、データが共通バス上で衝突するのを完全にかつ効率的に回避し、データを正しく送信できるようにすることである。
本発明の目的は、データが衝突する可能性が生じたとき、優先順位の高い通信ユニットからのデータを優先的に共通バスに送出してデータの衝突を回避することである。
本発明の目的は、優先順位の低い通信ユニットが、自分のデータが送出されなかったことを認識できるようにすることである。
本発明の目的は、最優先のマイコンからのデータの送信が終了しても、次優先度の高いマイコンからの後半データが共通バス上に現われるなどの異常状態の発生を防止することである。
本発明の目的は、３線式クロック同期通信ユニットから送出されるデータがデータライン上で衝突するのを回避し、データを正しく送信できるデータ通信システムを提供することである。
【課題を解決するための手段】
【０００９】
本発明は、共通バスを介して何れの通信ユニットもデータ送信中でない場合において、該共通バスを介して所定の通信ユニットから他の通信ユニットへデータを送信するデータ通信システム及び該通信システムにおけるデータ通信方法である。
・データ通信方法
本発明のデータ通信方法は、前記各通信ユニットに優先順位を付するステップ、何れかの通信ユニットがデータ送信中であるか否かを示す信号を各通信ユニット入力するステップ、何れの通信ユニットもデータ送信中でない場合において、データ送信を希望する通信ユニットよりデータを送出するステップ、各通信ユニットからのデータ送出が競合したとき優先順位が最高の通信ユニットから送出されたデータを選択して前記共通バスに送出するステップ、データを送出した通信ユニットにおいて、前記共通バスより取り込んだデータと送出したデータが同じであるかを調べ、同じ場合にはデータ送信が成功したと判定し、異なる場合には、データ送信が失敗したと判定するステップを備えている。
上記のデータ通信方法において、各通信ユニットからのデータ送出が競合したとき、競合する通信ユニットの全てからのデータ送信が完了するまで、前記優先順位が最高の通信ユニットから送出されるデータを選択して前記共通バスに送出する状態を維持する。
【００１０】
・データ通信システム
本発明の第１のデータ通信システムは、何れかの通信ユニットがデータ送信中であるか否かを示す信号を各通信ユニットに入力するデータ送信中信号発生部、前記各通信ユニットに優先順位を付しておき、各通信ユニットからのデータ送出が競合したとき、優先順位が最高の通信ユニットから送出されたデータを選択して前記共通バスに送出するデータ選択送出部、各通信ユニットに設けられ、前記共通バスより取り込んだデータと送出したデータが同じであるかを調べ、同じ場合にはデータ送信が成功したと判定し、異なる場合には、データ送信が失敗したと判定する判定部、を備えている。
上記第１のデータ通信システムにおいて、前記データ送信中信号発生部は、各通信ユニットよりデータ送信中の有無を示す信号が入力され、何れかの通信ユニットがデータ送信中であるか否かを示す信号を生成して各通信ユニットに入力し、前記データ選択送出部は、各通信ユニットよりデータ送出に先だって出力されるデータ送出要求信号を入力され、該データ送出要求信号により各通信ユニットからのデータ送出が競合したか判断する。
上記第１のデータ通信システムにおいて、前記選択送出部は、各通信ユニットからのデータ送出が競合したとき、競合する通信ユニットの全てからのデータ送信が完了するまで、前記優先順位が最高の通信ユニットから送出されるデータを選択して前記共通バスに送出する状態を維持する。
本願発明の第２のデータ通信システムは、それぞれの通信ユニットが３線式クロック同期通信機能を備え、そのうち１つの通信ユニットがクロックをクロックラインに送出する機能を備え、何れの通信ユニットもデータラインを介してデータ送信中でない場合において、前記クロックラインに送出されたクロックに同期して通信ユニット間で前記データラインを介してデータを送受するデータ通信システムであり、前記データラインと、前記クロックラインと、データ送信に先立ってデータ送信中を示す第１のレベルに設定され、データ送信完了により第２のレベルに設定されるデータ送信中呈示ラインと、にそれぞれ接続される少なくとも３台の通信ユニット、各通信ユニットからのデータ送出が競合するとき、優先順位が最高の通信ユニットからの指示を選択し、該指示にしたがって前記データ送信中呈示ラインをデータ送信中であることを示す第１レベルに設定し、データ送信完了により第２のレベルに設定するデータ送信中設定部、各通信ユニットからのデータ送出が競合したとき、優先順位が最高の通信ユニットから送出されたデータを選択して前記データラインに送出するデータ選択送出部を備え、１）クロック発生機能を備えた通信ユニットは、前記データ送信中呈示ラインが前記第１のレベルに設定されるとクロックを前記クロックラインに送出し、該データ送信中呈示ラインが前記第２のレベルに設定されるとクロックの送出を停止し、２）データを送信する通信ユニットは、該クロックに同期してデータの送出を行い、３）データを送出した通信ユニットは前記データラインより取り込んだデータと送出したデータが同じであるかを調べ、同じ場合にはデータ送信が成功したと判定し、異なる場合には、データ送信が失敗したと判定し、データを送出しない通信ユニットは前記データラインより取り込んだデータが自分宛のデータであるか調べ、自分宛であれば取り込み、自分宛でなければ破棄する。
第２のデータ通信システムにおいて、前記データ送信中設定部および前記データ選択送出部は、各通信ユニットよりデータ送出に先だって出力されるデータ送出要求信号を入力され、該データ送出要求信号により各通信ユニットからのデータ送出が競合したか判断する。
【発明の効果】
【００１１】
本発明によれば、各通信ユニットに優先順位を付し、何れかの通信ユニットがデータ送信中であるか否かを示す信号を各通信ユニット入力し、何れの通信ユニットもデータ送信中でない場合において、データ送信を希望する通信ユニットよりデータを送出し、各通信ユニットからのデータ送出が競合したとき、優先順位が最高の通信ユニットから送出されたデータを選択して前記共通バスに送出するようにしたから、データが衝突する可能性が生じたとき、優先順位の高い通信ユニットからのデータを優先的に共通バスに送出することができ、これにより、データの衝突を確実に回避することができ、しかも、優先順位の高い通信ユニットのデータから順番に効率的に送信することが可能となる。
本発明によれば、データを送出した通信ユニットにおいて、前記共通バスより取り込んだデータと送出したデータが同じであるかを調べ、同じ場合にはデータ送信が成功したと判定し、異なる場合には、データ送信が失敗したと判定するようにしたから、自分が送出したデータが成功裡に送出されたか、送信が失敗したかを認識でき、失敗した場合には、再送により該データ送信することが可能となる。
本発明によれば、各通信ユニットからのデータ送出が競合したとき、競合する通信ユニットの全てからのデータ送信が完了するまで、前記優先順位が最高の通信ユニットから送出されるデータを選択して前記共通バスに送出する状態を維持するようにしたから、最優先のマイコンからのデータの送信が先に終了しても、次優先度の高いマイコンからの後半データが共通バス上に現われるなどの異常状態の発生を防止することができ、確実なデータ送信が可能になる。
本発明によれば、複数の３線式クロック同期通信ユニットからのデータ送出が競合するとき、優先順位が最高の通信ユニットからの指示を選択し、該指示にしたがってデータ送信中呈示ラインをデータ送信中を示す第１レベルに設定し、データ送信完了によりデータ非送信中を示す第２のレベルに設定し、かつ、優先順位が最高の通信ユニットから送出されたデータを選択してデータラインに送出するように構成したから、データ送出が競合する場合であっても、各通信ユニットから送出されるデータがデータライン上で衝突するのを回避することができ、データを正しく相手通信ユニットに送信することが可能となった。
【図面の簡単な説明】
【００１２】
【図１】本発明の通信システム構成図である。
【図２】切り換え回路の構成図である。
【図３】データ送信が競合しない場合の各部動作波形例である。
【図４】データ送信が競合する場合の各部動作波形例である。
【図５】マイコンのデータ通信処理フローである。
【図６】３線式クロック同期通信機能を内蔵したマイコン（３線式クロック同期通信ユニット）を用いて構成された本発明の通信システム構成図である。
【図７】切り替え回路の構成例である。
【図８】データのフレームフォーマット説明図である。
【図９】データ送信が競合しない場合におけるクロックマスターマイコンとデータ送信マイコンの各部動作波形例である。
【図１０】各マイコンの動作説明図である。
【図１１】データ送信が競合する場合の各部動作波形例である。
【図１２】マイコンの動作説明図である。
【図１３】マイコン６２の送信するデータ長の方がマイコン６１の送信するデータ長よりも長い場合における各部動作波形図である。
【図１４】従来技術の説明図である。
【図１５】クロック同期３線式の通信ユニット（マイコン）間の接続図である。
【図１６】クロック同期３線式の通信ユニット間におけるシリアルクロックSCKを用いた同期データ転送方式説明図である。
【図１７】クロック同期３線式の第１の問題点説明図である。
【図１８】クロック同期３線式の第２の問題の説明図である。
【発明を実施するための形態】
【００１３】
I．第１実施例
（Ａ）通信システム
図１はUARTなどの非同期通信機能を内蔵したマイコンを用いて構成された本発明の通信システム構成図であり、複数の、図では３個の通信機能を備えたマイコン１１〜１３が、対応するスイッチ３１〜３３を介して共通バス２１に接続し、該共通バス２１よりデータを他のマイコンに向けて送信し、他のマイコンから送信されたデータを取り込むようになっている。また、各マイコン１１〜１３はアンドゲート４１、４２を介してフレームライン（Frame-line）２２と接続し、データ送信時に該フレームライン２２にデータ送信中を示すフレーム信号を出力するようになっている。
各マイコン１１〜１３はUARTなどの非同期通信機能を内蔵し、同一の構成を備えている。すなわち、各マイコンは、データを共通バス２１に送出するためのデータ出力端子UART TX、データを共通バス２１より受信するデータ入力端子UART RX、データ送信時にデータ送信中を示すフレーム信号をフレームライン２２に出力するフレームアウト端子Frame out、いずれかのマイコンがデータ送信中であるか否かを示すフレーム信号FRSをフレームライン２２より取り込むフレームイン端子Frame in、データ送出に先だってデータ送出要求信号DTR1〜DTR3を出力するデータ送出要求端子OEを有している。
【００１４】
各マイコン１１〜１３は、共通バス２１を介してデータ送信するとき、フレームアウト端子Frame outよりローレベル（＝“０”）の信号を出力すると共に、データ送信が完了するまでローレベル（＝“０”）に維持される。この結果、何れかのマイコン１１〜１３がデータ送信中は、アンドゲート４２の出力であるフレーム信号FRSはローレベル（＝“０”）になっている。従って、各マイコン１１〜１３はデータ送信に先立って、フレーム信号FRSがローレベルであるかチェックし、ローレベルの場合には他のマイコンがデータ通信中であると判断してデータの送信を差し控え、ハイレベルの場合には何れのマイコンもデータを通信していないと判断し、データ送出要求信号DTR1〜DTR3を出力して対応するスイッチの接点をa端子側に接続してデータの送信を行なう。
各マイコン１１〜１３には優先順位が付されており、マイコンからのデータ送出が競合したとき、共通バス上でデータ衝突が生じないように、優先順位の高いマイコンから送出されたデータのみが共通バス２１に出現するようになっている。図では、マイコン１１の優先順位が最も高く、ついで、マイコン１２、マイコン１３の順になっており、スイッチ３１〜３３は各マイコンからのデータ送出が競合したとき、優先順位が高いマイコンからのデータを選択して共通バス２１に送出するように構成されている。
【００１５】
各スイッチ３１〜３３はマイコン１１〜１３に対応して設けられており、通常、可動接点はb端子側に接続されているが、対応するマイコン１１〜１３のデータ送出要求端子OEからローレベルのデータ送出要求信号DTR1〜DTR3が出力されると可動接点をa端子側に切り換え、対応するマイコン１１〜１３から送出されるデータを共通バス側に出力するようになっている。
また、各スイッチ３１〜３３は図示するように結線されているため、１）優先順位が最高のマイコン１１がデータ送出要求信号DTR1を出力した場合には、スイッチ３１により該マイコン１１からのデータが選択されて共通バス２１に送出され、２）マイコン１１がデータ送出要求信号DTR1を出力せず、マイコン１２がデータ送出要求信号DTR2を出力する場合には、スイッチ３１、３２により該マイコン１２からのデータが選択されて共通バス２１に送出され、３）マイコン１３のみがデータ送出要求信号DTR3を出力する場合には、スイッチ３１、３２、３３により該マイコン１３からのデータが選択されて共通バス２１に送出される。以上より、マイコン１１〜１３からのデータ送出が競合しても、スイッチ３１〜３３により優先順位が高いマイコンから送出されたデータのみが選択されて共通バス２１に送出される。
なお、アンドゲート４１,４２及びフレームライン２２は、データ送信中信号発生部５１を形成し、スイッチ３１〜３３はデータ選択送出部５２を形成する。
また、優先順位が最低のマイコン１３に対応するスイッチ３３は必ずしも必要でなく、マイコン１３のデータ出力端子UART TXをスイッチ３２のb端子に直接接続するようにしてもよい。さらに、スイッチ３１〜３３は、図２に示す切り替え回路３５で置き換えることもできる。
【００１６】
図２において、切り換え回路３５は、判定部３５aとスイッチ３５bを備え、判定部３５aは各マイコン１１〜１３から出力される信号DTR1〜DTR3に基づいてどのマイコンからデータ送出要求が出されているか判断し、２以上のマイコンよりデータ送出要求が出されている場合、すなわち、データ送出が競合する場合には、優先度の高いマイコンから出力されたデータを選択するようスイッチ３５bに指示し、１つのマイコンだけからデータ送出要求が出されている場合には、該マイコンから出力されたデータを選択するようスイッチ３５bに指示する。スイッチ３５bの入力端子には各マイコン１１〜１３のデータ出力端子UART TXから出力されるデータが入力されるようになっており、スイッチ３５bは判定部３５aから指示されたマイコンから出力されたデータを選択して共通バス（UART-line）２１に送出する。
【００１７】
（Ｂ）競合しない場合のデータ送信
図３は他のマイコンとデータ送信が競合しない場合の各部動作波形例であり、所定のマイコン、例えばマイコン１１がデータを、共通バス２１を介して他のマイコン１２，１３に送信するものとする。
マイコン１１は、データの送信直前に、フレームイン端子Frame inよりフレームライン２２上のフレーム信号FRSを取り込み、該フレーム信号FRSがローレベルであるか、すなわち、他のマイコンがデータ通信中であるか否かを確認する。
フレーム信号FRSがハイレベルで、他のマイコンがデータ通信中でなければ、フレームアウト端子Frame outよりローレベルの信号を出力し、フレーム信号FRSをローレベルにする（時刻T1）。これにより、マイコン１１がデータ送信を完了するまで他のマイコンはデータを送信することはない。
【００１８】
又、マイコン１１はフレーム信号FRSをローレベルにすると同時にデータ送出要求端子OEからローレベルのデータ送出要求信号DTR1を出力する。これにより、スイッチ３１は可動接点を端子a側に接続し、マイコン１１のデータ出力端子UART TXを共通バス２１に接続する。
以後、マイコン１１はデータ出力端子UART TXより所定の時刻T2から時刻T3まで共通バス２１にデータを送出する。そして、データ送出完了後の時刻T4において、フレームアウト端子Frame outよりハイレベルの信号を出力してフレーム信号FRSをハイレベルにすると共に、データ送出要求信号DTR1をハイレベルにしてデータの送信を完了する。なお、マイコン１１は上記のデータ送出期間中、共通バス２１に送出したデータをデータ入力端子UART RXより取り込み、データ送信完了後に、該データが送信したデータと同じであるか調べ、同じ場合にはデータ送信が成功したと判定し、異なる場合には、データ送信が失敗したと判定する。図３の実施例では、他のマイコンと競合しないものとしているから、共通バス２１より取り込んだデータと送信したデータは同じになる。
【００１９】
（Ｃ）競合する場合のデータ送信
図４はデータ送信が競合する場合の各部動作波形例であり、マイコン１１とマイコン１２のデータ送信が競合する場合である。
例えば、マイコン１３が共通バス２１を介してデータ通信中に、マイコン１１とマイコン１２が共にデータを送信すべき状況になったものとする。かかる場合、マイコン１３のデータ送信が完了してフレームライン２２のフレーム信号FRSがハイレベルになると、マイコン１１とマイコン１２は時刻Ｔ１において同時にフレームアウト端子Frame outよりローレベルの信号を出力してフレーム信号FRSをローレベルにすると共に、端子REよりローレベルのデータ送出要求信号DTR1, DTR2を出力する。これにより、スイッチ３１，３２はそれぞれ可動接点を端子a側に接続するが、スイッチ３１〜３２の接続により、優先順位の高いマイコン１１のデータ出力端子UART TXが共通バス２１に接続し、優先順位の低いマイコン１２のデータ出力端子UART TXは共通バス２１に接続されない。
この結果、各マイコン１１〜１２は時刻T2においてデータの送出を開始しても、マイコン１１から送出されたデータのみが共通バス２１に送出されて伝送される。マイコン１１からのデータ伝送は時刻T3において終了し、時刻T4においてフレームアウト端子Frame outよりハイレベルの信号を出力する。しかし、マイコン１２はまだデータ送出中でありフレームアウト端子Frame outよりハイレベルの信号を出力していないため、フレーム信号FRSはローレベルになったままである。
【００２０】
フレーム信号FRSがローレベルの間は、マイコン１１はデータ送出要求信号DTR1をハイレベルにしないため、スイッチ３１は依然として、マイコン１１のデータ出力端子UART TXを共通バス２１に接続し、マイコン１２のデータ出力端子UART TXを共通バス２１に接続しない。この結果、共通バス２１上のデータは時刻T3において途絶える。
以後、マイコン１２はデータ送出を継続し、時刻T5においてデータ伝送が終了すると、時刻T6においてフレームアウト端子Frame outよりハイレベルの信号を出力する。この結果、フレーム信号FRSがハイレベルになるため、各マイコン１１，１２はデータ送出要求信号DTR1、DTR2をハイレベルにして、スイッチ３１〜３３を初期状態に戻してデータの送信を完了する。
以上、データ送信が競合する場合、優先順位の高いマイコンからのデータを優先的に共通バスに送出することができ、これにより、データの衝突を確実に回避することができ、しかも、優先順位の高いマイコンのデータから順番に効率的に送信することが可能となる。
また、データ送信が競合する場合、競合している全マイコン（図４の例ではマイコン１１，１２）がデータ送信を完了するまで、各マイコン１１，１２はデータ送出要求信号DTR1~DTR2をローレベルに維持する。このため、対応するスイッチ３１，３２は、全マイコンがデータ送信を完了するまで、可動接点の端子a側への接続を維持するから、最優先のマイコン１１からのデータ送信が終了しても、次優先度の高いマイコン１２からの後半データはスイッチ３１に阻止されて共通バス２１上に現われない。すなわち、最優先のマイコンからのデータの送信が先に終了しても、次優先度の高いマイコンからの後半データが共通バス上に現われるなどの異常状態の発生を防止することができる。
【００２１】
（Ｄ）マイコンンのデータ通信処理
図５はマイコンのデータ通信処理フローである。
各マイコンは、データの送信直前に、フレームイン端子Frame inよりフレームライン２２上のフレーム信号FRSを取り込み、該フレーム信号FRSがローレベルであるか、すなわち、他のマイコンがデータ通信中であるか否かを確認する（ステップ１０１）。
フレーム信号FRSがハイレベルで、他のマイコンがデータ通信中でなければ、フレームアウト端子Frame outよりローレベルの信号を出力し、フレーム信号FRSをローレベルにする（ステップ１０２）。これにより、マイコンがデータ送信を完了するまで他のマイコンはデータを送信することがなくなる。
又、マイコンはフレーム信号FRSをローレベルにすると同時にデータ送出要求端子OEからローレベルのデータ送出要求信号DTR1〜DTR3を出力し、対応するスイッチの可動接点を端子a側に接続する（ステップ１０３）。
以後、マイコンはデータ出力端子UART TXよりデータの送出を開始し、データの送出を行なうと共に、共通バス２１に送出されたデータを取り込む（ステップ１０４〜１０５）。全データの送信が完了すれば、送出したデータと共通バス２１から取り込んだデータが同じであるかチェックし（ステップ１０６）、同じであれば、データ送信が成功したと判定し（ステップ１０７）、異なる場合には、データ送信が失敗したと判定する（ステップ１０８）。送出したデータと共通バス２１から取り込んだデータが異なる場合とは、複数のマイコンからのデータ送出が競合し、優先順位の高いマイコンからのデータが選択され、優先順位の低いマイコンから送出されたデータが選択されずに共通バスに送出されない場合である。又、データ送出が失敗したマイコンは、再度データ送出を試みることになる。
【００２２】
以上、第１実施例によれば、データが共通バス上で衝突するのを回避することができる。すなわち、データが衝突する可能性が生じたとき、優先順位の高い通信ユニットからのデータを優先的に共通バスに送出してデータの衝突を回避でき、優先順位の低い通信ユニットは、自分のデータが送出されなかったことを認識でき、再送により送信することが可能になる。
又、第１実施例によれば、最優先のマイコンからのデータの送信が先に終了しても、次優先度のマイコンからのデータが共通バス上に現われるなどの異常状態の発生を防止することができる。
以上では非同期通信機能を備えたマイコンを通信ユニットの例として使用した場合について説明したが本発明はかかるマイコンに限るものではない。
【００２３】
II．第２実施例
（Ａ）通信システム
（a）全体の構成
図６は３線式クロック同期通信機能を内蔵したマイコンを用いて構成された本発明の通信システム構成図であり、複数（図では３個）のマイコン６１〜６３が対応する第１のスイッチ７１a〜７３aを介してデータラインDATA-line ８１に接続し、該データライン８１よりデータを他のマイコンに向けて送信すると共に、該データライン８１より他のマイコンから送信されたデータを取り込むようになっている。また、各マイコン６１〜６３は第２のスイッチ７１ｂ〜７３ｂを介してフレームラインFrame-line（データ送信中呈示ライン）８２と接続し、データを送信するマイコンは該フレームライン８２をローレベルにすることにより、各マイコンは他のマイコンがデータ送信中であるかを判断できるようになっている。更に、１つのマイコンのみ(図ではマイコン６１)がクロック出力用マイコンとなって他のマイコンからの要求によりシリアルクロック(以後単にクロックという) SCKをクロックラインSCK-line ８３に出力し、他のマイコン６２〜６３は該クロックライン８３からクロックSCKを取り込み、該クロックに合わせてデータをデータライン８１に送出すると共に、該データラインからデータを受信できるようになっている。
【００２４】
各マイコン６１〜６３は３線式クロック同期通信機能を内蔵し、１つのマイコンのみ(図ではマイコン６１)がクロックマスターマイコンとなってクロックSCKを発生する点を除けば、ほぼ同じ構成を備えている。すなわち、マイコン（クロックマスターマイコン）６１はクロックSCKをクロックラインSCK-line ８３に出力するクロック出力端子SCK outを備え、他のマイコン(クロックスレーブマイコン)６２〜６３はクロックライン８３からクロックSCKを取り込むクロック入力端子SCK inを備えている。また、各マイコン６１−６３は、データをデータライン８１に送出するためのデータ出力端子DATA out、データをデータライン８１より取り込むデータ入力端子DATA in、データ送信時にデータ送信中を示すローレベルのフレーム信号FRSをフレームライン８２に出力するフレームアウト端子Frame out、いずれかのマイコンがデータ送信中であるか否かをフレームライン２２のレベルに基づいて検出するフレームイン端子Frame in、データ送出に先だってデータ送出要求信号DTR1〜DTR3を出力するデータ送出要求端子OEを有している。
【００２５】
クロックの出力開始タイミングは、フレームライン８２にローレベルのフレーム信号FRSを出力して該フレームライン８２をローレベルにすることにより、クロックマスターマイコン６１に知らせる。また、クロックの出力停止タイミングは、フレームライン８２をハイレベルにすることにより、クロックマスターマイコン６１に知らせる。クロックマスターマイコン６１はフレームラインがローレベルになればクロックを発生してクロックライン８３に送出し、ハイレベルになればクロックの出力を停止する。
データライン８１とフレームライン８２は共に優先度による切り替え方式となっており、スイッチにより優先度の高いマイコンから出力された信号が選択されてこれらのラインに現われるようになっている。すなわち、マイコン６１〜６３には優先順位が付されており、１）マイコンからのデータ送出が競合したとき、データライン８１上でデータ衝突が生じないように、優先順位の高いマイコンから送出されたデータのみがデータライン８１に出現し、また、２）マイコンからのフレーム信号FRSの送出が競合したとき、優先順位の高いマイコンから送出されたフレーム信号FRSのみがフレームタライン８２に出現するようになっている。図では、マイコン６１の優先順位が最も高く、ついで、マイコン６２、マイコン６３の順になっており、スイッチ７１a〜７３aは各マイコンからのデータ送出が競合したとき、優先順位が高いマイコンからのデータを選択してデータライン８１に送出するように構成されている。また、マイコンからのフレーム信号FRSの送出が競合したとき、スイッチ７１b〜７３bにより優先順位の高いマイコンから送出されたフレーム信号のみがフレームライン８２に出現するように構成されている。この結果、データ送出が競合した場合であっても、優先順位が高いマイコンはデータの送出を終えれば、確実にフレームライン８２をハイレベルにしてクロックの発生を停止することができる。これにより、データ送出終了後もフレームライン８２がローレベルを継続して何らかの誤ったデータがデータライン８１に送出されるのを防止することができる。
【００２６】
スイッチ７１a〜７３aはマイコン６１〜６３に対応して設けられており、通常、可動接点はb端子側に接続されているが、対応するマイコン６１〜６３のデータ送出要求端子OEからローレベルのデータ送出要求信号DTR1〜DTR3が出力されると可動接点をa端子側に切り換え、対応するマイコン６１〜６３から送出されるデータをデータライン８１に出力するようになっている。この場合、各スイッチ７１a〜７３aは図示するように結線されているため、１）優先順位が最高のマイコン６１がデータ送出要求信号DTR1を出力した場合には、スイッチ７１aにより該マイコン６１からのデータが選択されてデータライン８１に送出され、２）マイコン６１がデータ送出要求信号DTR1を出力せず、マイコン６２がデータ送出要求信号DTR2を出力する場合には、スイッチ７１a、７２aにより該マイコン６２からのデータが選択されてデータライン８１に送出され、３）マイコン６３のみがデータ送出要求信号DTR3を出力する場合には、スイッチ７１a、７２a、７３aにより該マイコン６３からのデータが選択されてデータライン８１に送出される。以上より、マイコン６１〜６３からのデータ送出が競合しても、スイッチ７１a〜７３aにより優先順位が高いマイコンから送出されたデータのみが選択されてデータライン８１に送出される。また、スイッチ７１b〜７３bもスイッチ７１a〜７３aと同様にマイコン６１〜６３に対応して設けられ、かつ、同様に結線されており、この結果、マイコン６１〜６３からのフレーム信号の送出が競合しても、優先順位が高いマイコンから送出されたフレーム信号が選択されてフレームライン８２に送出されるようになっている。すなわち、優先順位の高いマイコンからの指示によりフレームライン８２のレベルが決定する。
【００２７】
図６において優先順位が最低のマイコン６３に対応するスイッチ７３a、７３bは必ずしも必要でなく、マイコン６３のデータ出力端子DATA outをスイッチ７２aのb端子に直接接続し、マイコン６３のフレームアウト端子Frame outをスイッチ７２bのb端子に直接接続するようにしてもよい。さらに、スイッチ７１a〜７３a、７１b〜７３bはそれぞれ図７(A)、(B)に示す切り替え回路７５，７６で置き換えることができる。
図７（A）において、切り換え回路７５は、判定部７５aとスイッチ７５bを備え、判定部７５aは各マイコン６１〜６３から出力される信号DTR1〜DTR3に基づいてどのマイコンからデータ送出要求が出されているか判断し、２以上のマイコンよりデータ送出要求が出されている場合、すなわち、データ送出が競合する場合には、優先度の高いマイコンから出力されたデータDATAを選択するようスイッチ７５bに指示し、１つのマイコンだけからデータ送出要求が出されている場合には、該マイコンから出力されたデータDATAを選択するようスイッチ７５bに指示する。スイッチ７５bの入力端子には各マイコン６１〜６３のデータ出力端子DATA outから出力されるデータが入力されるようになっており、スイッチ７５bは判定部７５aから指示されたマイコンから出力されたデータDATAを選択してデータライン８１に送出する。
図７（B）において、切り換え回路７６は、判定部７６aとスイッチ７６bを備え、判定部７６aは各マイコン６１〜６３から出力される信号DTR1〜DTR3に基づいてどのマイコンからデータ送出要求が出されているか判断し、２以上のマイコンよりデータ送出要求が出されている場合、すなわち、データ送出が競合する場合には、優先度の高いマイコンから出力されたフレーム信号FRSを選択するようスイッチ７６bに指示し、１つのマイコンだけからデータ送出要求が出されている場合には、該マイコンから出力されたフレーム信号FRSを選択するようスイッチ７６bに指示する。スイッチ７６bの入力端子には各マイコン６１〜６３のフレームアウト端子Frame outから出力されるフレーム信号FRSが入力されるようになっており、スイッチ７６bは判定部７６aから指示されたマイコンから出力されたフレーム信号FRSを選択してフレームライン８２に送出し、該フレームラインのレベルを決定する。
【００２８】
(b) マイコンの基本動作
いずれかのマイコンがデータ送信中はデータ送信が完了するまでフレームライン８２はローレベルになっている。したがって、各マイコン６１〜６３はデータ送信に先立って、フレームライン８２がローレベルであるかチェックし、ローレベルの場合には他のマイコンがデータ通信中であると判断してデータの送信を差し控え、ハイレベルの場合には何れのマイコンもデータを通信していないと判断し、データ送出要求信号DTR1〜DTR3を出力して対応するスイッチ７１a〜７３a、７１b〜７３bの接点をa端子側に接続してデータの送信を行なう。
例えばマイコン６２はデータを送信するとき、フレームライン８２がローレベルになっているか、換言すれば他のマイコン６１、６３がデータ送信中であるかチェックする。他のマイコンがデータ送信中でなくフレームライン８２がハイレベルになっていれば、マイコン６２はデータ送出要求端子OEからデータ送出要求信号DTR2を発生して対応する第１、第２のスイッチ７２a、７２bの接点をa側にし、ついで、ローレベルのフレーム信号FRSを出力してフレームライン８２をローレベルにする。フレームライン８２がローレベルになったことにより、クロックマスターマイコン６１はクロックSCKを発生してクロックライン８３を介してマイコン６２、６３に送信し、マイコン６２は該クロックSCKに同期してデータをデータライン８１に送出する。マイコン６１は自分が発生したクロックSCKに同期してデータライン８１からデータを取り込むと共に、マイコン６３はクロックライン８３より取り込んだクロックSCKに同期してデータをデータライン８１から取り込む。以後、マイコン６２は、データ送信が完了するまでフレームライン８２をローレベルにし、データ送信の完了によりフレームライン８２をハイレベルにする。フレームライン８２がハイレベルになったことによりクロックマスターマイコン６１はクロックSCKの発生を停止する。
【００２９】
(c) フレームフォーマット
図８はデータのフレームフォーマット説明図であり、送信元アドレスSA、送信先アドレスDA、データ長DL、ヘッダチェックコードHCC、データフィールドDTF、データチェックコードDCCで構成されている。データ長DLは、データフィールドDTFの長さをバイト数で表わした値、ヘッダチェックコードHCCは送信元アドレスSA、送信先アドレスDA、データ長DLの値が正常であるかを確認するための値であり、チェックサムあるいはCRCである。データチェックコーDCCは、データフィールドDTFの値が正常であるかを確認するための値であり、チェックサムあるいはCRCである。
【００３０】
（Ｂ）競合しない場合のデータ送信
図９はデータ送信が競合しない場合におけるクロックマスターマイコンとデータ送信マイコンの各部動作波形例、図１０は各マイコンの動作説明図であり、マイコン６１がクロックマスターマイコン、マイコン６２がデータを送信するマイコンの場合である。なお、マイコン６１、６２は共にDMA（Direct Memory Access）機能によりデータの送受信を行ない、データを送信するマイコン６２はデータ送信に先立って、送信DMAバイト数を実際に送信するデータバイト数にセットし、データを送信しないマイコンは送信DMAバイト数を０にセットする。また、各マイコン６１、６２はデータを送信するか否かに関係なく、受信DMAバイト数を最大送受バイト数(固定値)にセットしている。
動作(１)
データを送信するマイコン６２は、データの送信に先立ってフレームイン端子Frame inよりフレームライン８２のレベルを取り込み、フレームライン８２がローレベルであるか否か、すなわち、他のマイコンがデータ通信中であるか否かを確認する。
フレームライン８２がハイレベルで、他のマイコンがデータ通信中でなければ、マイコン６２はデータ送出要求端子OEからローレベルのデータ送出要求信号DTR2を出力する。これにより、スイッチ７２a、７２bは可動接点を端子a側に接続し、マイコン６２のデータ出力端子DATA outをデータライン８１に接続すると共に、フレームアウト端子Frame outをフレームライン８２に接続する。ついで、フレームアウト端子Frame outよりローレベルのフレーム信号FRSを出力してフレームライン８２をローレベルにすると共に（時刻T1）、送受信DMAをスタートする。以後、マイコン６２はデータ送信を完了するまでローレベルのフレーム信号FRSの出力を継続してフレームライン８２をローレベルに維持する。
【００３１】
動作（２）
マイコン６１はフレームイン端子Frame inよりフレームライン８２がローレベルになったことを検出すると受信DMAをスタートさせ、クロックSCKをクロックライン８３に送出する(時刻T2)。マイコン６２はクロックSCKをクロックライン８３より受信し、該クロックに同期してデータライン８１にデータDATAを送出し、各マイコン６１、６２、６３はデータライン８１よりデータDATAを取り込む。以後、マイコン６２はデータ出力端子DATA outより所時刻T2から時刻T3までデータライン８１にデータDATAを送出する。
動作（３）
マイコン６２はデータの送信を完了すれば、フレームアウト端子Frame outよりフレームライン８２にハイレベルのフレーム信号FRSを送出し、該フレームライン８２をハイレベルにする(時刻T4)。
動作(４)
マイコン６１はフレームイン端子Frame inよりフレームライン８２がハイレベルになったことを検出すると受信DMAを終了すると共に、クロックSCKの送出を停止する(時刻T5)。ついで、マイコン６１は受信データが自分宛データであるか確認し、自分宛であれば該データの解析処理を行い、自分宛でなければ破棄する。
一方、マイコン６２は、フレームイン端子Frame inよりフレームライン８２がハイレベルになったことを検出すると送受信DMAを中止すると共に、受信データが送信したデータと同じであるか調べ、同じ場合にはデータ送信が成功したと判定する。図８の実施例では、他のマイコンと競合しないものとしているから、データライン８１よりマイコン６２が取り込んだデータと送信したデータは同じになる。
なお、競合する場合には受信データが送信データと異なることがある。異なる場合には、受信データが自分宛データであるか確認し、自分宛であれば該データの解析処理を行い、自分宛でなければ受信データを破棄する。
データ送信したにもかかわらず受信データが送信データと一致しなければデータ送信が失敗したと判定し、次の動作(５)を行なった後にデータの再送を行なう。データ送信したにもかかわらず受信データが送信データと一致しない場合とは、データ送信が他のマイコンと競合して自分より優先順位の高いマイコンのデータが選択されてデータライン８１に送出されたことを意味する。
【００３２】
動作（５）
上記動作(４)の処理を終了すれば、マイコン６２はデータ送出要求端子OEからハイレベルのデータ送出要求信号DTR1を出力し(時刻T6)、スイッチ７２a、７２bの可動接点を端子b側に戻して一連の送受信動作を完了する。
上記動作において、データ送信完了時刻（T3）からクロックSCKの送出停止時刻T5までの期間、各マイコン６１、６２、６３はデータライン８１よりゴミデータを取り込むが、データ長DLを参照することにより該ゴミデータを容易に無視することができる。すなわち、
1) データの先頭からヘッダコードの先頭までを読み取り、チェックコードが正しいか確認し、正しくなければ受信データを破棄する。
2) つぎに、データ長DLが例え”20”であれば、（20＋データチェックコードDCCのバイト数）分のバイト数を、データフィールドDTFの先頭から読み取ることで必要なデータだけを取り出すことができ、ゴミデータ無視することができる。
【００３３】
（Ｃ）競合する場合のデータ送信
図１１はデータ送信が競合する場合の各部動作波形例、図１２はマイコンの動作説明図であり、マイコン６１，６２のデータ送信が競合した場合である。データを送信するマイコン６１、６２はそれぞれデータ送出に先立って送信DMAバイト数を実際に自分が送信するデータのバイト数にセットする。また、各マイコンはデータを送信するか否かに関係なく、受信DMAバイト数を最大送受バイト数(固定値)にセットする。
動作（１）
データを送信するマイコン６１、６２は、データの送信に先立ってフレームイン端子Frame inよりフレームライン８２がローレベルであるか、すなわち、他のマイコンがデータ通信中であるか否かを確認する。
フレームライン８２がハイレベルで他のマイコンがデータ通信中でなければ、マイコン６１、６２はそれぞれデータ送出要求端子OEからローレベルのデータ送出要求信号DTR1、DTR2を出力する。これにより、スイッチ７１a〜７１b、７２a〜７２bはそれぞれ可動接点を端子a側に接続する。ついで、マイコン６１、６２はそれぞれフレームアウト端子Frame outよりローレベルのフレーム信号FRSを出力してフレームライン８２をローレベルにすると共に（時刻T1）、マイコン６２は送受信DMAをスタートする。
なお、マイコン６１の優先度はマイコン６２の優先度より高いため、マイコン６１のデータ出力端子DATA outおよびフレームアウト端子Frame outがそれぞれデータライン８１、フレームライン８２に接続される。この結果、マイコン６１から出力されたデータDATA-A、フレーム信号がそれぞれデータライン８１、フレームライン８２に出現し、マイコン６２から出力されたデータDATA-B、フレーム信号はデータライン８１、フレームライン８２に現われない。
【００３４】
動作（２）
マイコン６１はフレームイン端子Frame inよりフレームライン８２がローレベルになったことを検出すると送受信DMAをスタートさせ、クロックSCKをクロックライン８３に送出すると共に(時刻T2)、該クロックに同期してデータDATA-Aを送信し、かつ、データライン８１からデータを受信する(自動送受信)。
一方、マイコン６２はクロックSCKをクロックライン８３より受信して(時刻T2)、該クロックに同期してデータDATA-Bをデータ出力端子DATA outより送出すると共に、データライン８１からデータDATA-Aを受信する(自動送受信)。なお、マイコン６２が送出したデータDATA-Bはデータライン８１に出力されない。
動作（３）
マイコン６２の送信するデータDATA-Bの長さの方がマイコン６１の送信するデータDATA-Aの長さより短いものとすれば、まず、マイコン６２が時刻T3においてデータDATA-Bの送信を完了して送信DMAを終了し、フレームアウト端子Frame outよりハイレベルのフレーム信号FRSを出力する(時刻T4)。しかし、このフレーム信号FRSはスイッチ７１bにより阻止されてフレームライン８２をハイレベルにすることはできない。
ついで、マイコン６１が時刻T5においてデータDATA-Aの送信を完了して送信DMAを終了し、フレームアウト端子Frame outよりハイレベルのフレーム信号FRSを出力する。これにより、フレームライン８２はハイレベルになる(時刻T6)。
【００３５】
動作（４）
マイコン６１はフレームイン端子Frame inよりフレームライン８２がハイレベルになったことを検出すると(時刻T6)、受信DMAを終了すると共に、クロックSCKの送出を停止する(時刻T7)。ついで、受信データが送信したデータと同じであるか調べ、同じ場合にはデータ送信が成功したと判定する。マイコン６１は優先順位が最高であるため、データ送信が他のマイコンと競合しても、データライン８１より受信するデータは自分が送信したデータと同じになる。
しかし、優先順位が最高でないマイコンの場合には、自分より優先順位の高いマイコンのデータがデータライン８１に送出され、受信データと自分が送信したデータが異なることがある。かかる場合には、受信データが自分宛データであるか確認し、自分宛であれば該データを取り込んで解析処理を行い、自分宛でなければ該受信データを破棄する。データ送信したにもかかわらず受信データが送信データと一致しなければ、データ送信が失敗したと判定し、次の動作(５)を行なった後にデータの再送を行なう。
マイコン６２もマイコン６１と同様に、フレームイン端子Frame inよりフレームライン８２がハイレベルになったことを検出すると(時刻T6)、受信DMAを終了すると共に、受信データが送信したデータと同じであるか調べる。同じ場合にはデータ送信が成功したと判定する。しかし、設例では受信データと送信データは異なる。異なる場合には、マイコン６２は受信データが自分宛データであるか確認し、自分宛であれば該データを取り込んで解析処理を行い、自分宛でなければ該受信データを破棄する。
データ送信したにもかかわらず受信データが送信データと一致しなければ、データ送信が失敗したと判定し、次の動作(５)を行なった後にデータの再送を行なう。
【００３６】
動作（５）
マイコン６１、６２はそれぞれ、フレームライン８２がハイレベルになったことを検出してから所定時間経過したとき(時刻T8)、データ送出要求端子OEからハイレベルのデータ送出要求信号DTR1、DTR2を出力し、スイッチ７１a〜７１b、７２a〜７２bの可動接点を端子b側に戻して一連の送受信動作を完了する。
マイコン６１によるデータ送信完了時刻（T5）からクロックSCKの送出停止時刻T7までの期間、マイコン６１、６２はデータライン８１よりゴミデータを取り込むが、データ長DL(図８)を参照することにより該ゴミデータを容易に無視することができる。
以上は、クロックマスターマイコン６１とクロックスレーブマイコン６２の間でデータ送信が競合した場合であるが、クロックスレーブマイコン６２，６３の間でデータ送信が競合する場合にも同様の制御が行なわれる。但し、クロックの発生、停止制御はクロックマスターマイコン６１が行なう。
【００３７】
また、図１１では、優先度の低いマイコン６２の送信するデータ長の方が優先度の高いマイコン６１の送信するデータ長より短い場合であるが、マイコン６２の送信するデータ長の方がマイコン６１の送信するデータ長よりも長い場合には、各部動作波形は図１３に示すようになる。
図１３において、動作(１)、動作(２)までは図１１の場合と同じであるが、以降の動作が異なる。
動作（３）
マイコン６１の送信するデータDATA-Aの長さの方がマイコン６２の送信するデータDATA-Bの長さより短いから、まず、マイコン６１が時刻T3においてデータの送信を完了して送信DMAを終了し、フレームアウト端子Frame outよりハイレベルのフレーム信号FRSを出力する(時刻T4)。このフレーム信号FRSはスイッチ７１bを通過してフレームライン８２をハイレベルにする。
動作（４）
マイコン６１はフレームイン端子Frame inよりフレームライン８２がハイレベルになったことを検出すると受信DMAを終了すると共に、クロックSCKの送出を停止する(時刻T5)。ついで、マイコン６１は受信データが送信したデータと同じであるか調べ、同じ場合にはデータ送信が成功したと判定する。マイコン６１は優先順位が最高であるため、データ送信が他のマイコンと競合しても、データライン８１より受信するデータは自分が送信したデータと同じになる。
一方、マイコン６２は自分のデータ送信完了前にフレームイン端子Frame inよりフレームライン８２がハイレベルになったことを検出すると、データ送信及びデータ受信を中断し、送信が失敗したと判断し、フレームアウト端子Frame outよりハイレベルのフレーム信号FRSを出力する(時刻T6)。ついで、マイコン６２は受信データが自分宛データであるか確認し、自分宛であれば該データを取り込んで解析処理を行い、自分宛でなければ該受信データを破棄する。
【００３８】
動作（５）
マイコン６１、６２はそれぞれフレームライン８２がハイレベルになったことを検出してから所定時間経過したとき(時刻T7)、データ送出要求端子OEからハイレベルのデータ送出要求信号DTR1、DTR2を出力し、スイッチ７１a〜７１b、７２a〜７２bの可動接点を端子b側に戻して一連の送受信動作を完了する。
マイコン６１によるデータ送信完了時刻（T3）からクロックSCKの送出停止時刻T5までの期間、マイコン６１、６２はデータライン８１よりゴミデータを取り込むが、データ長DL(図８)を参照することにより該ゴミデータを容易に無視することができる。
以上、第2実施例によれば、データ送信が競合する場合、優先順位の高いマイコンからのデータを優先的に共通バスに送出することができ、これにより、データの衝突を確実に回避することができ、しかも、優先順位の高いマイコンのデータから順番に効率的に送信することが可能となる。
また、第２実施例によれば、データ送信が競合する場合、優先順位の高いマイコンからのデータ送信終了後に直ちにデータ送出要求信号DTR1〜DTR2をハイレベルにしてスイッチ７１a〜７１b、７２a〜７２bの可動接点を端子b側に戻すから、優先順位の高いマイコンからのデータ送信終了後に優先度の低いマイコン６２からのデータがデータライン８１上に現われる現象は生じない。すなわち、第２実施例によれば、優先順位の高いマイコンからのデータの送信が先に終了しても、優先度の低いマイコンからの後半データがその後にデータライン８１上に現われるなどの異常状態の発生を防止することができる。
【００３９】
なお、第２実施例においてクロックラインを切り替え方式にすれば、データを送信するマイコンがクロックを送信する、という簡単な方法を取れそうであるが、以下１）、２）の問題があり採用できない。すなわち、
１) SCKラインは出力／入力のいずれかの設定であるため、設定が出力であるマイコンは、自分のSCK出力タイミングで他マイコンから送出されたデータを受信しなければならず、正しくデータ受信ができない、また
２) ２つのマイコンが同時出力の場合、それぞれのマイコンが自分のSCKタイミングでデータを受信し、優先度の低いマイコンは、自分のSCKタイミングで優先度の高いマイコンから送出されたデータを読み取ることになり、正しくデータ受信ができない、
という問題があり、クロックラインも切り替え方式を採用することはできない。
【符号の説明】
【００４０】
１１〜１３  マイコン
２１  共通バス
２２  フレームライン
３１〜３３  スイッチ
４１，４２  アンドゲート
【図１】
2011151769.tif 000003
【図２】
2011151769.tif 000004
【図３】
2011151769.tif 000005
【図４】
2011151769.tif 000006
【図５】
2011151769.tif 000007
【図６】
2011151769.tif 000008
【図７】
2011151769.tif 000009
【図８】
2011151769.tif 000010
【図９】
2011151769.tif 000011
【図１０】
2011151769.tif 000012
【図１１】
2011151769.tif 000013
【図１２】
2011151769.tif 000014
【図１３】
2011151769.tif 000015
【図１４】
2011151769.tif 000016
【図１５】
2011151769.tif 000017
【図１６】
2011151769.tif 000018
【図１７】
2011151769.tif 000019
【図１８】
2011151769.tif 000020