JP2004362067A - シリアル通信システム - Google Patents
シリアル通信システム Download PDFInfo
- Publication number
- JP2004362067A JP2004362067A JP2003157025A JP2003157025A JP2004362067A JP 2004362067 A JP2004362067 A JP 2004362067A JP 2003157025 A JP2003157025 A JP 2003157025A JP 2003157025 A JP2003157025 A JP 2003157025A JP 2004362067 A JP2004362067 A JP 2004362067A
- Authority
- JP
- Japan
- Prior art keywords
- slave
- command
- command frame
- frame
- serial communication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
【課題】マスタ装置と複数のスレーブ装置とがシリアル通信を行うシリアル通信システムの構成を簡素化して、マスタ装置の通信処理負荷を低減する。
【解決手段】マスタ装置としてのマスタCPU10と、スレーブ装置としての各IC11〜14とが、相互に同期式シリアル通信を行うよう構成されたものであり、マスタCPU10と各IC11〜14とは、共通の信号ラインL1〜L4にて相互にバス接続されている。マスタCPU10は、いずれかのICを通信対象としてシリアル通信を行う場合、送信すべきコマンドにその通信対象ICを示す送信先IC情報を付加したマスタ信号STXD(コマンドフレーム)を、コマンドラインL3上へ出力する。各ICは、マスタCPU10からのマスタ信号STXDに含まれている送信先IC情報をみて、それが自身宛のものであれば、出力ポートを開いてマスタCPU10とのシリアル通信を開始する。
【選択図】 図1
【解決手段】マスタ装置としてのマスタCPU10と、スレーブ装置としての各IC11〜14とが、相互に同期式シリアル通信を行うよう構成されたものであり、マスタCPU10と各IC11〜14とは、共通の信号ラインL1〜L4にて相互にバス接続されている。マスタCPU10は、いずれかのICを通信対象としてシリアル通信を行う場合、送信すべきコマンドにその通信対象ICを示す送信先IC情報を付加したマスタ信号STXD(コマンドフレーム)を、コマンドラインL3上へ出力する。各ICは、マスタCPU10からのマスタ信号STXDに含まれている送信先IC情報をみて、それが自身宛のものであれば、出力ポートを開いてマスタCPU10とのシリアル通信を開始する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、マスタ装置と複数のスレーブ装置とがシリアル通信を行うシリアル通信システムに関する。
【0002】
【従来の技術】
マスタ装置と複数のスレーブ装置との間で相互にシリアル通信可能に接続する場合、図26に示すように、マスタ装置と各スレーブ装置とを各々独立した信号伝送ラインで接続する構成が一般的である。
【0003】
図26のシリアル通信システムは、マスタ装置であるマスタCPU110が、スレーブ装置である4つの集積回路(IC−A121,IC−B122,IC−C123及びIC−D124;以下これらを単に「IC」ともいう)のそれぞれに対して個々に接続されて構成されている。
【0004】
例えばマスタCPU110とIC−D124との間では、IC−D124をアクティブ状態(つまりシリアル通信可能状態)にするためにマスタCPU110からIC−D124へ送信されるチップセレクト信号CSと、データ同期用にマスタCPU110からIC−D124へ送信されるクロック信号SCLKと、マスタCPU110からIC−D124へ送信されるシリアル通信用のマスタ信号STXDと、そのマスタ信号STXDに応答してIC−D124がマスタCPU110へ送信するスレーブ信号SRXDとが、相互に伝送される。他の各IC121〜123とマスタCPU110との間も同様である。
【0005】
尚、以下の説明において、マスタ信号STXD及びスレーブ信号SRXDの各伝送ラインをまとめてシリアル通信ライン、クロック信号SCLKの伝送ラインをクロックライン、チップセレクト信号CSの伝送ラインをCSラインという。
上記構成のシリアル通信システムでは、マスタCPU110が各IC121〜124とそれぞれ個々に接続されているため、マスタCPU110と接続するIC毎に独立したシリアル通信ライン等の各種信号伝送ラインが必要となるのはもちろん、IC毎にマスタCPU110のシリアルポート(シリアル通信ラインが接続されるポート)も必要となる。そのため、マスタCPU110に接続するICが多いほど、その分、シリアル通信ラインが多系統必要になると共にマスタCPU110の構成が複雑化し、且つ、複数のシリアルポートにそれぞれ入・出力するデータを処理するための通信処理負荷も増大する。
【0006】
そこで、こういった問題を解決するための一手法として、複数個のマイコンをシリアル通信ラインでリング状に接続することにより各マイコンが前後のマイコンと相互にシリアル通信可能に構成された通信システムにおいて、各マイコンが前後それぞれのマイコンへ出力するデータを共通の出力ポートから出力するようにすると共に、出力するデータに出力先のマイコンを示す識別ラベルを付加することにより、出力先のマイコン側では2つの入力ポート(前後マイコンからの入力に対応して各々設置)に入力されるデータそれぞれについてその識別ラベルをみて、自分宛のデータである場合のみ受信処理を行うようにしたものが知られている(例えば、特許文献1参照。)。
【0007】
上記技術によれば、出力データに識別ラベルを付加することにより一つの出力ポートを利用して前後のマイコンにデータ送信できるため、マイコンにおけるシリアル出力ポートを削減でき、マイコン構成の簡素化を図ることができる。
【0008】
【特許文献1】
実開平5−59540号公報
【0009】
【発明が解決しようとする課題】
しかしながら、上記技術は、出力ポートを一つに共通化できるという効果は得られるものの、シリアル通信ラインをリング状に接続しているため、リングの前後にあるマイコンとしかデータ通信をすることができない。また、リングの前後にあるマイコンからそれぞれデータを受信するために入力ポートが2つ必要となる。仮に前後以外のマイコンからもデータを受信できるようにしようとすると、その分さらに入力ポートが必要となる。
【0010】
また、リング状に接続した構成であるため、既存のシステムに対して新規にマイコンを追加しようとすると、リング状のどこかに挿入・接続することになり、そのマイコンもやはり前後のマイコンとしかデータ通信を行うことができない。前後以外のマイコンとデータ通信するためには、その分入・出力ポートを増やしたり、前後のマイコンを経由させるといった方法を採らざるをえず、いずれにしてもマイコン構成の複雑化、延いてはシリアル通信システム全体の複雑化を招いてしまう。
【0011】
本発明は上記課題に鑑みなされたものであり、マスタ装置と複数のスレーブ装置とがシリアル通信を行うシリアル通信システムにおいて、システムの構成を簡素化してマスタ装置の通信処理負荷を低減することを目的とする。
【0012】
【課題を解決するための手段及び発明の効果】
上記課題を解決するためになされた請求項1記載のシリアル通信システムは、マスタ装置と複数のスレーブ装置とが、マスタ装置から複数のスレーブ装置へコマンドを送信するための共通の第1通信ライン及び複数のスレーブ装置の各々からマスタ装置へ上記コマンドに対する応答データを送信するための共通の第2通信ラインによってそれぞれバス接続されることにより、該各通信ラインを介して相互に同期式シリアル通信を行うよう構成されている。
【0013】
そしてマスタ装置は、通信対象のスレーブ装置に対してコマンドを送信する際、送信すべきコマンドにその通信対象のスレーブ装置を示すスレーブ識別子を送信先スレーブ情報として付加したコマンドフレームを第1通信ラインに出力し、スレーブ装置は、第1通信ラインを介してマスタ装置からのコマンドフレームを受信した時、そのコマンドフレームに含まれている送信先スレーブ情報に基づいてそのコマンドフレームが自身宛のものか否か判断し、自身宛のものであった場合にそのコマンドフレーム内のコマンドに基づく処理を行う。
【0014】
マスタ装置が第1通信ラインに出力するコマンドフレームは、ある特定のスレーブ装置に対するものであるが、そのコマンドフレームは第1通信ラインに接続されている全てのスレーブ装置が受信可能である。そのため、各スレーブ装置は、受信したコマンドフレームが自身宛のものであるか否かを、それに含まれる送信先スレーブ情報に基づいて判断する。つまり、送信先スレーブ情報としてのスレーブ識別子が自身を示すものであれば自身宛のものと判断するのである。
【0015】
従って、上記構成のシリアル通信システムによれば、マスタ装置と複数のスレーブ装置とが共通の通信ライン(第1及び第2通信ライン)でバス接続されているため、図26で説明した従来のシステムのようにマスタ装置が各スレーブ装置毎に個々にシリアルポートを備える必要がなくなり、システムの構成を簡素化する事が可能になると共に、従来のような、マスタ装置が各スレーブ装置毎にシリアルポートを区別して通信処理を行うといった複雑な処理が不要となり、マスタ装置における通信処理負荷の軽減も可能となる。
【0016】
尚、マスタ装置からのコマンドは、通信対象のスレーブ装置に対する各種指示内容を示すデータである。例えば、通信対象のスレーブ装置が備える機能を実行させる指示、マスタ装置が持っている所定のデータを書き込ませる指示、或いはスレーブ装置が持っている所定のデータをマスタ装置へ送信させる指示など、種々のものが考えられる。
【0017】
上記構成のシリアル通信システムにおいては、同一構成(同じ機能・動作)のスレーブ装置、つまり同じスレーブ識別子を有するスレーブ装置を複数使用する場合も考えられるが、その際は、例えば請求項2に記載のように、同一構成のスレーブ装置相互の区別を補助識別子によって行うようにするとよい。
【0018】
即ち、請求項2記載のシリアル通信システムは、複数のスレーブ装置のうち少なくとも2つが、同じスレーブ識別子に対応した同一構成のスレーブ装置であると共に、外部から相互に区別できるようにするための異なる補助識別子がそれぞれ設定され、マスタ装置からのコマンドフレームの受信時にそのコマンドフレーム中に送信先スレーブ情報として含まれているスレーブ識別子及び補助識別子に基づいてそのコマンドフレームが自身宛のものか否か判断するよう構成されている。そして、マスタ装置は、上記同一構成のスレーブ装置のいずれかを通信対象としてコマンドフレームを出力する際、送信先スレーブ情報として、その通信対象のスレーブ装置に対応したスレーブ識別子及び補助識別子を付加する。
【0019】
上記構成のシリアル通信システムによれば、同一構成のスレーブ装置を複数用いる場合であっても、マスタ装置はそれらを別々に区別(選択)してシリアル通信を行うことができるため、システムをよりフレキシブルに構築することが可能となる。
【0020】
補助識別子の設定の具体例としては、例えば請求項3に記載のように、スレーブ装置における所定の端子をプルアップするかプルダウンするかによって設定するようにしてもよい。
即ち、請求項3記載のシリアル通信システムは、上記同一構成のスレーブ装置がいずれも、外部から任意の値の電圧を印加可能な1又は複数の識別端子と、その識別端子が所定電圧にプルアップされたハイレベル状態若しくはグランドレベルにプルダウンされたロウレベル状態のいずれにあるかを判断するレベル判断手段と、そのレベル判断手段による判断結果に応じた補助識別子を設定する設定手段と、を備えており、当該システムを構成する同一構成の各スレーブ装置が備える識別端子が相互に異なる状態にされることによって、その同一構成のスレーブ装置相互間で異なる補助識別子が設定されている。
【0021】
例えば識別端子が一つであれば、必然的に同一構成のスレーブ装置を2つ備えることができ、この場合、一方をハイレベル状態、他方をロウレベル状態とすればよい。また例えば、識別端子が2つであれば、この2つの識別端子の状態の組み合わせにより、同一構成のスレーブ装置を最大4つまで備えることができる。更に識別端子が多ければ、同一構成のスレーブ装置をより多く用いることができる。
【0022】
このように、識別端子の状態(ハイレベル又はロウレベル)に基づいて補助識別子を設定できるようにすることにより、補助識別子設定のための構成を簡素化でき、且つ、設定のための操作(プルアップ又はプルダウン)も容易になる。
そしてこの場合、特に、同一構成のスレーブ装置を2つ備えて相互に異なる補助識別子を設定する場合は、例えば請求項4に記載のように、その2つのスレーブ装置を、いずれも識別端子を複数備えたものとして構成すると共に、一方のスレーブ装置が備える各識別端子のプルアップ若しくはプルダウンの組み合わせに対し、他方のスレーブ装置が備える各識別端子のプルアップ若しくはプルダウンの組み合わせを全て逆にするとよい。つまり、一方のスレーブ装置における各識別端子のレベルに対し、他方のスレーブ装置における各識別端子のレベルを全て逆にするのである。
【0023】
このようにすれば、例えばいずれか一方のスレーブ装置において、ある識別端子の状態が反転(ハイレベルからロウレベルへ転換、又はその逆)しても、識別端子全体としては他方のスレーブ装置と同じ状態にはならない。つまり、一方のスレーブ装置の識別端子の状態が何らかの原因によって他方のスレーブ装置と全く同じ状態になってしまう可能性を低く抑えることができ、マスタ装置からのコマンドに対してこれら2つの同一構成のスレーブ装置が同時に応答してその出力(応答フレーム)が第2通信ライン上で衝突してしまう可能性を低減することができる。
【0024】
ここで、コマンドフレームに含まれる送信先スレーブ情報は、コマンドフレームにおける任意の位置に配置できるが、シリアル通信の同期クロックが速くなると、スレーブ装置が自身宛のコマンドを受けてからそれに対する応答データを送信するまでの時間も短くなる。そのためスレーブ装置は、自身を対象とするコマンドフレームを受信した場合はなるべく早めに応答のための準備をする(例えば第2通信ラインへの応答フレーム出力が可能な状態、つまり例えば出力ポートを開いて出力可能状態にする)必要がある。
【0025】
そこで例えば請求項5記載のように、マスタ装置は、送信先スレーブ情報を、コマンドフレームにおけるMSB側又はLSB側のうち第1通信ラインに先に出力する側に配置するよう構成するとよい。マスタ装置をこのように構成すれば、スレーブ装置は、コマンドフレームを受信したときにそのコマンドフレームに含まれている送信先スレーブ情報をより早く得ることができる(換言すれば、より早いタイミングで自身宛のものか否か判断できる)ため、自身宛であった場合に迅速に応答のための準備をすることができる。
【0026】
ところで、マスタ装置は、ある通信対象のスレーブ装置に対して複数のコマンドフレームを順次送信(第1通信ラインへ出力)する場合、出力する全てのコマンドフレームに送信先スレーブ情報を付加するようにしてもよいが、より効率的に通信を行うためには、例えば請求項6に記載のように、最初に出力するコマンドフレームにのみ送信先スレーブ情報を付加するようにするとよい。
【0027】
この場合、スレーブ装置は、自身を示す送信先スレーブ情報が付加されたコマンドフレームを第1通信ラインを介して受信したとき、その後に受信する、送信先スレーブ情報が付加されていないコマンドフレームについても、自身宛のものとして扱う。
【0028】
上記構成のシリアル通信システムによれば、マスタ装置は、順次送信するコマンドフレームにおいて2番目以降に送信するコマンドフレームには送信先スレーブ情報を付加する必要がないため、その分、他のデータ(コマンド又は各種データ等)の領域として利用することができ、より効率的なシリアル通信が可能となる。
【0029】
そしてこの場合、例えば請求項7に記載のように、マスタ装置は、通信対象のスレーブ装置に送信すべき1又は複数のコマンドフレームを第1通信ラインへ順次出力する際、最初に出力するコマンドフレームに、そのコマンドフレームを含む順次出力するコマンドフレームの総数を示す送信フレーム数データを付加し、スレーブ装置は、送信フレーム数データが付加されたコマンドフレームであって自身宛のものを第1通信ラインを介して受信したとき、そのコマンドフレームを含みその後順次受信するコマンドフレームのうち送信フレーム数データが示す数のコマンドフレームについては、全て自身宛のものとして扱うよう構成してもよい。
【0030】
上記構成のシリアル通信システムによれば、送信フレーム数データによって、自身宛に順次送信されてくるコマンドフレームの総数が予めわかるため、その数のコマンドフレームを受信してそれらに対する応答フレームの出力を終えたら、即、第2通信ラインへの応答フレーム出力が可能な応答可能状態を解除(例えば応答フレームの出力ポートを高インピーダンス化)でき、通信対象の切り替え前後の各スレーブ装置からの出力が第2通信ライン上で衝突するといった事態を防ぐことができる。
【0031】
また例えば、請求項8に記載のように、マスタ装置は、通信対象のスレーブ装置を切り替える際、切り替え前の通信対象のスレーブ装置に対する最後のコマンドフレームの出力後、そのスレーブ装置との通信が終了したことを示す通信終了コマンドを含むコマンドフレームを第1通信ラインに出力して、その出力後に切り替え先のスレーブ装置との通信を開始するよう構成され、スレーブ装置は、マスタ装置との通信中に通信終了コマンドを受信したとき、少なくともその次に受信するコマンドフレームについては、自身宛のものではないと判断するよう構成されたものであってもよい。
【0032】
このようにすれば、ある通信対象のスレーブ装置とシリアル通信中に通信終了コマンドを受信すれば、マスタ装置へ送信すべき応答フレームを全て出力した後、即、上記(請求項7)の場合と同様に応答可能状態を解除できるため、通信対象の切り替え前後の各スレーブ装置からの出力が第2通信ライン上で衝突するといった事態を防ぐことができる。
【0033】
請求項1〜8いずれかに記載のシリアル通信システムは更に、例えば請求項9に記載のように構成してもよい。即ち、スレーブ装置は、マスタ装置からのコマンドフレームに対する応答データを応答フレームにて第2通信ラインへ出力する際、少なくとも、送信先スレーブ情報を含むコマンドフレームに対して出力する応答フレームは、応答データに自身を示す応答元識別子を付加した構成とし、マスタ装置は、通信対象のスレーブ装置へ送信したコマンドフレームに対して該スレーブ装置から送信される応答フレーム中の応答元識別子に基づいて、該通信対象のスレーブ装置が正常か否か判断する。
【0034】
応答元識別子は、例えばマスタ装置からのコマンドフレームに含まれる送信先スレーブ情報をそのまま応答元識別子としてもいいし、別途、マスタ装置が識別可能な識別子を付加するようにしてもよい。
マスタ装置における具体的判断手法としては、例えば、本来応答元識別子が付加されているはずの応答データに何ら付加されていなかったり、通信対象のスレーブ装置を示す応答元識別子とは異なる識別子が付加されていたりしたら異常と判断できる。また、コマンドフレームに対して応答フレーム自体が送信されてこなかった場合も、応答元識別子が返答されないことになり、やはり異常と判断することができる。
【0035】
従って、シリアル通信システムを上記のように構成すれば、マスタ装置は通信対象のスレーブ装置から正常に応答されるか否かを監視するため、スレーブ装置の異常を検出することが可能となる。
更に、例えば請求項10記載のように、スレーブ装置は、マスタ装置から自身宛に送信されてくるデータを書き込むための記憶手段を備えると共に、その記憶手段における記憶領域の少なくとも一部は、マスタ装置から自身宛のプロテクト解除コマンドを受けた場合にデータの書き込みが可能であってそれ以外は記憶内容が保持されるプロテクト領域として構成され、マスタ装置は、通信対象のスレーブ装置におけるプロテクト領域に書き込むべきデータを含むコマンドフレームを第1通信ラインへ出力する際、そのコマンドフレームの出力に先立って、その通信対象のスレーブ装置に対するプロテクト解除コマンドを含むコマンドフレームを出力するよう構成してもよい。
【0036】
上記構成のシリアル通信システムによれば、プロテクト領域の記憶内容は通常は保持されて外部から書き換えられるおそれがないため、例えばその記憶内容を定期的にリフレッシュするといった操作が不要となり、通信負荷を軽減することが可能となる。また、プロテクト解除コマンドを送信しない限りその記憶内容は保持されるため、プロテクト領域のデータが誤って書き換えられてしまう(或いはプロテクト領域へ誤ってデータが書き込まれてしまう)のを防止できる。
【0037】
ところで、スレーブ装置の機能・構成によっては、他のスレーブ装置がマスタ装置へ送信する応答データを必要とする場合も考えられる。しかし、当該シリアル通信システムにおいては、マスタ装置と各スレーブ装置とで1対1の通信が行われるため、スレーブ装置が他のスレーブ装置からの応答データをもらうためには、一旦マスタ装置へ応答されたデータを、マスタ装置が折り返しその必要としているスレーブ装置へ送信しなければならない。
【0038】
そこで、例えば請求項11に記載のように、スレーブ装置を、マスタ装置からのコマンドフレームの受信時、そのコマンドフレームに含まれている送信先スレーブ情報が自身以外の他のスレーブ装置に対応するものであった場合は、その送信先スレーブ情報に対応したスレーブ装置が第2通信ラインへ出力する、上記コマンドフレームに対するマスタ装置への応答フレームを、該第2通信ラインを介して受信できるよう構成するとよい。
【0039】
このように構成されたシリアル通信システムによれば、スレーブ装置は、他のスレーブ装置からマスタ装置へ送信される応答データを、マスタ装置を介さずに直接取得することができるため、通信負荷を増大させることなく他のスレーブからの応答データを取得することが可能となる。
【0040】
次に、請求項12記載の発明は、請求項1〜11いずれかに記載のシリアル通信システムにおいて、上記複数のスレーブ装置はいずれも、同一の第1スレーブセレクトラインによってマスタ装置とバス接続されると共に、マスタ装置からその第1スレーブセレクトラインへアクティブ信号が出力されたときにシリアル通信可能状態となるよう構成されており、更に、上記複数のスレーブ装置とは別のスレーブ装置である他系統スレーブ装置が、マスタ装置と相互にシリアル通信可能となるよう各通信ラインと接続されると共に第2スレーブセレクトラインによってマスタ装置と接続され、マスタ装置から第2スレーブセレクトラインへアクティブ信号が出力されたときにシリアル通信可能状態となるよう構成されている。そして、マスタ装置は、他系統スレーブ装置とシリアル通信を行う際は、第1スレーブセレクトラインへのアクティブ信号出力を停止すると共に第2スレーブセレクトラインへアクティブ信号を出力するよう構成されている。
【0041】
上記構成のシリアル通信システムによれば、第1スレーブセレクトラインによってシリアル通信可能状態にされる上記複数のスレーブ装置以外にも更にスレーブ装置を追加することができ、マスタ装置はより多くのスレーブ装置とシリアル通信を行うことが可能となる。また、第2スレーブセレクトラインを複数用いれば、更に多くのスレーブ装置とシリアル通信することが可能となる。つまり、第2スレーブセレクトラインの使用数や、第1スレーブセレクトラインと第2スレーブセレクトラインにそれぞれ接続するスレーブ装置の組み合わせ等によって、多種多様な接続形態のシリアル通信システムを構築できる。
【0042】
尚、複数の他系統スレーブ装置を備えると共に各他系統スレーブ装置を個々に第2スレーブセレクトラインにてマスタ装置と接続し、マスタ装置がいずれかの他系統スレーブ装置とシリアル通信を行う際には、その通信対象の他系統スレーブ装置に対応した第2スレーブセレクトラインにのみアクティブ信号を出力するようにすればよい。
【0043】
また、同一の第2スレーブセレクトラインに複数の他系統スレーブ装置を接続するようにしてもよい。この場合、マスタ装置は、第2スレーブセレクトラインに接続された各他系統スレーブ装置についても、第1スレーブセレクトラインに接続された各スレーブ装置と同様、別途送信先スレーブ情報を用いることによって通信対象の他系統スレーブ装置を指定することができる。
【0044】
上記各構成のシリアル通信システムはまた、例えば請求項13に記載のように、各スレーブ装置(他系統スレーブ装置を含む)の少なくとも2つが、各々半導体基板上に形成され、且つ、同一の半導体素子収納用パッケージ内に収められて構成されたものであってもよい。このように構成すれば、当該シリアル通信システムの構成を簡素化でき、コストダウンも可能となる。
【0045】
【発明の実施の形態】
以下に、本発明の好適な実施形態を図面に基づいて説明する。
[第1実施形態]
図1は、本実施形態のシリアル通信システムの概略構成を示す説明図である。図1に示す如く、本実施形態のシリアル通信システムは、マスタ装置としてのマスタCPU10と、スレーブ装置としてのIC−A11,IC−B12,IC−Ca13,IC−Cb14とが、相互に同期式シリアル通信を行うよう構成されたものであり、マスタCPU10と各IC11〜14とは、マスタCPU10がデータ同期用のクロック信号SCLKを各IC11〜14へ送信するためのクロックラインL1と、各IC11〜14をアクティブ状態にするチップセレクト信号CSをマスタCPU10が各IC11〜14へ送信するためのCSラインL2と、マスタCPU10から各IC11〜14へ各種通信コマンド等を含むマスタ信号STXDを送信するためのコマンドラインL3と、及びそのマスタ信号STXDに対する応答として通信対象のICがマスタCPU10へスレーブ信号SRXDを送信するための応答ラインL4と、によって相互にバス接続された構成となっている。
【0046】
尚、本実施形態のシリアル通信システムは、例えば車両内に設けられるものである。そして、マスタCPU10は、例えば車両のエンジン制御(燃料噴射制御・点火時期制御等)を担うものであり、各IC11〜14はそれぞれ、例えばトランスミッションの変速切換制御やエンジンのトルク制御、或いはリニアソレノイドの駆動制御といった各種機能を備えたものである。
【0047】
また本実施形態では、各IC11〜14はいずれも、外部から個別に選択できるようにするためのIC選択データがそれぞれ設定されており、後述するように、各IC11〜14はマスタCPU10からのマスタ信号STXD(図5のコマンドフレーム)が自身宛のものであるか否かを、マスタ信号STXDに含まれるIC選択データに基づいてハード的に判別できるよう構成されている。
【0048】
即ち、図5に示すように、IC選択データが「001」のICはIC−A、IC選択データが「010」のICはIC−B、IC選択データが「011」のICはIC−C、というふうに、IC−A〜IC−Fの6種類のICがIC選択データによって予め決められているのである。
【0049】
このようにスレーブ装置としてのICを予め決めておく(IC選択データによって判別できるようにしておく)のは、車両によってIC−A〜IC−Fを使用する組合せが異なるためである。例えば、IC−AとIC−Dのみを使用する車種もあれば、IC−A〜IC−Fの全てを使用する車種もある。そのため、上記のようにIC−A〜IC−Fを予め決めておくことにより、マスタCPU10の通信制御プログラムを共通化できるという利点がある。
【0050】
IC−Ca13及びIC−Cb14は、同一機能・構成を有する同じICである。つまり、いずれも同じIC選択データ「011」が設定されたIC−Cとして分類されるものである。IC−CにはIC識別端子が設けられており、これを所定電圧にプルアップしてハイレベル(以下「Hレベル」という)状態にするか或いはグランド電位にプルダウンしてロウレベル(以下「Lレベル」という)状態にするかによって、同じ2つのIC−Cを外部から区別することができる。
【0051】
本実施形態では、2つのIC−Cのうち、一方のIC−Ca13のIC識別端子13aを所定電圧Vcにプルアップし、他方のIC−Cb14のIC識別端子14aをグランドにプルダウンして、両者を区別している。これにより、IC−Ca13には、IC選択データ「011」とは別に、IC番号データとして「1」が設定される。同様に、IC−Cb14にも、IC選択データとは別にIC番号データとして「0」が設定される。この設定の詳細については後述する。
【0052】
このように同一構成のICを複数(本例では2つ)使用する場合としては、例えば各種制御においてリニアソレノイドを駆動するためのICを複数用いる場合が考えられる。例えばECT(Electronic Controlled Transmission;電子制御自動変速機)用に用いられるリニアソレノイドの本数は、車種・グレード等によって異なるため、リニアソレノイドの本数によっては一つのICだけでは足りない場合もある。例えばIC−Cが4本のリニアソレノイドを駆動できるよう構成されたものである場合に、ECTで用いられるリニアソレノイドが5〜8本ならば、IC−Cが2つ必要となる。
【0053】
本システムにおいて行われるシリアル通信は、マスタCPU10が常に通信の主導権を持ち、各IC11〜14とシリアル通信を行う際は、まずチップセレクト信号CSをアクティブ(本実施形態ではLレベル)にして各IC11〜14をアクティブ状態(シリアル通信可能状態)にすると共に、各IC11〜14へクロック信号SCLKを出力する。
【0054】
そして、通信対象のICに対してマスタ信号STXDを出力し、それを受信したIC(通信対象)が、そのマスタ信号STXDに含まれる各種コマンドに応じたスレーブ信号SRXD(応答フレーム)にて返信する。各IC11〜14は、チップセレクト信号CSがアクティブになっていなければシリアル通信を行うことができない。
【0055】
尚、各IC11〜14は、実際には、図2に示すようにそれぞれ半導体基板上に形成されたチップ21〜24としてBGA(Ball Grid Array )パッケージ20内に収納されている。即ち、IC−A11はチップA21、IC−B12はチップB22、IC−Ca13はチップCa23、IC−Cb14はチップCb24として、全てBGAのインターポーザ基板上に搭載され、一つのBGAパッケージ20に収納されている。そのため、以下の説明においてIC−A11,IC−B12,IC−Ca13,IC−Cb14とは、それぞれBGAパッケージ20内に収納されたチップA21,チップB22,チップCa23,チップCb24を示しているものとする。
【0056】
図5に、本実施形態のシリアル通信システムにおけるマスタCPU10から各IC11〜14へのマスタ信号STXDの構成を示す。マスタ信号STXDは、図示の如く32ビットのフレーム(コマンドフレーム)にて構成されている。尚、以下の説明では、LSBをbit0とし、MSB側へ順にbit1,bit2・・・というものとする(MSBはbit31)。
【0057】
コマンドフレームは、MSBにR/Wデータが配置され、bit30〜28にIC選択データが配置され、bit27にIC番号データが配置されている。そして、bit26〜0には、各種コマンドやデータ、アドレス(通信対象ICにおけるメモリやレジスタなどのアドレス)等が配置される。R/Wデータは、通信対象のICに対してデータの書き込み又は読み出しを指示するものであり、通信対象ICが持つデータを読み出したい場合はリード命令として「0」に設定し、通信対象ICへデータを書き込みたい場合はライト命令として「1」に設定する。
【0058】
IC選択データは、本実施形態では3ビット構成であり、理論的には最大8通りのデータを設定(つまり最大8種類のICを選択)できるが、「000」と「111」は未使用としている。これは、シリアル通信ラインがグランドショート或いは電源側(電圧Vc)にショートした場合に誤って「000」(又は「111」)にデータ化けする可能性があるからである。そのため、図示のように、「000」と「111」を除く6種類のIC選択データを設定できるようにしている。
【0059】
IC番号データについては既に説明した通りであり、IC識別端子13aがプルアップされたIC−Ca13を通信対象にする場合は「1」とし、IC識別端子14aがプルダウンされたIC−Cb14を通信対象にする場合は「0」とすればよい。bit26〜0に含まれるコマンドは、例えば通信対象のICが備える機能を実行させるための命令など、通信対象のICに対する各種命令内容を示すデータである。
【0060】
次に、各IC11〜14の内部構成について、図3に基づいて説明する。図3は、各IC11〜14においてシリアル通信に関係する部分のみを抽出したものであり、各IC11〜14が共通して備えているものである。CPU30は、当該ICにおいて行われる制御全体を担うものであり、図示しないROMに格納された各種制御プログラムに従ってIC内の各部を制御する。マスタCPU10からのクロック信号SCLKは、クロックゲーティング回路43を介して受信用シフトレジスタ33や送信用シフトレジスタ42などの各種回路等へ供給される。
【0061】
クロックゲーティング回路43には、チップセレクト信号CSも入力されており、このチップセレクト信号CSがアクティブ(Lレベル)のときにのみクロック信号SCLKが出力され、当該ICがシリアル通信可能状態となるように構成されている。逆に、チップセレクト信号CSが非アクティブ(Hレベル)の場合はこのクロックゲーティング回路43からIC内部へクロック信号SCLKが供給されず、ICはシリアル通信できない状態となる。
【0062】
マスタCPU10からのマスタ信号STXD(コマンドフレーム)は、受信用シフトレジスタ33へ入力され、受信レジスタ34を介してシリアル制御回路32へ転送される。また、このコマンドフレームはシリアル制御回路32を介してIC情報抽出部36が備えるデコーダ46へも送出され、このデコーダ46にて、コマンドフレーム中のbit30〜27に配置されているIC選択データ及びIC番号データ(以下これらをまとめて「送信先IC情報」ともいう)が抽出(デコード)される。
【0063】
IC識別端子13a(14a)は、図1に示すようにプルアップ又はプルダウンされることによりHレベル又はLレベルいずれかの状態にされるが、この状態はレベル判別部35によって判別され、その判別結果がIC番号データとしてIC情報レジスタ36aに格納される。
【0064】
IC−Ca13の場合、IC識別端子13aがプルアップされていることにより、レベル判別部35がHレベルであると判別する。この判別結果に基づいてIC情報レジスタ36aにIC番号「1」を格納する。IC−Cb14の場合は、IC識別端子14aがプルダウンされていることにより、レベル判別部35がLレベルであると判別する。この判別結果に基づいて、IC情報レジスタ36aにIC番号「0」を格納する。
【0065】
また、当該IC固有のIC選択データは、IC情報レジスタ36a内に予め記憶されている(或いは、CPU30にて、データバスを介してIC情報レジスタ36aのIC選択データに書き込むようにしてもよい)。つまり、IC情報レジスタ36aには、当該IC固有の送信先IC情報が格納されていることになる。
【0066】
比較器38は、デコーダ46にてデコードされた送信先IC情報と、IC情報レジスタ36aに格納されているデータとを比較し、両者が一致していれば、マスタCPU10からのコマンドフレームは自身宛のものであると判断して、出力回路40へLレベルの出力許可信号を出力する。またこれにより、シリアル制御回路32は、受信したコマンドフレームに含まれる各種コマンドを解析し、それに応じた各種処理を行って、その応答データを生成・出力する。
【0067】
RAM31は、CPU30が各種演算処理を実行する際のワークエリアや、各種制御パラメータ・データ等が格納されるエリアを備えているが、本実施形態では、大きく分けて、特に制限無くCPU30の指示によって各種データ等を書き込み(書き換えも含む)可能な通常RAM領域31aと、通常は書き込み不可能であってその内容が保護され、マスタCPU10からプロテクト解除コマンドを受けた場合にのみ書き込み可能なプロテクトRAM領域31bとにより構成されている。
【0068】
即ち、マスタCPU10からコマンドフレームを受信すると、それに含まれるコマンドがシリアル制御回路32からコマンド判定ロジック37に出力される。コマンド判定ロジック37は、そのコマンドがプロテクト解除コマンドであるか否かを判断し、プロテクト解除コマンドであれば、その旨を示すプロテクト解除データをプロテクト解除レジスタ39に格納する。プロテクト解除レジスタ39には、通常は非解除データが格納されている。そのため、このプロテクト解除レジスタ39内のデータが非解除データであれば、プロテクトRAM領域31bは書き込みできない保護状態となり、プロテクト解除データであれば、プロテクトRAM領域31bは書き込み可能な状態となる。
【0069】
このようにプロテクトRAM領域31bを設けるのは、シリアル通信の通信負荷を低減すると共に、誤ってデータが書き込まれるのを防止するためである。シリアル通信においては、例えば、マスタCPU10が一度書き込むだけで後はIC側でそのデータを使用し続ければよい場合や、或いは、通常はIC側に最初から設定されている初期値データをそのまま使えば問題なく、ある特別な場合にのみその値を書き換えればよい場合などがある。具体的には、例えばリニアソレノイドの制御用に用いるゲインや、PWM制御におけるPWM周期(デューティ)など、種々のものが考えられる。
【0070】
そういったデータを、プロテクトRAM領域31bに記憶して通常時はマスタCPU10から書き込みできないようにしておき、プロテクト解除コマンドを受信した場合にのみ、書き込み可能な状態にするのである。但し、チップセレクト信号CSを非アクティブにすることで再び書き込み不可能な状態になる。
【0071】
マスタCPU10からのコマンドフレームに対する応答データは、図8に示すようなフレーム(応答フレーム)にてマスタCPU10へ送信される(詳細は後述)。シリアル制御回路32が、コマンドフレームに対する応答フレームを生成して送信レジスタ41へ出力すると、その応答フレームは更に送信用シフトレジスタ42へ転送される。そして、この送信用シフトレジスタ42に格納されたコマンドフレームが、出力回路40を介してマスタCPU10へ送信(応答ラインL4へ出力)されることになる。
【0072】
図4に、出力回路40の内部構成を示す。図4に示す如く、本実施形態の出力回路40は、出力許可信号を反転させるインバータ51と、応答フレーム及びインバータ51にて反転された出力許可信号が入力されるNAND回路52と、出力許可信号及び応答フレームが入力されるNOR回路53と、NAND回路52の出力がゲートに入力され、ドレインが電圧Vcに接続され、ソースが出力端子54に接続されたMOS型トランジスタ(以下単に「トランジスタ」という)T1と、NOR回路53の出力がゲートに入力され、ドレインが出力端子54に接続され、ソースがグランドに接続されたトランジスタT2と、により構成される。
【0073】
そして、当該ICがマスタCPU10の通信対象となっていない間は、出力許可信号がHレベルであるため、各トランジスタT1,T2はいずれもオフとなり、出力端子54は高インピーダンス状態(以下「Hi−Z」という)となる。つまり、送信用シフトレジスタ42内の応答フレームが出力されない状態(出力ポートが閉じた状態)となる。
【0074】
一方、マスタCPU10の通信対象となって、当該ICに対応した送信先IC情報を含むコマンドフレームを受信すると、比較器38による比較結果が一致することになり、Lレベルの出力許可信号が出力回路40へ出力される。これにより、出力ポートが開かれる(出力可能状態となる)ことになる。具体的には、出力許可信号がLレベルになると、トランジスタT2のゲートには、応答フレームを構成する各ビットデータを反転したレベルの電圧が印加される。
【0075】
即ち、応答フレームとして入力されるビットデータがLレベルの場合は、トランジスタT2のゲートにHレベルの電圧が印加され、トランジスタT2がオンする。トランジスタT1は、ゲートに常時Hレベル電圧が印加されるため、常時オフとなる。このため、出力端子54はLレベルとなる。
【0076】
一方、応答フレームとして入力されるビットデータがHレベルの場合は、トランジスタT2のゲートにLレベルの電圧が印加され、トランジスタT2がオフする。トランジスタT1は、ゲートにLレベル電圧が印加されるため、オンとなる。このため、出力端子54はHレベルとなる。
【0077】
つまり、出力許可信号がLレベルとなって出力ポートが開かれた状態においては、送信用シフトレジスタ42からの応答フレームがそのまま出力端子54に反映され、応答ラインL4へ出力されることになる。
尚、これまでの説明では、同一構成のIC−Ca13及びIC−Cb14にそれぞれIC識別端子13a(14a)が備えられているものとしたが、IC−A11及びIC−B12にも、図示は省略したもののIC識別端子が備えられ、これらを2つ用いた場合に相互に区別できるようにされている。ただし本実施形態では、IC−A及びIC−Bはいずれも一つだけであるが、これらが備えるIC識別端子は、プルアップ又はプルダウンに固定しておく。この場合、マスタCPU10は、IC−A11及びIC−B12のIC識別端子のレベルに対応するIC番号データを付加したコマンドを送信する。
【0078】
また本実施形態では、図5に示したように、通信対象のICを示す送信先IC情報が、全32ビットのコマンドフレームにおけるMSB側に配置されている。そして、マスタCPU10がコマンドフレームをコマンドラインL3に出力する際は、そのMSB側から出力するよう構成されている。つまり、コマンドフレームを受信した各IC11〜14が、それが自身宛のものであるか否かを早く判断できるように、先に送出されるMSB側に送信先IC情報を配置するようにしているのである。
【0079】
以上説明した本実施形態のシリアル通信システムでは、マスタCPU10がいずれかのICを通信対象としてシリアル通信を行う場合、まずチップセレクト信号CSをアクティブ(Lレベル)にして、各IC11〜14をシリアル通信可能状態にすると共に、同期用のクロック信号SCLKを出力する。そして、通信対象のICを示す送信先IC情報を含むコマンドフレーム(マスタ信号STXD)をコマンドラインL3へ出力する。
【0080】
各IC11〜14は、マスタCPU10からコマンドラインL3に出力されたコマンドフレームを受信すると、そのコマンドフレームに含まれる送信先IC情報に基づき、自身宛のコマンドフレームであるか否か判断する。既述の通り、各IC11〜14には、IC情報レジスタ36aにIC選択データ及びIC番号データが格納されている。この格納されている値と、受信したコマンドフレームに含まれている送信先IC情報とを比較器38で比較し、一致した場合は、自身宛のコマンドフレームであると判断して、出力ポートを開く(Lレベルの出力許可信号を出力する)。そして、そのコマンドフレームに含まれているR/Wデータや各種コマンド、データ等に基づく処理を行い、その処理結果を応答フレームとして応答ラインL4へ出力する。
【0081】
図6に、本実施形態のシリアル通信システムにおけるシリアル通信の一例を示す。時刻t1で、マスタCPU10はチップセレクト信号CSをLレベルにすると共にクロック信号SCLKを出力する。そして、通信対象をIC−Ca13としたコマンドフレームを順次出力する。これに対してIC−Ca13も、自身宛に順次送信されてくるコマンドフレームに対してそれぞれスレーブ信号SRXD(応答フレーム)を出力する。そして時刻t2で、チップセレクト信号CSをHレベルにして各IC11〜14を非アクティブ状態にすると共にクロック信号SCLKの出力も停止し、IC−Ca13とのシリアル通信を一旦終了する。以後、図示のように、IC−Cb14、IC−A11、IC−B12、IC−Ca13・・・と通信対象を切り替えていく。つまり本実施形態では、通信対象のICを切り替える際は、必ずチップセレクト信号CSを非アクティブ(Hレベル)として一旦各IC11〜14の出力ポートを閉じ、その後再びチップセレクト信号CSをアクティブとして所望のICとの通信を開始する。
【0082】
図6のタイムチャートにおける、チップセレクト信号CSがアクティブ状態になってから再び非アクティブになるまでの間(例えば時刻t1〜t2間)の通信の詳細について、図7に基づいて説明する。図7に示す如く、マスタCPU10が順次送信するコマンドフレーム(マスタ信号STXD)に対し、選択されたIC、つまりそのコマンドフレーム中の送信先IC情報に対応した通信対象のICは、2フレーム分遅れて応答フレーム(スレーブ信号SRXD)を出力する。
【0083】
但し、出力ポートの状態は、応答フレームの出力より早い段階(例えば最初のコマンドフレーム32ビットを全て受信したとき)に開かれる。即ち、最初のコマンドフレームを受信してそれが自身宛のものであることを判別すると、既述の通り出力回路40にLレベルの出力許可信号を出力して、応答フレームの出力が可能な状態とするのである。
【0084】
そしてマスタCPU10は、送信すべき所定の数のコマンドフレームを送信した後、最後に送信したコマンドフレームに対する応答フレームを受信し終えるまでの2フレーム分は、NOP(ノーオペレーション)コマンドを送信する。つまり、通信対象のICに対して、所定の応答フレーム送信後は何ら応答しないよう命令する。
【0085】
尚、図7において、各コマンドフレームに記載されている「選択」とは、IC選択データ及びIC番号(つまり送信先IC情報)を示し、「CMD」とは、通信対象のICに対するコマンドを示す。つまり、「選択+CMD」は、そのコマンドフレームに少なくとも送信先IC情報とコマンドが含まれていることを表している。また、各応答フレームに記載されている「不定」とは、応答フレームは送信せず出力ポートからの出力状態が不定であることを示し、「ANS」とは、応答フレーム中の応答データを示す。後述する各実施形態においても同様とする。
【0086】
図8に、通信対象のICからマスタCPU10へ出力される応答フレームの構成を示す。図8に示す如く、各IC11〜14は、マスタCPU10へ応答データを送信する際、その応答データに、自身を示すデータとしてIC情報レジスタ36aに格納されているIC選択データ及びIC番号データを付加して送信する。
【0087】
この応答フレームを受信したマスタCPU10は、応答フレームに含まれているIC選択データ及びIC番号に基づき、通信対象のICから正しく応答されているか、延いては通信対象のICが正常であるか否かをチェックする。具体的には、図9に示すICチェック処理を実行する。図9は、マスタCPU10が実行するICチェック処理を示すフローチャートである。このICチェック処理は、マスタCPU10がチップセレクト信号CSをアクティブにする毎に実行されるものである。
【0088】
チップセレクト信号CSをアクティブにすることによりこの処理が開始されると、ステップ(以下「S」と略す)110にて、チップセレクト信号CSの立ち下がりから立ち上がりまでの1回の通信が完了したか否かが判断される。これは言い換えれば、チップセレクト信号CSが非アクティブになったか否かの判断である。チップセレクト信号CSがアクティブの間はこのS110で否定判定され続け、その間、通信対象のICから受信した応答フレームに含まれるIC選択データ及びIC番号データをメモリ等に一時保存しておく。
【0089】
そして、チップセレクト信号CSが非アクティブになればS120に進み、アクティブ期間に受信した応答フレーム中のIC選択データ及びIC番号データが正しいものであるか否か、即ち、通信対象のICを示すものであるか否かを判断する。
【0090】
そして、正しいと判断された場合はS130に進み、そのIC(つまりチップセレクト信号CSが非アクティブになる前の通信対象のIC)は正常と判断して一旦この処理を終了する。一方、正しいと判断されなかった場合は、そのICは異常であると判断して、所定のフェイルセーフ処理を行う。このフェイルセーフ処理は、例えば、車両の運転者に異常を警告するようなランプを点灯させたり、車両のオーバーラン等を防止するためにリンプホーム運転(縮退運転)等を行わせたりするなどの処理である。
【0091】
また、既述の通り、各IC11〜14のRAM31には、プロテクトRAM領域31bが設定されており、通信中にこのプロテクトRAM領域31bへデータを書き込むためにはプロテクト解除コマンドを送信する必要がある。図10は、チップセレクト信号CSのアクティブ期間中において、プロテクトRAM領域に対するデータ書き込みに関する通信のみを抽出して示したタイムチャートである。
【0092】
図10に示す如く、チップセレクト信号CSをアクティブとして通信を開始しても、通信対象ICのプロテクトRAM領域31bに対するデータ書き込みはできないが、プロテクト解除コマンドを含むコマンドフレームを送信することにより、プロテクトRAM領域31bは書き込みが許可された状態となる。
【0093】
そのため、プロテクト解除コマンド以後に、プロテクトRAM領域31bへデータを書き込ませるためのコマンドフレーム(図10では「プロテクト領域WRITE1」、「プロテクト領域WRITE2」)を送信すると、そのコマンドフレーム中のコマンドに応じてデータが書き込まれることになる。そして、チップセレクト信号CSを非アクティブにすることにより、プロテクトRAM領域31bは再び書き込み不可能な状態にされる。
【0094】
以上詳述した本実施形態のシリアル通信システムによれば、マスタCPU10と各IC11〜14とが共通のシリアル通信ライン(コマンドラインL3,応答ラインL4)でバス接続されているため、図26で説明した従来のシステムのようにマスタCPU10が各IC11〜14毎に個々にシリアルポートを備える必要がなくなり、システムの構成を簡素化する事が可能になると共に、従来のような、マスタCPUが各IC毎にシリアルポートを区別して通信処理を行うといった複雑な処理も不要となり、マスタCPU10の通信処理負荷が軽減されたシステムの提供も可能となる。
【0095】
また、同一構成の2つのIC−Cについては、IC識別端子をプルアップ又はプルダウンすることによってそれぞれIC−Ca13及びIC−Cb14として区別できるようにしているため、マスタCPU10はIC−Ca13又はIC−Cbのいずれか一方を、IC番号データにより区別して選択することができる。そのため、同一構成のICを複数用いることが可能となり、シリアル通信システムをよりフレキシブルに構築することが可能となる。
【0096】
更に、マスタCPU10からのコマンドフレームにおいて、送信先IC情報はそのMSB側、つまり先にコマンドラインL3へ出力される側に配置されているため、各IC11〜14は、コマンドフレームを受信したときにそのコマンドフレームに含まれている送信先IC情報をより早く得ることができ、より早いタイミングで自身宛のものか否か判断できるため、自身宛であった場合に迅速に応答のための準備をすることができる。
【0097】
更にまた、各IC11〜14は、マスタCPUへ応答フレームを送信する際に、自身を示すデータ(自身のIC選択データ及びIC番号データ)を含めて送信し、マスタCPU10はそれを元に通信対象ICが正常であるか否かを判断するようにしているため、ICの異常を迅速に検出することも可能である。
【0098】
また、プロテクトRAM領域31bの記憶内容は、通常は保持されて外部から書き換えられるおそれがないため、例えばその記憶内容を定期的にリフレッシュするといった操作が不要となり、通信負荷が軽減されたシステムの実現が可能となる。また、プロテクト解除コマンドを送信しない限りその記憶内容は保持されるため、プロテクトRAM領域31b内のデータが誤って書き換えられてしまうのを防止できる。
【0099】
更に、各IC11〜14はいずれも、BGAパッケージ20内に収められて構成されているため、各IC11〜14が個々単独で存在する場合に比べて配線の簡素化やパッケージのピン数低減が実現でき、より簡素化された構成であって且つコストが低減されたシリアル通信システムの提供が可能となる
ここで、本実施形態の構成要素と本発明の構成要素の対応関係を明らかにする。本実施形態において、IC選択データは本発明のスレーブ識別子に相当し、IC番号データは本発明の補助識別子に相当し、CSラインL2は本発明の第1スレーブセレクトラインに相当し、コマンドラインL3は本発明の第1通信ラインに相当し、応答ラインL4は本発明の第2通信ラインに相当し、RAM31は本発明の記憶手段に相当し、このうち特にプロテクトRAM領域31bは本発明のプロテクト領域に相当する。
【0100】
また、IC識別端子13a,14aはいずれも本発明の識別端子に相当し、レベル判別部35は本発明のレベル判断手段及び設定手段に相当し、BGAパッケージ20は本発明の半導体素子収納用パッケージに相当し、図8に示したスレーブICからの応答フレームに含まれるIC選択データ及びIC番号データが、本発明の応答元識別子に相当する。
【0101】
[第2実施形態]
上記第1実施形態では、同一構成のIC−Ca13及びIC−Cb14をマスタCPU10が区別(選択)できるように、IC−Ca13においてはIC識別端子13aをプルアップ、IC−CbにおいてはIC識別端子14aをプルダウンすることによりそれぞれ別々のIC番号データを設定するようにした。それ以外のシステム構成は、特にことわりのない限り第1実施形態と同様である。
【0102】
しかし、このように一つのIC識別端子13a(14a)の状態によって1ビットのIC番号データを設定する方法では、例えば、IC−Cb14においてIC識別端子14aの状態を判別するレベル判別部35の異常によりHレベルと判別されてしまうと、IC−Cb14のIC番号データがIC−Ca13と同じ「1」に設定されてしまう。こうなると、図11に示すように、マスタCPU10からIC−Ca13宛に送信されてきたコマンドフレームに対して、IC−Ca13のみならずIC−Cb14まで応答してしまい、両者からの応答フレームが応答ラインL4上で衝突してしまう。
【0103】
そこで本実施形態では、IC−Cを、IC識別端子を2つ備えた構成として、レベル判別部35が各IC識別端子の状態をそれぞれ判別し、その判別結果に応じたIC番号データをシリアル制御回路32がIC情報レジスタ36aに設定するようにしている。IC識別端子が2つであるため、IC情報レジスタ36aに設定されるIC番号データは2ビットである。
【0104】
具体的には、例えば図12に示すように、一方のIC−C(IC−Ca61)が備える2つのIC識別端子(第1識別端子61a及び第2識別端子61b)をいずれもプルアップし、他方のIC−C(IC−Cb62)が備える2つのIC識別端子(第1識別端子62a及び第2識別端子62b)をいずれもプルダウンしている。
【0105】
そのため、IC−Ca61においては、各IC識別端子61a,61bがいずれもHレベル状態であるためIC番号データが「11」に設定され、IC−Cb62においては、各IC識別端子62a,62bがいずれもLレベル状態であるためIC番号データが「00」に設定される。つまり、IC番号データを構成する各ビットがいずれも、IC−Ca61とIC−Cb62とで全く逆になるように設定するのである。
【0106】
マスタCPU10が送信するコマンドフレームは、図13に示すような構成となる。即ち、bit26,27がIC番号データ用のビットとして割り当てられ、ここに通信対象のICのIC番号データを設定して送信することになる。このうちbit27に設定されるIC番号1は、第1識別端子61a(62a)の状態に対応したデータが設定され、bit26に設定されるIC番号2は、第2識別端子61b(62b)の状態に対応したデータが設定される。
【0107】
従って、本実施形態のシリアル通信システムによれば、例えばIC−Ca61において何らかの要因でIC番号データのいずれかのビットが反転して設定(「10」又は「01」と設定)されてしまっても、IC−Cb62のIC番号データとは異なるため、各IC−C61,62が共に応答してしまう可能性を低く抑えることが可能となる。
【0108】
尚、上記のように一方のIC番号データを「11」、他方を「00」とするのに限らず、例えば、IC−Ca61において、第1識別端子61aはプルアップして第2識別端子61bをプルダウンすることによりIC番号データを「10」に設定し、IC−Cb62において、第1識別端子62aはプルダウンして第2識別端子62bをプルアップすることによりIC番号データを「01」に設定することにより、両者のIC番号データの各ビットを逆にするようにしてもよい。つまり、各第1識別端子61a,62aのレベルが逆になるようにし、且つ、各第2識別端子61b、62bのレベルも逆になるようにすればよい。
【0109】
[第3実施形態]
上記第1実施形態では、通信対象のICを切り替える際、チップセレクト信号CSを一旦非アクティブにして各ICの出力ポートをHi−Zにした上で、所望の通信対象ICとのシリアル通信を開始するようにしたが、本実施形態では、チップセレクト信号CSを非アクティブにすることなく、アクティブ状態を保ったままで通信対象のICを切り替えるようにしている。
【0110】
この場合、単に通信対象のICを連続的に切り替えるようにすると、切り替え前後のICからの出力(応答フレーム)同士が応答ラインL4上で衝突してしまう可能性がある。
そこで本実施形態では、通信対象のICを切り替える際に、IC選択解除コマンドを送信するか、或いはNOPコマンドを2フレーム分送信することによって、それまで通信対象としていたICに対して通信を終了する旨を告げる。そして、そのIC選択解除コマンド(或いはNOPコマンド)の送信後に、新たな通信対象ICとのシリアル通信を開始する。IC選択解除コマンドの送受信及びそれに基づく処理がなされること以外は、本実施形態のシリアル通信システムも第1実施形態と同様の構成である。尚、IC選択解除コマンドは本発明の通信終了コマンドに相当するものである。
【0111】
図14は、IC選択解除コマンドによって通信対象のICをIC−A11からIC−B12へ切り替える場合を示すタイムチャートである。図14に示すように、マスタCPU10はまず、IC−A11を示す送信先IC情報を付加した3つのコマンド(CMD1〜3)をそれぞれコマンドフレーム(マスタ信号STXD)として出力する。図中、「IC−A+CMD1」は、IC−A11を示す送信先IC情報及びIC−A11に対するコマンドCMD1を含むコマンドフレームであることを示している。
【0112】
そのため、通信対象のIC−A11は、このコマンドフレームを受けてそれが自身宛のものであることわかると、出力許可信号をLレベルにしてスレーブ信号SRXDの出力ポートを開く。図中の「出力」は、出力ポートが開かれている状態を示している。通信対象でないIC−B12は、出力許可信号をHレベルのままとして出力ポートを閉じた状態(出力端子54をHi−Z状態)に維持する。
【0113】
マスタCPU10は、IC−A11に対して所定数のコマンドフレーム(本例では3つ)を出力した後、IC選択解除コマンドを含むコマンドフレーム(図中の「選択解除」)を出力し、IC−A11に対して通信を終了する旨を告げる。これを受けたIC−A11は、受信した3つのコマンドフレームに対する応答データANS1〜3をそれぞれ応答フレームにて出力し終えたら、即、出力端子54をHi−Zにして出力ポートを閉じる(図中の時刻t11)。つまり、選択解除コマンドが送信されたことにより、少なくともその次に受信するコマンドは自身宛のものではないと判断して、送信すべきデータの出力が終わり次第すぐに出力ポートを閉じるのである。
【0114】
マスタCPU10は、IC選択解除コマンドの出力後は次の通信対象ICであるIC−B12に対してコマンドフレームの出力を開始する。IC−B12は、自身宛のコマンドフレームを受信すると、そこから2フレーム分後に出力ポートを開いて出力可能状態にすると共にそのコマンドフレームに対する応答フレームの出力を開始する。そして、時刻t2でチップセレクト信号CSが非アクティブになると、IC−B12の出力端子54もHi−Zとなる。
【0115】
一方、図15は、NOPコマンドによって通信対象のICをIC−A11からIC−B12へ切り替える場合を示すタイムチャートである。図14と比較して、マスタCPU10は、IC選択解除コマンドの代わりにNOPコマンドを2フレーム分送信した後に切り替え先のICに対するコマンドフレームを出力する。
【0116】
IC−A11は、NOPコマンドを受信すると出力ポートを不定とする。そして、IC−B12に対するコマンドフレームを受信することにより、出力端子54をHi−Zにする(時刻t21)。IC−B12は、自身宛のコマンドフレームを受信すると、そこから2フレーム分後に出力ポートを開いてマスタCPU10への応答フレームを出力する(時刻t22)。
【0117】
従って、本実施形態のシリアル通信システムによれば、通信対象ICの切り替え時にIC選択解除コマンドを送信するか、或いは、NOPコマンドを2フレーム分送信することにより、切り替え前後のICの出力ポートが共に開かれた状態になってしまうのを防いでいるため、切り替え前後の各ICからの出力が応答ラインL4上で衝突するといった事態を防ぐことができる。
【0118】
しかも、チップセレクト信号CSを非アクティブにすることなく通信対象のICを切り替えることができるため、通信対象切り替えのためにチップセレクト信号CSを非アクティブにする時間も不要となり、通信負荷の軽減が可能となる。
[第4実施形態]
第1実施形態では、マスタCPU10が通信対象のICに対してコマンドフレームを出力する際、全てのコマンドフレームに送信先IC情報を付加するようにしたが、本実施形態では、同じ通信対象のICに対して順次出力される複数のコマンドフレームのうち最初に出力されるコマンドフレームにのみ送信先IC情報を付加するようにしている。
【0119】
より具体的には、図16に示すように、マスタCPU10はチップセレクト信号CSをアクティブにした後、最初にIC選択用のコマンドを含むコマンドフレーム(図中の「IC選択」)を送信する。このコマンドは、通信対象のICに対して、通信対象として指定したことを告げるものであり、そのICを示す送信先IC情報を付加したコマンドフレームとして送信される。そして、そのIC選択コマンドフレームの送信後は、送信先IC情報を含まないコマンドフレームを送信する。
【0120】
通信対象のICは、IC選択コマンドフレームを受信して自身が通信対象として指定されたことを知ると、その後に送信されてくる、送信先IC情報を含まないコマンドフレームについても、自身宛のものとして扱う。そのため、最初のIC選択コマンドフレームに対する応答フレーム(図中の「IC応答」)の送信後、続いて送信されてくる各コマンド(CMD1〜4)に対しても、応答データ(ANS1〜4)を送信する。
【0121】
一方、通信対象ではない他のICは、IC選択コマンドフレームを受信して自身が通信対象ではないことを知ると、その後に送信されてくる、送信先IC情報を含まないコマンドフレームについても、自身宛のものではないとして扱い、それについて応答しないようにする。
【0122】
図17に、本実施形態のマスタCPU10が通信対象のICに出力するコマンドフレームの概略構成を示す。図17(a)は、マスタCPU10が最初に送信するIC選択コマンドフレームであり、図5に示した第1実施形態のコマンドフレームと同様である。図17(b)は、2番目以降に送信するコマンドフレームであり、図示の如く送信先IC情報は含めない。つまり、32ビット全てを、必要なコマンド、データ、アドレス等として使用する。
【0123】
尚、本実施形態では、IC選択コマンドフレームに対する応答フレームにのみ、自身を示すIC選択データ及びIC番号データ(但しIC−C13及びIC−C14のみ)を付加するようにしており、マスタCPU10は、その応答フレームを受信したときにそれに含まれている上記各データに基づき、通信対象のICに異常がないか否かチェックするようにしている。
【0124】
従って、本実施形態のシリアル通信システムによれば、マスタCPU10は、通信対象のICに対して順次送信する複数のコマンドフレームのうち2番目以降のコマンドフレームに対しては送信先IC情報を付加しないため、その分、コマンドやデータ等の領域として利用することができ、より効率的なシリアル通信が可能となる。
【0125】
[第5実施形態]
本実施形態は、上記第4実施形態に示した、最初のコマンドフレームにのみ送信先IC情報を付加する場合において、チップセレクト信号CSを非アクティブに切り替えることなく通信の途中で通信対象のICを切り替えるために、通信対象のICに対して最初に送信するIC選択コマンドフレームに送信フレーム数データを付加するものである。この送信フレーム数データは、最初に送信するIC選択コマンドフレームを含み、その後その通信対象ICに対して送信するコマンドフレームの総数を示すデータである。
【0126】
つまり、通信対象のICに対して、コマンドフレームをいくつ送信するかを予め伝えておくのである。具体的には、図18に示す如く、チップセレクト信号CSをアクティブにした後、最初の通信対象ICであるIC−A11に対して、IC−A11を示す送信先IC情報及び送信フレーム数データを含むコマンドフレーム(図中の「IC−A選択」)を出力する。
【0127】
図19に、その最初に送信されるコマンドフレームの概略構成を示す。図示の如く、bit30〜27の送信先IC情報に加え、bit26〜18に、送信フレーム数データが配置されている。本例では、IC−A11への送信フレーム数が2つであるため、このbit26〜18には、送信フレーム数が2つであることを示すデータが配置されることになる。
【0128】
IC−A11は、最初のコマンドフレームを受信することによって、自身宛に2つのコマンドフレームが送信されてくることがわかる。そのため、その数(2つ)のコマンドフレームに対する応答フレームを出力すると、即、出力ポートを閉じることができる(時刻t31)。
【0129】
IC−A11へのコマンドフレーム送信を終えたマスタCPU10は、NOPコマンドを1フレーム分出力した後、次の通信対象ICであるIC−B12に対するコマンドフレーム出力を開始する。この場合も、最初のコマンドフレーム(図18中の「IC−B選択」)に送信フレーム数データが含まれる。本例ではIC−B12に対して4フレーム送信するため、その旨を示す送信フレーム数データが含まれることになる。
【0130】
従って、本実施形態のシリアル通信システムによれば、送信フレーム数データによって自身宛に順次送信されてくるコマンドフレームの総数が予めわかるため、その数のコマンドフレームを受信してそれらに対する応答フレームの出力を終えたら、即、出力ポートを閉じることができ、通信対象の切り替え前後の各通信対象ICからの出力が応答ラインL4上で衝突するといった事態を防ぐことができる。尚、切り替えの際にNOPコマンドを1フレーム分送信するのは、上記出力衝突の防止の確実性をより高めるためである。
【0131】
[第6実施形態]
上記各実施形態においては、マスタCPU10が主導権を持ってシリアル通信を行うため、各ICは、マスタCPU10としか通信を行うことができず、他のICが持っているデータ等を直接取得することができない。そこで、本実施形態は、第1実施形態のシリアル通信システムにおいて、更に、IC−B12が他のICから直接データを取得できるよう構成されたものである。
【0132】
本実施形態では、IC−A11に各種センサ(温度・圧力・速度等)からのセンサ信号や各種スイッチからのスイッチ信号が入力されると共に、アナログのセンサ信号をデジタル値に変換するためのA/D変換器が内蔵されている。そしてIC−B12は、このIC−A11が備えるA/D変換器によるA/D変換データをはじめ、他の各ICからマスタCPU10へ送信される各種データを取得できるよう、自身以外の他のICが通信対象として指定された場合に、応答ラインL4上を流れる他のICからの応答データを自身の出力ポートから取り込むようにしている。
【0133】
そのために、IC−B12が備える出力回路40は、図20に示すような構成となっている。即ち、図20に示す如く、図4に示した第1実施形態の出力回路40に対し、更に、出力端子54からの信号及び入力許可信号が入力されるNAND回路55を備え、その出力が受信データとしてIC内部に入力されるよう構成されている。
【0134】
自身が通信対象として指定されている間は、既述の如く出力ポートが開かれるため、入力許可信号を非アクティブ(Hレベル)として、出力端子54の状態に拘わらずNAND回路55の出力は不変(Lレベル)となるようにする。一方、自身以外の他のICが通信対象ICとして指定されると、既述の通り出力ポートは閉じられるが、入力許可信号をアクティブ(Lレベル)とすることにより、出力端子54から入力される信号(つまり他のICからマスタCPU10への応答フレーム)を、NAND回路55を介して内部に取り込む。
【0135】
図21に、本実施形態のシリアル通信の通信動作の一例を示す。図示の如く、時刻t1でチップセレクト信号CSがアクティブとなってIC−A11とのシリアル通信が開始されると、通信対象ではないIC−B12は、その出力ポートをHi−Z状態から入力許可状態に切り換える(時刻t41)。具体的には、入力許可信号をアクティブ(Lレベル)にすることによって、IC−A11から応答ラインL4上へ出力される応答フレームを、出力端子54からNAND回路55を介して内部に取り込めるようにする。
【0136】
そして、時刻t2でチップセレクト信号CSが非アクティブになると再びその出力ポートをHi−Zとする。その後、チップセレクト信号CSがまたアクティブとなって、マスタCPU10からのIC選択コマンドフレーム(図中の「IC−B選択」)によりIC−B12自身が通信対象として指定されると、そこから2フレーム分後に出力ポートを開いてマスタCPU10への応答を開始する(時刻t42)。
【0137】
従って、本実施形態のシリアル通信システムによれば、IC−B12は、他のICからマスタCPU10へ送信される応答データ(応答フレーム)を、マスタCPU10を介さずに直接取得することができるため、通信負荷を増大させることなく他のICからの応答データを取得することが可能となる。尚、IC−B12以外の他のICについても、IC−B12と同様、他のICからの応答データを直接取得できるよう構成することができることはいうまでもない。
【0138】
以上、本発明の実施の形態について種々の例を挙げて説明したが、本発明の実施の形態は、上記実施形態に何ら限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採り得ることはいうまでもない。
例えば、上記第4実施形態のような、最初のコマンドフレームにのみ送信先IC情報を付加する通信方式においても、第3実施形態で説明したIC選択解除コマンドを用いることによって、チップセレクト信号CSを非アクティブにすることなく通信の途中で通信対象ICを切り換えるようにしてもよい。
【0139】
具体的には、図22に示すように、IC−A11からIC−B12へ通信対象を切り換える際、IC選択解除コマンドを含むコマンドフレームを出力する。これを受けたIC−A11は、マスタCPU10への応答フレームを全て出力すると、即、出力端子54をHi−Zとする(時刻t51)。そして、IC−B12は、自身宛のコマンドフレームを受信すると、そこから2フレーム分後に、出力ポートを開いてマスタCPU10への応答を開始する(時刻t52)。
【0140】
また例えば、上記各実施形態のシリアル通信システムに対して、IC−A12〜IC−Fまでの6種類のIC(つまり6種類のIC選択データに対応したIC)以外の他のICを増設できるようにしてもよい。図23は、IC−A11,IC−B12,IC−C13,IC−D14がいずれも同一のCSラインL2に接続され、IC選択データによって相互に区別できるようにされている(上記各実施形態と同様)のに加え、更に、IC−G71及びIC−H72(いずれも本発明の非対応スレーブ装置に相当)を増設したものである。
【0141】
このうちIC−G71は、マスタCPU70と第2CSラインL21によって接続され、IC−H72は、マスタCPU70と第3CSラインL31によって接続されている。但し、コマンドラインL3,応答ラインL4,及びクロックラインL1は共通である。そして、マスタCPU70は、IC−A11,IC−B12,IC−C13,IC−D14のいずれかと通信する場合は、CSラインL2のチップセレクト信号CSをアクティブにすると共に、第2CSラインL21のチップセレクト信号CS2及び第3CSラインL31のチップセレクト信号CS3をいずれも非アクティブにする。
【0142】
一方、IC−G71と通信する場合は、第2CSラインL21のチップセレクト信号CS2をアクティブにすると共に、CSラインL2のチップセレクト信号CS及び第3CSラインL31のチップセレクト信号CS3をいずれも非アクティブにする。IC−H72と通信する場合も、同様の要領でチップセレクト信号CS3のみをアクティブにすればよい。尚、CSラインL2は本発明の第1スレーブセレクトラインに相当し、第2CSラインL21及び第3CSラインL31はいずれも本発明の第2スレーブセレクトラインに相当する。
【0143】
シリアル通信システムを上記のように構成すれば、マスタCPUはより多くのICとシリアル通信を行うことが可能となる。また、上記のような3種類のCSラインL2,L21,L31に限らず、更にCSラインを増やすことももちろん可能であり、CSラインの数や、各CSラインにそれぞれ接続するICの組み合わせ等によって、多種多様な接続形態のシリアル通信システムを構築することが可能となる。
【0144】
また、上記のようにIC−G71及びIC−H72に対してそれぞれ別々にCSラインを設ける代わりに、例えば図24に示すように、IC−G81及びIC−H82に対するCSラインとして共通の第4CSラインL41を設けるようにしてもよい。この場合、マスタCPU80は、IC−G81又はIC−H82のいずれかと通信する際には、第4CSラインL41上のチップセレクト信号CS4をアクティブにすると共に、通信対象のいずれかのICを示す送信先IC情報を付加したコマンドフレームを送信することにより、通信対象ICを指定すればよい。
【0145】
更に例えば、第1実施形態のシリアル通信システムにおいて、図2に示したBGAパッケージ20に対して別のICを、共通のシリアル通信ラインに接続するようにしてもよい。具体的には、例えば図25に示すように、BGAパッケージ20に、QFP(Quad Flat Package )にて構成されたIC−E18を、共通のシリアル通信ラインで接続することができる。
【0146】
また、上記第2実施形態では、同一構成のIC−Cのうち一方のIC識別端子を共にHレベル、他方のIC識別端子を共にLレベルとしたが、もちろんこれ以外の状態に設定してもよい。即ち、例えば一方のIC−Cを、第1識別端子をHレベル、第2識別端子をLレベルとし、他方のIC−Cにおいては、第1識別端子をLレベル、第2識別端子をHレベルとしてもよいなど、両者を区別できる限り、各識別端子の設定方法は種々考えられる。
【0147】
更に、上記各実施形態では、複数使用する同一構成のICにおけるIC番号データの設定方法として、IC識別端子をプルアップ又はプルダウンすることにより両者を区別する方法を示したが、IC識別端子のプルアップ又はプルダウンによる区別方法はあくまでも一例であり、例えば切り替えスイッチを設けてそのスイッチの状態によって区別するようにしてもいいし、また例えば、ある2つの端子間の電気的状態(インピーダンス等)に応じて区別するようにしてもよく、同一構成のICでありながら外部から区別できるようになる限り種々の方法を採りうる。
【0148】
更にまた、上記各実施形態では、スレーブ装置としての各ICに同一構成のICが複数含まれる(IC−Ca13とIC−Cb14)ものとして説明したが、このような同一構成のICを複数備えないシリアル通信システムを構成することもできることはいうまでもない。その場合、マスタCPU10からのコマンドフレームに含まれる送信先IC情報としては、IC選択データのみでよい(IC番号データは不要)。
【0149】
また、上記第2実施形態では、IC識別端子を2つ設けて2つのIC−Cの位相を全く逆にすることで、応答フレーム衝突の可能性を低くすることを実現しているが、2ビットのIC番号データを設定可能であることから、当然ながら最大4種類のIC番号を設定可能である。つまり、同一構成のICを最大4つまで使用することも可能である。同一構成のICをより多く使用するために、さらに識別端子を増やすようにしてもよい。例えばIC識別端子を3つ備えるようにすれば、同一構成のICを最大8つまで用いることが可能となる。
【0150】
応答フレーム中に付加するIC選択データやIC番号データについても、出力する応答フレーム全てに付加するようにしてもよいし、例えば最初に出力する応答フレームにのみ付加してもよく、出力する複数の応答フレームのどれに付加するかは特に限定されない。
【0151】
更に、上記実施形態では、各ICが全て一つのBGAパッケージ20に収納されたマルチチップ構成のものとして説明したが、このパッケージとしてはBGAに限らず、例えばPGA(Pin Grid Array)或いはQFPなど、種々の半導体収納用パッケージを用いることができる。
【図面の簡単な説明】
【図1】第1実施形態のシリアル通信システムの概略構成を示す説明図である。
【図2】第1実施形態のシリアル通信システムにおいて、スレーブ装置としての各ICがBGAとして1パッケージ化されていることを示す説明図である。
【図3】ICの内部構成を示すブロック図である。
【図4】図3のICを構成する出力回路の回路図である。
【図5】第1実施形態のシリアル通信システムにおけるマスタCPUから各ICへのマスタ信号STXDのフレーム構成を示す説明図である。
【図6】第1実施形態のシリアル通信システムにおける通信動作全体を示すタイムチャートである。
【図7】第1実施形態のシリアル通信システムにおける、チップセレクト信号CSのアクティブ期間中の通信動作を示すタイムチャートである。
【図8】第1実施形態のシリアル通信システムにおける、各ICからマスタCPUへのスレーブ信号SRXDのフレーム構成を示す説明図である。
【図9】マスタCPUが実行するICチェック処理を示すフローチャートである。
【図10】第1実施形態のシリアル通信システムにおける、チップセレクト信号CSのアクティブ期間中の通信動作を示すものであって、各ICが備えるプロテクトRAM領域に対するデータ書き込みを説明するタイムチャートである。
【図11】IC−CbのIC番号データがIC−Caのものに化けた場合の通信動作を示すタイムチャートである。
【図12】第2実施形態のIC−Ca及びIC−Cbの構成を示す説明図である。
【図13】第2実施形態のシリアル通信システムにおける、マスタCPUから各ICへのマスタ信号STXDのフレーム構成を示す説明図である。
【図14】第3実施形態のシリアル通信システムにおける、マスタCPUからのマスタ信号STXD及びそれに対するICからのスレーブ信号SRXDの関係を示すタイムチャートである。
【図15】第3実施形態のシリアル通信システムにおける、マスタCPUからのマスタ信号STXD及びそれに対するICからのスレーブ信号SRXDの関係を示すタイムチャートである。
【図16】第4実施形態のシリアル通信システムにおける、マスタCPUからのマスタ信号STXDとそれに対するICからのスレーブ信号SRXDの関係を示すタイムチャートである。
【図17】第4実施形態のシリアル通信システムにおける、マスタCPUからのマスタ信号STXDのフレーム構成を示す説明図である。
【図18】第5実施形態のシリアル通信システムにおける、マスタCPUからのマスタ信号STXD及びそれに対するICからのスレーブ信号SRXDの関係を示すタイムチャートである。
【図19】第5実施形態のシリアル通信システムにおける、マスタCPUから通信対象のICへ最初に送信されるマスタ信号STXDのフレーム構成を示す説明図である。
【図20】第6実施形態のシリアル通信システムにおけるIC−Bが備える出力回路の回路図である。
【図21】第6実施形態のシリアル通信システムにおける、マスタCPUからのマスタ信号STXD及びそれに対するICからのスレーブ信号SRXDの関係を示すタイムチャートである。
【図22】第4実施形態のシリアル通信システムの変形例を示すタイムチャートである。
【図23】シリアル通信システムにおけるIC接続構成の他の例を示す説明図である。
【図24】シリアル通信システムにおけるIC接続構成の他の例を示す説明図である。
【図25】シリアル通信システムにおけるIC接続構成の他の例を示す説明図である。
【図26】従来のシリアル通信システムの概略構成を示す説明図である。
【符号の説明】
10,70,80,90,110…CPU、11…IC−A、12…IC−B、13,61…IC−Ca、13a,14a…IC識別端子、14,62…IC−Cb、16…IC−C、17…IC−D、18…IC−E、20…BGAパッケージ、31…RAM、31a…通常RAM領域、31b…プロテクトRAM領域、32…シリアル制御回路、33…受信用シフトレジスタ、34…受信レジスタ、35…レベル判別部、36…IC情報抽出部、36a…IC情報レジスタ、37…コマンド判定ロジック、38…比較器、39…プロテクト解除レジスタ、40…出力回路、41…送信レジスタ、42…送信用シフトレジスタ、43…クロックゲーティング回路、46…デコーダ、51…インバータ、52,55…NAND回路、53…NOR回路、54…出力端子、61a,62a…第1識別端子、61b,62b…第2識別端子、71,81…IC−G、72,82…IC−H、L1…クロックライン、L2…CSライン、L21…第2CSライン、L3…コマンドライン、L31…第3CSライン、L4…応答ライン、L41…第4CSライン、T1,T2…トランジスタ
【発明の属する技術分野】
本発明は、マスタ装置と複数のスレーブ装置とがシリアル通信を行うシリアル通信システムに関する。
【0002】
【従来の技術】
マスタ装置と複数のスレーブ装置との間で相互にシリアル通信可能に接続する場合、図26に示すように、マスタ装置と各スレーブ装置とを各々独立した信号伝送ラインで接続する構成が一般的である。
【0003】
図26のシリアル通信システムは、マスタ装置であるマスタCPU110が、スレーブ装置である4つの集積回路(IC−A121,IC−B122,IC−C123及びIC−D124;以下これらを単に「IC」ともいう)のそれぞれに対して個々に接続されて構成されている。
【0004】
例えばマスタCPU110とIC−D124との間では、IC−D124をアクティブ状態(つまりシリアル通信可能状態)にするためにマスタCPU110からIC−D124へ送信されるチップセレクト信号CSと、データ同期用にマスタCPU110からIC−D124へ送信されるクロック信号SCLKと、マスタCPU110からIC−D124へ送信されるシリアル通信用のマスタ信号STXDと、そのマスタ信号STXDに応答してIC−D124がマスタCPU110へ送信するスレーブ信号SRXDとが、相互に伝送される。他の各IC121〜123とマスタCPU110との間も同様である。
【0005】
尚、以下の説明において、マスタ信号STXD及びスレーブ信号SRXDの各伝送ラインをまとめてシリアル通信ライン、クロック信号SCLKの伝送ラインをクロックライン、チップセレクト信号CSの伝送ラインをCSラインという。
上記構成のシリアル通信システムでは、マスタCPU110が各IC121〜124とそれぞれ個々に接続されているため、マスタCPU110と接続するIC毎に独立したシリアル通信ライン等の各種信号伝送ラインが必要となるのはもちろん、IC毎にマスタCPU110のシリアルポート(シリアル通信ラインが接続されるポート)も必要となる。そのため、マスタCPU110に接続するICが多いほど、その分、シリアル通信ラインが多系統必要になると共にマスタCPU110の構成が複雑化し、且つ、複数のシリアルポートにそれぞれ入・出力するデータを処理するための通信処理負荷も増大する。
【0006】
そこで、こういった問題を解決するための一手法として、複数個のマイコンをシリアル通信ラインでリング状に接続することにより各マイコンが前後のマイコンと相互にシリアル通信可能に構成された通信システムにおいて、各マイコンが前後それぞれのマイコンへ出力するデータを共通の出力ポートから出力するようにすると共に、出力するデータに出力先のマイコンを示す識別ラベルを付加することにより、出力先のマイコン側では2つの入力ポート(前後マイコンからの入力に対応して各々設置)に入力されるデータそれぞれについてその識別ラベルをみて、自分宛のデータである場合のみ受信処理を行うようにしたものが知られている(例えば、特許文献1参照。)。
【0007】
上記技術によれば、出力データに識別ラベルを付加することにより一つの出力ポートを利用して前後のマイコンにデータ送信できるため、マイコンにおけるシリアル出力ポートを削減でき、マイコン構成の簡素化を図ることができる。
【0008】
【特許文献1】
実開平5−59540号公報
【0009】
【発明が解決しようとする課題】
しかしながら、上記技術は、出力ポートを一つに共通化できるという効果は得られるものの、シリアル通信ラインをリング状に接続しているため、リングの前後にあるマイコンとしかデータ通信をすることができない。また、リングの前後にあるマイコンからそれぞれデータを受信するために入力ポートが2つ必要となる。仮に前後以外のマイコンからもデータを受信できるようにしようとすると、その分さらに入力ポートが必要となる。
【0010】
また、リング状に接続した構成であるため、既存のシステムに対して新規にマイコンを追加しようとすると、リング状のどこかに挿入・接続することになり、そのマイコンもやはり前後のマイコンとしかデータ通信を行うことができない。前後以外のマイコンとデータ通信するためには、その分入・出力ポートを増やしたり、前後のマイコンを経由させるといった方法を採らざるをえず、いずれにしてもマイコン構成の複雑化、延いてはシリアル通信システム全体の複雑化を招いてしまう。
【0011】
本発明は上記課題に鑑みなされたものであり、マスタ装置と複数のスレーブ装置とがシリアル通信を行うシリアル通信システムにおいて、システムの構成を簡素化してマスタ装置の通信処理負荷を低減することを目的とする。
【0012】
【課題を解決するための手段及び発明の効果】
上記課題を解決するためになされた請求項1記載のシリアル通信システムは、マスタ装置と複数のスレーブ装置とが、マスタ装置から複数のスレーブ装置へコマンドを送信するための共通の第1通信ライン及び複数のスレーブ装置の各々からマスタ装置へ上記コマンドに対する応答データを送信するための共通の第2通信ラインによってそれぞれバス接続されることにより、該各通信ラインを介して相互に同期式シリアル通信を行うよう構成されている。
【0013】
そしてマスタ装置は、通信対象のスレーブ装置に対してコマンドを送信する際、送信すべきコマンドにその通信対象のスレーブ装置を示すスレーブ識別子を送信先スレーブ情報として付加したコマンドフレームを第1通信ラインに出力し、スレーブ装置は、第1通信ラインを介してマスタ装置からのコマンドフレームを受信した時、そのコマンドフレームに含まれている送信先スレーブ情報に基づいてそのコマンドフレームが自身宛のものか否か判断し、自身宛のものであった場合にそのコマンドフレーム内のコマンドに基づく処理を行う。
【0014】
マスタ装置が第1通信ラインに出力するコマンドフレームは、ある特定のスレーブ装置に対するものであるが、そのコマンドフレームは第1通信ラインに接続されている全てのスレーブ装置が受信可能である。そのため、各スレーブ装置は、受信したコマンドフレームが自身宛のものであるか否かを、それに含まれる送信先スレーブ情報に基づいて判断する。つまり、送信先スレーブ情報としてのスレーブ識別子が自身を示すものであれば自身宛のものと判断するのである。
【0015】
従って、上記構成のシリアル通信システムによれば、マスタ装置と複数のスレーブ装置とが共通の通信ライン(第1及び第2通信ライン)でバス接続されているため、図26で説明した従来のシステムのようにマスタ装置が各スレーブ装置毎に個々にシリアルポートを備える必要がなくなり、システムの構成を簡素化する事が可能になると共に、従来のような、マスタ装置が各スレーブ装置毎にシリアルポートを区別して通信処理を行うといった複雑な処理が不要となり、マスタ装置における通信処理負荷の軽減も可能となる。
【0016】
尚、マスタ装置からのコマンドは、通信対象のスレーブ装置に対する各種指示内容を示すデータである。例えば、通信対象のスレーブ装置が備える機能を実行させる指示、マスタ装置が持っている所定のデータを書き込ませる指示、或いはスレーブ装置が持っている所定のデータをマスタ装置へ送信させる指示など、種々のものが考えられる。
【0017】
上記構成のシリアル通信システムにおいては、同一構成(同じ機能・動作)のスレーブ装置、つまり同じスレーブ識別子を有するスレーブ装置を複数使用する場合も考えられるが、その際は、例えば請求項2に記載のように、同一構成のスレーブ装置相互の区別を補助識別子によって行うようにするとよい。
【0018】
即ち、請求項2記載のシリアル通信システムは、複数のスレーブ装置のうち少なくとも2つが、同じスレーブ識別子に対応した同一構成のスレーブ装置であると共に、外部から相互に区別できるようにするための異なる補助識別子がそれぞれ設定され、マスタ装置からのコマンドフレームの受信時にそのコマンドフレーム中に送信先スレーブ情報として含まれているスレーブ識別子及び補助識別子に基づいてそのコマンドフレームが自身宛のものか否か判断するよう構成されている。そして、マスタ装置は、上記同一構成のスレーブ装置のいずれかを通信対象としてコマンドフレームを出力する際、送信先スレーブ情報として、その通信対象のスレーブ装置に対応したスレーブ識別子及び補助識別子を付加する。
【0019】
上記構成のシリアル通信システムによれば、同一構成のスレーブ装置を複数用いる場合であっても、マスタ装置はそれらを別々に区別(選択)してシリアル通信を行うことができるため、システムをよりフレキシブルに構築することが可能となる。
【0020】
補助識別子の設定の具体例としては、例えば請求項3に記載のように、スレーブ装置における所定の端子をプルアップするかプルダウンするかによって設定するようにしてもよい。
即ち、請求項3記載のシリアル通信システムは、上記同一構成のスレーブ装置がいずれも、外部から任意の値の電圧を印加可能な1又は複数の識別端子と、その識別端子が所定電圧にプルアップされたハイレベル状態若しくはグランドレベルにプルダウンされたロウレベル状態のいずれにあるかを判断するレベル判断手段と、そのレベル判断手段による判断結果に応じた補助識別子を設定する設定手段と、を備えており、当該システムを構成する同一構成の各スレーブ装置が備える識別端子が相互に異なる状態にされることによって、その同一構成のスレーブ装置相互間で異なる補助識別子が設定されている。
【0021】
例えば識別端子が一つであれば、必然的に同一構成のスレーブ装置を2つ備えることができ、この場合、一方をハイレベル状態、他方をロウレベル状態とすればよい。また例えば、識別端子が2つであれば、この2つの識別端子の状態の組み合わせにより、同一構成のスレーブ装置を最大4つまで備えることができる。更に識別端子が多ければ、同一構成のスレーブ装置をより多く用いることができる。
【0022】
このように、識別端子の状態(ハイレベル又はロウレベル)に基づいて補助識別子を設定できるようにすることにより、補助識別子設定のための構成を簡素化でき、且つ、設定のための操作(プルアップ又はプルダウン)も容易になる。
そしてこの場合、特に、同一構成のスレーブ装置を2つ備えて相互に異なる補助識別子を設定する場合は、例えば請求項4に記載のように、その2つのスレーブ装置を、いずれも識別端子を複数備えたものとして構成すると共に、一方のスレーブ装置が備える各識別端子のプルアップ若しくはプルダウンの組み合わせに対し、他方のスレーブ装置が備える各識別端子のプルアップ若しくはプルダウンの組み合わせを全て逆にするとよい。つまり、一方のスレーブ装置における各識別端子のレベルに対し、他方のスレーブ装置における各識別端子のレベルを全て逆にするのである。
【0023】
このようにすれば、例えばいずれか一方のスレーブ装置において、ある識別端子の状態が反転(ハイレベルからロウレベルへ転換、又はその逆)しても、識別端子全体としては他方のスレーブ装置と同じ状態にはならない。つまり、一方のスレーブ装置の識別端子の状態が何らかの原因によって他方のスレーブ装置と全く同じ状態になってしまう可能性を低く抑えることができ、マスタ装置からのコマンドに対してこれら2つの同一構成のスレーブ装置が同時に応答してその出力(応答フレーム)が第2通信ライン上で衝突してしまう可能性を低減することができる。
【0024】
ここで、コマンドフレームに含まれる送信先スレーブ情報は、コマンドフレームにおける任意の位置に配置できるが、シリアル通信の同期クロックが速くなると、スレーブ装置が自身宛のコマンドを受けてからそれに対する応答データを送信するまでの時間も短くなる。そのためスレーブ装置は、自身を対象とするコマンドフレームを受信した場合はなるべく早めに応答のための準備をする(例えば第2通信ラインへの応答フレーム出力が可能な状態、つまり例えば出力ポートを開いて出力可能状態にする)必要がある。
【0025】
そこで例えば請求項5記載のように、マスタ装置は、送信先スレーブ情報を、コマンドフレームにおけるMSB側又はLSB側のうち第1通信ラインに先に出力する側に配置するよう構成するとよい。マスタ装置をこのように構成すれば、スレーブ装置は、コマンドフレームを受信したときにそのコマンドフレームに含まれている送信先スレーブ情報をより早く得ることができる(換言すれば、より早いタイミングで自身宛のものか否か判断できる)ため、自身宛であった場合に迅速に応答のための準備をすることができる。
【0026】
ところで、マスタ装置は、ある通信対象のスレーブ装置に対して複数のコマンドフレームを順次送信(第1通信ラインへ出力)する場合、出力する全てのコマンドフレームに送信先スレーブ情報を付加するようにしてもよいが、より効率的に通信を行うためには、例えば請求項6に記載のように、最初に出力するコマンドフレームにのみ送信先スレーブ情報を付加するようにするとよい。
【0027】
この場合、スレーブ装置は、自身を示す送信先スレーブ情報が付加されたコマンドフレームを第1通信ラインを介して受信したとき、その後に受信する、送信先スレーブ情報が付加されていないコマンドフレームについても、自身宛のものとして扱う。
【0028】
上記構成のシリアル通信システムによれば、マスタ装置は、順次送信するコマンドフレームにおいて2番目以降に送信するコマンドフレームには送信先スレーブ情報を付加する必要がないため、その分、他のデータ(コマンド又は各種データ等)の領域として利用することができ、より効率的なシリアル通信が可能となる。
【0029】
そしてこの場合、例えば請求項7に記載のように、マスタ装置は、通信対象のスレーブ装置に送信すべき1又は複数のコマンドフレームを第1通信ラインへ順次出力する際、最初に出力するコマンドフレームに、そのコマンドフレームを含む順次出力するコマンドフレームの総数を示す送信フレーム数データを付加し、スレーブ装置は、送信フレーム数データが付加されたコマンドフレームであって自身宛のものを第1通信ラインを介して受信したとき、そのコマンドフレームを含みその後順次受信するコマンドフレームのうち送信フレーム数データが示す数のコマンドフレームについては、全て自身宛のものとして扱うよう構成してもよい。
【0030】
上記構成のシリアル通信システムによれば、送信フレーム数データによって、自身宛に順次送信されてくるコマンドフレームの総数が予めわかるため、その数のコマンドフレームを受信してそれらに対する応答フレームの出力を終えたら、即、第2通信ラインへの応答フレーム出力が可能な応答可能状態を解除(例えば応答フレームの出力ポートを高インピーダンス化)でき、通信対象の切り替え前後の各スレーブ装置からの出力が第2通信ライン上で衝突するといった事態を防ぐことができる。
【0031】
また例えば、請求項8に記載のように、マスタ装置は、通信対象のスレーブ装置を切り替える際、切り替え前の通信対象のスレーブ装置に対する最後のコマンドフレームの出力後、そのスレーブ装置との通信が終了したことを示す通信終了コマンドを含むコマンドフレームを第1通信ラインに出力して、その出力後に切り替え先のスレーブ装置との通信を開始するよう構成され、スレーブ装置は、マスタ装置との通信中に通信終了コマンドを受信したとき、少なくともその次に受信するコマンドフレームについては、自身宛のものではないと判断するよう構成されたものであってもよい。
【0032】
このようにすれば、ある通信対象のスレーブ装置とシリアル通信中に通信終了コマンドを受信すれば、マスタ装置へ送信すべき応答フレームを全て出力した後、即、上記(請求項7)の場合と同様に応答可能状態を解除できるため、通信対象の切り替え前後の各スレーブ装置からの出力が第2通信ライン上で衝突するといった事態を防ぐことができる。
【0033】
請求項1〜8いずれかに記載のシリアル通信システムは更に、例えば請求項9に記載のように構成してもよい。即ち、スレーブ装置は、マスタ装置からのコマンドフレームに対する応答データを応答フレームにて第2通信ラインへ出力する際、少なくとも、送信先スレーブ情報を含むコマンドフレームに対して出力する応答フレームは、応答データに自身を示す応答元識別子を付加した構成とし、マスタ装置は、通信対象のスレーブ装置へ送信したコマンドフレームに対して該スレーブ装置から送信される応答フレーム中の応答元識別子に基づいて、該通信対象のスレーブ装置が正常か否か判断する。
【0034】
応答元識別子は、例えばマスタ装置からのコマンドフレームに含まれる送信先スレーブ情報をそのまま応答元識別子としてもいいし、別途、マスタ装置が識別可能な識別子を付加するようにしてもよい。
マスタ装置における具体的判断手法としては、例えば、本来応答元識別子が付加されているはずの応答データに何ら付加されていなかったり、通信対象のスレーブ装置を示す応答元識別子とは異なる識別子が付加されていたりしたら異常と判断できる。また、コマンドフレームに対して応答フレーム自体が送信されてこなかった場合も、応答元識別子が返答されないことになり、やはり異常と判断することができる。
【0035】
従って、シリアル通信システムを上記のように構成すれば、マスタ装置は通信対象のスレーブ装置から正常に応答されるか否かを監視するため、スレーブ装置の異常を検出することが可能となる。
更に、例えば請求項10記載のように、スレーブ装置は、マスタ装置から自身宛に送信されてくるデータを書き込むための記憶手段を備えると共に、その記憶手段における記憶領域の少なくとも一部は、マスタ装置から自身宛のプロテクト解除コマンドを受けた場合にデータの書き込みが可能であってそれ以外は記憶内容が保持されるプロテクト領域として構成され、マスタ装置は、通信対象のスレーブ装置におけるプロテクト領域に書き込むべきデータを含むコマンドフレームを第1通信ラインへ出力する際、そのコマンドフレームの出力に先立って、その通信対象のスレーブ装置に対するプロテクト解除コマンドを含むコマンドフレームを出力するよう構成してもよい。
【0036】
上記構成のシリアル通信システムによれば、プロテクト領域の記憶内容は通常は保持されて外部から書き換えられるおそれがないため、例えばその記憶内容を定期的にリフレッシュするといった操作が不要となり、通信負荷を軽減することが可能となる。また、プロテクト解除コマンドを送信しない限りその記憶内容は保持されるため、プロテクト領域のデータが誤って書き換えられてしまう(或いはプロテクト領域へ誤ってデータが書き込まれてしまう)のを防止できる。
【0037】
ところで、スレーブ装置の機能・構成によっては、他のスレーブ装置がマスタ装置へ送信する応答データを必要とする場合も考えられる。しかし、当該シリアル通信システムにおいては、マスタ装置と各スレーブ装置とで1対1の通信が行われるため、スレーブ装置が他のスレーブ装置からの応答データをもらうためには、一旦マスタ装置へ応答されたデータを、マスタ装置が折り返しその必要としているスレーブ装置へ送信しなければならない。
【0038】
そこで、例えば請求項11に記載のように、スレーブ装置を、マスタ装置からのコマンドフレームの受信時、そのコマンドフレームに含まれている送信先スレーブ情報が自身以外の他のスレーブ装置に対応するものであった場合は、その送信先スレーブ情報に対応したスレーブ装置が第2通信ラインへ出力する、上記コマンドフレームに対するマスタ装置への応答フレームを、該第2通信ラインを介して受信できるよう構成するとよい。
【0039】
このように構成されたシリアル通信システムによれば、スレーブ装置は、他のスレーブ装置からマスタ装置へ送信される応答データを、マスタ装置を介さずに直接取得することができるため、通信負荷を増大させることなく他のスレーブからの応答データを取得することが可能となる。
【0040】
次に、請求項12記載の発明は、請求項1〜11いずれかに記載のシリアル通信システムにおいて、上記複数のスレーブ装置はいずれも、同一の第1スレーブセレクトラインによってマスタ装置とバス接続されると共に、マスタ装置からその第1スレーブセレクトラインへアクティブ信号が出力されたときにシリアル通信可能状態となるよう構成されており、更に、上記複数のスレーブ装置とは別のスレーブ装置である他系統スレーブ装置が、マスタ装置と相互にシリアル通信可能となるよう各通信ラインと接続されると共に第2スレーブセレクトラインによってマスタ装置と接続され、マスタ装置から第2スレーブセレクトラインへアクティブ信号が出力されたときにシリアル通信可能状態となるよう構成されている。そして、マスタ装置は、他系統スレーブ装置とシリアル通信を行う際は、第1スレーブセレクトラインへのアクティブ信号出力を停止すると共に第2スレーブセレクトラインへアクティブ信号を出力するよう構成されている。
【0041】
上記構成のシリアル通信システムによれば、第1スレーブセレクトラインによってシリアル通信可能状態にされる上記複数のスレーブ装置以外にも更にスレーブ装置を追加することができ、マスタ装置はより多くのスレーブ装置とシリアル通信を行うことが可能となる。また、第2スレーブセレクトラインを複数用いれば、更に多くのスレーブ装置とシリアル通信することが可能となる。つまり、第2スレーブセレクトラインの使用数や、第1スレーブセレクトラインと第2スレーブセレクトラインにそれぞれ接続するスレーブ装置の組み合わせ等によって、多種多様な接続形態のシリアル通信システムを構築できる。
【0042】
尚、複数の他系統スレーブ装置を備えると共に各他系統スレーブ装置を個々に第2スレーブセレクトラインにてマスタ装置と接続し、マスタ装置がいずれかの他系統スレーブ装置とシリアル通信を行う際には、その通信対象の他系統スレーブ装置に対応した第2スレーブセレクトラインにのみアクティブ信号を出力するようにすればよい。
【0043】
また、同一の第2スレーブセレクトラインに複数の他系統スレーブ装置を接続するようにしてもよい。この場合、マスタ装置は、第2スレーブセレクトラインに接続された各他系統スレーブ装置についても、第1スレーブセレクトラインに接続された各スレーブ装置と同様、別途送信先スレーブ情報を用いることによって通信対象の他系統スレーブ装置を指定することができる。
【0044】
上記各構成のシリアル通信システムはまた、例えば請求項13に記載のように、各スレーブ装置(他系統スレーブ装置を含む)の少なくとも2つが、各々半導体基板上に形成され、且つ、同一の半導体素子収納用パッケージ内に収められて構成されたものであってもよい。このように構成すれば、当該シリアル通信システムの構成を簡素化でき、コストダウンも可能となる。
【0045】
【発明の実施の形態】
以下に、本発明の好適な実施形態を図面に基づいて説明する。
[第1実施形態]
図1は、本実施形態のシリアル通信システムの概略構成を示す説明図である。図1に示す如く、本実施形態のシリアル通信システムは、マスタ装置としてのマスタCPU10と、スレーブ装置としてのIC−A11,IC−B12,IC−Ca13,IC−Cb14とが、相互に同期式シリアル通信を行うよう構成されたものであり、マスタCPU10と各IC11〜14とは、マスタCPU10がデータ同期用のクロック信号SCLKを各IC11〜14へ送信するためのクロックラインL1と、各IC11〜14をアクティブ状態にするチップセレクト信号CSをマスタCPU10が各IC11〜14へ送信するためのCSラインL2と、マスタCPU10から各IC11〜14へ各種通信コマンド等を含むマスタ信号STXDを送信するためのコマンドラインL3と、及びそのマスタ信号STXDに対する応答として通信対象のICがマスタCPU10へスレーブ信号SRXDを送信するための応答ラインL4と、によって相互にバス接続された構成となっている。
【0046】
尚、本実施形態のシリアル通信システムは、例えば車両内に設けられるものである。そして、マスタCPU10は、例えば車両のエンジン制御(燃料噴射制御・点火時期制御等)を担うものであり、各IC11〜14はそれぞれ、例えばトランスミッションの変速切換制御やエンジンのトルク制御、或いはリニアソレノイドの駆動制御といった各種機能を備えたものである。
【0047】
また本実施形態では、各IC11〜14はいずれも、外部から個別に選択できるようにするためのIC選択データがそれぞれ設定されており、後述するように、各IC11〜14はマスタCPU10からのマスタ信号STXD(図5のコマンドフレーム)が自身宛のものであるか否かを、マスタ信号STXDに含まれるIC選択データに基づいてハード的に判別できるよう構成されている。
【0048】
即ち、図5に示すように、IC選択データが「001」のICはIC−A、IC選択データが「010」のICはIC−B、IC選択データが「011」のICはIC−C、というふうに、IC−A〜IC−Fの6種類のICがIC選択データによって予め決められているのである。
【0049】
このようにスレーブ装置としてのICを予め決めておく(IC選択データによって判別できるようにしておく)のは、車両によってIC−A〜IC−Fを使用する組合せが異なるためである。例えば、IC−AとIC−Dのみを使用する車種もあれば、IC−A〜IC−Fの全てを使用する車種もある。そのため、上記のようにIC−A〜IC−Fを予め決めておくことにより、マスタCPU10の通信制御プログラムを共通化できるという利点がある。
【0050】
IC−Ca13及びIC−Cb14は、同一機能・構成を有する同じICである。つまり、いずれも同じIC選択データ「011」が設定されたIC−Cとして分類されるものである。IC−CにはIC識別端子が設けられており、これを所定電圧にプルアップしてハイレベル(以下「Hレベル」という)状態にするか或いはグランド電位にプルダウンしてロウレベル(以下「Lレベル」という)状態にするかによって、同じ2つのIC−Cを外部から区別することができる。
【0051】
本実施形態では、2つのIC−Cのうち、一方のIC−Ca13のIC識別端子13aを所定電圧Vcにプルアップし、他方のIC−Cb14のIC識別端子14aをグランドにプルダウンして、両者を区別している。これにより、IC−Ca13には、IC選択データ「011」とは別に、IC番号データとして「1」が設定される。同様に、IC−Cb14にも、IC選択データとは別にIC番号データとして「0」が設定される。この設定の詳細については後述する。
【0052】
このように同一構成のICを複数(本例では2つ)使用する場合としては、例えば各種制御においてリニアソレノイドを駆動するためのICを複数用いる場合が考えられる。例えばECT(Electronic Controlled Transmission;電子制御自動変速機)用に用いられるリニアソレノイドの本数は、車種・グレード等によって異なるため、リニアソレノイドの本数によっては一つのICだけでは足りない場合もある。例えばIC−Cが4本のリニアソレノイドを駆動できるよう構成されたものである場合に、ECTで用いられるリニアソレノイドが5〜8本ならば、IC−Cが2つ必要となる。
【0053】
本システムにおいて行われるシリアル通信は、マスタCPU10が常に通信の主導権を持ち、各IC11〜14とシリアル通信を行う際は、まずチップセレクト信号CSをアクティブ(本実施形態ではLレベル)にして各IC11〜14をアクティブ状態(シリアル通信可能状態)にすると共に、各IC11〜14へクロック信号SCLKを出力する。
【0054】
そして、通信対象のICに対してマスタ信号STXDを出力し、それを受信したIC(通信対象)が、そのマスタ信号STXDに含まれる各種コマンドに応じたスレーブ信号SRXD(応答フレーム)にて返信する。各IC11〜14は、チップセレクト信号CSがアクティブになっていなければシリアル通信を行うことができない。
【0055】
尚、各IC11〜14は、実際には、図2に示すようにそれぞれ半導体基板上に形成されたチップ21〜24としてBGA(Ball Grid Array )パッケージ20内に収納されている。即ち、IC−A11はチップA21、IC−B12はチップB22、IC−Ca13はチップCa23、IC−Cb14はチップCb24として、全てBGAのインターポーザ基板上に搭載され、一つのBGAパッケージ20に収納されている。そのため、以下の説明においてIC−A11,IC−B12,IC−Ca13,IC−Cb14とは、それぞれBGAパッケージ20内に収納されたチップA21,チップB22,チップCa23,チップCb24を示しているものとする。
【0056】
図5に、本実施形態のシリアル通信システムにおけるマスタCPU10から各IC11〜14へのマスタ信号STXDの構成を示す。マスタ信号STXDは、図示の如く32ビットのフレーム(コマンドフレーム)にて構成されている。尚、以下の説明では、LSBをbit0とし、MSB側へ順にbit1,bit2・・・というものとする(MSBはbit31)。
【0057】
コマンドフレームは、MSBにR/Wデータが配置され、bit30〜28にIC選択データが配置され、bit27にIC番号データが配置されている。そして、bit26〜0には、各種コマンドやデータ、アドレス(通信対象ICにおけるメモリやレジスタなどのアドレス)等が配置される。R/Wデータは、通信対象のICに対してデータの書き込み又は読み出しを指示するものであり、通信対象ICが持つデータを読み出したい場合はリード命令として「0」に設定し、通信対象ICへデータを書き込みたい場合はライト命令として「1」に設定する。
【0058】
IC選択データは、本実施形態では3ビット構成であり、理論的には最大8通りのデータを設定(つまり最大8種類のICを選択)できるが、「000」と「111」は未使用としている。これは、シリアル通信ラインがグランドショート或いは電源側(電圧Vc)にショートした場合に誤って「000」(又は「111」)にデータ化けする可能性があるからである。そのため、図示のように、「000」と「111」を除く6種類のIC選択データを設定できるようにしている。
【0059】
IC番号データについては既に説明した通りであり、IC識別端子13aがプルアップされたIC−Ca13を通信対象にする場合は「1」とし、IC識別端子14aがプルダウンされたIC−Cb14を通信対象にする場合は「0」とすればよい。bit26〜0に含まれるコマンドは、例えば通信対象のICが備える機能を実行させるための命令など、通信対象のICに対する各種命令内容を示すデータである。
【0060】
次に、各IC11〜14の内部構成について、図3に基づいて説明する。図3は、各IC11〜14においてシリアル通信に関係する部分のみを抽出したものであり、各IC11〜14が共通して備えているものである。CPU30は、当該ICにおいて行われる制御全体を担うものであり、図示しないROMに格納された各種制御プログラムに従ってIC内の各部を制御する。マスタCPU10からのクロック信号SCLKは、クロックゲーティング回路43を介して受信用シフトレジスタ33や送信用シフトレジスタ42などの各種回路等へ供給される。
【0061】
クロックゲーティング回路43には、チップセレクト信号CSも入力されており、このチップセレクト信号CSがアクティブ(Lレベル)のときにのみクロック信号SCLKが出力され、当該ICがシリアル通信可能状態となるように構成されている。逆に、チップセレクト信号CSが非アクティブ(Hレベル)の場合はこのクロックゲーティング回路43からIC内部へクロック信号SCLKが供給されず、ICはシリアル通信できない状態となる。
【0062】
マスタCPU10からのマスタ信号STXD(コマンドフレーム)は、受信用シフトレジスタ33へ入力され、受信レジスタ34を介してシリアル制御回路32へ転送される。また、このコマンドフレームはシリアル制御回路32を介してIC情報抽出部36が備えるデコーダ46へも送出され、このデコーダ46にて、コマンドフレーム中のbit30〜27に配置されているIC選択データ及びIC番号データ(以下これらをまとめて「送信先IC情報」ともいう)が抽出(デコード)される。
【0063】
IC識別端子13a(14a)は、図1に示すようにプルアップ又はプルダウンされることによりHレベル又はLレベルいずれかの状態にされるが、この状態はレベル判別部35によって判別され、その判別結果がIC番号データとしてIC情報レジスタ36aに格納される。
【0064】
IC−Ca13の場合、IC識別端子13aがプルアップされていることにより、レベル判別部35がHレベルであると判別する。この判別結果に基づいてIC情報レジスタ36aにIC番号「1」を格納する。IC−Cb14の場合は、IC識別端子14aがプルダウンされていることにより、レベル判別部35がLレベルであると判別する。この判別結果に基づいて、IC情報レジスタ36aにIC番号「0」を格納する。
【0065】
また、当該IC固有のIC選択データは、IC情報レジスタ36a内に予め記憶されている(或いは、CPU30にて、データバスを介してIC情報レジスタ36aのIC選択データに書き込むようにしてもよい)。つまり、IC情報レジスタ36aには、当該IC固有の送信先IC情報が格納されていることになる。
【0066】
比較器38は、デコーダ46にてデコードされた送信先IC情報と、IC情報レジスタ36aに格納されているデータとを比較し、両者が一致していれば、マスタCPU10からのコマンドフレームは自身宛のものであると判断して、出力回路40へLレベルの出力許可信号を出力する。またこれにより、シリアル制御回路32は、受信したコマンドフレームに含まれる各種コマンドを解析し、それに応じた各種処理を行って、その応答データを生成・出力する。
【0067】
RAM31は、CPU30が各種演算処理を実行する際のワークエリアや、各種制御パラメータ・データ等が格納されるエリアを備えているが、本実施形態では、大きく分けて、特に制限無くCPU30の指示によって各種データ等を書き込み(書き換えも含む)可能な通常RAM領域31aと、通常は書き込み不可能であってその内容が保護され、マスタCPU10からプロテクト解除コマンドを受けた場合にのみ書き込み可能なプロテクトRAM領域31bとにより構成されている。
【0068】
即ち、マスタCPU10からコマンドフレームを受信すると、それに含まれるコマンドがシリアル制御回路32からコマンド判定ロジック37に出力される。コマンド判定ロジック37は、そのコマンドがプロテクト解除コマンドであるか否かを判断し、プロテクト解除コマンドであれば、その旨を示すプロテクト解除データをプロテクト解除レジスタ39に格納する。プロテクト解除レジスタ39には、通常は非解除データが格納されている。そのため、このプロテクト解除レジスタ39内のデータが非解除データであれば、プロテクトRAM領域31bは書き込みできない保護状態となり、プロテクト解除データであれば、プロテクトRAM領域31bは書き込み可能な状態となる。
【0069】
このようにプロテクトRAM領域31bを設けるのは、シリアル通信の通信負荷を低減すると共に、誤ってデータが書き込まれるのを防止するためである。シリアル通信においては、例えば、マスタCPU10が一度書き込むだけで後はIC側でそのデータを使用し続ければよい場合や、或いは、通常はIC側に最初から設定されている初期値データをそのまま使えば問題なく、ある特別な場合にのみその値を書き換えればよい場合などがある。具体的には、例えばリニアソレノイドの制御用に用いるゲインや、PWM制御におけるPWM周期(デューティ)など、種々のものが考えられる。
【0070】
そういったデータを、プロテクトRAM領域31bに記憶して通常時はマスタCPU10から書き込みできないようにしておき、プロテクト解除コマンドを受信した場合にのみ、書き込み可能な状態にするのである。但し、チップセレクト信号CSを非アクティブにすることで再び書き込み不可能な状態になる。
【0071】
マスタCPU10からのコマンドフレームに対する応答データは、図8に示すようなフレーム(応答フレーム)にてマスタCPU10へ送信される(詳細は後述)。シリアル制御回路32が、コマンドフレームに対する応答フレームを生成して送信レジスタ41へ出力すると、その応答フレームは更に送信用シフトレジスタ42へ転送される。そして、この送信用シフトレジスタ42に格納されたコマンドフレームが、出力回路40を介してマスタCPU10へ送信(応答ラインL4へ出力)されることになる。
【0072】
図4に、出力回路40の内部構成を示す。図4に示す如く、本実施形態の出力回路40は、出力許可信号を反転させるインバータ51と、応答フレーム及びインバータ51にて反転された出力許可信号が入力されるNAND回路52と、出力許可信号及び応答フレームが入力されるNOR回路53と、NAND回路52の出力がゲートに入力され、ドレインが電圧Vcに接続され、ソースが出力端子54に接続されたMOS型トランジスタ(以下単に「トランジスタ」という)T1と、NOR回路53の出力がゲートに入力され、ドレインが出力端子54に接続され、ソースがグランドに接続されたトランジスタT2と、により構成される。
【0073】
そして、当該ICがマスタCPU10の通信対象となっていない間は、出力許可信号がHレベルであるため、各トランジスタT1,T2はいずれもオフとなり、出力端子54は高インピーダンス状態(以下「Hi−Z」という)となる。つまり、送信用シフトレジスタ42内の応答フレームが出力されない状態(出力ポートが閉じた状態)となる。
【0074】
一方、マスタCPU10の通信対象となって、当該ICに対応した送信先IC情報を含むコマンドフレームを受信すると、比較器38による比較結果が一致することになり、Lレベルの出力許可信号が出力回路40へ出力される。これにより、出力ポートが開かれる(出力可能状態となる)ことになる。具体的には、出力許可信号がLレベルになると、トランジスタT2のゲートには、応答フレームを構成する各ビットデータを反転したレベルの電圧が印加される。
【0075】
即ち、応答フレームとして入力されるビットデータがLレベルの場合は、トランジスタT2のゲートにHレベルの電圧が印加され、トランジスタT2がオンする。トランジスタT1は、ゲートに常時Hレベル電圧が印加されるため、常時オフとなる。このため、出力端子54はLレベルとなる。
【0076】
一方、応答フレームとして入力されるビットデータがHレベルの場合は、トランジスタT2のゲートにLレベルの電圧が印加され、トランジスタT2がオフする。トランジスタT1は、ゲートにLレベル電圧が印加されるため、オンとなる。このため、出力端子54はHレベルとなる。
【0077】
つまり、出力許可信号がLレベルとなって出力ポートが開かれた状態においては、送信用シフトレジスタ42からの応答フレームがそのまま出力端子54に反映され、応答ラインL4へ出力されることになる。
尚、これまでの説明では、同一構成のIC−Ca13及びIC−Cb14にそれぞれIC識別端子13a(14a)が備えられているものとしたが、IC−A11及びIC−B12にも、図示は省略したもののIC識別端子が備えられ、これらを2つ用いた場合に相互に区別できるようにされている。ただし本実施形態では、IC−A及びIC−Bはいずれも一つだけであるが、これらが備えるIC識別端子は、プルアップ又はプルダウンに固定しておく。この場合、マスタCPU10は、IC−A11及びIC−B12のIC識別端子のレベルに対応するIC番号データを付加したコマンドを送信する。
【0078】
また本実施形態では、図5に示したように、通信対象のICを示す送信先IC情報が、全32ビットのコマンドフレームにおけるMSB側に配置されている。そして、マスタCPU10がコマンドフレームをコマンドラインL3に出力する際は、そのMSB側から出力するよう構成されている。つまり、コマンドフレームを受信した各IC11〜14が、それが自身宛のものであるか否かを早く判断できるように、先に送出されるMSB側に送信先IC情報を配置するようにしているのである。
【0079】
以上説明した本実施形態のシリアル通信システムでは、マスタCPU10がいずれかのICを通信対象としてシリアル通信を行う場合、まずチップセレクト信号CSをアクティブ(Lレベル)にして、各IC11〜14をシリアル通信可能状態にすると共に、同期用のクロック信号SCLKを出力する。そして、通信対象のICを示す送信先IC情報を含むコマンドフレーム(マスタ信号STXD)をコマンドラインL3へ出力する。
【0080】
各IC11〜14は、マスタCPU10からコマンドラインL3に出力されたコマンドフレームを受信すると、そのコマンドフレームに含まれる送信先IC情報に基づき、自身宛のコマンドフレームであるか否か判断する。既述の通り、各IC11〜14には、IC情報レジスタ36aにIC選択データ及びIC番号データが格納されている。この格納されている値と、受信したコマンドフレームに含まれている送信先IC情報とを比較器38で比較し、一致した場合は、自身宛のコマンドフレームであると判断して、出力ポートを開く(Lレベルの出力許可信号を出力する)。そして、そのコマンドフレームに含まれているR/Wデータや各種コマンド、データ等に基づく処理を行い、その処理結果を応答フレームとして応答ラインL4へ出力する。
【0081】
図6に、本実施形態のシリアル通信システムにおけるシリアル通信の一例を示す。時刻t1で、マスタCPU10はチップセレクト信号CSをLレベルにすると共にクロック信号SCLKを出力する。そして、通信対象をIC−Ca13としたコマンドフレームを順次出力する。これに対してIC−Ca13も、自身宛に順次送信されてくるコマンドフレームに対してそれぞれスレーブ信号SRXD(応答フレーム)を出力する。そして時刻t2で、チップセレクト信号CSをHレベルにして各IC11〜14を非アクティブ状態にすると共にクロック信号SCLKの出力も停止し、IC−Ca13とのシリアル通信を一旦終了する。以後、図示のように、IC−Cb14、IC−A11、IC−B12、IC−Ca13・・・と通信対象を切り替えていく。つまり本実施形態では、通信対象のICを切り替える際は、必ずチップセレクト信号CSを非アクティブ(Hレベル)として一旦各IC11〜14の出力ポートを閉じ、その後再びチップセレクト信号CSをアクティブとして所望のICとの通信を開始する。
【0082】
図6のタイムチャートにおける、チップセレクト信号CSがアクティブ状態になってから再び非アクティブになるまでの間(例えば時刻t1〜t2間)の通信の詳細について、図7に基づいて説明する。図7に示す如く、マスタCPU10が順次送信するコマンドフレーム(マスタ信号STXD)に対し、選択されたIC、つまりそのコマンドフレーム中の送信先IC情報に対応した通信対象のICは、2フレーム分遅れて応答フレーム(スレーブ信号SRXD)を出力する。
【0083】
但し、出力ポートの状態は、応答フレームの出力より早い段階(例えば最初のコマンドフレーム32ビットを全て受信したとき)に開かれる。即ち、最初のコマンドフレームを受信してそれが自身宛のものであることを判別すると、既述の通り出力回路40にLレベルの出力許可信号を出力して、応答フレームの出力が可能な状態とするのである。
【0084】
そしてマスタCPU10は、送信すべき所定の数のコマンドフレームを送信した後、最後に送信したコマンドフレームに対する応答フレームを受信し終えるまでの2フレーム分は、NOP(ノーオペレーション)コマンドを送信する。つまり、通信対象のICに対して、所定の応答フレーム送信後は何ら応答しないよう命令する。
【0085】
尚、図7において、各コマンドフレームに記載されている「選択」とは、IC選択データ及びIC番号(つまり送信先IC情報)を示し、「CMD」とは、通信対象のICに対するコマンドを示す。つまり、「選択+CMD」は、そのコマンドフレームに少なくとも送信先IC情報とコマンドが含まれていることを表している。また、各応答フレームに記載されている「不定」とは、応答フレームは送信せず出力ポートからの出力状態が不定であることを示し、「ANS」とは、応答フレーム中の応答データを示す。後述する各実施形態においても同様とする。
【0086】
図8に、通信対象のICからマスタCPU10へ出力される応答フレームの構成を示す。図8に示す如く、各IC11〜14は、マスタCPU10へ応答データを送信する際、その応答データに、自身を示すデータとしてIC情報レジスタ36aに格納されているIC選択データ及びIC番号データを付加して送信する。
【0087】
この応答フレームを受信したマスタCPU10は、応答フレームに含まれているIC選択データ及びIC番号に基づき、通信対象のICから正しく応答されているか、延いては通信対象のICが正常であるか否かをチェックする。具体的には、図9に示すICチェック処理を実行する。図9は、マスタCPU10が実行するICチェック処理を示すフローチャートである。このICチェック処理は、マスタCPU10がチップセレクト信号CSをアクティブにする毎に実行されるものである。
【0088】
チップセレクト信号CSをアクティブにすることによりこの処理が開始されると、ステップ(以下「S」と略す)110にて、チップセレクト信号CSの立ち下がりから立ち上がりまでの1回の通信が完了したか否かが判断される。これは言い換えれば、チップセレクト信号CSが非アクティブになったか否かの判断である。チップセレクト信号CSがアクティブの間はこのS110で否定判定され続け、その間、通信対象のICから受信した応答フレームに含まれるIC選択データ及びIC番号データをメモリ等に一時保存しておく。
【0089】
そして、チップセレクト信号CSが非アクティブになればS120に進み、アクティブ期間に受信した応答フレーム中のIC選択データ及びIC番号データが正しいものであるか否か、即ち、通信対象のICを示すものであるか否かを判断する。
【0090】
そして、正しいと判断された場合はS130に進み、そのIC(つまりチップセレクト信号CSが非アクティブになる前の通信対象のIC)は正常と判断して一旦この処理を終了する。一方、正しいと判断されなかった場合は、そのICは異常であると判断して、所定のフェイルセーフ処理を行う。このフェイルセーフ処理は、例えば、車両の運転者に異常を警告するようなランプを点灯させたり、車両のオーバーラン等を防止するためにリンプホーム運転(縮退運転)等を行わせたりするなどの処理である。
【0091】
また、既述の通り、各IC11〜14のRAM31には、プロテクトRAM領域31bが設定されており、通信中にこのプロテクトRAM領域31bへデータを書き込むためにはプロテクト解除コマンドを送信する必要がある。図10は、チップセレクト信号CSのアクティブ期間中において、プロテクトRAM領域に対するデータ書き込みに関する通信のみを抽出して示したタイムチャートである。
【0092】
図10に示す如く、チップセレクト信号CSをアクティブとして通信を開始しても、通信対象ICのプロテクトRAM領域31bに対するデータ書き込みはできないが、プロテクト解除コマンドを含むコマンドフレームを送信することにより、プロテクトRAM領域31bは書き込みが許可された状態となる。
【0093】
そのため、プロテクト解除コマンド以後に、プロテクトRAM領域31bへデータを書き込ませるためのコマンドフレーム(図10では「プロテクト領域WRITE1」、「プロテクト領域WRITE2」)を送信すると、そのコマンドフレーム中のコマンドに応じてデータが書き込まれることになる。そして、チップセレクト信号CSを非アクティブにすることにより、プロテクトRAM領域31bは再び書き込み不可能な状態にされる。
【0094】
以上詳述した本実施形態のシリアル通信システムによれば、マスタCPU10と各IC11〜14とが共通のシリアル通信ライン(コマンドラインL3,応答ラインL4)でバス接続されているため、図26で説明した従来のシステムのようにマスタCPU10が各IC11〜14毎に個々にシリアルポートを備える必要がなくなり、システムの構成を簡素化する事が可能になると共に、従来のような、マスタCPUが各IC毎にシリアルポートを区別して通信処理を行うといった複雑な処理も不要となり、マスタCPU10の通信処理負荷が軽減されたシステムの提供も可能となる。
【0095】
また、同一構成の2つのIC−Cについては、IC識別端子をプルアップ又はプルダウンすることによってそれぞれIC−Ca13及びIC−Cb14として区別できるようにしているため、マスタCPU10はIC−Ca13又はIC−Cbのいずれか一方を、IC番号データにより区別して選択することができる。そのため、同一構成のICを複数用いることが可能となり、シリアル通信システムをよりフレキシブルに構築することが可能となる。
【0096】
更に、マスタCPU10からのコマンドフレームにおいて、送信先IC情報はそのMSB側、つまり先にコマンドラインL3へ出力される側に配置されているため、各IC11〜14は、コマンドフレームを受信したときにそのコマンドフレームに含まれている送信先IC情報をより早く得ることができ、より早いタイミングで自身宛のものか否か判断できるため、自身宛であった場合に迅速に応答のための準備をすることができる。
【0097】
更にまた、各IC11〜14は、マスタCPUへ応答フレームを送信する際に、自身を示すデータ(自身のIC選択データ及びIC番号データ)を含めて送信し、マスタCPU10はそれを元に通信対象ICが正常であるか否かを判断するようにしているため、ICの異常を迅速に検出することも可能である。
【0098】
また、プロテクトRAM領域31bの記憶内容は、通常は保持されて外部から書き換えられるおそれがないため、例えばその記憶内容を定期的にリフレッシュするといった操作が不要となり、通信負荷が軽減されたシステムの実現が可能となる。また、プロテクト解除コマンドを送信しない限りその記憶内容は保持されるため、プロテクトRAM領域31b内のデータが誤って書き換えられてしまうのを防止できる。
【0099】
更に、各IC11〜14はいずれも、BGAパッケージ20内に収められて構成されているため、各IC11〜14が個々単独で存在する場合に比べて配線の簡素化やパッケージのピン数低減が実現でき、より簡素化された構成であって且つコストが低減されたシリアル通信システムの提供が可能となる
ここで、本実施形態の構成要素と本発明の構成要素の対応関係を明らかにする。本実施形態において、IC選択データは本発明のスレーブ識別子に相当し、IC番号データは本発明の補助識別子に相当し、CSラインL2は本発明の第1スレーブセレクトラインに相当し、コマンドラインL3は本発明の第1通信ラインに相当し、応答ラインL4は本発明の第2通信ラインに相当し、RAM31は本発明の記憶手段に相当し、このうち特にプロテクトRAM領域31bは本発明のプロテクト領域に相当する。
【0100】
また、IC識別端子13a,14aはいずれも本発明の識別端子に相当し、レベル判別部35は本発明のレベル判断手段及び設定手段に相当し、BGAパッケージ20は本発明の半導体素子収納用パッケージに相当し、図8に示したスレーブICからの応答フレームに含まれるIC選択データ及びIC番号データが、本発明の応答元識別子に相当する。
【0101】
[第2実施形態]
上記第1実施形態では、同一構成のIC−Ca13及びIC−Cb14をマスタCPU10が区別(選択)できるように、IC−Ca13においてはIC識別端子13aをプルアップ、IC−CbにおいてはIC識別端子14aをプルダウンすることによりそれぞれ別々のIC番号データを設定するようにした。それ以外のシステム構成は、特にことわりのない限り第1実施形態と同様である。
【0102】
しかし、このように一つのIC識別端子13a(14a)の状態によって1ビットのIC番号データを設定する方法では、例えば、IC−Cb14においてIC識別端子14aの状態を判別するレベル判別部35の異常によりHレベルと判別されてしまうと、IC−Cb14のIC番号データがIC−Ca13と同じ「1」に設定されてしまう。こうなると、図11に示すように、マスタCPU10からIC−Ca13宛に送信されてきたコマンドフレームに対して、IC−Ca13のみならずIC−Cb14まで応答してしまい、両者からの応答フレームが応答ラインL4上で衝突してしまう。
【0103】
そこで本実施形態では、IC−Cを、IC識別端子を2つ備えた構成として、レベル判別部35が各IC識別端子の状態をそれぞれ判別し、その判別結果に応じたIC番号データをシリアル制御回路32がIC情報レジスタ36aに設定するようにしている。IC識別端子が2つであるため、IC情報レジスタ36aに設定されるIC番号データは2ビットである。
【0104】
具体的には、例えば図12に示すように、一方のIC−C(IC−Ca61)が備える2つのIC識別端子(第1識別端子61a及び第2識別端子61b)をいずれもプルアップし、他方のIC−C(IC−Cb62)が備える2つのIC識別端子(第1識別端子62a及び第2識別端子62b)をいずれもプルダウンしている。
【0105】
そのため、IC−Ca61においては、各IC識別端子61a,61bがいずれもHレベル状態であるためIC番号データが「11」に設定され、IC−Cb62においては、各IC識別端子62a,62bがいずれもLレベル状態であるためIC番号データが「00」に設定される。つまり、IC番号データを構成する各ビットがいずれも、IC−Ca61とIC−Cb62とで全く逆になるように設定するのである。
【0106】
マスタCPU10が送信するコマンドフレームは、図13に示すような構成となる。即ち、bit26,27がIC番号データ用のビットとして割り当てられ、ここに通信対象のICのIC番号データを設定して送信することになる。このうちbit27に設定されるIC番号1は、第1識別端子61a(62a)の状態に対応したデータが設定され、bit26に設定されるIC番号2は、第2識別端子61b(62b)の状態に対応したデータが設定される。
【0107】
従って、本実施形態のシリアル通信システムによれば、例えばIC−Ca61において何らかの要因でIC番号データのいずれかのビットが反転して設定(「10」又は「01」と設定)されてしまっても、IC−Cb62のIC番号データとは異なるため、各IC−C61,62が共に応答してしまう可能性を低く抑えることが可能となる。
【0108】
尚、上記のように一方のIC番号データを「11」、他方を「00」とするのに限らず、例えば、IC−Ca61において、第1識別端子61aはプルアップして第2識別端子61bをプルダウンすることによりIC番号データを「10」に設定し、IC−Cb62において、第1識別端子62aはプルダウンして第2識別端子62bをプルアップすることによりIC番号データを「01」に設定することにより、両者のIC番号データの各ビットを逆にするようにしてもよい。つまり、各第1識別端子61a,62aのレベルが逆になるようにし、且つ、各第2識別端子61b、62bのレベルも逆になるようにすればよい。
【0109】
[第3実施形態]
上記第1実施形態では、通信対象のICを切り替える際、チップセレクト信号CSを一旦非アクティブにして各ICの出力ポートをHi−Zにした上で、所望の通信対象ICとのシリアル通信を開始するようにしたが、本実施形態では、チップセレクト信号CSを非アクティブにすることなく、アクティブ状態を保ったままで通信対象のICを切り替えるようにしている。
【0110】
この場合、単に通信対象のICを連続的に切り替えるようにすると、切り替え前後のICからの出力(応答フレーム)同士が応答ラインL4上で衝突してしまう可能性がある。
そこで本実施形態では、通信対象のICを切り替える際に、IC選択解除コマンドを送信するか、或いはNOPコマンドを2フレーム分送信することによって、それまで通信対象としていたICに対して通信を終了する旨を告げる。そして、そのIC選択解除コマンド(或いはNOPコマンド)の送信後に、新たな通信対象ICとのシリアル通信を開始する。IC選択解除コマンドの送受信及びそれに基づく処理がなされること以外は、本実施形態のシリアル通信システムも第1実施形態と同様の構成である。尚、IC選択解除コマンドは本発明の通信終了コマンドに相当するものである。
【0111】
図14は、IC選択解除コマンドによって通信対象のICをIC−A11からIC−B12へ切り替える場合を示すタイムチャートである。図14に示すように、マスタCPU10はまず、IC−A11を示す送信先IC情報を付加した3つのコマンド(CMD1〜3)をそれぞれコマンドフレーム(マスタ信号STXD)として出力する。図中、「IC−A+CMD1」は、IC−A11を示す送信先IC情報及びIC−A11に対するコマンドCMD1を含むコマンドフレームであることを示している。
【0112】
そのため、通信対象のIC−A11は、このコマンドフレームを受けてそれが自身宛のものであることわかると、出力許可信号をLレベルにしてスレーブ信号SRXDの出力ポートを開く。図中の「出力」は、出力ポートが開かれている状態を示している。通信対象でないIC−B12は、出力許可信号をHレベルのままとして出力ポートを閉じた状態(出力端子54をHi−Z状態)に維持する。
【0113】
マスタCPU10は、IC−A11に対して所定数のコマンドフレーム(本例では3つ)を出力した後、IC選択解除コマンドを含むコマンドフレーム(図中の「選択解除」)を出力し、IC−A11に対して通信を終了する旨を告げる。これを受けたIC−A11は、受信した3つのコマンドフレームに対する応答データANS1〜3をそれぞれ応答フレームにて出力し終えたら、即、出力端子54をHi−Zにして出力ポートを閉じる(図中の時刻t11)。つまり、選択解除コマンドが送信されたことにより、少なくともその次に受信するコマンドは自身宛のものではないと判断して、送信すべきデータの出力が終わり次第すぐに出力ポートを閉じるのである。
【0114】
マスタCPU10は、IC選択解除コマンドの出力後は次の通信対象ICであるIC−B12に対してコマンドフレームの出力を開始する。IC−B12は、自身宛のコマンドフレームを受信すると、そこから2フレーム分後に出力ポートを開いて出力可能状態にすると共にそのコマンドフレームに対する応答フレームの出力を開始する。そして、時刻t2でチップセレクト信号CSが非アクティブになると、IC−B12の出力端子54もHi−Zとなる。
【0115】
一方、図15は、NOPコマンドによって通信対象のICをIC−A11からIC−B12へ切り替える場合を示すタイムチャートである。図14と比較して、マスタCPU10は、IC選択解除コマンドの代わりにNOPコマンドを2フレーム分送信した後に切り替え先のICに対するコマンドフレームを出力する。
【0116】
IC−A11は、NOPコマンドを受信すると出力ポートを不定とする。そして、IC−B12に対するコマンドフレームを受信することにより、出力端子54をHi−Zにする(時刻t21)。IC−B12は、自身宛のコマンドフレームを受信すると、そこから2フレーム分後に出力ポートを開いてマスタCPU10への応答フレームを出力する(時刻t22)。
【0117】
従って、本実施形態のシリアル通信システムによれば、通信対象ICの切り替え時にIC選択解除コマンドを送信するか、或いは、NOPコマンドを2フレーム分送信することにより、切り替え前後のICの出力ポートが共に開かれた状態になってしまうのを防いでいるため、切り替え前後の各ICからの出力が応答ラインL4上で衝突するといった事態を防ぐことができる。
【0118】
しかも、チップセレクト信号CSを非アクティブにすることなく通信対象のICを切り替えることができるため、通信対象切り替えのためにチップセレクト信号CSを非アクティブにする時間も不要となり、通信負荷の軽減が可能となる。
[第4実施形態]
第1実施形態では、マスタCPU10が通信対象のICに対してコマンドフレームを出力する際、全てのコマンドフレームに送信先IC情報を付加するようにしたが、本実施形態では、同じ通信対象のICに対して順次出力される複数のコマンドフレームのうち最初に出力されるコマンドフレームにのみ送信先IC情報を付加するようにしている。
【0119】
より具体的には、図16に示すように、マスタCPU10はチップセレクト信号CSをアクティブにした後、最初にIC選択用のコマンドを含むコマンドフレーム(図中の「IC選択」)を送信する。このコマンドは、通信対象のICに対して、通信対象として指定したことを告げるものであり、そのICを示す送信先IC情報を付加したコマンドフレームとして送信される。そして、そのIC選択コマンドフレームの送信後は、送信先IC情報を含まないコマンドフレームを送信する。
【0120】
通信対象のICは、IC選択コマンドフレームを受信して自身が通信対象として指定されたことを知ると、その後に送信されてくる、送信先IC情報を含まないコマンドフレームについても、自身宛のものとして扱う。そのため、最初のIC選択コマンドフレームに対する応答フレーム(図中の「IC応答」)の送信後、続いて送信されてくる各コマンド(CMD1〜4)に対しても、応答データ(ANS1〜4)を送信する。
【0121】
一方、通信対象ではない他のICは、IC選択コマンドフレームを受信して自身が通信対象ではないことを知ると、その後に送信されてくる、送信先IC情報を含まないコマンドフレームについても、自身宛のものではないとして扱い、それについて応答しないようにする。
【0122】
図17に、本実施形態のマスタCPU10が通信対象のICに出力するコマンドフレームの概略構成を示す。図17(a)は、マスタCPU10が最初に送信するIC選択コマンドフレームであり、図5に示した第1実施形態のコマンドフレームと同様である。図17(b)は、2番目以降に送信するコマンドフレームであり、図示の如く送信先IC情報は含めない。つまり、32ビット全てを、必要なコマンド、データ、アドレス等として使用する。
【0123】
尚、本実施形態では、IC選択コマンドフレームに対する応答フレームにのみ、自身を示すIC選択データ及びIC番号データ(但しIC−C13及びIC−C14のみ)を付加するようにしており、マスタCPU10は、その応答フレームを受信したときにそれに含まれている上記各データに基づき、通信対象のICに異常がないか否かチェックするようにしている。
【0124】
従って、本実施形態のシリアル通信システムによれば、マスタCPU10は、通信対象のICに対して順次送信する複数のコマンドフレームのうち2番目以降のコマンドフレームに対しては送信先IC情報を付加しないため、その分、コマンドやデータ等の領域として利用することができ、より効率的なシリアル通信が可能となる。
【0125】
[第5実施形態]
本実施形態は、上記第4実施形態に示した、最初のコマンドフレームにのみ送信先IC情報を付加する場合において、チップセレクト信号CSを非アクティブに切り替えることなく通信の途中で通信対象のICを切り替えるために、通信対象のICに対して最初に送信するIC選択コマンドフレームに送信フレーム数データを付加するものである。この送信フレーム数データは、最初に送信するIC選択コマンドフレームを含み、その後その通信対象ICに対して送信するコマンドフレームの総数を示すデータである。
【0126】
つまり、通信対象のICに対して、コマンドフレームをいくつ送信するかを予め伝えておくのである。具体的には、図18に示す如く、チップセレクト信号CSをアクティブにした後、最初の通信対象ICであるIC−A11に対して、IC−A11を示す送信先IC情報及び送信フレーム数データを含むコマンドフレーム(図中の「IC−A選択」)を出力する。
【0127】
図19に、その最初に送信されるコマンドフレームの概略構成を示す。図示の如く、bit30〜27の送信先IC情報に加え、bit26〜18に、送信フレーム数データが配置されている。本例では、IC−A11への送信フレーム数が2つであるため、このbit26〜18には、送信フレーム数が2つであることを示すデータが配置されることになる。
【0128】
IC−A11は、最初のコマンドフレームを受信することによって、自身宛に2つのコマンドフレームが送信されてくることがわかる。そのため、その数(2つ)のコマンドフレームに対する応答フレームを出力すると、即、出力ポートを閉じることができる(時刻t31)。
【0129】
IC−A11へのコマンドフレーム送信を終えたマスタCPU10は、NOPコマンドを1フレーム分出力した後、次の通信対象ICであるIC−B12に対するコマンドフレーム出力を開始する。この場合も、最初のコマンドフレーム(図18中の「IC−B選択」)に送信フレーム数データが含まれる。本例ではIC−B12に対して4フレーム送信するため、その旨を示す送信フレーム数データが含まれることになる。
【0130】
従って、本実施形態のシリアル通信システムによれば、送信フレーム数データによって自身宛に順次送信されてくるコマンドフレームの総数が予めわかるため、その数のコマンドフレームを受信してそれらに対する応答フレームの出力を終えたら、即、出力ポートを閉じることができ、通信対象の切り替え前後の各通信対象ICからの出力が応答ラインL4上で衝突するといった事態を防ぐことができる。尚、切り替えの際にNOPコマンドを1フレーム分送信するのは、上記出力衝突の防止の確実性をより高めるためである。
【0131】
[第6実施形態]
上記各実施形態においては、マスタCPU10が主導権を持ってシリアル通信を行うため、各ICは、マスタCPU10としか通信を行うことができず、他のICが持っているデータ等を直接取得することができない。そこで、本実施形態は、第1実施形態のシリアル通信システムにおいて、更に、IC−B12が他のICから直接データを取得できるよう構成されたものである。
【0132】
本実施形態では、IC−A11に各種センサ(温度・圧力・速度等)からのセンサ信号や各種スイッチからのスイッチ信号が入力されると共に、アナログのセンサ信号をデジタル値に変換するためのA/D変換器が内蔵されている。そしてIC−B12は、このIC−A11が備えるA/D変換器によるA/D変換データをはじめ、他の各ICからマスタCPU10へ送信される各種データを取得できるよう、自身以外の他のICが通信対象として指定された場合に、応答ラインL4上を流れる他のICからの応答データを自身の出力ポートから取り込むようにしている。
【0133】
そのために、IC−B12が備える出力回路40は、図20に示すような構成となっている。即ち、図20に示す如く、図4に示した第1実施形態の出力回路40に対し、更に、出力端子54からの信号及び入力許可信号が入力されるNAND回路55を備え、その出力が受信データとしてIC内部に入力されるよう構成されている。
【0134】
自身が通信対象として指定されている間は、既述の如く出力ポートが開かれるため、入力許可信号を非アクティブ(Hレベル)として、出力端子54の状態に拘わらずNAND回路55の出力は不変(Lレベル)となるようにする。一方、自身以外の他のICが通信対象ICとして指定されると、既述の通り出力ポートは閉じられるが、入力許可信号をアクティブ(Lレベル)とすることにより、出力端子54から入力される信号(つまり他のICからマスタCPU10への応答フレーム)を、NAND回路55を介して内部に取り込む。
【0135】
図21に、本実施形態のシリアル通信の通信動作の一例を示す。図示の如く、時刻t1でチップセレクト信号CSがアクティブとなってIC−A11とのシリアル通信が開始されると、通信対象ではないIC−B12は、その出力ポートをHi−Z状態から入力許可状態に切り換える(時刻t41)。具体的には、入力許可信号をアクティブ(Lレベル)にすることによって、IC−A11から応答ラインL4上へ出力される応答フレームを、出力端子54からNAND回路55を介して内部に取り込めるようにする。
【0136】
そして、時刻t2でチップセレクト信号CSが非アクティブになると再びその出力ポートをHi−Zとする。その後、チップセレクト信号CSがまたアクティブとなって、マスタCPU10からのIC選択コマンドフレーム(図中の「IC−B選択」)によりIC−B12自身が通信対象として指定されると、そこから2フレーム分後に出力ポートを開いてマスタCPU10への応答を開始する(時刻t42)。
【0137】
従って、本実施形態のシリアル通信システムによれば、IC−B12は、他のICからマスタCPU10へ送信される応答データ(応答フレーム)を、マスタCPU10を介さずに直接取得することができるため、通信負荷を増大させることなく他のICからの応答データを取得することが可能となる。尚、IC−B12以外の他のICについても、IC−B12と同様、他のICからの応答データを直接取得できるよう構成することができることはいうまでもない。
【0138】
以上、本発明の実施の形態について種々の例を挙げて説明したが、本発明の実施の形態は、上記実施形態に何ら限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採り得ることはいうまでもない。
例えば、上記第4実施形態のような、最初のコマンドフレームにのみ送信先IC情報を付加する通信方式においても、第3実施形態で説明したIC選択解除コマンドを用いることによって、チップセレクト信号CSを非アクティブにすることなく通信の途中で通信対象ICを切り換えるようにしてもよい。
【0139】
具体的には、図22に示すように、IC−A11からIC−B12へ通信対象を切り換える際、IC選択解除コマンドを含むコマンドフレームを出力する。これを受けたIC−A11は、マスタCPU10への応答フレームを全て出力すると、即、出力端子54をHi−Zとする(時刻t51)。そして、IC−B12は、自身宛のコマンドフレームを受信すると、そこから2フレーム分後に、出力ポートを開いてマスタCPU10への応答を開始する(時刻t52)。
【0140】
また例えば、上記各実施形態のシリアル通信システムに対して、IC−A12〜IC−Fまでの6種類のIC(つまり6種類のIC選択データに対応したIC)以外の他のICを増設できるようにしてもよい。図23は、IC−A11,IC−B12,IC−C13,IC−D14がいずれも同一のCSラインL2に接続され、IC選択データによって相互に区別できるようにされている(上記各実施形態と同様)のに加え、更に、IC−G71及びIC−H72(いずれも本発明の非対応スレーブ装置に相当)を増設したものである。
【0141】
このうちIC−G71は、マスタCPU70と第2CSラインL21によって接続され、IC−H72は、マスタCPU70と第3CSラインL31によって接続されている。但し、コマンドラインL3,応答ラインL4,及びクロックラインL1は共通である。そして、マスタCPU70は、IC−A11,IC−B12,IC−C13,IC−D14のいずれかと通信する場合は、CSラインL2のチップセレクト信号CSをアクティブにすると共に、第2CSラインL21のチップセレクト信号CS2及び第3CSラインL31のチップセレクト信号CS3をいずれも非アクティブにする。
【0142】
一方、IC−G71と通信する場合は、第2CSラインL21のチップセレクト信号CS2をアクティブにすると共に、CSラインL2のチップセレクト信号CS及び第3CSラインL31のチップセレクト信号CS3をいずれも非アクティブにする。IC−H72と通信する場合も、同様の要領でチップセレクト信号CS3のみをアクティブにすればよい。尚、CSラインL2は本発明の第1スレーブセレクトラインに相当し、第2CSラインL21及び第3CSラインL31はいずれも本発明の第2スレーブセレクトラインに相当する。
【0143】
シリアル通信システムを上記のように構成すれば、マスタCPUはより多くのICとシリアル通信を行うことが可能となる。また、上記のような3種類のCSラインL2,L21,L31に限らず、更にCSラインを増やすことももちろん可能であり、CSラインの数や、各CSラインにそれぞれ接続するICの組み合わせ等によって、多種多様な接続形態のシリアル通信システムを構築することが可能となる。
【0144】
また、上記のようにIC−G71及びIC−H72に対してそれぞれ別々にCSラインを設ける代わりに、例えば図24に示すように、IC−G81及びIC−H82に対するCSラインとして共通の第4CSラインL41を設けるようにしてもよい。この場合、マスタCPU80は、IC−G81又はIC−H82のいずれかと通信する際には、第4CSラインL41上のチップセレクト信号CS4をアクティブにすると共に、通信対象のいずれかのICを示す送信先IC情報を付加したコマンドフレームを送信することにより、通信対象ICを指定すればよい。
【0145】
更に例えば、第1実施形態のシリアル通信システムにおいて、図2に示したBGAパッケージ20に対して別のICを、共通のシリアル通信ラインに接続するようにしてもよい。具体的には、例えば図25に示すように、BGAパッケージ20に、QFP(Quad Flat Package )にて構成されたIC−E18を、共通のシリアル通信ラインで接続することができる。
【0146】
また、上記第2実施形態では、同一構成のIC−Cのうち一方のIC識別端子を共にHレベル、他方のIC識別端子を共にLレベルとしたが、もちろんこれ以外の状態に設定してもよい。即ち、例えば一方のIC−Cを、第1識別端子をHレベル、第2識別端子をLレベルとし、他方のIC−Cにおいては、第1識別端子をLレベル、第2識別端子をHレベルとしてもよいなど、両者を区別できる限り、各識別端子の設定方法は種々考えられる。
【0147】
更に、上記各実施形態では、複数使用する同一構成のICにおけるIC番号データの設定方法として、IC識別端子をプルアップ又はプルダウンすることにより両者を区別する方法を示したが、IC識別端子のプルアップ又はプルダウンによる区別方法はあくまでも一例であり、例えば切り替えスイッチを設けてそのスイッチの状態によって区別するようにしてもいいし、また例えば、ある2つの端子間の電気的状態(インピーダンス等)に応じて区別するようにしてもよく、同一構成のICでありながら外部から区別できるようになる限り種々の方法を採りうる。
【0148】
更にまた、上記各実施形態では、スレーブ装置としての各ICに同一構成のICが複数含まれる(IC−Ca13とIC−Cb14)ものとして説明したが、このような同一構成のICを複数備えないシリアル通信システムを構成することもできることはいうまでもない。その場合、マスタCPU10からのコマンドフレームに含まれる送信先IC情報としては、IC選択データのみでよい(IC番号データは不要)。
【0149】
また、上記第2実施形態では、IC識別端子を2つ設けて2つのIC−Cの位相を全く逆にすることで、応答フレーム衝突の可能性を低くすることを実現しているが、2ビットのIC番号データを設定可能であることから、当然ながら最大4種類のIC番号を設定可能である。つまり、同一構成のICを最大4つまで使用することも可能である。同一構成のICをより多く使用するために、さらに識別端子を増やすようにしてもよい。例えばIC識別端子を3つ備えるようにすれば、同一構成のICを最大8つまで用いることが可能となる。
【0150】
応答フレーム中に付加するIC選択データやIC番号データについても、出力する応答フレーム全てに付加するようにしてもよいし、例えば最初に出力する応答フレームにのみ付加してもよく、出力する複数の応答フレームのどれに付加するかは特に限定されない。
【0151】
更に、上記実施形態では、各ICが全て一つのBGAパッケージ20に収納されたマルチチップ構成のものとして説明したが、このパッケージとしてはBGAに限らず、例えばPGA(Pin Grid Array)或いはQFPなど、種々の半導体収納用パッケージを用いることができる。
【図面の簡単な説明】
【図1】第1実施形態のシリアル通信システムの概略構成を示す説明図である。
【図2】第1実施形態のシリアル通信システムにおいて、スレーブ装置としての各ICがBGAとして1パッケージ化されていることを示す説明図である。
【図3】ICの内部構成を示すブロック図である。
【図4】図3のICを構成する出力回路の回路図である。
【図5】第1実施形態のシリアル通信システムにおけるマスタCPUから各ICへのマスタ信号STXDのフレーム構成を示す説明図である。
【図6】第1実施形態のシリアル通信システムにおける通信動作全体を示すタイムチャートである。
【図7】第1実施形態のシリアル通信システムにおける、チップセレクト信号CSのアクティブ期間中の通信動作を示すタイムチャートである。
【図8】第1実施形態のシリアル通信システムにおける、各ICからマスタCPUへのスレーブ信号SRXDのフレーム構成を示す説明図である。
【図9】マスタCPUが実行するICチェック処理を示すフローチャートである。
【図10】第1実施形態のシリアル通信システムにおける、チップセレクト信号CSのアクティブ期間中の通信動作を示すものであって、各ICが備えるプロテクトRAM領域に対するデータ書き込みを説明するタイムチャートである。
【図11】IC−CbのIC番号データがIC−Caのものに化けた場合の通信動作を示すタイムチャートである。
【図12】第2実施形態のIC−Ca及びIC−Cbの構成を示す説明図である。
【図13】第2実施形態のシリアル通信システムにおける、マスタCPUから各ICへのマスタ信号STXDのフレーム構成を示す説明図である。
【図14】第3実施形態のシリアル通信システムにおける、マスタCPUからのマスタ信号STXD及びそれに対するICからのスレーブ信号SRXDの関係を示すタイムチャートである。
【図15】第3実施形態のシリアル通信システムにおける、マスタCPUからのマスタ信号STXD及びそれに対するICからのスレーブ信号SRXDの関係を示すタイムチャートである。
【図16】第4実施形態のシリアル通信システムにおける、マスタCPUからのマスタ信号STXDとそれに対するICからのスレーブ信号SRXDの関係を示すタイムチャートである。
【図17】第4実施形態のシリアル通信システムにおける、マスタCPUからのマスタ信号STXDのフレーム構成を示す説明図である。
【図18】第5実施形態のシリアル通信システムにおける、マスタCPUからのマスタ信号STXD及びそれに対するICからのスレーブ信号SRXDの関係を示すタイムチャートである。
【図19】第5実施形態のシリアル通信システムにおける、マスタCPUから通信対象のICへ最初に送信されるマスタ信号STXDのフレーム構成を示す説明図である。
【図20】第6実施形態のシリアル通信システムにおけるIC−Bが備える出力回路の回路図である。
【図21】第6実施形態のシリアル通信システムにおける、マスタCPUからのマスタ信号STXD及びそれに対するICからのスレーブ信号SRXDの関係を示すタイムチャートである。
【図22】第4実施形態のシリアル通信システムの変形例を示すタイムチャートである。
【図23】シリアル通信システムにおけるIC接続構成の他の例を示す説明図である。
【図24】シリアル通信システムにおけるIC接続構成の他の例を示す説明図である。
【図25】シリアル通信システムにおけるIC接続構成の他の例を示す説明図である。
【図26】従来のシリアル通信システムの概略構成を示す説明図である。
【符号の説明】
10,70,80,90,110…CPU、11…IC−A、12…IC−B、13,61…IC−Ca、13a,14a…IC識別端子、14,62…IC−Cb、16…IC−C、17…IC−D、18…IC−E、20…BGAパッケージ、31…RAM、31a…通常RAM領域、31b…プロテクトRAM領域、32…シリアル制御回路、33…受信用シフトレジスタ、34…受信レジスタ、35…レベル判別部、36…IC情報抽出部、36a…IC情報レジスタ、37…コマンド判定ロジック、38…比較器、39…プロテクト解除レジスタ、40…出力回路、41…送信レジスタ、42…送信用シフトレジスタ、43…クロックゲーティング回路、46…デコーダ、51…インバータ、52,55…NAND回路、53…NOR回路、54…出力端子、61a,62a…第1識別端子、61b,62b…第2識別端子、71,81…IC−G、72,82…IC−H、L1…クロックライン、L2…CSライン、L21…第2CSライン、L3…コマンドライン、L31…第3CSライン、L4…応答ライン、L41…第4CSライン、T1,T2…トランジスタ
Claims (13)
- マスタ装置と複数のスレーブ装置とが、前記マスタ装置から前記複数のスレーブ装置へコマンドを送信するための共通の第1通信ライン及び前記複数のスレーブ装置の各々から前記マスタ装置へ前記コマンドに対する応答データを送信するための共通の第2通信ラインによってそれぞれバス接続されることにより、該各通信ラインを介して相互に同期式シリアル通信を行うよう構成され、
前記マスタ装置は、通信対象の前記スレーブ装置に対して前記コマンドを送信する際、送信すべきコマンドにその通信対象のスレーブ装置を示すスレーブ識別子を送信先スレーブ情報として付加したコマンドフレームを前記第1通信ラインに出力し、
前記スレーブ装置は、前記第1通信ラインを介して前記マスタ装置からの前記コマンドフレームを受信した時、そのコマンドフレームに含まれている前記送信先スレーブ情報に基づいてそのコマンドフレームが自身宛のものか否か判断し、自身宛のものであった場合にそのコマンドフレーム内の前記コマンドに基づく処理を行う
ことを特徴とするシリアル通信システム。 - 前記複数のスレーブ装置のうち少なくとも2つは、同じ前記スレーブ識別子に対応した同一構成のスレーブ装置であると共に、外部から相互に区別できるようにするための異なる補助識別子がそれぞれ設定され、前記マスタ装置からの前記コマンドフレームの受信時にそのコマンドフレーム中の前記送信先スレーブ情報として含まれている前記スレーブ識別子及び前記補助識別子に基づいてそのコマンドフレームが自身宛のものか否か判断するよう構成されており、
前記マスタ装置は、前記同一構成のスレーブ装置のいずれかを通信対象として前記コマンドフレームを出力する際、前記送信先スレーブ情報として、その通信対象のスレーブ装置に対応した前記スレーブ識別子及び前記補助識別子を付加する
ことを特徴とする請求項1記載のシリアル通信システム。 - 前記同一構成のスレーブ装置はいずれも、
外部から任意の値の電圧を印加可能な1又は複数の識別端子と、
該識別端子が所定電圧にプルアップされたハイレベル状態若しくはグランドレベルにプルダウンされたロウレベル状態のいずれにあるかを判断するレベル判断手段と、
該レベル判断手段による判断結果に応じた前記補助識別子を設定する設定手段と、
を備え、
該同一構成の各スレーブ装置が備える前記識別端子を相互に異なる状態にすることにより、該スレーブ装置相互間で異なる前記補助識別子が設定されている
ことを特徴とする請求項2記載のシリアル通信システム。 - 前記同一構成のスレーブ装置は2つであって、いずれも前記識別端子を複数備えており、
その2つのスレーブ装置のうち一方のスレーブ装置が備える前記各識別端子の前記プルアップ若しくはプルダウンの組み合わせに対し、他方のスレーブ装置が備える前記各識別端子の前記プルアップ若しくはプルダウンの組み合わせを全て逆とする
ことを特徴とする請求項3記載のシリアル通信システム。 - 前記マスタ装置は、前記送信先スレーブ情報を、前記コマンドフレームにおけるMSB側又はLSB側のうち、前記第1通信ラインに先に出力する側に配置する
ことを特徴とする請求項1〜4いずれかに記載のシリアル通信システム。 - 前記マスタ装置は、通信対象の前記スレーブ装置に送信すべき複数の前記コマンドフレームを前記第1通信ラインへ順次出力する際、最初に出力するコマンドフレームにのみ前記送信先スレーブ情報を付加するようにし、
前記スレーブ装置は、自身を示す前記送信先スレーブ情報が付加された前記コマンドフレームを前記第1通信ラインを介して受信したとき、その後に受信する、前記送信先スレーブ情報が付加されていないコマンドフレームについても、自身宛のものとして扱う
ことを特徴とする請求項1〜5いずれかに記載のシリアル通信システム。 - 前記マスタ装置は、通信対象の前記スレーブ装置に送信すべき1又は複数の前記コマンドフレームを前記第1通信ラインへ順次出力する際、最初に出力するコマンドフレームに、そのコマンドフレームを含む前記順次出力するコマンドフレームの総数を示す送信フレーム数データを付加し、
前記スレーブ装置は、前記送信フレーム数データが付加されたコマンドフレームであって自身宛のものを前記第1通信ラインを介して受信したとき、そのコマンドフレームを含みその後順次受信するコマンドフレームのうち前記送信フレーム数データが示す数のコマンドフレームについては、全て自身宛のものとして扱う
ことを特徴とする請求項6記載のシリアル通信システム。 - 前記マスタ装置は、通信対象の前記スレーブ装置を切り替える際、切り替え前の通信対象のスレーブ装置に対する最後の前記コマンドフレームの出力後、そのスレーブ装置との通信が終了したことを示す通信終了コマンドを含むコマンドフレームを前記第1通信ラインに出力して、その出力後に切り替え先のスレーブ装置との通信を開始するよう構成され、
前記スレーブ装置は、前記マスタ装置との通信中に前記通信終了コマンドを受信したとき、少なくともその次に受信する前記コマンドフレームについては、自身宛のものではないと判断する
ことを特徴とする請求項1〜6いずれかに記載のシリアル通信システム。 - 前記スレーブ装置は、前記マスタ装置からの前記コマンドフレームに対する前記応答データを前記応答フレームにて前記第2通信ラインへ出力する際、少なくとも、前記送信先スレーブ情報を含むコマンドフレームに対して出力する応答フレームは、前記応答データに自身を示す応答元識別子を付加した構成とし、
前記マスタ装置は、通信対象の前記スレーブ装置へ送信した前記コマンドに対して該スレーブ装置から送信される前記応答フレーム中の前記応答元識別子に基づいて、該通信対象のスレーブ装置が正常か否か判断する
ことを特徴とする請求項1〜8いずれかに記載のシリアル通信システム。 - 前記スレーブ装置は、前記マスタ装置から自身宛に送信されてくるデータを書き込むための記憶手段を備えると共に、その記憶手段における記憶領域の少なくとも一部は、前記マスタ装置から自身宛のプロテクト解除コマンドを受けた場合にデータの書き込みが可能であってそれ以外は記憶内容が保持されるプロテクト領域として構成されており、
前記マスタ装置は、通信対象の前記スレーブ装置における前記プロテクト領域に書き込むべきデータを含む前記コマンドフレームを前記第1通信ラインへ出力する際、そのコマンドフレームの出力に先立って、その通信対象のスレーブ装置に対する前記プロテクト解除コマンドを含むコマンドフレームを出力する
ことを特徴とする請求項1〜9いずれかに記載のシリアル通信システム。 - 前記スレーブ装置は、前記マスタ装置からの前記コマンドフレームの受信時、そのコマンドフレームに含まれている前記送信先スレーブ情報が自身以外の他のスレーブ装置に対応するものであった場合は、その送信先スレーブ情報に対応したスレーブ装置が前記第2通信ラインへ出力する、前記コマンドフレームに対する前記マスタ装置への前記応答フレームを、該第2通信ラインを介して受信できるよう構成されている
ことを特徴とする請求項1〜10いずれかに記載のシリアル通信システム。 - 前記複数のスレーブ装置はいずれも、同一の第1スレーブセレクトラインによって前記マスタ装置とバス接続されると共に、前記マスタ装置から前記第1スレーブセレクトラインへアクティブ信号が出力されたときにシリアル通信可能状態となるよう構成されており、
更に、前記複数のスレーブ装置とは別のスレーブ装置である他系統スレーブ装置が、前記マスタ装置と相互にシリアル通信可能となるよう前記各通信ラインと接続されると共に第2スレーブセレクトラインによって前記マスタ装置と接続され、前記マスタ装置から前記第2スレーブセレクトラインへアクティブ信号が出力されたときにシリアル通信可能状態となるよう構成されており、
前記マスタ装置は、前記他系統スレーブ装置とシリアル通信を行う際、前記第1スレーブセレクトラインへの前記アクティブ信号出力を停止すると共に前記第2スレーブセレクトラインへ前記アクティブ信号を出力する
ことを特徴とする請求項1〜11いずれかに記載のシリアル通信システム。 - 前記各スレーブ装置の少なくとも2つは、各々半導体基板上に形成され、且つ、同一の半導体素子収納用パッケージ内に収められて構成されている
ことを特徴とする請求項1〜12いずれかに記載のシリアル通信システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003157025A JP2004362067A (ja) | 2003-06-02 | 2003-06-02 | シリアル通信システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003157025A JP2004362067A (ja) | 2003-06-02 | 2003-06-02 | シリアル通信システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004362067A true JP2004362067A (ja) | 2004-12-24 |
Family
ID=34050920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003157025A Pending JP2004362067A (ja) | 2003-06-02 | 2003-06-02 | シリアル通信システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004362067A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006350491A (ja) * | 2005-06-14 | 2006-12-28 | Sony Corp | 信号処理装置および方法、記録媒体、並びにプログラム |
JP2011174397A (ja) * | 2010-02-24 | 2011-09-08 | Hitachi Automotive Systems Ltd | 内燃機関制御装置 |
JP2015116198A (ja) * | 2013-12-16 | 2015-06-25 | 株式会社藤商事 | 遊技機 |
US9083477B2 (en) | 2011-03-24 | 2015-07-14 | Fujitsu Ten Limited | Communication system and communication apparatus |
JP2015213799A (ja) * | 2015-07-27 | 2015-12-03 | 株式会社藤商事 | 遊技機 |
JP2015213800A (ja) * | 2015-07-27 | 2015-12-03 | 株式会社藤商事 | 遊技機 |
-
2003
- 2003-06-02 JP JP2003157025A patent/JP2004362067A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006350491A (ja) * | 2005-06-14 | 2006-12-28 | Sony Corp | 信号処理装置および方法、記録媒体、並びにプログラム |
JP4626806B2 (ja) * | 2005-06-14 | 2011-02-09 | ソニー株式会社 | 信号処理装置および方法、記録媒体、並びにプログラム |
JP2011174397A (ja) * | 2010-02-24 | 2011-09-08 | Hitachi Automotive Systems Ltd | 内燃機関制御装置 |
US9083477B2 (en) | 2011-03-24 | 2015-07-14 | Fujitsu Ten Limited | Communication system and communication apparatus |
JP2015116198A (ja) * | 2013-12-16 | 2015-06-25 | 株式会社藤商事 | 遊技機 |
JP2015213799A (ja) * | 2015-07-27 | 2015-12-03 | 株式会社藤商事 | 遊技機 |
JP2015213800A (ja) * | 2015-07-27 | 2015-12-03 | 株式会社藤商事 | 遊技機 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9965420B2 (en) | Slave device alert signal in inter-integrated circuit (I2C) bus system | |
US6597197B1 (en) | I2C repeater with voltage translation | |
US6928501B2 (en) | Serial device daisy chaining method and apparatus | |
US5495594A (en) | Technique for automatically adapting a peripheral integrated circuit for operation with a variety of microprocessor control signal protocols | |
EP1095327A1 (en) | Low power, high speed communications bus | |
KR100609623B1 (ko) | 내부 메모리 디바이스간의 직접적 데이터 이동이 가능한 복합 메모리 칩 및 데이터 이동방법 | |
US5467272A (en) | Integrated wiring system | |
US20160259624A1 (en) | Impedance-based flow control for a two-wire interface system with variable frame length | |
US10324870B2 (en) | Memory circuit with integrated processor | |
JP2006268827A (ja) | マルチチップパッケージデバイス | |
JP2004362067A (ja) | シリアル通信システム | |
US9252777B2 (en) | Method and apparatus for multiplexing pins of an integrated circuit | |
KR100444788B1 (ko) | 테스트 동작 모드를 가진 집적 회로 및 다수의 상기 집적회로를 테스트하기 위한 방법 | |
US20120223769A1 (en) | Semiconductor integrated circuit with data transmitting and receiving circuits | |
US8421498B2 (en) | Semiconductor device with bus connection circuit and method of making bus connection | |
US20080106950A1 (en) | High-speed memory device easily testable by low-speed automatic test equipment and input/output pin control method thereof | |
US7885133B2 (en) | Memory control device | |
US20120239887A1 (en) | Method and apparatus for memory control | |
KR100400851B1 (ko) | 화상처리 시스템 및 이를 이용한 반도체장치와 디지털스틸 카메라장치 | |
JP5192284B2 (ja) | 回路装置 | |
US20230216704A1 (en) | Onboard apparatus, onboard communication system, and communication control method | |
US20100283508A1 (en) | Semiconductor chip and semiconductor device including the same | |
US7584384B2 (en) | Method and apparatus for enabling and disabling a test mode of operation of an electronic memory device without additional interconnects or commands | |
US8766668B2 (en) | Integrated circuit chip | |
US7496093B2 (en) | Slave circuit and method for initializing a slave circuit |