(57)【要約】【課題】被制御装置ごとにコマンドの送信制御を行い、制御装置や被制御装置の動作不良の発生を抑制する。【解決手段】制御装置１０と、シリアル・バス３０を介して制御装置１０に接続された複数の被制御装置２０と、を備え、制御装置１０は、シリアル・バス３０を介して行われる入出力を制御し、被制御装置２０に対するコマンドを出力するバス・コントローラ１１と、複数の被制御装置２０の各々に対し、被制御装置２０ごとにバス・コントローラ１１から出力されたコマンドの送信を制御するコマンド・フィルタ１２と、を備える。【選択図】図１
2018055318.tif 000002
【特許請求の範囲】
【請求項１】
制御装置と、
シリアル・バスを介して前記制御装置に接続された複数の被制御装置と、を備え、
前記制御装置は、
前記シリアル・バスを介して行われる入出力を制御し、前記被制御装置に対するコマンドを出力するバス制御部と、
複数の前記被制御装置の各々に対し、当該被制御装置ごとに前記バス制御部から出力されたコマンドの送信を制御するコマンド送信制御部と、
を備えることを特徴とする、電子装置。
【請求項２】
前記コマンド送信制御部は、前記被制御装置に対して送信することが許可されたコマンドが登録されたテーブルを有し、前記バス制御部から出力されたコマンドが当該テーブルに登録されている場合に、当該コマンドを当該被制御装置に送信することを特徴とする、請求項１に記載の電子装置。
【請求項３】
前記コマンド送信制御部は、前記被制御装置に対して送信することが禁止されたコマンドが登録されたテーブルを有し、前記バス制御部から出力されたコマンドが当該テーブルに登録されていない場合に、当該コマンドを当該被制御装置に送信することを特徴とする、請求項１に記載の電子装置。
【請求項４】
前記コマンド送信制御部は、前記制御装置に接続されている前記被制御装置の種類に応じて、送信を許可するコマンドが設定されることを特徴とする、請求項１乃至請求項３の何れかに記載の電子装置。
【請求項５】
前記コマンド送信制御部は、前記制御装置に接続されている前記被制御装置の組み合わせに応じて、送信を許可するコマンドが設定されることを特徴とする、請求項１乃至請求項３の何れかに記載の電子装置。
【請求項６】
シリアル・バスを介して接続された複数の被制御装置に対する制御を行う制御装置を制御するプログラムであって、
バス制御部から出力されたコマンドから当該コマンドの送信先の被制御装置を特定する処理と、
送信先として特定された前記被制御装置に基づいて、前記コマンドの送信を許可するか否かを制御する処理と、
を前記制御装置に実行させることを特徴とする、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子装置およびプログラムに関する。
【背景技術】
【０００２】
特許文献１には、マスタおよびスレーブをシリアルデータバスにて接続し、リセットの後にＳＤＡ線（シリアルデータ線）を検査し、ＳＤＡ線がＬＯＷ電位である場合はエラーが認識され、サブルーチンの実行によってエラーを除去する構成が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表平１１−５０２６４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
制御装置と被制御装置との接続には、１ビットずつ順番にデータを転送するシリアル・バスを用いることができる。１本のシリアル・バスには、複数の被制御装置を接続することが可能である。一方、被制御装置の各々は、装置毎の多様な仕様に対応するために固有のコマンド体系を有している。そのため、別個のコマンド体系を有する種々の被制御装置がシリアル・バスを介して制御装置に接続される場合、コマンドの出力制御が煩雑となり、制御装置や被制御装置の動作不良が発生する可能性があった。
【０００５】
本発明は、被制御装置ごとにコマンドの送信制御を行い、制御装置や被制御装置の動作不良の発生を抑制することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の請求項１に係る電子装置は、
制御装置と、
シリアル・バスを介して前記制御装置に接続された複数の被制御装置と、を備え、
前記制御装置は、
前記シリアル・バスを介して行われる入出力を制御し、前記被制御装置に対するコマンドを出力するバス制御部と、
複数の前記被制御装置の各々に対し、当該被制御装置ごとに前記バス制御部から出力されたコマンドの送信を制御するコマンド送信制御部と、
を備えることを特徴とする、電子装置である。
請求項２に係る電子装置は、
前記コマンド送信制御部は、前記被制御装置に対して送信することが許可されたコマンドが登録されたテーブルを有し、前記バス制御部から出力されたコマンドが当該テーブルに登録されている場合に、当該コマンドを当該被制御装置に送信することを特徴とする、請求項１に記載の電子装置である。
請求項３に係る電子装置は、
前記コマンド送信制御部は、前記被制御装置に対して送信することが禁止されたコマンドが登録されたテーブルを有し、前記バス制御部から出力されたコマンドが当該テーブルに登録されていない場合に、当該コマンドを当該被制御装置に送信することを特徴とする、請求項１に記載の電子装置である。
請求項４に係る電子装置は、
前記コマンド送信制御部は、前記制御装置に接続されている前記被制御装置の種類に応じて、送信を許可するコマンドが設定されることを特徴とする、請求項１乃至請求項３の何れかに記載の電子装置である。
請求項５に係る電子装置は、
前記コマンド送信制御部は、前記制御装置に接続されている前記被制御装置の組み合わせに応じて、送信を許可するコマンドが設定されることを特徴とする、請求項１乃至請求項３の何れかに記載の電子装置である。
請求項６に係る電子装置は、
シリアル・バスを介して接続された複数の被制御装置に対する制御を行う制御装置を制御するプログラムであって、
バス制御部から出力されたコマンドから当該コマンドの送信先の被制御装置を特定する処理と、
送信先として特定された前記被制御装置に基づいて、前記コマンドの送信を許可するか否かを制御する処理と、
を前記制御装置に実行させることを特徴とする、プログラムである。
【発明の効果】
【０００７】
請求項１の発明によれば、被制御装置ごとにコマンドの送信制御を行い、制御装置や被制御装置の動作不良の発生を抑制することができる。
請求項２の発明によれば、被制御装置ごとに送信することが許可されたコマンドが登録されたテーブルを用いてコマンドの送信制御を行うことができる。
請求項３の発明によれば、被制御装置ごとに送信することが禁止されたコマンドが登録されたテーブルを用いてコマンドの送信制御を行うことができる。
請求項４の発明によれば、被制御装置の種類に応じて、被制御装置ごとにコマンドの送信制御を行うことができる。
請求項５の発明によれば、被制御装置の組み合わせに応じて、被制御装置ごとにコマンドの送信制御を行うことができる。
請求項６の発明によれば、被制御装置ごとにコマンドの送信制御を行う機能をソフトウェアにより提供し、制御装置や被制御装置の動作不良の発生を抑制することができる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態による電子装置の構成例を概略的に示す図である。
【図２】シリアル・バスとしてＳＰＩバスを用いた場合の制御装置の構成例を示す図である。
【図３】図２のように構成された本実施形態の電子装置における制御装置の動作を示すフローチャートである。
【図４】図２のように構成された本実施形態の電子装置における制御装置の他の動作例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
＜本実施形態が適用される電子装置の構成＞
本実施形態による電子装置は、制御装置１０と、制御装置１０により制御される被制御装置２０とを備え、この制御装置１０と被制御装置２０とをシリアル・バス３０により接続して構成される。また、この電子装置は、例えば、電子制御されて動作する機械や装置であり、制御装置１０は、組み込みシステムとして電子装置に組み込まれている。
【００１０】
図１は、本実施形態による電子装置の構成例を概略的に示す図である。
本実施形態の制御装置１０は、例えば、ＳｏＣ（System on a Chip）、ＡＳＳＰ（Application Specific Standard Produce）、ＡＳＩＣ（Application Specific Integrated Circuit）等の集積回路として実現される。図１に示す構成例において、制御装置１０は、バス・コントローラ１１と、コマンド・フィルタ１２とを備える。なお、図１に示す構成例では、本実施形態における特徴的な構成のみが記載されている。特に図示しないが、実際には、本実施形態が適用される電子装置や被制御装置２０の種類に応じて種々の演算処理を実行する演算処理部や各種の制御を行う制御部が制御装置１０に設けられる。
【００１１】
バス・コントローラ１１は、シリアル・バス３０による通信を制御するためのバス制御部であり、例えば、上記のＳｏＣ等の集積回路に搭載されたＣＰＵ（Central Processing Unit）とメモリとにより実現される。このメモリは、いわゆる内部メモリであり、ＣＰＵにより実行されるプログラムを格納している不揮発性メモリであるＲＯＭ（Read Only Memory）と、各種のデータや設定値が書き込まれると共にＣＰＵによる処理の実行時の作業用メモリとしても用いられるＲＡＭ（Random Access Memory）とが設けられている。このような構成では、ＣＰＵがＲＯＭに記録されているプログラムを実行することにより、バス・コントローラ１１の機能が実現される。
【００１２】
コマンド・フィルタ１２は、制御装置１０から出力されたコマンドを被制御装置２０に送信するか否かを制御するコマンド送信制御部であり、例えば、上記のＳｏＣ等の集積回路に搭載されたＣＰＵとメモリ（ＲＯＭおよびＲＡＭ）とにより実現される。このような構成では、ＣＰＵがＲＯＭに記録されているプログラムを実行することにより、コマンド・フィルタ１２の機能が実現される。
【００１３】
本実施形態において、制御装置１０には、シリアル・バス３０を介して複数の被制御装置２０が接続されている。被制御装置２０は、シリアル接続により制御装置１０に制御される、メモリ・デバイス（例えばフラッシュメモリ等の外部メモリ）やセンサ等の機器（デバイス）である。図１に示す構成例では、制御装置１０のバス・コントローラ１１と各被制御装置２０とは、コマンド・フィルタ１２による中継を介して接続されている。
【００１４】
シリアル・バス３０としては、ＳＰＩ（Serial Peripheral Interface）、Ｉ２Ｃ、ＳＤＩＯ等の種々のシリアル通信規格によるバスが用いられる。この種のバスは、多様な機器を同一デバイス上に接続可能であるが、規格として基本的な通信方法が定められているのみである。一方、被制御装置２０として接続される機器は、機器ごとの多様な仕様に対応するために固有のコマンド体系を有している。一例をあげると、ＳＰＩバスにより接続されるメモリ・デバイスでは、通信に用いられる物理的な信号線が、１クロックにつき１ビットを送信するシングル・インターフェイスに対応しているか、１クロックにつき４ビットを送信するクアッド・インターフェイスに対応しているか、といった個別の仕様に応じて、メモリ・デバイスにアクセスするためのコマンド体系も異なっている。
【００１５】
コマンド・フィルタ１２は、バス・コントローラ１１から被制御装置２０へ送信されるコマンドを制限する。このコマンド・フィルタ１２は、被制御装置２０の種類および制御装置１０と被制御装置２０とを接続するシリアル・バス３０の種類に応じて、個々の被制御装置２０ごとに、送信を許可するコマンドと禁止するコマンドとを設定する。また、コマンド・フィルタ１２は、被制御装置２０に対して送信を許可するコマンドと送信を許可しないコマンドとを分けるために参照するテーブル１３を有している。
【００１６】
テーブル１３は、コマンド・フィルタ１２を介して接続されている個々の被制御装置２０ごとに設定されており、例えば、制御装置１０に搭載されたメモリに格納されている。詳しくは後述するが、このテーブル１３は、被制御装置２０の種類や、制御装置１０に接続された被制御装置２０の組み合わせ等に基づいて設定される。また、テーブル１３は、送信を許可するコマンドを登録したテーブル（許可テーブル）であっても良いし、送信を許可しないコマンドを登録したテーブル（禁止テーブル）であっても良い。
【００１７】
＜コマンド・フィルタ１２の適用例＞
具体的な場面を考えて、コマンド・フィルタ１２の適用例を説明する。
制御装置１０に接続された被制御装置２０として、ＳＰＩバスにより接続され、シングル・インターフェイス、デュアル・インターフェイス、クアッド・インターフェイス等の複数のインターフェイスに対応している不揮発性メモリ・デバイスを考える。ただし、このメモリ・デバイスと制御装置１０との接続は、シングル・インターフェイスによる接続のみに対応しているものとする。
【００１８】
ここで、制御装置１０のバス・コントローラ１１からメモリ・デバイスへ、誤って、クアッド・モード（クアッド・インターフェイスによる通信モード）を有効とするコマンドが送信されたものとする。このような誤ったコマンドは、例えば、ソフトウェアやハードウェアのバグ、ノイズ等によって、制御装置１０においてＣＰＵがソフトウェアを正常に実行して行われた処理に基づかずに（言わば、意図せずに）出力されてしまう場合がある。しかし、このコマンドを受け取ったメモリ・デバイスは、自身がクアッド・インターフェイスによる通信に対応可能であるため、クアッド・モードに設定されてしまう。この状態では、制御装置１０とメモリ・デバイスとの間ではシングル・インターフェイスによる通信しかできないにもかかわらず、メモリ・デバイスはクアッド・モードでの通信状態となっているため、正常な通信ができない。
【００１９】
また、このような場合、たとえ電子装置の電源をＯＦＦしても、不揮発性のメモリ・デバイスは状態を保存するため、電源ＯＮ時に、クアッド・モードに再設定されてしまう。そのため、制御装置１０と被制御装置２０であるメモリ・デバイスとが正常な接続状態（通信が可能な状態）に復帰することができない。
【００２０】
本実施形態では、上記のような構成において、コマンド・フィルタ１２が、シングル・モード（シングル・インターフェイスによる通信モード）以外の通信モードを有効とするコマンドがバス・コントローラ１１から被制御装置２０のメモリ・デバイスへ送信されないように制御する。上述したように、コマンド・フィルタ１２は、設定されているテーブル１３を参照して、コマンドの送信を制御する。この場合、テーブル１３が、送信を許可するコマンドが登録される許可テーブルである場合は、シングル・モード以外の通信モードを有効とするコマンドが、テーブル１３の登録から外される。一方、テーブル１３が、送信を許可しないコマンドが登録される禁止テーブルである場合は、シングル・モード以外の通信モードを有効とするコマンドが、テーブル１３に登録される。これにより、バス・コントローラ１１からクアッド・モードを有効とするコマンドが送信されると、コマンド・フィルタ１２は、テーブル１３を参照して、このコマンドの送信を阻止する。
【００２１】
上記の例では、ソフトウェアやハードウェアのバグ、ノイズ等に起因して、バス・コントローラ１１から被制御装置２０へ送信すると問題が発生するコマンドが出力されてしまう場合について説明した。しかし、被制御装置２０として接続されるデバイスが新たに追加されたり、それまで接続されていたデバイスと異なる種類のデバイスに交換されたりした場合には、ソフトウェアやハードウェアのバグ、ノイズ等が発生していなくても、それまでの設定に基づくコマンドが新たに接続されたデバイスに送信されることにより、同様の問題が発生する場合がある。本実施形態では、このような場合にも対応することができる。
【００２２】
例えば、シリアル・バス３０がＳＰＩバスである場合、シングル・インターフェイスによる通信でアクセスするコマンドであれば、いずれのＳＰＩデバイスであっても使用することができる。したがって、コマンド・フィルタ１２のテーブル１３を、シングル・インターフェイスによる通信でアクセスするコマンドのみを送信可能とするように設定することにより、いずれのＳＰＩデバイスに対してもシングル・インターフェイスによる通信モードでのみ通信を行うこととなる。このため、デバイスの追加や交換により新たなデバイスが接続された場合であっても、通信モードが異なるために正常な通信ができなくなるということはない。このように、接続される可能性のある被制御装置２０において共通して使用可能なコマンドのみが送信可能となるようにコマンド・フィルタ１２を設定することにより、被制御装置２０の接続が変更された場合に正常な通信ができなくなる問題の発生を抑制することができる。
【００２３】
以上のように、本実施形態において、コマンド・フィルタ１２（テーブル１３）の設定は、被制御装置２０の種類に応じて行われるだけでなく、制御装置１０に接続された複数の被制御装置２０の組み合わせにも基づいて行われる。例えば、全ての被制御装置２０がクアッド・モードに対応している場合は、クアッド・モードを有効にするコマンドやクアッド・インターフェイスによる通信でアクセスするコマンドの送信を許可するように設定して良い。一方、シングル・モードにのみ対応する被制御装置２０とクアッド・モード等の他の通信モードに対応する被制御装置２０とが混在する場合は、上記のような事態の発生を防止するために、シングル・モード以外の通信モードを有効にするコマンドや、シングル・インターフェイス以外のインターフェイスによる通信でアクセスするコマンドの送信を禁止するように設定する。すなわち、この場合、被制御装置２０の種類としては、同じクアッド・モードに対応するものであっても、他の被制御装置２０との組み合わせによって、送信が許可されるコマンドの種類が異なることとなる。
【００２４】
＜本実施形態の具体的な動作例＞
図２は、シリアル・バス３０としてＳＰＩバスを用いた場合の制御装置１０の構成例を示す図である。
図２に示す構成例において、制御装置１０は、バス・コントローラ１１としてのＳＰＩコントローラ１１ａと、コマンド・フィルタ１２とを備えている。また、制御装置１０には、被制御装置２０としてのＳＰＩデバイス２０ａ、２０ｂ、２０ｃが接続されている。ＳＰＩコントローラ１１ａは、ＣＳ（チップ・セレクト）信号によりコマンドの送信先のＳＰＩデバイス２０ａ、２０ｂ、２０ｃを特定し、特定したＳＰＩデバイス２０ａ、２０ｂ、２０ｃに対するコマンドを出力する。
【００２５】
図２に示す構成例において、コマンド・フィルタ１２は、ＳＰＩデバイス２０ａに対応するテーブル１３ａ、ＳＰＩデバイス２０ｂに対応するテーブル１３ｂ、ＳＰＩデバイス２０ｃに対応するテーブル１３ｃを有している。そして、ＳＰＩコントローラ１１ａからＳＰＩデバイス２０ａへ送信するために出力されたコマンドは、コマンド・フィルタ１２において、テーブル１３ａと照合され、送信するか否かが制御される。同様に、ＳＰＩコントローラ１１ａからＳＰＩデバイス２０ｂへ送信するために出力されたコマンドは、コマンド・フィルタ１２において、テーブル１３ｂと照合され、送信するか否かが制御される。また、ＳＰＩコントローラ１１ａからＳＰＩデバイス２０ｃへ送信するために出力されたコマンドは、コマンド・フィルタ１２において、テーブル１３ｃと照合され、送信するか否かが制御される。
【００２６】
図３は、図２のように構成された本実施形態の電子装置における制御装置１０の動作を示すフローチャートである。
図３に示すように、制御装置１０から被制御装置２０へコマンドを送信する場合、まずバス・コントローラ１１が、被制御装置２０（ＳＰＩデバイス２０ａ、２０ｂ、２０ｃのいずれか）へ送信するコマンドを設定する（ステップ３０１）。そして、バス・コントローラ１１が、ＣＳ信号によりコマンドの送信先の被制御装置２０（ＳＰＩデバイス２０ａ、２０ｂ、２０ｃのいずれに送信するか）を指定して（ステップ３０２）、ステップ３０１で設定したコマンドを発行する（ステップ３０３）。ここでは、ステップ３０２で、コマンドの送信先としてＳＰＩデバイス２０ａが指定されたものとする。
【００２７】
次に、コマンド・フィルタ１２が、バス・コントローラ１１により発行されたコマンドを解釈してコマンドの送信先を特定する（ステップ３０４）。ここではＳＰＩデバイス２０ａが送信先であると特定される。次に、コマンド・フィルタ１２は、コマンドをテーブル１３と照合して、送信先であるＳＰＩデバイス２０ａに送信することが禁止されているコマンドか否かを判断する（ステップ３０５）。ここでは、テーブル１３として許可テーブルを用いているものとする。この場合、ステップ３０３で発行されたコマンドがテーブル１３に登録されていれば（ステップ３０５でＹｅｓ）、コマンド・フィルタ１２が、そのコマンドを出力し（ステップ３０６）、出力されたコマンドはＳＰＩデバイス２０ａに送られる。
【００２８】
一方、ステップ３０３で発行されたコマンドがテーブル１３に登録されていない場合（ステップ３０５でＮｏ）、コマンド・フィルタ１２は、そのコマンドを出力せずに破棄する（ステップ３０７）。したがって、出力されたコマンドはＳＰＩデバイス２０ａに送られることはない。なお、コマンド・フィルタ１２は、コマンドの送信を制御するだけでなく、例えば、バス・コントローラ１１から発行されたコマンドの送信を止めた場合に、コマンドを送信しなかったことをバス・コントローラ１１に通知するようにしても良い。
【００２９】
図４は、コマンド・フィルタ１２のテーブル１３として禁止フィルタが用いられている場合の制御装置１０の動作を示すフローチャートである。図４に示す動作例において、ステップ４０１〜４０３に示すバス・コントローラ１１の動作は、図３に示すステップ３０１〜３０３の動作と同様である。また、ここでは、ステップ４０２で、コマンドの送信先としてＳＰＩデバイス２０ｂが指定されたものとする。
【００３０】
コマンド・フィルタ１２は、バス・コントローラ１１により発行されたコマンドを解釈してコマンドの送信先を特定する（ステップ４０４）。ここではＳＰＩデバイス２０ｂが送信先であると特定される。次に、コマンド・フィルタ１２は、テーブル１３と照合して、送信先であるＳＰＩデバイス２０ｂに送信することが禁止されているコマンドか否かを判断する（ステップ４０５）。ここでは、テーブル１３として禁止テーブルを用いたので、ステップ４０３で発行されたコマンドがテーブル１３に登録されていなければ（ステップ４０５でＮｏ）、コマンド・フィルタ１２が、そのコマンドを出力し（ステップ４０６）、出力されたコマンドはＳＰＩデバイス２０ｂに送られる。
【００３１】
一方、ステップ４０３で発行されたコマンドがテーブル１３に登録されている場合（ステップ４０５でＹｅｓ）、コマンド・フィルタ１２は、そのコマンドを出力せずに破棄する（ステップ４０７）。したがって、出力されたコマンドはＳＰＩデバイス２０ａに送られることはない。なお、コマンド・フィルタ１２は、コマンドの送信を制御するだけでなく、例えば、バス・コントローラ１１から発行されたコマンドの送信を止めた場合に、コマンドを送信しなかったことをバス・コントローラ１１に通知するようにしても良い。
【００３２】
以上、本実施形態について説明したが、本発明は、図１、２に示した具体的な構成および図３、４に示した具体的な動作内容に限定されるものではない。本発明は、シリアル・バス３０を介して制御装置１０と被制御装置２０とが接続された構成を有する種々の電子装置に対して適用できるものである。また、本発明を適用可能なシリアル・バス３０は、ＳＰＩバスに限定されず、Ｉ２Ｃ、ＳＤＩＯ等の種々のシリアル通信規格によるバスで接続された電子装置に対しても本発明を適用できる。
【００３３】
また、コマンド・フィルタ１２に設けられるテーブル１３は、予めＲＯＭ等の不揮発性メモリに格納して提供しても良いし、電子装置の起動時に行われる初期動作等、特定の実行条件に応じて実行される特定の動作において、制御装置１０に接続されている被制御装置２０の種類や組み合わせ等の接続関係を解析し、予め設定された規則に基づいてテーブル１３を設定し、ＲＡＭ等のメモリに格納するようにしても良い。
【符号の説明】
【００３４】
１０…制御装置、１１…バス・コントローラ、１２…コマンド・フィルタ、１３…テーブル、２０…被制御装置、３０…シリアル・バス
【図１】
2018055318.tif 000003
【図２】
2018055318.tif 000004
【図３】
2018055318.tif 000005
【図４】
2018055318.tif 000006