(57)【要約】      （修正有）【課題】複数のデバイスを接続したＳＰＩバスを用いたデータ通信システムにおいて、それぞれのデバイスに最適な通信プロトコルを用いてデータ通信を可能にする。【解決手段】スレーブデバイス６７、７１、７５毎の物理プロトコルを設定する通信ドライバ６１ａ、６１ｂ、６１ｃと、マスターデバイス５１とスレーブデバイス６７、７１、７５との間のシリアル通信を調停する通信マネージャを有する。通信マネージャにより調停されたシリアル通信が通信インタフェース６５を介して、それぞれのスレーブデバイス６７、７１、７５に対して適正な物理プロトコルに基づく通信を行う。この際、アサートするチップセレクト信号線に対応させ、ボーレート、クロック論理、クロック位相などの通信プロトコルを切り替えることで、個々のデバイスに最適な通信プロトコルを用いて通信することが出来る。【選択図】  図１
2005196486.tif 000002
【特許請求の範囲】
【請求項１】
マスターデバイスと、複数個のスレーブデバイスと、前記マスターデバイスと複数個の前記スレーブデバイス間とを接続しデータ転送の同期用クロック信号を伝送する同期クロック信号バスと、前記同期クロック信号線に同期して前記マスターデバイスが前記スレーブデバイスへデータを送信するデータ送信バスと又は前記同期クロック信号線に同期して前記マスターデバイスが前記スレーブデバイスからデータを受信するデータ受信バスとの少なくともいずれか一方と、前記マスターデバイスと前記スレーブデバイスとの間を一対一に接続して通信実行を通知するチップセレクト線と、を有し、シリアル通信を行うデータ通信装置において、
前記スレーブデバイス毎の物理プロトコルを設定するデバイス通信ドライバ及び前記マスターデバイスと前記スレーブデバイスとの間のシリアル通信を調停する通信マネージャを有するシリアル通信ドライバと、
を有するデータ通信装置。
【請求項２】
前記シリアル通信ドライバは、前記同期クロック信号バスにより通信する同期用クロック信号を、前記マスターデバイスがアサートする前記チップセレクト線に応じてクロックの周波数を変更することを特徴とする請求項１に記載のデータ通信装置。
【請求項３】
前記シリアル通信ドライバは、前記同期クロック信号バスにより通信する同期クロック信号を、前記マスターデバイスがアサートする前記チップセレクト線に応じてクロック論理を変更することを特徴とした請求項１に記載のデータ通信装置。
【請求項４】
前記シリアル通信ドライバは、前記データ送信バス上の送信データ又は前記データ受信バス上の受信データの少なくとも一方を、前記マスターデバイスがアサートする前記チップセレクト線に応じて、前記同期クロック信号とのクロック同期位相を変更することを特徴とする請求項１に記載のデータ通信装置。
【請求項５】
前記マスターデバイスは、前記スレーブデバイス毎に少なくとも転送速度とクロック論理とクロック位相と送信データサイズと転送前遅延時間と転送後遅延時間とのうちから選択される少なくともいずれか１つの設定値を保持する通信プロトコル記憶手段と、
該通信プロトコル記憶手段に記憶されている通信プロトコルを呼び出して前記スレーブデバイスへのシリアル通信を実行する通信制御手段と、を備えることを特徴とする請求項１に記載のデータ通信装置。
【請求項６】
前記通信制御手段は、
前記スレーブデバイス毎に、少なくとも送信データを記憶する送信バッファと受信したデータを保存する受信バッファのいずれか１つを有し、通信要求を受けると前記通信プロトコル記憶手段に記憶された通信プロトコル設定値に基づいて前記データ通信バスを制御して、少なくとも前記送信データバッファに保存されたデータの送信処理と受信したデータの前記受信データバッファへの受信処理とのいずれか１つを実行する通信制御ドライバと、
通信開始要求を記憶する通信ジョブ記憶手段を有し、前記スレーブデバイスごとの前記通信制御ドライバから通信開始要求があった場合には、通信可能な状態の場合には前記通信制御ドライバの送信処理を呼び出し、他の前記通信制御ドライバが通信中の場合には通信開始要求を前記通信ジョブ記憶手段に記憶して、シリアル（ＳＰＩ）通信が完了したときには前記通信制御ドライバの前記受信処理を呼び出すとともに前記通信ジョブ記憶手段に通信ジョブが記憶されている場合には記憶されている前記通信制御ドライバの前記送信処理を呼び出す通信制御マネージャと
を有することを特徴とする請求項５に記載のデータ通信装置。
【請求項７】
前記マスターデバイスは、前記データ通信バスの通信プロトコルを設定する通信制御レジスタを１つのみ有するシリアル通信モジュールを有するマイクロコンピュータであることを特徴とする請求項６に記載のデータ通信装置。
【請求項８】
前記データ通信装置は、ＣＰＵを介さずにデータ転送を行うダイレクト・メモリ・アクセス・コントローラ（以下、「ＤＭＡＣ」と称する。）を有し、前記ＤＭＡＣが、前記通信プロトコル記憶手段を読み出した通信プロトコルを前記通信制御レジスタにセットする制御を行うことを特徴とする請求項７に記載のデータ通信装置。
【請求項９】
請求項７に記載のマイクロコンピュータに、
前記スレーブデバイス毎に少なくとも転送速度とクロック論理とクロック位相と送信データサイズと転送前遅延時間と転送後遅延時間とのうちから選択される少なくともいずれか１つの設定値を保持する通信プロトコル記憶ステップと、
該通信プロトコルステップにおいて記憶されている通信プロトコルを呼び出して前記スレーブデバイスへのシリアル通信を実行するステップと、を実行させるためのプログラム。
【請求項１０】
センサによって計測した入力信号又は他の組込みコントローラから受信した入力信号のいずれかの入力信号をデータ化する外部入力処理手段と、前記入力信号に基づいて制御データを演算する制御演算手段と、前記制御データに基づいてアクチュエータを駆動する制御信号を生成する外部出力処理手段と、を有する組込みコントローラであって、
前記制御演算手段と、少なくとも前記外部入力処理手段と前記外部出力処理手段と他の前記制御演算手段とのいずれか１つとの通信を行う、請求項１に記載のデータ通信装置を有することを特徴とする組み込みコントローラ。
【請求項１１】
センサによって計測した運転者の指令と車両の状態または他の車両制御コントローラから受信した入力信号のいずれかの入力信号をデータ化する外部入力処理手段と、前記入力信号に基づいて制御データを演算する制御演算手段と、前記制御データに基づいて車両を制御する制御信号を生成する外部出力処理手段とを有する車両制御コントローラであって、
前記制御演算手段と、少なくとも前記外部入力処理手段と前記外部出力処理手段と他の前記制御演算手段とのいずれか１つとの通信を行う、請求項１に記載のデータ通信装置を有することを特徴とする車両制御コントローラ。
【請求項１２】
マスターデバイスと、複数個のスレーブデバイスと、前記マスターデバイスと前記スレーブデバイスとの間を接続して通信実行を通知するチップセレクト線と、を有し、シリアル通信を行うデータ通信装置において、
前記スレーブデバイス毎のそれぞれのスレーブデバイスに応じた物理プロトコルを設定する通信ドライバと、前記マスターデバイスと前記スレーブデバイスとの間のシリアル通信を調停する通信マネージャと、を有するシリアル通信ドライバ
を有するデータ通信装置。
【請求項１３】
マスターデバイスと、複数個のスレーブデバイスと、前記マスターデバイスと前記スレーブデバイスとの間を接続して通信実行を通知するチップセレクト線と、を有し、シリアル通信を行うデータ通信装置において、
複数の前記スレーブデバイスのうちの少なくとも２つのスレーブデバイスが、共通のバスライン上において異なる物理プロトコルに基づいて動作するように制御するシリアル通信ドライバ
を有するデータ通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアル通信バス、特にＳＰＩ通信を用いて一対多のデータ通信を行うデータ通信装置およびデータ通信装置を有する組込みコントローラに関する。
【背景技術】
【０００２】
データ通信システムとして、従来から、物理的なデータ通信手段に対応させて、転送速度やクロック論理位相などの物理プロトコル設定を行う技術が知られている（例えば、特許文献１参照）。また、物理的なデータ通信手段として、チップセレクト信号線を有したクロック同期式シリアルバス通信であるシリアル・ペリフェラル・インタフェース（以下「ＳＰＩ」と称する。）を用いた方法がある（例えば、非特許文献１参照）。
【特許文献１】特開２０００−２５７５０１号公報（第２５頁、図３、３００）
【非特許文献１】モトローラ株式会社、「ＭＰＣ５５５  Ｕｓｅｒ’ｓ  Ｍａｎｕａｌ  ＭＰＣ５５５ＵＭＪ／ＡＤ  Ｒ０。９５」、４４９頁−５２５頁
【発明の開示】
【発明が解決しようとする課題】
【０００３】
例えば、組込みコントローラの一種として、自動車に搭載されてエンジン、スロットル、変速機、ブレーキ、ステアリングやバッテリを制御する車両制御コントローラがある。近年、低燃費化・低排出ガス化などを目的として、車両制御コントローラの制御機能の高度化が要求されている。きめ細かい制御を実現するために、組込みコントローラ内部には複数のマイコンやセンサ・アクチュエータの信号処理を行うＩＣが搭載され、計測結果や出力値のデータはＳＰＩ通信バスによるデータ通信を用いてやり取りする方法が用いられている。
【０００４】
上記特許文献１に記載のデータ通信装置では、物理的な通信手段に対応して通信プロトコルを設定しているそのため、例えば一対多通信を行う通信バスを用いた通信では、通信バスに接続された全てのデバイスの通信プロトコルを共通化しなければならないという問題がある。一般に、マイコンは高速な転送速度で動作させることができるが、ＩＣによっては比較的な転送速度しか扱えない場合がある。そのため、マイコンとＩＣとを同一ＳＰＩ通信バス上に混在させた場合には、全てのデバイスの転送速度を最も低速なデバイスの転送速度によって共通化しなければならない。高速な転送速度を扱えるマイコンを用いても、低速な転送速度により制限されるため、通信時間を余分に要し、通信性能が悪化してしまうという問題があった。
【０００５】
本発明は、同一のＳＰＩ通信バス上において複数の通信プロトコルを混在させ、それぞれにおいて適正な通信を行うことができるデータ通信装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、シリアル通信のドライバとして、デバイス毎の通信ドライバを設けることにより、デバイス毎の物理プロトコルを設定し、シリアル通信のバスを調停する通信マネージャを設けることを特徴とする。
【０００７】
本発明の一観点によれば、マスターデバイスと、複数個のスレーブデバイスと、前記マスターデバイスと複数個の前記スレーブデバイス間とを接続しデータ転送の同期用クロック信号を伝送する同期クロック信号バスと、前記同期クロック信号線に同期して前記マスターデバイスが前記スレーブデバイスへデータを送信するデータ送信バスと又は前記同期クロック信号線に同期して前記マスターデバイスが前記スレーブデバイスからデータを受信するデータ受信バスとの少なくともいずれか一方と、前記マスターデバイスと前記スレーブデバイスとの間を一対一に接続して通信実行を通知するチップセレクト線と、を有し、シリアル通信を行うデータ通信装置において、前記スレーブデバイス毎の物理プロトコルを設定するデバイス通信ドライバ及び前記マスターデバイスと前記スレーブデバイスとの間のシリアル通信を調停する通信マネージャを有するシリアル通信ドライバと、を有するデータ通信装置が提供される。
【０００８】
シリアル通信ドライバは、例えば以下のような特徴を有しているのが好ましい。
１）前記シリアル通信ドライバは、前記同期クロック信号バス上の同期用クロック信号に基づいて、前記マスターデバイスがアサートする前記チップセレクト線に応じてクロックの周波数を変更することを特徴とする。
【０００９】
２）前記シリアル通信ドライバは、前記同期クロック信号バスにより通信する同期クロック信号を、前記マスターデバイスがアサートする前記チップセレクト線に応じてクロック論理を変更することを特徴とする。
【００１０】
３）前記シリアル通信ドライバは、前記データ送信バス上の送信データ又は前記データ受信バス上の受信データの少なくとも一方を、前記マスターデバイスがアサートする前記チップセレクト線に応じて、前記同期クロック信号とのクロック同期位相を変更することを特徴とする。
【００１１】
尚、前記スレーブデバイス毎の物理プロトコルを設定するデバイス通信ドライバ及び前記マスターデバイスと前記スレーブデバイスとの間のシリアル通信を調停する通信マネージャを有するシリアル通信ドライバは、例えばＲＯＭ内に格納されているプログラムにより実行されるのが一般的である。また、シリアル通信ドライバが、デバイス通信ドライバと通信マネージャという形で明確に区別できない場合も、例えば上記１）〜３）までの記載されるような通信が行われる場合には、本発明の範疇に入るものであり、名称等により限定されるものではない。
【発明の効果】
【００１２】
上記の手段を用いることで、異なるプロトコルを持つデバイスでも、同じ通信バス上で使用が可能となる。また、それぞれのデバイスの最大転送効率プロトコルによりシリアル通信を行うことができ、全体として高速化が可能となる。
【発明を実施するための最良の形態】
【００１３】
本発明の実施の形態について説明する前に、まず、本発明に係るデータ通信装置の概略について説明する。図１（ａ）は、本発明に係るデータ通信装置の基本的な構成例を示す図である。図１（ａ）に示すように、本発明に係るデータ通信装置５０は、マスターデバイス５１と、複数のスレーブデバイス６７、７１、７５と、マスターデバイス５１と複数個のスレーブデバイス６７、７１、７５との間を接続し、同期クロック信号に同期してマスターデバイス５１がスレーブデバイス６７、７１、７５へデータを送信するデータ送信バス又は同期クロック信号に同期してマスターデバイス５１がスレーブデバイス６７、７１、７５からデータを受信するデータ受信バスとの少なくともいずれか一方と、マスターデバイス５１とスレーブデバイス６７、７１、７５との間を一対一に接続して通信実行を通知するチップセレクト線と、を有し、ＳＰＩシリアル通信を行うデータ通信装置である。さらに、データ通信装置には、スレーブデバイス６７、７１、７５毎の物理プロトコルを設定する通信ドライバ５６１ａ、６１ｂ、６１ｃと、マスターデバイス５１とスレーブデバイス６７、７１、７５との間のシリアル通信を調停する通信マネージャ６１ｅを有する。通信マネージャ６１ｅにより調停されたシリアル通信が通信インタフェース６５を介して、それぞれのスレーブデバイス６７、７１、７５に対して適正な物理プロトコルに基づく通信を行う。
【００１４】
以下、上記原理に基づく本発明の各実施の形態によるデータ通信装置について図面を参照しつつ説明を行う。尚、以下の実施の形態においては、データ通信装置を有する組込みコントローラの一例として、車両用電子制御ユニット（ＥＣＵ）を例に挙げて説明を行う。
【００１５】
図１（ｂ）は、本発明の第１の実施の形態によるデータ通信装置の構成例を示す図である。図１（ｂ）に示すように、本実施の形態によるデータ通信装置は、メインマイコン１（マスターデバイスに対応する）と、サブマイコン２Ａと、入出力制御用ドライバＩＣ２Ｂとを有している。サブマイコン２Ａ、入出力制御用ドライバＩＣ２Ｂは、スレーブデバイスに対応する。
【００１６】
上記構成において、チップセレクト線３Ａは、メインマイコン１により制御され、メインマイコン１からサブマイコン２Ａへの通信実行を通知する。チップセレクト線３Ｂは、メインマイコン１により制御され、メインマイコン１から入出力制御ドライバＩＣ  ２Ｂへの通信実行を通知する。
【００１７】
クロック信号バス４（同期クロック信号バスに対応する。）は、メインマイコン１により制御され、クロック信号バス４には、メインデバイスからサブデバイスへの通信の際にデータ転送の同期を取るためのクロック信号が出力される。データ送信線５は、メインマイコン１により制御され、データ送信線５には、クロック信号線４により通信されるクロック信号に同期して、メインマイコン１からサブマイコン２Ａ又はドライバＩＣ  ２Ｂへの送信データが出力される。データ受信線６は、サブマイコン２Ａ又はドライバＩＣ  ２Ｂにより制御される。データ受信線６には、クロック信号に同期してスレーブデバイスからマスターデバイスへの送信データが出力される。
【００１８】
図２（ａ）は、本実施の形態によるデータ通信装置の第１の動作例であって、チップセレクト信号線３Ａ、３Ｂ、クロック信号線４、データ送信線５、データ受信線６の出力例を示す図である。図２（ａ）における横軸は時間であり、縦軸は、それぞれの信号の電圧を示す。図２（ａ）においては、チップセレクト信号線３Ａ、３Ｂは、電圧のＨｉｇｈ状態がネゲート、Ｌｏｗ状態がアサートである。同期用クロック信号４は、Ｈｉｇｈ状態がネガティブ、Ｌｏｗ状態がアクティブである。
【００１９】
図２（ａ）に示すように、第１の動作例では、区間Ｔ１においては、図１（ｂ）に示すメインマイコン１がチップセレクト信号線３Ａをアサートし、メインマイコン１とサブマイコン２ＡとのＳＰＩ通信が実行される状態になっている。メインマイコン１は、クロック信号線４を制御し、通信するデータのビット数分だけ（例えば８［ｂｉｔ］分）、サブマイコンとの通信に適したボーレート（例えば２［ＭＨｚ］）でクロック信号を出力する。メインマイコン１は、クロック信号に同期してサブマイコン２への送信データ５１を出力する。サブマイコン２は、クロック信号に同期して、メインマイコン１が受信する受信データ６１を出力する。クロック信号の出力が終了した後、メインマイコン１がチップセレクト信号線３Ａをネゲートし、メインマイコン１とサブマイコン２ＡとのＳＰＩ通信が終了する。
【００２０】
区間Ｔ２においては、メインマイコン１がチップセレクト信号線３Ｂをアサートし、メインマイコン１と入出力制御ドライバＩＣ  ２ＢとのＳＰＩ通信が実行される状態になっている。メインマイコン１はクロック信号線４を制御して、通信するデータのビット数分だけ（例えば８［ｂｉｔ］分）、入出力制御ドライバＩＣ  ２Ｂとの通信に適したボーレート（例えば１［ＭＨｚ］）でクロック信号を出力する。メインマイコン１は、クロック信号に同期して、入出力制御ドライバＩＣ  ２Ｂへの送信データ５２を出力する。入出力制御ドライバＩＣ  ２Ｂは、クロック信号に同期して、メインマイコン１が受信する受信データ６２を出力する。クロック信号の出力が終わった後、メインマイコン１がチップセレクト信号線３Ａをネゲートし、メインマイコン１とサブマイコン２ＡとのＳＰＩ通信が終了する。
【００２１】
本実施の形態の第１の動作例においては、ＳＰＩ通信における同期用クロック信号の周波数は、アサートするチップセレクト信号線に対応付けられている。従って、例えば、高性能なマイコンと廉価品のドライバＩＣのように、ＳＰＩ通信インタフェースにおいて対応しているクロック周波数の上限に差がある場合には、それぞれのスレーブデバイスに適した同期クロック周波数を用いることができる。すなわち、図１（ｂ）の構成にすることによって、ＳＰＩ通信バス上で複数の通信プロトコルを混在させることができるという利点がある。
【００２２】
尚、図１（ｂ）に記載されたデータ通信装置では、スレーブデバイスにチップセレクト線３とクロック信号線４とデータ送信線５とデータ受信線６とが接続されているが、データ送信線５とデータ受信線６とに関しては、いずれか１本のみが接続されている構造でも良い。例えば、センサ用ドライバＩＣの場合には、チップセレクト線３とクロック信号線４とデータ受信線６とが接続されていて、センサによって計測したデータを通信するようにしても良い。
【００２３】
以下において、本実施の形態の他の動作例について説明するが、基本的なシステム構成に関しては、図２（ａ）に示す構成と同様である。そこで、適宜図１（ａ）、（ｂ）を参照しつつ説明を行う。  図２（ｂ）は、本実施の形態による通信データ技術の第２動作例を示す信号波形図である。図２（ｂ）に示す第２動作例による信号波形例においては、チップセレクト信号線３Ａがアサートされている期間Ｔ３、すなわちメインマイコン１とサブマイコン２Ａとの通信期間においては、同期用クロック信号ＣＬＫ４３は、Ｌｏｗの状態がネガティブ、Ｈｉｇｈの状態がアクティブとして図示されている。チップセレクト信号線３Ｂがアサートされている期間Ｔ４、すなわちメインマイコン１とドライバＩＣ  ２Ｂとの通信期間においては、同期用クロック信号４４は、Ｌｏｗの状態がネガティブ、Ｈｉｇｈの状態がアクティブとなっている。図２（ｂ）の符号５３、５４、６３、６４は、それぞれ図２（ａ）の符号５３、５４、６３、６４に対応する。
【００２４】
同期用クロック信号のクロック論理４３、４４は、アサートされるチップセレクト信号に対応付けされている。すなわち、図２（ｂ）のように第２動作例により動作させることにより、同期用クロック信号が電圧Ｈｉｇｈの場合にアクティブである設定と、電圧Ｌｏｗの場合にアクティブである設定というように、クロック論理の設定が異なる通信プロトコルを、同一のＳＰＩ通信バス上に混在させることが可能である。
【００２５】
図３は、本実施の形態によるしたデータ通信システムの第３動作例による通信データの一例を示す。第３動作例では、チップセレクト信号線３Ａ、３Ｂは、電圧のＨｉｇｈの状態がネゲートであり、Ｌｏｗの状態がアサートである。同期用クロック信号４は、Ｈｉｇｈ状態がネガティブ、Ｌｏｗ状態がアクティブである。図３に示す第３動作例では、チップセレクト信号線３Ａがアサートされている期間Ｔ５、すなわちメインマイコン１とサブマイコン２Ａとの通信期間においては、同期クロック信号４５がネガティブからアクティブに遷移するクロック信号の立ち上がりのタイミング（例えば時間ｔ１）に対応して、送信データ５５と受信データ６５はそれぞれメインマイコン１とサブマイコン２Ａによって更新される。チップセレクト信号線３Ｂがアサートされている期間Ｔ６、すなわちメインマイコン１とドライバＩＣ  ２Ｂとの通信時には、同期クロック信号４５がアクティブからネガティブに遷移するクロック信号の立ち下がりのタイミング（例えば時間ｔ２）に対応して、送信データ５６と受信データ６６はそれぞれメインマイコン１とドライバＩＣ  ２Ｂによって更新される。
【００２６】
図３に示す第３動作例においては、同期用クロック信号の立ち上がりのタイミングでデータを更新するのか、立下りのタイミングでデータを更新するのかというクロック位相の設定が異なる通信プロトコルを、同一のＳＰＩ通信バス上に混在させることが可能である。
【００２７】
次に、本発明の第２の実施の形態について説明する。本実施の形態は、上記第１の実施の形態によるデータ通信装置を車両に応用した例である。図４は、本実施の形態による車両を示す。図４に示すように、本実施の形態による車両７は、エンジン８と、エンジン８を制御する電子制御ユニット（Ｅｌｅｃｔｒｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ：  ＥＣＵ）１０と、ドライバにより操作されるアクセルペダル９と有する。ここで、ＥＣＵ１０は、エンジンに関する制御の他に、図示しない自動変速機、電子制御スロットル、電動ブレーキを制御するための組込みコントローラであっても良く、要するに図４のＥＣＵは車両に関連する様々な制御を行うための組込みコントローラである。
【００２８】
図５は、本発明の第２の実施の形態によるＥＣＵの一例を示す図である。図５に示すように、本実施の形態によるＥＣＵ１０は、図１（ｂ）において説明したデータ通信システムを有している。ドライバＩＣ  ２Ｂはセンサ計測値（例えばアクセル開度）を入力し、ＳＰＩ通信によってメインマイコンに送信する。メインマイコン１は、受信した計測値をもとに、出力する電圧値やポート出力を演算する。メインマイコン１は、ＳＰＩ通信を用いて出力値をドライバＩＣ  ２Ｂに送信する。また、メインマイコンとサブマイコンとの間のデータ通信も、ＳＰＩ通信によって行われる。
【００２９】
図６は、図５に示すメインマイコン１の基本構成例を示す図である。図６に示すように、メインマイコン１は、メモリ１１と、ＳＰＩ通信バスを制御するＳＰＩモジュール１２と、演算処理を行うプロセッサ１３と、データバス１４と、ダイレクト・メモリ・アクセス・コントローラ１５と、を含んで構成される。ＳＰＩモジュール１２は、ＳＰＩ通信の物理プロトコルを設定するコントロールレジスタ１２１と、送信するデータをセットするための送信データメモリ１２２と、受信したデータを保存するための受信データメモリ１２３と、を含んでいる。メモリ１１は、制御データ等を演算するアプリケーションソフトウェア１１３と、制御データをＳＰＩドライバが通信可能なデータ形式・データサイズに変換する通信ミドルウェア１１２と、ＳＰＩモジュールを制御してＳＰＩ通信を実現するＳＰＩドライバ１１１と、を有している。ＳＰＩドライバ１１１は、サブマイコン用通信プロトコル記憶手段１１１２１と、ドライバＩＣ用通信プロトコル記憶手段１１１２２と、を含む通信プロトコル記憶手段１１１２と、通信制御手段１１１１と、を有している。符号３Ａ、３Ｂ、４〜６は、それぞれ図１（ｂ）、図５の同符号に対応する。
【００３０】
図７は、コントロールレジスタ１２１の構成例を示す図である。図７に示すように、コントロールレジスタ１２１は、アサートするチップセレクト信号線を設定するＣＳ信号線設定領域１２１０と、転送するデータのビット長を設定するデータ長サイズ設定領域１２１１と、クロック論理設定領域１２１２と、クロック位相設定領域１２１３と、同期用クロック信号のボーレートを設定する転送速度設定領域１２１４と、チップセレクト信号線をアサートしてから同期用クロック信号を出力し始めるまでの転送前遅延時間を設定する転送前遅延設定領域１２１５と、同期用クロック信号を出力し終わってからチップセレクト信号線をネゲートするまでの転送後遅延時間を設定する転送前遅延設定領域１２１６と、を有する。
【００３１】
図８は、サブマイコン用通信プロトコル記憶手段１１１２１の構成例を示す図である。図８に示すように、サブマイコン用通信プロトコル記憶手段１１１２１は、アサートするチップセレクト信号線を記憶するＣＳ信号線記憶領域１１１２１０と、転送するデータのビット長を設定するデータ長サイズ記憶領域１１１２１１と、クロック論理記憶領域１１１２１２と、クロック位相記憶領域１１１２１３と、同期用クロック信号のボーレートを設定する転送速度記憶領域１１１２１４と、チップセレクト信号線をアサートしてから同期用クロック信号を出力し始めるまでの転送前遅延時間を記憶する転送前遅延記憶領域１１１２１５と、同期用クロック信号を出力し終わってからチップセレクト信号線をネゲートするまでの転送後遅延時間を記憶する転送前遅延記憶領域１１１２１６と、を有している。
【００３２】
図９は、通信制御手段１１１１の動作の流れを示すフローチャート図である。図９に示すように、ステップＳ１１において、通信ミドルウェア１１２が通信制御手段１１１１を動作させると、通信処理が開始される。ステップＳ１２において、通信中か否かなど、現在通信開始可能な状態かどうかの判断を行う。ステップＳ１２において、通信開始可能な場合であると判断された場合にはステップＳ１３に進む。ステップＳ１３においては、送信データメモリ１２２に送信するデータをセットする。データの受信のみを行う場合には、ステップＳ１３の処理を省略しても良い。ステップＳ１４では、通信先のデバイスに対応する通信プロトコルを、通信プロトコル記憶手段１１１２を参照してコントロールレジスタ１２１にセットする。ステップＳ１５では、ＳＰＩモジュール１２に対して通信開始の指示を出した後、ＳＰＩ通信を開始する。ステップＳ１２において、通信開始不可を検出した場合には、ステップＳ１６に進む。ステップＳ１６においては、現在通信不可状態であることを通信ミドルウェア１１２に通知する。以上の処理を実行した後に、一旦処理を終了する。
【００３３】
ステップＳ２１は、ステップＳ１５において開始したＳＰＩ通信が終了した際に発生する通信完了割り込みで呼び出され、ＳＰＩ通信の後処理が実行される。ステップＳ２２において、受信したデータを受信データメモリ１２３から読み出す。データの送信のみを行う際にはステップＳ２２の処理は省略しても良い。その後、ステップＳ２３において、通信処理が完了したことを通信ミドルウェア１１２に通知する。通知完了後、ステップＳ２４において通信処理を完了する。図６〜図９までの構成にすることにより、ＳＰＩ通信バスの通信プロトコルを設定するコントロールレジスタが１つしかないＳＰＩモジュールであっても、複数の通信プロトコルを混在して利用可能になるという利点がある。
【００３４】
また、図６、図８の構成にすることによって、通信先のデバイスに対応して個別に通信プロトコルを記憶することが出来る。そのため、通信バスに接続するデバイスを変更した場合でも、変更したデバイスに対応する通信プロトコル記憶手段のみ変更すればよく、他の通信プロトコル記憶手段はそのまま再利用することが出来る。すなわち、同一のＳＰＩ通信バス上で複数の通信プロトコルを混在可能なデータ通信装置を、効率良く開発できるという利点がある。
【００３５】
図１０は、本実施の形態による通信制御手段の一構成例を示す図である。図１０に示すように、通信制御手段１１１１は、サブマイコン用通信制御ドライバ１１１１１と、ドライバＩＣ用通信制御ドライバ１１１１２と、通信制御マネージャ１１１１３と、を有している。サブマイコン用通信制御ドライバ１１１１１は、送信するデータを保存しておく送信バッファ１１１１１１と、受信したデータを保存しておく受信バッファ１１１１１２とを有している。ドライバＩＣ用通信制御ドライバも同様の送信バッファおよび受信バッファを有している。通信制御マネージャ１１１１３は、通信開始要求を記憶しておくための通信ジョブキュー１１１１３１を有している。
【００３６】
図１１Ａ、図１１Ｂは、通信制御手段における処理の一例を示す図である。以下の処理の説明においては、図１０を適宜参照する。ここでは、サブマイコン２との通信が要求された例を用いて説明する。図１１Ａは、通信制御ドライバ１１１１１が通信ミドルウェア１１２によって呼び出された場合の処理例を示す図である。図１１Ａに示すように、ステップＳ３１において、通信ミドルウェア１１２により通信制御ドライバ１１１１１が呼び出され、通信処理が開始される。ステップＳ３２において、現在サブマイコンとの通信を実行中か否かなどにより、現在通信開始可能な状態かどうかの判定を行う。通信開始が不可能と判定された場合にはステップＳ３３に進む。ステップＳ３３では、現在通信不可状態であることを通信ミドルウェア１１２に通知し処理が終了する。
【００３７】
通信開始が可能な場合には、通信制御マネージャ１１１１３を呼び出す。ステップＳ３４において、通信ジョブキュー１１１１３１をチェックし、現在通信処理を実行中のジョブがあるか否かをチェックする。通信を実行中のジョブがあった場合にはステップＳ３５に進み、要求があった通信先（この例ではサブマイコン２）をジョブの末尾に登録し処理を中断する。通信中のジョブが無かった場合にはステップＳ３６に進み、要求があった通信先をジョブの先頭に登録する。その後、通信先に対応した通信制御ドライバ（この例ではサブマイコン用通信制御ドライバ）を呼び出す。ステップＳ３７では、サブマイコン用通信制御ドライバにより、ＳＰＩ通信を実行するための通信実行処理が行われる。ＳＰＩ通信を開始後、一旦処理は中断される。
【００３８】
図１１Ｂは、通信制御ドライバ１１１１１がプロセッサの通信完了割り込みによって呼び出された場合の処理の流れを示すフローチャート図である。図１１Ｂに示すように、ＳＰＩ通信が終了する、とプロセッサの通信完了割り込みでステップＳ４１が呼び出され、ＳＰＩ通信の後工程処理が実行される。ステップＳ４２において、通信ジョブキュー１１１１３１をチェックし先頭に登録されている通信ジョブの通信先を確認する。ステップＳ４３において、ジョブキューの先頭に登録されていた通信先に対応する通信制御ドライバ（この例ではサブマイコン用通信制御ドライバ）の通信完了処理を呼び出す。通信完了処理が終了すると、ステップＳ４４において通信制御マネージャのジョブキューが更新される。
【００３９】
ジョブキューの先頭の通信ジョブをクリヤし、登録されている通信ジョブの順位を１つずつ進める。ステップＳ４５で、通信ジョブキュー１１１１３１をチェックし、通信ジョブが残っているか否かを判定する。残りジョブがない場合には処理を完了する。残りジョブがある場合には（この例ではドライバＩＣ用通信制御ドライバ）、ジョブキューの先頭に登録されている通信先に対応する通信制御ドライバの通信開始処理ステップＳ３７を呼び出す。
【００４０】
図１２は、通信制御ドライバの通信開始処理（ステップＳ３７）の一例として、サブマイコン用通信制御ドライバ１１１１１の動作を示す図である。ステップＳ３７１において、サブマイコン用通信制御ドライバ１１１１１の送信バッファ１１１１１１に設定されたデータを送信データメモリ１２２（図６）にコピーすることにより、送信データをセットする。ステップＳ３７２では、サブマイコン用通信プロトコル記憶手段１１１２１に設定された通信プロトコルをコントロールレジスタ１２１に設定することにより、通信プロトコルをサブマイコン用に設定する。ステップＳ３７３においては、ＳＰＩモジュールに対して通信開始を命令する。
【００４１】
図１３は、通信制御ドライバの通信完了処理ステップＳ４３（図１１Ａ）の一例として、サブマイコン用通信制御ドライバの通信完了処理を示す。ステップＳ４３１では、ＳＰＩ通信により受信したデータを受信データメモリＳ１２３から読み出し、受信バッファ１１１１１２へとコピーする。ステップＳ４３２では、ＳＰＩ通信が完了したことをミドルウェア１１２に通知する。
【００４２】
図１４は、本実施の形態を適用したデータ通信装置の動作の概念を示す図である。まず、時刻ｔ１０では通信（ＳＰＩ）ジョブキュー３１〜３４は空である。時刻ｔ１１において、サブマイコン２Ａとの通信開始要求２１が呼び出される。通信ジョブキューは空なので、サブマイコンへの通信要求は通信ジョブキューの先頭３１にセットされる。サブマイコン用の通信プロトコルをセットした上で、ＳＰＩ通信２２が開始される。時刻ｔ１２で、ドライバＩＣ  ２Ｂとの通信開始要求２３が出される。通信ジョブキュー３１にジョブがセットされているため、キュー３２にドライバＩＣとの通信要求をセットし、一旦処理を終了し通信開始待ち状態２４に入る。
【００４３】
時刻ｔ１３で、サブマイコン２Ａとの通信が完了する。通信ジョブキューをチェックし、先頭に登録されていたサブマイコン２Ａの通信完了処理を実行する。そして、ジョブキューを更新する。その後、ジョブキューを再度チェックし、ジョブキューの先頭３１にセットされているドライバＩＣとの通信２５を開始する。時刻ｔ１４で、ドライバＩＣ  ２Ｂとの通信が完了する。通信ジョブキューをチェックし、先頭に登録されていたドライバＩＣ  ２Ｂの通信完了処理を実行する。そして、ジョブキューを更新する。その後、ジョブキューを再度チェックして、ジョブキューが空であることを確認すると、ＳＰＩ通信処理を完了する。
【００４４】
図１５は、本実施の形態によるデータ通信装置における通信制御手段１１１１の別構成例を示す図である。図１５に示す構成において、通信制御手段１１１１は、通信ジョブリスト１１１１４を有している。通信ジョブリスト１１１１４は、通信先のデバイスの情報１１１１４１と、送信バッファ１１１１４２と、受信バッファ１１１１４３と、を有している。通信ミドルウェアは、通信ジョブリストに送信データと通信先データを登録し、ＳＰＩ通信開始を要求する。ＳＰＩ通信が開始されると、プロセッサは通信ジョブリストに登録された通信ジョブを逐次実行していく。全通信ジョブが完了すると、受信バッファから受信データを読み出すことが可能になる。
【００４５】
ここで、通信ジョブの実行にＤＭＡＣ１５を用いることにより、送信バッファから送信データメモリ１２２へのコピーと、通信プロトコル記憶手段１１１２からコントロールレジスタへのコピーと、受信データメモリ１２３から受信バッファ１１１１４３へのコピーなどの処理を、プロセッサ１３に負担をかけずに実行することが出来るという利点がある。
【００４６】
図１６は、本発明の実施の形態によるデータ通信装置におけるＳＰＩモジュール１２の別の構成例を示す図である。符号３Ａ、３Ｂ、４〜６は、それぞれ図１（ｂ）、図５の同符号に対応する。図１６に示すように、ＳＰＩモジュール１２Ｂは、複数個のコントロールレジスタ１２Ｂ１、１２Ｂ２と、通信ジョブリスト１２Ｂ３と、を有している。コントロールレジスタ１２Ｂ１、１２Ｂ２の構成は、図７に示すコントロールレジスタ１２１の構成と同様である。ジョブリスト１２Ｂ３の個々の要素は、使用するコントロールレジスタ情報１２Ｂ３１と、送信するデータを登録する送信データメモリ１２Ｂ３２と、受信したデータが保存される受信データメモリ１２Ｂ３３と、を含む。ＳＰＩドライバ１１１は、通信ジョブリスト１２Ｂに送信データと使用レジスタを登録し、ＳＰＩ通信開始を要求する。ＳＰＩ通信が開始されると、ＳＰＩモジュール１２Ｂは通便ジョブリスト１２Ｂ３に登録された通信ジョブを逐次実行していく。全通信ジョブが完了すると、受信データメモリ１２Ｂ３３から受信データを読み出すことが可能になる。本構成例のように、複数のコントロールレジスタを設け、ハードウェア的に通信プロトコルの切り替えを行うことも可能である。
【００４７】
尚、図９ＡのステップＳ１３においては、送信データメモリ１２２に送信するデータをセットする。データの受信のみを行う場合にはステップＳ１３は省略しても良い。ステップＳ１４では、通信先のデバイスに対応する通信プロトコルを、通信プロトコル記憶手段１１１２を参照してコントロールレジスタ１２１にセットする。ステップＳ１５ではＳＰＩモジュール１２に対して通信開始の指示を出してＳＰＩ通信を開始し、一旦処理を中断する。ステップＳ１２で通信開始不可を検出した場合にはステップＳ１６に進む。
【００４８】
以上、本発明の各実施の形態によるデータ通信装置を用いると、ＳＰＩ通信などのシリアル通信においてアサートするチップセレクト信号線に対応して同期クロック信号のボーレートを切り替えることにより、通信先デバイスに最適な通信プロトコルで通信することが可能になる。
【００４９】
また、ＳＰＩ通信においてアサートするチップセレクト信号線に対応して同期クロック信号のクロック論理を切り替えることにより、通信先デバイスに最適な通信プロトコルで通信することが可能になる。さらに、ＳＰＩ通信においてアサートするチップセレクト信号線に対応して同期クロック信号のクロック位相を切り替えることにより、通信先デバイスに最適な通信プロトコルで通信することが可能になる。
【００５０】
加えて、送信先スレーブデバイス毎の通信プロトコル記憶手段と、通信プロトコル記憶手段を呼び出してＳＰＩ通信を実行する通信制御手段とを設けることにより、通信先デバイスに最適な通信プロトコルで通信することが可能になる。
【００５１】
また、送信先スレーブデバイス毎の通信制御ドライバと、通信制御ドライバの排他制御を行う通信制御マネージャを設けることにより、通信先デバイスに最適な通信プロトコルで通信することが可能になる。
【００５２】
さらに、通信プロトコル記憶手段と通信制御手段をメモリ上で動作するプログラムとすることによって、コントロールレジスタが１つしかないＳＰＩモジュールでも通信プロトコルを切り替えることを可能になり、通信先デバイスに最適な通信プロトコルで通信することが可能になる。
【００５３】
また、ＳＰＩモジュール−メモリ間の通信プロトコルや送信データや受信データの転送を、ＤＭＡＣを用いて行うことにより、コントロールレジスタが１つしかないＳＰＩモジュールで高速に通信プロトコルを切り替えることが可能になる。
【図面の簡単な説明】
【００５４】
【図１】図１（ａ）は本発明のデータ通信システムの構成例を示す概念図であり、図１（ｂ）は本発明の一実施の形態によるデータ通信装置の第１構成例を示す図である。
【図２】図２（ａ）は、本発明の一実施の形態によるデータ通信装置の第１動作例を示す図であり、図２（ｂ）は、第２動作例を示す図である。
【図３】本発明の一実施の形態によるデータ通信装置の第３動作例を示す図である。
【図４】本発明の一実施の形態によるデータ通信装置を車両制御コントローラの一部に適用した図である。
【図５】図４に示す車両制御コンピュータの概略構成例を示す図である。
【図６】本発明の一実施の形態によるデータ通信装置におけるメインマイコンの概要を示す図である。
【図７】本発明の一実施の形態によるデータ通信装置におけるコントロールレジスタの構成例を示す図である。
【図８】ＣＳ１用通信プロトコル記憶手段の構成例を示す図である。
【図９Ａ】本発明の一実施の形態によるデータ通信装置における通信制御手段の処理の流れを示す第１のフローチャート図である。
【図９Ｂ】本発明の一実施の形態によるデータ通信装置における通信制御手段の処理の流れを示す第１のフローチャート図である。
【図１０】本実施の形態による通信制御手段の構成例を示す図である。
【図１１Ａ】本発明の一実施の形態によるデータ通信装置における通信制御手段の処理の流れを示す第２のフローチャート図である。
【図１１Ｂ】本発明の一実施の形態によるデータ通信装置における通信制御手段の処理の流れを示す第２のフローチャート図であり、図１１Ａに続く図である。
【図１２】通信制御ドライバの通信実行処理の流れを示すフローチャート図である。
【図１３】通信制御ドライバの通信完了処理の流れを示すフローチャート図である。
【図１４】本発明の実施の形態によるデータ通信システムの動作の概要を示す図である。
【図１５】本発明の第２の実施の形態による通信制御手段の構成例を示す図である。
【図１６】本発明の第３の実施の形態によるＳＰＩモジュールの構成例を示す図である。
【符号の説明】
【００５５】
１…メインマイコン（マスターデバイス）、２Ａ…サブマイコン、２Ｂ…ドライバＩＣ、３Ａ…クロック信号線１、３Ｂ…クロック信号線２、４…同期用クロック信号バス、５…データ送信バス、６…データ受信バス、４１、４２、４３、４４、４５、４６…同期用クロック信号、５１、５２、５３、５４、５５、５６…送信データ、６１、６２、６３、６４、６５、６６…受信データ、７…車両、８…エンジン、９…アクセルペダル、１０…車両制御コントローラ。
【図１】
2005196486.tif 000003
【図２】
2005196486.tif 000004
【図３】
2005196486.tif 000005
【図４】
2005196486.tif 000006
【図５】
2005196486.tif 000007
【図６】
2005196486.tif 000008
【図７】
2005196486.tif 000009
【図８】
2005196486.tif 000010
【図９Ａ】
2005196486.tif 000011
【図９Ｂ】
2005196486.tif 000012
【図１０】
2005196486.tif 000013
【図１１Ａ】
2005196486.tif 000014
【図１１Ｂ】
2005196486.tif 000015
【図１２】
2005196486.tif 000016
【図１３】
2005196486.tif 000017
【図１４】
2005196486.tif 000018
【図１５】
2005196486.tif 000019
【図１６】
2005196486.tif 000020